コード例 #1
0
def pr_menu_sort(bot, update, user_data):
    query = update.callback_query
    user = Users.objects.get(telegram_id=query.from_user.id)
    if 'i_subcategory' in query.data:
        user_data['category_name'] = query.data[13:]
    else:
        pass
    user.params += '/Sorting'
    user.save()
    #user_data['category_name'] = query.data[13:]
    context = {'Lang': user.lang}
    msg = loader.get_template(
        'bot/Mutual_PR/Telegram/pr_menu/pr_menu_sort.html').render(context)
    keyboard = InlineKeyboardMarkup(
        [[
            ikb(user.GetButtons('Подписчики 🔼'),
                callback_data='inst_sorting_followers_up'),
            ikb(user.GetButtons('Подписчики 🔽'),
                callback_data='inst_sorting_followers_down')
        ],
         [
             ikb(user.GetButtons('Сначала новые 🕓'),
                 callback_data='inst_sorting_date_new'),
             ikb(user.GetButtons('Сначала старые 🕑'),
                 callback_data='inst_sorting_date_old')
         ], [ikb(user.GetButtons('«'), callback_data='back_inline')]])
    user.SendMessage(bot=bot, msg=msg, keyboard=keyboard, save_massage_id=True)
コード例 #2
0
def feedback(bot, update):
    user = Users.objects.get(telegram_id=update.callback_query.from_user.id)
    user.params += '/Feedback'
    user.save()
    keyboard = InlineKeyboardMarkup([
        [ikb(user.GetButtons('✉️ Написать сообщение'), callback_data='pa_feedback_create')],
        [ikb(user.GetButtons('«'), callback_data='back_inline')]
    ])
    context = {'Lang': user.lang}
    msg = loader.get_template('bot/PersonalArea/Feedback/feedback.html').render(context)
    user.SendMessage(bot=bot, msg=msg, keyboard=keyboard, save_massage_id=True)
コード例 #3
0
ファイル: admin.py プロジェクト: cybervagabound2/vp_bot
def broadcast_menu(bot, update):
    user = Users.objects.get(telegram_id=update.callback_query.from_user.id)
    user.params += '/Broadcast'
    user.save()
    keyboard = InlineKeyboardMarkup([[
        ikb('Rus', callback_data='broadcast_Rus'),
        ikb('Eng', callback_data='broadcast_Eng')
    ], [ikb('Uzb', callback_data='broadcast_Uzb')]])
    user.SendMessage(bot=bot,
                     msg='Выберите локализацию для рассылки',
                     keyboard=keyboard,
                     save_massage_id=True)
コード例 #4
0
def support(bot, update):
    user = Users.objects.get(telegram_id=update.callback_query.from_user.id)
    user.params += '/Support'
    user.save()
    keyboard = InlineKeyboardMarkup([[
        ikb(user.GetButtons('🤖 Проголосовать в StoreBot'),
            url='https://google.com')
    ], [ikb(user.GetButtons('«'), callback_data='back_inline')]])
    context = {'Lang': user.lang}
    msg = loader.get_template(
        'bot/PersonalArea/SupportProject/support.html').render(context)
    user.SendMessage(bot=bot, msg=msg, keyboard=keyboard, save_massage_id=True)
コード例 #5
0
def delete_ad_confirm(bot, update):
    query = update.callback_query
    user = Users.objects.get(telegram_id=query.from_user.id)
    ad = Ad.objects.get(id=query.data[12:])
    user.params += '/' + str(ad.id)
    keyboard = InlineKeyboardMarkup([[
        ikb(user.GetButtons('Да'), callback_data='pa_delete_ad_yes'),
        ikb(user.GetButtons('Нет'), callback_data='pa_delete_ad_no')
    ]])
    context = {'Lang': user.lang, 'Ad': ad}
    msg = loader.get_template(
        'bot/PersonalArea/DeleteAd/delete_ad_confirm.html').render(context)
    user.SendMessage(bot=bot, msg=msg, keyboard=keyboard, save_massage_id=True)
