Kodi-vStream / venom-xbmc-addons

Addon de Streaming français pour Xbmc
GNU General Public License v3.0
491 stars 275 forks source link

Marqué VU / Non vu => En fonction du titre #2625

Closed sizanic closed 4 years ago

sizanic commented 5 years ago

Salut, Je voudrais proposer une gestion du VU/NonVu par titre.

Actuellement, je trouve que se reposer sur le lien (comme le fait KODI) n'est pas adapté à VStream, qui propose la même vidéo sur plusieurs sources, en plusieurs qualités et en plusieurs langues. Et il faut parcourir plusieurs niveaux de dossiers pour voir le lien de la vidéo qui porte la coche "déjà vu".

Car une fois qu'on a vu un film, on l'a vu ! Je veux dire par là que ça ne devrait pas dépendre du site, de la langue ou de la qualité.

Si je marque avoir VU Spiderman sur ZT, il devrait aussi être marqué VU sur k_pliz. Si je marque avoir VU Spiderman en 1080p, il devrait aussi être marqué VU en 720p. Si je marque avoir VU Spiderman en (VF), il devrait aussi être marqué VU en (French).

=> Dans tout les cas, c'est le même film !

Pareil pour les séries, si j'ai vu l'épisode 01 de la saison 03 de Victoria sur ZT, il est VU même si je vais sur F_llStre_m (pour voir l'épisode 2 qui n'est pas dispo sur ZT). => Je peux changer de site, je sais les épisodes que j'ai vu.

Et bien sûr, il doit être marqué vu à tous les niveaux de l'arborescence (hoster compris).

sizanic commented 5 years ago

Voici la branche https://github.com/Kodi-vStream/venom-xbmc-addons/pull/2628

J'ai bien pris en compte ces échanges : https://github.com/Kodi-vStream/venom-xbmc-addons/issues/2504 https://github.com/Kodi-vStream/venom-xbmc-addons/issues/273

Et je n'ai pas corriger les problèmes existants. Par exemple, lorsqu'on remonte dans une arborescence (retour arrière), les symboles VU n'apparaissent pas. C'est toujours le cas.

Pour le problème de désynchro entre les VU par Vstream et ceux de KODI, je l'ai résolu en désactivant le "marqué VU" de Vstream : plus d'appel à Action(ToggleWatched). => On ne se repose que sur Vstream.

Pour l'action dans le menu, au niveau du Hoster, il faut également utiliser celui de VStream. Celui de KODI marque un seul flux et n'a donc pas d'interet, et ça ne remonte pas automatiquement vers les niveaux supérieurs. J'ai donc remis l'action Vstream au niveau du hoster, mais je n'ai pas regardé pour retirer celui de KODI.

Lorsqu'une vidéo (film ou série) est visualisée jusqu'à la fin, KODI continue à la marquer VU, mais juste ce lien. L'action de KODI peut donc rester à désactiver ce marqueur au besoin.

Pour ceux qui suivent des séries, ne compter pas sur KODI : il faudra forcer le VU manuellement avec l'action (de Vstream) si on veut que la vidéo soit considérée VU partout dans Vstream (source/qualité/langue/multiniveau/etc.)

-> Avis à ceux qui veulent tester ma branche.

-> J'attend vos commentaires.

sizanic commented 5 years ago

Quelques exemples :

Si je marque avoir vu "le roi lion", voilà ce que donnera une recherche : Roi lion search

Et quelque soit la qualité ou la langue : Roi lion Quality

Ou le hoster : Roi lion Hoster

L'épisode d'une série : Serie Episode

La saison complète :

Ici, j'ai marqué la saison manuellement, ce n'est pas parceque j'ai marqué les épisodes. Il n'y pas de calcul automatique. Les épisodes peuvent ne pas avoir été vus.

Serie Saison

sizanic commented 5 years ago

Et voici avec Toy Story 2 : Toy story 2

Cet exemple illustre la gestion d'un film avec un chiffre dans le titre. Pour ce faire, j'ai du modifier guiElement.strConv() qui effaçait les chiffres.

Cette méthode est utilisée également pour la recherche des métas. Et si le chiffre disparait et si la source ne récupère pas l'année du film, tmdb retourne l'affiche et la description de ToyStory (le 1).

=> C'est pour ça que des métas sont faux parfois dans les suites de films.

TmpName commented 5 years ago

Par contre, si cela se fait, on ("il" surtout ^^) va avoir besoin de testeurs, une fois que la branche sera en place, surtout si vous aimez avoir vos "checks" a la bonne place.

zicmama commented 5 years ago

