import asyncio import argparse from urllib.parse import urlparse from pytmi import Client # Assurez-vous que c'est le nom correct de votre module et qu'il est correctement installé. async def send_message_to_twitch_stream(pseudo, token, stream_url, message): parsed_url = urlparse(stream_url) channel = parsed_url.path.lstrip('/') try: async with Client() as client: try: print("Tentative de login") await client.login_oauth(token, pseudo) print("Tentative de join") await client.join(channel) print("Tentative d'envoi de message") await client.send_message(message) print("Message envoyé avec succès.") # Attendre un peu avant de se déconnecter pour s'assurer que le message est envoyé await asyncio.sleep(2) print("Déconnexion...") except Exception as e: print(f"Erreur lors de l'interaction avec Twitch: {type(e).__name__}, {e}") except AttributeError as e: if "'Client' object has no attribute 'part'" in str(e): print("Message envoyé avec succès. (Erreur de déconnexion ignorée - bug connu de pytmi)") else: print(f"Erreur AttributeError: {e}") except Exception as e: print(f"Erreur inattendue: {type(e).__name__}, {e}") async def main(): parser = argparse.ArgumentParser() parser.add_argument('-pseudo', type=str, required=True, help='Pseudo name account') parser.add_argument('-token', type=str, required=True, help='Token oauth') parser.add_argument('-message', type=str, required=True, help='Message to send') parser.add_argument('-twitchname', type=str, required=True, help='Twitch channel name') args = parser.parse_args() stream_url = "https://www.twitch.tv/"+args.twitchname await send_message_to_twitch_stream(pseudo=args.pseudo, token=args.token, stream_url=stream_url, message=args.message) if __name__ == "__main__": asyncio.run(main())