def add_player(self, user_id, first_name, message_id, silent=False):
        if self.game_running:
            return

        if self.get_player_by_id(user_id) is None and len(
                self.players) < self.MAX_PLAYERS:
            self.logger.debug("Adding user '" + first_name + "' to players.")
            player = Player(user_id, first_name, join_id=message_id)
            self.players.append(player)

            if silent:
                return

            # TODO When game is multiplayer then print current players?
            keyboard = [[
                InlineKeyboardButton(text=translate("start_game",
                                                    self.lang_id),
                                     callback_data="start_game")
            ]]
            reply_markup = InlineKeyboardMarkup(keyboard)
            self.send_message(self.chat_id,
                              translate("playerJoined",
                                        self.lang_id).format(first_name),
                              message_id=message_id,
                              reply_markup=reply_markup,
                              game_id=self.__game_id)
        else:
            self.send_message(
                self.chat_id,
                translate("alreadyJoined", self.lang_id).format(first_name))
            self.logger.debug(
                "User '{}' already in player list. Or max players reached".
                format(first_name))
    def start_game(self, message_id: int = None) -> None:
        if self.game_running:
            self.send_message(self.chat_id,
                              translate("alreadyAGame", self.lang_id))
            return

        if ((self.game_type == self.GROUP_CHAT
             or self.game_type == self.MULTIPLAYER_GAME) and
                len(self.players) > 1) or self.game_type == self.PRIVATE_CHAT:
            self.game_running = True

            for player in self.players:
                add_game_played(player.user_id)

            if self.game_type == self.GROUP_CHAT or self.game_type == self.MULTIPLAYER_GAME:
                self.send_message(
                    self.chat_id,
                    translate("gameBegins", self.lang_id) + "\n" +
                    translate("gameBegins2", self.lang_id) + "\n\n" +
                    self.get_player_overview(),
                    game_id=self.__game_id)

            self.dealers_turn()
            self.give_player_one()
        else:
            self.send_message(self.chat_id,
                              translate("notEnoughPlayers", self.lang_id),
                              message_id=message_id,
                              game_id=self.__game_id)
Пример #3
0
def comment_cmd(bot, update, args):
    user_id = update.message.from_user.id
    chat_id = update.message.chat_id
    first_name = update.message.from_user.first_name
    last_name = update.message.from_user.last_name
    username = update.message.from_user.username
    db = DBwrapper.get_instance()
    lang_id = db.get_lang_id(user_id)

    state_handler = StateHandler.get_instance()
    user = state_handler.get_user(user_id)

    if user.get_state() == UserState.IDLE:
        if len(args) > 1:
            text = " ".join(args)
            logger.debug("New comment! {}!".format(user_id))

            bot.sendMessage(chat_id=chat_id, text=translate("userComment", lang_id))
            for admin_id in db.get_admins():
                bot.sendMessage(admin_id,
                                "New comment:\n\n{}\n\n{} | {} | {} | @{} | {}".format(text, user_id, first_name,
                                                                                       last_name, username,
                                                                                       lang_id))
            user.set_state(UserState.IDLE)
        else:
            # The user just wrote "/comment" -> Ask him to send a message
            logger.debug("Add {} to comment_list!".format(user_id))

            keyboard = [[InlineKeyboardButton(text=translate("cancel", lang_id), callback_data="cancel_comment")]]
            reply_markup = InlineKeyboardMarkup(keyboard)

            bot.sendMessage(chat_id=chat_id, text=translate("sendCommentNow", lang_id), reply_markup=reply_markup)
            user.set_state(UserState.COMMENTING)
Пример #4
0
 def __init__(self, lang_id):
     self.deck = self.create_deck()
     self.value_str = [
         translate("ace", lang_id), "2", "3", "4", "5", "6", "7", "8", "9",
         "10",
         translate("jack", lang_id),
         translate("queen", lang_id),
         translate("king", lang_id)
     ]
