def get_file_name(self, torrentname): # first, cache the torrent names to IDs if not hasattr(self, "torrent_to_id_map"): self.get_finished_torrents() torrent_id = self.torrent_to_id_map[torrentname] stdout = util.getstdout([ "env", "LANG=C", self.transmission_remote_path, self.hostname, "--auth=%s:%s" % (self.transmission_remote_user, self.transmission_remote_password), "-t", torrent_id, "-f" ]).splitlines() filename = util.firstcomponent(stdout[2][34:]) return filename
def get_finished_torrents(self): stdout = util.getstdout([ self.transmission_remote_path, self.hostname, "--auth=%s:%s" % (self.transmission_remote_user, self.transmission_remote_password), "-l" ]) stdout = stdout.splitlines()[1:-1] stdout.reverse() stdout = [ x.split() + [x[70:]] for x in stdout ] donetoseeding = lambda t: "Seeding" if t != "Stopped" else t stdout = [ (x[0], donetoseeding(x[8]), x[-1]) for x in stdout if x[4] in "Done" ] self.torrent_to_id_map = dict((x[2], x[0]) for x in stdout) pairs = [ (x[2], x[1]) for x in stdout] return pairs