LINUX.ORG.RU
ФорумTalks

«Скучно», дайте баг или запилить куда-то фичу

 , , баги, ,


2

1

Устал байты дрочить и в свой быдлокод втыкать, надо отвлечься. Я в курсе что можно зайти на гитхаб или иное и найти там что угодно себе по душе, но долго объяснять, надоело рыть и править никому ненужное, хоца новенького, временного, отвлечься. Где есть лично вам бесячий баг или чего в чём-то не достаёт.

  • Киньте ссылку на проект tar.gz/гит/фигит или типа того.
  • Что не так или что надо
  • Как сейчас и как должно быть

Всё, больше меня ничего не интересует. C и/или Lua
Может утилита какая падает на C, или очередная шизанутая игра на Lua не запускается на новой версии Love2D. Понятия не имею что можно предложить :)

★★★★★

Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)

Если нечем заняться, можешь взять pnmtopng и отучить её писать обычные информационные сообщения в stderr. Это баг, так быть не должно. В stderr должны писаться только ошибки. Сейчас front-end на Tcl/Tk вынужден перенаправлять её stderr в /dev/null, чтобы никому не нужная инфа не лезла в лог и не отображалась красным цветом, как ошибка. Решение это плохое. А вдруг и правда там будет сообщение об ошибке, а оно уйдёт в /dev/null? В slackware всё работает, там патч накладывается, а в Debian & Co патчить никто ничего не собирается, всем пох. Вобщем, если запилишь исправление в исходник (который пойдёт в дистры), я тебе спасибо скажу. Всё, что нужно сделать – выкинуть нахрен информационные сообщения, которые никому неинтересны (сколько оно там цветов использовало – да всем безразлично).

Если осилишь, то есть ещё одна программа, нарушающая приниципы UNIX-way – dd. Раньше она была без проблем. Но потом какой-то нехороший человек её испортил. В итоге она тоже стала писать никому не нужную инфу в stderr. Проблема с ней та же – во front-end невозможно отличить просто инфу от сообщения об ошибке. Отучи её, пожалуйста, писать всякую хрень в stderr. Пусть пишет туда только сообщения об ошибках.

nobody ★★
()
Ответ на: комментарий от nobody

В slackware всё работает, там патч накладывается

если запилишь исправление в исходник (который пойдёт в дистры)

Тут как бы патч уже есть, и почему то он накладывается только в слаквари, почему его не принимают в апстрим? Выхода на последний у меня нет. Тут надо писать в апстрим тикет, мол вот такое вот поведение, это плохо, вот в слакваре есть патч, всуньте себе это. Тут как бы всё что надо уже сделано, остался административный вопрос и нужен просто тот кого послушают, сомневаюсь что это буду я, я не умею пропихивать патчи в апстрим.

Всё, что нужно сделать – выкинуть нахрен информационные сообщения

Такое в апстрим никто не примет, я не в курсе почему у них идут информационные сообщения на stderr но предполагаю потому что stdout они используют как один из выводов. По хорошему, раз так, то там нужно изменение поведения по умолчанию дабы информационные сообщения были отключены изначально и включались например через --verbose или типа того, просто придти и сказать вот я выпилил это прямой путь быть посланным нахер :) .

Глянул,

pnmtopng -phys 800 800 0 input.pnm > output.png

ну да они используют stdout по этому всё иное шлют на stderr, на деле так многие делают например так можно одновременно выводить прогрессбар загрузки в виде строки с возвратом каретки и лог загрузки линейный чего-либо и прочие независимые штуки без всякого ncurses, сам по себе вывод программ на stderr ничем не логируется, если только это не делается явно. Я понимаю про что ты. Но с текущей постановкой я уверен пошлют просто нахрен… Ну, это я так думаю. Надо им в список рассылки писать и убеждать, повторюсь, выпиливать информационные сообщения не вариант, от слова совсем, их надо отключать и включать по ключу, нужен ключ. А вот про это уже можно подумать.

dd

Во первых это GNU так что нереально, патчи они принимают с письменным заявлением о передаче прав :) Во вторых man dd ::)

status=LEVEL
              The  LEVEL of information to print to stderr; 'none' sup‐
              presses everything  but  error  messages,  'noxfer'  sup‐
              presses  the  final transfer statistics, 'progress' shows
              periodic transfer statistics

Используй так dd if=/dev/random of=/dev/null status=none и всё. Проблема решена.

А вот для pnmtopng такой фигнюшки нету

Если нечем заняться

Ну тут уже навалили будь здоров :D Пока для krash делаю, показалось приключение на 20 минут, но нет, потом следующий, потом как получится =)

LINUX-ORG-RU ★★★★★
() автор топика
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)
Ответ на: комментарий от LINUX-ORG-RU

Про dd – спасибо! Не знал. Оно ж всегда раньше было UNIX-way, потом перестало, а в man я чё-то не удосужился глянуть, чтоб вернуть всё как было. (Но вообще-то по-хорошему должно быть по умолчанию без вывода всякой хрени в stderr.)

Про апстрим. Я ж не про дистры, а про исходники. Если туда впилить опцию ком.строки типа –verbose и по умолчанию её задисаблить, то прожка во всех дистрах будут работать как положено. Ты ведь сам про это написал, и никаких админ.вопросов не возникнет. Потому что всем, кроме св.Патрика положить на патчи. Просто будет тупо работать везде. Всего лишь опция ком.строки, по умолчанию выключено.

Насчёт того, чтобы использовать stderr для всяких прогресс-баров. Ответ тут таков: никогда нельзя использовать для этого stderr. Оно только для ошибок. Иначе невозможно корректно написать юзерскую морду на тикле/питоне/etc. Во front-end’е stderr перенаправляется для сообщения юзеру об ошибках. А в stdout можно гнать всякие прогресс-бары («86%\n») с установкой setlinebuf(stdout) в Си-шном back-end’е. Это дело морда отпарсит и выдаст юзеру как полосочку прогресса.

nobody ★★
()
Ответ на: комментарий от nobody