コード例 #6
0
def mutual_menu(bot, update):
    if update.message:
        user = Users.objects.get(telegram_id=update.message.chat.id)
    elif update.callback_query:
        user = Users.objects.get(telegram_id=update.callback_query.from_user.id)
    user.params = '/Mutual'
    user.save()
    context = {'Lang': user.lang}
    msg = loader.get_template('bot/Mutual_PR/mutual_menu.html').render(context)
    keyboard = InlineKeyboardMarkup([
        [ikb(user.GetButtons('Instagram'), callback_data='MP_instagram'),
         ikb(user.GetButtons('Telegram'), callback_data='MP_telegram')]
    ])
    user.SendMessage(bot=bot, msg=msg, keyboard=keyboard, save_massage_id=True)
コード例 #7
0
def options(bot, update):
    query = update.callback_query
    chat_id = query.message.chat_id
    d = StrictRedis()
    l = sorted(d.hkeys(chat_id))
    choice = query.data
    if choice == "Messages":
        counter = int(d.hget(chat_id, '#msg'))
        for i in range(0, counter):
            k = d.hget(chat_id, 'msg' + str(i))
            annc_sub, annc_by, annc_body = k.split('|')
            if i == counter - 1:
                bot.send_message(text=annc_sub + '\n\n' + annc_by + '\n\n' +
                                 annc_body,
                                 chat_id=chat_id,
                                 reply_markup=markup_options)
            else:
                bot.send_message(text=annc_sub + '\n\n' + annc_by + '\n\n' +
                                 annc_body,
                                 chat_id=chat_id)

        return
    elif choice == "Resources":
        num_courses = int(d.hget(chat_id, '#course'))
        course_markup = []
        temp = []
        t = []
        for i in range(0, num_courses, 2):
            if i + 1 < num_courses:
                course_markup.append([
                    ikb('{}'.format(d.hget(chat_id, 'c{}'.format(i))),
                        callback_data='{}'.format(
                            d.hget(chat_id, 'c{}'.format(i)))),
                    ikb('{}'.format(d.hget(chat_id, 'c{}'.format(i + 1))),
                        callback_data='{}'.format(
                            d.hget(chat_id, 'c{}'.format(i + 1))))
                ])
            else:
                course_markup.append([
                    ikb('{}'.format(d.hget(chat_id, 'c{}'.format(i))),
                        callback_data='{}'.format(
                            d.hget(chat_id, 'c{}'.format(i))))
                ])
        bot.send_message(text="Choose Subject --",
                         chat_id=chat_id,
                         reply_markup=ikm(course_markup))

    else:
        update.message.reply_text("Sorry Wrong Input!")
        return
コード例 #8
0
def view_ad(bot, update):
    query = update.callback_query
    user = Users.objects.get(telegram_id=query.from_user.id)
    user.params += '/ViewAd'
    user.save()
    ad = Ad.objects.get(id=query.data[6:])
    keyboard = InlineKeyboardMarkup([[
        ikb(user.GetButtons('📲 Связаться с администратором'),
            url='https://t.me/' + ad.creator.username)
    ], [ikb(user.GetButtons('«'), callback_data='back_inline')]])
    context = {'Lang': user.lang, 'Ad': ad}
    msg = loader.get_template(
        'bot/Mutual_PR/Telegram/pr_menu/view_ad.html').render(context)
    user.SendMessage(bot=bot, msg=msg, keyboard=keyboard, save_massage_id=True)
コード例 #9
0
def received_information(bot, update, user_data):
    p = StrictRedis()
    text = update.message.text
    reg_pattern = re.compile(r"^[0-9]*$")
    category = user_data['choice']
    bot.send_chat_action(chat_id=update.message.chat_id,
                         action=ChatAction.TYPING)
    if (category == 'Reg. Number'):
        if (re.match(reg_pattern, text) and len(text) <= 8):
            user_data[category] = text
            lock = threading.Lock()
            with lock:
                p.hset(update.message.chat_id, 'umsReg', text)
                del user_data['choice']
                update.message.reply_text("Now click on Password",
                                          reply_markup=markup_setup)
                return CHOOSING
        else:
            update.message.reply_text("Please enter a valid %s!" %
                                      user_data['choice'])
        return CHOOSING
    else:
        user_data[category] = text
        lock1 = threading.Lock()
        with lock1:
            p.hset(update.message.chat_id, 'umsPass', text)
            del user_data['choice']
            update.message.reply_text(
                "Thanks for entering Password!",
                reply_markup=ikm([[ikb('Load Data', callback_data='load')]]))
            return LOAD
