import os import os.path import hashlib import random class ClientExeManager: SCRIPTS_PATH="/usr/share/n4d-client-exe-manager/enabled/" def __init__(self): self.db={} self.generate_database() #def init def md5sum(self,path): try: with open(path, 'rb') as fh: m = hashlib.md5() while True: data = fh.read(8192) if not data: break m.update(data) return m.hexdigest() except Exception as e: print e return "MD5SUM-ERROR-"+str(random.random()) #def md5sum def generate_database(self,path=None): self.db={} if path==None: path=ClientExeManager.SCRIPTS_PATH for item in sorted(os.listdir(path)): file_path=path+item md5=self.md5sum(file_path) self.db[md5]=file_path print self.db #def generate_database def startup(self,options): #self.generate_database() pass #def startup def get_available_exes(self,filter_list=[]): ret=[] if type(filter_list)!=type([]): filter_list=[] for item in self.db: if item not in filter_list: f=open(self.db[item],"rb") content="".join(f.readlines()) f.close() ret.append((item,content)) return ret #class ClientExeManager if __name__=="__main__": cem=ClientExeManager() cem.startup(None) print cem.get_available_exes(["159d56c4e63112c39b3309e709a4d0ee"])