This commit is contained in:
Owl 2025-05-13 03:28:09 +07:00
parent 3986004f4d
commit cf2899e24a
2 changed files with 48 additions and 19 deletions

View file

@ -1,4 +1,4 @@
FROM python:3.11
FROM python:3.13
COPY tgbot/requirements.txt .

65
bot.py
View file

@ -9,8 +9,10 @@ import logging
from tgbot.shit.fed import build_fediverse_inline_results, extract_content
from tgbot.config import TOKEN, PROMPTING_USERS, EXEC_UIDS
from tgbot.shit.handlers import handle_xitter, handle_red_ebalo, handle_hentai, handle_cute_button
from tgbot.shit.shitty_encoder import encode_balls, decode_balls, encode_shevkan, guess_coding, CodingType, \
decode_shevkan
from tgbot.shit.prompting import gen_image
from tgbot.shit.render import render_text_on_image, image_to_string, encode_text, decode_text
from tgbot.shit.render import render_text_on_image, image_to_string
from io import BytesIO
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s',
@ -28,23 +30,11 @@ async def start(update: Update, context: ContextTypes.DEFAULT_TYPE):
async def handle_text(update: Update, context: ContextTypes.DEFAULT_TYPE):
if update.message.text.startswith("encode"):
text = update.message.text.replace("encode", "")
encoded_text = encode_text(text)
if len(encoded_text) < 4096:
await context.bot.send_message(chat_id=update.effective_chat.id, text=encoded_text)
else:
bio = BytesIO(encoded_text.encode("utf-8"))
bio.name = "output.txt" # must set filename
await update.message.reply_document(document=InputFile(bio))
await handle_encode(update, context)
return
if update.message.text.startswith("decode"):
text = update.message.text.replace("decode", "")
await context.bot.send_message(chat_id=update.effective_chat.id, text=decode_text(text))
await handle_decode(update, context)
return
if not update.message.text.startswith("prompting") or update.message.from_user["username"] not in PROMPTING_USERS:
@ -53,7 +43,40 @@ async def handle_text(update: Update, context: ContextTypes.DEFAULT_TYPE):
else:
await gen_image(update, context)
# man balls man-balls
async def handle_encode(update: Update, context: ContextTypes.DEFAULT_TYPE):
text = update.message.text.replace("encode", "", count=1).strip()
if text.startswith("shevkan"):
text = text.replace("shevkan", "", count=1)
encoded_text = encode_shevkan(text)
else:
encoded_text = encode_balls(text)
if len(encoded_text) < 4096:
await context.bot.send_message(chat_id=update.effective_chat.id, text=encoded_text)
else:
bio = BytesIO(encoded_text.encode("utf-8"))
bio.name = "output.txt" # must set filename
await update.message.reply_document(document=InputFile(bio))
async def handle_decode(update: Update, context: ContextTypes.DEFAULT_TYPE):
text = update.message.text.replace("decode", "", count=1)
coding_type = guess_coding(text)
if coding_type == CodingType.balls:
decoded_text = decode_balls(text)
else:
decoded_text = decode_shevkan(text)
await context.bot.send_message(chat_id=update.effective_chat.id, text=decoded_text)
# man balls man-balls and shevkan
async def handle_txt_upload(update: Update, context: ContextTypes.DEFAULT_TYPE):
document = update.message.document
@ -64,8 +87,14 @@ async def handle_txt_upload(update: Update, context: ContextTypes.DEFAULT_TYPE):
file_bytes = await file.download_as_bytearray()
text_content = file_bytes.decode("utf-8")
# Do something with the content
await update.message.reply_text(decode_text(text_content))
coding_type = guess_coding(text_content)
if coding_type == CodingType.balls:
decoded_text = decode_balls(text_content)
else:
decoded_text = decode_shevkan(text_content)
await update.message.reply_text(decoded_text)
async def image2string(update: Update, context: ContextTypes.DEFAULT_TYPE):