СИСТЕМА
Kanalga Telegram’da o‘tish
1 278
Obunachilar
+424 soatlar
Ma'lumot yo'q7 kunlar
-2030 kunlar
Postlar arxiv
1 278
⚡️Друзья, срочно нужно ваше мнение!⚡️
Стоит ли мне со своими разработками и контентом переходить на МАКС?
Не уйти полностью а вести там параллельно канал!
Просто как будто народу в ТГ всё меньше и меньше((
Или это не ТРУ нихуя?)))
В общем скажите что думаете!))⬇️
1 278
👌 Думаю пришло время выбрать новое направление! 👌
Друзья предлагаю приглашаю вас на новое голосование!
Предлагаю 3 варианта:
1️⃣Свой ВПН (актуалочка) 📶
2️⃣ Бот в Дискорд (тоже актуалочка в принципе) 📱
3️⃣ Интерактивная карта подписчиков (Дичь полная, но очень прикольно для админов, визуал аудитории, плюс можно будет наприме взрывать не активных! 💥
Если какие-то варианты не понятны, пишите в комменты!))
1 278
Ребята, может кто не понял, уточню.
Когда вы закидываете файл или создаете проект,делаете коммит и тд, в боте @Git_GramBOT,
всё это отображается в канале https://t.me/Git_Gram, а не чате с ботом.
1 278
Задеплоил GitGram(@Git_GramBOT), всё работет.
Если будут баги пишите в сандбокс.
Функционал уже не плохой, в планах было добавить ещё кучу всего.
Но я не уверен что вам это еще интересно...
Давайте так:
Если этот пост наберёт:
20 🔥 - то я приделаю
/tree (показывает структуру проекта как дерево папок)
50🔥 - Code review (код‑ревью с комментариями)
100🔥 -аналог CodeSpace
Жмите на огоньки, тогда я пойму что вам это ещё интересно!)
А если не наберет, то перейдем к другим темам.
#Gitgram1 278
GitGram: запуск бета-теста (v0.1)
Основные возможности:
/init <имя> — создание проекта и треда
загрузка файлов / ZIP → добавление с обработкой .gitignore
/commit <сообщение> — фиксация изменений + пост в канал
/ls — список файлов
/status — статус изменений
/diff <файл> — unified diff между версиями
/branch <имя>, /checkout <имя> — создание и переключение веток
/branches — список веток
Как подключиться:
@Git_GramBOT
/start
/init test_projectзагружайте файлы, тестируйте команды БАГИ : @sandbox_hardcore #Gitgram
1 278
👌 /diff заработал 👌
⏺Добавил
get_file_versions в БД — все версии файла с содержимым и коммитами.
def get_file_versions(self, project_id, filename):
"""Возвращает все версии файла"""
with sqlite3.connect(self.db_path) as conn:
c = conn.cursor()
c.execute("""
SELECT fv.id, fv.content, fv.version_number, fv.commit_id, c.message, c.timestamp
FROM file_versions fv
LEFT JOIN commits c ON fv.commit_id = c.id
WHERE fv.file_id = (SELECT id FROM files WHERE project_id = ? AND filename = ?)
ORDER BY fv.version_number DESC
""", (project_id, filename))
return c.fetchall()
⏺Создал create_pretty_diff — unified diff через difflib с обрезкой на 30 строк и форматированием
⏺Команда /diff берёт две последние версии и выводит diff в ```diff
🐞Баги сегодня:
⏺current_project не устанавливался после /init
⏺файл без проекта → новый проект с именем файла
⏺удалил БД → забыл /start → юзер не существует в базе
Фикс: db.set_current_project сразу после создания проекта в cmd_init.
Теперь работает нормально.
Дальше права доступа.
Вся кухня в sandbox
#Gitgram1 278
Gitgram — ветки напилены 🪵
Что сделано сегодня:
⏺Добавлено поле
current_branch в таблицу projects
⏺Создана таблица branches:
CREATE TABLE branches (
id INTEGER PRIMARY KEY AUTOINCREMENT,
project_id INTEGER,
name TEXT,
created_at TIMESTAMP,
FOREIGN KEY(project_id) REFERENCES projects(id)
)
➡️ Написана функция get_current_branch(project_id) — возвращает текущую ветку (по умолчанию main)
➡️Реализована команда /branches — выводит список всех веток проекта + отмечает текущую. Если веток нет — автоматически создаёт main
➡️Реализована команда /branch <name> — создаёт новую ветку (с проверкой на существование)
➡️Реализована команда /checkout <name> — переключает на указанную ветку (обновляет current_branch)
Баг и фикс
Вылетел sqlite3.OperationalError: no such column: current_branch🤬
Решение: удалил старую базу, запустил бота заново — колонка добавилась автоматически.👾
Тесты
Создал ветку test → переключился → всё работает заебись ⚡️
Скриншоты тестов в чате
Далее создам функцию diff
#Gitgram1 278
💀БОТ СЪЕЛ САМ СЕБЯ И СДОХ НАХУЙ💀
Вчера ночью случайно закинул свой bot.py в GitGram.
Бот принял, распарсил, запостил превью в канал — и Telegram решил, что это
self-replication или подозрительный спам.
Почему TG так реагирует:
антиспам сейчас жёстко ищет паттерны, похожие на вредоносный код или автоматизированное размножение ботов.
Когда бот получает и публично постит код, который выглядит как его собственный (aiogram, handlers, BOT_TOKEN и т.д.), система видит «бот распространяет свой код» → флаг «потенциальная малварь / спам-бот».
Даже если токены отдельно — структура + публичный пост хватило.
Результат:
⏺выкинуло со всех сессий
⏺зашёл заново — ок
⏺бот стал ghost с ❄️ и «Аккаунт заморожен»
⏺писать нельзя, профиль удалённый
Сейчас жду оттаивания (обычно 1–3 дня).
Пока основной в коме — ветки пилю на тестовом боте
Не останавливаемся, кодим дальше.
😾Мне ваще похуй все блокировки,я всегда найду выход!😾
#GitGram1 278
GitGram: День 6 переходим к веткам 🌳
База готова:
init, commit, ls, status, log, ZIP с .gitignore — всё работает.
Дальше делаю ветки (branches) — чтобы можно было пилить фичи параллельно, не ломая основную ветку.
Что будет:
🔄/branch create имя — создаёт новую ветку
🔄/branch switch имя — переключаешься на ветку
🔄/branch list — показывает все ветки проекта
🔄Коммиты идут в текущую ветку
🔄В постах канала будет видно, в какой ветке коммит ([main], [feature-parser] и т.д.)
Скоро начну — весь процесс будет ЗДЕСЬ
#GitGram1 278
GitGram: День 5 .Победа над Markdown 👍
Долбоебизм с экранированием достиг апогея. Telegram упорно пытался парсить символы внутри блоков кода, даже когда они были обернуты в
```. < !DOCTYPE в HTML-файлах триггерил парсер, точки и скобки сыпали ошибками.
Отправка нормального HTML-кода превратилась в АД.
🔵Решение: забили нахуй на Markdown для кода.
🔵Перешли на HTML-форматирование:
🔵В канал теперь летит <pre><code> с экранированием через safe_html()
🔵Пользователю отправляем обычный текст без parse_mode (чтобы точка не бесилась)
🔵Убрали двойное экранирование и лишние переменные
🔵Файлы прикрепляются с простым caption
🔵Парсер отключен = ошибок нет. Код летит с подсветкой, HTML не ломается, точка не ебет мозг.
Но это ещё далеко не всё. Продолжение следует.
#GitGram1 278
GitGram: день 4 Markdown снова ебет мозг 😡
Вчера победил экранирование, сегодня оно вылезло снова.
Что сломалось:
😡
/status и /log упали из-за спецсимволов (Italic entity, тире)
🤬/ignored не работал — в БД не обновлялся текущий проект
😡ZIP не грузился — декоратор накрылся
ФИКС:
➡️Переписал экранирование во всех командах — теперь каждый текст проходит через escape_md()
➡️В /log заменил длинное тире на дефис (телеграм его тоже хочет экранировать)
➡️Убрал отдельный декоратор для ZIP, проверка внутри handle_document — заработало
➡️Добавил таблицу ignored_files для .idea/, __pycache__, venv. Пока через пень-колоду, буду доделывать.
Сейчас работают:
ZIP, ignore, status, commit
Запиливаю:
🟢/get - чтобы скачивать файлы из БД
🟡 /cat - чтобы смотреть содержимое в чате
Вся залупа ТУТ
#GitGram1 278
GitGram: день третий — форматирование снова по пизде 🔥
Вчера почти победил Markdown. Сегодня начал добавлять новый функционал и всё снова разъебалось.
Что добавил:
➡️Удаление файлов
(/rm) и проектов (/rmproject)
➡️Игнорируемые файлы (аналог .gitignore)
➡️Загрузку проектов целиком через ZIP
Что сломалось:
Всё, что связано с форматированием. Опять.
🥲Сначала ZIP-обработчик работал, но файлы в канал уходили без названия и автора. Пофиксил.
😡Потом упала загрузка обычных файлов — забыл метод в базе данных. Добавил.
🤬Потом телеграм сам лёг: "Указанное сетевое имя более недоступно". Ну ок, бывает.
content = escape_markdown_v2(content) # ← ЭТА ХУЙНЯ ВСЁ ЛОМАЕТ
Убрал нахуй — работать перестало по-другому. Вернул — опять ошибки с экранированием.
Текущий статус:
💬/rm и /rmproject работают (с подтверждением, чтобы случайно не выпилить проект)
💬.gitignore, ZIP сделал но не тестил,не дошёл
Продолжение следует...
#GitGram1 278
Друзья привет всех с Праздником!!⚡️⚡️
Среди нас есть дизайнеры или типо того?
Надо логотип сделать!👾
Пишите в лс или в комменты⬇️
Заранее спасибки!!
1 278
GitGram: день второй — экранирование это ада🔥
Вчера накидал архитектуру, сегодня начал пилить код. И началось...
Что хотел:
Бот принимает файлы, кидает их в канал с подсветкой синтаксиса. Красота.
Что получил:
Telegram говорит "иди нахуй со своими символами".
Проблема:
Markdown в Telegram требует экранировать специальные символы. А в коде этих символов — дохуя. Точки, подчеркивания, обратные слеши — всё надо экранировать, но так, чтобы сам код не разъебался.
Решение:
Написал свой экранировщик:
# Сначала экранируем точки и подчеркивания
content = content.replace('.', '\\.')
content = content.replace('_', '\\_')
# Потом обратную косую черту
content = content.replace('\\', '\\\\')
Итог:
aiogram.exceptions.TelegramBadRequest: Telegram server says - Bad Request: can't parse entities: Character '.' is reserved and must be escaped with the preceding '\'
Весь треш ТУТ😈
#GitGram1 278
👾 НАЧИНАЕМ РАЗРАБОТКУ GITGRAM
Git прямо в Telegram.
Что это будет:
Полноценный контроль версий внутри мессенджера. Инициализация репозиториев, коммиты, ветки, история изменений — всё через бота.
💬Репозитории живут в Telegram-канале как отдельные треды
💬Код с подсветкой синтаксиса и навигацией по версиям
💬Управление проектами с телефона без терминала и IDE
Сейчас:
Проектируем архитектуру. За процессом разработки можно следить здесь
Канал проекта: https://t.me/Git_Gram
#GitGram
