|
|
|
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)
|