コード例 #10
0
ファイル: bot.py プロジェクト: manikanand06/tota-py
def term_selector(bot, update):
    query = update.callback_query
    chat_id = query.message.chat_id
    regNumber = database(chat_id, 'regNumber')
    umsPass = database(chat_id, 'umsPass')
    time_stamp = time()
    sess_start = database(chat_id, 'sess_start')
    if time_stamp - float(sess_start) <= 180:
        pickled_sess = db.hget(chat_id, 'sess_obj')
        sess = pickle.loads(pickled_sess)
    else:
        home_page = homeData(bot, update, regNumber, umsPass, chat_id, query)
        if home_page:
            sess = db.hget(chat_id, 'sess_obj')
            sess = pickle.loads(sess)
        else:
            return
    mte = Midterm(sess)
    mte.token_creator(mte.base_page)
    term_list = mte.term_list
    keyboared = []
    for index, item in enumerate(term_list):
        if item != None:
            keyboared.append(
                [ikb(item, callback_data='term_{}_{}'.format(item, index))])
    reply_keyboared_term = ikm(keyboared)
    bot.send_message(text="Choose Term -",
                     chat_id=chat_id,
                     reply_markup=reply_keyboared_term)
コード例 #11
0
ファイル: bot.py プロジェクト: manikanand06/tota-py
def received_information(bot, update, user_data):
    chat_id = update.message.chat_id
    text = update.message.text
    reg_pattern = re.compile(r"^[0-9]*$")
    category = user_data['choice']
    regNumber = None
    umsPass = None
    bot.send_chat_action(chat_id=update.message.chat_id,
                         action=ChatAction.TYPING,
                         timeout=3)
    if (category == 'Reg. Number'):
        if (re.match(reg_pattern, text) and len(text) <= 8):
            user_data[category] = text
            db.hset(chat_id, 'regNumber', text)
            del user_data['choice']
            update.message.reply_text("Now click on Password",
                                      reply_markup=markup_reg)
            return CHOOSING
        else:
            update.message.reply_text("Please enter a valid %s!" %
                                      user_data['choice'])
        return TYPING_REPLY
    else:
        user_data[category] = text
        umsPass = text
        db.hset(chat_id, 'umsPass', umsPass)
        del user_data['choice']
        update.message.reply_text(
            "Thanks for entering Password!",
            reply_markup=ikm([[ikb('Load Data', callback_data='load')]]))
        return LOAD
コード例 #12
0
ファイル: bot.py プロジェクト: manikanand06/tota-py
def delme(bot, update):
    chat_id = update.message.chat_id
    db.delete(chat_id, '{}-msg'.format(chat_id),
              '{}-courselist'.format(chat_id), '{}-mte'.format(chat_id))
    update.message.reply_text(
        'Your data is erased.\nPlease press "Setup" to register.',
        reply_markup=ikm([[ikb('Setup', callback_data='Setup')]]))
    return -1
コード例 #13
0
def edit_subcategory(bot, update):
    user = Users.objects.get(telegram_id=update.callback_query.from_user.id)
    user.params += '/Subcategory'
    user.save()
    ad = Ad.objects.get(id=int(re.findall('Editing/(\d+)', user.params)[0]))
    ads = Ad.objects.filter(creator=user)
    button_list = []
    node = MutualPRCategory.objects.get(category_name=ad.category)
    subcategories = node.get_children()
    for sub in subcategories:
        #button_list.append(ikb(sub.category_name, callback_data='pa_edit_subcat_'+sub.category_name))
        button_list.append(ikb(user.GetButtons(sub.category_name), callback_data='pa_edit_subcat_'+sub.category_name))
    button_list.append(ikb(user.GetButtons('«'), callback_data='back_inline'))
    context = {'Lang': user.lang,
               'Ad': ad}
    msg = loader.get_template('bot/PersonalArea/EditAd/edit_subcategory.html').render(context)
    user.SendMessage(bot=bot, msg=msg, keyboard=InlineKeyboardMarkup(build_menu(button_list, n_cols=2)), save_massage_id=True)
