python类ReplyKeyboardMarkup()的实例源码

bot4.py 文件源码 项目:simplebot 作者: korneevm 项目源码 文件源码 阅读 25 收藏 0 点赞 0 评论 0
def change_avatar_step1(bot, update, user_data):
    user = get_user(update.effective_user, user_data)
    reply_keyboard = []
    for index, ava in enumerate(avatars):
        button = "/avatar {} {}".format(index, ava)
        button = emojize(button, use_aliases=True)
        reply_keyboard.append(button)
    text = '?????? ???????? {}'.format(get_avatar(user_data))
    update.message.reply_text(text, reply_markup=ReplyKeyboardMarkup([reply_keyboard], resize_keyboard=True))
replykeyboard.py 文件源码 项目:telegram_robot 作者: uts-magic-lab 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def start(bot, update):
    hiKey = KeyboardButton("Hi", callback_data="Bonjour")
    howRU = KeyboardButton("How are you?")
    bye = KeyboardButton("Bye")
    introduce = KeyboardButton("I'm Gutsy")

    keyboard = [
    [hiKey, howRU],
    [bye, introduce]
    ]

    reply_markup = ReplyKeyboardMarkup(keyboard)

    update.message.reply_text('Please choose:', reply_markup=reply_markup)
arrows.py 文件源码 项目:telegram_robot 作者: uts-magic-lab 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def start(self, bot, update):
        keyboardStr = [
            ["-", "?", "+"],
            ["?", " ", "?"],
            ["?", "?", "?"],
            ["STOP"],
        ]

        headKeyboard = [
            [" ", "?", " "],
            ["?", " ", "?"],
            [" ", "?", " "],
            ["Paparazzi"],
        ]

        gripperKeyboard = [
            ["Open Left", "Open Right"],
            ["Close Half Left", "Close Half Right"],
            ["Close Left", "Close Right"]
        ]

        keyboard = self.createKeyboard(keyboardStr)

        reply_markup = ReplyKeyboardMarkup(keyboard)

        update.message.reply_text(
            'Tap the arrows to move the PR2:', reply_markup=reply_markup)
manage_worker.py 文件源码 项目:vk-channelify 作者: reo7sp 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def new_in_state_asked_vk_group_link(bot, update, users_state):
    vk_url = update.message.text
    vk_domain = vk_url.split('/')[-1]
    users_state[update.message.from_user.id] = dict()
    users_state[update.message.from_user.id]['vk_domain'] = vk_domain

    update.message.reply_text('???????! ??????:')
    update.message.reply_text('1. ???????? ????? ?????. ????? ???????????? ????????????')
    keyboard = [['? ??????']]
    update.message.reply_text('2. ???????? ????? ???? (@vk_channelify_bot) ? ?????????????? ??????',
                              reply_markup=ReplyKeyboardMarkup(keyboard, one_time_keyboard=True))
    return ASKED_CHANNEL_ACCESS_IN_NEW
manage_worker.py 文件源码 项目:vk-channelify 作者: reo7sp 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def filter_by_hashtag(bot, update, db, users_state):
    user_id = update.message.from_user.id

    users_state[user_id] = dict()
    users_state[user_id]['channels'] = dict()
    keyboard = []
    keyboard_row = []
    for channel in db.query(Channel).filter(Channel.owner_id == str(user_id)).order_by(Channel.created_at.desc()):
        try:
            channel_chat = bot.get_chat(chat_id=channel.channel_id)
            users_state[user_id]['channels'][channel_chat.title] = channel.channel_id
            keyboard_row.append(channel_chat.title)
            if len(keyboard_row) == 2:
                keyboard.append(keyboard_row)
                keyboard_row = []
        except telegram.TelegramError:
            logger.warning('filter_by_hashtag: cannot get title of channel {}'.format(channel.channel_id))
            traceback.print_exc()
    if len(keyboard_row) != 0:
        keyboard.append(keyboard_row)

    update.message.reply_text('???????? ?????', reply_markup=ReplyKeyboardMarkup(keyboard, one_time_keyboard=True))
    return ASKED_CHANNEL_ID_IN_FILTER_BY_HASHTAG
