63 lines
1.7 KiB
Python
63 lines
1.7 KiB
Python
import os
|
|
|
|
from getpass import getpass
|
|
|
|
from urllib.parse import urlparse
|
|
|
|
from dotenv import dotenv_values
|
|
|
|
from telethon import TelegramClient, events
|
|
|
|
if (not os.path.isfile(".env")):
|
|
# raise Exception("No .env file configuration. Please read \"README.md\" file")
|
|
api_id_user=getpass("Please enter your API ID: ")
|
|
api_hash_user=getpass("Please enter your API Hash: ")
|
|
bot_token_user=getpass("Please enter your Bot Token: ")
|
|
|
|
config = dotenv_values(".env")
|
|
|
|
api_id = config["api_id"]
|
|
api_hash = config["api_hash"]
|
|
bot_token = config["bot_token"]
|
|
|
|
if (api_id is None or api_hash is None or bot_token is None):
|
|
raise Exception("Invalid .env configuration")
|
|
|
|
api_id = int(api_id)
|
|
|
|
client = TelegramClient('client', api_id, api_hash)
|
|
bot = TelegramClient('bot', api_id, api_hash).start(bot_token=bot_token)
|
|
|
|
url_regex = r'https?://\S+|www\.\S+'
|
|
|
|
@client.on(events.NewMessage(incoming=False, outgoing=True, forwards=False, pattern=url_regex))
|
|
async def edit_message_url(event):
|
|
replacements = {
|
|
'twitter.com': 'vxtwitter.com',
|
|
'x.com': 'vxtwitter.com',
|
|
'furaffinity.net': 'vxfuraffinity.net',
|
|
}
|
|
|
|
parsed_url = urlparse(event.raw_text)
|
|
|
|
for old_url, new_url in replacements.items():
|
|
if old_url == parsed_url.netloc:
|
|
parsed_url = parsed_url._replace(netloc=new_url)
|
|
parsed_url = parsed_url._replace(query='')
|
|
|
|
await client.edit_message(
|
|
entity=await event.get_chat(),
|
|
message=event.message,
|
|
text=parsed_url.geturl(),
|
|
link_preview=True
|
|
)
|
|
break
|
|
|
|
def start():
|
|
client.start()
|
|
bot.start()
|
|
print("🚀 App started!")
|
|
client.run_until_disconnected()
|
|
|
|
start()
|