Skip to content

Commit 672a124

Browse files
committed
Thanks to donation from 绵绵.
Fix error caused by logging. ETM: Empty Image/stickers can now be replied.
1 parent 6f045f1 commit 672a124

File tree

4 files changed

+52
-24
lines changed

4 files changed

+52
-24
lines changed

docs/donations.md

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Support EFB
2+
3+
You can donate to me via any of the following methods.
4+
5+
* [![Beerpay](https://img.shields.io/badge/Donate-with%20Beerpay-red.svg)](https://beerpay.io/blueset/ehForwarderBot)
6+
* [![Donate with PayPal](https://img.shields.io/badge/Donate-with%20Paypal-blue.svg)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=A5B55ARC7M6DS&lc=AU&item_name=Eana%20Hufwe%20%28GitHub%20ID%3a%20blueset%29&item_number=EFB&currency_code=AUD&bn=PP%2dDonationsBF%3aDonate%2dvia%2520Paypal%2dblue%2esvg%3aNonHosted)
7+
* [![Donate with AliPay](https://img.shields.io/badge/Donate-with%20AliPay-orange.svg)](https://images.1a23.com/di/K1OU/EFBdonate.png)
8+
* [![Donate with Patreon](https://img.shields.io/badge/Donate-with%20Patreon-orange.svg)](https://patreon.com/user?u=4886291)
9+
10+
11+
## Supporters
12+
* 绵绵: CNY 10.00

docs/index.md

+3-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,11 @@
11
# EH Forwarder Bot
22

3-
![Python 3.x](https://img.shields.io/badge/Python-3.x-blue.svg) [![Gitter](https://img.shields.io/gitter/room/blueset/ehForwarderBot.svg)](https://gitter.im/blueset/ehForwarderBot)
3+
![Python 3.x](https://img.shields.io/badge/Python-3.x-blue.svg)
4+
[![Gitter](https://img.shields.io/gitter/room/blueset/ehForwarderBot.svg)](https://gitter.im/blueset/ehForwarderBot)
45
[![Telegram support group](https://img.shields.io/badge/Chat-on%20Telegram-blue.svg)](https://telegram.me/efbsupport)
56
[![Docs: Stable version](https://readthedocs.org/projects/ehforwarderbot/badge/?version=latest)](https://ehforwarderbot.readthedocs.io/en/latest/)
67
[![Docs: Development version version](https://readthedocs.org/projects/ehforwarderbot/badge/?version=dev)](https://ehforwarderbot.readthedocs.io/en/dev/)
8+
[![tag](https://img.shields.io/github/tag/blueset/ehforwarderbot.svg)](https://github.com/blueset/ehForwarderBot/releases)
79

810
![EFB](https://images.1a23.com/upload/images/SPET.png)
911

mkdocs.yml

+1
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@ pages:
1616
- 'Official plugins':
1717
- 'EFB Telegram Master': 'ETM.md'
1818
- 'EFB WeChat Slave': 'EWS.md'
19+
- 'Support EFB': 'donations.md'
1920
theme: readthedocs
2021
repo_url: 'https://github.com/blueset/ehforwarderbot'
2122
markdown_extensions:

plugins/eh_telegram_master/__init__.py

+36-23
Original file line numberDiff line numberDiff line change
@@ -309,35 +309,37 @@ def process_msg(self, msg):
309309
os.stat(msg.path).st_size, msg.mime)
310310
if os.stat(msg.path).st_size == 0:
311311
os.remove(msg.path)
312-
return self.bot.bot.sendMessage(tg_dest,
312+
tg_msg = self.bot.bot.sendMessage(tg_dest,
313313
msg_template % ("Error: Empty %s received. (MS01)" % msg.type))
314-
if not msg.text:
315-
if msg.type == MsgType.Image:
316-
msg.text = "sent a picture."
317-
elif msg.type == MsgType.Sticker:
318-
msg.text = "sent a sticker."
319-
if msg.mime == "image/gif":
320-
tg_msg = self.bot.bot.sendDocument(tg_dest, msg.file, caption=msg_template % msg.text)
321314
else:
322-
try:
323-
tg_msg = self.bot.bot.sendPhoto(tg_dest, msg.file, caption=msg_template % msg.text)
324-
except telegram.error.BadRequest:
315+
if not msg.text:
316+
if msg.type == MsgType.Image:
317+
msg.text = "sent a picture."
318+
elif msg.type == MsgType.Sticker:
319+
msg.text = "sent a sticker."
320+
if msg.mime == "image/gif":
325321
tg_msg = self.bot.bot.sendDocument(tg_dest, msg.file, caption=msg_template % msg.text)
326-
os.remove(msg.path)
322+
else:
323+
try:
324+
tg_msg = self.bot.bot.sendPhoto(tg_dest, msg.file, caption=msg_template % msg.text)
325+
except telegram.error.BadRequest:
326+
tg_msg = self.bot.bot.sendDocument(tg_dest, msg.file, caption=msg_template % msg.text)
327+
os.remove(msg.path)
327328
self.logger.debug("%s, process_msg_step_3_3", xid)
328329
elif msg.type == MsgType.File:
329330
if os.stat(msg.path).st_size == 0:
330331
os.remove(msg.path)
331-
return self.bot.bot.sendMessage(tg_dest,
332+
tg_msg = self.bot.bot.sendMessage(tg_dest,
332333
msg_template % ("Error: Empty %s received. (MS02)" % msg.type))
333-
if not msg.text:
334-
file_name = os.path.basename(msg.path)
335-
msg.text = "sent a file."
336334
else:
337-
file_name = msg.text
338-
tg_msg = self.bot.bot.sendDocument(tg_dest, msg.file, caption=msg_template % msg.text,
339-
filename=file_name)
340-
os.remove(msg.path)
335+
if not msg.text:
336+
file_name = os.path.basename(msg.path)
337+
msg.text = "sent a file."
338+
else:
339+
file_name = msg.text
340+
tg_msg = self.bot.bot.sendDocument(tg_dest, msg.file, caption=msg_template % msg.text,
341+
filename=file_name)
342+
os.remove(msg.path)
341343
elif msg.type == MsgType.Audio:
342344
if os.stat(msg.path).st_size == 0:
343345
os.remove(msg.path)
@@ -387,7 +389,7 @@ def process_msg(self, msg):
387389
self.logger.debug("%s, process_msg_step_4", xid)
388390
if msg.source in (MsgSource.User, MsgSource.Group):
389391
msg_log = {"master_msg_id": "%s.%s" % (tg_msg.chat.id, tg_msg.message_id),
390-
"text": msg.text,
392+
"text": msg.text or "Sent a %s." % msg.type,
391393
"msg_type": msg.type,
392394
"sent_to": "Master",
393395
"slave_origin_uid": "%s.%s" % (msg.channel_id, msg.origin['uid']),
@@ -1169,9 +1171,20 @@ def poll(self):
11691171

11701172
def error(self, bot, update, error):
11711173
"""
1172-
Print error to console, Triggered by python-telegram-bot error callback.
1174+
Print error to console, and send error message to first admin.
1175+
Triggered by python-telegram-bot error callback.
11731176
"""
1174-
self.logger.warning('ERRORRR! Update %s caused error %s' % (update, error))
1177+
if "Conflict: terminated by other long poll or webhook (409)" in str(error):
1178+
msg = 'Please immediately turn off all EFB instances.\nAnother bot instance or web-hook detected.'
1179+
self.logger.error(msg)
1180+
bot.sendMessage(getattr(config, self.channel_id)['admins'][0], msg)
1181+
else:
1182+
bot.sendMessage(getattr(config, self.channel_id)['admins'][0],
1183+
"EFB Telegram Master channel encountered error <code>%s</code> "
1184+
"caused by update <code>%s</code>.\n\n"
1185+
"Report issue: <a href=\"https://github.com/blueset/ehForwarderBot/issues/new\">GitHub Issue Page</a>" %
1186+
(html.escape(error), html.escape(update)))
1187+
self.logger.error('ERROR! Update %s caused error %s' % (update, error))
11751188

11761189
def _flag(self, key, value):
11771190
"""

0 commit comments

Comments
 (0)