docker
This commit is contained in:
parent
0d39e0e01d
commit
915fb87df1
5
Dockerfile
Normal file
5
Dockerfile
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
FROM python:3.8-slim-buster
|
||||||
|
WORKDIR /bot
|
||||||
|
COPY requirements.txt .
|
||||||
|
RUN pip3 install -r requirements.txt
|
||||||
|
COPY src src
|
11
docker-compose.yml
Normal file
11
docker-compose.yml
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
version: "3.3"
|
||||||
|
services:
|
||||||
|
bot:
|
||||||
|
build: .
|
||||||
|
command: python3 /bot/src/main.py
|
||||||
|
volumes:
|
||||||
|
- ./out:/bot/out
|
||||||
|
- ./conf:/bot/conf
|
||||||
|
environment:
|
||||||
|
- CONF_FOLDER=/bot/conf/
|
||||||
|
user: 1000:1000
|
2
main.py
2
main.py
@ -42,7 +42,7 @@ def download_choosen_format(update, context):
|
|||||||
message_id=query.message.message_id)
|
message_id=query.message.message_id)
|
||||||
|
|
||||||
TOKEN = None
|
TOKEN = None
|
||||||
with open('bot.token') as f:
|
with open(os.path.join(os.environ['CONF_FOLDER'], 'bot.token')) as f:
|
||||||
TOKEN = f.read().strip()
|
TOKEN = f.read().strip()
|
||||||
|
|
||||||
updater = Updater(token=TOKEN)
|
updater = Updater(token=TOKEN)
|
||||||
|
1
requirements.txt
Normal file
1
requirements.txt
Normal file
@ -0,0 +1 @@
|
|||||||
|
python-telegram-bot==13.0
|
55
src/main.py
Normal file
55
src/main.py
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
import logging
|
||||||
|
import os
|
||||||
|
|
||||||
|
from telegram import InlineKeyboardMarkup
|
||||||
|
from telegram.ext import Updater, CallbackQueryHandler, MessageHandler, Filters
|
||||||
|
|
||||||
|
from vid_utils import Video, BadLink
|
||||||
|
|
||||||
|
logging.basicConfig(format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', level=logging.INFO)
|
||||||
|
logger = logging.getLogger(__name__)
|
||||||
|
|
||||||
|
|
||||||
|
def get_format(update, context):
|
||||||
|
logger.info("from {}: {}".format(update.message.chat_id, update.message.text)) # "history"
|
||||||
|
|
||||||
|
try:
|
||||||
|
video = Video(link=update.message.text, init_keyboard=True)
|
||||||
|
except BadLink as e:
|
||||||
|
update.message.reply_text("Bad link: {}".format(e))
|
||||||
|
else:
|
||||||
|
reply_markup = InlineKeyboardMarkup(video.keyboard)
|
||||||
|
update.message.reply_text('Choose format:', reply_markup=reply_markup)
|
||||||
|
|
||||||
|
|
||||||
|
def download_choosen_format(update, context):
|
||||||
|
query = update.callback_query
|
||||||
|
video_index = query.data
|
||||||
|
|
||||||
|
context.bot.edit_message_text(text="Downloading...",
|
||||||
|
chat_id=query.message.chat_id,
|
||||||
|
message_id=query.message.message_id)
|
||||||
|
|
||||||
|
video = Video(vid=video_index)
|
||||||
|
video.download()
|
||||||
|
|
||||||
|
with video.send() as files:
|
||||||
|
for f in files:
|
||||||
|
logger.log("Sending... {} ".format(f))
|
||||||
|
context.bot.send_document(chat_id=query.message.chat_id, document=open(f, 'rb'))
|
||||||
|
|
||||||
|
context.bot.delete_message(chat_id=query.message.chat_id,
|
||||||
|
message_id=query.message.message_id)
|
||||||
|
|
||||||
|
TOKEN = None
|
||||||
|
with open(os.path.join(os.environ['CONF_FOLDER'], 'bot.token')) as f:
|
||||||
|
TOKEN = f.read().strip()
|
||||||
|
|
||||||
|
updater = Updater(token=TOKEN)
|
||||||
|
|
||||||
|
updater.dispatcher.add_handler(MessageHandler(Filters.text, get_format))
|
||||||
|
updater.dispatcher.add_handler(CallbackQueryHandler(download_choosen_format))
|
||||||
|
|
||||||
|
|
||||||
|
updater.start_polling()
|
||||||
|
updater.idle()
|
@ -13,7 +13,7 @@ class BadLink(Exception):
|
|||||||
|
|
||||||
class Video:
|
class Video:
|
||||||
def __init__(self, link=None, vid=None, init_keyboard=False):
|
def __init__(self, link=None, vid=None, init_keyboard=False):
|
||||||
self.db = VidDatabase("viddb.sqlite3")
|
self.db = VidDatabase(os.path.join(os.environ['CONF_FOLDER'], "viddb.sqlite3"))
|
||||||
if not self.db.is_valid:
|
if not self.db.is_valid:
|
||||||
# Database file not present
|
# Database file not present
|
||||||
# Create a new database
|
# Create a new database
|
Loading…
Reference in New Issue
Block a user