"Cache-Control": "no-cache",
}
-youtube_links = ["www.youtube.com", "m.youtube.com"]
-
youtube_link = "youtu.be"
ydl = youtube_dl.YoutubeDL()
-invidious_instances = ["invidious.kalli.st"]
-
block_list = ("localhost", "127.0.0.1", "0.0.0.0")
req_list = ("http://", "https://")
return None
-def get_invidious_link(yurl):
- """Get an invidious link from a youtube link."""
- video = yurl.split("/")[-1]
- instance = random.choice(invidious_instances)
- return f"https://{instance}/watch?v={video}"
-
-
def get_yurl(path):
"""Get a youtube link from a path."""
yurl = f"https://youtu.be/{path}"
urls = [u for u in str_list if any(r in u for r in req_list)]
return urls
+ def get_invidious_link(self, yurl):
+ """Get an invidious link from a youtube link."""
+ video = yurl.split("/")[-1]
+ instance = random.choice(self.invidious_instances)
+ return f"https://{instance}/watch?v={video}"
+
+
def send_youtube_info(self, uri, sender, mtype):
"""Send youtube info to the sender."""
yurl = None
else:
return
- invidious = get_invidious_link(yurl)
+ invidious = self.get_invidious_link(yurl)
if output := get_youtube_title(invidious):
if output in self.messages[sender]["previews"]:
async def parse_uri(self, uri, sender, mtype):
"""Parse a uri and send the result to the sender."""
netloc = uri.netloc
- if netloc in (youtube_links + [youtube_link]):
+ if self.invidious_instances and netloc in (self.youtube_links + [youtube_link]):
self.send_youtube_info(uri, sender, mtype)
elif netloc.split(":")[0] in block_list:
return
except Exception as e:
print(e)
- def __init__(self, jid, password, nick="angel", autojoin=None):
+ def __init__(self, jid, password, nick="angel", autojoin=None,
+ youtube_links=None,
+ invidious_instances=None):
"""Initialize the bot."""
ClientXMPP.__init__(self, jid, password)
self.jid = jid
self.nick = nick
self.autojoin = autojoin or []
+ self.invidious_instances = invidious_instances or []
+ self.youtube_links = youtube_links or []
+
self.register_plugin("xep_0030")
self.register_plugin("xep_0060")
self.register_plugin("xep_0054")
config.read("config.ini")
jid = config["angel"]["jid"]
password = config["angel"]["password"]
- autojoin = config["angel"]["autojoin"].split()
+ autojoin = config["angel"].get("autojoin", "").split()
nick = config["angel"]["nick"]
- bot = AngelBot(jid, password, nick=nick, autojoin=autojoin)
+ youtube_links = config["angel"].get("youtube_links", "").split()
+
+ invidious_instances = config["angel"].get(
+ "invidious_instances", ""
+ ).split()
+
+ bot = AngelBot(jid, password, nick=nick, autojoin=autojoin,
+ youtube_links=youtube_links,
+ invidious_instances=invidious_instances)
bot.connect()
bot.process(forever=True)