On pourrait un peu comme shazam référencer par rapport à la musique du générique... https://github.com/worldveil/dejavu Je ne connais pas d'équivalent pour créer une empreinte audio et vidéo.

sizanic commented 5 years ago

@johngf J'ai installé une version 16.1 en version portable. Mais impossible d'avoir les listes de films, je pars en erreur SSL avec toutes les sources. ( t'es bien en 0.7.4 sur ton Kodi16.1 ? )

@TmpName En effet, il y a des cas qui ne seront pas traités. Dans mes tests, j'avais bien vu le cas où le nom est sur la première page, puis juste les noms des hosters ensuite.

Mais pour la plupart, ça fonctionne bien et c'est vraiment confortable. Si tu utilise la fonction de KODI, c'est que tu n'utilises qu'une seule source (ZT sans doute). Mais pour les aficionados des séries, on navigue entre plusieurs sources, et c'est un vrai plus de savoir où on en est.

Je n'irais pas plus loin dans le code pour le rendre le plus adapté possible à l'ensemble des sources. J'apporterai plutôt des modifications aux sources qui ne respectent pas ce formatage.

Concernant les meta. J'ai trouvé deux bugs qui font que ce n'est pas le bon film qui est affiché :

1e bug - Séries de films On retire (et c'est une erreur) les chiffres dans les titres avant la recherche. Donc : toy story 2(1999) devient toy story, année 1999 => tmdb s'appuie sur le titre et sur l'année, dans ce cas il se rattrape et s'en sort pour retrouver le bon film.

Mais certaines sources ne retournent pas l'année. (c'est pour cela que j'ai corrigé DadyF_ix dernièrement en ajoutant l'année, c'est pour améliorer les méta).

Sans l'année, c'est donc les meta de "toy story" qui sont alors retournées.

=> Je propose une correction dans cette PULL request. (car j'en ai besoin également pour être sûr que c'est "toy story 2" qui est marqué VU).

2eme bug - le tiret

Dans le formatage du nom du film à fournir à tmdb, on supprime le tiret, alors qu'il faudrait le remplacer par un espace. Exemple pour "le crime de l'orient-express" qui devient

le crime de l orientexpress au lieu de le crime de l orient express

"orientexpress", pas de méta :

https://api.themoviedb.org/3/search/movie?api_key=92ab39516970ab9d86396866456ec9b6&query=le+crime+de+l+orientexpress++&page=1&language=fr

"orient express", les méta :

https://api.themoviedb.org/3/search/movie?api_key=92ab39516970ab9d86396866456ec9b6&query=le+crime+de+l+orient+express++&page=1&language=fr

=> Je ne propose pas cette correction dans cette PULL request. Je la réserve pour un ensemble d'autres corrections qui concernent les méta (un gros travail de fond).

On en reparlera lorsque j'ouvrirais le ticket.

sizanic commented 5 years ago

@zicmama pour un film présent sur deux sites, l'empreinte peut être différente car la série peut ne pas avoir été prise sur la même chaine d'origine (générique différent). Et ensuite, sur une page avec cinquante films, il faudrait commencer la lecture sur quelques secondes de chaque film pour recalculer l'empreinte. => Beaucoup trop fastidieux et long.

TmpName commented 5 years ago

Lol @zicmama, stp, y a deja @sizanic qui veut refaire tout le code, lui donnes pas d'idée encore plus tordues. Serieux, ca fait 1 an que personne n'a remonté de gros bug de fonctionnement, et il en balance 2/3 par jours, je sais meme pas comment ca marchait avant ....

Et non je n'utilise jamais ZT, je lance la recherche, je repere un site que je sais fonctionnel dans la liste, et je met la saison en favoris, pas de navigation. Pour savoir on j'en suis me suffit de voir si le hoster est coché, mais j'avoue que comme les liens sont mobiles, une serie arrete y a 2 mois risque de ne plus etre cochée, donc ton code me serait utile aussi.

Apres comme je t'ai dis, moi perso ca me gene pas, ca pertubera pas le fonctionnement de Vstream, au pire tu vas avoir tout les soirs quelqu'un qui va te ramener que sur tel ou tel site ca ne marche pas, mais coche ou pas, l'user va survivre.

ghost commented 5 years ago

oui kodi 16,1 jarvis sur linux

sizanic commented 5 years ago

@TmpName moi aussi je me demande comment ça marchait avant. :-)

Normal que beaucoup de Meta ne soient pas trouvés, rien que pour exemple ici : https://github.com/Kodi-vStream/venom-xbmc-addons/blob/Beta/plugin.video.vstream/resources/lib/gui/guiElement.py#L535

Il arrive souvent que 'playcount' ou 'trailer' ne soient pas présents, donc ça plante. On ne peut pas supprimer un élément s'il n'existe pas . Il manque les conditions :

if meta['playcount']: et if meta['trailer']:

=> Mais cela est une autre histoire (que je suis en train d'écrire).

Pour en revenir sur le marquer VU. J'ai avancé de mon côté et j'arrive maintenant à l'activer automatiquement (celui de VStream ! ) dès que le film ou l'épisode est regardé en entier (>90%).

=> Je le propose dans la même Pull Request ?

Pour rendre celui de KODI inutile, il me reste à rediriger le raccourci 'w'. => Ca vaut le coup d'après vous ?

ghost commented 5 years ago

perso j'utilise pas les métas je préfère prendre les infos du site si dispoible sinon parfois je fait clic droit information pour avoir le synopsis c'est tout. je déteste les ralentissements et de toute façon ça prend le premier résultat de la liste donc des fois c'est du n'importe quoi.

TmpName commented 5 years ago

Lol, suis dans le meme cas que @johngf , ca me ralenti trop les metas.

Tu as deja vu des cas ou 'playcount' ou 'trailer' ne contenait pas de valeur ? Je pensais que la fonction _format() servait a reformater ce tableau et rajoutait en passant les champs manquants.

Je ne pense pas que tu puisses modifier la fonction de la touche W, c'est interne a kodi.

Apres j'ai pas compris le coup du 90%, celui de kodi marche comme ca par defaut (chez moi c'est mini 10% et max 90%), tu voulais dire celui de Vstream ? celui ou tu vas marquer le titre en base de donnée ?

sizanic commented 5 years ago

Oui, je dis bien celui de VStream, le marquer VU dans la base Vstream à partir de 90% et automatiquement.

Pour le W, je sais que c'est interne mais ça me fait pas peur, je SUIS UN FOU !!

Les touches sont définies dans un fichier : special://xbmc/system/keymaps/keyboard.xml

J'ai regardé s'il existait une API XMBC pour les modifier. Pas trouvé.

J'ai récupéré le code de cet Addon : https://kodi.wiki/view/Add-on:Keymap_Editor

Et finalement, il ne font que modifier le fichier à la main :

xml.etree.ElementTree.ElementTree(element).write(filename, 'utf-8')

=> Donc je laisse tomber, je ne le ferais pas :-)

Maintenant je vais regarder si je peux supprimer l'action "Marquer VU" de KODI, et ne laisser que l'action "Marquer VU/Non VU" de Vstream. (car au niveau du hoster on a les deux).

sizanic commented 5 years ago

Donc j'ai ajouté à ma Pull Request la partie qui modifie automatiquement le statut VU.

Dans le fichier player.py

https://github.com/Kodi-vStream/venom-xbmc-addons/pull/2628/

TmpName commented 5 years ago

Maintenant je vais regarder si je peux supprimer l'action "Marquer VU" de KODI, et ne laisser que l'action "Marquer VU/Non VU" de Vstream. (car au niveau du hoster on a les deux).

Et c'est la ou je pense que ce n'est pas possible sans utiliser les metas (mais c'est vieux, peux me tromper)

ghost commented 5 years ago

pas possible les menus viennent du skin il me semble et pas de kodi j'ai test il a longtemps de faire la même chose. donc il faut modif le skin

sizanic commented 5 years ago

Je viens de rajouter cette ligne oubliée, dans ma branche (pour la gestion du marquage automatique)

hoster.py oOutputParameterHandler.addParameter('sTitleWatched', oGuiElement.getTitleWatched())

Pour ceux qui avait récupéré ma branche pour tester, il faut la reprendre.

=> Mais y-a-t'il des testeurs ? :-)

TmpName commented 5 years ago

Ha non, moi j'ai pas encore installé, j'attend que tu donnes le feu vert (et que ta valides le pull complet). Vu que la tu cherchais a by-passer le check de kodi j'etais encore en attente. @lebigboss se sert de cette fonction, @Che-debarras aussi.

sizanic commented 5 years ago

Finalement, je vais pas bypasser KODI (en remplaçant le raccourci), pas possible.

Mais que la coche se rajoute automatiquement à la fin d'un visualisation (comme le fait KODI), ça c'est bien en place.

Et quand tu dis "valider le pull", c'est le merge dans la beta, et tu installe la beta ? Je pensais à quelqu'un qui teste la branche pour me donner le GO avant le merge.

=> Je merge la Pull Request en Beta ?

J'attends toujours un GO explicite lorsque ça touche au coeur.

sizanic commented 5 years ago

C'est mergé sur la Beta. Pour ceux qui veulent tester.

=> En attente de vos retours.

TmpName commented 5 years ago

Le prb c'est que les gens en general ne testent que la beta ^^. Si tu laisses ca dans une branche speciale, ca va prendre des mois avant que les gens testent. Mais comme c'est un Pull unique c'est facile de tout revert en cas de probleme. Suffit de pas faire de MAJ de suite.

La pour le coup suis débordé, mais je teste ca dans la semaine aussi.

TmpName commented 5 years ago

Alors premier retour, un peu vague, mais je pourrais avoir plus d'infos plus tard. Ca marche tres bien, on regarde un film en VF ca le coche aussi en vostfr. Par contre un probleme, ca m'affiche une serie en vue, je rentre dans les menus c'est toujours coché, mais si je fais retour arriere, ce n'est plus coché.

ghost commented 5 years ago

pour le retour arriere c'est kodi qui reload la page en cache avant marquage

TmpName commented 5 years ago

Mais pkoi ce con est pas foutu de se souvenir de l'etat de la page telle qu'elle etait affiché. C'est vraiment de la merde cette appli.

sizanic commented 5 years ago

Merci pour ce premier retour. En effet, ce problème existait avant ma modif. J'essaierai de voir si je trouve pas un contournement.

TmpName commented 5 years ago

Je pense pas, comme dit @johngf, le retour arriere n'est pas géré par Vstream, mais par kodi, c'est l'appli qui devrait memoriser l'affichage vu qu'elle veut la gerer elle meme. On peut desactiver ce cache, mais pas bon, ca ralenti enormement et ca deconne au niveaux des recherches.

ghost commented 5 years ago

pourquoi ne pas essayer de marquer vu dans la db de kodi et non celle de vstream pour voir si ça fait la meme chose ( il y a peut etre conflit ,d'ailleur avec l'ancienne methode parfois j'avais deux fois coché vu)

sizanic commented 5 years ago

En effet, on ne repasse pas par VStream pendant le retour arrière, et on comprend bien qu'il y a un cache KODI car l'affichage est instantané.

Par la DB de KODI c'est la même chose, pour moi ce problème existait avec le "Marqué VU" natif.

@TmpName , pour mon info, tu peux me dire comment on désactive ce cache ?

TmpName commented 5 years ago

Bonne question, c'est vieux. A un moment ca posait probleme lors des recherches globales, vu que ca relancait la recherche globale quand tu faisait precedent et revenait sur la page. Le bug venait de kodi et avait du necessiter que les devs corrigent ca. Mais de memoire il y avait encore la possiblité de l'activer ou pas.

Vais voir si je retrouve.

Edit: Alors c'est a la sortie de Kodi V17, bug global, patch proposé par shani08.

A tester, la fonction endOfDirectory qui a une option cacheToDisc qui etait directement lié a ce bug.

Sinon durant mes recherches, j'ai pu voir pas mal de monde avec ce bug, a chaque fois il leur fallait vider le cache pour reparer.

ghost commented 4 years ago

on en est où ? on peut faire la maj ?

sizanic commented 4 years ago

Si personne n'a rien à redire ...

Je ne ferais pas d'autres modifs, pour moi c'est bon.

ghost commented 4 years ago

sur kodi 16,1 a cause du refresh de la page ça doit etre pareil sur les autres version j'ai parfois un crash de kodi quand je fait retour arrière a la télécommande a la fin de la video

TmpName commented 4 years ago

Pareil, mais ca me le fait sur d'autres addons aussi. Pas sur qu'on puise faire quelque chose. Je suis sur, que ca va etre corrige a la prochaine version de kodi (rire jaune)

ghost commented 4 years ago

autre soucis sur les sites comme sswatch le décodage du liens recommence je vais voir pour enlever le refresh sur le lien final

ghost commented 4 years ago

bon bah kodi18,5 xbmc.executebuiltin( 'Container.Refresh' ) dans setWatched ne sert a rien kodi refresh la page automatiquement sans utilisé le cache ...

TmpName commented 4 years ago

Ben justement, hier soir je regardais une serie sans l'avoir mise en favoris, ca m'a fait 2 fois le bug, et du coup oblige de relancer la recherche, la j'ai regretté ce que j'avais dit ^^.

Perso au pire meme si kodi ne refresh pas, on s'en fou, c'est pas utile sur cette page, d'autant plus que apres ca on repart en arriere pour changer d'episode et que ce ne sera pas coché dans tout les cas.

@sizanic tu en penses quoi ?

ghost commented 4 years ago

bah pour moi le souci c'est qu'il refresh tout seul

TmpName commented 4 years ago

Ben moi aussi surement, mais deux fois, a cause du xbmc.executebuiltin( 'Container.Refresh' ), ou alors le fait de le faire une fois bloque celui qui se fait naturellement ? En tout cas j'avais pas autant de plantage avant, donc y a un truc a verifier.

TmpName commented 4 years ago

Bon apres quelques jours de tests, j'ai supprime un xbmc.executebuiltin( 'Container.Refresh' ) on perd pas trop en fonctionnalitées, mais plus de crash (enfin pas encore)

Et il est mort @sizanic ? ^^

sizanic commented 4 years ago

Salut, non je ne suis pas mort, merci de t'inquiéter :-) J'avais du temps libre en novembre mais j'ai repris un nouveau taff maintenant. C'est plus dur d'être actif.

Alors je suis les échanges de loin, et je vois que vous vous en sortez bien sur ce sujet ;-) J'ai vu passer la mise en commentaire de 'Container.Refresh' mais j'ai pas pu tester car j'ai même plus le temps de regarder Kodi.

J'ai même vu que vous avez ajouté mon nom comme contributeur dans le dernier readme de Vstream. Ça fait plaisir, mais je me demande si c'est pas un cadeaux empoisonné et qu'un matin à 6h, un uniforme va pas venir frapper à ma porte.

TmpName commented 4 years ago

Lol, nope t'inquiete pas, sinon suffirait de mettre le nom de n'importe qui pour s'en debarrasser. Je peux le retirer si tu preferes ?

Mais la on bidouille sur le 'Container.Refresh', pas pour les memes raisons apparement, mais on teste des trucs wé.

ghost commented 4 years ago

façon on t'as déjà dénoncé mdr

TmpName commented 4 years ago

Ha c'etais toi qui a recupere toute la prime pour delation, moi quand j'ai voulu y aller ils m'ont dit que c'etait trop tard.

Sinon il y a quelqu'un qui as testé ce code sur la prochaine version de kodi ? Pas possible sans re ecrire tout le plugin ? je sais bien que suis naif a attendre du mieux, mais bon la ca commence vraiment en partir en sucette leur merde.

sizanic commented 4 years ago

Je savais que je pouvais compter sur vous pour me dénoncer :))