по-хорошему должно быть по умолчанию без вывода всякой хрени в stderr

Я не смотрел, но может быть это поведение меняется на этапе сборки, просто собирать стали по иному, это лишь предположение, я не знаю.

Я ж не про дистры, а про исходники.

Апстрим это и есть исходники, тоесть наивысший их источник, автор. Вот автору и надо доказывать что надо так, а не сяк. А уже дитсрибутивы будут качать у него. Дистрибутивы это не апстрим.

Это дело морда отпарсит и выдаст юзеру как полосочку прогресса.

В случаях перенаправления вывода по пайпу или через > это невозможно. А иногда требуется сделать вот так

appname > appdata.txt
progress: 53%, 164 Mb/s, remaining 15 Minuts

Тут программа делает вывод на stdout он занят, его нельзя трогать. А информация о долгом процессе который в теории может зависнуть, может замедлится (и нужно предпринять действия) работает вот так, (с возвратом каретки это будет статичная строчка обновляющаяся)

fprintf(stderr,"progress: %d%%, %d Mb//s, remaining %d Minuts\r",p,s,m);

В этом нет ничего страшного если это выключено по умолчанию и включается через --verbose например, или явно отключается типа --process-log=off, просто может стоять такая вот задача, перенаправление вывода и показ процесса работы одновременно. И эту задачу никак более простым путём не решить. Но да, хорошо бы было если это можно было переопределять, выключать, включать.

Так или иначе тут я развожу ручками :( Ну, как я выше сказал, если вдруг доберусь то добавить ключ выключающий логирование на stderr могу в теории. А там примут ли изменения в основное дерево кода уже хз. Увидим.

LINUX-ORG-RU ★★★★★
() автор топика
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

Дистрибутивы это не апстрим.

Я тут своё сообщение перечитал, потом твоё, потом снова своё. Вобщем, второй абзац из моего можно выкинуть. Видимо, мы друг друга не поняли (про апстрим). Почему-то я решил, что ты про дистры. Лексика разная, у нас upstream – это то, что поставляется потребителю. А netpbm/pbm+ не поставляется напрямую, оно идёт в дистры, поэтому я и решил, что ты про дистры, и проблемы у тебя будут с дистро-мэйкерами.

В случаях перенаправления вывода по пайпу или через > это невозможно.

Чегой-то? Си-шка гонит «1%\n», «2%\n» и т.д. Разумеется, ставит setlinebuf(stdout) в main() при старте. Всё работает. На консоли, через >file (который можно смотреть через less), и во front-end’е (который перенаправляет stdout на себя, парсит выхлоп и показывает прогресс). Чего бы ему не работать? Кста, setlinebuf(stderr) тоже лучше сделать. И front-end’у хорошо, и без перенаправления тоже, чтоб выхлоп на консоли не путался.

appname > appdata.txt

Если нужен прогресс-бар, значит не надо так делать. Это долгий процесс? Укажи ему файл через ком.строку.

fprintf(stderr,«progress: %d%%, %d Mb//s, remaining %d Minuts\r»,p,s,m);

Это что за безобразие такое? Если нужно проверить на работу в терминале, есть isatty(3). Можно для него специально форматировать строку. А просто перезаписывать через ‘\r’… Ну такое себе. Если строка станет короче, появятся нестёртые артефакты в конце строки. Например, было у тебя 100 Мб/с, стало 1 Мб/с, вот тебе пара оставшихся артефактных символов в конце строки. Есть же правила работы с терминалом!

просто может стоять такая вот задача, перенаправление вывода и показ процесса работы одновременно. И эту задачу никак более простым путём не решить. Но да, хорошо бы было если это можно было переопределять, выключать, включать.

Именно так и надо. Если предполагается долгий процессинг, значит back-end должен поддерживать опцию -o/path/to/outfile. И ещё опцию i, которая включает вывод информационных сообщений в stdout. Оставь, пожалуйста, stderr в покое! Оно только для выдачи сообщений об ошибках. Иначе хрен ты корректно напишешь front-end.

Ну, как я выше сказал, если вдруг доберусь то добавить ключ выключающий логирование на stderr могу в теории. А там примут ли изменения в основное дерево кода уже хз. Увидим.

Ну я надеюсь!

nobody ★★
()
Ответ на: комментарий от nobody

Это что за безобразие такое?

:)

артефактных символов в конце строки

Ну выводить не числа, а строки фиксируя размер %4s и/или отрезая данные до нужных лимитов хехе, костыльвания короче :) Ладно, это просто пример (но я так делаю, атата ага)

Ну я надеюсь!

Я тоже :D Завтра послезавтра для crash доделаю, следующий mittorn, а там винда в виртуалке, сеть и всё такое, застряну, я уже молчу про всё остальное. Так что кхм, могу и болт забить сказав фьсьйооо йа усталь :D, так что, ну ты это, не особо там на часы поглядывай хехе

LINUX-ORG-RU ★★★★★
() автор топика
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

Ну выводить не числа, а строки фиксируя размер %4s и/или отрезая данные до нужных лимитов хехе, костыльвания короче :) Ладно, это просто пример (но я так делаю, атата ага)

Не надо так делать! Есть info libc. Почитай, пожалуйста, про работу с терминалом. Есть, например, функция очистки строки. Нужно учиться делать свою программистскую работу корректно, а не абы как. Я понимаю, что в ВУЗах этому не учат, но самообразование никто не отменял пока ещё.

так что, ну ты это, не особо там на часы поглядывай хехе

Да ладно. Я ж тебе не работодатель, чтоб требовать чего-то.

nobody ★★
()
Ответ на: комментарий от krasnh

Я увлёкся, так что ещё повожусь, хехе. Теперь оно может принимать ссылки на epg.xml.gz архивы размером в пол гигабайта не выжирать 6 гигов оперативки строя DOM из XML для поиска каналов, как было до этого и не будет итерировать весь XML для поиска телепрограмм, на больших EPG это порой секунд по 5 ожидания. Пока не знаю что делать со случаем когда ссылки на EPG (как в нормальном IPTV плейлисте) нет и она отдельная (как в ПазлТВ), наверное для такого случая будет ещё враппер над mpv который будет принимать просто две ссылки, или два файла или в любой иной комбинации, приводить к ожидаемому виду и уже это скармливать в mpv где это же будет подхватывать плагин.

