Exemplo n.º 1
0
def diary_all(message):
    data.new(message.from_user.id)
    check.new(message.from_user.id)
    start, end = diary.get_week_diary(message.from_user.id)
    all_ = diary.get_notes(start, end, message.from_user.id)
    if all_[0][0] != None:
        res = ''
        date = 1
        for day in all_:
            day_of_week = day[0]
            bot.send_message(message.from_user.id,
                             "Итак, твои записи за все время:",
                             reply_markup=keyboard)
            bot.send_message(message.from_user.id,
                             f"День {date}, {day_of_week} :",
                             reply_markup=keyboard)
            date += 1
            for i in range(1, len(day)):
                string = ''
                emotion, sit = str(day[i][0][0]), str(day[i][0][1])
                string = f'Ты испытал {emotion} в данной ситуации: \n {sit} \n' + '\n'
                res += string
    else:
        res = 'О, ты еще не делал записей! Ты всегда можешь это сделать командой "/note"'

    bot.send_message(message.from_user.id, res, reply_markup=keyboard)
Exemplo n.º 2
0
def commands(message):
    data.new(message.from_user.id)
    check.new(message.from_user.id)
    bot.send_message(
        message.from_user.id,
        'Итак, все возможности бота \n Основные функции: \n 1. /note [эмоция]. Делает новую запись в дневнике эмоций. Вам необходимо выбрать одну из этих эмоций: грусть, гнев, страх, радость, вина \n 2. /utc [время]. Настройка времени в формате UTC. Например, для Москвы необходимо будет написать "/utc +3". По умолчанию стоит время по Москве \n 3. /diary_week. Вам присылаются записи дневника за последние 7 дней, а так же возможные советы исходя из его анализа \n 4. /diary_all. Вам присылаются записи дневника за все время \n Фишки: \n 5. /diary_last. Вам присылаются записи дневника за последний день \n Фишки: \n 1. Просто напишите любой топоним - я найду, что ответить! \n 2. Напишите слово или фразу, включающее слово "мем", я пришлю что-ниюудь смешное из 2014 \n 3. Напишите слово или фразу, включающее слово "шутка" \n 4. Мы можем сыграть в камень-ножницы-бумагу, просто напиши название игры и игрв начнется! \n 5. Ты можешь просто делиться мыслями со мной, я попробую понять тебя \n 6. Два раза в неделю я анализирую твой дневник и, возможно, укажу на неприятности',
        reply_markup=keyboard)
Exemplo n.º 3
0
def welcome(
        message):  # приветствие, а также создание в базе нового пользователя
    data.new(message.from_user.id)
    check.new(message.from_user.id)
    bot.send_message(
        message.chat.id,
        'Привет, {}! Я Длиннохвостик - веселый питон {}, а что самое интересное, я написан на Python, как иронично) \n Я могу стать отличным собеседником, могу рассказать шутку, мы можем поиграть в камень-ножницы-бумагу, отправить мем прямиком из 2014 или оценить вашу фотографию. Но моя главная функция - ведение дневника эмоций, а также их анализ. Советую сразу написать команду "/help", чтобы больше узнать, что и как писать. Надеюсь, что вам со мной будет интересно) {}'
        .format(message.from_user.first_name, e.snake, e.celebrate),
        reply_markup=keyboard)
    bot.send_message(
        message.from_user.id,
        'Точно, я чуть не забыл! Пожалуйста, напиши команду "/utc [свой часовой пояс в формате UTC]", чтобы я мог нормально тебе присылать сообщения. Например, "/utc +3" для Москвы. Еще увидимся! Если возникнут вопросы, просто пиши "/help"',
        reply_markup=keyboard)
Exemplo n.º 4
0
def diary_note(message):  # записывает в базу новую запись в дневник
    data.new(message.from_user.id)
    check.new(message.from_user.id)
    m = str(message.text)[6:].lower()
    us = message.from_user.id
    if m in ['вина', 'радость', 'грусть', 'гнев', 'страх']:
        diary.new_emotion(us, m)
        data.situation(us, 1)
        bot.send_message(
            us,
            'Отлично! Ты молодец, а теперь опиши ситуацию, когда ты это испытал',
            reply_markup=keyboard)
    else:
        bot.send_message(
            us,
            'Неправильно. Необходимо писать так: \n  /note [эмоция]. Вам нужно выбрать одну из этих эмоций: грусть, гнев, страх, радость, вина'
        )
Exemplo n.º 5
0
def diary_all(message):
    data.new(message.from_user.id)
    check.new(message.from_user.id)
    day = diary.get_diary_day(message.from_user.id)
    if day:
        res = ''
        bot.send_message(message.from_user.id,
                         f"Итак, твои записи за день:",
                         reply_markup=keyboard)
        for i in range(0, len(day)):
            string = ''
            emotion, sit = str(day[i][0]), str(day[i][1])
            string = f'Ты испытал {emotion} в данной ситуации: \n {sit} \n' + '\n'
            res += string
    else:
        res = 'О, ты еще не сделал записей за сегодня! Ты всегда можешь это сделать командой "/note"'

    bot.send_message(message.from_user.id, res, reply_markup=keyboard)
Exemplo n.º 6
0
def change_utc(message):
    data.new(message.from_user.id)
    check.new(message.from_user.id)
    m = message.text
    try:
        op = m[5]
        time = int(m[5:])
        if (time > -13) and (time < 15) and (op == '+' or op == '-'):
            data.utc(time, message.from_user.id)
            bot.send_message(message.from_user.id,
                             "Часовой пояс установлен",
                             reply_markup=keyboard)
        else:
            bot.send_message(message.from_user.id,
                             "Введен неправильный формат времени!",
                             reply_markup=keyboard)
    except:
        bot.send_message(message.from_user.id,
                         "Введен неправильный формат времени!",
                         reply_markup=keyboard)
