Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Removing from library, does not remove from trakt colection #770

Closed
slavatyn opened this issue Jun 2, 2021 · 30 comments · Fixed by elgatito/context.elementum#17, elgatito/context.elementum#19 or elgatito/elementum#64

Comments

@slavatyn
Copy link

slavatyn commented Jun 2, 2021

Что только не перепробовал(
Суть проблемы:

Захожу в библиотеку kodi
правый клик по фильму что хочу удалить
Управление>Удалить из библиотеки
Подтверждаю что хочу удалить
Захожу в elementum-обновить trakt
Удалённый фильм заново добавляется в библиотеку kodi (вместо удаления его в trakt "коллекция")
log (elementum).txt

Крутил настройки elementum-trakt, по всякому
Ставил официальный плагин trakt-варировал настройки по всякому

Официальный плагин trakt умеет удалять таким способом, но происходит какой-то конфликт и новые (добавленные в trakt "коллекцию") фильмы в связке с elementum не добавляться, а удаляться с trakt "Коллекции"

Пробовал на 3 устройствах, везде так(

Так удаляет официальный плагин trakt
лог (trakt).txt

@antonsoroko
Copy link

antonsoroko commented Jun 3, 2021

я так понимаю в elementum настроено на добавление и удаление из коллекции:

image
image

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

но, делать удаление надо не из интерфейса библиотеки, а из интерфейса elementum.
авто синхронизации удаленного из библиотеки в trakt нету.


кстати, лог какой-то скудный, кроме debug в kodi, стоит ли ещё debug в elementum?
image

@antonsoroko
Copy link

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

@slavatyn
Copy link
Author

slavatyn commented Jun 3, 2021

Детализация стояла инфо, исправил, а надо в коди дополнительно нажимать "включить журнал отладки компонентов"?

Да, если удалять из интерфейса Elementum удаляется и из Trakt, спасибо!

Жалко что нельзя удалять с библиотеки kodi как настроено в официальном плагине trakt, но он тоже конечно в тупую удаляет если нету фильма в библиотеке, неважно удалился он или нет. При этом добавлять из trakt в библиотеку не может.
Если-бы он начинал удалять только после того как Elementum добавит не хватающих (кроме удалённых через библиотеку)
Или в elementum context helper был пункт удалить везде который работал бы в библиотеке по принципу (удалить в библиотеке и коллекции trakt"даже если нету")
Это возможно безболезненно как-нибудь сделать?

Получается надо удалить на первом устройстве через elementum, а на остальных через библиотеку при этом обязательно должна стоять настройка настройка\медиа\общие\разрешить переименовывание и удаление файлов (без удаления .strm, фильм вечно восстанавливается)

А вообще правильно что я пользуюсь библиотекой а не самим elementum?
Я на библиотеку засмотрелся из за этого:
Так в Elementum, она постоянно меняется и всегда не центрирована в таком представлении
1
Так в библиотеке, всё как надо и доп инфо есть
2

  • нету сортировки по последне просмотренным

@antonsoroko
Copy link

а надо в коди дополнительно нажимать "включить журнал отладки компонентов"?

нет.

Или в elementum context helper был пункт удалить везде который работал бы в библиотеке по принципу (удалить в библиотеке и коллекции trakt"даже если нету")

теоретически - думаю да. правда меню ещё длиннее станет.

должна стоять настройка настройка\медиа\общие\разрешить переименовывание и удаление файлов (без удаления .strm, фильм вечно восстанавливается)

вроде strm сейчас удаляется всегда, не завися от этой настройки. не уверен, что раньше зависело.

А вообще правильно что я пользуюсь библиотекой а не самим elementum?

ну вроде люди пользуются. но есть баги, например
#41
#509

лично я не пользуюсь, мне красота не нужна, а вот функционал, например "мой прогресс" для шоу - нужен.

Жалко что нельзя удалять с библиотеки kodi как настроено в официальном плагине trakt, но он тоже конечно в тупую удаляет если нету фильма в библиотеке, неважно удалился он или нет.

а как он работает на нескольких коди?
одна из причин, почему нету авто синхронизации, это как раз таки то, что коди может быть много.
и если один коди давно не запускался, то при запуске он может поудалять из тракта всё, чего у него еще нету.
надо воротить кучу логики, чтобы определить очерёдность синхронизации и ничего не сломать. (мы это как раз недавно обсуждали)

@slavatyn
Copy link
Author

slavatyn commented Jun 3, 2021

теоретически - думаю да. правда меню ещё длиннее станет.

Очень удобная вещь если через библиотеку смотреть
А может можно прописать чтобы не отображалась в elementum а только библиотеке?

вроде strm сейчас удаляется всегда, не завися от этой настройки. не уверен, что раньше зависело.

В Elementum да, но в библиотеке kodi, сначала просит подтверждение на удаление, а следом на удаление strm, но только если если настройка стоит.

а как он работает на нескольких коди?
одна из причин, почему нету авто синхронизации, это как раз таки то, что коди может быть много.
и если один коди давно не запускался, то при запуске он может поудалять из тракта всё, чего у него еще нету.
надо воротить кучу логики, чтобы определить очерёдность синхронизации и ничего не сломать. (мы это как раз недавно обсуждали)

Я очень с этим намучился когда только о kodi узнал...

Сначала я везде обновил библиотеку, иначе он как раз всё удалит, я запускал вместе trakt и elemetum, с надеждой что trakt удаляет а elementum добавляет, но скрипт удаления идёт 1 в очереди и если удалить фильм, он удаляется и в trakt, но если добавить в тракт чтото, elementum не успевает добавить в библиотеку фильм, до того как trakt его удалить попробует.
Но это лечиться "Или в elementum context helper был пункт удалить везде который работал бы в библиотеке по принципу (удалить в библиотеке и коллекции trakt"даже если нету")" а синхронизацию скорее всего спокойно не сделать

@elgatito
Copy link
Owner

elgatito commented Jun 4, 2021

@antonsoroko В некоторых аддонах (не помню в каких) выводится пункт, вроде, "Elementum ...". где при нажатии уже меню вылазит что сделать. Иначе их стаёт ну слишком много.

@antonsoroko
Copy link

@slavatyn

ну, я что смог - наваял, вот тестовые билды, потестируйте пожалуйста.

context.elementum - https://github.com/antonsoroko/context.elementum/archive/refs/heads/library-action.zip

бинарник elementum (нужно заменить им бинарник из установленного аддона аля .kodi/addons/plugin.video.elementum/resources/bin/linux_x64/)

elementum.zip

@slavatyn
Copy link
Author

slavatyn commented Jun 6, 2021

Идеально! Багов не нашёл, спасибо!

@slavatyn slavatyn closed this as completed Jun 6, 2021
@antonsoroko
Copy link

отлично, тогда ждите фичу в новых версиях элементум и контекст.

@Chupz0r
Copy link

Chupz0r commented Jun 7, 2021

отлично, тогда ждите фичу в новых версиях элементум и контекст.

Вроде все скопировал, как вы написали, но не появляется пункт elementum в контекстном меню, если вызываешь его на сериале.
А возможно ли сделать синхронизацию только в одну сторону Trakt->Kodi? Чтобы локальная библиотека(и) всегда были синхронизированы с сайтом Trakta (автоматически добавлялись/удалялись только в локальной библиотеке).
Я бы с радостью пользовался только одним плагином, если бы не очень долгие прогрузки списков, так что приходится пользоваться локальной библиотекой.

@antonsoroko
Copy link

@Chupz0r

но не появляется пункт elementum в контекстном меню, если вызываешь его на сериале.

была мелкая бага.
https://github.com/antonsoroko/context.elementum/archive/refs/heads/library-action-show.zip

@antonsoroko
Copy link

и бинарь ещё
elementum.zip

@antonsoroko
Copy link

@Chupz0r

А возможно ли сделать синхронизацию только в одну сторону Trakt->Kodi?

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

@Chupz0r
Copy link

Chupz0r commented Jun 7, 2021

@Chupz0r

но не появляется пункт elementum в контекстном меню, если вызываешь его на сериале.

была мелкая бага.
https://github.com/antonsoroko/context.elementum/archive/refs/heads/library-action-show.zip

Ошибка при удалении сериала.
Судя по логу, пытается удалить совсем не то, что я хочу.
kodi.log

@slavatyn
Copy link
Author

slavatyn commented Jun 7, 2021

А возможно ли сделать синхронизацию только в одну сторону Trakt->Kodi?

Кстати да вариант синхронизации лайтовый, неважно что происходит в Kodi или elementum, если в тракт что-то добавляется\удаляется, elementum удаляет или добавляет на всех устройствах Kodi.
Я добавляю через, trakt-moviebase, удалять там-же тоже будет удобно

Есть ещё идея синхронизации, если будет настройка что выше, можно добавить ещё пункт "Главное устройство"-на которое предположительно всё синхронезированно заранее с trakt, в нём 2 подпункта "разрешить удалять"/"Разрешить добавлять" и только с этой настройкой можно с трактом манипулировать, остальные устройства полностью идеентичны с trakt и соответственно с главным устройством

Ошибка при удалении сериала.
Судя по логу, пытается удалить совсем не то, что я хочу.

Открою тогда пока

@slavatyn slavatyn reopened this Jun 7, 2021
@antonsoroko
Copy link

@Chupz0r
честно говоря не знаю откуда взялось Белый воротничок s06e81.

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

elementum.zip

@antonsoroko
Copy link

@slavatyn эту идею лучше отдельным запросом. чтобы не смешивать с текущим, который конкретно про пункт в меню.

@Chupz0r
Copy link

Chupz0r commented Jun 8, 2021

@Chupz0r
честно говоря не знаю откуда взялось Белый воротничок s06e81.

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

elementum.zip

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

Открою тогда пока

Касаемо изначальной проблемы, описываемой в первом сообщении, то оно как не работало, так и не работает, если мы рассматриваем исключительно удаление из стандартной библиотеки коди, не используя context.elementum и удаление из самого плагина. Так что вы рановато закрыли, я считаю.

@antonsoroko
Copy link

@Chupz0r

если мы рассматриваем исключительно удаление из стандартной библиотеки коди

ну

авто синхронизации удаленного из библиотеки в trakt нету.

и пока желающих её реализовать нет.

сейчас мы больше говорим об удалении через context, это то, что можно сделать быстро.


похоже что у вас почему-то xbmc.getInfoLabel('ListItem.Label') != sys.listitem.getLabel()
может с настройками языков что-то не так, или с источником для данных о шоу/фильмах.
какие языки стоят в коди и какой плагин для данных? (и какие языки в плагине для данных)

попробуйте дебаг сборку https://github.com/antonsoroko/context.elementum/archive/refs/heads/trakt-mark-as-watched-TEST.zip
на элементе который не удалялся выберите пункт "Инфо", он выплюнет в юай и в лог сообщение - скопируйте плиз сообщение из лога сюда. (оно будет вида "truelabel: %s; infolabel: %s; dbid: %s; path: %s;")

@slavatyn
Copy link
Author

slavatyn commented Jun 8, 2021

авто синхронизации удаленного из библиотеки в trakt нету.

А почему нету? Есть же, после обновления тракт которое по умолчанию настроено в elementum на 5 мин, я когда тестировал не стал ждать а нажал на обновление и фильм из тракт удалился.

Если речь о том что в trakt удалить и оно потом в kodi удалиться то-
#777

Касаемо изначальной проблемы, описываемой в первом сообщении, то оно как не работало, так и не работает, если мы рассматриваем исключительно удаление из стандартной библиотеки коди, не используя context.elementum и удаление из самого плагина. Так что вы рановато закрыли, я считаю.

В стандартной библиотеке используем с помощью context.elementum на фильме Elementum menu>удалить из библиотеки (стандартная кнопка управление-удалить из библиотеки не нужна)
Фильм удаляется из стандартной библиотеки, библиотеки elementum и после обновления тракт которая настроена на 5 мин и из trakt

@Chupz0r
Copy link

Chupz0r commented Jun 8, 2021

попробуйте дебаг сборку https://github.com/antonsoroko/context.elementum/archive/refs/heads/trakt-mark-as-watched-TEST.zip
на элементе который не удалялся выберите пункт "Инфо", он выплюнет в юай и в лог сообщение - скопируйте плиз сообщение из лога сюда. (оно будет вида "truelabel: %s; infolabel: %s; dbid: %s; path: %s;")

2021-06-08 19:29:41.408 T:12308 WARNING : [context.elementum] truelabel: Delhi Crime; infolabel: Братья по оружию; dbid: 6; mediatype: tvshow; path: videodb://tvshows/titles/13/;

Язык Kodi - русский, скроблер - TMDb Tv Shows (предпочтительный язык в настройках - русский).

В стандартной библиотеке используем с помощью context.elementum на фильме Elementum menu>удалить из библиотеки (стандартная кнопка управление-удалить из библиотеки не нужна)
Фильм удаляется из стандартной библиотеки, библиотеки elementum и после обновления тракт которая настроена на 5 мин и из trakt

Это все понятно, что с помощью context.elementum можно реализовать, что и делает antonsoroko, за что ему спасибо. Не понятно почему это нельзя реализовать для стандартного удаления из библиотеки. Если я не ошибаюсь у elementum есть мониторинг стандартных событий библиотеки kodi. Почему например, если из библиотеки что-то удаляется и elementum это видит, не вызвать дополнительный метод, который будет дополнительно удалять еще и из тракта? Если я не прав насчет мониторинга, поправьте.

@antonsoroko
Copy link

antonsoroko commented Jun 8, 2021

@Chupz0r

truelabel: Delhi Crime; infolabel: Братья по оружию;

хрень какая-то.
это добавленный через elementum сериал?

а, ясно
2021-06-08 00:10:25.157 T:2584 WARNING <general>: [plugin.video.elementum] StrmLanguage: "en",

меняйте на "Original" (значение по-умолчанию) или на русский.
опция:
"Strm files language"
"Язык файлов strm"

@antonsoroko
Copy link

@Chupz0r

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

мониторинг есть, но он не удаляет ничего (хотя может).

чуть выше коротко причина описана

одна из причин, почему нету авто синхронизации, это как раз таки то, что коди может быть много.
и если один коди давно не запускался, то при запуске он может поудалять из тракта всё, чего у него еще нету.
надо воротить кучу логики, чтобы определить очерёдность синхронизации и ничего не сломать. (мы это как раз недавно обсуждали)

ещё варианты проблем с авто-синхронизацией:

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

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

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

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

@antonsoroko
Copy link

сейчас кстати если удалить шоу, то обратно его уже не добавить :-)
но это пофиксится если замержим elgatito/elementum#60

в принципе, на тему библиотеки есть старые issues и они висят и висят:

#41
#509

@Chupz0r
Copy link

Chupz0r commented Jun 8, 2021

меняйте на "Original" (значение по-умолчанию) или на русский.
опция:
"Strm files language"
"Язык файлов strm"

2021-06-08 21:19:12.151 T:2948 WARNING : [context.elementum] truelabel: Очень странные дела; infolabel: Пробуждение; dbid: 1; mediatype: tvshow; path: videodb://tvshows/titles/11/;
Язык поменял на Original, сформировал новую библиотеку. Мне кажется проблема не в этом.

@antonsoroko
Copy link

по общему коду, если truelabel не будет равен infolabel, то не будет получать как надо dbid.

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

и почему infolabel: Пробуждение; - вообще не ясно. и то и другое - названием сериала должно быть.
я предполагаю, что что-то не так с базой, так как у меня таких проблем нет. да и у других наверное тоже, иначе бы весь плагин контекста не работал бы, функция получения dbid общая.

у меня тот же сериал вот так
2021-06-08 22:16:33.407 T:1013060 WARNING <general>: [context.elementum] truelabel: Stranger Things; infolabel: Stranger Things; dbid: 28; mediatype: tvshow; path: videodb://tvshows/titles/28/;

@Chupz0r
Copy link

Chupz0r commented Jun 8, 2021

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

В общем попробовал удалить Пробуждение - удалилась Подпольная империя, но что странно после этого infolabel и truelabel начали совпадать и все начало корректно удаляться. Понаблюдаю еще, когда elgatito ваши коммиты одобрит и сообщу что да как.

@antonsoroko
Copy link

antonsoroko commented Jun 8, 2021

всё это выглядит как будто что-то не так с базой.

если есть возможность - попробуйте на чистом новом коди (без сохранения настроек и бибилиотеки).
если и там воспроизведётся баг - то я тогда сдаюсь.

@Chupz0r
Copy link

Chupz0r commented Jun 8, 2021

если есть возможность - попробуйте на чистом новом коди (без сохранения настроек и бибилиотеки).

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

@antonsoroko
Copy link

antonsoroko commented Jun 8, 2021

@Chupz0r

можно в gitter писать:
https://gitter.im/ElementumApp/Lobby
тут выбрать меня и написать в личку.
там же и автор есть.

для того чтобы понять как сделать среду разработки я начинал с этого #712
правда у меня linux, что облегчает часть задач, но наверно и на других ос должно быть выполнимо.

вроде сейчас достаточно просто сделать шаги из https://github.com/elgatito/elementum/blob/master/README.md
(можно не собирать самому образы кросс-компилятора и libtorrent-go)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment