3
from common.weather import ASK_WEATHER_SKILL_FOR_HOMELAND_PHRASE
6
def skill_trigger_phrases():
7
return ["What is your name?", "Where are you from?", "Как тебя зовут?", "Откуда ты родом?"]
10
what_is_your_name_pattern = re.compile(
11
r"((what is|what's|whats|tell me|may i know|ask you for) your? name|what name would you like|"
12
r"как( я могу| могу)? (тебя|вас) (зовут|звать|называть)|какое (у тебя|твое|твоё) (имя|прозвище|название)|"
13
r"как к тебе обращаться)",
16
my_name_is_pattern = re.compile(
17
r"my (name is|name's)|call me|"
18
r"мо[её] (имя [а-яА-ЯЙйЁё]+|прозвище|название)|меня зовут|(зови|называй) меня|обращайся ко мне",
21
_is_not_re = r"(is not|isn't|was not|wasn't|have (not|never) been|haven't been|had (not|never) been|hadn't been)"
22
my_name_is_not_pattern = re.compile(
23
rf"(my (name {_is_not_re}|name's not)|(don't|not) call me|why do you call me|(that|this|it) {_is_not_re} my name|"
24
rf"меня зовут (не\b|не так|по-другому|иначе)|меня (не так|по-другому|иначе) зовут|не (зови|называй) меня|"
28
where_are_you_from_pattern = re.compile(
29
r"(where are you from|where you (were|was) born|"
30
r"(what is|what's|whats|tell me) your (home\s?land|mother\s?land|native\s?land|birth\s?place)|"
31
r"откуда ты( родом)?[.\?]?$|где ты (родился|вырос)[.\?]?$)",
34
my_origin_is_pattern = re.compile(
35
r"(my ((home\s?land|mother\s?land|native\s?land|birth\s?place) is|"
36
r"(home\s?land|mother\s?land|native\s?land|birth\s?place)'s)|(i was|i were) born in|i am from|i'm from|"
37
r"я родом из|я вырос(ла)? в\b|я родил(ась|ся) в\b)",
40
what_is_your_location_pattern = re.compile(
41
r"((what is|what's|whats|tell me) your? location|where do you live|where are you( now)?|is that where you live now|"
42
r"где ты (сейчас )?(жив[её]шь|проживаешь|находишься|[.\?]?$))",
45
my_location_is_pattern = re.compile(
46
r"(my (location is|location's)|(i am|i'm|i)( live| living)? in([a-zA-z ]+)?(now)|"
47
r"я (живу|проживаю|нахожусь) в\b)",
51
_name_re = r"((first |last |middle |second )?name)"
52
_tell_re = r"(told|said|gave|tells|says|gives)|((have|had) (told|said|given))"
53
_you_know_question_re = r"(do|did|can|could) you (know|find out|learn)|(have|had) you (known|found out|learned|learnt)"
54
_how_re = r"(how|where|when|from whom)"
55
_i_live_re = r"(i lived?|my (house|home) (is|was|have been)|my family live[sd]?)"
57
rf"({_how_re} {_you_know_question_re}|who {_tell_re} you|" rf"кто (сказал|рассказал)|откуда (ты )?знаешь)"
60
how_do_you_know_my_info_patterns = {
62
rf"{_how_do_you_know} (my {_name_re}|what is my {_name_re}|what my {_name_re} is|мо[её] имя|как меня зовут)",
65
"location": re.compile(
66
rf"{_how_do_you_know} (where {_i_live_re}|где я (живу|проживаю|нахожусь|сейчас))", re.IGNORECASE
68
"homeland": re.compile(rf"{_how_do_you_know} (where i am from|откуда я (родом)?|где я вырос(ла)?)", re.IGNORECASE),
71
_common_secret_re = r"(((it|this|that) is (a )?|^)(secret|private|confidential)|(это |^)секрет|не скажу)"
73
"name": re.compile(rf"{_common_secret_re}|\b(sur)?name is (a )?(secret|private|confidential)", re.IGNORECASE),
74
"location": re.compile(rf"{_common_secret_re}|location is (a )?(secret|private|confidential)", re.IGNORECASE),
75
"homeland": re.compile(rf"{_common_secret_re}", re.IGNORECASE),
78
BOT_DOESNT_KNOW_INFO_KEY = "bot_doesnt_know_info"
79
BOT_KNOWS_INFO_KEY = "bot_knows_info"
80
how_do_you_know_my_info_responses = {
82
BOT_DOESNT_KNOW_INFO_KEY: {
83
"EN": "Sorry, but I really do not know your name. Would you be so kind to tell me you name?",
84
"RU": "Извини, кажется, я еще не знаю, как тебя зовут. Если ты не против, скажи мне, как тебя зовут?",
87
"EN": "Ah, you have probably forgotten that you told me your name before. "
88
"Maybe you told me your name the last time we talked.",
89
"RU": "Кажется, я уже знаю твое имя из прошлых бесед.",
93
BOT_DOESNT_KNOW_INFO_KEY: {
94
"EN": "Sorry, but I really do not know where you live. Would tell me?",
95
"RU": "Извини, кажется я еще этого не знаю. Расскажешь мне, где ты живешь?",
98
"EN": "Ah, you have probably forgotten that you told me where you live before. "
99
"Maybe you told me this the last time we talked.",
100
"RU": "Кажется, я уже знаю, где ты живешь из прошлых бесед.",
104
BOT_DOESNT_KNOW_INFO_KEY: {
105
"EN": "Sorry, but I really do not know where you are from. So, where are you from? "
106
"I hope i am not tactless.",
107
"RU": "Извини, но я еще не знаю, откуда ты. Расскажи мне, откуда ты родом?",
109
BOT_KNOWS_INFO_KEY: {
110
"EN": "Ah, you have probably forgotten that you told me where you are from before. "
111
"Maybe you told me this the last time we talked",
112
"RU": "Кажется, я уже знаю, откуда ты, из прошлых бесед.",
116
MAX_READABLE_NAME_WORD_LEN = 20
117
NON_GEOGRAPHICAL_LOCATIONS_COMPILED_PATTERN = re.compile(
118
r"\b(hospital|school|work|home|car|train|train station|outdoors|bed|kitchen|bedroom|bathroom|"
119
r"basement|jail|prison|bath|больнице|школе|работе|дома|машине|поезде|станции|улице|кровати|"
120
r"кухне|спальне|ванной|ванне|гостиной|тюрьме)\b",
123
ASK_GEOGRAPHICAL_LOCATION_BECAUSE_USER_MISUNDERSTOOD_BOT = {
125
"EN": "Sorry, but I probably misheard you. "
126
"I am just curious to know the region or the city in which you were born.",
127
"RU": "Извини, кажется, я неверно поняла тебя. Мне просто было любопытно узнать, страну или город, откуда ты.",
130
"EN": "Sorry, but I probably misheard you. Could you please tell me in which city or region you are now?",
131
"RU": "Извини, кажется, я неверно поняла тебя. Я просто хотела спросить, в какой стране или городе ты живешь?",
137
"name": ["Nice to meet you, "],
138
"location": [ASK_WEATHER_SKILL_FOR_HOMELAND_PHRASE, "Cool!"],
139
"homeland": ["Is that where you live now?", "Cool!"],
142
"name": ["Приятно познакомиться, "],
143
"location": ["Мне всегда нравилось узнавать новое о человеке!", "Классно!"],
144
"homeland": ["А сейчас ты живешь в этом же месте?", "Круто!"],
148
REPEAT_INFO_PHRASES = {
150
"EN": "I didn't get your name. Could you, please, repeat it.",
151
"RU": "Ой, я не смогла распознать имя. Можешь, пожалуйста, повторить.",
154
"EN": "I didn't get your location. Could you, please, repeat it.",
155
"RU": "Ой, я не смогла распознать город или страну. Можешь, пожалуйста, повторить.",
158
"EN": "I didn't get where you have been born. Could you please repeat it?",
159
"RU": "Ой, я не смогла распознать город или страну. Можешь, пожалуйста, повторить.",
163
TELL_MY_COMPILED_PATTERNS = {
165
r"(what is|what's|whats|tell me|you know|you remember|memorize|say) my name|how( [a-zA-Z ]+)?call me|"
166
r"my name is what|you( can| could| shall| will)? tell my name|"
167
r"как меня зовут|как мо[её] имя|как ты меня назвал|ты знаешь мо[её] имя",
170
"location": re.compile(
171
r"((what is|what's|whats|tell me|you know|you remember|memorize|say) my (location|country|city|town)|"
172
r"where (am i|i am)(\snow)?|where( do)?i live|where( am)?i( am)? living)|(what|which) "
173
r"(country|city|town)( do)? (i|am i|i am)|"
174
r"где я( нахожусь| сейчас|[.\?]?$)",
177
"homeland": re.compile(
178
r"(what is|what's|whats|tell me|you know|you remember|memorize|say) "
179
r"my (home\s?land|mother\s?land|home\s?town|native\s?land|birth\s?place)|where (am i|i am) from|"
180
r"откуда я( родом)[.\?]?$|где я родил(ась|ся)[.\?]?$",
185
BOT_DOESNT_KNOW_USER_INFO_RESPONSES = {
187
"name": "Sorry, we are still not familiar. What is your name?",
188
"location": "Sorry, I don't have this information. But you can tell me. What is your location?",
189
"homeland": "Sorry, I don't have this information. But you can tell me. Where are you from?",
192
"name": "Извини, кажется, мы еще не знакомы. Как тебя зовут?",
193
"location": "Извини, у меня нет такой информации, но ты можешь мне рассказать об этом. Где ты живешь сейчас?",
194
"homeland": "Извини, у меня нет такой информации, но ты можешь мне рассказать об этом. Откуда ты родом?",
198
TELL_USER_HIS_INFO_RESPONSE = {"EN": "Your {which_info} is {info}.", "RU": "Твое {which_info} - {info}."}
201
"location": "место проживания",
202
"homeland": "место рождения",
205
ASK_USER_ABOUT_NAME_AGAIN_RESPONSE = {
206
"EN": "My bad. What is your name again?",
207
"RU": "Ой, извини. Как тебя зовут еще раз?",
210
AS_YOU_WISH_RESPONSE = {"EN": "As you wish.", "RU": "Как считаешь нужным."}
211
WHERE_DO_YOU_LIVE_NOW_RESPONSE = {"EN": "So, where do you live now?", "RU": "Так... А где ты сейчас живешь?"}
212
NEVER_HEARD_OF_NAME_RESPONSE = {"EN": "I've never heard about this name.", "RU": "Никогда не слышала такого имени."}