Exemple #1
0
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')
Exemple #2
0
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)
Exemple #3
0
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)
Exemple #5
0
 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")
Exemple #8
0
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)
Exemple #9
0
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))