~boringcactus/crabravebot

97ac6174b7b7b7321845ec995d935d010ea7baee — Melody Horn 3 years ago 254e4b7
docker time
7 files changed, 17 insertions(+), 10 deletions(-)

A .dockerignore
D Aptfile
A Dockerfile
D Procfile
M bot.py
M requirements.txt
D runtime.txt
A .dockerignore => .dockerignore +1 -0
@@ 0,0 1,1 @@
venv

D Aptfile => Aptfile +0 -0
A Dockerfile => Dockerfile +12 -0
@@ 0,0 1,12 @@
FROM python:3.7-alpine

RUN apk add --no-cache gcc libc-dev libffi-dev zlib-dev openssl-dev jpeg-dev ffmpeg freetype-dev

WORKDIR /usr/src/app

COPY requirements.txt ./
RUN pip install --no-cache-dir -r requirements.txt

COPY . .

CMD [ "gunicorn", "-w", "1", "bot:app", "--log-file", "-" ]

D Procfile => Procfile +0 -1
@@ 1,1 0,0 @@
web: gunicorn -w 1 bot:app --log-file -

M bot.py => bot.py +4 -7
@@ 13,14 13,11 @@ from typing import Optional

import telegram
from telegram.ext import Dispatcher, MessageHandler, CommandHandler, InlineQueryHandler, Filters, CallbackContext
from dotenv import load_dotenv, find_dotenv
from PIL import Image, ImageDraw, ImageFont
import libhoney
from flask import Flask, render_template, request
app = Flask(__name__)

load_dotenv(find_dotenv())

libhoney.init(writekey=os.environ.get('HONEYCOMB_KEY'), dataset="crabravebot", debug=True)

font = ImageFont.truetype("assets/fonts/NotoSans-Regular.ttf", 48)


@@ 149,11 146,11 @@ def start(update: telegram.Update, context: CallbackContext):
To shitpost, type @{me} and type the text you want to overlay over crab rave.
This was originally made by @boringcactus in one afternoon when ze was bored.
This bot isn't super reliable but the source is at https://github.com/boringcactus/crabravebot,
and you can use this bot from the Web at https://{name}.herokuapp.com/"""
and you can use this bot from the Web at https://{domain}/"""
    you = update.effective_user.first_name
    if you is None or len(you) == 0:
        you = update.effective_user.username
    text = template.format(you=you, me=context.bot.username, name=os.environ.get('HEROKU_APP_NAME', 'crabravebot'))
    text = template.format(you=you, me=context.bot.username, domain=os.environ.get('VIRTUAL_HOST', 'crabrave.boringcactus.com'))
    context.bot.send_message(chat_id=update.effective_chat.id, text=text)




@@ 164,7 161,7 @@ def inline_query(update: telegram.Update, context: CallbackContext):
    logger.info('Got query %s', text)

    def make_result(style: Style):
        base = "https://" + os.environ.get('HEROKU_APP_NAME', 'crabravebot') + ".herokuapp.com/render?v=1&style=" + style.id + "&text=" + url_quote(text, safe='')
        base = "https://" + os.environ.get('VIRTUAL_HOST', 'crabrave.boringcactus.com') + "/render?v=1&style=" + style.id + "&text=" + url_quote(text, safe='')
        return telegram.InlineQueryResultVideo(
            id=style.id,
            video_url=base + '&ext=mp4',


@@ 219,7 216,7 @@ def webhook():


bot = telegram.Bot(token=TOKEN)
bot.set_webhook('https://' + os.environ.get('HEROKU_APP_NAME', 'crabravebot') + '.herokuapp.com' + WEBHOOK)
bot.set_webhook('https://' + os.environ.get('VIRTUAL_HOST', 'crabrave.boringcactus.com') + WEBHOOK)
update_queue = Queue()
dp = Dispatcher(bot, update_queue, use_context=True)
# Add handlers

M requirements.txt => requirements.txt +0 -1
@@ 1,5 1,4 @@
python-telegram-bot
python-dotenv
Pillow
libhoney
Flask

D runtime.txt => runtime.txt +0 -1
@@ 1,1 0,0 @@
python-3.7.7