fixes-and-logs
This commit is contained in:
parent
6ce2018b2b
commit
eb9540377b
48
api/index.py
48
api/index.py
|
@ -15,12 +15,15 @@ BUTTON_OK = os.environ.get('BUTTON_OK') or 'Ok'
|
|||
BUTTON_NO = os.environ.get('BUTTON_NO') or 'No'
|
||||
|
||||
newcomers = {}
|
||||
app.config.REGISTERED = False
|
||||
|
||||
|
||||
@app.route('/', methods=["GET", "PUT", "OPTIONS"])
|
||||
@app.route('/', methods=["GET"])
|
||||
async def register(req):
|
||||
if not app.config.REGISTERED:
|
||||
r = register_webhook(WEBHOOK)
|
||||
print('\n\t\t\tWEBHOOK REGISTERED\n')
|
||||
print(f'\n\t\t\tWEBHOOK REGISTERED:\n{r.json()}')
|
||||
app.config.REGISTERED = True
|
||||
return json(r.json())
|
||||
|
||||
|
||||
|
@ -29,15 +32,15 @@ async def handle(req):
|
|||
print(req)
|
||||
try:
|
||||
update = req.json
|
||||
# print(update)
|
||||
print(update)
|
||||
msg = update.get('message', update.get('my_chat_member'))
|
||||
if msg:
|
||||
if str(msg['chat']['id']) == CHAT_ID:
|
||||
print(f'message in chat')
|
||||
if 'new_chat_member' in msg:
|
||||
chat_id = str(msg['chat']['id'])
|
||||
member_id = str(msg['new_chat_member']['id'])
|
||||
print(f'new member {member_id}')
|
||||
newcomers[member_id] = 'newcomer'
|
||||
reply_markup = {
|
||||
"inline_keyboard": [
|
||||
[
|
||||
|
@ -46,35 +49,56 @@ async def handle(req):
|
|||
]
|
||||
]
|
||||
}
|
||||
welcome_msg_id = send_message(
|
||||
r = send_message(
|
||||
chat_id,
|
||||
WELCOME_MSG,
|
||||
reply_to=msg['message_id'],
|
||||
reply_markup=reply_markup
|
||||
)
|
||||
newcomers[member_id] = 'newcomer' + welcome_msg_id
|
||||
welcome_msg_id = r.json()['result']['message_id']
|
||||
print(f'welcome message id: {welcome_msg_id}')
|
||||
newcomers[member_id] = f'newcomer{welcome_msg_id}'
|
||||
elif 'text' in msg:
|
||||
chat_id = str(msg['chat']['id'])
|
||||
member_id = str(msg['from']['id'])
|
||||
if member_id in newcomers:
|
||||
print(f'new member speak {msg["text"]}')
|
||||
if newcomers[member_id].startswith('newcomer'):
|
||||
print('watched newcomer')
|
||||
answer = msg['text']
|
||||
if BUTTON_OK.lower() in answer.lower():
|
||||
del newcomers[member_id]
|
||||
print('found answer')
|
||||
print('deleting welcome msg')
|
||||
r = delete_message(CHAT_ID, newcomers[member_id].replace('newcomer', ''))
|
||||
print(r.json())
|
||||
newcomers[member_id] = None
|
||||
else:
|
||||
delete_message(msg['message_id'])
|
||||
print('deleting some message')
|
||||
r = delete_message(CHAT_ID, msg['message_id'])
|
||||
print(r.json())
|
||||
else:
|
||||
print(f'old member speak {msg["text"]}')
|
||||
print(newcomers) # debug only
|
||||
if 'callback_query' in update:
|
||||
print(f'callback_query')
|
||||
callback_query = update['callback_query']
|
||||
chat_id = str(callback_query['message']['chat']['id'])
|
||||
if chat_id == CHAT_ID:
|
||||
print(f'callback_query in {CHAT_ID}')
|
||||
member_id = str(callback_query['from']['id'])
|
||||
callback_data = callback_query['data']
|
||||
if callback_data == BUTTON_NO:
|
||||
ban_member(member_id, CHAT_ID)
|
||||
print('deleting welcome msg')
|
||||
r = delete_message(CHAT_ID, newcomers[member_id].replace('newcomer', ''))
|
||||
print(r.json())
|
||||
newcomers[member_id] = None
|
||||
print('wrong answer')
|
||||
r = ban_member(CHAT_ID, member_id)
|
||||
print(r.json())
|
||||
elif callback_data == BUTTON_OK:
|
||||
del newcomers[member_id]
|
||||
delete_message(CHAT_ID, newcomers[member_id].replace('newcomer', ''))
|
||||
print('proper answer')
|
||||
r = delete_message(CHAT_ID, newcomers[member_id].replace('newcomer', ''))
|
||||
print(r.json())
|
||||
newcomers[member_id] = None
|
||||
except Exception:
|
||||
pass
|
||||
return text('ok')
|
||||
|
|
|
@ -7,15 +7,16 @@ apiBase = f"https://api.telegram.org/bot{TOKEN}/"
|
|||
|
||||
|
||||
def register_webhook(url):
|
||||
return requests.get(
|
||||
r = requests.get(
|
||||
apiBase + f'setWebhook?url={url}'
|
||||
)
|
||||
return r
|
||||
|
||||
|
||||
def delete_message(cid, mid):
|
||||
return requests.post(
|
||||
apiBase + f"deleteMessage?chat_id={cid}&message_id={mid}"
|
||||
)
|
||||
def delete_message(cid: str, mid: str):
|
||||
url = apiBase + f"deleteMessage?chat_id={cid}&message_id={mid}"
|
||||
r = requests.post(url)
|
||||
return r
|
||||
|
||||
|
||||
def send_message(cid, body, reply_to=None, reply_markup=None):
|
||||
|
|
Loading…
Reference in New Issue
Block a user