Skip to content

CLI & Web tool for merging your project into one .txt|.md|.pdf

License

Notifications You must be signed in to change notification settings

MKultra6969/ProjectMergerTool

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

17 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ProjectMergerTool — Web Edition

изображение

Склеивает твой проект в один файл для скармливания нейросетям. Теперь с блэкджеком и веб-интерфейсом.

Python License: WTFPL

🧠 Зачем?

Иногда хочется показать весь проект ИИ, но кидать 50 файлов — кринж.
Вот и придумалось: склеить весь проект в один файл, чтобы можно было отправить в чат типа Gemini или ChatGPT.

Основные кейсы:

  • Проанализировать весь проект на наличие багов или рефакторинг.
  • Получить общую документацию по коду.
  • Просто показать ИИ, над чем ты работаешь.

✨ Возможности

Старый скрипт эволюционировал. Теперь это не просто скрипт, а полноценный веб-инструмент:

  • 🖥️ Полноценный веб-интерфейс: Забудь про консоль. Теперь всё красиво и с кнопочками.
  • 🚀 Лаунчер с авто-установкой: Один файл для запуска, который сам установит все зависимости.
  • 🧠 Умное игнорирование: Автоматическая поддержка .gitignore и ручная настройка исключений.
  • 🔐 Удаление секретов: Опция для автоматической вырезки API-ключей, токенов и паролей. (Может работать криво!!!)
  • ✨ Очистка для ИИ: Специальный режим, который убирает все комментарии и лишние пустые строки, чтобы не тратить драгоценный контекст модели.
  • 📄 Гибкий экспорт: Сохраняй результат в .txt .md или .pdf с подсветкой синтаксиса.
  • 🎨 Темная и светлая темы: Чтобы глаза не вытекали.
  • 📁 Интерактивное дерево проекта: Раскрывай папки и выбирай файлы галочками.
  • 🌐 Локализация: Русский и English.
  • 🎉 Конфетти при успехе: Потому что захотел.
  • 👨‍💻 CLI-режим: Если не нужны кнопочки или нужна интеграция.

🚀 Как запустить

Для запуска нужен только Python 3.

# 1. Клонируй репозиторий
git clone https://github.com/MKultra6969/ProjectMergerTool

# 2. Перейди в папку
cd ProjectMergerTool/App/

# 3. Запусти лаунчер
python ProjectMergerWeb.py

Скрипт сам установит нужные зависимости (Flask, pathspec, WeasyPrint, Pygments), запустит локальный веб-сервер и откроет страницу в твоем браузере.

🛠 Как пользоваться

  1. Запустил ProjectMergerWeb.py.
  2. В открывшейся вкладке браузера вставил путь к своему проекту.
  3. Нажал "Сканировать".
  4. В дереве файлов поснимал галочки с того, что не нужно.
  5. Справа выбрал нужные опции: формат .md и "Очистить для ИИ" (рекомендуется).
  6. Нажал "Склеить выбранные файлы".
  7. Скачал файл и скормил его боту со словами: «Анализируй, кожаный мешок».

Отличный README! Сочный, дерзкий и по делу. Обновим его, чтобы отразить всю мощь CLI-режима, сохраняя твой неповторимый стиль.


👨‍💻 Для адептов консоли (CLI)

Если тебе лень запускать браузер, а мышка покрылась пылью, весь основной функционал доступен прямо из командной строки. Скрипт app.py можно запустить с аргументами для полной автоматизации.

Запуск в режиме CLI:

# Общий вид
python app.py [аргументы]

Управление исключениями в CLI (важный момент!)

CLI-режим автоматически использует те же правила исключений, что и веб-интерфейс, но с некоторыми особенностями:

  • .gitignore: По умолчанию всегда используется для фильтрации файлов. Если это поведение не нужно, его можно отключить флагом --no-gitignore.
  • merger_exclusions.json: Этот файл используется всегда, если он существует в папке с приложением. CLI-режим не имеет опции для его отключения. Это тот же самый файл, который вы настраиваете через веб-интерфейс.

Как редактировать merger_exclusions.json для CLI?

  1. Путь воина: Открыть merger_exclusions.json в редакторе и править руками.
  2. Путь хитреца: Один раз запустить веб-интерфейс (ProjectMergerWeb.py), настроить все исключения через удобные поля, нажать «Сохранить», а затем пользоваться CLI, который будет подхватывать эти сохраненные настройки.

Основные аргументы:

  • -p, --path — Путь к проекту, который нужно обработать (по умолчанию: текущая папка).
  • -o, --output — Путь и имя выходного файла. Если не указан, создастся файл типа имя_проекта.txt в текущей директории.
  • -f, --format — Формат вывода: txt, md или pdf (по умолчанию: txt).
  • --remove-secrets — Активирует удаление секретов.
  • --clear-ai — Активирует очистку для ИИ (удаляет комменты и пустые строки, включает удаление секретов).
  • --no-gitignore — Заставляет скрипт полностью игнорировать файл .gitignore.
  • -l, --lang — Язык заголовков в итоговом файле: ru или en (по умолчанию: en).
  • --help — Показать полную справку со всеми командами.

Примеры использования:

# 1. Просто собрать текущую директорию в .txt
python app.py

# 2. Собрать проект из другой папки в Markdown-файл с очисткой для ИИ
python app.py -p "C:\Users\User\Desktop\MyProject" -f md --clear-ai

# 3. Собрать проект в PDF с кастомным именем, игнорируя .gitignore
python app.py -p ../my-awesome-app -f pdf --no-gitignore -o "D:\merged\AwesomeApp.pdf"

# 4. Увидеть все доступные опции
python app.py --help

P.s.

MKultra69

  • Создано с ненавистью, как всегда. Лицензия — WTFPL. DO WHAT THE FUCK YOU WANT.
  • В коде куча говна, комменты, калл, возможно нечитаемый местами код, но мне как то всеравно.

About

CLI & Web tool for merging your project into one .txt|.md|.pdf

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages