Skip to content

Commit 1b5806c

Browse files
committed
bot.py: add create_references method
1 parent 5879084 commit 1b5806c

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

telegram/bot.py

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1178,6 +1178,26 @@ def editMessageReplyMarkup(
11781178

11791179
return url, data
11801180

1181+
def create_references(self, d):
1182+
"""
1183+
Recursively reates a reference to this Bot instance in the dict and all contained dicts and
1184+
lists of dicts. This reference can then be retrieved in constructors to be used in class
1185+
methods like ``Message.reply_text``.
1186+
1187+
Args:
1188+
d (dict): The dict to create the references in.
1189+
"""
1190+
1191+
for value in d.values():
1192+
if isinstance(value, list):
1193+
for item in value:
1194+
self.create_references(item)
1195+
1196+
elif isinstance(value, dict):
1197+
self.create_references(value)
1198+
1199+
d['bot'] = self
1200+
11811201
@log
11821202
def getUpdates(self, offset=None, limit=100, timeout=0, network_delay=5., **kwargs):
11831203
"""Use this method to receive incoming updates using long polling.
@@ -1221,10 +1241,14 @@ def getUpdates(self, offset=None, limit=100, timeout=0, network_delay=5., **kwar
12211241

12221242
if result:
12231243
self.logger.debug('Getting updates: %s', [u['update_id'] for u in result])
1244+
12241245
else:
12251246
self.logger.debug('No new updates found.')
12261247

1227-
return [Update.de_json(x) for x in result]
1248+
for u in result:
1249+
self.create_references(u)
1250+
1251+
return [Update.de_json(u) for u in result]
12281252

12291253
@log
12301254
def setWebhook(self, webhook_url=None, certificate=None, **kwargs):

0 commit comments

Comments
 (0)