Поэтому ты как единственный потенциальный пользователь если у тебя есть пожелания/ожидания то накидывай, не факт что они будут, но зато я буду про них знать, ну например я в целях оптимизации обработки огромных EPG выкидываю данные с описанием телепередач, оставляя только названия и время. Хотя по идее можно показывать и описание того что сейчас вообще показывается в данный момент.

Основные твои пожелания как я понимаю таковы, закинуть плагин в ~/.config/mpv/scripts/ и запустить mpv http://lalala/playlist и чтобы телик показывал с каналами и всё. То как в изначальном плагине было, а именно, распихивание скачанных epg по каталогам, этим ты заниматься не хочешь.

И да, внешние epg данные будут кешироваться ибо на каждый чих XML качать, разбирать и искать по нему херня полная. И поэтому иногда помимо нажатия на h для показа телепередач, надо нажать на u например для обновления списка телепередач для текущего плейлиста или a для всех закешированных плейлистов. Тут у меня сомнения, но по другому никак ибо я уже который раз натыкаюсь на самосборные IPTV плейлисты где EPG на неделю вперёд здоровенные в сотни магабайт и с ними работать влоб просто нереально, SLAXML 500 мегабайт XMLля разворачивает в DOM размером почти 6 гигабайт… И короче либо отказываться работать с данными такого размера, либо эти данные приводить к более скромному виду и держать полученный кеш данных при себе, обновляя его по мере необходимости. Более чем раз в сутки получать новые EPG данные нет смысла кажется.

Ах да, тут

Попросил чтобы epg совали в m3u ссылкой, чтобы никаких телодвижений и нашлёпок над mpv делать не нужно было. Не знаю, опции включения такого я не увидел, может оно там и есть, но вроде нет.

LINUX-ORG-RU ★★★★★
() автор топика
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)
Ответ на: комментарий от LINUX-ORG-RU

Попросил чтобы epg совали в m3u ссылкой,

Посмотрел, ответ положительный от автора.

ты как единственный потенциальный пользователь

Я готовый продукт скину разрабу, выложу на форуме, где разраб делает легковесные сборки на основе привычных дистров. Причем, главная философия там - именно «легковесность», где тот же yuki-iptv отвергается из-за «тяжелых» зависимостей, а вот .lua, для легкого mpv, будет принят на ура. Так что охват будет всяко больше одного.

выкидываю данные с описанием телепередач

Не лучшее решение, имхо. Я тут смотрю данное ip-tv, и, помимо того, что приходится искать телепрограмму в интернете, чтоб узнать название фильма, так еще и заходить на кинопоиск, чтоб понять о чем сюжет. )

krasnh ★★★★
()
Последнее исправление: krasnh (всего исправлений: 3)
Ответ на: комментарий от krasnh

если у тебя есть пожелания/ожидания то накидывай

Часто еще спрашивают о работе с архивом телепередач. На том же ПазлТВ есть такая строка (в разделе «Серверы», в самом низу), Kodi тоже вроде умеет. Но я без понятия, как это работает и никогда не пользовался. Но спрашивали меня, да, значит востребовано.

Более чем раз в сутки получать новые EPG данные нет смысла кажется.

Согласен. Основной интерес здесь и сейчас, что там будет через неделю, это излишне.

krasnh ★★★★
()
Последнее исправление: krasnh (всего исправлений: 2)
Ответ на: комментарий от krasnh

из-за «тяжелых» зависимостей

Ну SLAXML я сейчас сделал так чтобы таскать с собой, а не через luarocks ставить, плюс учитывая что epg могут быть ссылками на gz архивы, то для их обработки требуется curl + zcat в системе, тогда сделаю это опциональным чтобы можно было отключить работу с сжатым epg в конфигурации, наверное и кеширование тоже переделаю на опциональное. Но curl нужен пока.

Не лучшее решение, имхо.

Ну тогда если оно есть, буду сохранять, надо ещё тогда придумать как показывать, но записал. Хотя тогда придётся ещё подумать над размерами всего этого, ну и скоростью, разобрать каждый раз 500 мегабайт XML это ~30 секунд ожидания, это долго, именно поэтому кеширование есть, с описанием это увеличивается до минуты и больше, буду думать.

Часто еще спрашивают о работе с архивом телепередач.

Это уже что-то никак не связанное с m3u и epg и отображением текущих телепередач, это скорее к просмотру того что когда-то было. У тебя всё равно нет возможности прокручивать там телепередачи, только текущая выделенная, сверху те что прошли, снизу те что будут и всё. Ладно, я про это первый раз слышу, может тоже просто не понял.

Ладно, сегодня вечером будет время, сяду дальше поковыряться :)

И да, потом опубликую как форк mpvEPG ну переименую в EPGTV например, только под конец надо сделать совместимость с авторской работой, а то я её сломал, если автор изначальный примет изменения то хорошо, будет сам дальше тыкать, если нет, то останется форк.

LINUX-ORG-RU ★★★★★
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

Ну тогда если оно есть, буду сохранять, надо ещё тогда придумать как показывать, но записал.

Думаю, это нечасто востребуемая функция. Т.е., реализовать как-нибудь по отдельному требованию (хоткею?), чтоб на совершенно незнакомом контенте (фильме) упростить выбор - смотреть или «прощелкнуть» канал. Если это конечно упростит задачу, а не усложнит.

upd. Вспомнил, что в yuki-iptv подробное содержание текущей телепередачи открывалось в отдельном окне по хоткею. Наверно в консольном mpv это посложнее будет, так что на усмотрение - если проще без этого в рамках mpv, то пусть.

krasnh ★★★★
()
Последнее исправление: krasnh (всего исправлений: 1)
Ответ на: комментарий от krasnh

