Что то меня никак не отпустит, прям затянуло изучение приставки
Подскажите пожалуйста, начал тут смотреть как устроен сабжевый модуль, он хотя бы ещё пытается продолжать работать. Мои знания php пока стремятся к нулю, но я учусь. Пока в основном опираюсь только на знания нескольких языков программирования для микроконтроллеров PIC и AVR и смысл написанного на php примерно и в общих чертах понятен.
Почти уверен, что не вытяну ремонт модуля, но при разборе скриптов стало понятно, как модуль устроен и как работает. Да и вообще, все модули устроены практически одинаково. Очень интересно, между прочим. Ну да ладно, я к чему. Пока разбирался, понял в каком месте поломалось. Сейчас постараюсь как можно подробнее описать, и надеюсь, что многоуважаемый
Virtual, или кто нибудь ещё, кто шарит в вопросе, даст дельные советы, а я попытаюсь эти советы понять
А сломалось в трёх местах.
1.Значит, как я понял, при запуске идёт обращение к адресу
https://www.ivi.ru/mobileapi/countries/Тут мы получаем список стран с присвоенными им номерами, так как при запросе информации о фильме в описании страна указана не явно, а номером. Вот для этого сопоставления и нужно. При переходе по этой ссылке с компа получаем json список со странами. В этом месте работает.
2. Дальше идём по адресу
https://www.ivi.ru/mobileapi/categories/Получаем список категорий. Смысл тот же, что и для стран. Тут тоже работает.
3. Если зашли в поиск, то там идёт какая то подготовка данных в нужный вид и переход по ссылке поиска
https://api.ivi.ru/mobileapi/search/v5/?query='.%20urlencode(%20$search%20)в этом месте тоже работает
4.Список фильмов при запуске подготавливается по ссылке вида
https://api.ivi.ru/mobileapi/catalogue/v5/?category=14&sort=pop&from=0&to=13&fields=id,hru,title,year,years,description,synopsis,thumbnails(я уже подставил в ссылку переменные) Тут тоже работает, на компе получаем json с 14 фильмами из раздела ФИЛЬМЫ (category=14) с описаниями, ну а на приставке получаем список с картинками и кратким описанием. Можно листать страницы, выбирать нужные категории. Всё работает.
5. Дальше, как я понял, при нажатии на пульте
OK вызывается функция
- Code: Select all
static function getInfos( $id )
В теле этой функции практически сразу вызывается функция
- Code: Select all
static function getVideos( $id )
и вот тут начинаются поломки. В этой функции идёт обращение по адресу
https://api.ivi.ru/mobileapi/videofromcompilation/v5/?id=109230&from=0&to=9999&fields=id,title,season,episode(я уже подставил переменные в ссылку, id=109230 это фильм Ёлки, from-to не понял для чего, но в скрипте жёстко указано от 0 до 9999), видимо чтобы получить json с разделами fields=id,title,season,episode, но в ответ приходит пустой ответ
- Code: Select all
{"result":[]}
Видимо, ivi или поменяли структуру запроса, или адрес. По этой ссылке, как я понял, можно узнать есть ли в фильме несколько серий, или одна. Наверно, можно что то закоментить, чтоб попробовать запустить заведомо фильм с 1 серией, особо ещё не смотрел. Но всё равно не заработает, потому что дальше тоже поломано.
6.Дальше переход по ссылке
https://api.ivi.ru/mobileapi/videoinfo/v5/?id=109230(id=109230 это Ёлки) или по ссылке
https://api.ivi.ru/mobileapi/compilationinfo/v5/?hru=ironia_sudbyесли у фильма есть название, а не просто id. Вот при переходе по этим ссылкам с компа, ответ приходит, всё хорошо. Но при вызове их на приставке, как я понял, появляется ошибка в функции
- Code: Select all
static function request( $u )
так как в COM порт процессор выдаёт
- Code: Select all
urlPath = http://127.0.0.1?page=ivi_rss_info&id=109230
Если перейти по этой ссылке с компа, то получим
- Code: Select all
ivi::request: Can't load https://api.ivi.ru/mobileapi/videoinfo/v5/?id=109230
(я убрал ключ /n из подготовки сообщения чтоб увидеть полную ссылку, которая не работает). Пробовал менять с https на http, результат тот же. Вот тут я не знаю, почему на компе работает, а на приставке нет, ведь эта же функция вызывается для запроса по всем ссылкам, и на других ссылках ведь работает.
7.Дальше переход по ссылке
https://www.ivi.ru/ajax/info/109230?type=jsonдля получения списка актёров? особо не понял зачем. Тут вообще печально, возвращается 404 ошибка.
8. Ещё, как я понял, для Украины приделан костыль получения видео из ссылки вида
- Code: Select all
http://files.iconbit.com/file/ivi/player.php?uid={$uid}&id=109230&q=MP4-hi
Если перейти с компа, то в ответ приходит целый php скрипт, в котором есть строка video_url = и ссылка. Так вот если эту ссылку скормить PlayLink, то показывает. Наверно этот костыль ещё работает и его можно использовать не только для Украины.
Вот собственно и всё, написал дофига. Есть какие нибудь идеи по ремонту? Может известны альтернативные адреса API, которые тут перестали работать? Или может что то вырезать можно? Буду рад любой подсказке. Заранее спасибо!