Spaces:
Running
Running
import gradio as gr | |
from telethon.sync import TelegramClient, events | |
import datetime | |
import socks | |
import time | |
proxy_server = '142.93.68.63' | |
proxy_port = 2434 | |
proxy_secret = 'ee32b920dffb51643028e2f6b878d4eac1666172616b61762e636f6d' | |
proxy_dc_id = 2 # This is usually 2 for MTProto proxies | |
proxy = ( | |
socks.SOCKS5, | |
proxy_server, | |
proxy_port, | |
True, | |
'vpn', | |
'unlimited' | |
) | |
api_id = '10086982' | |
api_hash = '3ed461889a88b31fcbc323d13e43cf7e' | |
phone = '+963994935356' | |
# Dictionary to track the times when senders were last replied to | |
reply_times = {} | |
async def main(): | |
async with TelegramClient('anon', api_id, api_hash) as client: | |
async def my_event_handler(event): | |
sender = await event.get_sender() | |
sender_id = sender.id | |
sender_name = sender.first_name | |
chat = await event.get_chat() | |
chat_id = chat.id | |
text = event.raw_text | |
# Timekeeping | |
checkpoint = datetime.datetime.now() | |
print(f'Checkpoint: {checkpoint}') | |
# Personal message | |
if chat_id == sender_id: | |
# Check the last reply to this sender | |
last_reply_time = reply_times.get(str(sender_id), None) | |
if last_reply_time is None or time.time() - last_reply_time > 60: # reply only if not replied in the last minute | |
response = f'Hello {sender_name}, I received your message and will reply as soon as possible. Thank you for your understanding.' | |
await client.send_message(chat_id, response) | |
reply_times[str(sender_id)] = time.time() # update the last reply time | |
# Group message | |
elif '@Mohammed_Alakhras' in text: | |
last_reply_time = reply_times.get(str(str(chat_id)+str(sender_id)), None) | |
if last_reply_time is None or time.time() - last_reply_time > 60: | |
response = f'Hello {sender_name}, I received your message and will reply as soon as possible. Thank you for your understanding.' | |
await client.send_message(chat_id, response) | |
reply_times[str(str(chat_id)+str(sender_id))] = time.time() | |
await client.run_until_disconnected() | |
# client.loop.run_until_complete(main()) | |
# ุชุนุฑูู ุญููู ุงููุต ูู Gradio | |
# ุชุนุฑูู ุงููุงุฌูุฉ | |
inputs = [] | |
output = "text" | |
gr.Interface(fn=main, inputs=inputs, outputs=output).launch() | |
# Run the main function in the event loop | |
# client.loop.run_until_complete(main()) |