Sinon sans rigoler, je ne parlais pas de délation, mais d'une simple enquête qui peux être effectuée. KODI est dans le collimateur d'Hadopi (ou équivalent), en cherchant "Kodi + films Francais", on trouve VStream. En 2 secondes tu te retrouve sur GIT avec la liste des développeurs.

Je me demande si notre travail qui consiste à faciliter la mise à disposition de vidéo protégée n'est pas répréhensible.

Vous y avez déjà pensé ?

(mais pour l'instant laissez mon nom, pas de pb)

Arias800 commented 4 years ago

Il ne l'ai pas de leur point de vue. Et au pire des cas on recevra juste un message de prévention pour nous demander d'arrêter ^^

sizanic commented 4 years ago

D'après quel point de vue ? C'est parce qu'on ne stocke pas, c'est pour ça ?

Arias800 commented 4 years ago

Du point de vue de la Hadopi :

les add-ons dédiés au piratage pour Kodi, relativise la Hadopi, se contentent la plupart du temps de lire des contenus qui sont déjà disponibles illégalement sur Internet. Ces extensions ne sont donc pas destinées à contourner directement des mesures techniques de protection afin d’accéder illégalement à des plateformes de vidéo à la demande licites ou à des flux télévisés originaux

Et oui vu que l'on ne stock rien ça aide aussi ^^

sizanic commented 4 years ago

Comme ça c'est clair, je vais mieux dormir maintenant :)

TmpName commented 4 years ago

Autre chose, on est sur github, c'est un site de partage de code, pas un site privé, si ils pensent que c'est illegal et veulent fermer le github ca leur prend 24h, ca m'est deja arrivé. Pas besoin d'enquetes, t'aimes pas un projet, juste un mail a envoyer, si le proprietaire ne se justifi pas, 24h apres, y a plus rien. Et il n'y a pas de pub, pas de mouvement d'argent, rien a voir avec les sites qui se servent de ca pour vivre.

sizanic commented 4 years ago

Pour info, j'ai supprimé d'autres : xbmc.executebuiltin("Container.Refresh")

Ceux qui sont dans about.py lorsqu'on fait la mise à jour manuelle : ici

Ils me gênaient, la mise à jour se faisait en boucle (j'arrive à sortir car il y a une confirmation au début et je réponds NON la deuxième fois).