25'ten fazla konu seçemezsiniz Konular bir harf veya rakamla başlamalı, kısa çizgiler ('-') içerebilir ve en fazla 35 karakter uzunluğunda olabilir.
 

56 satır
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)