Nelze vybrat více než 25 témat Téma musí začínat písmenem nebo číslem, může obsahovat pomlčky („-“) a může být dlouhé až 35 znaků.
 

56 řádky
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)