Exemplo n.º 1
0
        print('Unknown option: ' + arg, file=sys.stdout)
        sys.exit(1)
    elif config.has_plag(arg):
        plagnames.append(arg)
    else:
        print('Unknown plag: ' + arg, file=sys.stdout)
        sys.exit(1)

try:
    for plagname in plagnames:
        print(plagname)
        plag = config.get_plag(plagname)
        if not plag.barcode:
            print('Error: ' + plagname + ' has no barcode page')
            continue
        with config.create_plag_client(plagname) as client:
            barcode_text = client.get_page_text(plag.barcode)
            if barcode_text is None:
                print('Error: Unable to load barcode page for ' + plagname, file=sys.stderr)
                continue
            #pprint.pprint(barcode_text)
            # remove HTML comments
            barcode_text = re.sub('<!--.*?-->', '', barcode_text)
            # find correct section in barcode page
            barcode_match = re.search(r'^==\s*Seiten, die aktuell im Barcode sind\s*==$(?:(?!==).)*?(\d(?:\d|,|\n|<br\s*/>|\$)*)', barcode_text, re.MULTILINE | re.UNICODE | re.DOTALL)
            if not barcode_match:
                print('Error: Unable to parse barcode page!')
            barcode_matchtext = re.sub(r'<br\s*/>|\n|\$', '', barcode_match.group(1))
            #pprint.pprint(barcode_matchtext)
            barcode_numbers = [int(x) for x in barcode_matchtext.split(',')
                               if re.match('\d+', x)]