Nuclear weapon of boop to boop others on barq
  • Python 99.6%
  • Dockerfile 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Drive 428b06c2a0 Make the repository push-ready for deployment
Silent non-admin handling routes alerts/auto-collect into Telegram forum topics, and the README + .gitignore document setup while keeping secrets out of git.

Made-with: Cursor
2026-03-30 10:50:10 +02:00
deploy Make the repository push-ready for deployment 2026-03-30 10:50:10 +02:00
docs Make the repository push-ready for deployment 2026-03-30 10:50:10 +02:00
src/barq_boops Make the repository push-ready for deployment 2026-03-30 10:50:10 +02:00
.env.example Make the repository push-ready for deployment 2026-03-30 10:50:10 +02:00
.gitignore Make the repository push-ready for deployment 2026-03-30 10:50:10 +02:00
config.example.yaml Make the repository push-ready for deployment 2026-03-30 10:50:10 +02:00
Dockerfile Make the repository push-ready for deployment 2026-03-30 10:50:10 +02:00
pyproject.toml Make the repository push-ready for deployment 2026-03-30 10:50:10 +02:00
README.md Make the repository push-ready for deployment 2026-03-30 10:50:10 +02:00

Barq Boops Bot (Telegram)

Bot Telegram qui orchestre des actions côté Barq :

  • recherche de profils par pseudo (commande /boop), puis nuke/boop via une mutation GraphQL
  • collecte automatique quotidienne des boops des workers vers le stockeur (/collect + job journalier)
  • alerting “intrusion” : si quelqu’un d’autre que les admins contacte le bot, aucune réponse n’est envoyée à l’expéditeur, mais une notification est postée dans un sujet dédié d’un supergroupe Telegram

Sécurité (important)

  • Ne commit jamais de secrets dans git.
  • Le bot lit :
    • TELEGRAM_BOT_TOKEN depuis ./.env (ou env:... dans config.yaml)
    • les jetons Barq (OAuth/ID token) depuis secrets/*.json
  • Ces fichiers contiennent des tokens (JWT) : ils doivent rester en local (ignorés par .gitignore).

Prérequis

  • Python 3.11+
  • un bot Telegram (token via BotFather)
  • un supergroupe Telegram “forum” activant les topics

Installation locale

  1. Cloner / copier le projet sur ta machine
  2. Créer un environnement virtuel :
python3 -m venv .venv
. .venv/bin/activate
pip install -U pip
pip install -e .
  1. Préparer la configuration :
cp config.example.yaml config.yaml
cp .env.example .env
  1. Remplir .env :
# dans .env
TELEGRAM_BOT_TOKEN=xxxxxxxx:yyyyyyyy

Config Telegram (intrusion + auto-collect dans des topics)

Si tu veux que les alertes et l’auto-collect apparaissent dans des topics :

  1. Récupère le forum_chat_id et les topic ids depuis les liens :
  • Exemple alertes : https://t.me/c/3833851867/2
    • forum_chat_id = -1003833851867
    • intrusion_topic_id = 2
  • Exemple auto-collect : https://t.me/c/3833851867/3
    • auto_collect_topic_id = 3
  1. Dans config.yaml, renseigne :
  • telegram.admin_user_ids
  • telegram.forum_chat_id
  • telegram.intrusion_topic_id
  • telegram.auto_collect_topic_id

Notes :

  • si forum_chat_id + intrusion_topic_id sont définis, les alertes non-admins partent dans le topic “intrusion”
  • idem pour l’auto-collect
  • sinon, les alertes partent en MP aux admins (telegram.admin_user_ids)

Config Barq (sessions OAuth dans secrets/*.json)

Ton config.yaml définit barq.accounts (un id par compte) et, pour chaque compte, un session_file (ex: secrets/worker1.json).

Pour générer les fichiers de session :

Login via OAuth web (méthode interactive)

barq-boop-login --config config.yaml --account storer
barq-boop-login --config config.yaml --account worker1
...

Login headless OTP email (méthode interactive email)

barq-boop-reauth --config config.yaml --account burner --email you@example.com
barq-boop-code --config config.yaml --account burner <OTP_CODE>

Démarrer le bot

barq-boop-bot --config ./config.yaml

Commandes Telegram

  • /boop <pseudo> [count]
    • recherche + choix d’un profil + boop/nuke si mutual
  • /collect
    • collecte les boops des workers vers le stockeur
  • /balance
    • affiche le solde du stockeur
  • /reauth <id> <email> + /code <id> <otp_code>
    • reconnexion via OTP email
  • /retoken <id> <bearer_token>
    • mise à jour manuelle du token (le bot essaie de supprimer le message contenant le token)

Déploiement systemd (sur Linux)

Le dépôt fournit un template dans deploy/barq-boop-bot.service.

Étapes :

  1. Copier le service :
sudo cp deploy/barq-boop-bot.service /etc/systemd/system/
  1. Adapter les chemins :
  • WorkingDirectory=... (doit contenir config.yaml + .env)
  • ExecStart=... (doit pointer vers ton .venv/bin/barq-boop-bot)
  • User= / Group= (optionnel)
  1. Puis activer :
sudo systemctl daemon-reload
sudo systemctl enable --now barq-boop-bot.service
sudo systemctl status barq-boop-bot.service
sudo journalctl -u barq-boop-bot.service -f

Référence

  • docs/API.md : note reverse-engineering Barq (mutations et OAuth)