def scanDevices(self): # look up our data data = {} data['bots'] = hive.scanBots() data['cameras'] = camera_control.scanCameras() scanData = json.dumps(data) if scanData != self.lastScanData or (self.lastImageTime + 60 < time.time()): self.lastScanData = scanData camera_files = [] if len(data['cameras']): for idx, camera in enumerate(data['cameras']): outfile = camera['name'] + '.jpg' try: if camera_control.takePicture(camera['device'], watermark=None, output=outfile): self.lastImageTime = time.time() fullImgPath = hive.getImageDirectory(outfile) camera_files.append(fullImgPath) except Exception as ex: self.log.exception(ex) # now update the main site self.api.sendDeviceScanResults(data, camera_files)
def takePicture(self, filename): # create our command to do the webcam image grabbing try: # do we even have a webcam config setup? if 'webcam' in self.config: if self.data['status'] == 'working': watermark = "%s :: %0.2f%% :: BotQueue.com" % ( self.config['name'], float(self.data['job']['progress']) ) else: watermark = "%s :: BotQueue.com" % self.config['name'] device = self.config['webcam']['device'] brightness = 50 if 'brightness' in self.config['webcam']: brightness = self.config['webcam']['brightness'] contrast = 50 if 'contrast' in self.config['webcam']: contrast = self.config['webcam']['contrast'] return camera_control.takePicture(device=device, watermark=watermark, output=filename, brightness=brightness, contrast=contrast) else: return False # main try/catch block except Exception as ex: self.exception(ex) return False