initializare
This commit is contained in:
123
get_telegram_chat_id.py
Normal file
123
get_telegram_chat_id.py
Normal file
@@ -0,0 +1,123 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Helper script pentru obținerea Chat ID Telegram (pentru DM și grupuri)
|
||||
"""
|
||||
|
||||
import os
|
||||
import requests
|
||||
from dotenv import load_dotenv
|
||||
|
||||
# Load environment
|
||||
load_dotenv()
|
||||
|
||||
BOT_TOKEN = os.getenv('TELEGRAM_BOT_TOKEN')
|
||||
|
||||
if not BOT_TOKEN:
|
||||
print("❌ TELEGRAM_BOT_TOKEN nu este setat în .env!")
|
||||
print("\nAdaugă în .env:")
|
||||
print("TELEGRAM_BOT_TOKEN=123456789:ABCdefGHIjklMNOpqrs")
|
||||
exit(1)
|
||||
|
||||
def get_updates():
|
||||
"""Preia ultimele update-uri de la bot"""
|
||||
url = f"https://api.telegram.org/bot{BOT_TOKEN}/getUpdates"
|
||||
response = requests.get(url)
|
||||
return response.json()
|
||||
|
||||
def main():
|
||||
print("=" * 60)
|
||||
print(" Telegram Chat ID Helper")
|
||||
print("=" * 60)
|
||||
print()
|
||||
print("📱 Instrucțiuni:")
|
||||
print("1. Trimite /start către bot (DM)")
|
||||
print(" SAU")
|
||||
print("2. Trimite /start în grupul unde ai bot-ul")
|
||||
print()
|
||||
print("Apasă Enter după ce ai trimis mesajul...")
|
||||
input()
|
||||
|
||||
print("\n🔍 Căutare mesaje...")
|
||||
data = get_updates()
|
||||
|
||||
if not data.get('ok'):
|
||||
print(f"❌ Eroare API: {data}")
|
||||
return
|
||||
|
||||
results = data.get('result', [])
|
||||
if not results:
|
||||
print("❌ Niciun mesaj găsit!")
|
||||
print("\nAsigură-te că:")
|
||||
print("• Ai trimis /start către bot SAU în grup")
|
||||
print("• Bot-ul este adăugat în grup (dacă folosești grup)")
|
||||
print("• Token-ul este corect")
|
||||
return
|
||||
|
||||
print(f"\n✅ Găsit {len(results)} mesaje!\n")
|
||||
print("=" * 60)
|
||||
|
||||
# Procesează ultimele mesaje
|
||||
seen_chats = {}
|
||||
|
||||
for update in results:
|
||||
if 'message' in update:
|
||||
msg = update['message']
|
||||
chat = msg['chat']
|
||||
chat_id = chat['id']
|
||||
chat_type = chat['type']
|
||||
|
||||
# Evită duplicate
|
||||
if chat_id in seen_chats:
|
||||
continue
|
||||
|
||||
seen_chats[chat_id] = True
|
||||
|
||||
# Detalii chat
|
||||
if chat_type == 'private':
|
||||
# DM
|
||||
user = msg['from']
|
||||
print(f"📱 DM cu {user.get('first_name', 'Unknown')}")
|
||||
print(f" User ID: {user['id']}")
|
||||
print(f" Username: @{user.get('username', 'N/A')}")
|
||||
print(f" Chat ID: {chat_id}")
|
||||
elif chat_type in ['group', 'supergroup']:
|
||||
# Grup
|
||||
print(f"👥 Grup: {chat.get('title', 'Unknown')}")
|
||||
print(f" Chat ID: {chat_id} ⚠️ NEGATIV pentru grupuri!")
|
||||
print(f" Tip: {chat_type}")
|
||||
# User care a trimis mesajul
|
||||
user = msg['from']
|
||||
print(f" Mesaj de la: @{user.get('username', 'Unknown')} (ID: {user['id']})")
|
||||
|
||||
print()
|
||||
|
||||
print("=" * 60)
|
||||
print("\n💡 Pentru configurare .env:")
|
||||
print()
|
||||
|
||||
# Recomandări
|
||||
for chat_id, chat_data in seen_chats.items():
|
||||
if chat_id < 0: # Grup
|
||||
print(f"# Pentru grup (notificări + comenzi):")
|
||||
print(f"TELEGRAM_CHAT_ID={chat_id}")
|
||||
else: # DM
|
||||
print(f"# Pentru DM:")
|
||||
print(f"TELEGRAM_CHAT_ID={chat_id}")
|
||||
|
||||
print()
|
||||
print("# User IDs autorizați (pot rula /scrape):")
|
||||
print("TELEGRAM_ALLOWED_USER_IDS=", end="")
|
||||
|
||||
# Colectează user IDs unice
|
||||
user_ids = set()
|
||||
for update in results:
|
||||
if 'message' in update:
|
||||
user_id = update['message']['from']['id']
|
||||
user_ids.add(user_id)
|
||||
|
||||
print(",".join(str(uid) for uid in sorted(user_ids)))
|
||||
print()
|
||||
print("=" * 60)
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
Reference in New Issue
Block a user