From 3910f074ae5fc4169f19ef1cfbbedcefcae0dafe Mon Sep 17 00:00:00 2001 From: André Araújo Date: Wed, 14 Dec 2016 09:25:24 -0300 Subject: [PATCH] Atualiza endpoint do banco de sinais --- settings_local.py.tmpl | 3 ++- validador.py | 69 +++++++++++++++++++++++++++++++++++++++++++-------------------------- 2 files changed, 45 insertions(+), 27 deletions(-) diff --git a/settings_local.py.tmpl b/settings_local.py.tmpl index 3dd113c..bfd3ed4 100644 --- a/settings_local.py.tmpl +++ b/settings_local.py.tmpl @@ -1,4 +1,5 @@ # -*- coding: utf-8 -*- + # Validador Server Configuration SERVER_HOST = "localhost" SERVER_PORT = 8002 @@ -12,7 +13,7 @@ APACHE_STATIC_FILES_ENDPOINT = "/validador" # PyBossa Configuration PYBOSSA_APP_NAME = "Validador de Sinais" -PYBOSSA_APP_SHORT_NAME = "validador_sinais" +PYBOSSA_APP_SHORT_NAME = "validador_sinais" PYBOSSA_APP_DESCRIPTION = "Esse projeto possibilitará que especialistas aprovem sinais gerados pela comunidade." PYBOSSA_ENDPOINT = "http://localhost/pybossa" PYBOSSA_API_KEY = "my-api-key" \ No newline at end of file diff --git a/validador.py b/validador.py index cd2534c..376d80d 100644 --- a/validador.py +++ b/validador.py @@ -2,21 +2,20 @@ from flask import request, make_response from werkzeug import secure_filename import pbclient -import os import pyutil import requests -import tempfile + class Validador: def __init__(self, configuration, template_env): - self.config = configuration - self.env = template_env - self.__setup_pb_client() + self.config = configuration + self.env = template_env + self.__setup_pb_client() def __setup_pb_client(self): - pbclient.set('endpoint', self.config['PYBOSSA_ENDPOINT']) - pbclient.set('api_key', self.config['PYBOSSA_API_KEY']) + pbclient.set('endpoint', self.config['PYBOSSA_ENDPOINT']) + pbclient.set('api_key', self.config['PYBOSSA_API_KEY']) def __find_project(self, app_short_name): projects = pbclient.find_project(short_name=app_short_name) @@ -24,23 +23,26 @@ class Validador: def __setup_project(self, project): self.__update_project_info(project) - + def __create_tasks(self, project): test_signs = ["ENSINADO", "ENTANTO", "ENTENDIDO"] for sign in test_signs: video_ref = "/videos/" + sign + "_REF.webm" video_ava = "/videos/" + sign + "_AVATAR.webm" - task = dict(sign_name=sign, submission_date=pyutil.get_date_now(), - video_ref=video_ref, video_ava=video_ava) + task = dict( + sign_name=sign, + submission_date=pyutil.get_date_now(), + video_ref=video_ref, + video_ava=video_ava) pbclient.create_task(project.id, task) def __update_project_info(self, project): template = self.env.get_template('index.html') project.info['task_presenter'] = template.render( - server=self.config['HOST_STATIC_FILES_ENDPOINT'], - server_backend=self.config['HOST_ENDPOINT'], - app_shortname=self.config['PYBOSSA_APP_SHORT_NAME'], - api_db_host=self.config['API_DB_HOST']) + server=self.config['HOST_STATIC_FILES_ENDPOINT'], + server_backend=self.config['HOST_ENDPOINT'], + app_shortname=self.config['PYBOSSA_APP_SHORT_NAME'], + api_db_host=self.config['API_DB_HOST']) project.info['thumbnail'] = self.config['HOST_STATIC_FILES_ENDPOINT'] + "/img/thumbnail.png" project.info['sched'] = "incremental" project.info['published'] = True @@ -92,10 +94,10 @@ class Validador: return "The task with ID=" + str(task_id) + " was closed." def get_file(self, url, filename): - r = requests.get(url, stream = True) + r = requests.get(url, stream=True) if (r.status_code == 200): with open(filename, 'wb') as f: - for chunk in r.iter_content(chunk_size = 1024): + for chunk in r.iter_content(chunk_size=1024): if chunk: f.write(chunk) return True @@ -109,24 +111,39 @@ class Validador: number_of_approval = int(request.form['number_of_approval']) number_of_avatar_disapproval = int(request.form['number_of_avatar_disapproval']) number_of_ref_disapproval = int(request.form['number_of_ref_disapproval']) + # pyutil.log("[VALIDADOR] number_of_approval: %d" % (number_of_approval)) + # pyutil.log("[VALIDADOR] agreement_number: %d" % (agreement_number)) + # pyutil.log("[VALIDADOR] number_of_avatar_disapproval: %d" % (number_of_avatar_disapproval)) agreement_number = self.config['AGREEMENT_NUMBER'] result_msg = "" code = 200 selo = None if (number_of_approval >= agreement_number): selo = 2 - result_msg = "selo was changed to 2 - especialista" - elif(number_of_avatar_disapproval >= agreement_number): + elif (number_of_avatar_disapproval >= agreement_number): selo = 4 - result_msg = "selo was changed to 4 - invalido_especialista" - elif(number_of_ref_disapproval >= agreement_number): + elif (number_of_ref_disapproval >= agreement_number): selo = 6 - result_msg = "selo was changed to 6 - invalido_animadores" + + if (selo is None): + result_msg = "[VALIDADOR] The task with ID=" + str(task_id) + " didn't reach the agreement number yet." else: - result_msg = "The task with ID=" + str(task_id) + " didn't reach the agreement number yet." - if (selo != None): - values = { "nome": sign_name, "selo": selo, "wikilibras": True, "overwrite": True } - r = requests.post(("%s/gsinal" % (api_dbhost)), data = values) + body = { + "nome": sign_name, + "idtask": task_id, + "selo": selo + } + r = requests.put("%s/updateselo" % (api_dbhost), data=body) + code = r.status_code + if (code == 200): + tipo_selo = dict({ + 2: "especialista", + 4: "invalido_especialista", + 6: "invalido_animadores" + }) + pyutil.log("[VALIDADOR] selo was changed to: %d - %s" % (selo, tipo_selo[selo])) + else: + result_msg = r.text result_msg = self.__close_task(project_id, task_id) - pyutil.log(result_msg) + pyutil.log(str(result_msg).encode("UTF-8", errors="ignore")) return make_response(result_msg, code) -- libgit2 0.21.2