discab.py 文件源码 项目:UnivaqBot 作者: giacomocerquone 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def discab_keyboard(bot, update):
    """
    Command that shows keyboard of sections for:
    discab_news, discabon and discaboff
    """

    keys = [['News del Dipartimento'], ['Area Biotecnologie'], ['Area Medica'],
            ['Area Scienze Motorie'], ['Area Psicologia'], ['Chiudi']]

    bot.sendMessage(update.message.chat_id,
                    'Scegli la sezione:',
                    reply_markup=telegram.ReplyKeyboardMarkup(
                        keys, one_time_keyboard=True))

    return "discab"
mesva.py 文件源码 项目:UnivaqBot 作者: giacomocerquone 项目源码 文件源码 阅读 18 收藏 0 点赞 0 评论 0
def mesva_keyboard(bot, update):
    """
    Command that shows keyboard of sections for:
    mesva_news, mesvaon and mesvaoff
    """

    keys = [['In Evidenza'], ['Area Medicina'], ['Area Scienze Ambientali'],
            ['Area Scienze Biologiche'], ['Chiudi']]

    bot.sendMessage(update.message.chat_id,
                    'Scegli la sezione:',
                    reply_markup=telegram.ReplyKeyboardMarkup(
                        keys, one_time_keyboard=True))

    return "mesva"
univaq.py 文件源码 项目:UnivaqBot 作者: giacomocerquone 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def univaq(bot, update):
    """
    Command that shows keyboard of sections for:
    inevidenza, ultimissime, univaqon, univaqoff
    """

    keys = [['In Evidenza'], ['Ultimissime'], ['Chiudi']]

    bot.sendMessage(update.message.chat_id,
                    'Scegli la sezione:',
                    reply_markup=telegram.ReplyKeyboardMarkup(
                        keys, one_time_keyboard=True))

    return "univaq"
news_commands.py 文件源码 项目:UnivaqBot 作者: giacomocerquone 项目源码 文件源码 阅读 45 收藏 0 点赞 0 评论 0
def section_keyboard(bot, update):
    """
    Command that shows keyboard of departments for:
    news, newson and newsoff
    """

    keys = [['Univaq'], ['Disim'], ['Mesva'],
            ['Discab'], ['Chiudi']]

    bot.sendMessage(update.message.chat_id,
                    'Scegli il dipartimento:',
                    reply_markup=telegram.ReplyKeyboardMarkup(
                        keys, one_time_keyboard=True))

    return "department"
feedback.py 文件源码 项目:UnivaqBot 作者: giacomocerquone 项目源码 文件源码 阅读 24 收藏 0 点赞 0 评论 0
def feedback_command(bot, update):
    """Defining the command to ask for user's feedback"""

    keys = [['Lascia un messaggio agli sviluppatori'], ['Chiudi']]

    bot.sendMessage(update.message.chat_id,
                    'Cosa desideri fare?',
                    reply_markup=telegram.ReplyKeyboardMarkup(
                        keys, one_time_keyboard=True))

    return "send_feedback"
bot.py 文件源码 项目:python-telegram-dialog-bot 作者: Saluev 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def _convert_answer_part(self, answer_part):
        if isinstance(answer_part, str):
            return Message(answer_part)
        if isinstance(answer_part, (collections.abc.Iterable, Keyboard)):
            # ???????????
            resize_keyboard = False
            one_time_keyboard = True

            if isinstance(answer_part, collections.abc.Iterable):
                answer_part = list(answer_part)
            else:
                one_time_keyboard = answer_part.one_time_keyboard
                resize_keyboard = answer_part.resize_keyboard
                answer_part = answer_part.markup

            if isinstance(answer_part[0], str):
                # ???! ????????? ??? ?????????????? ??? ??????.
                # ??????, ??? ???? ?????????? ??????????? -- ??? ???? ??????.
                return ReplyKeyboardMarkup([answer_part], one_time_keyboard=one_time_keyboard,
                                           resize_keyboard=resize_keyboard)
            elif isinstance(answer_part[0], collections.abc.Iterable):
                # ????????? ???????????
                answer_part = list(map(list, answer_part))
                if isinstance(answer_part[0][0], str):
                    # ???!
                    return ReplyKeyboardMarkup(answer_part, one_time_keyboard=one_time_keyboard,
                                               resize_keyboard=resize_keyboard)
        if isinstance(answer_part, Inline):
            return answer_part.convert()
        return answer_part
