Mazda 6 (2G) (Elegance in Black)

Поиск отписавшихся…

Я їжджу на Mazda 6 (2G)
Запоріжжя, Україна

Всем привет!

Данная запись — небольшая порция негодования относительно странных людей.
Раньше я как-то не обращал внимания на цифры, но недавно ситуация аж рассмешила.
Сижу себе, никого не трогаю, как вдруг число подписчиков на мой автомобиль стало равным 500! Я обрадовался! 500 человек интересуется моим автомобилем и его доработками :)
Но радость была недолгой. Через час их количество снова стало 499. Ну и ладно, кому-то не понравились мои записи — бывает, я не виню таких людей…
Снова обновляю страницу через пару минут и… вуаля, снова 500 подписчиков. Я, как обычно, отвечаю взаимной подписью, ни о чем не задумываясь! И тут оп, снова 499.
Сразу становится понятно: меня настигли те мудозв нехорошие люди, которые подписываются на 20 000 машин и после получения ответа отписываются от 19 999 из них…
Я не люблю таких людей, поэтому начал изобретать оружие против них. И сейчас расскажу об этом :)

Итак… Как же вычислить того, кто отписался? В теории всё просто: можно хранить список подписок и сравнивать его при изменении числа. В моём случае даже ничего не нужно хранить, т.к. из уважения я слежу за всеми авто, проявляющими интерес к моему авто.

В общем, переходим к списку подписчиков, загружаем их всех (нажимая на кнопку "Показать ещё"):

Рекомендую не закрывать эту страницу, она ещё понадобится.

Затем анализируем HTML разметку…
Все никнэймы обвернуты в тег <span>, c явным классом "uname".
Это как раз то, что нам нужно выбрать. Выбрать, собственно, очень несложно, пишем код… Заводим массив array и выбираем элементы класса "uname" используя метод getElementsByClassName и пробегаясь по массиву выводим содержимое каждого элемента в консоль:

Один список мы имеем. Теперь нужно сделать такой же список с обратной стороны: соберем машины и людей, которых читаю я. Операции аналогичны, описывать их нет смысла. После этого нам нужно сравнить два списка и выкинуть лишние элементы.
Здесь фантазии нет предела, кто на что горазд. Можно делать в Excel'e, можно в Google Docs Spreadsheet, можно руками. Я занимаюсь разработкой под Apple iOS, соответственно, мне проще было создать приложение, сравнивающее списки:

Всё просто. Два списка, содержащие подписки от меня и ко мне. И один список — игнор лист, создал его для удобства и храню тех, кто не читает меня, но кто интересен мне (дабы постоянно не светились как отписавшиеся).
На выходе в консольку высыпается список тех, кто отписался…
Находим их среди подписок:

Ну и дальше делаем то, что хочется… Кому-то интересно узнать "почему же отписались", мне же хочется лишь того, чтобы среди моих подписчиков не было тех, кто любит играть в циферки и не наигрался ими в детском садике.

Простой совет: Гнаться за рейтингом нужно качественным БЖ, переделками, вопросами, мнениями… но никак не подлым способом "подписался-отписался".
Уважайте других, и вам ответят взаимностью.
Всем добра!

UPD (04.01.2017): Уж не знаю по каким причинам, но под Новый год тема получила новый виток популярности (хотя написана пару лет назад). За это время были произведены изменения в дизайне и разметке сайта. А следовательно, вышеприведенный код будет работать только при условии адаптации к новым классам. Класс "uname" необходимо заменить на "c-username".

P.S. Возможно, буду вести общедоступный список таких людей ("доска позора").
P.P.S. Если нужно — присылайте списки, помогу сравнить их.

–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––
UPD: Пополняющийся список любителей подписаться-отписаться:
1. Andrei-P
2. vladka77
3. M017MM
4. vikk64
5. andrewvw
6. de13m
7. valentin146
8. Soundaholic
9. demidovvvv
10. Davidenkoo
11. Nightscar
12. peretokinart
13. modul76
14. arteha1992
15. Pepsis
16. staivist
17. eVoxX
18. Spravedlivyi
19. lFA-STl
20. PavelEcho
21. eeksavas
22. EgorOutback
23. eVoxX
24. Spravedlivyi
25. Himmerka
26. … ждем следующего
–––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––––

Опубліковано: 10 липня 2014р. 11:04
0 0 0

Коментарі

Щоб залишати коментарі, потрібно авторизуватись.