コード例 #14
0
def ad_category(bot, update):
    if update.callback_query:
        user = Users.objects.get(telegram_id=update.callback_query.from_user.id)
    elif update.message:
        user = Users.objects.get(telegram_id=update.message.chat.id)
    ad = Ad.objects.create(creator=user)
    user.params += '/CreateAd'
    user.params += '/' + str(ad.id)
    user.save()
    category = MutualPRCategory.objects.root_nodes()
    context = {'Lang': user.lang}
    msg = loader.get_template('bot/PersonalArea/CreateAd/create_ad.html').render(context)
    keyboard = []
    for cat in category:
        keyboard.append([ikb(user.GetButtons(cat.category_name), callback_data='PA_create_ad_category_' + cat.category_name)])
    keyboard.append([ikb(user.GetButtons('«'), callback_data='back_inline')])
    user.SendMessage(bot=bot, msg=msg, keyboard=InlineKeyboardMarkup(keyboard), save_massage_id=True)
コード例 #15
0
def personal_area(bot, update):
    if update.callback_query:
        user = Users.objects.get(
            telegram_id=update.callback_query.from_user.id)
    else:
        user = Users.objects.get(telegram_id=update.message.chat.id)
    user.params = '/PersonalArea'
    user.save()
    context = {'Lang': user.lang}
    msg = loader.get_template('bot/PersonalArea/personal_area.html').render(
        context)
    keyboard = InlineKeyboardMarkup([[
        ikb(user.GetButtons('📢 Мои объявления'), callback_data='PA_my_ads'),
        ikb(user.GetButtons('✉️ Обратная связь'), callback_data='PA_feedback')
    ], [
        ikb(user.GetButtons('💵 Поддержать проект'), callback_data='PA_support')
    ]])
    user.SendMessage(bot=bot, msg=msg, keyboard=keyboard, save_massage_id=True)
コード例 #16
0
def ad_subcategory(bot, update):
    if update.callback_query:
        user = Users.objects.get(telegram_id=update.callback_query.from_user.id)
    elif update.message:
        user = Users.objects.get(telegram_id=update.message.chat.id)
    user.params += '/SubCategory'
    user.save()
    context = {'Lang': user.lang}
    msg = loader.get_template('bot/PersonalArea/CreateAd/ad_subcategory.html').render(context)
    button_list = []
    ad = Ad.objects.get(id=int(re.findall('CreateAd/(\d+)', user.params)[0]))
    node = MutualPRCategory.objects.get(category_name=ad.category)
    subcategories = node.get_children()
    for sub in subcategories:
        button_list.append(ikb(user.GetButtons(sub.category_name), callback_data='Pa_subcategory_' + sub.category_name))
        #button_list.append(ikb(sub.category_name, callback_data='PA_subcategory_' + sub.category_name))
    button_list.append(ikb(user.GetButtons('«'), callback_data='back_inline'))
    user.SendMessage(bot=bot, msg=msg, keyboard=InlineKeyboardMarkup(build_menu(button_list, n_cols=2)), save_massage_id=True)
コード例 #17
0
def my_ads(bot, update):
    user = Users.objects.get(telegram_id=update.callback_query.from_user.id)
    user.params += '/Ads'
    user.save()
    context = {'Lang': user.lang}
    msg = loader.get_template('bot/PersonalArea/my_ads.html').render(context)
    keyboard = InlineKeyboardMarkup(
        [[
            ikb(user.GetButtons('📝 Создать объявление'),
                callback_data='PA_create_ad')
        ],
         [
             ikb(user.GetButtons('📠 Редактировать объявления'),
                 callback_data='PA_edit_ad')
         ],
         [
             ikb(user.GetButtons('🗑 Удалить объявление'),
                 callback_data='PA_delete_ad')
         ], [ikb(user.GetButtons('«'), callback_data='back_inline')]])
    user.SendMessage(bot=bot, msg=msg, keyboard=keyboard, save_massage_id=True)