alarm_bot.py 文件源码 项目:AlarmBot 作者: guysoft 项目源码 文件源码 阅读 23 收藏 0 点赞 0 评论 0
def new_alarm(self, bot, update):
        keyboard = [[InlineKeyboardButton("Daily"),
                     InlineKeyboardButton("Weekday Only")],
        [InlineKeyboardButton("Close")]]

        reply_markup = ReplyKeyboardMarkup(keyboard, one_time_keyboard=True)

        update.message.reply_text('Select type of alarm, or /cancel to cancel:', reply_markup=reply_markup)
        return self.ALARM_TYPE
alarm_bot.py 文件源码 项目:AlarmBot 作者: guysoft 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def set_timezone(self, bot, update):
        keyboard = []

        for continent in sorted(get_timezones().keys()):
            keyboard.append([InlineKeyboardButton(continent)])

        reply_markup = ReplyKeyboardMarkup(keyboard, one_time_keyboard=True)
        update.message.reply_text('Please select a continent, or /cancel to cancel:', reply_markup=reply_markup)
        return self.TIMEZONE_CONTINENT
alarm_bot.py 文件源码 项目:AlarmBot 作者: guysoft 项目源码 文件源码 阅读 21 收藏 0 点赞 0 评论 0
def timezone_continent(self, bot, update):
        reply = handle_cancel(update)
        if reply is None:
            keyboard = []
            self.selected_continent = update.message.text
            for continent in sorted(get_timezones()[self.selected_continent]):
                keyboard.append([InlineKeyboardButton(continent)])
            reply_markup = ReplyKeyboardMarkup(keyboard, one_time_keyboard=True)
            update.message.reply_text('Please select a timezone, or /cancel to cancel:', reply_markup=reply_markup)

            return self.TIMEZONE_TIME
        return ConversationHandler.END
bot.py 文件源码 项目:heydjbot 作者: mongonauta 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def chat(bot, update):
    user = update.message.from_user
    logger.info('chat - %s' % user)

    update.message.reply_text(
        "Sobre que quieres hablar?",
        reply_markup=ReplyKeyboardMarkup(
            GENRE_KEYBOARD,
            one_time_keyboard=True,
            resize_keyboard=True
        )
    )

    return GENRE_SELECTOR
bot.py 文件源码 项目:heydjbot 作者: mongonauta 项目源码 文件源码 阅读 22 收藏 0 点赞 0 评论 0
def search_song(bot, update):
    user = update.message.from_user
    song_name = update.message.text
    logger.info('search_song for user %s and song name %s' % (user, song_name))

    url = '{}/song/{}'
    resp = requests.get(
        url=url.format(API_SERVER, song_name)
    )

    if resp.status_code != 200 or not resp.json():
        update.message.reply_text('Lo siento pero lo que estás buscando es demasiado raro incluso para Spotify')
        return ConversationHandler.END

    else:
        song_list = json.loads(resp.content)

        update.message.reply_text(
            u"""{} (Popularidad% {})\nActividad: {}\nAlbum: {}\nArtistas: {}\n{}\n{}""".format(
                song_list[0]['track_name'],
                song_list[0]['track_popularity'],
                song_list[0]['activity'],
                song_list[0]['track_album_name'],
                ','.join(a['name'] for a in song_list[0]['artists']),
                song_list[0]['thumb'],
                song_list[0]['external_url'],
            ),
            reply_markup=ReplyKeyboardMarkup(
                SONG_KEYBOARD,
                one_time_keyboard=True,
                resize_keyboard=True
            )
        )

        bot.song_cache = song_list[0]

    return SONG_ACTION
