From ab405ca3b78eafdc985deff14a742a3d3c67ffe4 Mon Sep 17 00:00:00 2001 From: tfa Date: Wed, 7 Sep 2022 10:46:58 +0200 Subject: [PATCH] Ajout recherche partition par instrus --- chef_mou.py | 50 +++++++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 45 insertions(+), 5 deletions(-) diff --git a/chef_mou.py b/chef_mou.py index 09c20f3..2a6906d 100644 --- a/chef_mou.py +++ b/chef_mou.py @@ -18,21 +18,61 @@ class ChefMou(Plugin): text = await resp.read() return BeautifulSoup(text.decode('iso-8859-1'), 'html.parser') - + @command.new("chefmou") @command.argument("pattern", pass_raw=True, required=False) async def morceau(self, evt: MessageEvent, pattern: str) -> None: loop = asyncio.new_event_loop() asyncio.set_event_loop(loop) - soup = await self.get_site_content() - s = soup.findAll('th', background='/fond3.gif') if not pattern: - ps = random.choice(s) - await evt.respond(ps.text) + await evt.respond( + """ + !chefmou morceau -> Donne un morceau aléatoire + !chefmou partition instru titre -> Renvoi le lien vers la partition de ce morceau pour cet instrument + """ + ) else: if pattern == "morceau": + soup = await self.get_site_content() + s = soup.findAll('th', background='/fond3.gif') ps = random.choice(s) await evt.respond(ps.text) + elif pattern.__contains__("partition"): + chunks = pattern.split(None, 2) + if len(chunks) != 3 : + await evt.respond( + """ + !chefmou morceau -> Donne un morceau aléatoire + !chefmou partition instru titre -> Renvoi le lien vers la partition de ce morceau pour cet instrument + """ + ) + loop.close() + return + soup = await self.get_site_content() + s = soup.find('th', string=chunks[2]) + if not s : + await evt.respond("Morceau non trouvé") + return + t = s.parent.findAll('a') + idx = 9 + if chunks[1].lower() == "souba" or chunks[1].lower() == "soubassophone" or chunks[1].lower() == "sb": + idx = 0 + elif chunks[1].lower() == "basse" or chunks[1].lower() == "bs" : + idx = 1 + elif chunks[1].lower() == "trombone" or chunks[1].lower() == "tb": + idx = 2 + elif chunks[1].lower() == "trompette" or chunks[1].lower() == "tp": + idx = 3 + elif chunks[1].lower() == "sax" or chunks[1].lower() == "saxophone": + idx = 4 + elif chunks[1].lower() == "clarinette" or chunks[1].lower() == "cl": + idx = 5 + else: + await evt.respond("Pas trouvé cet instru") + loop.close() + return + + await evt.respond("["+chunks[2]+ " " + chunks[1]+"]"+"()") else: await evt.respond("Nope !") loop.close()