Skip to content

Commit

Permalink
Release 1.3.1 (#3)
Browse files Browse the repository at this point in the history
* refactor

* built in proxy via PySocks

* opentfd release

* Update README.md

* Desktop translation issue resolved
Added merge_semaphore

* README.md

* switched to system time instead event.date
ignoring of messages in bot's chats
refactor
removed dot markers in start of appended messages
  • Loading branch information
SlavikMIPT committed Oct 16, 2018
1 parent 7f27ea7 commit 1357b9b
Show file tree
Hide file tree
Showing 4 changed files with 54 additions and 36 deletions.
63 changes: 27 additions & 36 deletions opentfd.py
Expand Up @@ -10,38 +10,18 @@
from telethon import sync
from telethon.tl.types import UpdateDraftMessage
from proxy import mediatube_proxy
from supported_langs import supported_langs
import secret
import re

supported_langs = {'Afrikaans': 'af', 'Irish': 'ga', 'Albanian': 'sq',
'Italian': 'it', 'Arabic': 'ar', 'Japanese': 'ja',
'Azerbaijani': 'az', 'Kannada': 'kn', 'Basque': 'eu',
'Korean': 'ko', 'Bengali': 'bn', 'Latin': 'la',
'Belarusian': 'be', 'Latvian': 'lv', 'Bulgarian': 'bg',
'Lithuanian': 'lt', 'Catalan': 'ca', 'Macedonian': 'mk',
'Chinese Simplified': 'zh-CN', 'Malay': 'ms',
'Chinese Traditional': 'zh-TW', 'Maltese': 'mt',
'Croatian': 'hr', 'Norwegian': 'no', 'Czech': 'cs',
'Persian': 'fa', 'Danish': 'da', 'Polish': 'pl',
'Dutch': 'nl', 'Portuguese': 'pt', 'English': 'en',
'Romanian': 'ro', 'Esperanto': 'eo', 'Russian': 'ru',
'Estonian': 'et', 'Serbian': 'sr', 'Filipino': 'tl',
'Slovak': 'sk', 'Finnish': 'fi', 'Slovenian': 'sl',
'French': 'fr', 'Spanish': 'es', 'Galician': 'gl',
'Swahili': 'sw', 'Georgian': 'ka', 'Swedish': 'sv',
'German': 'de', 'Tamil': 'ta', 'Greek': 'el',
'Telugu': 'te', 'Gujarati': 'gu', 'Thai': 'th',
'Haitian Creole': 'ht', 'Turkish': 'tr', 'Hebrew': 'iw',
'Ukrainian': 'uk', 'Hindi': 'hi', 'Urdu': 'ur',
'Hungarian': 'hu', 'Vietnamese': 'vi', 'Icelandic': 'is',
'Welsh': 'cy', 'Indonesian': 'id', 'Yiddish': 'yi'}
client = TelegramClient('opentfd_session', secret.api_id, secret.api_hash, proxy=mediatube_proxy).start()
last_msg = None
break_date = None
break_time = None
last_msg_time = time()
MERGE_TIMEOUT = 30
merge_semaphore = asyncio.Semaphore(value=1)



async def delete_messages():
messages = await client.get_messages(entity, limit=10)

Expand Down Expand Up @@ -121,16 +101,18 @@ async def translator(event):

@client.on(events.NewMessage(incoming=True))
async def break_updater(event):
global break_date
global break_time
global last_msg
if event.chat.bot:
return
if last_msg:
try:
if (event.message.to_id.user_id == last_msg.from_id and
last_msg.to_id.user_id == event.message.sender_id):
break_date = event.date
break_time = time()
except Exception:
if event.to_id == last_msg.to_id:
break_date = event.date
break_time = time()


@client.on(events.NewMessage(pattern=r'^!bash (.+)', outgoing=True))
Expand All @@ -147,37 +129,46 @@ async def bash(e):
@client.on(events.NewMessage(outgoing=True))
async def merger(event):
global last_msg
global break_date
global break_time
global last_msg_time
global merge_semaphore
event_time = time()
with suppress(Exception):
if event.text:
if event.text.startswith('!bash'):
return
if event.chat.bot:
return
if (event.media or event.fwd_from or event.via_bot_id or
event.reply_to_msg_id or event.reply_markup):
last_msg = None
elif last_msg is None:
last_msg = event
elif last_msg.to_id == event.to_id:
if break_date:
if break_date < event.date:
if break_time:
if break_time < event_time:
last_msg = event
break_date = 0
elif event.date - last_msg.date < timedelta(seconds=30):
last_msg_time = event_time
break_time = 0
elif event_time - last_msg_time < MERGE_TIMEOUT:
try:
await merge_semaphore.acquire()
last_msg = await last_msg.edit('{0}\n{1}'.format(last_msg.text, event.text))
last_msg.date = event.date
last_msg = await last_msg.edit('{0}\n{1}'.format(last_msg.text, event.text))
last_msg_time = event_time
await event.delete()
finally:
merge_semaphore.release()
else:
last_msg = event
last_msg_time = event_time
else:
last_msg = event

last_msg_time = event_time
print("OpenTFD is running")
print("Do not close this window")
print("t.me/mediatube_stream")
print("https://github.com/mediatube/opentfd")
print("https://github.com/mediatube/opentfd\n")
print("Supported Languages")
for key, val in supported_langs.items():
print(f'{key:<25}/{val}')
client.run_until_disconnected()
2 changes: 2 additions & 0 deletions proxy.py
@@ -1,2 +1,4 @@
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
import socks
mediatube_proxy = (socks.SOCKS5, 'api.tg.mediatube.xyz', 433, True, 'socksuser', '8X5tjtV5ISNv2')
1 change: 1 addition & 0 deletions settings.conf
@@ -0,0 +1 @@
[]
24 changes: 24 additions & 0 deletions supported_langs.py
@@ -0,0 +1,24 @@
#!/usr/bin/env python3
# -*- coding: UTF-8 -*-
supported_langs = {'Afrikaans': 'af', 'Irish': 'ga', 'Albanian': 'sq',
'Italian': 'it', 'Arabic': 'ar', 'Japanese': 'ja',
'Azerbaijani': 'az', 'Kannada': 'kn', 'Basque': 'eu',
'Korean': 'ko', 'Bengali': 'bn', 'Latin': 'la',
'Belarusian': 'be', 'Latvian': 'lv', 'Bulgarian': 'bg',
'Lithuanian': 'lt', 'Catalan': 'ca', 'Macedonian': 'mk',
'Chinese Simplified': 'zh-CN', 'Malay': 'ms',
'Chinese Traditional': 'zh-TW', 'Maltese': 'mt',
'Croatian': 'hr', 'Norwegian': 'no', 'Czech': 'cs',
'Persian': 'fa', 'Danish': 'da', 'Polish': 'pl',
'Dutch': 'nl', 'Portuguese': 'pt', 'English': 'en',
'Romanian': 'ro', 'Esperanto': 'eo', 'Russian': 'ru',
'Estonian': 'et', 'Serbian': 'sr', 'Filipino': 'tl',
'Slovak': 'sk', 'Finnish': 'fi', 'Slovenian': 'sl',
'French': 'fr', 'Spanish': 'es', 'Galician': 'gl',
'Swahili': 'sw', 'Georgian': 'ka', 'Swedish': 'sv',
'German': 'de', 'Tamil': 'ta', 'Greek': 'el',
'Telugu': 'te', 'Gujarati': 'gu', 'Thai': 'th',
'Haitian Creole': 'ht', 'Turkish': 'tr', 'Hebrew': 'iw',
'Ukrainian': 'uk', 'Hindi': 'hi', 'Urdu': 'ur',
'Hungarian': 'hu', 'Vietnamese': 'vi', 'Icelandic': 'is',
'Welsh': 'cy', 'Indonesian': 'id', 'Yiddish': 'yi'}

0 comments on commit 1357b9b

Please sign in to comment.