def scanDevices(self): #look up our data data = {} data['bots'] = hive.scanBots() data['cameras'] = hive.scanCameras() scanData = json.dumps(data) if scanData != self.lastScanData: self.lastScanData = scanData self.log.info("Device Scan Results: %s" % data) #pull in images from the webcams and save them as base64 camera_files = [] if len(data['cameras']): for idx, camera in enumerate(data['cameras']): outfile = camera['name'] + '.jpg' try: if hive.takePicture(camera['device'], watermark=None, output=outfile): camera_files.append(outfile) except Exception as ex: self.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 hive.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