def dashboard_commands(): try: commands = request.form['commands'] commands = json.loads(base64.b64decode(commands)) approve = [] if "approve" in commands.keys(): approve = commands['approve'] reject = [] if "reject" in commands.keys(): reject = commands['reject'] # Deal with Approved Items for _item in approve: _categories = _item['categories'] IMAGE_URL = _item['image_url'] SOURCE_URI = _item['source_uri'] for _category in _categories: category_objects = Category.query.filter(Category.short_name == _category) for category_object in category_objects: related_projects = Project.query.filter(Project.category == category_object) for related_project in related_projects: # Start building Task Object _task_object = Task() _task_object.project_id = related_project.id # Build Info Object from whatever data we have _info_object = {} _info_object['image_url'] = IMAGE_URL _info_object['source_uri'] = SOURCE_URI _info_object['id'] = SOURCE_URI + "_" + \ ''.join(random.choice('0123456789ABCDEF') for i in range(16)) _task_object.info = _info_object print _task_object print _info_object db.session.add(_task_object) db.session.commit() # Delete from GEOTAGX-SOURCERER-HASHQUEUE sentinel.slave.hdel("GEOTAGX-SOURCERER-HASHQUEUE", IMAGE_URL) # Deal with rejected items for _item in reject: #Directly delete from GEOTAGX-SOURCERER-HASHQUEUE IMAGE_URL = _item['image_url'] sentinel.slave.hdel("GEOTAGX-SOURCERER-HASHQUEUE", IMAGE_URL) _result = { "result" : "SUCCESS" } return jsonify(_result) except Exception as e: _result = { "result" : "ERROR", } return jsonify(_result)
def add_task(project): store_questions(project) project_id=project.id project_path=session["zzz"] if(session.get("question") is not None): for i in ["images","videos","documents","audios"]: if os.path.exists(project_path+"/"+i): print "in if" for file in os.listdir(project_path+"/"+i): p=os.path.join(project_path+"/"+i,file) p=p[p.rfind("uploads"):] print p dictobj={"type":i,"url":"/"+p,"subtype":file.rsplit('.',1)[1].lower()} s=json.dumps(dictobj) #print s.type task = Task(project_id=project_id) task.info=dictobj task_repo.save(task) session.pop('question', None)
def timer_function(): #Continue code here image_source = sentinel.slave.lpop("GEOTAGX-SOURCERER-QUEUE") if image_source: split_image_source = image_source.split(DELIMITER) base64Data = split_image_source[-1] decodedJSONString = base64.b64decode(base64Data) parsedJSONObject = json.loads(decodedJSONString) if parsedJSONObject['source'] == 'geotagx-chrome-sourcerer': #Handle Chrome Sourcerer #TODO : Refactor into an OOP based implementation SOURCE_URI = parsedJSONObject['source_uri'] IMAGE_URL = parsedJSONObject['image_url'] for category in parsedJSONObject['categories']: category_objects = Category.query.filter( Category.short_name == category) for category_object in category_objects: related_projects = Project.query.filter( Project.category == category_object) for related_project in related_projects: # Start building Task Object _task_object = Task() _task_object.project_id = related_project.id # Build Info Object from whatever data we have _info_object = {} _info_object['image_url'] = IMAGE_URL _info_object['source_uri'] = SOURCE_URI _info_object['id'] = parsedJSONObject['source'] + "_" + \ ''.join(random.choice('0123456789ABCDEF') for i in range(16)) _task_object.info = _info_object db.session.add(_task_object) db.session.commit() print _now(), _task_object else: print _now(), "GEOTAGX-SOURCERER-QUEUE Empty....."
def timer_function(): #Continue code here image_source = sentinel.slave.lpop("GEOTAGX-SOURCERER-QUEUE") if image_source: split_image_source = image_source.split(DELIMITER) base64Data = split_image_source[-1] decodedJSONString = base64.b64decode(base64Data) parsedJSONObject = json.loads(decodedJSONString) if parsedJSONObject['source'] == 'geotagx-chrome-sourcerer': #Handle Chrome Sourcerer #TODO : Refactor into an OOP based implementation SOURCE_URI = parsedJSONObject['source_uri'] IMAGE_URL = parsedJSONObject['image_url'] for category in parsedJSONObject['categories']: category_objects = Category.query.filter(Category.short_name == category) for category_object in category_objects: related_projects = Project.query.filter(Project.category == category_object) for related_project in related_projects: # Start building Task Object _task_object = Task() _task_object.project_id = related_project.id # Build Info Object from whatever data we have _info_object = {} _info_object['image_url'] = IMAGE_URL _info_object['source_uri'] = SOURCE_URI _info_object['id'] = parsedJSONObject['source'] + "_" + \ ''.join(random.choice('0123456789ABCDEF') for i in range(16)) _task_object.info = _info_object db.session.add(_task_object) db.session.commit() print _now(), _task_object else: print _now(), "GEOTAGX-SOURCERER-QUEUE Empty....."