Compare commits

..

No commits in common. "25f9159155d0498084526bb62ab93717c54c70b4" and "542bb5d5cd125f2be0ddc1d8a4912fd6f4b99468" have entirely different histories.

3 changed files with 26 additions and 34 deletions

View File

@ -24,7 +24,7 @@ async def handle_command(room, message, bot, prefix, config):
prompt = message.body[len(prefix) + len("sd"):].strip() # Extract prompt from message body prompt = message.body[len(prefix) + len("sd"):].strip() # Extract prompt from message body
payload = { payload = {
"prompt": prompt, "prompt": prompt,
"steps": 16 "steps": 32
} }
url = "http://127.0.0.1:7860/sdapi/v1/txt2img" url = "http://127.0.0.1:7860/sdapi/v1/txt2img"
try: try:

View File

@ -6,31 +6,25 @@ This plugin provides a command to fetch YouTube video information from links.
import re import re
import logging import logging
from pytubefix import YouTube from pytube import YouTube
import simplematrixbotlib as botlib import simplematrixbotlib as botlib
import asyncio
def seconds_to_minutes_seconds(seconds): def seconds_to_minutes_seconds(seconds):
minutes = seconds // 60 minutes = seconds // 60
seconds %= 60 seconds %= 60
return f"{minutes:02d}:{seconds:02d}" return f"{minutes:02d}:{seconds:02d}"
async def fetch_youtube_info(youtube_url):
try:
video = YouTube(youtube_url)
title = video.title
description = video.description
length = seconds_to_minutes_seconds(video.length)
views = video.views
author = video.author
description_with_breaks = description.replace('\n', '<br>')
info_message = f"""<strong>🎬🎝 Title:</strong> {title} | <strong>Length</strong>: {length} minutes | <strong>Views</strong>: {views}\n<details><summary><strong>⤵Click Here For Description⤵</strong></summary>{description_with_breaks}</details>"""
return info_message
except Exception as e:
logging.error(f"Error fetching YouTube video information: {str(e)}")
return None
async def handle_command(room, message, bot, prefix, config): async def handle_command(room, message, bot, prefix, config):
"""
Function to handle YouTube video information from links.
Args:
room (Room): The Matrix room where the command was invoked.
message (RoomMessage): The message object containing the command.
Returns:
None
"""
match = botlib.MessageMatch(room, message, bot, prefix) match = botlib.MessageMatch(room, message, bot, prefix)
if match.is_not_from_this_bot() and re.search(r'youtube\.com/watch\?v=', message.body): if match.is_not_from_this_bot() and re.search(r'youtube\.com/watch\?v=', message.body):
logging.info("YouTube link detected") logging.info("YouTube link detected")
@ -39,18 +33,16 @@ async def handle_command(room, message, bot, prefix, config):
video_id = video_id_match.group(1) video_id = video_id_match.group(1)
youtube_url = f"https://www.youtube.com/watch?v={video_id}" youtube_url = f"https://www.youtube.com/watch?v={video_id}"
logging.info(f"Fetching information for YouTube video: {youtube_url}") logging.info(f"Fetching information for YouTube video: {youtube_url}")
retry_count = 3 try:
while retry_count > 0: video = YouTube(youtube_url)
info_message = await fetch_youtube_info(youtube_url) title = video.title
if info_message: description = video.description
await bot.api.send_markdown_message(room.room_id, info_message) length = seconds_to_minutes_seconds(video.length)
logging.info("Sent YouTube video information to the room") views = video.views
break author = video.author
else: info_message = f"""**🎬🎝 Title:** {title} | **Length**: {length} minutes| **Views:** {views} | **Description:** {description}"""
logging.info("Retrying...") await bot.api.send_markdown_message(room.room_id, info_message)
retry_count -= 1 logging.info("Sent YouTube video information to the room")
await asyncio.sleep(1) # wait for 1 second before retrying except Exception as e:
else: logging.error(f"Error fetching YouTube video information: {str(e)}")
logging.error("Failed to fetch YouTube video information after retries") # await bot.api.send__message(room.room_id, "Error fetching YouTube video information.")

View File

@ -1,6 +1,6 @@
python-dotenv python-dotenv
requests requests
pytubefix pytube
duckduckgo_search duckduckgo_search
nio nio
markdown2 markdown2