|
|
|
@ -2,6 +2,9 @@
|
|
|
|
|
# -*- coding: utf-8 -*-
|
|
|
|
|
import glob
|
|
|
|
|
import logging
|
|
|
|
|
import os.path
|
|
|
|
|
|
|
|
|
|
import urllib3
|
|
|
|
|
|
|
|
|
|
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
|
|
|
|
|
from telegram import ParseMode
|
|
|
|
@ -128,22 +131,29 @@ def _get_book(update: Update, context: CallbackContext):
|
|
|
|
|
parse_mode=ParseMode.HTML
|
|
|
|
|
)
|
|
|
|
|
query.message.reply_text(
|
|
|
|
|
'Ti invio immediatamente il file, sii paziente se il tuo libro non arriva')
|
|
|
|
|
filepath = CALIBRE_DIR + query.data + "/*.pdf"
|
|
|
|
|
'Stiamo caricando il file, sii paziente se il tuo libro non arriva subito')
|
|
|
|
|
filepath = CALIBRE_DIR + query.data
|
|
|
|
|
if os.path.isdir(filepath + "/splitted"):
|
|
|
|
|
filepath = filepath + "/splitted"
|
|
|
|
|
try:
|
|
|
|
|
for file in glob.glob(filepath):
|
|
|
|
|
with open(file, 'rb') as doc_pdf:
|
|
|
|
|
context.bot.send_document(chat_id, doc_pdf)
|
|
|
|
|
for file in glob.glob(filepath + "/*.pdf"):
|
|
|
|
|
with open(file, 'rb') as doc:
|
|
|
|
|
context.bot.send_document(chat_id, doc, timeout=120)
|
|
|
|
|
logging.info("Sharing {}".format(file))
|
|
|
|
|
except FileNotFoundError:
|
|
|
|
|
except urllib3.exceptions.HTTPError as e: # cannot handle exception
|
|
|
|
|
logging.error(e)
|
|
|
|
|
query.message.reply_text(
|
|
|
|
|
"Abbiamo qualche problema di connessione, ritenta più tardi")
|
|
|
|
|
except Exception as e:
|
|
|
|
|
logging.info("cannot send {}".format(filepath))
|
|
|
|
|
logging.error(e)
|
|
|
|
|
query.message.reply_text(
|
|
|
|
|
"Mi dispiace non rieco a trovare il file, prova piu' tardi")
|
|
|
|
|
"Non riesco a mandarti il file, riprova più tardi")
|
|
|
|
|
return ConversationHandler.END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def _cnv_stop(update: Update, context: CallbackContext):
|
|
|
|
|
update.message.reply_text("ciao")
|
|
|
|
|
# context.bot.edit_message_reply_markup()
|
|
|
|
|
return ConversationHandler.END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -178,9 +188,12 @@ def __format_reply_markup(list_of_res):
|
|
|
|
|
return InlineKeyboardMarkup(inline_keyboard)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# def handle_error(update: Update, context: CallbackContext):
|
|
|
|
|
# context.bot.send_message(chat_id=update.callback_query.message.chat_id,
|
|
|
|
|
# text="Oh no, qualcosa è andato storto, riprova più tardi...")
|
|
|
|
|
def handle_error(update: Update, context: CallbackContext):
|
|
|
|
|
context.bot.send_message(
|
|
|
|
|
chat_id=update.callback_query.message.chat_id,
|
|
|
|
|
text="Oh no, qualcosa è andato storto, riprova più tardi...")
|
|
|
|
|
logging.error(context.error)
|
|
|
|
|
return ConversationHandler.END
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
GET_RESOURCE_TYPE, ASK_RESOURCE, GET_RESOURCE, GET_BOOK, GET_AUTHOR = range(5)
|
|
|
|
@ -191,7 +204,7 @@ cnv_handler = ConversationHandler(
|
|
|
|
|
CommandHandler('search_by_author', search_by_author),
|
|
|
|
|
MessageHandler(Filters.text, search_by_title_default)],
|
|
|
|
|
states={
|
|
|
|
|
GET_RESOURCE_TYPE: [CallbackQueryHandler(_get_resource_type)],
|
|
|
|
|
GET_RESOURCE_TYPE: [CallbackQueryHandler(_get_resource_type), MessageHandler(Filters.text, _cnv_stop)],
|
|
|
|
|
GET_RESOURCE: [MessageHandler(Filters.text, _get_resource)],
|
|
|
|
|
GET_AUTHOR: [CallbackQueryHandler(_get_author)],
|
|
|
|
|
GET_BOOK: [CallbackQueryHandler(_get_book)],
|
|
|
|
@ -209,7 +222,7 @@ def main():
|
|
|
|
|
updater.dispatcher.add_handler(cnv_handler)
|
|
|
|
|
updater.dispatcher.add_handler(MessageHandler(Filters.command, unknown)) # Filters out unknown commands
|
|
|
|
|
|
|
|
|
|
# updater.dispatcher.add_error_handler(handle_error)
|
|
|
|
|
updater.dispatcher.add_error_handler(handle_error)
|
|
|
|
|
|
|
|
|
|
updater.start_polling()
|
|
|
|
|
updater.idle()
|
|
|
|
|