Finish prototype
This commit is contained in:
parent
741b580532
commit
930595d0d3
56
blueocean.py
Normal file
56
blueocean.py
Normal file
|
@ -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)
|
BIN
greenoceanwater.jpg
Normal file
BIN
greenoceanwater.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 740 KiB |
35
requirements.txt
Normal file
35
requirements.txt
Normal file
|
@ -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
|
3
settings.py.example
Normal file
3
settings.py.example
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
API_ID = 0
|
||||||
|
API_HASH = ''
|
||||||
|
API_TOKEN = ''
|
Loading…
Reference in New Issue
Block a user