Giter VIP home page Giter VIP logo

lampa-source's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

lampa-source's Issues

Вопрос про лаг при выходе из приложения

Приветствую, подскажите, а какой смысл в двухсекундном лаге при нажатии на кнопку "назад" на главном экране:
Date.now() > start_time + (1000 * 2) в App.js?

Часто создаётся ощущение, что кнопка просто не работает и нужно несколько раз нажимать.

Notice title to detail car title

From the notification area, when I click on the movie title to go to the card page, the movie title is displayed in Russian instead. In the old version, it used to show the text in the language I selected. Is it possible to change it back so that the movie title is displayed in the language I choose?

截屏2023-07-19 15 47 10 截屏2023-07-19 15 49 57

Old version show this:
截屏2023-07-19 15 53 51

webos api для управления субтитрами и аудиодорожками

при запуске видео в плеере лампы в шине webOS появляется запрос com.webos.media метод load, в ответ прилетает mediaId, имея который можно управлять субтитрами и дорожками
описание метода load
https://www.webosose.org/docs/reference/ls2-api/com-webos-media/#load
живой пример лога шины при запуске видео из лампы:
запрос
3628.258 [PUB] call 5 com.webos.media.client._5IC7T01btpYJEV (/var/run/ls2/vnsgcd) com.webos.media (/var/run/ls2/jpn9J7) (null) //load {"payload":{"option":{"appId":"com.lampa.tv","transmission":{"httpHeader":{"referer":"","userAgent":"Mozilla/5.0 (Web0S; Linux/SmartTV) AppleWebKit/537.41 (KHTML, like Gecko) Large Screen WebAppManager Safari/537.41","cookies":""}},"bufferControl":{"userBufferCtrl":false}}},"uri":"http://127.0.0.1:8090/stream?link=df1c4e7677f1a517fca74111c5e9f79b7f9305ea&index=16&play&preload","type":"media"}
ответ
3628.279 [PUB] return 5 com.webos.media (/var/run/ls2/jpn9J7) com.webos.media.client._5IC7T01btpYJEV (/var/run/ls2/vnsgcd) {"errorCode":0,"returnValue":true,"errorText":"","mediaId":"_MQUBT01X5MiTj4"}

после load происходит подписка на события по mediaId, в числе которых возвращается sourceinfo - инфа об источнике в т.ч. количестве и языках субтитров и дорожек
описание метода subscribe
https://www.webosose.org/docs/reference/ls2-api/com-webos-media/#subscribe
https://www.webosose.org/docs/reference/ls2-api/com-webos-media/#sourceinfo
пример возвращаемого sourceInfo из лога шины webOS
3640.414 [PRV] return 5 com.webos.pipeline._MQUBT01X5MiTj4 (/var/run/ls2/lWULGd) com.webos.pipelinectrl._MQUBT01X5MiTj4 (/var/run/ls2/1XB7fo) «{"sourceInfo":{"numPrograms":1,"container":"mkv","seekable":true,"trickable":true,"programInfo":[{"duration":1295552,"numAudioTracks":4,"audioTrackInfo":[{"bitRate":0,"language":"ru","codec":"ac3","sampleRate":48,"channels":2,"audioType":0},{"bitRate":0,"language":"ru","codec":"ac3","sampleRate":48,"channels":2,"audioType":0},{"bitRate":0,"language":"ru","codec":"ac3","sampleRate":48,"channels":2,"audioType":0},{"bitRate":0,"language":"en","codec":"ac3","sampleRate":48,"channels":6,"audioType":0} ],"numVideoTracks":1,"videoTrackInfo":[{"angleNumber":0,"level":3.1,"width":1280,"height":720,"codec":"H264","profile":"high","frameRate":23.976,"progressive":true} ],"numSubtitleTracks":2,"subtitleTrackInfo":[{"language":"ru","type":"text"},{"language":"en","type":"text"} ]} ],"mediaId":"_MQUBT01X5MiTj4"}}

формат методов для переключения дорожек и субтитров
(они не описаны тут https://www.webosose.org/docs/reference/ls2-api/com-webos-media/)

вкл/выкл отображения субтитров
(параметр enable значение true/false, mediaId - id воспроизводимого потока полученный при запуске)

 webOS.service.request("luna://com.webos.media", {
	    method:"setSubtitleEnable",
	    parameters: { 
			"mediaId": "_MQUBT01X5MiTj4",
			"enable": true
			},
	      onSuccess: function (result) {
                 console.log(JSON.stringify(result));
		}
	      },
	      onFailure: function (result) {
	        console.log( "[fail][" + result.errorCode + "] " + result.errorText );
	        }
	 });

