Spaces:
Running
Running
File size: 2,820 Bytes
d32bbaf fb5dadd 73c328a a03f7d7 73c328a d32bbaf fb5dadd 3e96bbe fb5dadd 3e96bbe 73c328a 4a4cb82 73c328a a03f7d7 d32bbaf fb5dadd d32bbaf 14d5911 a03f7d7 14d5911 d32bbaf 10fb16c 22f6372 10fb16c f1c32f6 df4f66c 4f9c90e 31e25aa f1c32f6 d32bbaf 10fb16c 73c328a f1c32f6 82701a5 071fa59 31e25aa f1c32f6 10fb16c 14d5911 d32bbaf 14d5911 82701a5 f1c4e52 10fb16c 14d5911 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 |
import gradio as gr
from telethon.sync import TelegramClient, events
import datetime
import socks
import time
import os
import requests
def download_file(url, filename):
response = requests.get(url)
with open(filename, 'wb') as file:
file.write(response.content)
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=os.environ['apiID']
api_hash=os.environ['apiHash']
phone=os.environ['phone']
username=os.environ['username']
serssionFile=os.environ['sessionUrlFile']
download_file(serssionFile, 'an.session')
# Dictionary to track the times when senders were last replied to
reply_times = {}
async def main():
async with TelegramClient(an, api_id, api_hash) as client:
@client.on(events.NewMessage())
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
# Personal message
if chat_id == sender_id and not sender.bot:
# 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*60*6: # reply only if not replied in the last minute
response = f'Hello <a href="tg://user?id={sender_id}">{sender_name}</a>,\n I received your message and will reply as soon as possible. Thank you for your understanding.'
await client.send_message(chat_id, response, parse_mode='HTML')
reply_times[str(sender_id)] = time.time() # update the last reply time
# Group message
elif username 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*5:
response = f'Hello <a href="tg://user?id={sender_id}">{sender_name}</a> @ <a href="https://t.me/c/{chat_id}">{chat.title}</a>,\n I received your message and will reply as soon as possible. Thank you for your understanding.'
await client.send_message(chat_id, response, parse_mode='HTML')
reply_times[str(str(chat_id)+str(sender_id))] = time.time()
await client.run_until_disconnected()
# Gradio Inteface
inputs = []
output = "text"
gr.Interface(fn=main, inputs=inputs, outputs=output).launch()
# client.loop.run_until_complete(main()) |