#!@PYTHON@
import sys
import getopt
+import subprocess
from sys import argv
try:
- import zbar
+ import zbar
except ImportError as e:
- print 'Cannot run gnunet-qr, please install zbar-python'
- sys.exit (1)
+ 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__':
- # Parse arguments
- try:
- opts, args = getopt.gnu_getopt(sys.argv[1:], "hd:", ["help", "device"])
- except getopt.GetoptError as e:
- help ()
- print str (e)
- exit (1)
-
- device = '/dev/video0'
- for o,a in opts:
- if o in ("-h", "--help"):
- help ()
- sys.exit (0)
- elif o in ("-d", "--device"):
- device = a
- # create a Processor
- proc = zbar.Processor()
+ 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')
+ # configure the Processor
+ proc.parse_config('enable')
- # initialize the Processor
- try:
- proc.init(device)
- except Exception as e:
- print 'Failed to open device ' + device
- exit (1)
-
- # enable the preview window
- proc.visible = True
-
- # read at least one barcode (or until window closed)
- try:
- 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
- print 'Found ', symbol.type, ' symbol ', '"%s"' % symbol.data
+ # 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)