debu stopping complet

This commit is contained in:
Foufure13
2025-01-10 15:53:17 +01:00
parent af359e9c70
commit a22a825704
12 changed files with 262 additions and 235 deletions
+63 -49
View File
@@ -130,8 +130,9 @@ class RecordTwitch:
self.verif_record_move() self.verif_record_move()
sprint(self.script_name,"yellow", f"wait {intervalle}s for next scan file completed.") sprint(self.script_name,"yellow", f"wait {intervalle}s for next scan file completed.")
time.sleep(intervalle) time.sleep(intervalle)
except KeyboardInterrupt: #except KeyboardInterrupt:
sprint(self.script_name,"red", "STOP LOOP.") except Exception as e:
sprint(self.script_name,"red", "STOP loop_run Error : "+ str(e))
finally: finally:
self.running = False # Assurez-vous que le drapeau est désactivé self.running = False # Assurez-vous que le drapeau est désactivé
@@ -244,24 +245,25 @@ class RecordTwitch:
class Subtitle_translation: class Subtitle_translation:
def __init__(self, pathjson): def __init__(self, pathjson):
self.script_name = "translation"
self.pathjson = pathjson self.pathjson = pathjson
self.reload_json() self.reload_json()
self.dir_whisperX = "whisperX" self.dir_whisperX = "whisperX"
self.subtitle = {} self.subtitle = {}
self.all_subtitle = "" self.all_subtitle = ""
self.is_running = True self.is_running = True
self.loop_timer = 30 self.loop_timer = 20
self.language = get_value_json("language", self.config) self.language = get_value_json("language", self.config)
self.dir_record = "record" self.dir_record = "record"
def stop(self): def stop(self):
hprint("yellow",f"Arrêt loop subtitle") sprint(self.script_name,"yellow",f"Arrêt loop subtitle")
self.is_running = False self.is_running = False
if self.loop_thread.is_alive(): if self.loop_thread.is_alive():
# self.loop_thread.join() # Attend la fin du thread pour un arrêt propre # self.loop_thread.join() # Attend la fin du thread pour un arrêt propre
hprint("red", "Boucle de traitement arrêtée.") sprint(self.script_name,"red", "Boucle de traitement arrêtée.")
else : else :
hprint("yellow",f"loop subtitle déja arreté") sprint(self.script_name,"yellow",f"loop subtitle déja arreté")
def reload_json(self): def reload_json(self):
with open(self.pathjson, 'r') as file: with open(self.pathjson, 'r') as file:
@@ -272,7 +274,7 @@ class Subtitle_translation:
for file in os.listdir(self.dir_record): for file in os.listdir(self.dir_record):
file_path = os.path.join(self.dir_record, file) file_path = os.path.join(self.dir_record, file)
if os.path.isfile(file_path): if os.path.isfile(file_path):
hprint("blue",f"File find -> transcribe.") sprint(self.script_name,"blue",f"File find -> transcribe.")
# Exécuter une fonction sur le fichier # Exécuter une fonction sur le fichier
self.auto_create_subtitle(file) self.auto_create_subtitle(file)
@@ -289,7 +291,7 @@ class Subtitle_translation:
:param message: Le message sous forme de chaîne de caractères :param message: Le message sous forme de chaîne de caractères
:return: Le message sans répétitions :return: Le message sans répétitions
""" """
hprint("yellow", "remove_repetitions start for: \n" +message) sprint(self.script_name,"yellow", "remove_repetitions start for: \n" +message)
words = message.split() # Découpe le texte en mots words = message.split() # Découpe le texte en mots
seen = set() # Pour suivre les mots déjà rencontrés seen = set() # Pour suivre les mots déjà rencontrés
@@ -301,30 +303,30 @@ class Subtitle_translation:
result.append(word) result.append(word)
seen.add(word) seen.add(word)
hprint("green", "remove_repetitions cleaned text : \n" +" ".join(result)) sprint(self.script_name,"green", "remove_repetitions cleaned text : \n" +" ".join(result))
return " ".join(result)## str this switch return " ".join(result)## str this switch
def print_allsubtitle(self): def print_allsubtitle(self):
os.system('clear') os.system('clear')
hprint("yellow", "\n\n All subtitle Print\n ") sprint(self.script_name,"yellow", "\n\n All subtitle Print\n ")
for key, text in self.subtitle.items(): for key, text in self.subtitle.items():
hprint("yellow", " time "+ str(key)+" = "+ text+" \n\n") sprint(self.script_name,"yellow", " time "+ str(key)+" = "+ text+" \n\n")
def get_lasttext(self): def get_lasttext(self):
# Vérifie que le dictionnaire n'est pas vide # Vérifie que le dictionnaire n'est pas vide
if not self.subtitle: if not self.subtitle:
hprint("red", "Aucun sous-titre disponible.") sprint(self.script_name,"red", "Aucun sous-titre disponible.")
return "" return ""
# Récupère la dernière clé et valeur # Récupère la dernière clé et valeur
last_time, last_text = list(self.subtitle.items())[-1] last_time, last_text = list(self.subtitle.items())[-1]
hprint("magenta", f"Dernier sous-titre à {last_time} = {last_text}") sprint(self.script_name,"magenta", f"Dernier sous-titre à {last_time} = {last_text}")
return last_text return last_text
def auto_create_subtitle(self,file): def auto_create_subtitle(self,file):
hprint("green",f"start auto_create_subtitle") sprint(self.script_name,"green",f"start auto_create_subtitle")
del_file("","*.txt") del_file("","*.txt")
del_file("","*.srt") del_file("","*.srt")
del_file("","*.vtt") del_file("","*.vtt")
@@ -335,7 +337,7 @@ class Subtitle_translation:
# os.makedirs(subtitle_directory, exist_ok=True) # os.makedirs(subtitle_directory, exist_ok=True)
# os.chdir(subtitle_directory) # os.chdir(subtitle_directory)
spead_find = "" spead_find = ""
hprint("green", "translation : "+file+" ") sprint(self.script_name,"green", "translation : "+file+" ")
# whisperx --language fr --compute_type float32 ../record/final_output_audio.mp3 # whisperx --language fr --compute_type float32 ../record/final_output_audio.mp3
# record_twitch = ['whisperx', '--language',self.language, '--compute_type','float32', '../'+self.dir_record+"/"+file] #ancienne version # record_twitch = ['whisperx', '--language',self.language, '--compute_type','float32', '../'+self.dir_record+"/"+file] #ancienne version
@@ -355,23 +357,25 @@ class Subtitle_translation:
self.all_subtitle += spead_find+"\n" self.all_subtitle += spead_find+"\n"
num_ext = get_current_time() num_ext = get_current_time()
self.subtitle[str(num_ext)] = spead_find self.subtitle[str(num_ext)] = spead_find
hprint("yellow", "parole du streamer : \n" +spead_find) sprint(self.script_name,"yellow", "parole du streamer : \n" +spead_find)
# attention a No active speech found in audio # attention a No active speech found in audio
# os.chdir("../") # os.chdir("../")
console.print("[bold PURPLE] finish create_subtitle [/bold PURPLE]") sprint(self.script_name,"green","finish create_subtitle")
def main_loop(self): def main_loop(self):
time.sleep(45) time.sleep(45)
hprint("green", "start main boucle_traitement record") sprint(self.script_name,"green", "start main boucle_traitement record")
try: try:
while self.is_running: while self.is_running:
hprint("blue",f"wait {self.loop_timer}s loop main translation.") sprint(self.script_name,"blue",f"wait {self.loop_timer}s loop main translation.")
# Attend 'intervalle' secondes avant la prochaine itération # Attend 'intervalle' secondes avant la prochaine itération
self.verif_file_transcribe() self.verif_file_transcribe()
time.sleep(self.loop_timer) time.sleep(self.loop_timer)
except KeyboardInterrupt: # except KeyboardInterrupt:
print("Arrêt du script.") # print("Arrêt du script.")
except Exception as e:
sprint(self.script_name,"red", "STOP main_loop Error : "+ str(e))
# #console.print("[bold green]Enregistrement terminé, le programme va se terminer.[/bold green]") # #console.print("[bold green]Enregistrement terminé, le programme va se terminer.[/bold green]")
@@ -415,26 +419,28 @@ class Subtitle_translation:
class IA_generator: class IA_generator:
def __init__(self,pathjson): def __init__(self,pathjson):
self.script_name = "IA_generator"
self.pathjson = pathjson self.pathjson = pathjson
self.reload_json() self.reload_json()
self.subtitle = {} self.subtitle = {}
self.all_subtitle = "" self.all_subtitle = ""
self.is_running = True self.ia_running = True
self.loop_timer = 60 self.loop_timer_ia = 20
self.streamer_word = "" self.streamer_word = ""
self.last_streamer_word = None
self.index_prompt = 0 self.index_prompt = 0
self.response_generation = {} self.response_generation = {}
self.list_prompt = get_value_json("list_prompt", self.config) self.list_prompt = get_value_json("list_prompt", self.config)
self.bad_answer = get_value_json("bad_answer", self.config) self.bad_answer = get_value_json("bad_answer", self.config)
def stop(self): def stop(self):
hprint("yellow",f"Arrêt loop subtitle") sprint(self.script_name,"yellow",f"Arrêt loop subtitle")
self.is_running = False self.ia_running = False
if self.loop_thread.is_alive(): if self.loop_thread.is_alive():
# self.loop_thread.join() # Attend la fin du thread pour un arrêt propre # self.loop_thread.join() # Attend la fin du thread pour un arrêt propre
hprint("red", "Boucle de traitement arrêtée.") sprint(self.script_name,"red", "Boucle de traitement arrêtée.")
else : else :
hprint("yellow",f"loop subtitle déja arreté") sprint(self.script_name,"yellow",f"loop subtitle déja arreté")
def change_prompt(self): def change_prompt(self):
@@ -456,18 +462,18 @@ class IA_generator:
def print_allgeneration(self): def print_allgeneration(self):
os.system('clear') os.system('clear')
hprint("yellow", "\n\n Print All response_generation \n ") sprint(self.script_name,"yellow", "\n\n Print All response_generation \n ")
for key, text in self.response_generation.items(): for key, text in self.response_generation.items():
hprint("yellow", " key = "+ str(key)+" = "+ text+" \n\n") sprint(self.script_name,"yellow", " key = "+ str(key)+" = "+ text+" \n\n")
def getlast_generation(self): def getlast_generation(self):
# return self.response_generation # return self.response_generation
if not self.response_generation: if not self.response_generation:
hprint("red", "Aucun response_generation disponible.") sprint(self.script_name,"red", "Aucun response_generation disponible.")
return "" return ""
# Récupère la dernière clé et valeur # Récupère la dernière clé et valeur
key, last_generation = list(self.response_generation.items())[-1] key, last_generation = list(self.response_generation.items())[-1]
hprint("magenta", f"Dernier response_generation key : {key} = {last_generation}") sprint(self.script_name,"magenta", f"Dernier response_generation key : {key} = {last_generation}")
return last_generation return last_generation
def clear_response(self, text): def clear_response(self, text):
@@ -480,25 +486,27 @@ class IA_generator:
return text return text
def imagine_response(self): def imagine_response(self):
hprint("green",f"start imagine_response\n") sprint(self.script_name,"green",f"start imagine_response\n")
# hprint("magenta",f"streamer_word : \n"+str(self.streamer_word)) # sprint(self.script_name,"magenta",f"streamer_word : \n"+str(self.streamer_word))
# hprint("magenta",f"streamer_word : \n"+str(len(self.streamer_word[0]))) # sprint(self.script_name,"magenta",f"streamer_word : \n"+str(len(self.streamer_word[0])))
if str(self.streamer_word) == "": if str(self.streamer_word) == "":
hprint("magenta",f"pas encore de sosu titre on quitte génération") sprint(self.script_name,"magenta",f"pas encore de sous titre on quitte génération")
return return
prompt_gpt = ['tgpt','-q','-w', '"'+self.list_prompt[self.index_prompt]+' "'+ str(self.streamer_word)+'"'] prompt_gpt = ['tgpt','-q','-w', '"'+self.list_prompt[self.index_prompt]+' "'+ str(self.streamer_word)+'"']
hprint("DARKCYAN","index preprompt : "+str(self.index_prompt)+"\n") sprint(self.script_name,"DARKCYAN","index preprompt : "+str(self.index_prompt)+"\n")
hprint("DARKCYAN","\nPrompt demandé : "+str(prompt_gpt)+"\n") sprint(self.script_name,"DARKCYAN","\nPrompt demandé : "+str(prompt_gpt)+"\n")
process = subprocess.run(prompt_gpt, capture_output=True, text=True, check=False) process = subprocess.run(prompt_gpt, capture_output=True, text=True, check=False)
text_generation = process.stdout.replace("'", "").replace('"', "").replace("\n", "") text_generation = process.stdout.replace("'", "").replace('"', "").replace("\n", "")
# hprint("CYAN","réponse imaginé sans formatage : \n"+text_generation+"\n\n") #debug # sprint(self.script_name,"CYAN","réponse imaginé sans formatage : \n"+text_generation+"\n\n") #debug
textfinal = self.clear_response(text_generation) textfinal = self.clear_response(text_generation)
# nombre_de_mots = len(textfinal.split()) # nombre_de_mots = len(textfinal.split())
# nombre_de_caracteres = len(textfinal) # nombre_de_caracteres = len(textfinal)
hprint("CYAN","réponse imaginé : \n"+textfinal+"\n\n")
self.last_streamer_word = self.streamer_word
sprint(self.script_name,"CYAN","réponse imaginé : \n"+textfinal+"\n\n")
self.change_prompt() self.change_prompt()
key = get_current_time() key = get_current_time()
@@ -512,25 +520,31 @@ class IA_generator:
return ''.join(values[-n:]) return ''.join(values[-n:])
def main_ask(self, streamer_word_text): def main_ask(self, streamer_word_text):
hprint("blue", "imagine_response start") sprint(self.script_name,"blue", "imagine_response start")
self.streamer_word = streamer_word_text self.streamer_word = streamer_word_text
imagine_response_thread = Thread(target=self.imagine_response) imagine_response_thread = Thread(target=self.imagine_response)
imagine_response_thread.start() imagine_response_thread.start()
def main_loop(self): def main_loop_ia(self):
hprint("blue", "main_loop imagine_response start") sprint(self.script_name,"blue", "main_loop_ia imagine_response start")
time.sleep(100) time.sleep(20)
try: try:
while self.is_running: while self.ia_running:
hprint("blue",f"wait {self.loop_timer}s loop main imagine_response.") time.sleep(self.loop_timer_ia)
sprint(self.script_name,"yellow",f"wait {self.loop_timer_ia}s main_loop_ia imagine_response.")
if(self.last_streamer_word != self.streamer_word):
self.imagine_response() self.imagine_response()
time.sleep(self.loop_timer) else:
except KeyboardInterrupt: sprint(self.script_name,"yellow",f"génération déja créer")
print("Arrêt du script.") # except KeyboardInterrupt:
# print("Arrêt du script.")
except Exception as e:
sprint(self.script_name,"red", "STOP main_loop_ia Error : "+ str(e))
def start_main_loop(self): def start_main_loop(self):
"""Lance dans un thread pour ne pas bloquer le code principal.""" """Lance dans un thread pour ne pas bloquer le code principal."""
self.loop_thread = threading.Thread(target=self.main_loop) self.ia_running = True
self.loop_thread = threading.Thread(target=self.main_loop_ia)
self.loop_thread.start() # Démarre dans un thread séparé self.loop_thread.start() # Démarre dans un thread séparé
+14 -10
View File
@@ -45,6 +45,7 @@ def stop_all():
hprint("blue", "Arrêt d'enregistrement twitch.") hprint("blue", "Arrêt d'enregistrement twitch.")
recordTw.stop() recordTw.stop()
sb_translation.stop() sb_translation.stop()
ask_text.stop()
# signal_handler() # signal_handler()
def print_help(): def print_help():
@@ -81,6 +82,7 @@ def stop_keyboard_listener():
def on_press(key): def on_press(key):
global listening_keyboard global listening_keyboard
global main_loop
try: try:
if key == keyboard.Key.f5: if key == keyboard.Key.f5:
hprint("yellow", "Touche 'F5'BOT Active l'écoute clavier") hprint("yellow", "Touche 'F5'BOT Active l'écoute clavier")
@@ -97,7 +99,7 @@ def on_press(key):
hprint("cyan", "Touche 'q' détectée. Fin du programme.") hprint("cyan", "Touche 'q' détectée. Fin du programme.")
stop_all() stop_all()
main_loop = False main_loop = False
# return False # Cela arrêtera l'écouteur return False # Cela arrêtera l'écouteur
elif key.char == 'c': elif key.char == 'c':
hprint("cyan", "Touche 'c' clear terminal") hprint("cyan", "Touche 'c' clear terminal")
clear_screen() clear_screen()
@@ -140,6 +142,7 @@ def generation_responce():
#---------------------------------------------------------------------------------------------------- #----------------------------------------------------------------------------------------------------
if __name__ == '__main__': if __name__ == '__main__':
global main_loop
main_loop = True main_loop = True
#configuration du dossier de travaille #configuration du dossier de travaille
@@ -169,8 +172,9 @@ if __name__ == '__main__':
sb_translation = Subtitle_translation("../config/config.json") sb_translation = Subtitle_translation("../config/config.json")
sb_translation.start_main_loop() sb_translation.start_main_loop()
#ask_text = IA_generator("../config/config.json") hprint("blue", "start loop IA_generator")
#ask_text.start_main_loop() ask_text = IA_generator("../config/config.json")
ask_text.start_main_loop()
#controluser = messageTwitch(args.twitchname) #controluser = messageTwitch(args.twitchname)
@@ -179,13 +183,13 @@ if __name__ == '__main__':
listener_thread.start() # mise en thread de l'écoute des appuye touche listener_thread.start() # mise en thread de l'écoute des appuye touche
#time.sleep(25) time.sleep(25)
#last_generaton = "" last_generaton = ""
#while main_loop: while main_loop:
#time.sleep(3) time.sleep(10)
#hprint("blue", "start main_loop main script") hprint("blue", "start main_loop main script / main_loop = "+str(main_loop))
#text_streamer = sb_translation.get_lasttext() text_streamer = sb_translation.get_lasttext()
#ask_text.setnew_streamer_word_text(text_streamer) ask_text.setnew_streamer_word_text(text_streamer)
#new_genration = ask_text.getlast_generation() #new_genration = ask_text.getlast_generation()
#if new_genration != "" and new_genration != last_generaton: #if new_genration != "" and new_genration != last_generaton:
File diff suppressed because one or more lines are too long
-76
View File
@@ -1,76 +0,0 @@
1
00:00:00,000 --> 00:00:03,180
Arrête, en vrai ce fight à part la fin qui est bizarre, mais...
2
00:00:04,180 --> 00:00:06,240
Je suis en 6-6-6, ça va, genre.
3
00:00:10,560 --> 00:00:13,240
6-6-6, c'est donc toi le saboteur !
4
00:00:14,160 --> 00:00:15,380
Là !
5
00:00:19,080 --> 00:00:21,360
Vous avez mal joué. Par vous, tu veux dire qui ?
6
00:00:21,360 --> 00:00:23,380
L'entièreté de la game ? Je suis d'accord.
7
00:00:25,960 --> 00:00:27,980
T'es bien toi mon salaud, en vrai.
8
00:00:27,980 --> 00:00:30,880
Vu quand je vois la Kalista, comment elle est dans la game.
9
00:00:30,880 --> 00:00:31,880
Oui, oui, oui.
10
00:00:33,380 --> 00:00:36,520
On va dire dans... 80% des games, je suis bien.
11
00:00:37,380 --> 00:00:39,380
Si on enlève la game Tariq, oui.
12
00:00:39,380 --> 00:00:41,380
Voilà, c'est pour ça que j'ai 80%.
13
00:00:41,380 --> 00:00:43,380
T'as compté le nombre des games qu'on a fait aujourd'hui.
14
00:00:43,380 --> 00:00:45,380
Soustrait par game de Tariq.
15
00:00:50,380 --> 00:00:52,380
Oh oh, je suis dans la...
16
00:00:52,380 --> 00:00:54,380
Merde.
17
00:00:54,380 --> 00:00:56,380
Je suis d'accord.
18
00:00:57,780 --> 00:00:59,780
Je suis d'accord.
19
00:00:59,780 --> 00:01:00,780
Je suis d'accord.
-20
View File
@@ -1,20 +0,0 @@
start end text
0 3180 Arrête, en vrai ce fight à part la fin qui est bizarre, mais...
4180 6240 Je suis en 6-6-6, ça va, genre.
10560 13240 6-6-6, c'est donc toi le saboteur !
14160 15380 Là !
19080 21360 Vous avez mal joué. Par vous, tu veux dire qui ?
21360 23380 L'entièreté de la game ? Je suis d'accord.
25960 27980 T'es bien toi mon salaud, en vrai.
27980 30880 Vu quand je vois la Kalista, comment elle est dans la game.
30880 31880 Oui, oui, oui.
33380 36520 On va dire dans... 80% des games, je suis bien.
37380 39380 Si on enlève la game Tariq, oui.
39380 41380 Voilà, c'est pour ça que j'ai 80%.
41380 43380 T'as compté le nombre des games qu'on a fait aujourd'hui.
43380 45380 Soustrait par game de Tariq.
50380 52380 Oh oh, je suis dans la...
52380 54380 Merde.
54380 56380 Je suis d'accord.
57780 59780 Je suis d'accord.
59780 60780 Je suis d'accord.
1 start end text
2 0 3180 Arrête, en vrai ce fight à part la fin qui est bizarre, mais...
3 4180 6240 Je suis en 6-6-6, ça va, genre.
4 10560 13240 6-6-6, c'est donc toi le saboteur !
5 14160 15380 Là !
6 19080 21360 Vous avez mal joué. Par vous, tu veux dire qui ?
7 21360 23380 L'entièreté de la game ? Je suis d'accord.
8 25960 27980 T'es bien toi mon salaud, en vrai.
9 27980 30880 Vu quand je vois la Kalista, comment elle est dans la game.
10 30880 31880 Oui, oui, oui.
11 33380 36520 On va dire dans... 80% des games, je suis bien.
12 37380 39380 Si on enlève la game Tariq, oui.
13 39380 41380 Voilà, c'est pour ça que j'ai 80%.
14 41380 43380 T'as compté le nombre des games qu'on a fait aujourd'hui.
15 43380 45380 Soustrait par game de Tariq.
16 50380 52380 Oh oh, je suis dans la...
17 52380 54380 Merde.
18 54380 56380 Je suis d'accord.
19 57780 59780 Je suis d'accord.
20 59780 60780 Je suis d'accord.
-19
View File
@@ -1,19 +0,0 @@
Arrête, en vrai ce fight à part la fin qui est bizarre, mais...
Je suis en 6-6-6, ça va, genre.
6-6-6, c'est donc toi le saboteur !
Là !
Vous avez mal joué. Par vous, tu veux dire qui ?
L'entièreté de la game ? Je suis d'accord.
T'es bien toi mon salaud, en vrai.
Vu quand je vois la Kalista, comment elle est dans la game.
Oui, oui, oui.
On va dire dans... 80% des games, je suis bien.
Si on enlève la game Tariq, oui.
Voilà, c'est pour ça que j'ai 80%.
T'as compté le nombre des games qu'on a fait aujourd'hui.
Soustrait par game de Tariq.
Oh oh, je suis dans la...
Merde.
Je suis d'accord.
Je suis d'accord.
Je suis d'accord.
-59
View File
@@ -1,59 +0,0 @@
WEBVTT
00:00.000 --> 00:03.180
Arrête, en vrai ce fight à part la fin qui est bizarre, mais...
00:04.180 --> 00:06.240
Je suis en 6-6-6, ça va, genre.
00:10.560 --> 00:13.240
6-6-6, c'est donc toi le saboteur !
00:14.160 --> 00:15.380
Là !
00:19.080 --> 00:21.360
Vous avez mal joué. Par vous, tu veux dire qui ?
00:21.360 --> 00:23.380
L'entièreté de la game ? Je suis d'accord.
00:25.960 --> 00:27.980
T'es bien toi mon salaud, en vrai.
00:27.980 --> 00:30.880
Vu quand je vois la Kalista, comment elle est dans la game.
00:30.880 --> 00:31.880
Oui, oui, oui.
00:33.380 --> 00:36.520
On va dire dans... 80% des games, je suis bien.
00:37.380 --> 00:39.380
Si on enlève la game Tariq, oui.
00:39.380 --> 00:41.380
Voilà, c'est pour ça que j'ai 80%.
00:41.380 --> 00:43.380
T'as compté le nombre des games qu'on a fait aujourd'hui.
00:43.380 --> 00:45.380
Soustrait par game de Tariq.
00:50.380 --> 00:52.380
Oh oh, je suis dans la...
00:52.380 --> 00:54.380
Merde.
00:54.380 --> 00:56.380
Je suis d'accord.
00:57.780 --> 00:59.780
Je suis d'accord.
00:59.780 --> 01:00.780
Je suis d'accord.
File diff suppressed because one or more lines are too long
+80
View File
@@ -0,0 +1,80 @@
1
00:00:00,000 --> 00:00:01,460
Il est ok, il est pas très bien
2
00:00:01,460 --> 00:00:03,480
Mais j'ai l'impression qu'il y a beaucoup d'AP mag
3
00:00:03,480 --> 00:00:04,860
D'AP bot actuellement
4
00:00:04,860 --> 00:00:07,260
C'est super OP
5
00:00:07,260 --> 00:00:11,540
Le regen, on a les dégâts
6
00:00:11,540 --> 00:00:12,580
Non pas les dégâts
7
00:00:12,580 --> 00:00:15,840
Le flashing était useless
8
00:00:15,840 --> 00:00:19,280
Il peut temporiser un peu
9
00:00:19,280 --> 00:00:20,240
Il peut temporiser un peu
10
00:00:20,240 --> 00:00:29,080
Il monte son vrai niveau émeraude 1
11
00:00:29,080 --> 00:00:32,500
Chape l'émeraude 1, pas choqué
12
00:00:32,500 --> 00:00:36,620
J'arrive à prendre la tour au bot
13
00:00:36,620 --> 00:00:39,120
Je vais avoir que Waii en face de moi
14
00:00:39,120 --> 00:00:41,200
Swain aussi, mais bon, je pense pas qu'ils soient restés tous les deux
15
00:00:41,200 --> 00:00:43,660
En vrai j'ai mon ignite, j'ai plein de trucs
16
00:00:43,660 --> 00:00:44,980
Donc je peux délai Waii
17
00:00:44,980 --> 00:00:47,320
C'est peut-être ok
18
00:00:47,320 --> 00:00:54,540
Je vais prendre la tour là
19
00:00:54,540 --> 00:00:57,000
Il n'y a pas encore un up
20
00:00:57,000 --> 00:00:59,980
Il est bien
+21
View File
@@ -0,0 +1,21 @@
start end text
0 1460 Il est ok, il est pas très bien
1460 3480 Mais j'ai l'impression qu'il y a beaucoup d'AP mag
3480 4860 D'AP bot actuellement
4860 7260 C'est super OP
7260 11540 Le regen, on a les dégâts
11540 12580 Non pas les dégâts
12580 15840 Le flashing était useless
15840 19280 Il peut temporiser un peu
19280 20240 Il peut temporiser un peu
20240 29080 Il monte son vrai niveau émeraude 1
29080 32500 Chape l'émeraude 1, pas choqué
32500 36620 J'arrive à prendre la tour au bot
36620 39120 Je vais avoir que Waii en face de moi
39120 41200 Swain aussi, mais bon, je pense pas qu'ils soient restés tous les deux
41200 43660 En vrai j'ai mon ignite, j'ai plein de trucs
43660 44980 Donc je peux délai Waii
44980 47320 C'est peut-être ok
47320 54540 Je vais prendre la tour là
54540 57000 Il n'y a pas encore un up
57000 59980 Il est bien
1 start end text
2 0 1460 Il est ok, il est pas très bien
3 1460 3480 Mais j'ai l'impression qu'il y a beaucoup d'AP mag
4 3480 4860 D'AP bot actuellement
5 4860 7260 C'est super OP
6 7260 11540 Le regen, on a les dégâts
7 11540 12580 Non pas les dégâts
8 12580 15840 Le flashing était useless
9 15840 19280 Il peut temporiser un peu
10 19280 20240 Il peut temporiser un peu
11 20240 29080 Il monte son vrai niveau émeraude 1
12 29080 32500 Chape l'émeraude 1, pas choqué
13 32500 36620 J'arrive à prendre la tour au bot
14 36620 39120 Je vais avoir que Waii en face de moi
15 39120 41200 Swain aussi, mais bon, je pense pas qu'ils soient restés tous les deux
16 41200 43660 En vrai j'ai mon ignite, j'ai plein de trucs
17 43660 44980 Donc je peux délai Waii
18 44980 47320 C'est peut-être ok
19 47320 54540 Je vais prendre la tour là
20 54540 57000 Il n'y a pas encore un up
21 57000 59980 Il est bien
+20
View File
@@ -0,0 +1,20 @@
Il est ok, il est pas très bien
Mais j'ai l'impression qu'il y a beaucoup d'AP mag
D'AP bot actuellement
C'est super OP
Le regen, on a les dégâts
Non pas les dégâts
Le flashing était useless
Il peut temporiser un peu
Il peut temporiser un peu
Il monte son vrai niveau émeraude 1
Chape l'émeraude 1, pas choqué
J'arrive à prendre la tour au bot
Je vais avoir que Waii en face de moi
Swain aussi, mais bon, je pense pas qu'ils soient restés tous les deux
En vrai j'ai mon ignite, j'ai plein de trucs
Donc je peux délai Waii
C'est peut-être ok
Je vais prendre la tour là
Il n'y a pas encore un up
Il est bien
+62
View File
@@ -0,0 +1,62 @@
WEBVTT
00:00.000 --> 00:01.460
Il est ok, il est pas très bien
00:01.460 --> 00:03.480
Mais j'ai l'impression qu'il y a beaucoup d'AP mag
00:03.480 --> 00:04.860
D'AP bot actuellement
00:04.860 --> 00:07.260
C'est super OP
00:07.260 --> 00:11.540
Le regen, on a les dégâts
00:11.540 --> 00:12.580
Non pas les dégâts
00:12.580 --> 00:15.840
Le flashing était useless
00:15.840 --> 00:19.280
Il peut temporiser un peu
00:19.280 --> 00:20.240
Il peut temporiser un peu
00:20.240 --> 00:29.080
Il monte son vrai niveau émeraude 1
00:29.080 --> 00:32.500
Chape l'émeraude 1, pas choqué
00:32.500 --> 00:36.620
J'arrive à prendre la tour au bot
00:36.620 --> 00:39.120
Je vais avoir que Waii en face de moi
00:39.120 --> 00:41.200
Swain aussi, mais bon, je pense pas qu'ils soient restés tous les deux
00:41.200 --> 00:43.660
En vrai j'ai mon ignite, j'ai plein de trucs
00:43.660 --> 00:44.980
Donc je peux délai Waii
00:44.980 --> 00:47.320
C'est peut-être ok
00:47.320 --> 00:54.540
Je vais prendre la tour là
00:54.540 --> 00:57.000
Il n'y a pas encore un up
00:57.000 --> 00:59.980
Il est bien