Advertisement
rickyc81

Untitled

Dec 23rd, 2019
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.72 KB | None | 0 0
  1. from utility.dbClass import MongoConnect
  2. from telegram import InlineKeyboardButton, InlineKeyboardMarkup
  3. from commands import decorators
  4. import telegram
  5.  
  6.  
  7. def init(update, context):
  8.  
  9.     bot = context.bot
  10.  
  11.     conn = MongoConnect()
  12.  
  13.     user_id = update.message.chat.id #user_id che chiama la richiesta
  14.  
  15.     retrive = conn.mycol.find_one({"user_id": user_id}) #recupera il documento sul db relativo al suo user_id
  16.  
  17.     global url
  18.     url = [] # lista per i soli url
  19.  
  20.     for x in retrive['url']: #popolo la lista cin gli url
  21.         url.append(x)
  22.  
  23.     button_list = [] #lista indice bottoni
  24.  
  25.     list_to_string = [str(x) for x in range(len(url))] #converti indici lista in lista di stringhe
  26.  
  27.     list_to_string.pop(0)
  28.     #per ogni indice crea un tasto con l'indice scritto all'interno e che ritorna lindice quando premuto
  29.     for each in list_to_string:
  30.         button_list.append(InlineKeyboardButton(each, callback_data = each))
  31.     global reply_markup
  32.     reply_markup=InlineKeyboardMarkup(build_menu(button_list,n_cols=7)) #n_cols = 1 is for single column and mutliple rows
  33.  
  34.     #bot.send_message(chat_id=update.message.chat_id, text='Choose from the following', reply_markup=reply_markup)
  35.     update.message.reply_text(url[1], reply_markup=reply_markup)
  36.  
  37. def button_list_callback(update, context):
  38.  
  39.     query = update.callback_query
  40.  
  41.     query.edit_message_text(url[int(query.data)], reply_markup = reply_markup)
  42.  
  43. def build_menu(buttons, n_cols, header_buttons = None, footer_buttons = None):
  44.     menu = [buttons[i:i + n_cols] for i in range(0, len(buttons), n_cols)]
  45.  
  46.     if header_buttons:
  47.         menu.insert(0, header_buttons)
  48.     if footer_buttons:
  49.         menu.append(footer_buttons)
  50.     return menu
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement