diff --git a/blueocean.py b/blueocean.py new file mode 100644 index 0000000..c2f05f9 --- /dev/null +++ b/blueocean.py @@ -0,0 +1,56 @@ +import asyncio +import logging +import settings +import time +import validators +from aiohttp import web +from telethon import TelegramClient, events + +TANNER = 79316791 + +bot = TelegramClient('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 echo_all(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) diff --git a/greenoceanwater.jpg b/greenoceanwater.jpg new file mode 100644 index 0000000..5a6a104 Binary files /dev/null and b/greenoceanwater.jpg differ diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..465a582 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,35 @@ +aiohttp==3.7.3 +appdirs==1.4.3 +async-timeout==3.0.1 +attrs==20.3.0 +CacheControl==0.12.6 +certifi==2019.11.28 +chardet==3.0.4 +colorama==0.4.3 +contextlib2==0.6.0 +decorator==4.4.2 +distlib==0.3.0 +distro==1.4.0 +html5lib==1.0.1 +idna==2.8 +ipaddr==2.2.0 +lockfile==0.12.2 +msgpack==0.6.2 +multidict==5.1.0 +packaging==20.3 +pep517==0.8.2 +progress==1.5 +pyaes==1.6.1 +pyasn1==0.4.8 +pyparsing==2.4.6 +pytoml==0.1.21 +requests==2.22.0 +retrying==1.3.3 +rsa==4.7.1 +six==1.14.0 +Telethon==1.19.5 +typing-extensions==3.7.4.3 +urllib3==1.25.8 +validators==0.18.2 +webencodings==0.5.1 +yarl==1.6.3 diff --git a/settings.py.example b/settings.py.example new file mode 100644 index 0000000..f9faa66 --- /dev/null +++ b/settings.py.example @@ -0,0 +1,3 @@ +API_ID = 0 +API_HASH = '' +API_TOKEN = ''