Пример #5
0
def cancel_cmd(bot, update):
    user_id = update.effective_user.id
    message_id = update.effective_message.message_id
    callback_query_id = update.callback_query.id
    chat_id = update.effective_chat.id

    state_handler = StateHandler.get_instance()
    user = state_handler.get_user(user_id)

    if user.get_state() == UserState.COMMENTING:
        db = DBwrapper.get_instance()
        lang_id = db.get_lang_id(user_id)

        user.set_state(UserState.IDLE)
        bot.editMessageText(chat_id=chat_id, message_id=message_id, text=translate("cancelledMessage", lang_id))
        bot.answerCallbackQuery(callback_query_id=callback_query_id, text=translate("cancelledMessage", lang_id))
Пример #6
0
def change_language(bot, update, lang_id):
    bot.editMessageText(chat_id=update.callback_query.message.chat_id,
                        text=translate("langChanged", lang_id),
                        message_id=update.callback_query.message.message_id,
                        reply_markup=None)
    db = DBwrapper.get_instance()
    db.insert("languageID", lang_id, update.callback_query.from_user.id)
    def get_player_overview(self,
                            show_points: bool = False,
                            dealer: bool = False) -> str:
        """Return the overview of all players in a game room"""
        text = ""

        if not self.game_running:
            return text

        for counter, user in enumerate(self.players):
            if counter == self.current_player:
                text += "▶️"
            else:
                text += "👤"

            if show_points is True and (counter < self.current_player
                                        or self.current_player == -1):
                text += "{} - [{}]\n".format(user.first_name, user.cardvalue)
            else:
                text += (user.first_name + "\n")
        if dealer is True:
            text += ("🎩" + translate("dealerName", self.lang_id) + " - [" +
                     str(self.dealer.cardvalue) + "]")

        return text
Пример #8
0
def start(bot, update):
    text = translate("welcomeMsg")
    bot.sendMessage(chat_id=update.message.chat_id,
                    message_id=update.message.message_id,
                    text=text,
                    parse_mode=ParseMode.HTML)
    deleteMessage(bot, update)
Пример #9
0
def getUserKeyboard():
    db = DBwrapper.get_instance()
    usedNumbers = [x[0] for x in db.get_used_numbers()]

    allNumbers = [
        1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20,
        21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 39,
        40, 41
    ]

    availableNumbers = [x for x in allNumbers if x not in usedNumbers]

    buttons = list()
    for userNumber in availableNumbers:
        buttons.append(
            InlineKeyboardButton(text=str(userNumber).zfill(2),
                                 callback_data=str(userNumber)))

    lastRowButton = [
        InlineKeyboardButton(text=translate("cancelMsg"),
                             callback_data="cancel")
    ]

    reply_mrk = InlineKeyboardMarkup(build_menu(buttons,
                                                n_cols=4,
                                                footer_buttons=lastRowButton),
                                     one_time_keyboard=True)

    return reply_mrk
Пример #10
0
def answer(bot, update):
    sender_id = update.message.from_user.id
    reply_to_message = update.message.reply_to_message
    text = str(update.message.text[8:])
    db = DBwrapper.get_instance()

    if reply_to_message is None:
        bot.sendMessage(sender_id,
                        text="⚠ You need to reply to the user's comment!")
        return

    try:
        last_line = reply_to_message.text.split("\n")
        ll_list = last_line[-1].split(" | ")
        user_id = ll_list[0]
    except ValueError:
        return

    if not re.match("[0-9]+", user_id):
        bot.sendMessage(
            sender_id,
            "⚠ The user_id is not valid. Are you sure you replied to a user comment?"
        )
        return

    answer_text = "{}\n\n{}".format(
        translate("answerFromDev", db.get_lang_id(user_id)), text)
    bot.sendMessage(chat_id=user_id, text=answer_text)
    bot.sendMessage(chat_id=sender_id, text="Message sent!")