Автор/соавтор tdw1980 добавил epg данные в m3u, схорони себе сервер 3.23.3 что он выложил (а то мало ли), скоро пригодится уже всё давно, но меня бесит небольшая скорость, чиню :)

Ну и спасибо автору сервера, что откликнулся, как минимум с этим источником IPTV всё будет работать изкоробки

LINUX-ORG-RU ★★★★★
() автор топика
Ответ на: комментарий от krasnh

Вот так как-то

Так подёт?

При показе EPG данных всё затеняется чтобы читать было возможно.
Описание между названием и последующими программами, лучшего решения не нашёл, справа сбоку хотел расположить, но там задолбаешься текст выравнивать.

Если вот такое устроит, то чищу код и выкладываю, будешь тестить.

LINUX-ORG-RU ★★★★★
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

Глянул mpvEPG, с которого все и началось. Это действительно «Простая информация EPG», как и указано в описании, и то что ты добавил содержание, это уже выход за рамки проекта. Это судя по скриншотам mpvEPG и твоего EPGTV (твое примерное название).

Подумал тут определить собственную ‘философию’ использования EPG при просмотре в mpv. Для простоты, мысленно выключу все группы в ПазлТВ, оставив только фильмы.

  • Не все каналы подписывают текущий фильм, значит есть необходимость узнать название. Это первое [1].
  • Фильм может быть совершенно не знаком, и желательно получить хотя бы некоторое представление о жанре, кратком содержании/аннотации. Это второе [2].
  • При подходе фильма к концу, новое нажатие EPG, для понимания, стоит ли остаться на канале или искать другой. Это третье [3].
  • При нежелании листать каналы, можно было бы пролистать телепрограмму, увидеть интересный контент и уже потом перейти на интересующий канал. Это четвертое [4].
    Но, как я понял, данный функционал сильно выходит за рамки первоначально кода mpvEPG.


p.s. Как принято организовывать EPG в ‘лучших домах Лондона и Парижа’. Что заметил, на домашнем телевизоре при нажатии на guide на пульте:
Открывается таблица всех каналов, с телепрограммой для каждого. Для текущего - краткое содержание в две строки (с многоточием) в верху таблицы, при нажатии ok - более подробное описание.

krasnh ★★★★
()
Ответ на: комментарий от krasnh

Но… первоначальная задача ведь была реанимировать ‘заброшенный’ mpvEPG и она выполнена даже с перевыполнением судя по скрину, т.к. поддержка описания не входила в первоначальный проект. Я как-то упустил этот момент, когда отвечал на твои комменты по ходу твоих восстановительных действий.
Так что выкладывай, потестю. Предварительно можно ставить чекбокс «Решено». )

krasnh ★★★★
()
Ответ на: комментарий от krasnh

это уже выход за рамки проекта.

Не сильно, у меня цель была в избавлении от ручной работы, с тем плагином тебе нужно, найти файл или ссылку m3u с потоками каналов, найти к нему EPG ссылку, скачать её, затем этот EPG XML вручную разделить на два файла, channels.xml, epg.xml затем положить эти два файла в каталог внутри mpv. Я всё это выкинул. (Хотя ради совместимости можно вернуть)

первоначальная задача ведь была реанимировать ‘заброшенный’ mpvEPG

Не совсем, задача была

Можно ли идею данного скрипта mpvEPG, реализовать при просмотре любых IPTV плейлистов через mpv?

Взять за основу и реанимировать это разное =)

Реанимировать mpvEPG это 20 минут и пулл-реквест, там всего два бага и оно вуаля и работает, но как я сказал выше тебе нужно всё вручную делать, и ещё там не сказано тебе для работы всего этого нужно не только вручную EPG подготавливать, но и ещё скармливать в mpv ссылку на поток в конце имени которого есть название самого ТВ канала, имя которого совпадёт с ручками созданным channels.xml и уже через него будет поиск в ручками положенном epg.xml, это всё хорошо и от этого плагин маленький, но это жутко неудобно и это никак не будет работать с m3u iptv, не то что любыми, просто ни с какими не будет, кроме видимо неизвестного мне enigma/dreambox я так и не понял что это. Но автор в любом случае молодец.

При нежелании листать каналы, можно было бы пролистать телепрограмму

Механизма пролистывания телепрограммы к сожалению нет, только отображение текущей + описание + список того что будет дальше в этот день.

Ладно, пока оставлю так как есть, сегодня не знаю получится ли выделить время, но короче на днях, вычищу код от экспериментов, попроверяю на плохих данных чтобы плагин не падал и на гитхаб закину.

Предварительно можно ставить чекбокс «Решено». )

Не, дальше https://github.com/FWGS/http-folder-uploader от mittorn чинить буду пробовать :)

Ну короче ладно, как подготовлю, выложу.

LINUX-ORG-RU ★★★★★
() автор топика
Ответ на: комментарий от krasnh

Ой да блииин, короче я лопух и олух как хош обзывайся, я настолько заигрался с локальными файлами что не заметил что mp.get_property('playlist-path') в случае ссылки если ссылка на конце не имеет расширения m3u отдаёт nil, а не ссылку… И тогда надо проверять просто path, а там может уже быть что угодно, ой блин, а у меня на этом завязано многое уже.

«Дневники разработчика»: Том первый - «Переделовай довай»

Печаль в том что я не знаю пока как… Бум думать

LINUX-ORG-RU ★★★★★
() автор топика

Собери и обучи Large Language Model for C/C++, скорми ей кеды и ведро - может хоть какой-то прогресс будет...
Ну и допом - full-fuzzing tests, all-the-way.

etwrq ★★★★★
()
Ответ на: комментарий от krasnh

Всё ещё есть технические проблемы которые придётся походу как-то костылями в mpv обходить, два для читал документацию и искал решение, ну да ладно пока оно чинится вот погляди, как лучше?

Так?

Видно всё описание (если оно есть) и всё понятно, но влезает лишь часть телепередач на день. Чем ширше описания (ой далеко не всегда они такие) тем меньше видно что дальше будет

