Помощь с PHP (kodi+md)

Если вы только начинаете осваивать систему MajorDoMo и чего-то не знаете или не можете понять, то задавайте свои вопросы в этой ветке.

Модератор: immortal

freesh
Сообщения: 189
Зарегистрирован: Сб окт 12, 2019 2:10 pm
Благодарил (а): 6 раз
Поблагодарили: 30 раз

Re: Помощь с PHP (kodi+md)

Сообщение freesh » Пн дек 02, 2019 9:56 pm

fandaymon писал(а):
Пн дек 02, 2019 9:50 pm
freesh писал(а):
Пн дек 02, 2019 8:34 pm
Блин, уже моск сломал, не хочет модуль отображаться на странице :(
А в меню?
Может быть последний пробел лишний
freesh писал(а):
Пн дек 02, 2019 8:34 pm
И ещё вопросик возник, может кто подскажет как нормально распарсить json ответ от коди
Т.е. сейчас запрашиваю что сейчас играет и получаю ответ:
{"id":"VideoGetItem","jsonrpc":"2.0","result":{"item":{"id":8,"label":"Фильм","title":"Фильм","type":"movie"}}}
только чего-то json_decode не хочет парсить :(
Может кто подскажет или ткнет как правильно.
Можно конечно тупо substr и strpos вычленять название но что-то мне этот подход не очень.
Ну не знаю - запускаю такой сценарий

Код: Выделить всё

$a='{"id":"VideoGetItem","jsonrpc":"2.0","result":{"item":{"id":8,"label":"Фильм","title":"Фильм","type":"movie"}}}';
$b=json_decode($a);
var_dump($b);
Получаю ответ

Код: Выделить всё

object(stdClass)#4 (3) { ["id"]=> string(12) "VideoGetItem" ["jsonrpc"]=> string(3) "2.0" ["result"]=> object(stdClass)#5 (1) { ["item"]=> object(stdClass)#6 (4) { ["id"]=> int(8) ["label"]=> string(10) "Фильм" ["title"]=> string(10) "Фильм" ["type"]=> string(5) "movie" } } }
Т.е всё нормально декодирует.
[#module name="videotable"#] так тоже не хочет :( в меню всё показывается норм.
С декодированием вроде разобрался, не так красиво как у тебя :) двумя циклами мож доковыряю.
Щас делаю сцену, пока думаю как часто запрашивать Player.GetItem - играет ли что-то сейчас.
Play/pause вроде отрабатывает.
Эх, ещё б уметь красиво сцену рисовать.
Raspberry pi3, xiaomi, sonoff rf.
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: Помощь с PHP (kodi+md)

Сообщение fandaymon » Пн дек 02, 2019 10:07 pm

freesh писал(а):
Пн дек 02, 2019 9:56 pm

[#module name="videotable"#] так тоже не хочет :( в меню всё показывается норм.
С декодированием вроде разобрался, не так красиво как у тебя :) двумя циклами мож доковыряю.
Щас делаю сцену, пока думаю как часто запрашивать Player.GetItem - играет ли что-то сейчас.
Play/pause вроде отрабатывает.
Эх, ещё б уметь красиво сцену рисовать.
Странно. Ну тогда можно в сцену добавить элемент Menu Control

Красиво рисовать я тоже не умею... 8-)
freesh
Сообщения: 189
Зарегистрирован: Сб окт 12, 2019 2:10 pm
Благодарил (а): 6 раз
Поблагодарили: 30 раз

Re: Помощь с PHP (kodi+md)

Сообщение freesh » Пн дек 02, 2019 10:17 pm

fandaymon писал(а):
Пн дек 02, 2019 10:07 pm
freesh писал(а):
Пн дек 02, 2019 9:56 pm

[#module name="videotable"#] так тоже не хочет :( в меню всё показывается норм.
С декодированием вроде разобрался, не так красиво как у тебя :) двумя циклами мож доковыряю.
Щас делаю сцену, пока думаю как часто запрашивать Player.GetItem - играет ли что-то сейчас.
Play/pause вроде отрабатывает.
Эх, ещё б уметь красиво сцену рисовать.
Странно. Ну тогда можно в сцену добавить элемент Menu Control

Красиво рисовать я тоже не умею... 8-)
А, ты про это меню? не, там тоже не показывается. я пробовал и на домашние страницы - и там тишина
Нормально показывается только если Приложения - videotable
Raspberry pi3, xiaomi, sonoff rf.
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: Помощь с PHP (kodi+md)

