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

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

Модератор: immortal

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

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

Сообщение freesh » Вс дек 01, 2019 11:50 pm

Добрый день.

Снова пытаюсь соединить мажордомо и kodi:
Но в php полный ноль :)
Основное что хочу попробовать реализовать:
1. Список фильмов
2. Запуск фильма по клику

На данный момент сделал сценарий экспорта библиотеки из kodi в табличку в db_terminal на МД.
1 вопрос, куда и как можно вывести список фильмов (ну например сделать сцену плейлиста), может у кого есть сцена с выводом данных из mysql.
2. Как по клику на том куда мы вывели получить данные в этой строчке?
3 и основной вопрос, как выполнить запрос curl, я могу ручками запустить кино выполнив curl -g --data-binary '{ "id": 1, "jsonrpc": "2.0", "method": "Player.Open", "params": {"item": { "file": "путь_к_фильму" } } }' --header 'content-type: application/json;' http://kodi_ip/jsonrpc

Но как его выполнить из php из-за этих кавычек %22 не помогает.

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

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

Сообщение freesh » Пн дек 02, 2019 12:08 am

Так, вроде с основным вопросом разобрался
$cmd='curl -g --data-binary \'{ "id": 1, "jsonrpc": "2.0", "method": "Player.Open", "params": {"item": { "file": "'.$films[0].'" } } }\' --header \'content-type: application/json;\' http://kodi_ip/jsonrpc';
exec($cmd,$resultexec);
Raspberry pi3, xiaomi, sonoff rf.
fandaymon
Сообщения: 1554
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

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

Сообщение fandaymon » Пн дек 02, 2019 1:15 am

freesh писал(а):
Вс дек 01, 2019 11:50 pm

На данный момент сделал сценарий экспорта библиотеки из kodi в табличку в db_terminal на МД.
1 вопрос, куда и как можно вывести список фильмов (ну например сделать сцену плейлиста), может у кого есть сцена с выводом данных из mysql.
2. Как по клику на том куда мы вывели получить данные в этой строчке?

Но как его выполнить из php из-за этих кавычек %22 не помогает.

Заранее благодарен за подсказки :)
По первому вопросу - проще всего, наверное, это сгенерировать модуль генератором https://mjdm.ru/mbuilder/ вписав там свою таблицу и добавив свои поля. Далее импортировав этот модуль получаем список из таблицы с возможностью редактирования. Далее просто добавляем модуль в меню и на сцену и получаем список без программирования. Чтобы получить по клику информацию надо будет добавить в template модуля джаваскрипт отрабатывающий onclick. Но тут конечно надо хотя бы чуть-чуть разбираться в джавасриптах и php....
freesh
Сообщения: 189
Зарегистрирован: Сб окт 12, 2019 2:10 pm
Благодарил (а): 6 раз
Поблагодарили: 30 раз

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

Сообщение freesh » Пн дек 02, 2019 1:21 am

fandaymon писал(а):
Пн дек 02, 2019 1:15 am
freesh писал(а):
Вс дек 01, 2019 11:50 pm

На данный момент сделал сценарий экспорта библиотеки из kodi в табличку в db_terminal на МД.
1 вопрос, куда и как можно вывести список фильмов (ну например сделать сцену плейлиста), может у кого есть сцена с выводом данных из mysql.
2. Как по клику на том куда мы вывели получить данные в этой строчке?

Но как его выполнить из php из-за этих кавычек %22 не помогает.

Заранее благодарен за подсказки :)
По первому вопросу - проще всего, наверное, это сгенерировать модуль генератором https://mjdm.ru/mbuilder/ вписав там свою таблицу и добавив свои поля. Далее импортировав этот модуль получаем список из таблицы с возможностью редактирования. Далее просто добавляем модуль в меню и на сцену и получаем список без программирования. Чтобы получить по клику информацию надо будет добавить в template модуля джаваскрипт отрабатывающий onclick. Но тут конечно надо хотя бы чуть-чуть разбираться в джавасриптах и php....
О, по поводу mbuilder спасиб, гляну.
Ну разбираюсь поверхностно, т.е. вот щас с помощью гугла сделал два скрипта по экспорту бд и запуска на проигрыш предварительно указанного файла.
Т.е. грубо говоря из чьих-нить наработок я пойму и под себя переделаю...я думаю :)
Raspberry pi3, xiaomi, sonoff rf.
fandaymon
Сообщения: 1554
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

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

Сообщение fandaymon » Пн дек 02, 2019 1:48 am

freesh писал(а):
Пн дек 02, 2019 1:21 am
fandaymon писал(а):
Пн дек 02, 2019 1:15 am
freesh писал(а):
Вс дек 01, 2019 11:50 pm

На данный момент сделал сценарий экспорта библиотеки из kodi в табличку в db_terminal на МД.
1 вопрос, куда и как можно вывести список фильмов (ну например сделать сцену плейлиста), может у кого есть сцена с выводом данных из mysql.
2. Как по клику на том куда мы вывели получить данные в этой строчке?

Но как его выполнить из php из-за этих кавычек %22 не помогает.