Exemplo n.º 7
0
def diary_week(message):  # присылает дневник за неделю
    data.new(message.from_user.id)
    check.new(message.from_user.id)
    start, end = diary.get_week_diary(message.from_user.id)
    week = diary.get_notes(start, end, message.from_user.id)
    if week[0][0] != None:
        res = ''
        for day in week:
            day_of_week = day[0]
            bot.send_message(message.from_user.id,
                             "Итак, твои записи за неделю:",
                             reply_markup=keyboard)
            bot.send_message(message.from_user.id,
                             day_of_week.capitalize() + ":",
                             reply_markup=keyboard)
            for i in range(1, len(day)):
                string = ''
                emotion, sit = str(day[i][0][0]), str(day[i][0][1])
                string = f'Ты испытал {emotion} в данной ситуации: + \n {sit} \n + \n'
                res += string
    else:
        res = 'О, ты еще не сделал записей на этой неделе! Ты ысегда можешь это сделать командой "/note"'

    bot.send_message(message.from_user.id, res, reply_markup=keyboard)
Exemplo n.º 8
0
def update_output(input):
    query = str(input)
    if (query == 'None'):
        return html.Div(children=[])
    else:
        # quick stats
        hot_df = data.hot(query)
        new_df = data.new(query)
        name = data.name(query)
        description = data.description(query)
        num_subscribers = data.num_subscribers(query)
        time_created = data.time_created(query)
        top_users_day_df = data.top_users(query, 'day')

        # toxicity
        list = toxicity.toxicity_percentage(query, 1)
        # list = ['0.0572013675', '0.032554077'] # to prevent reaching quota
        tox_score = list[0][0:5]
        profanity_score = list[1]
        insult_score = list[2]
        identity_score = list[3]
        threat_score = list[4]
        sexually_exp_score = list[5]
        fig = bar_graph(list)

        return html.Div(children=[
            html.Div(
                className="parent_left",
                children=html.Div(
                    className="quick_stats",
                    children=[
                        html.H2('quick stats'),

                        # subreddit basic info
                        html.Div('Welcome to ', className='div_no_new_line'),
                        html.A('r/' + name,
                               href='https://www.reddit.com/r/' + name,
                               className="no_newline",
                               target="_blank"),
                        html.Div(description),
                        html.Div(str(num_subscribers) + ' subscribers'),
                        html.Div('Created ' + time_created),

                        # hot posts
                        html.H3('hot posts'),
                        generate_list(hot_df),

                        # top posts
                        html.H3('new posts'),
                        generate_list(new_df),

                        # top users of the day
                        html.H3('top users'),
                        generate_table(top_users_day_df)
                    ])),
            html.Div(className="parent_right",
                     children=html.Div(className="main",
                                       children=[
                                           html.H2("toxicity"),
                                           html.H1(tox_score),
                                           dcc.Graph(id='attribute-fig',
                                                     figure=fig)
                                       ]))
        ])
Exemplo n.º 9
0
def dialog(message):  # проверки сообщения
    data.new(message.from_user.id)
    check.new(message.from_user.id)
    us = message.from_user.id
    m = str(message.text).lower()
    if ("шутк" in m) or ("шуте"
                         in m) or ("прикол" in m) and ("прикольно" not in m):
        joke = f.jokes()
        bot.send_message(us, joke, reply_markup=keyboard)

    elif 'мем' in m or '2014' in m or 'смеш' in m:
        mem = f.send_mem()
        bot.send_photo(us, mem, reply_markup=keyboard)
    elif 'камень-ножницы-бумаг' in m or 'играть' in m:
        data.game(us, 1)
        bot.send_message(
            us,
            'Выбирай! Если больше не хочешь играть, скажи "хватит" ' + e.smile,
            reply_markup=game_keyboard)

    elif data.get_game(us) and f.from_e_to_game(m):
        res = f.game(f.from_e_to_game(m))
        bot.send_message(us,
                         res + '\n' + "Сыграем еще?)",
                         reply_markup=game_keyboard)

    elif data.get_game(us) and m == "да":
        data.game(us, 1)

    elif data.get_game(us) and m == "хватит":
        bot.send_message(us,
                         'Хорошо, больше не будем играть',
                         reply_markup=keyboard)
        data.game(us, 0)

    elif data.get_game(us):
        bot.send_message(
            us,
            "Ты ввел что-то неправильно, повтори пожалуйста. Если надоело, просто напиши 'хватит'",
            reply_markup=game_keyboard)

    elif data.get_situation(us):
        diary.situation(us, m)
        bot.send_message(
            us,
            'Отлично, ты сделал запись в нашем дневнике! Ты можешь сделать еще одну, написав "/note"',
            reply_markup=keyboard)

    elif f.place(m):
        bot.send_message(us, f.place(m), reply_markup=keyboard)

    elif not ans.analysis_sentiment(ans.analysis_data([m])):
        bot.send_message(
            us,
            'Поменьше негатива, пожалуйста. Можешь записать это в дневник, кстати!',
            reply_markup=keyboard)

    elif ans.analysis_sentiment(m):
        callback = f.normal()
        bot.send_message(us, callback, reply_markup=keyboard)

    else:
        bot.send_message(us, "хммммм", reply_markup=keyboard)