コード例 #18
0
def edit_ads_menu(bot, update):
    user = Users.objects.get(telegram_id=update.callback_query.from_user.id)
    if user.params == '/PersonalArea/Ads':
        user.params += '/Editing'
    else:
        user.DelEndParams(2)
        user.params += '/Editing'
    user.save()
    ads = Ad.objects.filter(creator=user)
    context = {'Lang': user.lang}
    msg = loader.get_template('bot/PersonalArea/EditAd/edit_ads_menu.html').render(context)
    button_list = []
    for ad in ads:
        if 'nstagram' in ad.channel_name:
            button_list.append(ikb('@' + ad.channel_name[22:] + ' 📸', callback_data='PA_edit_ad' + str(ad.id)))
        elif 't.me' in ad.channel_name:
            button_list.append(ikb('@' + ad.channel_name[13:] + ' 🚀', callback_data='PA_edit_ad' + str(ad.id)))

    button_list.append(ikb(user.GetButtons('«'), callback_data='back_inline'))
    user.SendMessage(bot=bot, msg=msg, keyboard=InlineKeyboardMarkup(build_menu(button_list, n_cols=2)), save_massage_id=True)
コード例 #19
0
def edit(bot, update, user_data):
    if update.callback_query:
        query = update.callback_query
        user = Users.objects.get(telegram_id=query.from_user.id)
        if 'Subcategory' in user.params:
            ad = Ad.objects.get(id=user_data['ad_id'])
            user_data.clear()
            user.DelEndParams(2)
        else:
            if user.params == '/PersonalArea/Ads/Editing':
                ad = Ad.objects.get(id=query.data[10:])
            else:
                ad = Ad.objects.get(id=int(re.findall('Editing/(\d+)', user.params)[0]))
                user.DelEndParams()
    else:
        user = Users.objects.get(telegram_id=update.message.chat.id)
        ad = Ad.objects.get(id=user_data['ad_id'])
        #user_data.clear()
    user.params += '/' + str(ad.id)
    user.save()
    keyboard = InlineKeyboardMarkup([
        [ikb(user.GetButtons('Подкатегорию'), callback_data='pa_edit_ad_subcategory'),
         ikb(user.GetButtons('Адрес канала'), callback_data='pa_edit_ad_channel_name')],
        [ikb(user.GetButtons('Мин. количество'), callback_data='pa_edit_ad_min_count'),
         ikb(user.GetButtons('Комментарий'), callback_data='pa_edit_ad_comment')],
        [ikb(user.GetButtons('Отменить'), callback_data='pa_edit_ad_cancel'),
         ikb(user.GetButtons('💾 Сохранить'), callback_data='pa_edit_ad_save')]
    ])
    context = {'Lang': user.lang,
               'Ad': ad}
    msg = loader.get_template('bot/PersonalArea/EditAd/edit.html').render(context)
    user.SendMessage(bot=bot, msg=msg, keyboard=keyboard, save_massage_id=True)
コード例 #20
0
def pr_menu(bot, update, user_data):
    query = update.callback_query
    user = Users.objects.get(telegram_id=query.from_user.id)
    user.params += '/AdsList'
    user.save()
    if query.data == 'inst_sorting_followers_up':
        ads = Ad.objects.filter(
            localization=user.lang,
            category='Instagram',
            subcategory=user_data['category_name']).order_by('min_count')
    elif query.data == 'inst_sorting_followers_down':
        ads = Ad.objects.filter(
            localization=user.lang,
            category='Instagram',
            subcategory=user_data['category_name']).order_by('-min_count')
    elif query.data == 'inst_sorting_date_new':
        ads = Ad.objects.filter(
            localization=user.lang,
            category='Instagram',
            subcategory=user_data['category_name']).order_by('pub_date')
    else:
        ads = Ad.objects.filter(
            localization=user.lang,
            category='Instagram',
            subcategory=user_data['category_name']).order_by('-pub_date')
    button_list = []
    for ad in ads:
        button_list.append(
            ikb('@' + ad.channel_name[22:] + ' min. ' + str(ad.min_count),
                callback_data='mp_ad_' + str(ad.id)))
    button_list.append(ikb(user.GetButtons('«'), callback_data='back_inline'))
    context = {'Lang': user.lang, 'Subcategory': user_data['category_name']}
    msg = loader.get_template(
        'bot/Mutual_PR/Telegram/pr_menu/pr_menu.html').render(context)
    user.SendMessage(bot=bot,
                     msg=msg,
                     keyboard=InlineKeyboardMarkup(
                         build_menu(button_list, n_cols=2)),
                     save_massage_id=True)