Или вот так?

Описания в продолжающейся строке которые обрезаются по краю экрана, влезает много телепрограмм, но описание обрубком

Или вообще без включения описания программ которые будут дальше?

Тут видно что названия могут быть длинные сами по себе и описания тут будут уместны скорее многострочные.

Может разную детализацию отображения на разные кнопки повесить?

Сейчас есть бинды на

  • h – показать телепередачи (показать)
  • u – обновить телепередачи текущего плейлиста (обновить)
  • g – загрузить весь кэш epg и искать телепередачи из всего кеша что есть (расширенный поиск)

Может сделать экранные кнопки вместо биндов или/и в дополнение к ним? Ну типа в углу экрана по h можно показать кнопочку тык по которой будет по кругу переключать информативность отображения

  • обычное
  • с частичным описанием
  • с полным описанием

Как думаешь? :)

Сорян что пока не выкладываю, там реально с плейлистами эмм… вернее с их содержимым дела не очень, получать можно всё, а вот задавать данные уже фигова, заголовки нельзя путью задать, хотя и это не важно, ссылки без расширений не читаются как плейлист, я всё это уже обошёл, но пока ещё надо проверять да проверять, то там отвалится что, то тут :( Я жопорук. Но с корректными плейлистами сейчас всё шикарно. Так или иначе, по поводу выше описанного своё мнение скажи, дорогой мой пользователь :D Завтраками я тебя ещё покормлю хехе

LINUX-ORG-RU ★★★★★
() автор топика
Последнее исправление: LINUX-ORG-RU (всего исправлений: 3)
Ответ на: комментарий от LINUX-ORG-RU

UDP: Сделал прокрутку по клавише n типа next, теперь описания под телепередачами можно по сути оставить полноценное ,если оно есть.

Так-что по сути все твои пункты на данный момент покрыты, если что ещё то пиши, пока один фиг искать путь решения с типами фалов…

LINUX-ORG-RU ★★★★★
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

Знаешь, если схватиться за бритву Оккамы и махнуть наотмашь вправо-влево, то окажется, что описание, для тех же новостных каналов, и даром не нужно, а количество отображенных программ (h) любого канала вряд ли нужно больше 2-3х (текущая и та что за ней). И само собой, описание для будущих передач тоже излишне.

С учетом вышесказанного, вот это было бы хорошо:

будет по кругу переключать информативность отображения

  • обычное
  • с частичным описанием
  • с полным описанием

Но…, я помню по yuki-iptv (выкладывал скрин), как было, когда листаешь список каналов и видишь название фильмов, процент оставшейся продолжительности, но понятия не имеешь о чем они. И вот приходится на каждый чих нажимать G, чтоб увидеть подробности. Мне это показалось жутко неудобным.
Так что правильней, имхо, чтоб несколько строчек все же было видно всегда. Да, как я сказал выше, для новостных это нафиг надо, но тут уж речь об эргономике, :) когда отрицаются лишние действия пользователя. Так что, как ты и предложил, но вычеркнув один пункт:

  • обычное
  • с частичным описанием
  • с полным описанием
krasnh ★★★★
()
Последнее исправление: krasnh (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

Автор/соавтор tdw1980 добавил epg данные в m3u, схорони себе сервер 3.23.3

А вот он у меня никак не заработал с mpv - запускаю, пауза, даже без появления окна mpv, и через несколько секунд он закрывается.
Что только не пробовал, и настройки отключал в разделе Программа, и настройки в других разделах. И пробовал в вирте с дистром, где самое последнее ПО (garuda xfce), доустановив python2 2.7.18. Все безуспешно.

Так что я рад, что у тебя работает с ПазлТВ 3.23.3. Но как, Холмс? )

krasnh ★★★★
()
Ответ на: комментарий от krasnh

на счёт того что выше, понял принял

по поводу сервера, фик знает, пкажи и погляди сам

  • лог запуска python2 run.py
  • лог запуска mpv http://127.0.0.1:8185/playlist

У меня всё в том же чруте запахало, оно иногда ошибками сыпало я просто перезапускал и всё, галочки там случайным образом понатыкивал.

Я ещё вот этот

использовал, ничё запускать не надо, ссылку кидаешь и всё. Но там EPG крупные 120 и 460 мегабайт, для тестов оно мне и нужно.

LINUX-ORG-RU ★★★★★
() автор топика
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

Всё ещё есть технические проблемы которые придётся походу как-то костылями в mpv обходить

Глянь vdr-streamdev-client-0.3.5.lua [1]. Я его когда-то нашел на просторах сети, как способ организации vdr (сам не понимаю что это) посредством mpv и с EPG, там еще скриншот был красивый, но сейчас ссылки на тот форум уже все битые.

В скрипте, поиском, до 100 упоминаний EPG. Может на какие идеи подтолкнет, а может и нет.

krasnh ★★★★
()
Ответ на: комментарий от krasnh

Глянь

С EPG проблем нет (а те что были решены), проблема была в том что, если сказать по простому то вот

  • mpv http://127.0.0.1:8185/playlist.m3u всё ок
  • mpv http://127.0.0.1:8185/playlist всё тотально не ок

Я обошёл уже проблему, наверное тебе не интересно будет читать в чём суть и как решилось. Работает и ладно. Но сейчас код грязный, до жути, я не буду его прям полировать, так, мёртвое повыкидываю, некоторые вещи в конфиругацию вынесу чтобы не вшивать ну и так по мелочи всякие неизбежные косяки попоправляю и хватит думаю, а то так можно до бесконечности откладывать.

Пока буду тестировать, что-то по мелочи править и так по кругу. Затем README напишу да выложу. Сначала на gitflic закину, потеснишь, что не так скажешь, а потом если тебе будет удобнее на гитхаб тоже закину (у меня там войти не получается сейчас, я чёта с генератором одноразовых кодов двухфакторной авторизации перемудрил хехехе)

LINUX-ORG-RU ★★★★★
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

