Inhibiteurs pour HandBrake_recursive

This commit is contained in:
lionel 2025-05-15 00:15:20 +02:00
parent 10ffd3a583
commit b56fdf48b8

View File

@ -10,10 +10,65 @@ import json
import argparse
import ffmpeg
import pydbus as dbus
import openpyxl
from openpyxl.styles import PatternFill
from openpyxl.formatting.rule import CellIsRule
def inhibit_arret(application, raison):
inhibiteurs = {}
# Inhibition arrêt et veille via login1 (SystemBus)
system_bus = dbus.SystemBus()
login1 = system_bus.get("org.freedesktop.login1", "/org/freedesktop/login1")
inhibiteurs["shutdown"] = login1.Inhibit(
"shutdown",
application,
raison,
"block"
)
inhibiteurs["sleep"] = login1.Inhibit(
"sleep",
application,
raison,
"block"
)
# Inhibition déconnexion via gnome-session (SessionBus)
session_bus = dbus.SessionBus()
session_manager = session_bus.get("org.gnome.SessionManager", "/org/gnome/SessionManager")
# flags:
# 0 = logout only
# 1 = user switch
# 2 = suspend
# 4 = shutdown
# 8 = idle (screensaver, etc)
flags = 0 | 1 | 2 | 4 | 8
inhibiteurs["session"] = session_manager.Inhibit(
application,
0,
raison,
flags
)
return inhibiteurs
def lever_inhibit_arret(inhibiteurs):
# Fermer le descripteur de fichier pour lever l'inhibition
for cle, inhibiteur in inhibiteurs.items():
if cle in ["shutdown", "sleep"] and hasattr(inhibiteur, "close"):
inhibiteur.close()
elif cle == "session":
# Connexion au bus session
session_bus = dbus.SessionBus()
# Obtenir l'interface SessionManager de gnome
session_manager = session_bus.get("org.gnome.SessionManager", "/org/gnome/SessionManager")
session_manager.Uninhibit(inhibiteur)
# Définir la largeur de chaque colonne à environ 3 cm (approximativement 10.5 unités)
def set_column_width(ws, column_range, width=15):
for col in column_range:
@ -380,6 +435,8 @@ def main():
# Liste pour enregistrer le résumé
lignes = []
inhibiteurs = inhibit_arret( "HandBrake Script", "Encodage vidéo en cours")
try:
# Traitement de chaque fichier vidéo
for video_file in video_files:
@ -458,11 +515,14 @@ def main():
"" # Résultat
))
# Affichage du résumé
afficher_tableau(lignes, use_pager=use_pager)
xlsx_file = "résumé.xlsx"
export_xlsx(lignes, fichier_sortie=xlsx_file)
print(f"📝 Classeur généré : {xlsx_file}")
lever_inhibit_arret(inhibiteurs)
# Affichage du résumé
afficher_tableau(lignes, use_pager=use_pager)
if __name__ == "__main__":
main()