Сегодня поговорим об очередных обновлениях сервиса SearchLikes, основной функцией которого является поиск лайков и комментариев в социальной сети Вконтакте.
В свободное от работы время я добавляю в функционал приложения разные штуки, которые приходят мне в голову и интересны в первую очередь мне. Надеюсь все это пригодится и вам, дорогой читатель. Начнем с первого обновления.

Когда кто сменил аватарку — определяем новые фотографии





На днях, листая список своих друзей, я увидел новую аватарку у одного из них. Сразу возникли вопросы: когда он успел ее сменить так, что я даже и не заметил? Может у кого то еще новая фотография? Вспомнив, что в новостях отображается не вся информация по друзьям и у каждого есть возможность скрыть в настройках приватности отображение собственных обновлений (о том, что еще можно сделать в настройках приватности написано здесь), я решил добавить в свой сервис SearchLikes определение обновления аватарок друзей. Так в разделе «Статистика друзей», доступ к которому появляется после нажатия на «Список друзей», появился блок «Кто сменил аву?». Выглядит все вот так:

новые аватарки
Алгоритм определения новых фотографий очень простой: я получаю всех своих друзей методом friends.get, фильтрую их, очистив от заблокированных и удаленных пользователей. Затем с помощью функции execute (позволяет отправлять одновременно до 25 запросов) запрашиваю у каждого друга две последние фотографии методом photos.get. А потом уже сравниваю время добавления полученных фотографий с выбранным временным промежутком. Пока их два — обновления за последний день и за всю неделю. В результате, вывожу предыдущее фото друга и новое — то есть теперь я всегда в курсе последних изменений аватарок друзей.

Небольшая статистика по пользователям Вконтакте

Стало интересно, а сколько зарегистрировано в Саранске аккаунтов Вконтакте? Обратившись к документации сайта, решил использовать функцию users.search. У нее много параметров и для моей цели подходят два: hometown (родной город) и city (идентификатор города). На первых порах, я решил не усложнять задачу и использовать hometown, потому что с помощью него я передавал на сервер Вконтакте название населенного пункта строкой. С city пришлось бы отправлять дополнительный запрос на определение города по уникальному идентификатору (параметр city — положительное число).
Все довольно просто: пользователь вводит название населенного пункта и я предоставляю ему данные о количестве зарегистрированных пользователей в данном регионе.
Добавив пару параметров, получаю топ страниц по популярности в выбранном городе (топ 5). Решив, что этого недостаточно — отправляю два запроса на получение числа пользователей, у которых родной город — введенный ранее город, а текущий (место проживания) — Москва и Санкт-Петербург. Таким образом, получаем группу людей, которые (по крайней мере по информации Вконтакте) переехали в Санкт-Петербург и Москву.

статистика вконтакте

Данные основываются только на зарегистрированных пользователях в социальной сети и полностью достоверными быть не могут, потому что не все указывают реальную информацию и очень много фейковых страниц. Взять хотя бы меня — живу в Саранске, а на личной странице это нигде не указано — раздел родной город и место проживания пусты.

Ложка дегтя

Укажу также пару явных минусов в моей реализации. Показываются количество пользователей в зависимости от введенного наименования города, то есть если вы ввели Питер — данные будут по тем людям, у которых в графе родной город написано Питер. По Санкт-Петербургу получите другие цифры. И еще — если вы хотите определить сколько пользователей в населенном пункте, наименование которого не уникально (например, Красноармейск — есть в Московской области и в Саратовской области ), система выведет всех независимо от расположения места проживания.

Вместо заключения

Помимо этого, в SearchLikes много интересного функционала, поэтому добро пожаловать, буду рад каждому.