Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -154,3 +154,6 @@ crashlytics.properties
crashlytics-build.properties
fabric.properties

# My Specifics
kraoti.txt
.telegramToken
10 changes: 6 additions & 4 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,7 +1,9 @@
FROM python:3.8.12-slim-buster

# YOUR COMMANDS HERE
# ....
# ....
WORKDIR /myapp

CMD ["python3", "app.py"]
COPY . .

RUN pip install -r requirements.txt

CMD ["python3", "app.py"]
19 changes: 15 additions & 4 deletions app.py
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -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"""
Expand All @@ -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()


11 changes: 7 additions & 4 deletions utils.py
100644 → 100755
Original file line number Diff line number Diff line change
Expand Up @@ -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