def api_completions(task_id): """ Delete or save completion to output_dir with the same name as task_id """ global c if request.method == 'POST': completion = request.json completion.pop('state', None) # remove editor state db.save_completion(task_id, completion) log.info(msg='Completion saved', extra={ 'task_id': task_id, 'output': request.json }) return answer(201, 'ok') elif request.method == 'DELETE': if c.get('allow_delete_completions', False): db.delete_completion(task_id) return answer(204, 'deleted') else: return answer( 422, 'Completion removing is not allowed in server config') else: return answer(500, 'Incorrect request method')
def home(): if request.method == "GET": return render_template("home.html") else: query = request.form['query'] answers = utils.answer(query) return render_template("answer.html", answers = answers, query=query)
def api_completion_rewrite(task_id, completion_id): """ Rewrite existing completion with patch. This is technical api call for editor testing only. It's used for Rewrite button in editor. """ global c completion = request.json assert task_id == completion_id, \ f'Task ID != Completion ID, {task_id} != {completion_id}' completion.pop('state', None) # remove editor state db.save_completion(task_id, completion) log.info(msg='Completion saved', extra={'task_id': task_id, 'output': request.json}) return answer(201, 'ok')
def api_build_sentiment(): """ Main service function: build sentiment analysis plot by query keyword. 1. Get tweets and replies from database 2. Send replies to Heartex predict to get sentiment scores 3. Process predictions to plots :return: json with plot data """ query = request.args['query'] if len(query) < 2: return answer(422, 'small request', None) start_date = request.args['start_date'] log.info('New query: %s' % str(request.args)) tweets = get_tweets_from_database(query, start_date) log.info('Tweets found in DB %i' % len(tweets)) if len(tweets) == 0: return answer(400, 'no tweets found in DB') output = heartex_build_plot(tweets) log.info('Heartex prediction completed') return answer(200, 'ok', output)
def answer(self, question): return utils.answer(self, question, "fantom")
def api_get_smart_filters(): smart_filters = c['heartex'].get('smart_filters', []) return answer(200, 'ok', smart_filters)
def answer(self, question): return utils.answer(self, question, "inspector")
def answer(message): if message.chat.id != config.group_id: config.the_bot.forward_message(config.group_id, message.chat.id, message.message_id) utils.answer(message)
def index(): if request.method == "GET": return render_template("index.html", answer="") else: query = request.form["query"] return render_template("index.html", answer=utils.answer(query))