|
|
import gradio as gr |
|
|
from telethon.sync import TelegramClient, events |
|
|
import datetime |
|
|
import socks |
|
|
import time |
|
|
import os |
|
|
import requests |
|
|
import random |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def download_file(url, filename): |
|
|
response = requests.get(url) |
|
|
with open(filename, 'wb') as file: |
|
|
file.write(response.content) |
|
|
|
|
|
|
|
|
RndMssgs = [ |
|
|
"I've received your message. I'll get back to you as soon as possible.", |
|
|
"I appreciate your patience and understanding.", |
|
|
"Your message has been received. I'll respond shortly.", |
|
|
"I'm currently unavailable, but I'll reply as soon as I can.", |
|
|
"Your message has been received and it's important to us.", |
|
|
"I'm away at the moment. Rest assured, I'll respond to your message soon.", |
|
|
"Your message is received. Thank you for your understanding.", |
|
|
"I've received your message and will respond at my earliest convenience.", |
|
|
"I've received your message. I'll make sure to reply as soon as possible.", |
|
|
"I'm currently out offline, but I'll get back to you shortly.", |
|
|
"I've received your message. I'll get back to you soon.", |
|
|
"I'm not available right now, but I've received your message.", |
|
|
"Thank you for contacting me. I'll respond as soon as I can.", |
|
|
"I'm currently busy, but I'll make sure to reply to your message as soon as possible.", |
|
|
"Your message has been received. I'll get back to you shortly.", |
|
|
"Thank you for your patience. I'll respond as soon as I can.", |
|
|
"I've received your message and will get back to you shortly.", |
|
|
"Your message has been received. Thank you for waiting.", |
|
|
"I'm currently on a break, but I've received your message and will respond soon." |
|
|
] |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
proxy_server = '142.93.68.63' |
|
|
proxy_port = 2434 |
|
|
proxy_secret = 'ee32b920dffb51643028e2f6b878d4eac1666172616b61762e636f6d' |
|
|
proxy_dc_id = 2 |
|
|
|
|
|
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, 'anon.session') |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
reply_times = {} |
|
|
|
|
|
async def main(): |
|
|
async with TelegramClient('anon', 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 |
|
|
|
|
|
|
|
|
if chat_id == sender_id and not sender.bot: |
|
|
|
|
|
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: |
|
|
response = f'Hello <a href="tg://user?id={sender_id}">{sender_name}</a> ๐๐ป ,\n {random.choice(RndMssgs)} ๐' |
|
|
|
|
|
await client.send_message(chat_id, response, parse_mode='HTML',link_preview=False) |
|
|
reply_times[str(sender_id)] = time.time() |
|
|
|
|
|
|
|
|
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 {random.choice(RndMssgs)} ๐' |
|
|
|
|
|
await client.send_message(chat_id, response, parse_mode='HTML',link_preview=False) |
|
|
reply_times[str(str(chat_id)+str(sender_id))] = time.time() |
|
|
|
|
|
|
|
|
await client.run_until_disconnected() |
|
|
|
|
|
|
|
|
|
|
|
inputs = [] |
|
|
output = "text" |
|
|
gr.Interface(fn=main, inputs=inputs, outputs=output).launch() |
|
|
|
|
|
|