Пример #11
0
def change_language(bot, update, lang_id):
    logger.info("Language changed to '{}' for user {}".format(
        lang_id, update.effective_user.id))
    bot.editMessageText(chat_id=update.callback_query.message.chat_id,
                        text=translate("langChanged", lang_id),
                        message_id=update.callback_query.message.message_id,
                        reply_markup=None)
    db = DBwrapper.get_instance()
    db.insert("languageID", lang_id, update.callback_query.from_user.id)
Пример #12
0
def addUser(bot, update):
    text = translate("registerMsg")
    keyboard = keyboards.getUserKeyboard()
    bot.sendMessage(chat_id=update.message.chat_id,
                    message_id=update.message.message_id,
                    text=text,
                    parse_mode=ParseMode.HTML,
                    reply_markup=keyboard)
    deleteMessage(bot, update)
Пример #13
0
    def next_player(self):
        if self.game_running:
            if (self.current_player + 1) < len(self.players):
                self.logger.debug("Next Player!")
                self.current_player += 1
                self.send_message(
                    self.chat_id,
                    translate("overview", self.lang_id) + "\n\n" +
                    self.get_player_overview(show_points=True) + "\n" +
                    translate("nextPlayer", self.lang_id).format(
                        self.players[self.current_player].first_name),
                    message_id=self.join_message_ids[self.current_player],
                    reply_markup=self.keyboard_running)

                self.give_player_one()
            else:
                self.logger.debug("Dealer's turn")
                self.current_player = -1
                self.dealers_turn()
Пример #14
0
    def dealers_turn(self):
        if self.dealer.get_number_of_cards() < 2:
            for i in range(2):
                card = self.deck.pick_one_card()
                cardvalue = self.deck.get_card_value(card)
                self.dealer.give_card(card, cardvalue)

            text = ""
            if self.game_type == self.PRIVATE_CHAT:
                text += translate("gameBegins", self.lang_id) + "\n"

            text += "\n*" + translate(
                "dealersCards", self.lang_id
            ) + "*\n\n" + self.deck.get_card_name(card) + ", | -- |"
            self.send_message(self.chat_id,
                              text,
                              parse_mode="Markdown",
                              reply_markup=self.keyboard_running)
        else:
            output_text = translate("croupierDrew", self.lang_id) + "\n\n"

            while self.dealer.get_cardvalue() <= 16:
                card = self.deck.pick_one_card()
                cardvalue = self.deck.get_card_value(card)
                self.dealer.give_card(card, cardvalue)

            i = 0
            for card in self.dealer.cards:
                if i == 0:
                    output_text += self.deck.get_card_name(card)
                else:
                    output_text += " , " + self.deck.get_card_name(card)
                i += 1

            output_text += "\n\n" + translate("cardvalueDealer",
                                              self.lang_id) + " " + str(
                                                  self.dealer.get_cardvalue())
            self.send_message(self.chat_id,
                              output_text,
                              parse_mode="Markdown",
                              reply_markup=self.keyboard_running)
            self.evaluation()
Пример #15
0
def language(bot, update):
    lang_de_button = InlineKeyboardButton(text="Deutsch \U0001F1E9\U0001F1EA", callback_data="ch_lang_de")
    lang_en_button = InlineKeyboardButton(text="Englisch \U0001F1FA\U0001F1F8", callback_data="ch_lang_en")
    lang_nl_button = InlineKeyboardButton(text="Nederlands \U0001F1F3\U0001F1F1", callback_data="ch_lang_nl")
    lang_eo_button = InlineKeyboardButton(text="Esperanto \U0001F30D", callback_data="ch_lang_eo")
    lang_br_button = InlineKeyboardButton(text="Português \U0001F1E7\U0001F1F7", callback_data="ch_lang_br")
    lang_es_button = InlineKeyboardButton(text="Español \U0001F1EA\U0001F1F8", callback_data="ch_lang_es")
    lang_ru_button = InlineKeyboardButton(text="Русский \U0001F1F7\U0001F1FA", callback_data="ch_lang_ru")
    lang_fa_button = InlineKeyboardButton(text="فارسی \U0001F1EE\U0001F1F7", callback_data="ch_lang_fa")

    lang_keyboard = InlineKeyboardMarkup([[lang_de_button, lang_en_button], [lang_br_button, lang_ru_button, lang_nl_button], [lang_es_button, lang_eo_button, lang_fa_button]])
    db = DBwrapper.get_instance()

    if update.callback_query:
        # TODO maybe text user in private instead of group!
        lang_id = db.get_lang_id(update.callback_query.from_user.id)
        bot.editMessageText(chat_id=update.callback_query.message.chat_id, text=translate("langSelect", lang_id), reply_markup=lang_keyboard, message_id=update.callback_query.message.message_id)
    else:
        lang_id = db.get_lang_id(update.message.from_user.id)
        bot.sendMessage(chat_id=update.message.chat_id, text=translate("langSelect", lang_id), reply_markup=lang_keyboard, message_id=update.message.message_id)