コード例 #21
0
ファイル: admin.py プロジェクト: cybervagabound2/vp_bot
def send_msg(bot, update, user_data):
    user = Users.objects.get(telegram_id=update.message.chat.id)
    context = {'Lang': user.lang, 'Text': update.message.text}
    msg = loader.get_template('bot/Adminka/send_msg.html').render(context)
    keyboard = InlineKeyboardMarkup(
        [[ikb(user.GetButtons('Ответить'), callback_data='admin_msg_reply')]])
    bot.send_message(chat_id=user_data['user_id'],
                     text=msg,
                     reply_markup=keyboard)
    user_data.clear()
    user.SendMessage(bot=bot, msg='Сообщение отправлено', save_massage_id=True)
    sleep(1)
    MainMenu(bot, update)
コード例 #22
0
def categories_menu(bot, update, user_data):
    user = Users.objects.get(telegram_id=update.callback_query.from_user.id)
    user.params += '/Instagram/Subcategory'
    user.save()
    node = MutualPRCategory.objects.get(id=2)
    subcategories = node.get_children()
    button_list = []
    for sub in subcategories:
        button_list.append(
            ikb('{}'.format(user.GetButtons(sub.category_name)) + ' (' +
                get_count_ads(sub.category_name, user_lang=user.lang) + ')',
                callback_data='i_subcategory' + sub.category_name))
        #button_list.append(ikb(sub.category_name + ' (' + get_count_ads(sub.category_name, user_lang=user.lang) + ')',
        #                      callback_data='i_subcategory' + sub.category_name))
    button_list.append(ikb(user.GetButtons('«'), callback_data='back_inline'))
    context = {'Lang': user.lang}
    msg = loader.get_template(
        'bot/Mutual_PR/Telegram/categories_menu.html').render(context)
    user.SendMessage(bot=bot,
                     msg=msg,
                     keyboard=InlineKeyboardMarkup(
                         build_menu(button_list, n_cols=2)),
                     save_massage_id=True)
コード例 #23
0
ファイル: admin.py プロジェクト: cybervagabound2/vp_bot
def admin_menu(bot, update):
    user = Users.objects.get(telegram_id=update.message.chat.id)
    if user.telegram_id not in admin_list:
        user.SendMessage(bot=bot,
                         msg='Poshel naxoy otsudova 🖕',
                         save_massage_id=True)
        sleep(3)
        MainMenu(bot, update)
    else:
        user.params = '/Adminka'
        user.save()
        keyboard = InlineKeyboardMarkup(
            [[
                ikb('Удалить объяление', callback_data='admin_delete_ad'),
                ikb('Рассылка', callback_data='admin_broadcast')
            ],
             [
                 ikb('Написать пользователю', callback_data='admin_send_msg'),
                 ikb('Статистика', callback_data='admin_statistic')
             ]])
        user.SendMessage(bot=bot,
                         msg='Админка',
                         keyboard=keyboard,
                         save_massage_id=True)