переключение дорожек и субтитров
( параметр type - audio для дорожек, text для субтитров, index - номер дорожки/субтитров, mediaId - id воспроизводимого потока полученный при запуске)

 webOS.service.request("luna://com.webos.media", {
	    method:"selectTrack",
	    parameters: {
			"type": "audio",
			"index": 1,
			"mediaId": "_MQUBT01X5MiTj4"
			},
	      onSuccess: function (result) {
                 console.log(JSON.stringify(result));
		},
	      onFailure: function (result) {
	        console.log( "[fail][" + result.errorCode + "] " + result.errorText );
	        }
	 });

Title of the notification

Screenshot (1)

When I am using the Chinese language, the movie or TV show titles in the notifications are still in Russian. Could you please determine the language being used and if it is not Russian, change the title to the original language? Replace "title: data.card.title || data.card.name" with "title: data.card.title || data.card.original_name". Thank you.

не удалось подключиться к torrserver

если в приложеньке для андроида поменять адрес на свою сборку лампы то к торсерверу даже не пытается подключиться, сразу пишет что "не удалось подключиться к torrserver"
пробовал и с http адрес вбивать и без - нет подключения, но с http зелёным ссылку основную подсвечивает
меняешь адрес на lampa.mx и всё начинает работать с теми же настройками.
запускать пробовал на node:20.11.0б коммит 4dfe741

IPTV plugin update: follow redirects

I have a playlist that requires generating special token, once a day.
So I created a script, that generate this token and replace it in the playlist, then redirect you to newly created playlist.

But IPTV plugin seems doesn't understand this redirect, and don't read it.

Could you update it please.

Here is my script that generates m3u playlist with token

<!DOCTYPE html>
<html lang="en">
    <head>
        <script>
            function generateToken() {
                fetch('https://token.example.com/gettoken.json')
                    .then(response => response.json())
                    .then(data => {
                        const tokenRegex = /token=([^&]*)/;
                        const match = data.variants[0].url.match(tokenRegex);
                        let token = ''
                        if (match && match[1]) {
                            token = match[1];
                        }
                        return token;
                    })
                    .catch(error => console.error('Error:', error));
                return 1;
            }

            function generateM3UContent(token) {
                const m3uContent = `#EXTM3U
#EXTINF:-1 catchup="append" catchup-days="7" catchup-type="flussonic",ch1
http://example.com/ch1/video.m3u8?token=${token}
#EXTINF:-1 catchup="append" catchup-days="7" catchup-type="flussonic",ch2
http://example.com/ch2/video.m3u8?token=${token}
`;

                return m3uContent;
            }

            function useRedirectMethod(content){
                const dataUri = 'data:application/x-mpegURL;charset=utf-8,' + encodeURIComponent(content);

                // Redirect the user to the data URI
                window.location.href = dataUri;
            }
        </script>
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Get M3U File</title>
    </head>
    <body>
    <script>
        const new_token = generateToken()
        const new_m3uContent = generateM3UContent(new_token);
        useRedirectMethod(new_m3uContent);
    </script>
    </body>
</html>

[deleted]

(Извините, не в той ветке создал тему)

Ошибки при использовании package.json

Вывод npm install в Arch Linux:

npm ERR! code ERESOLVE
npm ERR! ERESOLVE could not resolve
npm ERR! 
npm ERR! While resolving: [email protected]
npm ERR! Found: [email protected]
npm ERR! node_modules/gulp
npm ERR!   dev gulp@"^3.9.1" from the root project
npm ERR! 
npm ERR! Could not resolve dependency:
npm ERR! peerOptional gulp@">=4" from [email protected]
npm ERR! node_modules/gulp-autoprefixer
npm ERR!   gulp-autoprefixer@"^8.0.0" from the root project
npm ERR! 
npm ERR! Conflicting peer dependency: [email protected]
npm ERR! node_modules/gulp
npm ERR!   peerOptional gulp@">=4" from [email protected]
npm ERR!   node_modules/gulp-autoprefixer
npm ERR!     gulp-autoprefixer@"^8.0.0" from the root project

Есть небольшой вопрос + Баг с сохранением последней страницы