Пример #16
0
def addAlertToUserProfile(bot, update):
    user = update.effective_user

    text = translate("alertMsg").format(user.username)
    keyboard = keyboards.getProfileKeyboard()
    bot.sendMessage(chat_id=update.message.chat_id,
                    message_id=update.message.message_id,
                    text=text,
                    parse_mode=ParseMode.HTML,
                    reply_markup=keyboard)

    deleteMessage(bot, update)
Пример #17
0
    def __init__(self,
                 chat_id: int,
                 user_id: int,
                 lang_id: str,
                 first_name: str,
                 game_handler: object,
                 message_id: int,
                 send_message: callable,
                 multiplayer: bool = None,
                 game_id: str = None):
        # declare variables and set initial values
        self.players = []
        self.chat_id = chat_id
        self.__game_id = game_id
        self.lang_id = lang_id
        self.deck = CardDeck(lang_id)
        # TODO language of the cards & dealer cannot be changed
        # TODO especially with new multiplayer important!
        self.dealer = Dealer(translate("dealerName", lang_id), self.deck)
        self.game_running = False
        self.current_player = 0
        self.game_handler = game_handler
        self.send_message = send_message
        self.logger = logging.getLogger(__name__)

        if multiplayer:
            self.game_type = self.MULTIPLAYER_GAME
            chat_id = 0
        elif chat_id >= 0:
            self.game_type = self.PRIVATE_CHAT
        else:
            self.game_type = self.GROUP_CHAT

        one_more_button = KeyboardButton(
            translate("keyboardItemOneMore", lang_id))
        no_more_button = KeyboardButton(
            translate("keyboardItemNoMore", lang_id))
        stop_button = KeyboardButton(translate("keyboardItemStop", lang_id))
        self.keyboard_running = ReplyKeyboardMarkup(
            keyboard=[[one_more_button, no_more_button], [stop_button]],
            selective=True)

        self.add_player(user_id, first_name, message_id, silent=True)

        # Only send a "Please join the game" message, when it's a group chat
        if self.game_type == self.GROUP_CHAT:
            keyboard = [[
                InlineKeyboardButton(text=translate("join",
                                                    self.lang_id).capitalize(),
                                     callback_data="join_game")
            ]]
            reply_markup = InlineKeyboardMarkup(keyboard)
            send_message(chat_id,
                         translate("newRound", lang_id),
                         message_id=message_id,
                         reply_markup=reply_markup)
        elif self.game_type == self.MULTIPLAYER_GAME:
            pass
        else:
            self.start_game()
