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