7

Git в Телеграм??...

Серия GitGram
Git в Телеграм??...

Решил запилить бота, который превращает Telegram в Git-репозиторий. Чтобы можно было через личку кидать файлы, коммитить, смотреть историю — и всё это в публичном канале с тредами.

Как это будет работать:

  • Кидаешь боту файл — создаётся проект (или добавляется в текущий)

  • Файлы улетают в канал @gitgram (каждый проект — отдельный тред)

  • Команды: /init, /commit, /log, /ls, /status

  • Версионность хранится в SQLite, можно откатиться назад
    Что уже готов:

  • Архитектура (сущности, связи)

  • Каркас бота на aiogram

  • База данных с таблицами под users, projects, files, commits, file_versions

    Первая проблема:

    Markdown в Telegram — это пиздец. Код постоянно содержит символы, которые нужно экранировать: точки, подчеркивания, обратные слеши. Если всё экранировать подряд — код превращается в кашу. Если не экранировать — Telegram шлёт нахуй. Пришлось писать свой костыль, который сначала экранирует одно, потом другое, и надеяться что ничего не сломается.

    python
    def escape_markdown_v2(text: str) -> str:
    """Экранирует все спецсимволы MarkdownV2"""
    special_chars = ['_', '*', '[', ']', '(', ')', '~', '`', '>', '#', '+', '-', '=', '|', '{', '}', '.', '!']
    for char in special_chars:
    text = text.replace(char, f'\\{char}')
    return text


    def format_code(filename: str, content: str) -> str:
    """Форматирует код для отправки в Telegram с подсветкой синтаксиса"""
    lang = get_language_from_filename(filename)

ДАЛЬШЕ:

  • Допилить .gitignore (чтоб венв и кеш не летели в канал)

  • Коллаборация — чтобы несколько человек могли пилить один проект

  • Приватные проекты (пока всё публичное)

    ЗАЧЕМ? А ГЛАВНОЕ НАХУЯ??

    Если хочешь не просто читать, а смотреть как это варится и иногда подсказывать — залетай в чат: @sandbox_hardcore
    Там всё как есть, без цензуры и без прикрас.
    Остальное в моем
    КАНАЛЕ!)

Правила сообщества

Публиковать могут пользователи с любым рейтингом. Однако!


Приветствуется:

• уважение к читателям и авторам

• конструктивность комментариев

• простота и информативность повествования

• тег python2 или python3, если актуально

• код публиковать в виде цитаты, либо ссылкой на специализированный сайт


Не рекомендуется:

• допускать оскорбления и провокации

• распространять вредоносное ПО

• просить решить вашу полноценную задачу за вас

• нарушать правила Пикабу

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества