Як шукав Дашу в вконтакте

Як все почалося

Як іноді буває у багатьох стартаперів, я поринув у вивчення чергового сервісу в пошуках ідей і натхнення для свого проекту. Жертвою став сервіс знайомств (мобільний додаток), який залучив мене механікою процесу взаємодії між користувачами. Щоб краще зрозуміти і відчути суть, вивчити глибше соціоніку - треба побувати в шкурі звичайного користувача, адже потикати кнопки для цього недостатньо, та й поєднати приємне з корисним ніхто не забороняв. Тому я почав знайомитися.

Раптово у мене з'явилася нав'язлива ідея знайти одну дівчину, з якою я познайомився в цьому додатку. Так чи інакше, це бажання було пов'язано як з нею, так і заради спортивного інтересу: «чи реально знайти при такому розкладі?» Я продовжував спілкування, але не «вивідуючи» якісь подробиці, щоб не спрощувати собі поставлену задачу.

Чисто гіпотетично.

Крок 1. Розпізнавання дублікатів фотографій

Оригінальні фотографії з додатка я витягнув чи з кешу ios додатки (через програму iExplorer), то чи перехопивши відповідь з json об'єктом від сервера на запит з програми (використовуючи Charles, про який в контексті злому iOS додатків писали на Хабре).

Як порівняти тисячі фотографій з наявними? Або шукати алгоритм і писати самому, або шукати готовий софт. Пару годин пошуків і було знайдено додаток PhotoSweeper (альтернатива для Windows AntiDupl.NET), яке шукає дублікати серед файлів картинок по заданих параметрах (допустима похибка, алгоритм і т.п.).

Я боявся, що фотографії з сервісу можуть бути обрізаними або з фільтром, якого не буде на оригінальних фотографіях, вивантажених з ВК. Тому спочатку я перевірив наскільки добре працює програма (машинний пошук). Кілька танців з настройками програми та найбільш адекватний результат був досягнутий. А ось і ні, але про все по порядку.

Досить цікавий результат пошуку дублікатів через програму, яка дуже відрізняється своєю «людяністю» від інших результатів:

Як шукав Дашу в вконтакте

Але частіше, на жаль, результати були такі (очевидно, що картинки відрізняються):

Як шукав Дашу в вконтакте

Крок 2. Жадібні запити до ВКонтакте

Отже, тепер можна було приступати до наступного кроку, але я вирішив спочатку пробігти «оком» з пошуку ВКонтакте перш, ніж приступати до коду. ВКонтакте по будь-якому пошуковому запиту віддає тільки 1000 результатів, а за фактом Даш 20-ти років з Москви було 6950. Пробігши по першій доступною 1000 фотографій, я не знайшов потрібну.

Тижпрограммісти не здаються!

7 000 Даш 20-ти років, які навчаються в Москві.

Дуже сподобалося працювати з API Вконтакте. Дуже зручно можна пограти з запитами прямо на сайті:

Як шукав Дашу в вконтакте

Пограв і вирішив обмеження обійти таким запитом: Дарина, 20 років, * unversityId. Але це була не найкраща ідея: ВК віддав

Крок 3. А що якщо машини помиляються? А що якщо люди теж?

Крок 4. Тепер уже здаватися просто нерозумно

Серед тисяч фотографій було видно, що

Грандіозний фінал. відгадка

По ходу дії розповідаю своєму другові про свою пригоду: вихідні дані і те, що я вже спробував. Не знаю як так сталося, але я навіть і подумати не міг, що йому буде цікавіше трохи більше, ніж «хм, ну удачі». Через хвилини дві-три отримую від нього повідомлення «Я знайшов її!». Перечитав. Зблід. Кілька діб мук, а тут 2 хвилини?

Дивлюся посилання. Так, це була вона. Я відразу ж узяв id і тут же знайшов його серед викачаних мною тисяч фотографій. Серед вихідних фотографій цієї фотографії не було. Так, люди помиляються - на фото вона, а я її просто не впізнав (а адже найбільше цього боявся).

Упевнений багато здогадуються, які відчуття після цієї фрази в мене були. Але не все так просто.

1) Качаємо розширення для Chrome «StopFake»;
2) Завантажуємо оригінальну фотографію до себе на стіну (інше типу лички не спрацьовує, але я особливо не тестіл) ж
3) Натискаємо на кнопочку розширення з жовтою уточкой і - «вуаля»!

Як шукав Дашу в вконтакте

Післямова

До плюсів своєї подорожі віднесу те, що це було захоплююче і цікаво. Не кожен день тебе так затягує якась завдання / мета. Трохи прокачав навички розробки, познайомився ближче з API ВКонтакте, Instagram. Нарешті, зміг дізнатися, на що здатні доступні програми з пошуку дублікатів.

Дякую за увагу, сподіваюся було цікаво.

Як би ви вирішили це завдання?