debu stopping complet
This commit is contained in:
+64
-50
@@ -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)
|
||||||
self.imagine_response()
|
sprint(self.script_name,"yellow",f"wait {self.loop_timer_ia}s main_loop_ia imagine_response.")
|
||||||
time.sleep(self.loop_timer)
|
if(self.last_streamer_word != self.streamer_word):
|
||||||
except KeyboardInterrupt:
|
self.imagine_response()
|
||||||
print("Arrêt du script.")
|
else:
|
||||||
|
sprint(self.script_name,"yellow",f"génération déja créer")
|
||||||
|
# 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
@@ -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
@@ -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.
|
|
||||||
|
|
||||||
@@ -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,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.
|
|
||||||
@@ -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
@@ -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
|
||||||
|
|
||||||
@@ -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
|
||||||
|
@@ -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
|
||||||
@@ -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
|
||||||
|
|
||||||
Reference in New Issue
Block a user