Сообщение fandaymon » Пн дек 02, 2019 10:27 pm

freesh писал(а):
Пн дек 02, 2019 10:17 pm
fandaymon писал(а):
Пн дек 02, 2019 10:07 pm
freesh писал(а):
Пн дек 02, 2019 9:56 pm

[#module name="videotable"#] так тоже не хочет :( в меню всё показывается норм.
С декодированием вроде разобрался, не так красиво как у тебя :) двумя циклами мож доковыряю.
Щас делаю сцену, пока думаю как часто запрашивать Player.GetItem - играет ли что-то сейчас.
Play/pause вроде отрабатывает.
Эх, ещё б уметь красиво сцену рисовать.
Странно. Ну тогда можно в сцену добавить элемент Menu Control

Красиво рисовать я тоже не умею... 8-)
А, ты про это меню? не, там тоже не показывается. я пробовал и на домашние страницы - и там тишина
Нормально показывается только если Приложения - videotable
Ммм.. значит где-то в самом модуле ошибка. У каждого модуля как минимум 2 варианта отображения - usual и admin. Возможно какой-то из этих вариантов не работает.
freesh
Сообщения: 189
Зарегистрирован: Сб окт 12, 2019 2:10 pm
Благодарил (а): 6 раз
Поблагодарили: 30 раз

Re: Помощь с PHP (kodi+md)

Сообщение freesh » Пн дек 02, 2019 10:33 pm

fandaymon писал(а):
Пн дек 02, 2019 10:27 pm
freesh писал(а):
Пн дек 02, 2019 10:17 pm
fandaymon писал(а):
Пн дек 02, 2019 10:07 pm
freesh писал(а):
Пн дек 02, 2019 9:56 pm

[#module name="videotable"#] так тоже не хочет :( в меню всё показывается норм.
С декодированием вроде разобрался, не так красиво как у тебя :) двумя циклами мож доковыряю.
Щас делаю сцену, пока думаю как часто запрашивать Player.GetItem - играет ли что-то сейчас.
Play/pause вроде отрабатывает.
Эх, ещё б уметь красиво сцену рисовать.
Странно. Ну тогда можно в сцену добавить элемент Menu Control

Красиво рисовать я тоже не умею... 8-)
А, ты про это меню? не, там тоже не показывается. я пробовал и на домашние страницы - и там тишина
Нормально показывается только если Приложения - videotable
Ммм.. значит где-то в самом модуле ошибка. У каждого модуля как минимум 2 варианта отображения - usual и admin. Возможно какой-то из этих вариантов не работает.
У меня usual пустой почти, а в admin
СпойлерПоказать

