Spaces:
Paused
Paused
| import os | |
| import re | |
| # Directories and files to ignore | |
| IGNORE_DIRS = {".git", ".github"} | |
| IGNORE_FILES = {"Dockerfile", "Cloner.py"} | |
| # Folders to process | |
| TARGET_FOLDERS = {"plugins", "data"} | |
| # Text replacements | |
| REPLACEMENTS = { | |
| "Mr Frank": "DUDAS", | |
| "SUBZERO-MD": "ENCRYPTO-27", | |
| "SubZero MD": "ENCRYPTO-27", | |
| "Subzero": "ENCRYPTO-27", | |
| "Darrell Mucheri": "Diego Allies", | |
| "18062212660": "27679291800", | |
| "263719647303": "27679291800", | |
| "https://github.com/mrfrank-ofc/SUBZERO-MD": "https://i.ibb.co/hx0rGm5/Encrypto.webp", | |
| "https://whatsapp.com/channel/0029VagQEmB002T7MWo3Sj1D": "https://i.ibb.co/hx0rGm5/Encrypto.webp", | |
| "https://chat.whatsapp.com/InsR5qk3cBsG2781A6uxcO": "https://i.ibb.co/hx0rGm5/Encrypto.webp", | |
| "SUBZERO - MD- BOT": "ENCRYPTO-MD-BOT", | |
| } | |
| # Metadata block to prepend to README.md | |
| README_METADATA = """--- | |
| license: apache-2.0 | |
| title: ENCRYPTO MD | |
| sdk: docker | |
| emoji: 🚀 | |
| colorFrom: blue | |
| colorTo: blue | |
| short_description: The Best W.A bo | |
| --- | |
| """ | |
| # Dockerfile content | |
| DOCKERFILE_CONTENT = """ | |
| FROM node:lts-buster | |
| # Install Git and other dependencies | |
| RUN apt-get update && \\ | |
| apt-get install -y \\ | |
| git \\ | |
| ffmpeg \\ | |
| imagemagick \\ | |
| webp && \\ | |
| apt-get upgrade -y && \\ | |
| rm -rf /var/lib/apt/lists/* | |
| # Copy package.json and install dependencies | |
| COPY package.json . | |
| RUN npm install && npm install -g qrcode-terminal pm2 | |
| # Copy application code | |
| COPY . . | |
| # Expose port and set command | |
| EXPOSE 3000 | |
| CMD ["pm2-runtime", "start", "index.js"] | |
| """ | |
| # Function to log messages to a text file | |
| def log_to_file(log_message, log_file_path='logfile.txt'): | |
| """Function to log messages to a text file.""" | |
| with open(log_file_path, 'a') as log_file: | |
| log_file.write(log_message + '\n') | |
| def process_file(file_path): | |
| """Process a single file to replace text.""" | |
| try: | |
| with open(file_path, "r", encoding="utf-8") as f: | |
| content = f.read() | |
| original_content = content | |
| for old, new in REPLACEMENTS.items(): | |
| content = re.sub(re.escape(old), new, content) | |
| if content != original_content: | |
| with open(file_path, "w", encoding="utf-8") as f: | |
| f.write(content) | |
| log_to_file(f'Replaced text in {file_path}') | |
| return True | |
| else: | |
| log_to_file(f'No changes made to {file_path}') | |
| return False | |
| except Exception as e: | |
| log_to_file(f"Failed to process {file_path}: {e}") | |
| return False | |
| return False | |
| def process_directory(directory): | |
| """Recursively process files in a directory.""" | |
| total_files = 0 | |
| successful_replacements = 0 | |
| for root, dirs, files in os.walk(directory): | |
| # Ignore specified directories | |
| dirs[:] = [d for d in dirs if d not in IGNORE_DIRS] | |
| # Only process files in the target folders | |
| if any(target_folder in root for target_folder in TARGET_FOLDERS): | |
| for file in files: | |
| if file in IGNORE_FILES: | |
| continue | |
| file_path = os.path.join(root, file) | |
| total_files += 1 | |
| if process_file(file_path): | |
| successful_replacements += 1 | |
| return total_files, successful_replacements | |
| def update_readme(directory): | |
| """Add metadata to README.md in the root directory.""" | |
| readme_path = os.path.join(directory, "README.md") | |
| try: | |
| if os.path.exists(readme_path): | |
| with open(readme_path, "r+", encoding="utf-8") as f: | |
| content = f.read() | |
| f.seek(0, 0) | |
| f.write(README_METADATA + "\n" + content) | |
| log_to_file(f'Updated README.md at {readme_path}') | |
| else: | |
| with open(readme_path, "w", encoding="utf-8") as f: | |
| f.write(README_METADATA) | |
| log_to_file(f'Created and added metadata to README.md at {readme_path}') | |
| except Exception as e: | |
| log_to_file(f"Failed to update README.md: {e}") | |
| def create_dockerfile(dockerfile_path='Dockerfile'): | |
| """Function to create or replace the Dockerfile with the given content.""" | |
| try: | |
| with open(dockerfile_path, 'w') as dockerfile: | |
| dockerfile.write(DOCKERFILE_CONTENT) | |
| log_to_file(f'Dockerfile has been created/updated at {dockerfile_path}.') | |
| except Exception as e: | |
| log_to_file(f"Failed to create/update Dockerfile: {e}") | |
| if __name__ == "__main__": | |
| repo_dir = os.getcwd() # Root directory of the repository | |
| log_to_file('Script started.') | |
| print("Starting bulk text replacement...") | |
| total_files, successful_replacements = process_directory(repo_dir) | |
| update_readme(repo_dir) | |
| create_dockerfile() | |
| log_to_file('Script completed successfully.') | |
| print("\nBulk task completed!") | |
| print(f"Total files processed: {total_files}") | |
| print(f"Successful replacements: {successful_replacements}") | |
| log_to_file(f"Total files processed: {total_files}") | |
| log_to_file(f"Successful replacements: {successful_replacements}") |