No puede seleccionar más de 25 temas Los temas deben comenzar con una letra o número, pueden incluir guiones ('-') y pueden tener hasta 35 caracteres de largo.

56 líneas
1.4 KiB

import asyncio
import logging
import settings
import time
import validators
from aiohttp import web
from telethon import TelegramClient, events
TANNER = 79316791
bot = TelegramClient('data/bot', settings.API_ID, settings.API_HASH).start(bot_token=settings.API_TOKEN)
routes = web.RouteTableDef()
logging.basicConfig(level=logging.INFO)
data = ''
data_time = 0
@bot.on(events.NewMessage)
async def new_message(event):
global data, data_time
if not event.raw_text:
await event.reply('no')
logging.info('No text found')
return
logging.info('Message: ' + event.raw_text)
if event.sender.id != TANNER:
await event.reply('no')
logging.info('Message not from Tanner')
return
data = event.raw_text
data_time = time.time()
await event.reply('ok')
@routes.get('/')
async def index(request):
if 'bot' in request.headers.get('User-Agent', '').lower():
raise web.HTTPForbidden()
if time.time() - data_time > 3600:
logging.info('Time expired, showing green ocean water')
return web.FileResponse(path='greenoceanwater.jpg', status=200)
if validators.domain(data):
raise web.HTTPFound('http://' + data)
elif validators.url(data):
raise web.HTTPFound(data)
else:
return web.Response(text=data)
app = web.Application()
app.add_routes(routes)
web.run_app(app)