WebEPG :qui s'en sert ? | Page 3

Discussion in 'Web EPG' started by fmelle, May 18, 2006.

  1. unknow21

    unknow21 Guest

    Ratings:
    +0 / 0
    Ok merci, pas d'utilité pour moi n'ayant qu'une carte TV.



    Sinon si tu pouvais toucher 2 mots à James, un petite option pour pouvoir appliqué un fichier xsl çà serait cool ( mon xsl de fusion arte & france 5 est quasi fini ).
    Sinon je me ferait un petit utilitaire, pour aplliqué le xsl, mais çà fait encore une surcouche.
     
  2. Google AdSense Guest Advertisement



    to hide all adverts.
  3. Broceliande

    Broceliande Guest

    Ratings:
    +0 / 0
    [/quote]

    Cela ferait également une surcouche dans WebEPG [​IMG] ....
    Mediaportal n'inclus pas de classes gérant les xls, en revanche, nous sommes tombés d'accord sur un point : si la gestion des programmes multiples pour un meme chaine, celle ci sera intégrée au module de configuration , et non à webEPG, dont ce n'est pas la vocation.
    Je te tiendrais informé, si ça passe à l'ordre du jour.
     
  4. unknow21

    unknow21 Guest

    Ratings:
    +0 / 0
    Je parlait d'un fichier XSL (eXtensible StyleSheet Language) qui permet de transformer du xml en xml, html ou autre (rien avoi avec xls = Excel). C'est tres courrament utilisé pur faire de la mise page html de donnée xml.
    Le support du xsl est natif dotnet 2.0 . Appliqué un xsl sur un fichier xml prends 3 lignes de code en dotnet [​IMG]
    Pouvoir appliqué un xsl sur le fichier générer par WebEpg, permettreait au perssonne exterieur au dev de webepg, de modifier tvguide.xml sans touché au code de webepg. Ca ajouterai de la souplesse ce qui n'est jammais un mal [​IMG]

    Je pense que James comprendra..
     
  5. unknow21

    unknow21 Guest

    Ratings:
    +0 / 0
    Voici le fichier xsl qui fusionne Arte et France 5 en ArteF5 (parmettrable au debut du fichier)
    Code (Text):
    1. <?xml version="1.0" encoding="ISO-8859-1"?>
    2. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
    3. <xsl:output method="xml" encoding="ISO-8859-1"/>
    4.     
    5.     
    6.     <xsl:variable name="NightChannelName">Arte</xsl:variable>
    7.     
    8.     
    9.     
    10.     <xsl:variable name="DayChannelName">France 5</xsl:variable>
    11.     
    12.     
    13.     
    14.     <xsl:variable name="NewChannelName">ArteF5 </xsl:variable>
    15.     
    16.     
    17.     
    18.     <xsl:variable name="TimeStartDay">030000</xsl:variable>
    19.     
    20.     
    21.     
    22.     <xsl:variable name="TimeStartNight">190000 </xsl:variable>
    23.     
    24.     <xsl:output method="xml" encoding="iso-8859-1"/>
    25.     <xsl:template match="/tv">    
    26.         &gt;?xml version="1.0" encoding="utf-8"?&lt;    
    27.         <tv generator-info-name="WebEPG">
    28.   <xsl:apply-templates/>        
    29.         </tv>
    30.     </xsl:template >
    31.  
    32.     <xsl:template match="channel" >                        
    33.         <xsl:choose>
    34.             <xsl:when test="self::node()[display-name=$NightChannelName]">
    35.                 
    36.                     <xsl:copy>                
    37.                          <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>                          
    38.                           <xsl:element name="display-name">
    39.                             <xsl:value-of select="$NewChannelName"/>
    40.                           </xsl:element>
    41.                     </xsl:copy>
    42.             </xsl:when>
    43.             <xsl:when test="self::node()[display-name=$DayChannelName]">
    44.                 
    45.             </xsl:when>
    46.             <xsl:otherwise>
    47.                 <xsl:copy-of select="self::node()"/>
    48.             </xsl:otherwise>
    49.         </xsl:choose>  
    50.         
    51.     </xsl:template >
    52.  
    53.     <xsl:template match="programme">
    54.         <xsl:variable name="NewChannelId" select="/tv/channel[display-name=NightChannelName]/@id" />
    55.         <xsl:variable name="DayChannelId" select="/tv/channel[display-name=DayChannelName]/@id"/>        
    56.         <xsl:choose>
    57.             <xsl:when test="self::node()[@id=$NewChannelId]">
    58.             
    59.                 <xsl:if test="self::node()[number(substring(@start,7,6)) &lt; number($TimeStartDay) or number(substring(@start,7,6)) &gt; number($TimeStartNight)-4099 ]">
    60.                     <xsl:copy-of select="self::node()"/>  
    61.                 </xsl:if>
    62.             </xsl:when>
    63.             <xsl:when test="self::node()[@id=$DayChannelId]">
    64.             
    65.                 <xsl:if test="self::node()[number(substring(@start,7,6)) &gt; number($TimeStartDay)-4099 and number(substring(@start,7,6)) &lt; number($TimeStartNight)]">
    66.                     <xsl:copy>  
    67.                         <xsl:attribute name="start"><xsl:value-of select="@start"/></xsl:attribute>
    68.                         <xsl:attribute name="id">$DayChannelId</xsl:attribute>                          
    69.                         <xsl:copy-of select="self::node()/child::*"/>                    
    70.                     </xsl:copy>  
    71.                 </xsl:if>
    72.             </xsl:when>
    73.             <xsl:otherwise>
    74.                 <xsl:copy-of select="self::node()"/>
    75.             </xsl:otherwise>
    76.         </xsl:choose>
    77.     </xsl:template>    
    78. </xsl:stylesheet>
    Et le source dotnet en c# qui permet d'appliquer ce xsl sur le tvguide:
    Code (Text):
    1.                    XmlReaderSettings settingsR = new XmlReaderSettings();
    2.                     XmlWriterSettings settingsW = new XmlWriterSettings();
    3.                     XslCompiledTransform t = new XslCompiledTransform(true);
    4.                     t.Load("file.xsl");        
    5.                     settingsR.ProhibitDtd = false;
    6.                     settingsW.ConformanceLevel = ConformanceLevel.Fragment;
    7.                     t.Transform(XmlReader.Create("TvGuideIn.xml",settingsR),XmlWriter.Create("TvGuideOut.xml",settingsW));
    Je n'ai pas testé le resultat dans MP, car je n'ai pas de carte Tv sous la main [​IMG]
     
  6. Broceliande

    Broceliande Guest

    Ratings:
    +0 / 0
    Tout ceci semble fonctionnel et astucieux. Je n'ai pas cependant eu le temps de tester. Mais comme je te l'ai dit, james et moi discutions tout récemment de l'eventualité de jeter de plus près un oeil au guidetv de MP. L'idée d'une gestion légèrement différente est née , qui en elle meme permettrait sans conversion d'obtenir le résultat que tu recherches. Il serait donc inutile de surcharger le code pour lancer une conversion à partir d'un xsl , alors que l'affichage sera lui meme fait à la volée, selon des critères dont je pourrais reparler lorsque je m'y attaquerais.
    Cependant ton code est utile, car tu peux t'en servir pour creer très simplement un executable dotnet qui te servira jusqu'à ce que notre propre implementation permette de gérer ça differemment .
    N'hésite donc pas à le proposer à d'autres utilisateurs qui peuvent avoir le meme pb que toi [​IMG], d'ailleurs j'en ferais part à un utilisateur qui effectuais la meme demande sur le forum off.
    Je ne suis pas dans la team dev MP depuis longtemps, mais je suis sur que les ameliorations auxquelles james et moi avons songé devraient emballer les autres membres.
     
  7. unknow21

    unknow21 Guest

    Ratings:
    +0 / 0
    Dommage çà aurait pu être integrer supper rapidement en attendant mieux [​IMG]
    L'exe est quasi-fait..
    Au passage, y'a t-il moyen de configurer le chemin/nom du ficgier de sortie TVGuide.xml?
     
  8. Broceliande

    Broceliande Guest

    Ratings:
    +0 / 0
    [/quote]

    WebEPG sera a terme totalement intégré à MP , il n'est donc pas prévu d'utiliser un autre dossier ou fichier de sortie.
    Cela dit tu peux toujours compiler ton propre mod en modifiant selon tes besoins.
    Comme je te l'ai dit, ton outil est pratique et clean, c'est juste que comme webEPG génére lui meme le tvguide.xml , il est superflu d'y ajouter une conversion : autant faire ca à la volée.
    Cela dit , dès que ton exe est pret , pourquoi ne pas mettre tout ca a disposition des utilisateurs ? Car comme tu le dit toi meme , c'est une excellent solution , en attendant que cela soit possible dans webEPG. Je n'hésiterais d'ailleurs pas à proposer ton alternative sur le forum officiel , à ceux qui ont la meme demande.
    James a le lien de ce post , il va de toute façon y jeter un oeil attentif ( mais attention il le récupère après ... son oeil )
     
  9. Broceliande

    Broceliande Guest

    Ratings:
    +0 / 0
    Unknown , je travaille sur la possibilité de merger 2 chaines dans webEPG... Alors qui sait ?...Peut etre bientôt une fonctionnalité supplémentaire [​IMG]
     
  10. pytitof

    pytitof Guest

    Ratings:
    +0 / 0
    Bonjour,

    J'ai un soucis avec WebEpg des dernieres SVN. Il ne met plus a jour le guide.
    Il telecharge bien les infos. Renomme le fichier xmltv.writing.xml en xmltv.xml mais apparement apres lors de l'importation du guide il y a une erreur dans mediaportal.
    Quelqu'un a t 'il le meme probleme ?
     
  11. pytitof

    pytitof Guest

    Ratings:
    +0 / 0
    Plus de probleme avec la svn du 2 Juin. Le guide est mis à jour. [​IMG]
     
Loading...

Users Viewing Thread (Users: 0, Guests: 0)

  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice
  • About The Project

    The vision of the MediaPortal project is to create a free open source media centre application, which supports all advanced media centre functions, and is accessible to all Windows users.

    In reaching this goal we are working every day to make sure our software is one of the best.

             

  • Support MediaPortal!

    The team works very hard to make sure the community is running the best HTPC-software. We give away MediaPortal for free but hosting and software is not for us.

    Care to support our work with a few bucks? We'd really appreciate it!