def download(self, file, save_as=None, save=True, return_content=False): destination_path = None if save_as is None: save_as = file if len(re.findall(r"\.\.", save_as)) > 0: return None content = InformaCamClientFabricProcess( downloadGlobaleaksAsset, self.config["host"], self.config["user"], self.config["identity_file"], args={"file": file, "asset_root": self.config["asset_root"], "identity_file": self.config["identity_file"]}, port=self.config["port"], ) content.join() if content.output is None: return None destination_path = os.path.join(ANNEX_DIR, save_as) try: with open(destination_path, "wb+") as C: C.write(content.output.getvalue()) except IOError as e: if DEBUG: print e return None if return_content: return content.output.getvalue() else: return destination_path
def getAssetMimeType(self, file): mime_type = InformaCamClientFabricProcess( getGlobaleaksAssetMimeType, self.config["host"], self.config["user"], self.config["identity_file"], port=self.config["port"], args={"file": file, "asset_root": self.config["asset_root"], "identity_file": self.config["identity_file"]}, ) mime_type.join() return mime_type.output
def listAssets(self, omit_absorbed=False): assets = [] list_gl_assets = InformaCamClientFabricProcess( listGlobaleakAssets, self.config["host"], self.config["user"], self.config["identity_file"], port=self.config["port"], args={"asset_root": self.config["asset_root"], "identity_file": self.config["identity_file"]}, ) list_gl_assets.join() if list_gl_assets.error is None and list_gl_assets.output is not None: self.last_update_for_mode = time() * 1000 # get mime types for l in list_gl_assets.output: mime_type = self.getAssetMimeType(l["file_name"]) if mime_type is None: continue date_str = l["date_created"].split(".")[0] date_created = mktime(strptime(date_str, "%Y-%m-%d %H:%M:%S")) * 1000 if DEBUG: print "\nFILENAME: %s" % l["file_name"] print "MIME TYPE: %s" % mime_type print "DATE CREATED: %s (%d)\n" % (date_str, date_created) if omit_absorbed and self.isAbsorbed(date_created, mime_type): continue assets.append(l["file_name"]) self.updateLog() if DEBUG: print "ASSETS TO BE ABSORBED FOR MODE %s" % self.mode print assets return assets