コード例 #24
0
ファイル: bot.py プロジェクト: manikanand06/tota-py
def options(bot, update):
    print("Optins function starting......")
    query = update.callback_query
    chat_id = query.message.chat_id
    choice = query.data
    if choice == "Messages":
        msg_reader(bot, update, chat_id)

    elif choice == "Resources":
        regNumber = database(chat_id, 'regNumber')
        umsPass = database(chat_id, 'umsPass')
        course_db(bot, update, regNumber, umsPass, chat_id, query)
        course_markup = []
        temp = []
        t = []
        course_key = '{}-courselist'.format(chat_id)
        p = db.hkeys(course_key)
        num_courses = len(p)
        for i, item in enumerate(p):
            p[i] = item.decode('UTF-8')
        for i in range(0, num_courses, 2):
            key = '{}'.format(p[i])
            if i + 1 < num_courses:
                key1 = '{}'.format(p[i + 1])
                course_markup.append([
                    ikb(key, callback_data=key),
                    ikb(key1, callback_data=key1)
                ])
            else:
                course_markup.append([ikb(key, callback_data=key)])
        bot.send_message(text="Choose Subject --",
                         chat_id=chat_id,
                         reply_markup=ikm(course_markup))
    else:
        update.message.reply_text("Sorry Wrong Input!")
        return
コード例 #25
0
 def msgDispatcher():
     lock = threading.Lock()
     with lock:
         chat_id = str(update.message.chat_id)
         if (chat_id in l) and (r.hget(chat_id, 'umsReg')) and (r.hget(
                 chat_id, 'umsPass')):
             update.message.reply_text('Welcome Back!',
                                       reply_markup=markup_options)
             return
         else:
             r.hmset(chat_id, data)
             update.message.reply_text(
                 "Hi Dear\n\n"
                 "I hope you are fine. My name is ToTa. "
                 "I am your personal bot to handle your daily tedious tasks of UMS. "
                 "\n\nI am created by Shekh Ataul.\nA.K.A -- DEVIL!"
                 "\n\nTo Get Started Press: Setup",
                 reply_markup=ikm([[ikb('Setup', callback_data='setup')]]))
             return
コード例 #26
0
ファイル: bot.py プロジェクト: manikanand06/tota-py
def start(bot, update):
    chat_id = update.message.chat_id
    if (db.hexists(chat_id,
                   'regNumber')) and (db.hexists(chat_id, 'umsPass') and
                                      (db.exists('{}-msg'.format(chat_id)))):
        user = update.message.from_user
        user_full_name = '{} {}'.format(user.first_name, user.last_name)
        update.message.reply_text('Welcome back {}'.format(user_full_name),
                                  reply_markup=markup_options)
        return
    else:
        update.message.reply_text(
            "Hi Dear\n\n"
            "I hope you are fine. My name is *ToTa*  "
            "I am your personal bot to handle your daily tedious tasks of UMS "
            "\n\nI am created by *Shekh Ataul*\nA.K.A -- *DEVIL!*"
            "\n\nTo Get Started Press: *Setup*",
            reply_markup=ikm([[ikb('Setup', callback_data='Setup')]]),
            parse_mode=ParseMode.MARKDOWN)
コード例 #27
0
def res(bot, update):
    c = StrictRedis()
    query = update.callback_query
    chat_id = query.message.chat_id
    course = query.data
    regNumber = c.hget(chat_id, 'umsReg')
    umsPass = c.hget(chat_id, 'umsPass')
    try:
        homeUms = Verto(regNumber, umsPass)
        homeData = homeUms.initiater()
        if homeData != 'Incorrect Credentials':
            pass
        else:
            bot.edit_message_text(text='Incorrect Credentials',
                                  chat_id=chat_id,
                                  message_id=query.message.message_id)
            raise ValueError("Something Went Wrong")
    except ValueError as error:
        return
    else:
        courseIns = Resources(homeUms.session, course)
        resList = courseIns.reslist()
        for i, item in enumerate(resList):
            txt = item[-1]
            start = txt.find('$lblFileUplaodByTeacher')
            txt = txt[start - 5:start]
            if item[2] == u'\xa0':
                item[2] = ''
            res_num_markup = ikm([[
                ikb('Download',
                    callback_data='hot{}YinZ{}'.format(course, txt))
            ]])
            text_data = 'Course - {}\n{} \n\n {}\n\n {}'.format(
                course, item[0], item[1].strip(), item[2].strip())
            bot.send_message(text=text_data,
                             chat_id=chat_id,
                             reply_markup=res_num_markup)
            x = '|'.join(item)
            c.hset(chat_id, '{}_{}'.format(course, item[-1]), x)