Пример #18
0
    def dealers_turn(self):
        if self.dealer.get_number_of_cards() < 2:
            card = None
            for _ in range(2):
                card = self.deck.pick_one_card()
                self.dealer.give_card(card)

            text = ""
            if self.game_type == self.PRIVATE_CHAT:
                text += translate("gameBegins", self.lang_id) + "\n"

            text += "\n*{}*\n\n{}, | -- |".format(
                translate("dealersCards", self.lang_id), str(card))
            self.send_message(self.chat_id,
                              text,
                              parse_mode="Markdown",
                              reply_markup=self.keyboard_running)
        else:
            output_text = translate("croupierDrew", self.lang_id) + "\n\n"

            while self.dealer.cardvalue <= 16:
                card = self.deck.pick_one_card()
                self.dealer.give_card(card)

            i = 0
            for card in self.dealer.cards:
                if i == 0:
                    output_text += str(card)
                else:
                    output_text += " , " + str(card)
                i += 1

            output_text += "\n\n{} {}".format(
                translate("cardvalueDealer", self.lang_id),
                self.dealer.cardvalue)
            self.send_message(self.chat_id,
                              output_text,
                              parse_mode="Markdown",
                              reply_markup=ReplyKeyboardRemove())
            self.evaluation()
Пример #19
0
def help_cmd(bot, update):
    # Explains commands to user
    db = DBwrapper.get_instance()
    lang_id = db.get_lang_id(update.message.from_user.id)

    start_description = translate("start_description", lang_id)
    stop_description = translate("stop_description", lang_id)
    help_description = translate("help_description", lang_id)
    language_description = translate("language_description", lang_id)
    stats_description = translate("stats_description", lang_id)
    hide_description = translate("hide_description", lang_id)
    text = "/start - {}\n" \
           "/stop - {}\n" \
           "/help - {}\n" \
           "/language - {}\n" \
           "/stats - {}\n" \
           "/hide - {}" \
        .format(start_description,
                stop_description,
                help_description,
                language_description,
                stats_description,
                hide_description
                )

    update.message.reply_text(text)
Пример #20
0
    def start_game(self, message_id=None):
        if (self.game_type == self.GROUP_CHAT and
                len(self.players) >= 2) or self.game_type == self.PRIVATE_CHAT:
            if not self.game_running:
                self.game_running = True

                for player in self.players:
                    add_game_played(player.user_id)

                if self.game_type == self.GROUP_CHAT:
                    self.send_message(
                        self.chat_id,
                        translate("gameBegins", self.lang_id) + "\n" +
                        translate("gameBegins2", self.lang_id) + "\n\n" +
                        self.get_player_overview())

                self.dealers_turn()
                self.give_player_one()
        else:
            self.send_message(self.chat_id,
                              translate("notEnoughPlayers", self.lang_id),
                              message_id=message_id)
Пример #21
0
    def __init__(self, chat_id, user_id, lang_id, first_name, game_handler,
                 message_id, send_message):
        # declare variables and set initial values
        self.players = []
        self.join_message_ids = []
        self.chat_id = chat_id
        self.lang_id = lang_id
        self.deck = CardDeck(
            lang_id)  # TODO language of the cards & dealer cannot be changed
        self.dealer = Dealer(translate("dealerName", lang_id), self.deck)
        self.game_running = False
        self.current_player = 0
        self.game_handler = game_handler
        self.send_message = send_message
        self.logger = logging.getLogger(__name__)

        if chat_id >= 0:
            self.game_type = self.PRIVATE_CHAT
        else:
            self.game_type = self.GROUP_CHAT

        one_more_button = KeyboardButton(
            translate("keyboardItemOneMore", lang_id))
        no_more_button = KeyboardButton(
            translate("keyboardItemNoMore", lang_id))
        stop_button = KeyboardButton(translate("keyboardItemStop", lang_id))
        self.keyboard_running = ReplyKeyboardMarkup(
            keyboard=[[one_more_button, no_more_button], [stop_button]],
            selective=True)

        self.add_player(user_id, first_name, message_id, silent=True)

        # Only send a "Please join the game" message, when it's a group chat
        if self.game_type == self.GROUP_CHAT:
            send_message(
                chat_id, translate("newRound", lang_id),
                message_id=message_id)  # keyboard=self.keyboard_not_running
        else:
            self.start_game()
