def NewConclusionDialog(app, gui): glade_filename = path.getdatapath('ui', 'ConclusionDialog.glade') builder = gtk.Builder() builder.add_from_file(glade_filename) dialog = builder.get_object("conclusion_dialog") dialog.app = app dialog.gui = gui return dialog
def show_conclusions(self): conclusions = self.app.gui.dialog_conclusion._run( self.conclusions, self.app.rename_by_schema, self.app.config.get('general', 'folder_archive')) self.app.gui.main_window.builder.get_object('box_conclusion').hide() self.conclusions = [] # create cutlists cutlists = [] for conclusion in conclusions: if conclusion.action == Action.DECODE: continue print "[Conclusion] for file ", conclusion.uncut_video # rename print "[Conclusion] Rename?" if conclusion.cut.rename: print "[Conclusion] true" extension = os.path.splitext(conclusion.cut_video)[1] if not conclusion.cut.rename.endswith(extension): conclusion.cut.rename += extension new_filename = os.path.join( self.app.config.get('general', 'folder_cut_avis'), conclusion.cut.rename.replace('/', '_')) new_filename = fileoperations.make_unique_filename( new_filename) if conclusion.cut_video != new_filename: conclusion.cut_video = fileoperations.rename_file( conclusion.cut_video, new_filename) # move cut video to archive print "[Conclusion] Move to archive?" if conclusion.cut.archive_to: print "[Conclusion] true" fileoperations.move_file(conclusion.cut_video, conclusion.cut.archive_to) # move uncut video to trash if it's ok print "[Conclusion] Move to trash?" if conclusion.cut.status == Status.OK and conclusion.cut.delete_uncut: print "[Conclusion] true" if os.path.exists(conclusion.uncut_video): # move to trash target = self.app.config.get('general', 'folder_trash_avis') conclusion.uncut_video = fileoperations.move_file( conclusion.uncut_video, target) if os.path.exists(conclusion.ac3_file): target = self.app.config.get('general', 'folder_trash_avis') fileoperations.move_file(conclusion.ac3_file, target) # remove local cutlists print "[Conclusion] Remove local cutlist?" if self.app.config.get('general', 'delete_cutlists'): print "[Conclusion] true" if conclusion.cut.cutlist.local_filename: if os.path.exists( conclusion.cut.cutlist.local_filename): fileoperations.remove_file( conclusion.cut.cutlist.local_filename) print "[Conclusion] Create cutlist?" if conclusion.cut.create_cutlist: print "[Conclusion] true" if "VirtualDub" in conclusion.cut.cutlist.intended_app: intended_app_name = "VirtualDub" else: intended_app_name = "Avidemux" if not conclusion.cut.cutlist.local_filename: conclusion.cut.cutlist.local_filename = self.app.config.get( 'general', 'folder_uncut_avis') + '/' + os.path.basename( conclusion.uncut_video) + ".cutlist" conclusion.cut.cutlist.author = self.app.config.get( 'general', 'cutlist_username') conclusion.cut.cutlist.intended_version = open( path.getdatapath("VERSION"), 'r').read().strip() conclusion.cut.cutlist.smart = self.app.config.get( 'general', 'smart') conclusion.cut.cutlist.write_local_cutlist( conclusion.uncut_video, intended_app_name, conclusion.cut.my_rating) if conclusion.cut.upload_cutlist: cutlists.append(conclusion.cut.cutlist) # upload cutlists: def upload(): error_messages = [] for cutlist in cutlists: error_message = cutlist.upload( self.app.config.get('general', 'server'), self.app.config.get('general', 'cutlist_hash')) if error_message: error_messages.append(error_message) else: if self.app.config.get('general', 'delete_cutlists'): fileoperations.remove_file(cutlist.local_filename) count = len(cutlists) message = "Es wurden %s/%s Cutlisten hochgeladen!" % ( str(count - len(error_messages)), str(count)) if len(error_messages) > 0: message += " (" + ", ".join(error_messages) + ")" yield message if len(cutlists) > 0: print "[Conclusion] Upload cutlists" if self.app.gui.question_box( "Soll(en) %s Cutlist(en) hochgeladen werden?" % len(cutlists)): def change_status(message): self.app.gui.main_window.change_status(0, message) GeneratorTask(upload, change_status).start() # rate cutlists def rate(): yield 0 # fake generator messages = [] count = 0 for conclusion in conclusions: if conclusion.action == Action.DECODE: continue if conclusion.cut.my_rating > -1: print "Rate with ", conclusion.cut.my_rating success, message = conclusion.cut.cutlist.rate( conclusion.cut.my_rating, self.app.config.get('general', 'server')) if success: count += 1 else: messages += [message] if count > 0 or len(messages) > 0: if count == 0: text = "Es wurde keine Cutlist bewertet!" if count == 1: text = "Es wurde 1 Cutlist bewertet!" else: text = "Es wurden %s Cutlisten bewertet!" % count if len(messages) > 0: text += " (Fehler: %s)" % ", ".join(messages) self.app.gui.main_window.change_status(0, text) print "[Conclusion] Rate cutlists" GeneratorTask(rate).start()
def show_conclusions(self): conclusions = self.app.gui.dialog_conclusion._run(self.conclusions, self.app.rename_by_schema, self.app.config.get('general', 'folder_archive')) self.app.gui.main_window.builder.get_object('box_conclusion').hide() self.conclusions = [] # create cutlists cutlists = [] for conclusion in conclusions: if conclusion.action == Action.DECODE: continue print "[Conclusion] for file ", conclusion.uncut_video # rename print "[Conclusion] Rename?" if conclusion.cut.rename: print "[Conclusion] true" extension = os.path.splitext(conclusion.cut_video)[1] if not conclusion.cut.rename.endswith(extension): conclusion.cut.rename += extension new_filename = os.path.join(self.app.config.get('general', 'folder_cut_avis'), conclusion.cut.rename.replace('/', '_')) #new_filename = fileoperations.make_unique_filename(new_filename) if conclusion.cut_video != new_filename: conclusion.cut_video = fileoperations.rename_file(conclusion.cut_video, new_filename) # move cut video to archive print "[Conclusion] Move to archive?" if conclusion.cut.archive_to: print "[Conclusion] true" fileoperations.move_file(conclusion.cut_video, conclusion.cut.archive_to) # move uncut video to trash if it's ok print "[Conclusion] Move to trash?" if conclusion.cut.status == Status.OK and conclusion.cut.delete_uncut: print "[Conclusion] true" if os.path.exists(conclusion.uncut_video): # move to trash target = self.app.config.get('general', 'folder_trash_avis') conclusion.uncut_video = fileoperations.move_file(conclusion.uncut_video, target) if os.path.exists(conclusion.ac3_file): target = self.app.config.get('general', 'folder_trash_avis') fileoperations.move_file(conclusion.ac3_file, target) # remove local cutlists print "[Conclusion] Remove local cutlist?" if self.app.config.get('general', 'delete_cutlists'): print "[Conclusion] true" if conclusion.cut.cutlist.local_filename: if os.path.exists(conclusion.cut.cutlist.local_filename): fileoperations.remove_file(conclusion.cut.cutlist.local_filename) print "[Conclusion] Create cutlist?" if conclusion.cut.create_cutlist: print "[Conclusion] true" if "VirtualDub" in conclusion.cut.cutlist.intended_app: intended_app_name = "VirtualDub" else: intended_app_name = "Avidemux" if not conclusion.cut.cutlist.local_filename: conclusion.cut.cutlist.local_filename = self.app.config.get('general', 'folder_uncut_avis') + '/' + os.path.basename(conclusion.uncut_video) + ".cutlist" conclusion.cut.cutlist.author = self.app.config.get('general', 'cutlist_username') conclusion.cut.cutlist.intended_version = open(path.getdatapath("VERSION"), 'r').read().strip() conclusion.cut.cutlist.smart = self.app.config.get('general', 'smart') conclusion.cut.cutlist.write_local_cutlist(conclusion.uncut_video, intended_app_name, conclusion.cut.my_rating) if conclusion.cut.upload_cutlist: cutlists.append(conclusion.cut.cutlist) # upload cutlists: def upload(): error_messages = [] for cutlist in cutlists: error_message = cutlist.upload(self.app.config.get('general', 'server'), self.app.config.get('general', 'cutlist_hash')) if error_message: error_messages.append(error_message) else: if self.app.config.get('general', 'delete_cutlists'): fileoperations.remove_file(cutlist.local_filename) count = len(cutlists) message = "Es wurden %s/%s Cutlisten hochgeladen!" % (str(count - len(error_messages)), str(count)) if len(error_messages) > 0: message += " (" + ", ".join(error_messages) + ")" yield message if len(cutlists) > 0: print "[Conclusion] Upload cutlists" if self.app.gui.question_box("Soll(en) %s Cutlist(en) hochgeladen werden?" % len(cutlists)): def change_status(message): self.app.gui.main_window.change_status(0, message) GeneratorTask(upload, change_status).start() # rate cutlists def rate(): yield 0 # fake generator messages = [] count = 0 for conclusion in conclusions: if conclusion.action == Action.DECODE: continue if conclusion.cut.my_rating > -1: print "Rate with ", conclusion.cut.my_rating success, message = conclusion.cut.cutlist.rate(conclusion.cut.my_rating, self.app.config.get('general', 'server')) if success: count += 1 else: messages += [message] if count > 0 or len(messages) > 0: if count == 0: text = "Es wurde keine Cutlist bewertet!" if count == 1: text = "Es wurde 1 Cutlist bewertet!" else: text = "Es wurden %s Cutlisten bewertet!" % count if len(messages) > 0: text += " (Fehler: %s)" % ", ".join(messages) self.app.gui.main_window.change_status(0, text) print "[Conclusion] Rate cutlists" GeneratorTask(rate).start()