bot.py 文件源码 项目:heydjbot 作者: mongonauta 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def choose_activity(bot, update):
    user = update.message.from_user
    logger.info('choose_activity - %s' % user)

    update.message.reply_text(
        "Que tipo de playlist quieres?",
        reply_markup=ReplyKeyboardMarkup(
            ACTIVITY_KEYBOARD,
            one_time_keyboard=True,
            resize_keyboard=True
        )
    )

    return ACTIVITY_SELECTOR
bot.py 文件源码 项目:heydjbot 作者: mongonauta 项目源码 文件源码 阅读 20 收藏 0 点赞 0 评论 0
def train(bot, update):
    user = update.message.from_user
    logger.info('show_song_to_clasify %s' % user)

    resp = requests.get(
        url='{}/user_info/{}/'.format(API_SERVER, user.id)
    )

    if not resp.json():
        update.message.reply_text(
            'Sorry {}, but I can\'t do that. Please, use "connect" command'.format(user['first_name'])
        )

    else:
        resp = requests.get(
            url='{}/train/{}/'.format(API_SERVER, user.id)
        )

        song = resp.json()['song'] if 'song' in resp.json() else None
        if song:
            bot.song_cache = song
            update.message.reply_text(
                u"""
                    Choose one activity for this song:\n\n
                    Title: {}\n
                    Artist: {}\n
                    Album: {}\n
                """.format(song[1], song[4], song[2]),
                reply_markup=ReplyKeyboardMarkup(ACTIVITY_KEYBOARD, one_time_keyboard=True, resize_keyboard=True)
            )

        else:
            update.message.reply_text("Server error. %s" % resp.json())

    return SAVE_SONG
bot.py 文件源码 项目:heydjbot 作者: mongonauta 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def save_classification(bot, update):
    user = update.message.from_user
    logger.info('save_classification(%s) %s - %s' % (user, bot.song_cache, update.message.text))

    resp = requests.get(
        url='{}/user_info/{}/'.format(API_SERVER, user.id)
    )

    if not resp.json():
        update.message.reply_text(
            'Sorry {}, but I can\'t do that. Please, use "connect" command'.format(user['first_name'])
        )

    else:
        resp = requests.get(
            url='{}/classify/{}/{}'.format(
                API_SERVER,
                bot.song_cache[0],
                ACTIVITY_KEYBOARD[0].index(update.message.text)
            )
        )

        result = resp.json()
        resp = requests.get(
            url='{}/stats/{}/'.format(
                API_SERVER,
                user.id
            )
        )
        result['total'] = resp.json()['total']
        result['classified'] = resp.json()['classified']

        update.message.reply_text(
            'Result: %s \n\n Statistics:\n %s' % (result, resp.json()),
            reply_markup=ReplyKeyboardMarkup([[NAVIGATION_KEYBOARD[1]]], one_time_keyboard=True, resize_keyboard=True)
        )
    return SAVE_SONG
errores.py 文件源码 项目:telegram-yt_mp3-bot 作者: Javinator9889 项目源码 文件源码 阅读 19 收藏 0 点赞 0 评论 0
def key_ben(bot, update,chat_id):
    keyboard = [
    ['While downloading','Other...']
    ]
    reply_markup = ReplyKeyboardMarkup(
    keyboard = keyboard, 
    resize_keyboard=True, 
    one_time_keyboard=True)
    bot.sendMessage(chat_id=chat_id,
        text="_When are you having your error?_ *(use the keyboard that appears just below)*",
        parse_mode=telegram.ParseMode.MARKDOWN, 
        reply_markup=reply_markup)


问题


面经


文章

微信
公众号

扫码关注公众号