Initial commit: Hermes Agent skills collection
- Trading skills (OKX, dividend, lottery, quantitative) - Creative skills (ASCII art, diagrams, video) - Development skills (GitHub, debugging, TDD) - Research skills (arXiv, blog monitoring) - Productivity skills (email, documents, notes) - MCP integration skills - Custom user skills
This commit is contained in:
@@ -0,0 +1,60 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Telegram MTProto login script for first-time authentication.
|
||||
Bypasses mcp-telegram's pydantic-settings env_file conflict.
|
||||
|
||||
Usage (user must run interactively via SSH):
|
||||
bash /tmp/tg_login.sh
|
||||
|
||||
The script will:
|
||||
1. Ask for phone number
|
||||
2. Send verification code to Telegram
|
||||
3. Prompt for code (type immediately when received)
|
||||
4. Handle 2FA if needed
|
||||
5. Save session for mcp-telegram to use
|
||||
"""
|
||||
import asyncio
|
||||
from telethon import TelegramClient
|
||||
from telethon.errors import SessionPasswordNeededError
|
||||
import socks
|
||||
import sys
|
||||
import os
|
||||
|
||||
# === Configuration ===
|
||||
# Update these or read from env
|
||||
API_ID = int(os.environ.get('TG_API_ID', '0'))
|
||||
API_HASH = os.environ.get('TG_API_HASH', '')
|
||||
SESSION_PATH = os.path.expanduser('~/.local/share/state/mcp-telegram/mcp_telegram_session')
|
||||
PROXY = (socks.SOCKS5, '127.0.0.1', 7890) # Mihomo
|
||||
|
||||
|
||||
async def main():
|
||||
if not API_ID or not API_HASH:
|
||||
print("Error: Set TG_API_ID and TG_API_HASH environment variables first.")
|
||||
print(" export TG_API_ID=your_id")
|
||||
print(" export TG_API_HASH=your_hash")
|
||||
sys.exit(1)
|
||||
|
||||
phone = input("Phone number (with country code, e.g. +1234567890): ").strip()
|
||||
|
||||
# Ensure session directory exists
|
||||
os.makedirs(os.path.dirname(SESSION_PATH), exist_ok=True)
|
||||
|
||||
client = TelegramClient(SESSION_PATH, API_ID, API_HASH, proxy=PROXY)
|
||||
|
||||
try:
|
||||
await client.start(phone=phone)
|
||||
except SessionPasswordNeededError:
|
||||
pwd = input("2FA password: ").strip()
|
||||
await client.sign_in(password=pwd)
|
||||
|
||||
me = await client.get_me()
|
||||
print(f"\n✅ Login successful!")
|
||||
print(f" User: {me.username} (ID: {me.id})")
|
||||
print(f" Session saved to: {SESSION_PATH}")
|
||||
print(f"\nYou can now use mcp-telegram MCP server.")
|
||||
await client.disconnect()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
asyncio.run(main())
|
||||
Reference in New Issue
Block a user