feat: multi-user support - Config format: JSON with bot_token (global), users array - Each user has chat_id, AI config, email_accounts - Each email account has separate IMAP/SMTP with ssl/starttls - Config module: new dataclasses (UserConfig, ImapConfig, SmtpConfig) - find_user_by_chat_id() for callback dispatch - Main: email poller iterates all users, queues carry user object - Summarizer: accepts UserConfig, uses user-specific AI and chat_id - TG bot: all functions use bot_token string instead of TelegramConfig - Callback/message handlers look up user by chat_id - AI regen/hint threads use find_user_by_chat_id for AI config - Config example: config.example.json - Tests: 3/3 passing
This commit is contained in:
32
config.example.json
Normal file
32
config.example.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"bot_token": "your_bot_token_here",
|
||||
"polling_interval": 30,
|
||||
"users": [
|
||||
{
|
||||
"chat_id": "your_telegram_chat_id",
|
||||
"ai": {
|
||||
"api_key": "your_deepseek_api_key",
|
||||
"model": "deepseek-v4-flash",
|
||||
"base_url": "https://api.deepseek.com"
|
||||
},
|
||||
"email_accounts": [
|
||||
{
|
||||
"username": "you@126.com",
|
||||
"password": "your_imap_password",
|
||||
"imap": {
|
||||
"server": "imap.126.com",
|
||||
"port": 993,
|
||||
"ssl": true,
|
||||
"starttls": false
|
||||
},
|
||||
"smtp": {
|
||||
"server": "smtp.126.com",
|
||||
"port": 465,
|
||||
"ssl": true,
|
||||
"starttls": false
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user