def loadBiblioDataFile(lines, storage):
    try:
        while True:
            fullKey = lines.next()
            prefix, key = fullKey[0], fullKey[2:].strip()
            if prefix == "d":
                b = {
                    "linkText": lines.next(),
                    "date": lines.next(),
                    "status": lines.next(),
                    "title": lines.next(),
                    "dated_url": lines.next(),
                    "current_url": lines.next(),
                    "other": lines.next(),
                    "etAl": lines.next() != "\n",
                    "order": 3,
                    "biblioFormat": "dict",
                    "authors": []
                }
                while True:
                    line = lines.next()
                    if line == b"-\n":
                        break
                    b['authors'].append(line)
            elif prefix == "s":
                b = {
                    "linkText": lines.next(),
                    "data": lines.next(),
                    "biblioFormat": "string",
                    "order": 3
                }
                line = lines.next() # Eat the -
            elif prefix == "a":
                b = {
                    "linkText": lines.next(),
                    "aliasOf": lines.next(),
                    "biblioFormat": "alias",
                    "order": 3
                }
                line = lines.next() # Eat the -
            else:
                die("Unknown biblio prefix '{0}' on key '{1}'", prefix, fullKey)
                continue
            storage[key].append(b)
    except __HOLE__:
        pass
dataset/ETHPy150Open tabatkins/bikeshed/bikeshed/biblio.py/loadBiblioDataFile