Exemplo n.º 1
0
def get_search_result():
    user_id, sex, age_from, age_to = ask_params()
    user = VKUser(user_id)
    user.get_user_data()
    if user.error == token_error:
        print('Неправильный токен, попробуйте еще раз')
    elif user.error == user_ban_del_error:
        print('Пользователь удален или забанен')
    elif user.error == user_existance:
        print('Пользователь не существует')
    else:
        update_params(user)
        print(f'Поиск по совпадениям по id {user.user_id}')
        offset = get_offset()
        search_results = user.search_users(sex, age_from, age_to, offset)[1]
        update_offset(offset)
        print('Scoring users')
        score_users(user, search_results)
        print('Получение топ совпадений')
        top_matches = get_top_matches(search_results)
        print('Подготвливаем результат')
        result = prepare_result(top_matches)
        print('Сохраняем в базу данных')
        print('Успешно завершено')
        print_result(result)
Exemplo n.º 2
0
def get_search_result():
    user_id, sex, age_from, age_to = ask_params()
    user = VKUser(user_id)
    user.get_user_data()
    if user.error is 5:
        print('Invalid token given. Try again')
    elif user.error is 18:
        print('This user was deleted or banned')
    elif user.error is 113:
        print('User does not exist. Try again')
    else:
        update_params(user)
        print(f'Searching for matches based on ID {user.user_id}')
        offset = get_offset()
        search_results = user.search_users(sex, age_from, age_to, offset)[1]
        update_offset(offset)
        print('Scoring users')
        score_users(user, search_results)
        print('Getting top matches')
        top_matches = get_top_matches(search_results)
        print('Preparing result')
        result = prepare_result(top_matches)
        print('Saving to database')
        print('Finished successfully')
        print_result(result)
        json_writer(result)
Exemplo n.º 3
0
class VKUserTestCase(unittest.TestCase):
    def setUp(self):
        self.user = VKUser('1')
        self.user_data = self.user.get_user_data()

    def test_user_id_isdigit(self):
        value = self.user.user_id.isdigit()
        self.assertTrue(value, 'User ID is not a number')

    def test_user_data_is_dict(self):
        self.assertIsInstance(self.user_data, dict,
                              'User_data is not a dict type')

    def test_get_groups_is_list(self):
        value = self.user.get_groups()
        self.assertIsInstance(value, list, 'User groups are not type list')

    def test_get_photos_is_list(self):
        value = self.user.get_photos()
        self.assertIsInstance(value, list, 'User groups is not type list')

    def test_search_results_is_list(self):
        value = self.user.search_users(0, 20, 50, 0)
        self.assertIsInstance(value[1], list,
                              'Search results is not type list')

    def test_search_results_are_instances(self):
        value = self.user.search_users(0, 20, 50, 0)
        self.assertIsInstance(value[1][0], VKUser,
                              'Search results are not instances of VKUser')
Exemplo n.º 4
0
def prepare_data(input_id, unique_groups):
    result = list()

    unique_groups_data = VKUser(input_id).get_groups_data(unique_groups)['response']

    for group in unique_groups_data:
        try:
            created_group_data = create_group_data(group)
            result.append(created_group_data)
        except KeyError:
            group_conflict = group['id']
            print(f'Не удалось получить информацию о группе с ID {group_conflict} (группа удалена).')
    return result
Exemplo n.º 5
0
def get_friends_groups(friends_list):
    friends_groups = set()

    for item, friend_id in enumerate(friends_list):
        try:
            response = VKUser(friend_id).get_groups()
        except RuntimeError:
            time.sleep(0.35)
        try:
            friend_groups = response['response']['items']
            friends_groups.update(friend_groups)
            print(f'Обработано профилей друзей: {item + 1}, осталось: {len(friends_list) - item - 1}')
        except KeyError:
            code = response['error']['error_code']
            if code == 15:
                print('Пользователь скрыл информацию')
            elif code == 18:
                print('Пользователь удалён')
            else:
                print('Не удалось получить информацию о пользователе')
    return friends_groups
Exemplo n.º 6
0
def get_user_friends(input_id):
    vk_user_friends = VKUser(input_id).get_friends()
    return vk_user_friends['response']['items']
Exemplo n.º 7
0
def get_user_groups(input_id):
    vk_user_groups = VKUser(input_id).get_groups()
    groups_list = set(vk_user_groups['response']['items'])
    return groups_list
Exemplo n.º 8
0
def check_validity(input_id):
    try:
        VKUser(input_id)
    except KeyError:
        sys.exit('Данные введены неверно')
Exemplo n.º 9
0
 def setUp(self):
     self.user = VKUser('1')
     self.user_data = self.user.get_user_data()