mpv http://127.0.0.1:8185/playlist.m3u всё ок
mpv http://127.0.0.1:8185/playlist всё тотально не ок

Забавно, выше я ‘жаловался’ на незапуск mpv с ptv3-3.23.3. Если же сделать wget http://127.0.0.1:8185/playlist -O playlist.m3u, то mpv playlist.m3u работает прекрасно.

Причем, в предыдущем ptv3-3.23.2 все работало и с mpv http://127.0.0.1:8185/playlist.

krasnh ★★★★
()
Последнее исправление: krasnh (всего исправлений: 1)
Ответ на: комментарий от krasnh

все работало и с mpv http://127.0.0.1:8185/playlist.

Работало, но не давало тебе переключать каналы, а мне через API не говорило что это плейлист

Забавно, выше я ‘жаловался’ на незапуск mpv с ptv3-3.23.3.

Возможно сам сервер получает данные не моментально и ранее выдавал просто пустоту

LINUX-ORG-RU ★★★★★
() автор топика
Ответ на: комментарий от krasnh

Вот, в целом всё

Нужен рефракторинг, но проверь хоть. Я ещё наверное чуть допилю, и оригинальному автору предложу забрать форк или просто изменения себе, если заберёт, то форк удалю, пускай он тянет.

LINUX-ORG-RU ★★★★★
() автор топика
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

nslookup @krasnh Крааааааашшшшшшш, по возможности протестируй и отпишися потом, пока у меня лампочка не перегорела :)

К слову на gitflic как оказалось нельзя ИМЕНОВАТЬ РЕПОЗИТОРИИ КАПСОМ, поэтому пускай валяется на гитхабе тогда пока. Я там те чуть выше два видива снял (для удобства в два места сунул) как оно должно быть в динамике, вдруг у тебя что поедет. Но не должно. Тестирвай, если всё норм, то я начну код @mittorn ковырять уже :)

LINUX-ORG-RU ★★★★★
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

Я хотел толком сначала разобраться, потестить, но раз ты так сразу спрашиваешь… )

Предварительно, в моей системе не заработало.
Но в вирте, в чистом garuda.iso - ok, вижу, что скрипт работает - качает, распаковывает, парсит… И опять же, предварительно, сильно нагружает память, вирт колом встает (но там правда и выделено ram немного).
Проверял на https://smolnp.github.io/IPTVru//IPTVru.m3u, который ты упоминал выше.

Так что, отмечу пока, что скрипт рабочий. Поразбираюсь еще, что там в моей домашней системе не так.

krasnh ★★★★
()
Ответ на: комментарий от krasnh

Покажи пожалуйста, там где не работает, выхлопы

  • whereis curl
  • curl --version
  • whereis zcat
  • zcat --version
  • mpv --version

Проверял на https://smolnp.github.io/IPTVru//IPTVru.m3u, который ты упоминал выше.

Там 2 EPG архива, они разжимаются в ~200 и ~450 мегабайт данных, я их кеширую, но даже уменьшенный кеш вместе это

du -h .cache/EPGTV
494M	.cache/EPGTV

Хотя оригинальный скрипт (после начальной доработки) превращал это в 6+ гигабайт в памяти. Так что сейчас это всё гораздо менее жручее. Но первый запуск это обработка примерно 700 мегабайт данных. Это не быстро. Там очень жирные и подробные EPG. В палз тв всё скромнее и там всё почти моментально, но там опсианий либо нет, либо они малкие, от того и быстрее. =)

Повторные запуски за счёт кэша будут гораздо быстрее, но с пролагом прогрузки кэша. Без него вообще жопа, каждый раз ждать всё сначала

LINUX-ORG-RU ★★★★★
() автор топика
Последнее исправление: LINUX-ORG-RU (всего исправлений: 3)
Ответ на: комментарий от krasnh

Внёс ещё несколько исправлений, чтобы не отображалось «Нет ТВ программы для этого канала» в случае обычных файлов и плейлистов созданных из каталогов или просто файлов со списком ссылок, но пока не знаю что делать с m3u плейлистами которые как бы не являются IPTV, но в них есть потоки на телетрансляции и названия которые в теории могут быть в кэше EPG данных. Учитывая

Работает со всеми плейлистами

Как ты говорил, это будет означать что любой m3u плейлист сейчас воспринимается как в теории IPTV плейлист и постоянный показ мол нет тв программы для этого канала может раздражать.

Варианты решения

  • Выпилить нахрен всё, в смысле всю гибкость поиска телепередач, по кешу, по ссылкам, по названиям. Только гвоздями прибитый и корректный IPTV M3U плейлист будет обрабатываться, попутно тогда и выпилить возможность обработки файлов и ссылок без расширений m3u в конце. И ещё выпилить, выпилить, выпилить.

  • Выключить автоматический показ телепередач при переключении канала в плейлисте.

Пока думаю. И да, мне нужна обратная связь по поводу того почему и что у тебя не работает. На гитхабе вон человек под виндой походу хотел запустить, я плашку повесил мол только линуксы. Негде под виндой брать curl и gzip, а если оно там и есть то хрен знает по каким путам валяются, в mpv пути надо указывать абсолютные (по иному не получалось)

LINUX-ORG-RU ★★★★★
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

И да, мне нужна обратная связь по поводу того почему и что у тебя не работает

Система давно не обновлялась. Все устраивало, более-менее, но видно пришло время. Теперь скрипт работает.

krasnh ★★★★
()
Ответ на: комментарий от krasnh

Что могу сказать на сейчас:

  • EPG от ПазлТВ действительно самый маленький по размеру, около 500K. В сравнении с smolnp.github.io, земля и небо.
  • Неожиданно, что при переключении каналов появляется и EPG. В этом что-то есть.
  • Телепрограмма смещена на пазловском epg по времени. Пока не понял причину.
  • На компе с небольшим монитором, последняя цифра времени в правом верхнем углу, заходит за край экрана. Типа, 19:30.
krasnh ★★★★
()
Ответ на: комментарий от krasnh