Пример #22
0
def getRegisteredUsers(bot, update):
    db = DBwrapper.get_instance()
    userList = db.get_all_users()

    header = translate("userListMsg1")
    footer = translate("userListMsg3")

    formatedUserList = []
    for user in userList:
        formatedUserList.append(
            translate("userListMsg2").format(f'{user[5]:02}', user[4]))

    finalString = header + "\n\n"
    finalString += '\n'.join(formatedUserList)
    finalString += "\n\n" + footer

    bot.sendMessage(
        chat_id=update.message.chat_id,
        message_id=update.message.message_id,
        text=finalString,
        parse_mode=ParseMode.HTML,
    )
    deleteMessage(bot, update)
Пример #23
0
def getProfileKeyboard():
    stringList = [
        translate("alertMsg1"),
        translate("alertMsg2"),
        translate("alertMsg3"),
        translate("alertMsg4")
    ]

    buttons = list()
    for index, value in enumerate(stringList):
        buttons.append(InlineKeyboardButton(text=value, callback_data=index))

    lastRowButton = [
        InlineKeyboardButton(text=translate("cancelMsg"),
                             callback_data="cancel")
    ]

    reply_mrk = InlineKeyboardMarkup(build_menu(buttons,
                                                n_cols=1,
                                                footer_buttons=lastRowButton),
                                     one_time_keyboard=True)

    return reply_mrk
Пример #24
0
def game_commands(bot, update):
    if update.message is None:
        logger.warning(
            "game_commands error happened again! Update: {}".format(update))

    text = update.effective_message.text
    chat_id = update.effective_message.chat_id
    user = update.effective_user
    user_id = user.id
    first_name = user.first_name
    last_name = user.last_name
    username = user.username
    db = DBwrapper.get_instance()
    lang_id = db.get_lang_id(user_id)

    state_handler = StateHandler.get_instance()
    user = state_handler.get_user(user_id)

    if user.get_state() == UserState.COMMENTING:
        # User wants to comment!
        bot.sendMessage(chat_id, text=translate("userComment", lang_id))
        for admin_id in db.get_admins():
            admin_message = "New comment:\n\n{}\n\n{} | {} | {} | @{} | {}".format(
                text, user_id, first_name, last_name, username, lang_id)
            bot.sendMessage(admin_id, text=admin_message)

        user.set_state(UserState.IDLE)
        return

    if not db.is_user_saved(user_id):
        logger.info("New user - {}".format(user_id))
        db.add_user(user_id, "en", first_name, last_name, username)

        if chat_id > 0:
            # ask user for language if it's a private chat:
            language_cmd(bot, update)

        return

    # check if user already has got a game (in the same chat):
    # TODO multiplayer games
    game = game_handler.get_game_by_chatid(chat_id)
    if game is not None:
        logger.debug(
            "Game already existing. Forwarding text '{}' to game".format(text))
        game.analyze_message(update)
Пример #25
0
    def add_player(self, user_id, first_name, message_id, silent=None):
        if not self.game_running:
            if self.get_index_by_user_id(user_id) == -1 and len(
                    self.players) <= self.MAX_PLAYERS:
                self.logger.debug("Adding user '" + first_name +
                                  "' to players.")
                player = Player(user_id, first_name, self.deck)
                self.players.append(player)
                self.join_message_ids.append(message_id)

                if silent is None or silent is False:
                    self.send_message(
                        self.chat_id,
                        translate("playerJoined",
                                  self.lang_id).format(first_name),
                        message_id=message_id)
            else:
                self.logger.debug("User '" + first_name +
                                  "' already in player list.")