Заранее благодарен за подсказки :)
По первому вопросу - проще всего, наверное, это сгенерировать модуль генератором https://mjdm.ru/mbuilder/ вписав там свою таблицу и добавив свои поля. Далее импортировав этот модуль получаем список из таблицы с возможностью редактирования. Далее просто добавляем модуль в меню и на сцену и получаем список без программирования. Чтобы получить по клику информацию надо будет добавить в template модуля джаваскрипт отрабатывающий onclick. Но тут конечно надо хотя бы чуть-чуть разбираться в джавасриптах и php....
О, по поводу mbuilder спасиб, гляну.
Ну разбираюсь поверхностно, т.е. вот щас с помощью гугла сделал два скрипта по экспорту бд и запуска на проигрыш предварительно указанного файла.
Т.е. грубо говоря из чьих-нить наработок я пойму и под себя переделаю...я думаю :)
После импорта модуля в директории templates появится поддиректория с названием модуля. Файлик название_модуля_search_admin.html отвечает за то, как именно выводится список. Можно например найти в нём место, где выводятся кнопки Редактировать и Удалить и добавить свою Play

<a href="?data_source=<#DATA_SOURCE#>&view_mode=play_kodi&id=[#ID#]" class="btn btn-default" title="Play"><i class="glyphicon"></i></a>

В файле /modules/название_модуля/название_модуля.class.html надо найти функцию admin(), а в ней несколько ifoв -

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

      if ($this->data_source == 'tudevices' || $this->data_source == '') {
         if ($this->view_mode == '' || $this->view_mode == 'search_tudevices') {
            $this->search_tudevices($out);
         }
         if ($this->view_mode == 'edit_tudevices') {
            $this->edit_tudevices($out, $this->id);
         }
         if ($this->view_mode == 'delete_tudevices') {
            $this->delete_tudevices($this->id);
            $this->redirect("?data_source=tudevices");
         }
data_source и view_mode будут свои. И добавить вызов своей функции запускающей файл на воспроизведение

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

         if ($this->view_mode == 'play_kodi') {
           $this->play_kodi( $this->id);
         }
Ну и где-нибудь дальше в файле определить что будет делать функция play_kodi($id)
За это сообщение автора fandaymon поблагодарил:
freesh (Пн дек 02, 2019 2:45 am)
Рейтинг: 1.16%
freesh
Сообщения: 189
Зарегистрирован: Сб окт 12, 2019 2:10 pm
Благодарил (а): 6 раз
Поблагодарили: 30 раз

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

Сообщение freesh » Пн дек 02, 2019 2:45 am

fandaymon писал(а):
Пн дек 02, 2019 1:48 am

Ну и где-нибудь дальше в файле определить что будет делать функция play_kodi($id)
Спасибо! Сделал, даже работает :)
Споткнулся только на прямом месте...а как вывести модуль на сцену, почему-то [#module name="videotable" #] не работает
Raspberry pi3, xiaomi, sonoff rf.
fandaymon
Сообщения: 1554
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

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

Сообщение fandaymon » Пн дек 02, 2019 3:12 am

freesh писал(а):
Пн дек 02, 2019 2:45 am
fandaymon писал(а):
Пн дек 02, 2019 1:48 am

Ну и где-нибудь дальше в файле определить что будет делать функция play_kodi($id)
Спасибо! Сделал, даже работает :)
Споткнулся только на прямом месте...а как вывести модуль на сцену, почему-то [#module name="videotable" #] не работает
Добавить новый элемент типа HTML - в состоянии написать Default, а в код -

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

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

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

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

fandaymon писал(а):
Пн дек 02, 2019 3:12 am
freesh писал(а):
Пн дек 02, 2019 2:45 am
fandaymon писал(а):
Пн дек 02, 2019 1:48 am

Ну и где-нибудь дальше в файле определить что будет делать функция play_kodi($id)
Спасибо! Сделал, даже работает :)
Споткнулся только на прямом месте...а как вывести модуль на сцену, почему-то [#module name="videotable" #] не работает
Добавить новый элемент типа HTML - в состоянии написать Default, а в код -

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

[#module name="videotable"#]
В том-то и дело что не хочет почему-то
СпойлерПоказать
2019-12-02 09_27_27-videotable (Панель управления).png
2019-12-02 09_27_27-videotable (Панель управления).png (2.87 КБ) 3253 просмотра
СпойлерПоказать
2019-12-02 09_27_00-KodiVideo - PlayList.png
2019-12-02 09_27_00-KodiVideo - PlayList.png (4.78 КБ) 3253 просмотра
И просто пустая страница
Raspberry pi3, xiaomi, sonoff rf.
freesh
Сообщения: 189
Зарегистрирован: Сб окт 12, 2019 2:10 pm
Благодарил (а): 6 раз
Поблагодарили: 30 раз

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

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

Блин, уже моск сломал, не хочет модуль отображаться на странице :(

И ещё вопросик возник, может кто подскажет как нормально распарсить json ответ от коди
Т.е. сейчас запрашиваю что сейчас играет и получаю ответ:
{"id":"VideoGetItem","jsonrpc":"2.0","result":{"item":{"id":8,"label":"Фильм","title":"Фильм","type":"movie"}}}
только чего-то json_decode не хочет парсить :(
Может кто подскажет или ткнет как правильно.
Можно конечно тупо substr и strpos вычленять название но что-то мне этот подход не очень.
Raspberry pi3, xiaomi, sonoff rf.
fandaymon
Сообщения: 1554
Зарегистрирован: Сб янв 13, 2018 5:00 pm
Благодарил (а): 39 раз
Поблагодарили: 574 раза

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

Сообщение 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" } } }
Т.е всё нормально декодирует.
Ответить