WebEPG :qui s'en sert ? (2 Viewers)

U

unknow21

Guest
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.
 
B

Broceliande

Guest
Originally posted by unknow21@23 May 2006, 18:03
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.
<div align="right"><{POST_SNAPBACK}>
[/quote]

Cela ferait également une surcouche dans WebEPG
<
....
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.
 
U

unknow21

Guest
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
<

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
<


Je pense que James comprendra..
 
U

unknow21

Guest
Voici le fichier xsl qui fusionne Arte et France 5 en ArteF5 (parmettrable au debut du fichier)
Code:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">  
<xsl:output method="xml" encoding="ISO-8859-1"/>
    
    
    <xsl:variable name="NightChannelName">Arte</xsl:variable>
    
    
    
    <xsl:variable name="DayChannelName">France 5</xsl:variable>
    
    
    
    <xsl:variable name="NewChannelName">ArteF5 </xsl:variable>
    
    
    
    <xsl:variable name="TimeStartDay">030000</xsl:variable>
    
    
    
    <xsl:variable name="TimeStartNight">190000 </xsl:variable>
    
    <xsl:output method="xml" encoding="iso-8859-1"/>
    <xsl:template match="/tv">    
        &gt;?xml version="1.0" encoding="utf-8"?&lt;    
        <tv generator-info-name="WebEPG">
  <xsl:apply-templates/>        
        </tv>
    </xsl:template >

    <xsl:template match="channel" >                        
        <xsl:choose>
            <xsl:when test="self::node()[display-name=$NightChannelName]">
                
                    <xsl:copy>                 
                         <xsl:attribute name="id"><xsl:value-of select="@id"/></xsl:attribute>                           
                          <xsl:element name="display-name">
                            <xsl:value-of select="$NewChannelName"/>
                          </xsl:element>
                    </xsl:copy>
            </xsl:when>
            <xsl:when test="self::node()[display-name=$DayChannelName]">
                
            </xsl:when>
            <xsl:otherwise>
                <xsl:copy-of select="self::node()"/>
            </xsl:otherwise>
        </xsl:choose>   
        
    </xsl:template >

    <xsl:template match="programme">
        <xsl:variable name="NewChannelId" select="/tv/channel[display-name=NightChannelName]/@id" />
        <xsl:variable name="DayChannelId" select="/tv/channel[display-name=DayChannelName]/@id"/>         
        <xsl:choose>
            <xsl:when test="self::node()[@id=$NewChannelId]">
            
                <xsl:if test="self::node()[number(substring(@start,7,6)) &lt; number($TimeStartDay) or number(substring(@start,7,6)) &gt; number($TimeStartNight)-4099 ]">
                    <xsl:copy-of select="self::node()"/>  
                </xsl:if>
            </xsl:when>
            <xsl:when test="self::node()[@id=$DayChannelId]">
            
                <xsl:if test="self::node()[number(substring(@start,7,6)) &gt; number($TimeStartDay)-4099 and number(substring(@start,7,6)) &lt; number($TimeStartNight)]">
                    <xsl:copy>  
                        <xsl:attribute name="start"><xsl:value-of select="@start"/></xsl:attribute> 
                        <xsl:attribute name="id">$DayChannelId</xsl:attribute>                           
                        <xsl:copy-of select="self::node()/child::*"/>                    
                    </xsl:copy>  
                </xsl:if>
            </xsl:when>
            <xsl:otherwise>
                <xsl:copy-of select="self::node()"/>
            </xsl:otherwise>
        </xsl:choose>
    </xsl:template>    
</xsl:stylesheet>

Et le source dotnet en c# qui permet d'appliquer ce xsl sur le tvguide:
Code:
                   XmlReaderSettings settingsR = new XmlReaderSettings();
                    XmlWriterSettings settingsW = new XmlWriterSettings();
                    XslCompiledTransform t = new XslCompiledTransform(true);
                    t.Load("file.xsl");         
                    settingsR.ProhibitDtd = false;
                    settingsW.ConformanceLevel = ConformanceLevel.Fragment;
                    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
<
 
B

Broceliande

Guest
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
<
, 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.
 
U

unknow21

Guest
Dommage çà aurait pu être integrer supper rapidement en attendant mieux
<

L'exe est quasi-fait..
Au passage, y'a t-il moyen de configurer le chemin/nom du ficgier de sortie TVGuide.xml?
 
B

Broceliande

Guest
Originally posted by unknow21@24 May 2006, 20:13
Dommage çà aurait pu être integrer supper rapidement en attendant mieux
<

L'exe est quasi-fait..
Au passage, y'a t-il moyen de configurer le chemin/nom du ficgier de sortie TVGuide.xml?
<div align="right"><{POST_SNAPBACK}>
[/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 )
 
B

Broceliande

Guest
Unknown , je travaille sur la possibilité de merger 2 chaines dans webEPG... Alors qui sait ?...Peut etre bientôt une fonctionnalité supplémentaire
<
 
P

pytitof

Guest
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 ?
 

Users who are viewing this thread

Top Bottom