Пример #26
0
    def analyze_message(self, update):
        """Commands for a game are forwarded to the specific game's 'analyze_message' method"""
        text = update.message.text
        user_id = update.message.from_user.id
        first_name = update.message.from_user.first_name
        message_id = update.message.message_id

        # Remove leading slash from command
        if text.startswith("/"):
            command = str(text[1:]).lower()
        else:
            command = text.lower()

        # TODO following "or self.game_type == self.MULTIPLAYER_GAME" is not neccessary
        if self.game_type == self.GROUP_CHAT or self.game_type == self.MULTIPLAYER_GAME:
            if command.startswith(translate("join", self.lang_id)):
                self.add_player(user_id, first_name, message_id)
            elif command.startswith(translate("startCmd", self.lang_id)):
                self.start_game()
        if self.game_running:
            if command.startswith(translate("oneMore", self.lang_id)):
                if self.current_player is None or self.current_player < 0:
                    return

                if user_id == self.players[self.current_player].user_id:
                    self.give_player_one()
                else:
                    self.send_message(
                        self.chat_id,
                        translate("notYourTurn",
                                  self.lang_id).format(first_name),
                        game_id=self.__game_id)
            elif command.startswith(translate("noMore", self.lang_id)):
                if self.current_player is None or self.current_player < 0:
                    return

                if user_id == self.players[self.current_player].user_id:
                    self.logger.debug("User doesn't want another card")
                    self.next_player()
            elif command.startswith(translate("stopCmd", self.lang_id)):
                if user_id == self.players[0].user_id:
                    self.send_message(self.chat_id,
                                      translate("gameEnded", self.lang_id),
                                      game_id=self.__game_id)
                    self.game_handler.gl_remove(self.chat_id)
Пример #27
0
def showUserProfile(bot, update):
    query = update.callback_query

    if query.data == "cancel":
        deleteMessage(bot, update)
    else:
        user = query.from_user
        try:
            db = DBwrapper.get_instance()
            userProfiles = db.get_user_profile()
        except Exception as ex:
            logger.error(
                "showUserProfile - An error has occurred while getting  an user profile!",
                ex)
        else:
            text = translate("registryConfirmationMsg")
            bot.edit_message_text(text=text.format(user.username, query.data),
                                  parse_mode=ParseMode.HTML,
                                  chat_id=query.message.chat_id,
                                  message_id=query.message.message_id)
Пример #28
0
def saveAlertToUserProfile(bot, update):
    query = update.callback_query

    if query.data == "cancel":
        deleteMessage(bot, update)
    else:
        user = query.from_user
        try:
            db = DBwrapper.get_instance()
            db.add_user_profile(user.id, query.data)
        except Exception as ex:
            logger.error(
                "saveAlertToUserProfile - An error has occurred while saving a profile!",
                ex)
        else:
            text = translate("alertConfirmationMsg").fomat(user.username)
            bot.edit_message_text(text=text,
                                  parse_mode=ParseMode.HTML,
                                  chat_id=query.message.chat_id,
                                  message_id=query.message.message_id)
Пример #29
0
def confirmNewUser(bot, update):
    query = update.callback_query

    if query.data == "cancel":
        deleteMessage(bot, update)
    else:
        user = query.from_user
        try:
            db = DBwrapper.get_instance()
            db.add_user(user.id, user.first_name, user.last_name,
                        user.username, query.data, user.language_code)
        except Exception as ex:
            logger.error(
                "confirmNewUser - An error has occurred while adding an user!",
                ex)
        else:
            text = translate("registryConfirmationMsg").format(
                user.username, query.data)
            bot.edit_message_text(text=text,
                                  parse_mode=ParseMode.HTML,
                                  chat_id=query.message.chat_id,
                                  message_id=query.message.message_id)
Пример #30
0
 def get_player_overview(self,
                         show_points=False,
                         text="",
                         i=0,
                         dealer=False):
     if self.game_running:
         for user in self.players:
             if i == self.current_player:
                 text += "▶️"
             else:
                 text += "👤"
             if show_points is True and (i < self.current_player
                                         or self.current_player == -1):
                 text += (user.first_name + " - [" +
                          str(self.players[i].cardvalue) + "]\n")
             else:
                 text += (user.first_name + "\n")
             i += 1
         if dealer is True:
             text += ("🎩" + translate("dealerName", self.lang_id) + " - [" +
                      str(self.dealer.get_cardvalue()) + "]")
         return text
     else:
         return ""