import pickle # Isengard commands def cmdping(owners, nick, text, sbuf): """ Ping command. """ return "pong !" def cmdmainteneur(owners, nick, text, sbuf): """ Change maintainer for an host """ if not nick in owners: return "désolé mais vous n'êtes pas autorisé à utiliser cette commande." try: splittedtext = text.split(" ") # print maintainer if len(splittedtext) == 2: host = splittedtext[1] return "le responsable de cette machine est " \ + sbuf.buf[host]["maintainer"] if len(splittedtext) == 3: host = splittedtext[1] maintainer = splittedtext[2] sbuf.buf[host] = {} sbuf.buf[host]["destmuc"] = None sbuf.buf[host]["status_state"] = None sbuf.buf[host]["status_type"] = None sbuf.buf[host]["text"] = None sbuf.buf[host]["raw"] = None sbuf.buf[host]["needUpdate"] = False sbuf.buf[host]["maintainer"] = maintainer return "le responsable est à présent " \ + sbuf.buf[host]["maintainer"] except Exception as e: print(repr(e)) return "Erreur à l'exécution" return "Syntaxe invalide" def cmdsave(owners, nick, text, sbuf): """ Save """ if not nick in owners: return "désolé mais vous n'êtes pas autorisé à utiliser cette commande." try: with open('current_buffer', 'wb') as current_buffer_file: pickle.dump(sbuf.buf, current_buffer_file) return "OK" except Exception as e: print(repr(e)) return "Erreur à l'exécution" def cmdload(owners, nick, text, sbuf): """ Save """ if not nick in owners: return "désolé mais vous n'êtes pas autorisé à utiliser cette commande." try: with open('current_buffer', 'rb') as current_buffer_file: sbuf.buf = pickle.load(current_buffer_file) return "OK" except Exception as e: print(repr(e)) return "Erreur à l'exécution" # Commands commandtable = { "ping" : cmdping, "mainteneur" : cmdmainteneur, "save" : cmdsave, "load" : cmdload, }