#!@PYTHON@ import sys import getopt import subprocess from sys import argv try: import zbar except ImportError as e: print('Cannot run gnunet-qr, please install zbar-python') sys.exit(1) def help(): print('gnunet-qr\n\ Scan a QR code using a video device and import\n\ Arguments mandatory for long options are also mandatory for short options.\n\ -c, --config=FILENAME use configuration file FILENAME\n\ -d, --device=DEVICE use device DEVICE\n\ -s, --silent do not show preview windows\n\ -h, --help print this help\n\ -v, --verbose be verbose\n\ Report bugs to gnunet-developers@gnu.org.\n\ GNUnet home page: http://www.gnu.org/software/gnunet/\n\ General help using GNU software: http://www.gnu.org/gethelp/') if __name__ == '__main__': configuration = '' device = '/dev/video0' url = '' verbose = False silent = False # Parse arguments try: opts, args = getopt.gnu_getopt(sys.argv[1:], "c:hd:sv", ["config", "help", "device", "silent", "verbose"]) except getopt.GetoptError as e: help() print(str(e)) exit(1) for o, a in opts: if o in ("-h", "--help"): help() sys.exit(0) elif o in ("-c", "--config"): configuration = a elif o in ("-d", "--device"): device = a elif o in ("-s", "--silent"): silent = True elif o in ("-v", "--verbose"): verbose = True if (True == verbose): print('Initializing') # create a Processor proc = zbar.Processor() # configure the Processor proc.parse_config('enable') # initialize the Processor try: if (True == verbose): print('Opening video device ' + device) proc.init(device) except Exception as e: print('Failed to open device ' + device) exit(1) # enable the preview window # if (True == silent): # proc.visible = True # else: # proc.visible = False proc.visible = True # read at least one barcode (or until window closed) try: if (True == verbose): print('Capturing') proc.process_one() except Exception as e: # Window was closed without finding code exit(1) # hide the preview window proc.visible = False # extract results for symbol in proc.results: # do something useful with results if (True == verbose): print('Found ', symbol.type, ' symbol ', '"%s"' % symbol.data) args = list() args.append("gnunet-uri") if (configuration != ''): args.append(str("-c " + str(configuration))) args.append(str(symbol.data)) cmd = '' for a in args: cmd += " " + str(a) if (verbose): print('Running `' + cmd +'`') res=subprocess.call(args) if (0 != res): print('Failed to add URI ' + str(symbol.data)) else: print('Added URI ' + str(symbol.data)) exit(res) exit(1)