Разобрался с этим?

  • h показать телепрограмму передач и/или сбросить прокрутку вверх после нажатия n для прокрутки вниз
  • g прогрузить весь кеш телепередач от всех плейлистов чтобы попробовать найти там телепрограмму если на текущем плейлисте с его EPG не получилось это сделать
  • n ну прокручивать вниз ка уже сказал
  • c выгрузить весь кэш из памяти, обновить EPG данные (из источника этих данных) и кэш для текущего плейлиста, дабы проверить есть ли обновления. (Выгруженный кеш от других плейлистов можно потом снова подгрузить по g)

Всё нормально? Всё устраивает?

Пока главная пробелма это появляющаяся плашка о том что нет канала, на том что каналом не является, в этом виновата гибкость скрипта, оно может искать и на кривых плейлистах, но такие плейлисты не отличаются от обычных. Пока думаю что делать…

LINUX-ORG-RU ★★★★★
() автор топика
Ответ на: комментарий от krasnh

На компе с небольшим монитором, последняя цифра времени в правом верхнем углу, заходит за край экрана. Типа, 19:30.

После изменения размера окна попробуй нажать esc и h по очереди. Всё ещё уезжает? Просто при изменении размера экрана не обновляются координаты, также при прокрутке на n ничего не обновляется, я лишь режу голову списка телепередач, а фон и всё иное сохраняют свои позиции на момент предыдущего нажатия на h или переключения канала. Поэтому пока когда что-то едет, надо нажать h для сброса. Пока мои попытки привести графон оверлея в норму споткнулись о приколы оверлея и libass коих не мало и я пока хз что делать. Надо экспериментировать.

Телепрограмма смещена на пазловском epg по времени. Пока не понял причину.

А я сейчас никак не проверяю часовые пояса и не учитываю. Я с этим запустался слегка. Хотя должно и так всё работать. Тут хз поразбираюсь. А у тебя какой часовой пояс? А уезжает куда вперёд или назад? А в пазл ТВ ты не менял часовой пояс? Может там задано смещение. А в трансляциях время тоже самое что у тебя на часах (на некоторых канал время ещё кажут)?

Неожиданно, что при переключении каналов появляется и EPG. В этом что-то есть.

А я думал так и надо, это и удобно вроде, и как я уже написал может вызывать раздражение при работе с плейлистами которые к телику отношения не имеют, минимум 1 раз да вылезет уведомление что для этого вот телепередеч нету.

EPG от ПазлТВ действительно самый маленький по размеру, около 500K. В сравнении с smolnp.github.io, земля и небо.

Ну, тут да, либо быстро и кратко, либо подробно, но подольше. Так или иначе самый первый запуск когда кеша нету, он долгий, но это ладно, данных то нету. Затем только кеш, 500 мегабайт у меня подргужаются 30 секунд. Ну и всё, а дельше уже только каналы щёлкай, отображение будет моментальным. Ну тут такое, с этим нужно просто смирится и выбирать для себя что лучше, иного пути не существует.

LINUX-ORG-RU ★★★★★
() автор топика
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)
Ответ на: комментарий от LINUX-ORG-RU

Задача минимум выполнена, всё показывает, и жрёт всё, всё полностью автоматическое. Остались косяки с отображением и поведением автоматического показа «нет телепередач» для не IPTV плеслистов (побочный эффект всежручести) ну и про время надо понять почему оно едет, даты выдаются местные и предполагается что потоки просмотра телеканалов тоже местные. И хз даже если честно что делать если что-то из +7 смотрит трансляцию канала по +3, по сути ему будет показано что будет дальше по его времени, но оно будет расходится с временем реального эфира, тут я фик знаю, пока я тупо запутался. Начну с решения графических проблем, а потом к этому вернусь. Но уже хочется добить всё до финалочки. Чтобы просто работало.

LINUX-ORG-RU ★★★★★
() автор топика
Ответ на: комментарий от krasnh

Теперь при нажатии n прокручиваются не только что далее, а и текущее, иногда описания настолько большие что описание текущей телепередачи закрывает весь экран, также ранее при нажатии n прокрутка сразу начиналась с 3тьей позиции пропуская следующую за текущей телепередачу. Теперь всё корректно и более информативно, но конечно того прикольного эффекта когда можно прокручивать телепередачи под описанием текущей нету.

Если очень хочется верну назад, но причину почему я сделал так я уже описал. Решить проблему с пропуском второй позиции можно, легко, а вот с перекрытием экрана нет.

LINUX-ORG-RU ★★★★★
() автор топика
Ответ на: комментарий от LINUX-ORG-RU

Теперь при нажатии n прокручиваются

Прокрутка не нужна в данной реализации. Если что, когда я выше расписывал 4-е пункта ‘философии’ EPG, то имелся в виду список каналов с телепрограммой. Типа:

1. Первый канал
Новости
2. канал Россия
Улицы разбитых фонарей
...
45. Кинокомедия
Возвращение высокого блондина
46. Киномикс
Леон

И там же я написал, что подобное очень сильно за рамками исходного скрипта. Такое реализовано в yuki-iptv (скрин выкладывал).



Ну и как же сегодня без тех самых строчек:

Я календарь переверну…

krasnh ★★★★
()
Последнее исправление: krasnh (всего исправлений: 3)
Ответ на: комментарий от krasnh

На компе с небольшим монитором

На разных компах с разными мониторами подобное. Хз, почему у тебя не проявляется. Может сдвинуть время чуть левее, на расстояние одной цифры?

krasnh ★★★★
()
Ответ на: комментарий от krasnh

Ну тогда я её просто не буду трогать. Выкидывать уже жалко, а описание может быть как лаконичным ми небольшим, так и здоровенным, тут уже не в моей власти это и оно может занять такую часть экрана что будет видно лишь текущее один вариант далее и всё. Пусть останется для таких случаев =)

если не считать графического артефакта по поводу расположения часов и фона, которые можно сбросить повторно нажав h то получается всё, больше ничего делать не надо.

