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)
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)
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)
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 [эмоция]. Вам нужно выбрать одну из этих эмоций: грусть, гнев, страх, радость, вина' )
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)
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)
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)
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) ])) ])
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)