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

Коли хто змінив аватарку — визначаємо нові фотографії

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


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

Невелика статистика користувачів Вконтакте

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

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

Ложка дьогтю

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

Замість висновку

Крім цього, в SearchLikes багато цікавого функціоналу, тому ласкаво просимо, буду радий кожному.