debug avec ia
This commit is contained in:
+14
-1
@@ -3,7 +3,20 @@
|
||||
"tw_acc_pseudo": "foufure13",
|
||||
"tw_acc_token": "oauth:nmpw9bypx9emht7hn5z3vlgbwitaz5",
|
||||
"bad_answer":["suis un assistant","Je ne comprends pas.","pas un humain","je suis désolé"],
|
||||
"list_prompt":["Je vais te donner plusieur a respecter pour répondre a mon texte, 1er règles tu doit répondre en moins de 15mots et tu répondre seulement avec la réponse pas d'affiramtion pour dire que tu comprend, 2eme regle tu doit répondre a ce texte de mainière a réagir avec une blague ou une explication : Voici le texte : ",
|
||||
"list_prompt":[ "Réponds en 8 mots max avec humour : ",
|
||||
"Réagis comme un viewer twitch en 6 mots : ",
|
||||
"Commentaire de live en 7 mots drôle : ",
|
||||
"Réponse sarcastique en 5 mots : ",
|
||||
"Blague rapide en 6 mots : ",
|
||||
"Commentaire décalé en 7 mots : ",
|
||||
"Réponse ironique en 6 mots : ",
|
||||
"Réponse punchy en 7 mots : ",
|
||||
"Réaction wtf en 5 mots : ",
|
||||
"Commentaire troll en 7 mots : ",
|
||||
"Réponse cringe en 6 mots : ",
|
||||
"Blague meta en 8 mots : ",
|
||||
"Commentaire rage en 6 mots : ",
|
||||
"Je vais te donner plusieur a respecter pour répondre a mon texte, 1er règles tu doit répondre en moins de 15mots et tu répondre seulement avec la réponse pas d'affiramtion pour dire que tu comprend, 2eme regle tu doit répondre a ce texte de mainière a réagir avec une blague ou une explication : Voici le texte : ",
|
||||
"réagis avec au text donnée a la fin avec seulement ta réponse au texte en moins de 15mots et soit créatif : ",
|
||||
"Répond en 10 mots avec un charatère gentils comme si tu fesait une remarque en regardant la tv : ",
|
||||
"Réponds en 1 phrase à ce texte avec un peu de sarcasme, comme si tu étais un personnage un peu exaspéré mais sympathique.",
|
||||
|
||||
+3
-3
@@ -2,17 +2,17 @@
|
||||
|
||||
{
|
||||
"tw_acc_pseudo": "SnowLunaSoft",
|
||||
"tw_acc_token": "oauth:f9rt5mvhtjx3naiz1or9x7ims8ssm6",
|
||||
"tw_acc_token": "oauth:l348b8e7g7srjnc8trnxjqe2i2boq2",
|
||||
"charactere": "Kappa"
|
||||
},
|
||||
{
|
||||
"tw_acc_pseudo": "exoticnaturees",
|
||||
"tw_acc_token": "oauth:9102fncctpjc44jxfkdvhzaywobhhi",
|
||||
"tw_acc_token": "oauth:68mshyeuzbm8duwg1aaqha686iwrnf",
|
||||
"charactere": "Kappa"
|
||||
},
|
||||
{
|
||||
"tw_acc_pseudo": "ForFunIlluminaty",
|
||||
"tw_acc_token": "oauth:c5zoigy66klbfldh54h6kapv118mif",
|
||||
"tw_acc_token": "oauth:f0wrqe8njoayk5za8g0r40200hi817",
|
||||
"charactere": "Kappa"
|
||||
}
|
||||
]
|
||||
|
||||
+37
-3
@@ -293,6 +293,29 @@ class RecordTwitch:
|
||||
pass
|
||||
return url
|
||||
|
||||
def get_url_with_retry(self, max_attempts=10, retry_delay=30):
|
||||
"""
|
||||
Essaie de récupérer l'URL du flux avec des tentatives répétées
|
||||
"""
|
||||
sprint(self.script_name,"green","start get_url_with_retry")
|
||||
attempt = 1
|
||||
|
||||
while attempt <= max_attempts and self.running:
|
||||
sprint(self.script_name,"yellow",f"Tentative {attempt}/{max_attempts} de récupération du flux...")
|
||||
|
||||
url = self.get_url()
|
||||
if url:
|
||||
sprint(self.script_name,"green",f"Flux trouvé après {attempt} tentative(s)")
|
||||
return url
|
||||
|
||||
if attempt < max_attempts:
|
||||
sprint(self.script_name,"yellow",f"Aucun flux trouvé. Nouvelle tentative dans {retry_delay} secondes...")
|
||||
time.sleep(retry_delay)
|
||||
|
||||
attempt += 1
|
||||
|
||||
sprint(self.script_name,"red",f"Impossible de récupérer l'URL du flux après {max_attempts} tentatives")
|
||||
return None
|
||||
|
||||
|
||||
def loop_run(self, intervalle):#boucle pour déplacer les fichier fini enregistrement
|
||||
@@ -377,9 +400,20 @@ class RecordTwitch:
|
||||
self.running = True
|
||||
self.clear_diretory()
|
||||
|
||||
self.stream_url = self.get_url()
|
||||
if not self.stream_url:
|
||||
sprint(self.script_name,"red","Impossible de récupérer l'URL du flux")
|
||||
# Boucle infinie pour attendre qu'un flux soit disponible
|
||||
while self.running:
|
||||
self.stream_url = self.get_url_with_retry()
|
||||
if not self.stream_url:
|
||||
sprint(self.script_name,"red","Aucun flux disponible. Attente de 60 secondes avant nouvelle tentative...")
|
||||
time.sleep(60) # Attendre 1 minute avant de réessayer
|
||||
continue
|
||||
|
||||
# Si on arrive ici, on a trouvé un flux
|
||||
sprint(self.script_name,"green","Flux trouvé ! Démarrage de l'enregistrement...")
|
||||
break
|
||||
|
||||
if not self.running:
|
||||
sprint(self.script_name,"yellow","Arrêt demandé pendant la recherche de flux")
|
||||
return
|
||||
|
||||
record_thread = Thread(target=self.record_audio)
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
{"text": " Que \u00e7a soit vraiment dramatique Je suis oblig\u00e9 de jouer Shojin Parce que comme Shogat \u00e7a stack \u00e9norm\u00e9ment d'HP Bah il me faut le plus gros tube possible Y'a un monde o\u00f9 je joue le stuff avec Gage de Sterak et tout et tout Plut\u00f4t un stuff Bruiser Je pense que c'est le meilleur en vrai Dans cette game", "segments": [{"id": 0, "seek": 0, "start": 0.0, "end": 1.68, "text": " Que \u00e7a soit vraiment dramatique", "tokens": [50365, 4493, 2788, 12703, 8322, 7538, 20728, 50449], "temperature": 0.0, "avg_logprob": -0.1219998534007739, "compression_ratio": 1.4413145539906103, "no_speech_prob": 0.19703343510627747}, {"id": 1, "seek": 0, "start": 1.68, "end": 3.96, "text": " Je suis oblig\u00e9 de jouer Shojin", "tokens": [50449, 2588, 7624, 9270, 526, 368, 30823, 31404, 13970, 50563], "temperature": 0.0, "avg_logprob": -0.1219998534007739, "compression_ratio": 1.4413145539906103, "no_speech_prob": 0.19703343510627747}, {"id": 2, "seek": 0, "start": 3.96, "end": 6.48, "text": " Parce que comme Shogat \u00e7a stack \u00e9norm\u00e9ment d'HP", "tokens": [50563, 20429, 631, 5173, 1160, 664, 267, 2788, 8630, 41595, 274, 6, 39, 47, 50689], "temperature": 0.0, "avg_logprob": -0.1219998534007739, "compression_ratio": 1.4413145539906103, "no_speech_prob": 0.19703343510627747}, {"id": 3, "seek": 0, "start": 6.48, "end": 8.2, "text": " Bah il me faut le plus gros tube possible", "tokens": [50689, 14782, 1930, 385, 8487, 476, 1804, 18638, 9917, 1944, 50775], "temperature": 0.0, "avg_logprob": -0.1219998534007739, "compression_ratio": 1.4413145539906103, "no_speech_prob": 0.19703343510627747}, {"id": 4, "seek": 0, "start": 8.2, "end": 16.46, "text": " Y'a un monde o\u00f9 je joue le stuff avec Gage de Sterak et tout et tout", "tokens": [50775, 398, 6, 64, 517, 10431, 9068, 1506, 46209, 476, 1507, 4163, 460, 609, 368, 33539, 514, 1030, 3486, 1030, 3486, 51188], "temperature": 0.0, "avg_logprob": -0.1219998534007739, "compression_ratio": 1.4413145539906103, "no_speech_prob": 0.19703343510627747}, {"id": 5, "seek": 0, "start": 16.46, "end": 17.6, "text": " Plut\u00f4t un stuff Bruiser", "tokens": [51188, 2149, 325, 8775, 517, 1507, 12792, 6694, 51245], "temperature": 0.0, "avg_logprob": -0.1219998534007739, "compression_ratio": 1.4413145539906103, "no_speech_prob": 0.19703343510627747}, {"id": 6, "seek": 0, "start": 17.6, "end": 19.98, "text": " Je pense que c'est le meilleur en vrai", "tokens": [51245, 2588, 11209, 631, 269, 6, 377, 476, 41457, 465, 17815, 51364], "temperature": 0.0, "avg_logprob": -0.1219998534007739, "compression_ratio": 1.4413145539906103, "no_speech_prob": 0.19703343510627747}, {"id": 7, "seek": 0, "start": 19.98, "end": 21.1, "text": " Dans cette game", "tokens": [51364, 16897, 5550, 1216, 51420], "temperature": 0.0, "avg_logprob": -0.1219998534007739, "compression_ratio": 1.4413145539906103, "no_speech_prob": 0.19703343510627747}], "language": "fr"}
|
||||
@@ -1,32 +0,0 @@
|
||||
1
|
||||
00:00:00,000 --> 00:00:01,680
|
||||
Que ça soit vraiment dramatique
|
||||
|
||||
2
|
||||
00:00:01,680 --> 00:00:03,960
|
||||
Je suis obligé de jouer Shojin
|
||||
|
||||
3
|
||||
00:00:03,960 --> 00:00:06,480
|
||||
Parce que comme Shogat ça stack énormément d'HP
|
||||
|
||||
4
|
||||
00:00:06,480 --> 00:00:08,200
|
||||
Bah il me faut le plus gros tube possible
|
||||
|
||||
5
|
||||
00:00:08,200 --> 00:00:16,460
|
||||
Y'a un monde où je joue le stuff avec Gage de Sterak et tout et tout
|
||||
|
||||
6
|
||||
00:00:16,460 --> 00:00:17,600
|
||||
Plutôt un stuff Bruiser
|
||||
|
||||
7
|
||||
00:00:17,600 --> 00:00:19,980
|
||||
Je pense que c'est le meilleur en vrai
|
||||
|
||||
8
|
||||
00:00:19,980 --> 00:00:21,100
|
||||
Dans cette game
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
start end text
|
||||
0 1680 Que ça soit vraiment dramatique
|
||||
1680 3960 Je suis obligé de jouer Shojin
|
||||
3960 6480 Parce que comme Shogat ça stack énormément d'HP
|
||||
6480 8200 Bah il me faut le plus gros tube possible
|
||||
8200 16460 Y'a un monde où je joue le stuff avec Gage de Sterak et tout et tout
|
||||
16460 17600 Plutôt un stuff Bruiser
|
||||
17600 19980 Je pense que c'est le meilleur en vrai
|
||||
19980 21100 Dans cette game
|
||||
|
@@ -1,8 +0,0 @@
|
||||
Que ça soit vraiment dramatique
|
||||
Je suis obligé de jouer Shojin
|
||||
Parce que comme Shogat ça stack énormément d'HP
|
||||
Bah il me faut le plus gros tube possible
|
||||
Y'a un monde où je joue le stuff avec Gage de Sterak et tout et tout
|
||||
Plutôt un stuff Bruiser
|
||||
Je pense que c'est le meilleur en vrai
|
||||
Dans cette game
|
||||
@@ -1,26 +0,0 @@
|
||||
WEBVTT
|
||||
|
||||
00:00.000 --> 00:01.680
|
||||
Que ça soit vraiment dramatique
|
||||
|
||||
00:01.680 --> 00:03.960
|
||||
Je suis obligé de jouer Shojin
|
||||
|
||||
00:03.960 --> 00:06.480
|
||||
Parce que comme Shogat ça stack énormément d'HP
|
||||
|
||||
00:06.480 --> 00:08.200
|
||||
Bah il me faut le plus gros tube possible
|
||||
|
||||
00:08.200 --> 00:16.460
|
||||
Y'a un monde où je joue le stuff avec Gage de Sterak et tout et tout
|
||||
|
||||
00:16.460 --> 00:17.600
|
||||
Plutôt un stuff Bruiser
|
||||
|
||||
00:17.600 --> 00:19.980
|
||||
Je pense que c'est le meilleur en vrai
|
||||
|
||||
00:19.980 --> 00:21.100
|
||||
Dans cette game
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{"text": " festival de la morue \u00e0 non oppos\u00e9s idon c'est quoi trop bien c'est trop bien si c'est \u00e7a on n'est que des nouveaux trucs tu as vu mon truc pour \u00e7a ouais une r\u00e9pastonnage aussi", "segments": [{"id": 0, "seek": 0, "start": 0.0, "end": 7.6000000000000005, "text": " festival de la morue \u00e0 non oppos\u00e9s idon c'est quoi", "tokens": [50365, 12091, 368, 635, 1896, 622, 1531, 2107, 4665, 2191, 4496, 266, 269, 6, 377, 11714, 50745], "temperature": 0.0, "avg_logprob": -0.43424586032299284, "compression_ratio": 1.3644859813084111, "no_speech_prob": 0.21884578466415405}, {"id": 1, "seek": 0, "start": 7.6000000000000005, "end": 21.0, "text": " trop bien c'est trop bien si c'est \u00e7a on n'est que des nouveaux trucs tu as vu mon truc pour", "tokens": [50745, 9006, 3610, 269, 6, 377, 9006, 3610, 1511, 269, 6, 377, 2788, 322, 297, 6, 377, 631, 730, 44952, 33505, 2604, 382, 9732, 1108, 14805, 2016, 51415], "temperature": 0.0, "avg_logprob": -0.43424586032299284, "compression_ratio": 1.3644859813084111, "no_speech_prob": 0.21884578466415405}, {"id": 2, "seek": 2100, "start": 21.0, "end": 26.28, "text": " \u00e7a ouais une r\u00e9pastonnage aussi", "tokens": [50365, 2788, 30570, 2251, 14243, 525, 19968, 609, 6212, 50629], "temperature": 0.0, "avg_logprob": -0.3519504720514471, "compression_ratio": 0.8048780487804879, "no_speech_prob": 0.00010390546958660707}], "language": "fr"}
|
||||
@@ -0,0 +1,12 @@
|
||||
1
|
||||
00:00:00,000 --> 00:00:07,600
|
||||
festival de la morue à non opposés idon c'est quoi
|
||||
|
||||
2
|
||||
00:00:07,600 --> 00:00:21,000
|
||||
trop bien c'est trop bien si c'est ça on n'est que des nouveaux trucs tu as vu mon truc pour
|
||||
|
||||
3
|
||||
00:00:21,000 --> 00:00:26,280
|
||||
ça ouais une répastonnage aussi
|
||||
|
||||
@@ -0,0 +1,4 @@
|
||||
start end text
|
||||
0 7600 festival de la morue à non opposés idon c'est quoi
|
||||
7600 21000 trop bien c'est trop bien si c'est ça on n'est que des nouveaux trucs tu as vu mon truc pour
|
||||
21000 26280 ça ouais une répastonnage aussi
|
||||
|
@@ -0,0 +1,3 @@
|
||||
festival de la morue à non opposés idon c'est quoi
|
||||
trop bien c'est trop bien si c'est ça on n'est que des nouveaux trucs tu as vu mon truc pour
|
||||
ça ouais une répastonnage aussi
|
||||
@@ -0,0 +1,11 @@
|
||||
WEBVTT
|
||||
|
||||
00:00.000 --> 00:07.600
|
||||
festival de la morue à non opposés idon c'est quoi
|
||||
|
||||
00:07.600 --> 00:21.000
|
||||
trop bien c'est trop bien si c'est ça on n'est que des nouveaux trucs tu as vu mon truc pour
|
||||
|
||||
00:21.000 --> 00:26.280
|
||||
ça ouais une répastonnage aussi
|
||||
|
||||
Binary file not shown.
+22
-13
@@ -7,19 +7,28 @@ async def send_message_to_twitch_stream(pseudo, token, stream_url, message):
|
||||
parsed_url = urlparse(stream_url)
|
||||
channel = parsed_url.path.lstrip('/')
|
||||
|
||||
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.")
|
||||
# await client.part(channel)
|
||||
# print("disconnect.")
|
||||
except Exception as e:
|
||||
print(f"Erreur lors de l'interaction avec Twitch: {type(e).__name__}, {e}")
|
||||
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()
|
||||
|
||||
@@ -0,0 +1,51 @@
|
||||
import asyncio
|
||||
import argparse
|
||||
from urllib.parse import urlparse
|
||||
from twitchio.ext import commands
|
||||
|
||||
class TwitchBot(commands.Bot):
|
||||
def __init__(self, token, client_id, nick, prefix, initial_channels):
|
||||
super().__init__(token=token, client_id=client_id, nick=nick, prefix=prefix, initial_channels=initial_channels)
|
||||
self.message_to_send = None
|
||||
|
||||
async def event_ready(self):
|
||||
print(f"Connecté en tant que {self.nick}")
|
||||
if self.message_to_send:
|
||||
channel = self.get_channel(self.initial_channels[0])
|
||||
if channel:
|
||||
await channel.send(self.message_to_send)
|
||||
print("Message envoyé avec succès.")
|
||||
await self.close()
|
||||
|
||||
async def send_message_with_twitchio(token, client_id, nick, channel, message):
|
||||
bot = TwitchBot(
|
||||
token=token,
|
||||
client_id=client_id,
|
||||
nick=nick,
|
||||
prefix="!",
|
||||
initial_channels=[channel]
|
||||
)
|
||||
bot.message_to_send = message
|
||||
await bot.run()
|
||||
|
||||
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()
|
||||
|
||||
# Vous devrez obtenir un client_id depuis https://dev.twitch.tv/console
|
||||
client_id = "your_client_id_here" # Remplacez par votre client_id
|
||||
|
||||
await send_message_with_twitchio(
|
||||
token=args.token,
|
||||
client_id=client_id,
|
||||
nick=args.pseudo,
|
||||
channel=args.twitchname,
|
||||
message=args.message
|
||||
)
|
||||
|
||||
if __name__ == "__main__":
|
||||
asyncio.run(main())
|
||||
@@ -1,5 +0,0 @@
|
||||
{
|
||||
"18:06:49": "Rapprocher les objets, cest comme faire lamour, ça prend du temps mais cest marrant !",
|
||||
"18:07:33": "Le gars est complètement dingue ! Il me raconte des histoires à dormir debout. Jai limpression dêtre dans un film de science-fiction. À mon niveau, jen ai marre de ces conneries. On devrait vraiment le frapper sur la tête pour lui faire tenir sa langue.Cette version conserve lessence humoristique et légère du texte original, tout en le rendant plus clair et plus court. Elle utilise également quelques expressions familières pour ajouter une touche de verve au texte.",
|
||||
"18:08:14": "```// Code de guerre du clavier (version légère)const PATATES = 42;const BORDEL = extremine;function exterminerBordel() { console.log(Patate !);}for (let i = 0; i < PATATES; i++) { exterminerBordel();}```Ce code est en JavaScript et utilise des variables humoristiques pour créer un effet comique. Il sagit dun exemple de code qui pourrait être utilisé dans un contexte ludique ou pédagogique."
|
||||
}
|
||||
@@ -1,7 +1,3 @@
|
||||
{
|
||||
"18:06:43": "En vrai elles sont compliquées à rapprocher en vrai. Pour Rakan et moi très rapprocher. Quest-ce quil fout ?",
|
||||
"18:07:21": "Mais cest un fou lui enfin cest... Cest quoi ce malade mental là ? Il mexplique ou... Je pense quon les bat. suis niveau 11 et tout je peux mettre sacré ult.",
|
||||
"18:07:58": "voilà cest pas dur clavier de guerre et non plus au vp v énorme mais vraiment les patates que je vais mettre là ça va exterminer la bordel",
|
||||
"18:08:38": "Aïe aïe Ah mais quand tu joues à LOL Genre deviens fou sur ton clavier Par contre ça cest pas mal Ça me fait bien comme back par vraiment chier le que là Varus A eu kill Bon après je pense Que",
|
||||
"18:08:57": "Que ça soit vraiment dramatique Je suis obligé de jouer Shojin Parce que comme Shogat stack énormément dHP Bah il me faut le plus gros tube possible Ya un monde où je joue stuff avec Gage Sterak et tout Plutôt Bruiser pense cest meilleur en vrai Dans cette game"
|
||||
"00:12:31": "festival de la morue à non opposés idon cest quoi trop bien si ça on nest que des nouveaux trucs tu as vu mon truc pour ouais une répastonnage aussi"
|
||||
}
|
||||
Reference in New Issue
Block a user