def run(self): def callback(*args): return self.isInterruptionRequested() entries = os.listdir(self.path) for i, p in enumerate(entries): p = os.path.join(self.path, p) if not dottorrent.is_hidden_file(p): sfn = os.path.split(p)[1] + '.torrent' self.progress_update.emit(sfn, i, len(entries)) t = dottorrent.Torrent(p, trackers=self.trackers, web_seeds=self.web_seeds, private=self.private, source=self.source, comment=self.comment, include_md5=self.include_md5, creation_date=datetime.now(), created_by=CREATOR) try: self.success = t.generate(callback=callback) # ignore empty inputs except dottorrent.exceptions.EmptyInputException: continue except Exception as exc: self.onError.emit(str(exc)) return if self.isInterruptionRequested(): return if self.success: with open(os.path.join(self.save_dir, sfn), 'wb') as f: t.save(f)
def initializeTorrent(self): self.torrent = dottorrent.Torrent(self.inputEdit.text()) try: t_info = self.torrent.get_info() except Exception as e: self.torrent = None self._showError(str(e)) return ptail = os.path.split(self.torrent.path)[1] if self.inputType == 'file': self._statusBarMsg("{}: {}".format( ptail, humanfriendly.format_size(t_info[0], binary=True))) else: self._statusBarMsg("{}: {} files, {}".format( ptail, t_info[1], humanfriendly.format_size(t_info[0], binary=True))) self.pieceSizeComboBox.setCurrentIndex(0) self.updatePieceCountLabel(t_info[2], t_info[3]) self.pieceCountLabel.show() self.createButton.setEnabled(True)
def moveAlbum(parsedArgs, a, w, source): sprint(parsedArgs) data = None if "hash" in parsedArgs: sprint(parsedArgs["hash"], len(parsedArgs["hash"])) data = a.get_torrent_info(hash=parsedArgs["hash"]) else: TorrentIDsource = parsedArgs["tid"] data = a.get_torrent_info(id=TorrentIDsource) tdata = data["torrent"] g_group = data["group"] GroupIDsource = g_group["id"] TorrentIDsource = tdata["id"] if not os.path.exists("meta"): os.makedirs("meta") f = open("meta\\" + str(TorrentIDsource) + ".json","w") f.write(json.dumps(data,indent=4)) f.close() folder = "" if "album" in parsedArgs: folder = parsedArgs["album"] elif "folder" in parsedArgs: folder = os.path.join(parsedArgs["folder"], unescape(tdata["filePath"])) sprint("Folder:", folder, "====") else: raise Exception("Failed to find path") isDupe = checkForDuplicate(w, data) sprint("Duplicate:", isDupe) if isDupe: return t_media = tdata["media"] t_format = tdata["format"] t_encoding = tdata["encoding"] if tdata["description"] == "": t_description = "Uploaded with GazelleSync ("+parsedArgs["from"].upper()+" to "+parsedArgs["to"].upper()+"). Many thanks to the original uploader!" else: t_description = "Content of the original Description field at " + parsedArgs["from"].upper() + " (it may be empty) : [quote]" + tdata["description"] + "[/quote]" + "\n\nUploaded with GazelleSync ("+parsedArgs["from"].upper()+" to "+parsedArgs["to"].upper()+"). Many thanks to the original uploader!" t_remasterYear = tdata["remasterYear"] t_remasterCatalogueNumber = tdata["remasterCatalogueNumber"] t_remastered = tdata["remastered"] t_remasterRecordLabel = tdata["remasterRecordLabel"] t_remasterTitle = tdata["remasterTitle"] g_artists = g_group["musicInfo"] g_name = g_group["name"] g_year = g_group["year"] g_recordLabel = g_group["recordLabel"] g_catalogueNumber = g_group["catalogueNumber"] g_releaseType = g_group["releaseType"] g_tags = g_group["tags"] #g_wikiImage = g_group["wikiImage"] #""" if parsedArgs["to"] != "nwcd": g_wikiImage = g_group["wikiImage"] else: g_wikiImage = destAPI.img(g_group["wikiImage"]) #""" g_wikiBody = strip_tags(g_group["wikiBody"]) #.replace("<br />", "\n") #g_wikiBody = g_group["wikiBody"] g_group["wikiBody"] = g_group["wikiBody"].replace("\r\n", "\n") album = dict( album = g_name, original_year = g_year, remaster = t_remastered, record_label = g_recordLabel, catalogue_number = g_catalogueNumber, releasetype = g_releaseType, remaster_year = t_remasterYear, remaster_title = t_remasterTitle, remaster_record_label = t_remasterRecordLabel, remaster_catalogue_number = t_remasterCatalogueNumber, format = t_format, encoding = t_encoding, media = t_media, description = g_wikiBody, rDesc = t_description ) artists = list() for i,v in enumerate(g_artists["composers"]): artists.append((v["name"], artistImportances.get("Composer", 1))) for i,v in enumerate(g_artists["dj"]): artists.append((v["name"], artistImportances.get("DJ", 1))) for i,v in enumerate(g_artists["artists"]): artists.append((v["name"], artistImportances.get("Main", 1))) for i,v in enumerate(g_artists["with"]): artists.append((v["name"], artistImportances.get("Guest", 1))) for i,v in enumerate(g_artists["conductor"]): artists.append((v["name"], artistImportances.get("Conductor", 1))) for i,v in enumerate(g_artists["remixedBy"]): artists.append((v["name"], artistImportances.get("Remixer", 1))) for i,v in enumerate(g_artists["producer"]): artists.append((v["name"], artistImportances.get("Producer", 1))) sprint(album["album"]) tempfolder = "torrent" if not os.path.exists(tempfolder): os.makedirs(tempfolder) if t_remastered: releaseYear = t_remasterYear releaseRecordLabel = t_remasterRecordLabel releaseCatNum = t_remasterCatalogueNumber else: releaseYear = g_year releaseRecordLabel = g_recordLabel releaseCatNum = g_catalogueNumber newFolderName = genaratePrettyName(g_artists, g_name, releaseYear, t_format, t_encoding, t_media, releaseRecordLabel, releaseCatNum, t_remasterTitle) print("New path is", newFolderName) #input() tpath = newFolderName +".torrent" tpath = tpath.replace("/", "/") tpath = tpath.replace("\\", "\") tpath = tpath.replace(":", ":") tpath = tpath.replace("*", "*") tpath = tpath.replace('"', """) tpath = tpath.replace("?", "?") tpath = tpath.replace("<", "<") tpath = tpath.replace(">", ">") tpath = tpath.replace("|", "|") tpath = unescape(tpath) #tpath = "torrent/"+tpath sprint(tpath) sprint("Folder", folder) #folder = toUnicode(folder) sprint("Folder", folder) #raw_input() t = dottorrent.Torrent(folder, trackers=[w.tracker], comment="Created with GazelleSync", source=source, private=True) t.generate() with open ("torrent/" + tpath, "wb") as f: t.save(f) w.upload(folder, tempfolder, album, g_tags, g_wikiImage, artists, "torrent/"+tpath) if constants.directory != "": copyfile("torrent/"+tpath, os.path.join(constants.directory, tpath))