def main(argv): try: opts, args = getopt.getopt( argv[1:], "h:a:d:lA:D:L", ["help", "add-device=", "list-devices", "delete-device=", "add-plate=", "list-plates", "delete-plate="], ) if not opts: raise getopt.GetoptError("Se esperaba un parametro") env = bootstrap(path.dirname(path.realpath(__file__)) + "/condor.ini") initialize_sql(env["registry"].settings) for opt, arg in opts: if opt in ("-a", "--add-device"): devargs = arg.split(",") dev = Device(devargs[0], devargs[1], devargs[2]) existing = DBSession.query(Device).filter_by(instream=dev.instream).count() if not existing: DBSession.add(dev) transaction.commit() else: print("Ya existe ese dispositivo en la base") elif opt in ("-A", "--add-plate"): plate = Plate() plate.code = arg existing = DBSession.query(Plate).filter_by(code=arg).count() if not existing: DBSession.add(plate) transaction.commit() else: print("Ya existe esa placa en la base") elif opt in ("-l", "--list-devices"): devices = DBSession.query(Device).all() for d in devices: print(d) elif opt in ("-D", "--delete-plate"): DBSession.query(Plate).filter_by(code=arg).delete() elif opt in ("-L", "--list-plates"): plates = DBSession.query(Plate).all() for p in plates: print(p) else: print("Sorry, not implemented") except getopt.GetoptError: print(usage()) sys.exit(2)
def save(self, img, code, stats): stats.detected() if self.dev.logging: log.debug("loging capture to db") transaction.begin() plate = Plate.findBy(code) if plate.active: self.src.alarm() plate.log() transaction.commit() ts = datetime.now().strftime("%Y%m%d-%H%M%S") log.save_image(img,code+ts,'log/') if img.filename: real = path.splitext(path.basename(img.filename))[0].upper() output = code.upper().replace(" ","")[:6] if output == real[:6]: log.debug("\033[92m" + output + ": OK \033[0m") stats.found() else: log.debug(real[:6] + ": " + output)