Задавать вопросы через ошибки на github не очень хорошо но вы не оставили своих контактов так что придётся так вопрос:
Почему вы удалили мой код PWA ? Конечно там были ошибки как например ошибки с путями в manifest.json честно ума не приложу как я такое проморгал
Возможно вы удалили его потому что для работы PWA на мобильныз устройствах нужен https ? из-за чего все плагины ломаются т.к. загружены на http сайтах а загружать http контент на https зайтах нельзя но это легко фиксится добавлением мета тега который заставляет все http запросы переадрисовываться на https при тааком раскладе ломается только этот список плагинов (MODS's,Lampac 4k, Онлайн - Prestige, Телевидение by Skaz, Онлайн просмотр @kmvrus, Переключение между парсерами, Стиль кнопок, Tracks.js). Все остальные исправно работают

Ну и что бы это хоть как-то было похоже на ошибку добавлю что в ходе тестов своего форка на своём хосте я обнаружил что если главной страницей стоит Последняя то сайт показывает страницу с ошибкой изначально я думал что это моя проблема но на lampa.mx ошибку удалось воспроизвести переключив главный источник на Cub если стоит TMDB то этого бага нет в то время как на моём хосте этот баг исправляется переключением с TMDB на Cub
Screenshot_2023-02-09-18-31-44-93_ffb2f5e1b976ff98cfc94f359fbce8de

Подписи аудиодорожек

if(from.extra.channels) name.push('Каналов: ' + from.extra.channels)

if(from.extra.fourCC) name.push('Тип: ' + from.extra.fourCC)

Каналов и Тип не попали в переводы интерфейсов, может их (подписи, не значения) вообще убрать/заменить универсальным и менее громоздким вариантом?
Сейчас
1 / rus / MVO TVShows / Каналов: 6 / Тип: ac3
vs универсальный вариант для всех языков интерфейса
1 / rus / MVO TVShows / 6 Ch / ac3

Запуск

Подскажите в чем проблема на 3001 порту
image
и ничего не отображается

[webOS] Настройки субтитров

Ещё немного из API webOS, продвинутые настройки субтитров
сервис com.webos.media

Размер субтитров

метод: setSubtitleFontSize
параметры: mediaId, fontSize
Допустимые значения fontSize: 0, 1, 2, 3, 4
0 - крохотный, 1 - маленький, 2 - стандарный, 3 - большой, 4 -огромный
по умолчанию 2 (стандартный)

Цвет субтитров

метод: setSubtitleColor
параметры: mediaId, color
Допустимые значения color: 0, 1, 2, 3, 4, 5
0 - желтый, 1 - красный, 2 - белый, 3 - зеленый, 4 - синий, 5 - серый
по умолчанию 2 (белый)

Положение субтитров (выше-ниже по вертикали)

метод: setSubtitlePosition
параметры: mediaId, position
Допустимые значения position: -3, -2, -1,0, 1, 2, 3, 4
по умолчанию 0 (стандартное положение), -3 самое низкое, 4 самое высокое

Прозрачность текста субтитров

метод: setSubtitleCharacterOpacity
параметры: mediaId, charOpacity
Допустимые значения charOpacity: от 0 (прозрачный) до 255 (непрозрачный)
по умолчанию 255 (непрозрачный)

Цвет текста субтитров

(делает тоже, что и setSubtitleColor, но среди цветов есть еще и черный)
метод: setSubtitleCharacterColor
параметры: mediaId, charColor
Допустимые значения charColor: black, white, yellow, red, green, blue
по умолчанию white

Прозрачность фона субтитров

метод: setSubtitleBackgroundOpacity
параметры: mediaId, bgOpacity
Допустимые значения bgOpacity: от 0 (прозрачный) до 255 (непрозрачный)
по умолчанию 0 (прозрачный)

Цвет фона субтитров

метод: setSubtitleBackgroundColor
параметры: mediaId, bgColor
Допустимые значения bgColor: black, white, yellow, red, green, blue
по умолчанию black

Подскажите как в браузере тестировать

У меня работают стрелочки и кнопки "Х", "Escape"(отрабатывают как бек).
Не могу найти "ок", по идее пробел если я правильно понял по коду, но почему-то не работает.

Английский язык

Добрый день
Лампа установлена на Xiaomi Stick 4K. Язык на лампе стоит английский.
Проблемы:

  1. Очень долго грузятся постеры и многие вообще не появляются (tmdb). При смене лампы на русский язык постеры загружаются как нужно.
  2. Торренты не работают если лампа на английском языке, при смене на русский язык всё сразу моментально работает.

Feature Request: Play torrent already added to torrserver

Hi,

Sometimes I find it inconvenient to search for torrents via Lampa+Jackett and manually add things I'd like to watch direct to Torrserver.

Would it be possible to have an option to check what's already on Torrserver and play directly from that list?

Thank you

Лампа не загружает торренты с jackett

Всем привет. У меня есть очень странная странная проблема.
Вот захожу, значит, на фильм. Хочу загрузить его торренты.
Но не получается, говорит, что парсер недоступен:
photo_2022-11-23_11-02-51
Но это не так, потому что парсер отвечает, и даже говорит, сколько он нашёл торрентов:
photo_2022-11-23_11-02-56
Логи лампы (не обращайте внимание на разницу запросов, скрины сделаны в разное время, но суть одна и та же, он отвечает таким образом на любой фильм):
Снимок экрана 2022-11-23 110955
Это очень странно, может с настройками лампы что то не так, вот настройки:
Снимок экрана 2022-11-23 111757
В общем, прошу помощи у работяг, а то без бесплатных фильмов плохо:(
Заранее спасибо.

Country of Origin on the detailed page

截屏2023-06-23 10 45 29 When I was reading the detailed description of the movie, I noticed that the country of origin was in Russian. Can it be changed to the language of my choice?

штатный плеер webos 6

if(params.need !== 'com.webos.app.smartshare'){

выяснилось, что на webos 6.х они снова поменяли ID приложения плеера на com.webos.app.mediadiscovery
Итого возможные варианты
com.webos.app.photovideo
com.webos.app.smartshare
com.webos.app.mediadiscovery

Выбор плеера для DLNA

Возможно ли сделать отдельный выбор для проигрывания в dlna, как это сделано для торрентов?

[Feature request] Скорость проигрывания x1.1

Хорошо бы иметь более гибкие настройки скопости в плеере с шагом 0.1, но одной дополнительной скорости x1.1 уже было бы достаточно.
Часто бывает что 1.0 — это слишком медленно, а 1.25 уже неестественно быстро. 1.1 обычно оптимально в таких случаях, где ускорения и не заметно :) Можно конечно ради этого на VLC переключаться, но это не очень удобно.

Дабавить для андройдов вывод версии apk полученную через AndroidJS.appVersion()

Каждый день в группе лампы для андройд ТВ звучат дурацкие вопросы, типа:

у меня сейчас установлена версия 1.3.9, всё вроде работает, стоит ли обновлятся на 7.7.7 -80 ?

https://t.me/lampa_android/94788

Предлагаю в about добавить версию apk полученную через AndroidJS.appVersion()

Неверное определение параметра функции 'SettingsApi.addParam(data)'

В api настроек некорректно определён параметр data.

Текущее определение

data:{
  component:string,
  name:string,
  type:string, 
  values:string|object, 
  default:string|boolean
}

Более кореектно будет так:

data: {
  component:string,
  param:{
    name:string,
    type:string,
    values:string|object,
    default:string|boolean
  }, 
  field:{
    name:string,
    description:string|undefined,
  },
  onRender:((item)=>void)|undefined,
  onChange:((e)=>void)|undefined
}

Идеально так:

data: {
  component:string,
  param:{
    name:string,
  }&({
    type:'input',
    values:string,
    default:string
  }|{
    type:'select',
    values:{[key:string]:value:string},
    default:string
  }|{
    type:'trigger',
    values:{
      'true':string,
      'false':string
    }|undefined,
    default:boolean
  }|{
    type:'label',
    values:string,
  }|{
    type:'button'
  }|{
    type:'static'
  }), 
  field:{
    name:string,
    description:string|undefined,
  },
  onRender:((item)=>void)|undefined,
  onChange:((e)=>void)|undefined
}

Выбор плеера не работает

Снимок экрана 2024-02-06 в 20 57 06
Скачал приложение для Mac os. В родном плеере нет звука при просмотре торрентов, выбрал использовать сторонний и такая ошибка.

Добавление параметров для tmdb/cub

Привет, для Lampa.Activity
Можно добавить параметры

  1. watch_region
  2. with_watch_providers
  3. with_networks
    Первые два работают с фильмами, третий на сериалах в ендпоинтах discover
    Что бы вытягивать с tmdb/cub фильмы по сетям)

[Feature request] Гибкие настройки масштаба интерфейса

Сейчас все три опции масштаба (Меньше - Нормальный - Больше) всё равно очень крупные для ПК интерфейса. Хорошо бы иметь процентное масштабирование интерфейса или хотя бы добавить ещё 2 уровня уменьшения.

Searching via Jackett

parser.js

line 248

u = Utils.addUrlComponent(u, 'Category[]=' + (params.movie.number_of_seasons > 0 ? 5000 : 2000) + (params.movie.original_language == 'ja' ? ',5070' : ''))
ruins the search in many cases!

  1. also, need to disable (optionally maybe) all of theese additional params in manual search, because Jacket's instant manual search don't use them by default, and return's more results
   if(!params.clarification){
        u = Utils.addUrlComponent(u,'title='+encodeURIComponent(params.movie.title))
        u = Utils.addUrlComponent(u,'title_original='+encodeURIComponent(params.movie.original_title))
    }

    u = Utils.addUrlComponent(u,'year='+encodeURIComponent(((params.movie.release_date || params.movie.first_air_date || '0000') + '').slice(0,4)))
    u = Utils.addUrlComponent(u,'is_serial='+(params.movie.first_air_date || params.movie.last_air_date ? '2' : params.other ? '0' : '1'))
    u = Utils.addUrlComponent(u,'genres='+encodeURIComponent(genres.join(',')))
    u = Utils.addUrlComponent(u, 'Category[]=' + (params.movie.number_of_seasons > 0 ? 5000 : 2000) + (params.movie.original_language == 'ja' ? ',5070' : ''))

Ошибка: не удалось получить HASH

Весь софт крутится на Ubuntu Server 22.04.3 amd64 LTS, Jackett отрабатывает, в TorrServer ничего не прилетает, а LAMPA при попытке воспроизвести любой релиз вываливает ошибку, «не удаётся получить HASH». Перезапустил всё вплоть до ОС — не помогло. В логах ничего. Куда копать?

LAMPA из GIT от 01.05.2024
Jackett из GIT от 30.04.2024
TorrServer MatriX.132

Understanding LG TV Subscribe Method

Hi @yumata , I hope you're doing well, I'm the dev lead at Stremio, we talked some years ago on telegram (not sure if you remember)

I was hoping we could get your input on an issue we have in Stremio, the WebOS video player (available at: https://github.com/Stremio/stremio-video/blob/master/src/WebOsVideo/WebOsVideo.js ) uses very similar logic to the Lampa video player.

What we do is:

I've been trying to figure out what the issue is with our implementation for weeks but had no success, so I'm writing you in hopes that you could help us figure it out.

Sometimes the subscribe method fails with {"errorCode":0,"returnValue":false,"errorText":"No Error","mediaId":"<invalid mediaId>"} (retrying seems to fix this though..) other times it fails with {"serviceName":"com.webos.pipeline._2aviVu524UNA9e","returnValue":false,"errorCode":-1,"errorText":"com.webos.pipeline._2aviVu524UNA9e is not running."} (this one sometimes retrieves sourceInfo, but not always) and there are even times where there is no error at all, yet it still does not get sourceInfo

Users say that if they close the stream and start it again a few times, the sourceInfo is retrieved correctly at some point.

What we noticed is that when it does not work at all, the result.bufferRange always shows 0 for details. (it is like it doesn't try to load the video at all)

Here is an example of logs when it does not work: (and had no error)
Screenshot 2024-06-02 at 11 53 12

And here is an example of logs when it does work:
Screenshot 2024-06-02 at 11 52 59

We're really hoping that you could offer some clues on getting this working properly, thanks in advance!

[Feature request] Настраиваемый размер постеров (или количество в ряд)

Текущие размеры постеров в ПК версии кажутся чрезмерно большими. Если на начальном экране ещё ладно, то во вкладке "Ещё" с бесконечным скроллингом вниз — 5 постеров горизонтально и 1,5 вертикально — это не очень удобно.
000
Для меня оптимальным было бы 8-10 в ряд, как это было сделано в FS клиенте (там размер постеров статичен, а количество менялось от размеров окна):
001

Поэтому хорошо было бы самому задавать количество постеров в ряд в настройках.

Плейлист и список серий после рекламы

После показа рекламы в сериале плейлист со списком серий становится пустым и не работает кнопка перехода на следующую серию (не переключает и пропадает отображение текста с названием серии)

Если выйти из плеера после просмотра рекламы и снова открыть серию то все ок

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.