Esempio n. 1
0
 def test_chunk_overlapping_multiple_files(self):
     reader = TrLogReader(FILENAME)
     tr_log = reader.get_log(use_cache=False, ignore_non_downloaded_files=False)
     reader._chunk_count = 0
     chunk = {'filenum': 0,
              'begin': 0, 'end': 300,
              'peeraddr': 'X', 'id': 0, 't': 0.0}
     expected_chunks = [
         {'filenum': 0,
          'begin': 0, 'end': 291,
          'peeraddr': 'X', 'id': 0, 't': 0.0},
         {'filenum': 1,
          'begin': 291, 'end': 300,
          'peeraddr': 'X', 'id': 1, 't': 0.0}]
     self.assertEquals(expected_chunks, reader._split_chunk_at_file_boundaries(chunk))
parser = ArgumentParser()
parser.add_argument("sessiondir")
parser.add_argument("--file", dest="selected_files", type=int, nargs="+")
parser.add_argument("-t", "--torrent", dest="torrentname", default="")
parser.add_argument("-interpret", action="store_true")
parser.add_argument("-autozoom", action="store_true")
parser.add_argument("--unfold", choices=[FORWARD, BACKWARD, PINGPONG], default=BACKWARD)
Ancestry.add_parser_arguments(parser)
options = parser.parse_args()
options.standalone = True

sessiondir = options.sessiondir
logfilename = "%s/session.log" % sessiondir

print "session: %s" % sessiondir

tr_log = TrLogReader(logfilename, options.torrentname,
                     realtime=False,
                     pretend_sequential=False).get_log()
if options.selected_files:
    tr_log.select_files(options.selected_files)
print >> sys.stderr, "found %d chunks" % len(tr_log.chunks)
tr_log.ignore_non_downloaded_files()

if options.interpret:
    pieces = Interpreter().interpret(tr_log.chunks)
else:
    pieces = tr_log.chunks

Ancestry(tr_log, pieces, options).run()
Esempio n. 3
0
if options.realtime:
    if options.max_passivity:
        raise Exception("cannot enforce max passivity in real time")
    session = Session(realtime=True)
    sessiondir = session.dir
    logfile = session.get_log_reader()
    session.start()
else:
    sessiondir = options.sessiondir
    logfilename = "%s/session.log" % sessiondir

print "session: %s" % sessiondir

tr_log = TrLogReader(logfilename, options.torrentname,
                     realtime=options.realtime,
                     pretend_sequential=options.pretend_sequential).get_log()
tr_log.ignore_non_downloaded_files()

server = Server(options)
orchestra = Orchestra(sessiondir, tr_log, options)
server.set_orchestra(orchestra)

if not options.realtime and len(orchestra.chunks) == 0:
    raise Exception("No chunks to play. Unsupported file format?")

def process_chunks_from_queue():
    while True:
        logger.debug("waiting for chunk")
        chunk = get_chunk_from_queue()
        if chunk == TrLogReader.NO_MORE_CHUNKS:
Esempio n. 4
0
                    help="attack-time,decay-time,sustain-level")
parser.add_argument("--line-width", type=float, default=2.0)
parser.add_argument("--prune-out", action="store_true")
parser.add_argument("--prune-duration", type=float, default=1)
parser.add_argument("--prune-envelope", type=str, default="0,0.1,0,1")
parser.add_argument("--pre-prune-duration", type=float, default=5.0)
parser.add_argument("--post-prune-duration", type=float, default=1.0)
parser.add_argument("--line-growth-speed", type=float, default=1.5)
Ancestry.add_parser_arguments(parser)
options = parser.parse_args()
options.standalone = True

sessiondir = options.sessiondir
logfilename = "%s/session.log" % sessiondir

print "session: %s" % sessiondir

tr_log = TrLogReader(logfilename, options.torrentname,
                     realtime=False,
                     pretend_sequential=False).get_log()
if options.selected_files:
    tr_log.select_files(options.selected_files)
print >> sys.stderr, "found %d chunks" % len(tr_log.chunks)

if options.interpret:
    pieces = Interpreter().interpret(tr_log.chunks)
else:
    pieces = tr_log.chunks

Ancestry(tr_log, pieces, options).run()