Программа минимум есть

  • h показать что идёт
  • u обновить данные программы телепередач

Всё, на остальное можно забить и не использовать.

За исключением одной детали, а именно часовых поясов. Их надо учитывать, пока этого нет если время телепередачи +3UTC а у тебя +5 то тебе будет показывать программу телепередач на два часа вперёд. Учитывая нюансы как реализовать надо ещё подумать, не во всех EPG указана таймзона, в некоторых M3U таймзона иная как в ссылке на EPG я хз просто пока что делать и как быть.

P.S. Я хотел скриптик сначала просто допилить чуток и всё, но к сожалению это невозможно, некоторые моменты с виду ненужные типа прокрутки, просто решают проблему когда из за описания текущей телепередачи закрыт экран. Программы на завтра тоже вроде лишнее, но без этого в 23:00 тебе не покажет ничего кроме текущей лелепередачи, нужна выборка и между днями в таком случае, и так далее, я бы раз бритвой окама всё порезать, но оно тогда работаь будет либо неправильно, либо вовсе. :(

Значит короче больше не буду баловать впиховать всякое, а просто починю таймзоны и зафиксирую. Да? =)

LINUX-ORG-RU ★★★★★
() автор топика
Ответ на: комментарий от krasnh

Я сентября,
я в календарь
и снова я сетябредарь,
я в календарь календаря
и снова третье сентябряяяяяяяяя ЖD

LINUX-ORG-RU ★★★★★
() автор топика
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от krasnh

Сместил чуть влево.

p.s. теперь фон с рамочкой не центрирован у часов, я пока его уберу тогда.

LINUX-ORG-RU ★★★★★
() автор топика
Последнее исправление: LINUX-ORG-RU (всего исправлений: 1)
Ответ на: комментарий от LINUX-ORG-RU

если время телепередачи +3UTC а у тебя +5

Я все эти каналы с пометкой (+3) (+5) (+7) просто удаляю как дубли.

А вот обычные каналы должны совпадать по времени с телепрограммой. Если что, на ПазлТВ как раз яндекс.программа дефолтом. И когда я смотрю ее в браузере на том же канале «Кинокомедия», то вижу различие, что там прописано и что реально показывает EPG по h.
Как пример, канал Кинокомедия, где подписываются фильмы, что удобно для разбирательств.

Часовой пояс Европа/Москва.

p.s. Но это на ПазлТВ так. Возможно на других плейлистах по другому.

krasnh ★★★★
()
Последнее исправление: krasnh (всего исправлений: 3)
Ответ на: комментарий от krasnh

Если что, часовой пояс Европа/Москва.

У меня также, ну значит в целом ни ты ни я эту проблему не увидим так как большинство каналов в РФ вещает по Московскому времени +3 , ну, а если попался в плейлисте поток который этому не соответствует то ничего не поделаешь, все могут быть корректные а пяток нет, их же люди как могут составляют, плейлисты то эти.

Но повторюсь в РФ 11 часовых поясов, и если некий Вася из Новосибирска смотря кино захочет узнать, а какое кино будет дальше, а у него +7 по времени, а в Москве сейчас 17:00 то ему покажет программу телепередач на 4 часа в перёд. И ничего он не узнает :) Так как у меня не отображаются программы которые уже прошли, просто его локальное время на его компьютеере будет на 4 часа больше чем у нас с тобой и всё уедет с глаз далой. Я думаю не стоит бросать в беде товарищей живущих по 10 часовым поясам в нашей необъятной и допилить этот момент по мере возможности.

А тебя как я понял на данный момент всё в целом устраивает и получил то что хотел да? И можно лавочку в целом сворачивать, ну в смысле тыркать больше ничего не надо. Всё норм?

Только часы проверь всё ещё съезжают?

#обновить скрипт
cd $HOME/.config/mpv/scripts/EPGTV && git pull

что там прописано и что реально показывает EPG по h.

У меня на просто телике два наканала например один обычный аналоговы, а второй цифровой, канал один просто в двух видах подачи, но даже там расхождения =) Когда ты смотришь поток + EPG к нему то это всё в рамках потока + EPG и то если повезёт что EPG верное и ссылка на поток соответствует времени в EPG никто же не мешает тому кто поток отдаёт взять и вставить задержку на час например и всё, всё уехало. С одной стороны бесплатные каналы ссылки на которые люди по всему интернету выискивают и постоянно обновляют их, с другой стороны вот такие приколы. Это как yt-dlp везде всё постоянно ломают, а его непрерывно для всего чинят, так и тут. Но в целом чаще всего всё совпадает и удобно. А если где рассинхрон из за потока или из за EPG неверного, ну что, простить и понять =)

Единственный способ получить 100% корректный IPTV и M3U и EPG это взять их у своего провайдера который предоставляет услугу IPTV. Мой предоставляет… Ага через какое-то приложение которое надо на телевизор ставить, у меня нет такой умной техники, а напрямую нини, ибо они закупают потоки у внешнего ТВ провайдера который только через своё приложение даёт смотреть…

LINUX-ORG-RU ★★★★★
() автор топика
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)
Ответ на: комментарий от krasnh

А какое у тебя разрешение экрана? А что будет если нажать

  • f во весь экран
  • esc очистить экран
  • h пересчиать всё и снова отобразить

Тоже уехавшее?

Мне кажется это что-то чудят внутренние расчёты в mpv. Не должно оно атак. Полосочка то вон всё правильно чуть с отступом от правого края не уехала. Хммммм или шрефты… Буду думать. Попробую разрешение монитора поменять, вдруг влияетет.

У меня так

Чёто со шрифтами, всё изначально было правильно. Но если такая фигня есть надо её обходить как-то. Может часы влево сунуть, тогда точно не уедут, но тогда надо смещать название, но тогда оно также может частичьно уехать. хмъъъ, подумам

LINUX-ORG-RU ★★★★★
() автор топика
Последнее исправление: LINUX-ORG-RU (всего исправлений: 2)
Закрыто добавление комментариев для недавно зарегистрированных пользователей (со score < 50)