Предисловие


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

Поиски такой обработки привели меня на страницу камрада REDNBLACK-а., где он выложил, с его слов:
Простая программа импортирует оценки и добавляет в ваш список IMDB фильмы из файла *.xls, экспортированного с КиноПоиска

Простая?! Для тех, кто первый раз слышит (а таких на КиноПоиске, я думаю, процентов 80), что такое PHP, CURL, Composer — простая? За юмор — плюс в карму…

Вот как выразился пользователь Psyber с КиноПоиска, когда я ему предложил воспользоваться творением REDNBLACK-а:
Я, как простой смертный, не смог сообразить как ею воспользоваться, а очень бы хотелось...

Я расскажу что такое «простая»: это когда запускаешь приложение где два окна — в левом окне прописываешь ссылку на профиль в КиноПоиске, в правом — на профиль в IMDB и нажимаешь кнопку «Выполнить».

В любом случае — это лучше чем ничего, а REDNBLACK-у за проделанную работу — респект. Поэтому воспользовавшись, ну, прямо скажем спартанской инструкцией камрада, я приступил к переносу оценок фильмов. Вот что получилось.

Подготовка


Итак, сначала нам надо подготовить свои данные для переноса и установить на комп недостающий софт.

Заходим в свой профиль на КиноПоиске. Переходим на закладку «Оценки», жмём «экспорт в MS Exсel». Список с фильмами для переноса скачан, сам файл списка переименован и размещён в корень диска: d:\kinopoisk_N.xls



Самая лёгкая часть процедуры выполнена.

Согласно рекомендациям REDNBLACK-а, теперь нам надо установить PHP. Поиск в google сразу отправил меня на сайт для скачивания.

Так получилось, что в тот день, когда я занимался переносом, данная ссылка на скачивание была недоступна, поэтому PHP был скачан в составе пакета XAMPP:



Запускаем установочный файл XAMPP и из предлагаемого списка для установки, оставляем только PHP.



Следующий этап – установка Composer. Скачиваем установочный файл (прямая ссылка). Запускаем. Composer спросит нас: «где находится PHP?». Мы ему указываем папку C:\xampp\php, где у нас находится php.exe.



На IMDB регистрируем свой профиль или открываем уже зарегистрированный.

Создаем в своем профиле LIST (список) куда будем закачивать фильмы с оценками.

Раз:



Два:



Заходим во вновь созданный лист и записываем его id, который находится в адресной строке браузера — нам он еще пригодится. В моём случае id выглядит так:



Для переноса нам еще нужен id профиля. Что бы его найти, нажимаем комбинацию клавиш Ctrl+Shift+I (для Chrome). Находим сookies-строку авторизации:



Клацаем по строке сначала:

— два раза левой клавишей «мыши», потом
— один раз правой клавишей «мыши» и выбираем «Копировать».

Записываем id в текстовый файл для дальнейшей обработки.

Перенос


Начинается самое интересное.

Идем в гости к REDNBLACK-у и скачиваем его zip-архив:



Распаковываем архив на диск d:\



Открываем Windows PowerShell и последовательно вводим команды, не забыв сначала сменить диск: cd d:\



Вот где нам пригодился Composer.

А теперь всю собранную информацию будем собирать до кучи. Запускаем PowerShell и формируем строку-команду с параметрами на выполнение программы PHP. Эта строка имеет вид:

php application.php "полный путь к *.xls файлу" --auth="Cookie строка авторизации с IMDB" --list="ID списка для добавления" --query_format="тип запроса"

Разберём эту строчку — что и куда подставлять:

1. «полный путь к *.xls файлу»:
d:\kinopoisk_N.xls


2. «Cookie строка авторизации с IMDB» (id профиля):

BCYkmNuQatCqhAmBX7k6158N8vu_26DTpFYfITPrIznWMrpFeLZipNznKBhXGoOJqsO9VoczRALY1fdNXMkkOPhoe9lua_kHr7xZMTTf-qkHiMOXx1HDif4eYyqGPKrYH-pnnWvFtrS7oBbbN87jUCyiG1cEIWHwSVsJKsYp8q1hl7aL0XZNIqQLT8X9sUhNER0VG


3. «ID списка (листа) для добавления»:

ls016952709

4. «тип запроса»:
mixed 
(самый медленный, но надежный, процент точности около 90%)

Важно! Не забываем заключать текст опций в " ".

Складываем. Получаем готовую солянку:

php application.php d:\kinopoisk_N.xls --auth="BCYkmNuQatCqhAmBX7k6158N8vu_26DTpFYfITPrIznWMrpFeLZipNznKBhXGoOJqsO9VoczRALY1fdNXMkkOPhoe9lua_kHr7xZMTTf-qkHiMOXx1HDif4eYyqGPKrYH-pnnWvFtrS7oBbbN87jUCyiG1cEIWHwSVsJKsYp8q1hl7aL0XZNIqQLT8X9sUhNER0VG" --list="ls016952709" --query_format="mixed"

Важно! Эту строку будем запускать из папки d:\kinopoisk\src, поэтому последовательность переходов и запуск программы на выполнение, будет выглядеть так:



Кстати, если кто знает как избавиться от неправильной кодировки в PowerShell я буду признателен за совет.

Жмём Enter — процесс переноса пошёл! Осталось подождать. Моё ожидание составило 1 час 20 мин.

Выводы


Что мы видим после окончания процесса переноса?



Перенеслось 732 рейтинга (оценки) из 803. Не перенеслась 71 оценка. У меня закрались подозрения, что в этом виновато кириллическое написание названий фильмов. Но REDNBLACK так отреагировал на это:
Кириллические символы воспринимает. Улучшить уже не получится, по моему это и так идеально-возможный результат, с такими-то плохими данными у КиноПоиска.

Впрочем, нам и не обещали 100% результат.

Заключение


Я не являюсь специалистом в PHP, поэтому, если у кого возникнут технические вопросы — вы знаете к кому обращаться. Если кто найдет ошибки, или предложит другие (лучшие) способы переноса — поделитесь мыслями-пожеланиями.

P.S.: На перенос оценок фильмов (с изучением мануала, деталей, пробами, выявлению ошибок, консультациями) у меня ушло два дня. Если мой опыт кому-нибудь пригодится и позволит желающим, с учётом выше описанного мануала, затратить на перенос час времени — буду считать, что свое время я потратил не зря.

Комментарии (3)


  1. nIx0iD
    16.12.2015 14:33
    +3

    Ждем плагин к браузеру…


  1. lasc
    17.12.2015 00:52

    803 оценки! Откуда у вас столько времени! Это 3.3 года по фильму в день (брал по полтора часа фильмы) без перерывов!


  1. ForestQ
    17.12.2015 10:46

    У меня 2703 оценки проставлены за 7 лет :) Когда кинопоиск редизайнился, я бухал два дня с горя.