diff --git a/.gitignore b/.gitignore index bf0d076..a1b927c 100644 --- a/.gitignore +++ b/.gitignore @@ -154,3 +154,6 @@ crashlytics.properties crashlytics-build.properties fabric.properties +# My Specifics +kraoti.txt +.telegramToken diff --git a/Dockerfile b/Dockerfile index ac0a3bb..de9a808 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,7 +1,9 @@ FROM python:3.8.12-slim-buster -# YOUR COMMANDS HERE -# .... -# .... +WORKDIR /myapp -CMD ["python3", "app.py"] \ No newline at end of file +COPY . . + +RUN pip install -r requirements.txt + +CMD ["python3", "app.py"] diff --git a/app.py b/app.py old mode 100644 new mode 100755 index 45e12d7..fccdd44 --- a/app.py +++ b/app.py @@ -44,9 +44,11 @@ def download_user_photo(self, quality=0): raise RuntimeError(f'Message content of type \'photo\' expected, but got {self.current_msg["content_type"]}') file_info = self.bot.get_file(self.current_msg.photo[quality].file_id) - data = self.bot.download_file(file_info.file_path) + pic_file = self.bot.download_file(file_info.file_path) # TODO save `data` as a photo in `file_info.file_path` path + with open('myapp/%s' % self.current_msg.photo[quality].file_id,'wb') as new_file: + new_file.write(pic_file) def handle_message(self, message): """Bot Main message handler""" @@ -56,19 +58,28 @@ def handle_message(self, message): class QuoteBot(Bot): def handle_message(self, message): - if message.text != 'Don\'t quote me please': + if not message.text.startswith('noQuote'): self.send_text_with_quote(message.text, message_id=message.message_id) class YoutubeBot(Bot): + def handle_message(self, message): + """Results = json.loads(search_download_youtube_video(message.text)) + self.send_text(f"Video(s) URL: {Results['url']}") """ + if self.is_current_msg_photo(): + self.download_user_photo() + elif message.text.startswith('getvid'): + self.send_text(f'Video URL: {search_download_youtube_video(message.text[6:])}') + + pass if __name__ == '__main__': with open('.telegramToken') as f: - _token = f.read() + _token = f.read().rstrip() - my_bot = Bot(_token) + my_bot = YoutubeBot(_token) my_bot.start() diff --git a/utils.py b/utils.py old mode 100644 new mode 100755 index e5426e0..52e94d7 --- a/utils.py +++ b/utils.py @@ -11,14 +11,17 @@ def search_download_youtube_video(video_name, num_results=1): """ results = [] with YoutubeDL() as ydl: - videos = ydl.extract_info(f"ytsearch{num_results}:{video_name}", download=True)['entries'] + videos = ydl.extract_info(f"ytsearch{num_results}:{video_name}", download=False)['entries'] for video in videos: results.append({ - 'filename': ydl.prepare_filename(video), - 'video_id': video['id'], - 'title': video['title'], 'url': video['webpage_url'] }) + """ + 'filename': ydl.prepare_filename(video), + 'video_id': video['id'], + 'title': video['title'], + """ + return results