<!-- action usual -->
<!-- table video_list search -->
[#if VIEW_MODE="search_video_list" || VIEW_MODE=""#]
[#inc video_list_search_admin.html#]
[#endif VIEW_MODE#]
<!-- / table video_list search -->
<!-- table video_list edit -->
[#if VIEW_MODE="edit_video_list"#]
[#inc video_list_edit.html#]
[#endif VIEW_MODE#]
<!-- / table video_list edit -->
<!-- table video_list view -->
[#if VIEW_MODE="view_video_list"#]
[#inc video_list_view.html#]
[#endif VIEW_MODE#]
<!-- / table video_list view -->
Попробовал тупо перенести из admin в usual отобразились только записи без кнопок и на всю страницу а хотелось бы чтоб прокрутка была
Raspberry pi3, xiaomi, sonoff rf.
freesh
Сообщения: 189
Зарегистрирован: Сб окт 12, 2019 2:10 pm
Благодарил (а): 6 раз
Поблагодарили: 30 раз

Re: Помощь с PHP (kodi+md)

Сообщение freesh » Пн дек 02, 2019 11:31 pm

Пока получается так, но блин победить этот долбанный список так и не получается :(
СпойлерПоказать
2019-12-02 22_27_22-Window.png
2019-12-02 22_27_22-Window.png (499.18 КБ) 2924 просмотра
Raspberry pi3, xiaomi, sonoff rf.
freesh
Сообщения: 189
Зарегистрирован: Сб окт 12, 2019 2:10 pm
Благодарил (а): 6 раз
Поблагодарили: 30 раз

Re: Помощь с PHP (kodi+md)

Сообщение freesh » Вт дек 03, 2019 12:57 am

Решил делать костыль.
Накидал страничку в php - добавил на сцену как всплывающее окошко PlayList
По клику на фильме, фильм стартует. Только как убрать переход по ссылке при запуске фильма? чтоб как бы в фоне

И ещё вопрос. т.к. kodi сам не говорит что начал играть кино (мож и говорит я не знаю как от него получать постоянно статус) куда правильнее запихнуть отпрос? есть сценарий kodi_currentfilm - который выдает название, картинку предпросмотра ну там много чего ещё, как например при открытии сцены запустить этот сценарий или куда его правильно запихнуть чтобы он постоянно опрашивал?
Raspberry pi3, xiaomi, sonoff rf.
freesh
Сообщения: 189
Зарегистрирован: Сб окт 12, 2019 2:10 pm
Благодарил (а): 6 раз
Поблагодарили: 30 раз

Re: Помощь с PHP (kodi+md)

Сообщение freesh » Вт дек 03, 2019 9:06 pm

В общем после долгих мучений получилась какая-то такая сцена:
2019-12-03 19_37_38-Window.png
2019-12-03 19_37_38-Window.png (873.45 КБ) 2880 просмотров

Пока думаю какие лучше цвета и что/как показывать что ещё можно прикрутить :)
Raspberry pi3, xiaomi, sonoff rf.
fandaymon
Сообщения: 1553
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

Re: Помощь с PHP (kodi+md)

Сообщение fandaymon » Вт дек 03, 2019 10:18 pm

freesh писал(а):
Вт дек 03, 2019 12:57 am

И ещё вопрос. т.к. kodi сам не говорит что начал играть кино (мож и говорит я не знаю как от него получать постоянно статус) куда правильнее запихнуть отпрос? есть сценарий kodi_currentfilm - который выдает название, картинку предпросмотра ну там много чего ещё, как например при открытии сцены запустить этот сценарий или куда его правильно запихнуть чтобы он постоянно опрашивал?
Для просмотра использую дюну, в onnewminute вызывается сценарий запрашивающий статус дюны. Если имя проигрываемого файла поменялось меняю свойство played объекта дюна. Само свойство вывожу на главную сцену - удобно, видно что последним смотрели. Опять же по шаблонам МДМ озвучивает что именно смотрели последним и какую последнюю серию смотрели какого-нибудь сериала (заведены таблица serials, в которой есть соответствие ключевое слово - название сериала - регэксп определяющий сезон-серию)

А по поводу обновления инфы на сцене - удобнее использовать веб-сокеты - в конекте есть статьи как это правильно сделать. Достаточно удобно - свойство изменили - изменилось значение на сцене
freesh
Сообщения: 189
Зарегистрирован: Сб окт 12, 2019 2:10 pm
Благодарил (а): 6 раз
Поблагодарили: 30 раз

Re: Помощь с PHP (kodi+md)

Сообщение freesh » Вт дек 03, 2019 10:31 pm

fandaymon писал(а):
Вт дек 03, 2019 10:18 pm
freesh писал(а):
Вт дек 03, 2019 12:57 am

И ещё вопрос. т.к. kodi сам не говорит что начал играть кино (мож и говорит я не знаю как от него получать постоянно статус) куда правильнее запихнуть отпрос? есть сценарий kodi_currentfilm - который выдает название, картинку предпросмотра ну там много чего ещё, как например при открытии сцены запустить этот сценарий или куда его правильно запихнуть чтобы он постоянно опрашивал?
Для просмотра использую дюну, в onnewminute вызывается сценарий запрашивающий статус дюны. Если имя проигрываемого файла поменялось меняю свойство played объекта дюна. Само свойство вывожу на главную сцену - удобно, видно что последним смотрели. Опять же по шаблонам МДМ озвучивает что именно смотрели последним и какую последнюю серию смотрели какого-нибудь сериала (заведены таблица serials, в которой есть соответствие ключевое слово - название сериала - регэксп определяющий сезон-серию)

А по поводу обновления инфы на сцене - удобнее использовать веб-сокеты - в конекте есть статьи как это правильно сделать. Достаточно удобно - свойство изменили - изменилось значение на сцене
Я доковырял, теперь KODI сам говорит что начал/закончил/на паузе, и запускает скрипты на МД.
Озвучку пока не делал, подумаю.
Пока просто управление, соответсвенно фон на сцене автоматом меняется по запущенному фильму, описание

Пока вот вопрос - я сделал кнопку PlayList - по нему всплывает окошко с php со списком файлов, по клику на имени файла запускается фильм (т.е. запускается /kodiplay?id=###) а вот как сделать чтобы после клика это всплывающее окно закрывалось. php страничка со списком отдельно жеж.
Raspberry pi3, xiaomi, sonoff rf.
Ответить