Как это сделать
|
|
| Zeltorix | 14.02.2024, 22:08 | # 1 |
|
Явно не хватает этой темы. Новичков как понимаю появляются больше, будет полезно не только им)
Скрывайте ссылки и способы обхода от роскомтян)
|
| |
| Zeltorix | 14.02.2024, 22:14 | # 2 |
|
Начнём) Возможно ли создать свою вкладку на начальном экране, не переписывая обложку?
Скрывайте ссылки и способы обхода от роскомтян)
|
| |
| labideb | 14.02.2024, 23:46 | # 3 |
|
Есть моды, где это можно сделать в пару кликов. Сам пользуюсь таким: https://github.com/b-jesch/skin.estuary.modv2 Добавлено (14.02.2024, 23:54) --------------------------------------------- Подскажите, пожалуйста, может кто то сталкивался. Возможно ли передать в какой либо торрент движок список торрентом. Или возможно их как то объеденить в один? В чем проблема, поломался анимепортал с анистаром. Начал его неспешно ковырять. Написал параметры и готовлюсь передавать торрента в kodi (не разу не писал плагины, поэтому откладываю как могу из страха завязнуть). А, так вот, анистар отдает каждую серию отдельным файлом, что будет неудобно в интерфейсе и не только. Мне каждую серию придется отдельно в TAM. Да и в отслеживание в kodi будет не удобно. Подскажите, с какой стороны можно подойти к этой проблеме?
|
| |
| tdw1980 | 15.02.2024, 14:18 | # 4 |
|
Цитата Zeltorix ( ) Возможно ли создать свою вкладку на начальном экране, не переписывая обложку? Использовать Скин(обложку) Коди с поддержкой данной функции. Стандартная обложка позволяет только скрыть некоторые пункты.
|
| |
| Zeltorix | 16.02.2024, 21:44 | # 5 |
|
Цитата labideb ( ) Цитата tdw1980 ( ) Использовать Скин(обложку) Коди с поддержкой данной функции. Хотелось бы что бы это можно было использовать без привязки к определённым скинам. Цитата labideb ( ) В чем проблема, поломался анимепортал с анистаром. Начал его неспешно ковырять. Может сам автор(NIV) быстрее поправит свой плагин, на этом форуме он есть?)
Скрывайте ссылки и способы обхода от роскомтян)
|
| |
| tdw1980 | 17.02.2024, 13:12 | # 6 |
|
Вот давно думаю почему нет такой стандартной функции в как добавить ярлык в главное меню. Как в Избранное. Но чего нет того нет. И каждый скинописец реализует это самостоятельно.
|
| |
| labideb | 21.02.2024, 16:48 | # 7 |
|
Пытаюсь написать первый плагин. И уже не знаю куда смотреть. Может подскажите? В чем проблема. Получаю ссылки на торрент файлы и пытаюсь построить их список. Список формируется, но при выборе файла воспроизведение не начинается. Разные движки ведут себя по разному. ТАМ показывает пустую папку, Torrest- начинает скачивание файла. Гляньте, пожалуйста, может я что то делаю совсем не так?!
@dataclass class Torrest: url: str def __str__(self): link = f'plugin://plugin.video.torrest/play_url?url={self.url}' return link @dataclass class TAM: mode: str url: str index: int = 1 info: str = '' engine: str = '' ad: str = '' def __str__(self): link: str = f'plugin://plugin.video.tam/?mode={self.mode}&url={quote_plus(self.url)}' if self.info: link = link+'&info='+self.info if self.engine: link = link+'&engine='+self.engine if self.ad: link = link+'&ad='+self.ad return str(link)
def get_series(title_id): output_list = [] mode = 'play' series_list = get_series_hlink(title_id) for item in series_list: hlink = quote_plus(item["hlink"]) poster = ADDON_PATH+get_poster(title_id) context = ListItem('Серия '+item["episode"]) context.setInfo('video', infoLabels={'genre': 'anime'}) context.setArt({"poster": poster, "thumb": poster}) context.setProperty('IsPlayable', 'true') # url = str(TAM(mode='play', url=hlink)) url = str(Torrest(url=hlink)) # url = "plugin://plugin.video.elementum/play?uri={}".format(hlink) print(mode, url) output_list.append((url, context, True)) return output_list
и вывожу все это на экран
def series_list(title_id): series_lst = get_series(title_id) addDirectoryItems(HANDLE, series_lst) endOfDirectory(HANDLE)
|
| |
| tdw1980 | 21.02.2024, 19:25 | # 8 |
|
Рабочий пример плагина проигрывающего торренты через ТАМ https://cloud.mail.ru/public/zBpJ/foFxnYv1h
там примерно 40 строк
|
| |
| labideb | 01.03.2024, 23:08 | # 9 |
|
Хоть убейте, не пойму в чем проблема 2024-03-01 22:59:52.465 T:15704 warning <general>: [plugin.video.elementum] [GIN]2024/03/01 - 22:59:52 | 200 | 112.59µs | 127.0.0.1 | GET "/play?uri=&oindex=0&doresume=false" 2024-03-01 22:59:52.671 T:15623 error <general>: Playlist Player: skipping unplayable item: 0, path [plugin://plugin.video.tam/?mode=play&url=https://anistar.org/engine/gettorrent.php?id=36631]
Предаю вот так: torrent = 'plugin://plugin.video.tam/?mode=play&url={}'.format(url) При этом в Elementum: torrent = "plugin://plugin.video.elementum/play?uri={}".format(url) - запускается нормально
|
| |
| tdw1980 | 02.03.2024, 08:59 | # 10 |
|
Приложи свой плагин целиком. Я посмотрю что/как. По фрагментам не структурированного кода я не понимаю как он работает.
|
| |
| labideb | 02.03.2024, 17:52 | # 11 |
|
По сути, это весь код, отвечающий за вывод. Упростил передачу урл для тестирования
@plugin.route('/play/<play_id>') def play(play_id): url = "https://anistar.org/engine/gettorrent.php?id="+play_id # При этом url = "https://anistar.org/engine/gettorrent.php?id=36631" # torrent = 'plugin://plugin.video.tam/?mode=play&url={}'.format(url) torrent = "plugin://plugin.video.elementum/play?uri={}".format(url) context = ListItem('Воспроизвести') context.setProperty(key='IsPlayable', value='true') addDirectoryItem(handle=plugin.handle, url=torrent, listitem=context, isFolder=False) endOfDirectory(plugin.handle)
Elementum напрямую, в таком виде, воспроизводит нормально
|
| |
| tdw1980 | 02.03.2024, 19:09 | # 12 |
|
Забыли экранировать ссылку на торрент. Передача url внутри другого url подразумевает экранирование, иначе будет путаница параметров. Вот рабочий вариант: Код def play(play_id='36631'): from urllib.parse import quote url = "https://anistar.org/engine/gettorrent.php?id="+play_id torrent = 'plugin://plugin.video.tam/?mode=play&url={}'.format(quote(url)) context = xbmcgui.ListItem('Воспроизвести') context.setProperty(key='IsPlayable', value='true') xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=torrent, listitem=context, isFolder=False) xbmcplugin.endOfDirectory(int(sys.argv[1]))
|
| |
| labideb | 03.03.2024, 15:46 | # 13 |
|
InfoTagVЦитата tdw1980 ( ) def play(play_id='36631'): from urllib.parse import quote url = "https://anistar.org/engine/gettorrent.php?id="+play_id torrent = 'plugin://plugin.video.tam/?mode=play&url={}'.format(quote(url)) context = xbmcgui.ListItem('Воспроизвести') context.setProperty(key='IsPlayable', value='true') xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=torrent, listitem=context, isFolder=False) xbmcplugin.endOfDirectory(int(sys.argv[1])) Спасибо. Воспроизведение победил)
|
| |
| Zeltorix | 09.06.2024, 08:08 | # 14 |
|
Как узнать аддону, что включен журнал отладки? Что то такого не найду. Немного добавлю разъяснения. В папке профиля есть guisettings.xml, где хранится значения этой настройки. Через файлы спокойно до него можно добраться и открыть. Но есть ли встроенная возможность получить значение? В принципе нашёл способ через JSON-RPC. Осталось вспомнить как этим пользоваться) "Settings.GetSettingValue" найти "debug.showloginfo" Есть ли кроме этих способов ещё?
Скрывайте ссылки и способы обхода от роскомтян)
|
| |
| qazerr | 12.06.2024, 16:31 | # 15 |
|
Zeltorix, elementum тоже через RPC делает всё тот же "Settings.GetSettingValue" запрос https://github.com/elgatit....go#L663 а питоновские функции для получения настроек есть только для настроек аддонов, насколько я знаю. https://romanvm.github.io/Kodistubs/search.html?q=GetSetting
Сообщение отредактировал qazerr - Четверг, 13.06.2024, 16:22
|
| |