Compare commits
8 Commits
08d9de8784
...
master
Author | SHA1 | Date | |
---|---|---|---|
2f2bc581d4 | |||
61225ebd20 | |||
7943e291fb | |||
9220022d3e | |||
5509264136 | |||
da6efccf86 | |||
7eba92016e | |||
b420720a2c |
2143
index.html.bak
Normal file
2143
index.html.bak
Normal file
File diff suppressed because it is too large
Load Diff
17
requirements.txt
Normal file
17
requirements.txt
Normal file
@@ -0,0 +1,17 @@
|
||||
aiohttp==3.6.3
|
||||
async-timeout==3.0.1
|
||||
attrs==21.2.0
|
||||
certifi==2021.10.8
|
||||
chardet==3.0.4
|
||||
idna==2.10
|
||||
idna-ssl==1.1.0
|
||||
multidict==4.7.6
|
||||
pkg-resources==0.0.0
|
||||
pyaes==1.6.1
|
||||
pyasn1==0.4.8
|
||||
requests==2.25.1
|
||||
rsa==4.7.2
|
||||
Telethon==1.23.0
|
||||
typing-extensions==3.10.0.0
|
||||
urllib3==1.26.8
|
||||
yarl==1.5.1
|
2120
reversed.txt
Normal file
2120
reversed.txt
Normal file
File diff suppressed because it is too large
Load Diff
64
t0sig.py
64
t0sig.py
@@ -1,6 +1,13 @@
|
||||
import os
|
||||
import logging
|
||||
logging.basicConfig(
|
||||
format='[%(asctime)s] %(levelname)s %(module)s/%(funcName)s - %(message)s',
|
||||
level=logging.DEBUG if os.environ.get('DEBUG') else logging.INFO)
|
||||
|
||||
import settings
|
||||
import asyncio
|
||||
import json
|
||||
import requests
|
||||
from datetime import datetime
|
||||
from uuid import uuid4
|
||||
from telethon import TelegramClient, events
|
||||
@@ -12,11 +19,20 @@ TANNER = 79316791
|
||||
|
||||
messages = {}
|
||||
|
||||
def controller_message(message):
|
||||
payload = dict(misc=message)
|
||||
r = requests.post('https://tbot.tannercollin.com/message', data=payload, timeout=10)
|
||||
if r.status_code == 200:
|
||||
return True
|
||||
else:
|
||||
logging.exception('Unable to communicate with controller! Message: ' + message)
|
||||
return False
|
||||
|
||||
@bot.on(events.NewMessage(incoming=True))
|
||||
async def new_message(event):
|
||||
text = event.raw_text
|
||||
sender = event.sender_id
|
||||
print(sender, text)
|
||||
logging.info('{} {}'.format(sender, text))
|
||||
|
||||
if sender != TANNER:
|
||||
return
|
||||
@@ -30,33 +46,63 @@ async def new_message(event):
|
||||
await event.reply('Message ID not found. Did the bot restart?')
|
||||
return
|
||||
|
||||
entry = '--------------------------\n\n{} - {}'.format(data['date'], data['name'])
|
||||
entry = '\n\n{} - {}'.format(data['date'], data['name'])
|
||||
|
||||
website = data['website']
|
||||
if website:
|
||||
if not website.startswith('http://') and not website.startswith('https://'):
|
||||
prefixes = ['http://', 'https://', 'gemini://', 'gopher://']
|
||||
for prefix in prefixes:
|
||||
if website.lower().startswith(prefix):
|
||||
break
|
||||
else: # for loop
|
||||
website = 'http://' + website
|
||||
|
||||
entry += ' (<a href="{0}" target="_blank" rel="noreferrer noopener">{0}</a>)'.format(website)
|
||||
|
||||
entry += '\n\n{}\n\n'.format(data['message'])
|
||||
entry += '\n\n{}\n\n------------------------------------------------------------'.format(data['message'])
|
||||
|
||||
with open('data/g/index.html', 'a') as f:
|
||||
with open('data/g/index.html', 'r') as f:
|
||||
page = f.read()
|
||||
|
||||
with open('data/g/index.html', 'w') as f:
|
||||
header, entries = page.split('===========', maxsplit=1)
|
||||
|
||||
f.write(header)
|
||||
f.write('===========')
|
||||
f.write(entry)
|
||||
f.write(entries)
|
||||
|
||||
await event.reply('Entry added to t0.vc/g')
|
||||
print('Added', data)
|
||||
logging.info('Added: {}'.format(data))
|
||||
|
||||
async def message_tanner(name, website, message, captcha, mid):
|
||||
if 'tanner' not in captcha.lower():
|
||||
return
|
||||
|
||||
if name.replace(' ', '') in ['website', 'webpage', 'homepage']:
|
||||
return
|
||||
|
||||
report = 'Name: {}\n\nWebsite: {}\n\nMessage: {}\n\n/allow_{}'
|
||||
try:
|
||||
await bot.send_message(TANNER, message=report.format(name, website, message, mid))
|
||||
except:
|
||||
logging.error('Problem sending bot message.')
|
||||
controller_message('t0sig: problem sending bot message!')
|
||||
exit()
|
||||
|
||||
|
||||
async def submit(request):
|
||||
data = dict(await request.post())
|
||||
data['date'] = str(datetime.today().date())
|
||||
mid = str(uuid4()).split('-')[0]
|
||||
print(mid, data)
|
||||
logging.info('{} {}'.format(mid, data))
|
||||
|
||||
try:
|
||||
fake_username = data.get('fake_username', '') # not used yet
|
||||
name = data['name']
|
||||
website = data.get('website', '')
|
||||
message = data['message']
|
||||
captcha = data.get('captcha', '')
|
||||
except KeyError:
|
||||
raise web.HTTPBadRequest(reason='You are missing something.')
|
||||
|
||||
@@ -70,8 +116,8 @@ async def submit(request):
|
||||
if len(message) > 1000:
|
||||
raise web.HTTPBadRequest(reason='Message is too long.')
|
||||
|
||||
report = 'Name: {}\n\nWebsite: {}\n\nMessage: {}\n\n/allow_{}'
|
||||
await bot.send_message(TANNER, message=report.format(name, website, message, mid))
|
||||
await message_tanner(name, website, message, captcha, mid)
|
||||
|
||||
messages[mid] = data
|
||||
|
||||
with open('data/messages.log', 'a') as f:
|
||||
|
Reference in New Issue
Block a user