fredokl Posté(e) le 2 juin 2020 Signaler Partager Posté(e) le 2 juin 2020 (modifié) Quick App - Plex Voici un QA pour avoir les informations de la lecture en cours sur un lecteur Plex. Il est simple d'emploi. Il faut entrer l'IP du serveur Plex, le port et son Token. Pour connaître son Token, suivez le lien officiel Plex : https://support.plex.tv/articles/204059436-finding-an-authentication-token-x-plex-token/ Le QA donne aussi bien les données sur les films que sur les séries (Type de média, Titre+tagline, Acteurs, Durée, Année de sortie, format audio sélectionné, Résumé). Vois pouvez ajouter assez facilement des données supplémentaire si vous le souhaitez. -- QuickApp pour le lecteur multimédia Plex -- Generic Device -- HISTORIQUE -- L'idée de départ vient du forum www.domotique-fibaro.fr et du Virtual Device PLEX adapté de Christophe Lemoine -- http://www.domotique-fibaro.fr/index.php/topic/1692-plex-films-en-cours-de-lecture/ -- Qui est lui adapté du Virtual Device de rls46 (forum officiel) -- https://forum.fibaro.com/topic/18780-plex-virtual-device/?tab=comments#comment-67777 -- HC3 Version: -- V1.0 (29/05/2020) QuickApp pour le lecteur multimédia Plex pour Home center 3 par fredokl et Maxime pour le site www.domotique-fibaro.fr -- V1.1 (05/06/2020) QuickApp pour le lecteur multimédia Plex pour Home center 3 par fredokl et Maxime pour le site www.domotique-fibaro.fr -- Problème avec la variable "Token". Suppression de la variable -- Le Token doit être mis directement dans "function QuickApp:connectPlex()" ==> ["X-Plex-Token"] = "votre Token", -- Utilisation: -- Remplir les variables "IPAddress", "TCPPort" & "Token" avec votre IP, le port et le Token -- Changer l'ID de votre icône -- Vous pouvez le modifier et l'améliorer à votre guise. -------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------- -- PARAMÈTRES -- -------------------------------------------------------------------------------------------------------------------------------------- -------------------------------------------------------------------------------------------------------------------------------------- function QuickApp:onInit() __TAG = "QA"..plugin.mainDeviceId.."_PLEX" self.ip = self:getVariable("IPAddress") self.port = tonumber(self:getVariable("TCPPort")) self.http = net.HTTPClient({timeout=3000}) self:updateProperty("deviceIcon", 1051) -- ID de votre icône à mettre ici self:trace("===========================================================") self:debug("onInit") self:refreshAuto() end -------------------------------------------------------------------------------------------------------------------------------------- -- CONNECTION PLEX -------------------------------------------------------------------------------------------------------------------------------------- function QuickApp:connectPlex() local address = "http://"..self.ip..":"..self.port.."/status/sessions" self.http:request(address, { options = { headers = { ["X-Plex-Token"] = "votre Token", ["X-Plex-Client-Identifier"] = "myPlexApp", ["Accept"] = "application/json", }, method = "GET" }, success = function(response) plexdata = json.decode(response.data) --self:debug(response.data) self:videoData(plexdata) end, error = function(err) self:debug("Error: " .. err) end } ) end -------------------------------------------------------------------------------------------------------------------------------------- -- DECODE AUDIO FORMAT -------------------------------------------------------------------------------------------------------------------------------------- function QuickApp:textAudioFormat(text) local translate = { aac = "Dolby Digital", ac3 = "Dolby Digital", dca = "DTS" } if text then text = translate[text] end return self:normeText(text) end -------------------------------------------------------------------------------------------------------------------------------------- -- DONNÉES FILMS & SÉRIES -------------------------------------------------------------------------------------------------------------------------------------- function QuickApp:videoData(plexdata) local metaDataInfo local media local audioCodec local duration local summary local year local title local role if tonumber(plexdata.MediaContainer.size) > 0 then metaDataInfo = plexdata.MediaContainer.Metadata[1] media = metaDataInfo.librarySectionTitle audioCodec = metaDataInfo.Media[1].audioCodec duration = self:convertTime(metaDataInfo.duration) summary = metaDataInfo.summary -- Titre Films ou Séries if media == "Films" then title = metaDataInfo.title.." - "..metaDataInfo.tagline year = "Année de sortie: "..metaDataInfo.year.." - "..metaDataInfo.Country[1].tag role = "Avec: "..metaDataInfo.Role[1].tag.." - "..metaDataInfo.Role[2].tag.." - "..metaDataInfo.Role[3].tag.." - "..metaDataInfo.Role[4].tag.." ..." else title = metaDataInfo.grandparentTitle.." - "..string.gsub(metaDataInfo.parentTitle, "Season ", "S").."EP"..metaDataInfo.index.." - "..metaDataInfo.title year = "Année de sortie: "..metaDataInfo.year role = " " end end self:trace("vidéo en cours: "..self:normeText(title)) self:trace("Durée de la vidéo: "..self:normeText(duration)) self:updateView("lblmedia", "text", self:normeText(media)) self:updateView("lbltitre", "text", self:normeText(title)) self:updateView("lblActors", "text", self:normeText(role)) self:updateView("lblTime", "text", "Durée: "..self:normeText(duration)) self:updateView("lblyear", "text", self:normeText(year)) --self:updateView("lblyear", "text", "Année de sortie: "..self:normeText(year)) self:updateView("lblaudiocodec", "text", self:textAudioFormat(audioCodec)) self:updateView("lblSynopsis", "text", self:normeText(summary)) self:trace("===========================================================") end function QuickApp:normeText(text) if text then return text end return "N/A" end -------------------------------------------------------------------------------------------------------------------------------------- -- CONVERSION MILLISECONDE EN H:M:S -------------------------------------------------------------------------------------------------------------------------------------- function QuickApp:round(num) return math.floor(num + 0.5) end function QuickApp:convertTime(ms) secondes = self:round(ms/1000) heures = math.floor(secondes/3600) minutes = math.floor(secondes%3600/60) secondes = math.floor(secondes%3600%60) return string.format("%02d:%02d:%02d", heures, minutes, secondes) end -------------------------------------------------------------------------------------------------------------------------------------- -- BOUTON REFRESH -------------------------------------------------------------------------------------------------------------------------------------- function QuickApp:btnRefresh() self:connectPlex() end -------------------------------------------------------------------------------------------------------------------------------------- -- REFRESH AUTO -------------------------------------------------------------------------------------------------------------------------------------- function QuickApp:refreshAuto() self:trace("refreshAuto") self:connectPlex() fibaro.setTimeout(1000*10, function() self:refreshAuto() end) end -------------------------------------------------------------------------------------------------------------------------------------- -- FIN DU CODE -------------------------------------------------------------------------------------------------------------------------------------- QuickApp: PLEX_V1.1.fqa Icône: EDIT: Légère modification du code pour des problèmes de Token. Voir le header. Modifié le 4 juin 2020 par fredokl 5 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
mprinfo Posté(e) le 3 juin 2020 Signaler Partager Posté(e) le 3 juin 2020 dommage moi j'utilise KODI super travail Lien vers le commentaire Partager sur d’autres sites More sharing options...
fredokl Posté(e) le 3 juin 2020 Auteur Signaler Partager Posté(e) le 3 juin 2020 J’utilisais aussi XBMC avant de s’appeler KODI mais avec l’achat d’une AppleTV, KODI n’est pas pris en charge. Plex est pas mal.Envoyé de mon iPhone en utilisant Tapatalk Lien vers le commentaire Partager sur d’autres sites More sharing options...
mprinfo Posté(e) le 3 juin 2020 Signaler Partager Posté(e) le 3 juin 2020 Tu as vraiment mauvais goût Apple tv ça ce vend encore La shield est mieux en plus on peut mettre kodi ou plexEnvoyé de mon BLA-L29 en utilisant Tapatalk 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
fredokl Posté(e) le 3 juin 2020 Auteur Signaler Partager Posté(e) le 3 juin 2020 Oui et ça ce vend même bien. Je ne connais pas la shield. On est tous équipés avec la pomme à la maison. On en est très satisfait. Après les trucs avec androïd c'est pas pour moi. Pas assez classe! 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
mprinfo Posté(e) le 3 juin 2020 Signaler Partager Posté(e) le 3 juin 2020 Nvidia pas classe Envoyé de mon BLA-L29 en utilisant Tapatalk 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
fredokl Posté(e) le 3 juin 2020 Auteur Signaler Partager Posté(e) le 3 juin 2020 Les goûts et les couleurs... 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
bodyart Posté(e) le 14 juin 2020 Signaler Partager Posté(e) le 14 juin 2020 Hi @fredokl , unfortunately your QuickApp works only, when you define only one genre in Plex i.e. "films" -- Titre Films ou Séries if media == "Films" then in my case i have defined many genres like: "drama","action","scifi", etc. P.S. Excusez moi, mais je ne parle pas français Lien vers le commentaire Partager sur d’autres sites More sharing options...
fredokl Posté(e) le 14 juin 2020 Auteur Signaler Partager Posté(e) le 14 juin 2020 Hello @bodyart, yes Qa only works with "Films" and "Séries". I plan to update soon to include other categories. PS: Excuse me i don't speak english very well either 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
fredokl Posté(e) le 5 février 2023 Auteur Signaler Partager Posté(e) le 5 février 2023 @bodyartVery nice! Lien vers le commentaire Partager sur d’autres sites More sharing options...
fredokl Posté(e) le 5 février 2023 Auteur Signaler Partager Posté(e) le 5 février 2023 can you share your version? Lien vers le commentaire Partager sur d’autres sites More sharing options...
fredokl Posté(e) le 6 février 2023 Auteur Signaler Partager Posté(e) le 6 février 2023 Hi. I will test your QA. I'll let you know my suggestions if needed. 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
fredokl Posté(e) le 7 février 2023 Auteur Signaler Partager Posté(e) le 7 février 2023 Hi. Your code is working fine. I started to make some changes, including French translations and readjustments on the content to display. 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
fredokl Posté(e) le 9 février 2023 Auteur Signaler Partager Posté(e) le 9 février 2023 Yes Lien vers le commentaire Partager sur d’autres sites More sharing options...
fredokl Posté(e) le 2 mars 2023 Auteur Signaler Partager Posté(e) le 2 mars 2023 No, I took a break. I'm building my pool right now and it's taking me quite a while. I've already started tinkering with the code but nothing too impressive so far. But don't worry, as soon as I'm done, I'll share it. 1 Lien vers le commentaire Partager sur d’autres sites More sharing options...
bodyart Posté(e) le 16 avril Signaler Partager Posté(e) le 16 avril Le 02/03/2023 à 23:45, fredokl a dit : No, I took a break. I'm building my pool right now and it's taking me quite a while. I've already started tinkering with the code but nothing too impressive so far. But don't worry, as soon as I'm done, I'll share it. I hope at least your pool is ready now. :-) Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés