Skip to content

Commit

Permalink
add first draft of __send_message function. ref #44
Browse files Browse the repository at this point in the history
  • Loading branch information
e-caste committed Apr 21, 2020
1 parent 9ec0442 commit 61ea902
Showing 1 changed file with 26 additions and 2 deletions.
28 changes: 26 additions & 2 deletions boggle_telegram_bot.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@
from telegram.ext import (Updater, CommandHandler, MessageHandler, Filters,
CallbackQueryHandler, PicklePersistence)
from telegram.utils.helpers import mention_html
from telegram.error import Unauthorized, BadRequest
from telegram.error import Unauthorized, BadRequest, RetryAfter
import logging
from secret import token, castes_chat_id, working_directory
import os
Expand All @@ -20,7 +20,7 @@
from threading import Timer
from dice import get_shuffled_dice, letters_sets
from math import sqrt
from time import time
from time import time, sleep

HTML = ParseMode.HTML
debug = sys.platform.startswith("darwin")
Expand Down Expand Up @@ -1872,6 +1872,30 @@ def __get_chat_id_from_query(query) -> int:
return query.message.chat_id


def __send_message(text: str, chat_id: int, parse_mode: str = None, update=None, context=None):
if update:
try:
update.message.reply_text(text=text,
parse_mode=parse_mode)
except RetryAfter: # ignore users who spam in private chat
pass

elif context:
for _ in range(3):
try:
context.bot.send_message(chat_id=chat_id,
text=text,
parse_mode=parse_mode)
break

except RetryAfter as e:
logger.warning(f"Flood control exceeded in group chat. Sleeping for {e.retry_after} seconds.")
sleep(e.retry_after + .5)

else:
logger.error('No update or context to send the message.')


def main():
pp = PicklePersistence(filename='_boggle_paroliere_bot_db')
updater = Updater(token, persistence=pp, use_context=True, request_kwargs={'read_timeout': 10})
Expand Down

0 comments on commit 61ea902

Please sign in to comment.