Exemplo n.º 1
0
    def test_parser(self):
        # Check that we can parse an empty file.
        parsed_0 = bulk_tagging_form.parse_file(cStringIO.StringIO(""))
        self.assertEqual({}, parsed_0)

        # Check that we can parse a simple test form.
        parsed_1 = bulk_tagging_form.parse_file(
            cStringIO.StringIO(TEST_FORM_1))
        self.assertEqual(EXPECTED_RESULTS_1, parsed_1)
Exemplo n.º 2
0
def main():
    db = database.Database("/home/trow/library/catalog.sqlite3_db")

    def new_txn():
        # TODO(trow): Use a better /tmp directory.
        return import_transaction.ImportTransaction(db,
                                                    1,
                                                    timestamp.now(),
                                                    "/tmp/import",
                                                    dry_run=False)

    # TODO(trow): Use a better prefix.
    TARGET = "/home/trow/prefix"
    SIZE_LIMIT = 0.95 * (4 << 30)  # 95% of 4GB, our basic import size.
    txn = None

    dir_hash_map = load_dir_hash_map()
    form = bulk_tagging_form.parse_file(
        codecs.open("/home/trow/initial_import/form2.txt", "r", "utf-8"))
    verified = sorted(
        [x for x in form.iteritems() if x[1][0] == bulk_tagging_form.VERIFIED],
        key=lambda x: x[1])
    for i, (dir_hash, val) in enumerate(verified):
        code = val[0]
        if code != bulk_tagging_form.VERIFIED:
            continue
        path = dir_hash_map[dir_hash].encode("utf-8")
        _, artist, talb = val
        sys.stderr.write("%d of %d\n" % (i, len(verified)))
        sys.stderr.write("%s\n" % path)
        sys.stderr.write("Artist: %s\n" % artist.encode("utf-8"))
        if not txn:
            txn = new_txn()
        txn.add_album_from_directory(path, new_album_name=talb)
        if txn.total_size_in_bytes > SIZE_LIMIT:
            txn.commit(TARGET)
            txn = None

    if txn:
        txn.commit(TARGET)
def main():
    db = database.Database("/home/trow/library/catalog.sqlite3_db")
    
    def new_txn():
        # TODO(trow): Use a better /tmp directory.
        return import_transaction.ImportTransaction(db, 1, timestamp.now(),
                                                    "/tmp/import",
                                                    dry_run=False)
    # TODO(trow): Use a better prefix.
    TARGET = "/home/trow/prefix"
    SIZE_LIMIT = 0.95 * (4 << 30)  # 95% of 4GB, our basic import size.
    txn = None

    dir_hash_map = load_dir_hash_map()
    form = bulk_tagging_form.parse_file(
        codecs.open("/home/trow/initial_import/form2.txt", "r", "utf-8"))
    verified = sorted(
        [x for x in form.iteritems() if x[1][0] == bulk_tagging_form.VERIFIED],
        key = lambda x: x[1])
    for i, (dir_hash, val) in enumerate(verified):
        code = val[0]
        if code != bulk_tagging_form.VERIFIED:
            continue
        path = dir_hash_map[dir_hash].encode("utf-8")
        _, artist, talb = val
        sys.stderr.write("%d of %d\n" % (i, len(verified)))
        sys.stderr.write("%s\n" % path)
        sys.stderr.write("Artist: %s\n" % artist.encode("utf-8"))
        if not txn:
            txn = new_txn()
        txn.add_album_from_directory(path, new_album_name=talb)
        if txn.total_size_in_bytes > SIZE_LIMIT:
            txn.commit(TARGET)
            txn = None

    if txn:
        txn.commit(TARGET)