def on_callback_query(msg):
query_id, chat_id, query_data = telepot.glance(msg, flavor='callback_query')
# print(msg)
# print(query_data)
print('Recieved query ' + query_id)
url = msg['message']['reply_to_message']['text'].split(' ')[1]
msg_idf = telepot.message_identifier(msg['message'])
callback_text = ''
global delay
if query_data == 'save':
if delay != '':
if datetime.datetime.now() > delay:
r = requests.get('https://archive.fo/')
html = r.text
soup = BeautifulSoup(html, 'lxml')
submitid = soup.find('input').get('value')
headers = { 'User-agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36' }
values = { 'submitid': submitid, 'url': url, 'anyway': '1' }
r = requests.post('https://archive.fo/submit/', data=values, headers=headers)
uri = r.text
archive_uri = uri.split('"')[1]
delay = datetime.datetime.now() + datetime.timedelta(minutes=3)
if 'archive.fo' in archive_uri:
pass
else:
callback_text = 'Something went wrong, let @raku_cat know'
else:
callback_text = 'Saving on cooldown, please try again in a few miniutes.'
else:
uri = msg['message']['text']
foo, keyboard = link_handler(url)
dt = uri.split('/')[3]
dt = datetime.datetime.strptime(dt, '%Y%m%d%H%M%S')
timegate = 'https://archive.fo/timegate/'
mc = MementoClient(timegate_uri=timegate, check_native_timegate=False)
if query_data == 'back':
try:
archive_uri = mc.get_memento_info(url, dt).get('mementos').get('prev').get('uri')[0]
except AttributeError:
callback_text = 'No older archives or something went wrong.'
elif query_data == 'next':
try:
archive_uri = mc.get_memento_info(uri, dt).get('mementos').get('next').get('uri')[0]
except AttributeError:
callback_text = 'No newer archives or something went wrong.'
try:
bot.editMessageText(msg_idf, archive_uri)
except:
pass
try:
bot.editMessageText(msg_idf, archive_uri, reply_markup=keyboard)
except:
pass
bot.answerCallbackQuery(query_id, text=callback_text)
print('Responding to callback ' + query_id)
评论列表
文章目录