linked channel and anonymous admin support

This commit is contained in:
Rongrong 2020-11-10 01:46:55 +08:00
parent 2bbf781351
commit 8fda8d6c88
No known key found for this signature in database
GPG Key ID: A36C9CDA260CB264

View File

@ -2,6 +2,8 @@ import os
import re import re
from telegram.ext import Updater, MessageHandler, filters from telegram.ext import Updater, MessageHandler, filters
TELEGRAM = 777000
GROUP = 1087968824
Filters = filters.Filters Filters = filters.Filters
parser = re.compile(r'^\/(\S+)([  ]*)(.*)$') parser = re.compile(r'^\/(\S+)([  ]*)(.*)$')
@ -12,6 +14,27 @@ else:
raise Exception('no token') raise Exception('no token')
def get_user(msg):
if msg['from']['id'] == TELEGRAM:
return {'first_name': msg['forward_from_chat']['title'], 'id': msg['forward_from_chat']['id']}
elif msg['from']['id'] == GROUP:
return {'first_name': msg['chat']['title'], 'id': msg['chat']['id']}
else:
return msg['from']
def get_users(msg):
msg_from = msg
if 'reply_to_message' in msg.keys():
msg_rpl = msg['reply_to_message']
else:
msg_rpl = msg_from.copy()
from_user, rpl_user = get_user(msg_from), get_user(msg_rpl)
if rpl_user == from_user:
rpl_user = {'first_name': '自己', 'id': rpl_user['id']}
return from_user, rpl_user
def mention(user): def mention(user):
space = ' ' space = ' '
if 'last_name' not in user: if 'last_name' not in user:
@ -36,17 +59,12 @@ def reply(update, context):
print(update.to_dict()) print(update.to_dict())
msg = update.to_dict()['message'] msg = update.to_dict()['message']
command = msg['text'] command = msg['text']
msg_from = msg['from'] from_user, rpl_user = get_users(msg)
if 'reply_to_message' in msg.keys() and msg['reply_to_message']['from'] != msg_from: mention_from, mention_rpl = mention(from_user), mention(rpl_user)
msg_rpl = msg['reply_to_message']['from']
else:
msg_rpl = {'first_name': '自己', 'id': msg_from['id']}
mention_from = mention(msg_from)
mention_rpl = mention(msg_rpl)
text = get_text(mention_from, mention_rpl, command) text = get_text(mention_from, mention_rpl, command)
print(text) print(text, end='\n\n')
update.effective_message.reply_text(text, parse_mode='Markdown') update.effective_message.reply_text(text, parse_mode='Markdown')