Merge branch 'qubitnerd-qubitnerd_remind_feature'

This commit is contained in:
Jannes Höke 2016-07-02 20:38:19 +02:00
commit 8fe190133f
5 changed files with 36 additions and 1 deletions

View file

@ -7,5 +7,6 @@
The following wonderful people contributed directly or indirectly to this project: The following wonderful people contributed directly or indirectly to this project:
- [imlonghao](https://github.com/imlonghao) - [imlonghao](https://github.com/imlonghao)
- [qubitnerd](https://github.com/qubitnerd)
Please add yourself here alphabetically when you submit your first pull request. Please add yourself here alphabetically when you submit your first pull request.

27
bot.py
View file

@ -52,6 +52,22 @@ logging.basicConfig(
logger = logging.getLogger(__name__) logger = logging.getLogger(__name__)
@user_locale
def notify_me(bot, update):
"""Handler for /notify_me command, pm people for next game"""
chat_id = update.message.chat_id
if update.message.chat.type == 'private':
send_async(bot,
chat_id,
text=_("Send this command in a group to be notified "
"when a new game is started there."))
else:
try:
gm.remind_dict[chat_id].append(update.message.from_user.id)
except KeyError:
gm.remind_dict[chat_id] = [update.message.from_user.id]
@user_locale @user_locale
def new_game(bot, update): def new_game(bot, update):
"""Handler for the /new command""" """Handler for the /new command"""
@ -61,6 +77,16 @@ def new_game(bot, update):
help(bot, update) help(bot, update)
else: else:
if update.message.chat_id in gm.remind_dict:
for user in gm.remind_dict[update.message.chat_id]:
send_async(bot,
user,
text="A new game has been started in " +
update.message.chat.title)
del gm.remind_dict[update.message.chat_id]
game = gm.new_game(update.message.chat) game = gm.new_game(update.message.chat)
game.owner = update.message.from_user game.owner = update.message.from_user
send_async(bot, chat_id, send_async(bot, chat_id,
@ -711,6 +737,7 @@ dispatcher.add_handler(CommandHandler('enable_translations',
dispatcher.add_handler(CommandHandler('disable_translations', dispatcher.add_handler(CommandHandler('disable_translations',
disable_translations)) disable_translations))
dispatcher.add_handler(CommandHandler('skip', skip_player)) dispatcher.add_handler(CommandHandler('skip', skip_player))
dispatcher.add_handler(CommandHandler('next_game',next_game))
simple_commands.register() simple_commands.register()
settings.register() settings.register()
dispatcher.add_handler(MessageHandler([Filters.status_update], status_update)) dispatcher.add_handler(MessageHandler([Filters.status_update], status_update))

View file

@ -33,6 +33,8 @@ class GameManager(object):
self.chatid_games = dict() self.chatid_games = dict()
self.userid_players = dict() self.userid_players = dict()
self.userid_current = dict() self.userid_current = dict()
self.remind_dict = dict()
self.logger = logging.getLogger(__name__) self.logger = logging.getLogger(__name__)
def new_game(self, chat): def new_game(self, chat):

View file

@ -75,6 +75,10 @@ msgstr ""
msgid "Created a new game! Join the game with /join and start the game with /start" msgid "Created a new game! Join the game with /join and start the game with /start"
msgstr "" msgstr ""
#: bot.py
msgid "Send this command in a group to be notified when a new game is started there."
msgstr ""
#: bot.py:152 #: bot.py:152
msgid "The lobby is closed" msgid "The lobby is closed"
msgstr "" msgstr ""

View file

@ -40,7 +40,8 @@ help_text = ("Follow these steps:\n\n"
"the selected action.\n" "the selected action.\n"
"Players can join the game at any time. To leave a game, " "Players can join the game at any time. To leave a game, "
"use /leave. If a player takes more than 90 seconds to play, " "use /leave. If a player takes more than 90 seconds to play, "
"you can use /skip to skip that player.\n\n" "you can use /skip to skip that player. Use /notify_me to "
"receive a private message when a new game is started.\n\n"
"<b>Language</b> and other settings: /settings\n" "<b>Language</b> and other settings: /settings\n"
"Other commands (only game creator):\n" "Other commands (only game creator):\n"
"/close - Close lobby\n" "/close - Close lobby\n"