コード例 #28
0
ファイル: bot.py プロジェクト: manikanand06/tota-py
def course_selected_data(bot, update):
    print('Course selected data Started')
    query = update.callback_query
    chat_id = query.message.chat_id
    course_selected = query.data
    regNumber = database(chat_id, 'regNumber')
    umsPass = database(chat_id, 'umsPass')
    time_stamp = time()
    sess_start = database(chat_id, 'sess_start')
    if time_stamp - float(sess_start) <= 180:
        pickled_sess = db.hget(chat_id, 'sess_obj')
        sess = pickle.loads(pickled_sess)
    else:
        home_page = homeData(bot, update, regNumber, umsPass, chat_id, query)
        if home_page:
            sess = db.hget(chat_id, 'sess_obj')
            sess = pickle.loads(sess)
        else:
            return
    course_data = Resources(sess, course_selected)
    course_data_list = course_data.course_content_list()
    for i, item in enumerate(course_data_list):
        txt = item[-1]
        start = txt.find('$lblFileUplaodByTeacher')
        txt = txt[start - 5:start]
        if item[2] == u'\xa0':
            item[2] = ''
        res_num_markup = ikm([[
            ikb('Download',
                callback_data='hot{}YinZ{}'.format(course_selected, txt))
        ]])
        text_data = 'Course - {}\n{} \n\n {}\n\n {}'.format(
            course_selected, item[0], item[1].strip(), item[2].strip())
        bot.send_message(text=text_data,
                         chat_id=chat_id,
                         reply_markup=res_num_markup)
        x = '|'.join(item)
        db.hset(chat_id, '{}_{}'.format(course_selected, item[-1]), x)
コード例 #29
0
from telegram import InlineKeyboardButton as ikb
from telegram import InlineKeyboardMarkup as ikm
from telegram.error import NetworkError, TelegramError, Unauthorized
from telegram.ext import (CommandHandler, ConversationHandler, Filters,
                          CallbackQueryHandler, MessageHandler, Updater,
                          JobQueue)
from telegram import Update, ChatAction
import telegram
from user import Verto
from message import Message
from assingment import Resources
from multiprocessing import Pool

CHOOSING, TYPING_REPLY, TYPING_CHOICE, LOAD = range(4)
reply_keyboared_setup = [[
    ikb('Reg. Number', callback_data='Reg. Number'),
    ikb('Password', callback_data='Password')
]]
reply_keyboared_options = [[
    ikb('Messages', callback_data='Messages'),
    ikb('Resources', callback_data='Resources')
]]
markup_setup = ikm(reply_keyboared_setup)
markup_options = ikm(reply_keyboared_options)

logging.basicConfig(
    level=logging.DEBUG,
    format='%(asctime)s - %(name)s - %(levelname)s - %(message)s')


@run_async
コード例 #30
0
from models import Base, User, Order, Catalog, Cart

now = datetime.datetime.now
# constant for sending 'typing...'
typing = telegram.ChatAction.TYPING


# keyboards

main_kbd_user = [[texts.catalog_btn_user, texts.cart_btn_user],
                 [texts.orders_btn_user, texts.info_btn_user]]



# inline keyboard for catalog
catalog_ikbd = [[ikb(texts.prev_btn, callback_data="<"), ikb(texts.next_btn, callback_data=">")],
                [ikb(texts.show_img_btn, callback_data="img")], [ikb(texts.to_cart_btn, callback_data="to_cart")]]

with open('data.json', 'r', encoding='utf8') as fp:
    catalog = Catalog(json.load(fp, object_pairs_hook=OrderedDict))

engine = create_engine('postgresql://%s:%s@%s:%s/%s' % (db_username, db_password, db_host, db_port, db_name))
Session = sessionmaker(bind=engine)
session = Session()
Base.metadata.create_all(engine)

# matplotlib font settings
font = {'family': 'DejaVu Serif', 'weight': 'normal', 'size': 24} # avail_font_names = [f.name for f in matplotlib.font_manager.fontManager.ttflist]
rc('font', **font)