import os
os.system('color 02')
import datetime as dt        # вызвали модуль и назвали его как захотели
import time

DATABASE = {
    'Сергей': 'Омск',
    'Соня': 'Москва',
    'Алексей': 'Калининград',
    'Миша': 'Москва',
    'Дима': 'Челябинск',
    'Алина': 'Красноярск',
    'Егор': 'Пермь',
    'Коля': 'Красноярск',
    'Артём': 'Владивосток',
    'Петя': 'Михайловка'
}

UTC_OFFSET = {
    'Москва': 3,
    'Санкт-Петербург': 3,
    'Новосибирск': 7,
    'Екатеринбург': 5,
    'Нижний Новгород': 3,
    'Казань': 3,
    'Челябинск': 5,
    'Омск': 6,
    'Самара': 4,
    'Ростов-на-Дону': 3,
    'Уфа': 5,
    'Красноярск': 7,
    'Воронеж': 3,
    'Пермь': 5,
    'Волгоград': 4,
    'Краснодар': 3,
    'Калининград': 2,
    'Владивосток': 10
}

def add_friend():
    print("Напиши его имя и где он живёт")
    name = str(input())
    city = str(input())
    DATABASE[name] = city

def format_count_friends(count_friends):
    if count_friends == 1:
        return '1 друг'
    elif 2 <= count_friends <= 4:
        return f'{count_friends} друга'
    else:
        return f'{count_friends} друзей'


def light_time():                 # засечь время
    print("Сколько секунд?")
    sec = int(input())
    print("Засекла")
    time.sleep(sec)


def what_time(city):               # выдать время
    offset = UTC_OFFSET[city]
    city_time = dt.datetime.utcnow() + dt.timedelta(hours=offset)
    f_time = city_time.strftime("%H:%M")
    return f_time


def process_anfisa(query):          # работа с Анфисой
    if query == 'сколько у меня друзей?':
        count_string = format_count_friends(len(DATABASE))
        return f'У тебя {count_string}'
    elif query == "засеки время":
        light_time()
        return "Время!"
    elif query == 'кто все мои друзья?':
        friends_string = ', '.join(DATABASE.keys())
        return f'Твои друзья: {friends_string}'
    elif query == 'где все мои друзья?':
        unique_cities = set(DATABASE.values())
        cities_string = ', '.join(unique_cities)
        return f'Твои друзья в городах: {cities_string}'
    elif query == "который час?":
        return f"Сейчас {what_time('Москва')}"
    elif query == "добавь друга":
        add_friend()
        return "База пополнена"
    elif query == "пошли Артема в жопу" or query == "Артем приперся":
        return "Артем, иди в жопу, учи уроки!"
    else:
        return '<неизвестный запрос>'


def process_friend(name, query):          # работа с другом
    if name in DATABASE:
        city = DATABASE[name]
        if query == 'ты где?':
            return f'{name} в городе {city}'
        elif query == "который час?":
            if city in UTC_OFFSET:
                return f"Там сейчас {what_time(city)}"
            else:
                return f"<не могу определить время в городе {city}>"
        else:
            return '<неизвестный запрос>'
    else:
        return f'У тебя нет друга по имени {name}'


def process_query(query):             # обработка запроса
    tokens = query.split(', ')
    name = tokens[0]
    if name == "help":
        a1 = "Запросы примерно такие:"
        a2 = "Анфиса, сколько у меня друзей?"
        a3 = "Анфиса, кто все мои друзья?"
        a4 = "Анфиса, кто все мои друзья?"
        a5 = "Сначала напиши мое имя (или имя своего друга),"
        a6 = "потом напиши запятую и пробел,"
        a7 = "а дальше задавай вопрос."
        a8 = "Ты можешь узнать:"
        a9 = "сколько у тебя друзей"
        a10 = "кто все твои друзья"
        a11 = "где все твои друзья"
        a12 = "который час"
        a13 = "а также ты можешь засечь время."
        a = [a1, a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12, a13]
        return "\n".join(a)
    elif name == "Спасибо":
        return "Не за что)"
    elif name == 'Анфиса':
        return process_anfisa(tokens[1])
    else:
        return process_friend(name, tokens[1])


def runner():                   # main прога
    print("Привет, меня зовут Анфиса.\nСвои данные ты можешь вбить в код, пока программа недоработана. \nЯ тебе их выдам, если спросишь")
    time.sleep(2)
    print("Есть несколько запросов ко мне: введи help, чтобы узнать их")
    time.sleep(2)
    print("Приятной работы!")
    while True:
        query = input()
        print(process_query(query))


runner()
