RSS sans ASP?

RSS sans ASP? - ASP - Programmation

Marsh Posté le 12-02-2010 à 02:02:19    

Salut,
 
Il y a quelques années moi et un collègue avions codé pour le plaisir un script RSS avec de l'asp pour obtenir la météo à partir de Yahoo pour l'afficher sur un écran géant dans notre centre de traitement informatique. Le script était sur un serveur web intranet. Seulement voilà, récemment il y a eu un changement à la sécurité et tous les serveurs ne peuvent aller sur Internet sans login donc ça a cassé notre script puisque le lien vers Yahoo ne fonctionne plus. J'ai temporairement remédié à la situation en mettant le script sur un autre serveur avec accès à Internet mais comme ce n'est pas un serveur web il ne gère pas l'asp donc la mise en forme du RSS est plutôt basique, voir inexistante.  
 
Je suis assez rouillé en asp et en relisant notre code je ne comprends même plus et je voudrais savoir s'il est possible de changer le code asp pour mettre du javascript ou quelque chose d'autre à la place qui pourrait fonctionner sans serveur web. Voici la partie asp du script:
 

Code :
  1. <%
  2.    ' URL to RSS Feed to display
  3.    URLToRSS = "http://xml.weather.yahoo.com/forecastrss?p=CAXX0243&u=c"
  4.    ' Nombre maximum d'items affichés
  5.    MaxNumberOfItems = 1
  6.    MaxNumberOfChannels = 1
  7.    ' Attribution des données
  8.    RSSItemTemplate = "<center><table><tr><td align=center><font color=#CC0033 size=+1>T° Ambiante</color><br><font size=+3 color=#CC0033>{TEMP} °C</font></td><td>{IMG}</td><td align=center><font color=#CC0033 size=+1>T° Ressentie</font><br><font size=+3 color=#CC0033>{TERE} °C</font></td></tr></table><font size=+2>{CONDITIONS}</font><br>Demain: <i>{DEM}</i> <font color=#777777>|</font> T° <i>{TEDE1}</i> - <i>{TEDE2} °C</i></center>"
  9.    ' Message d'erreur si aucun item n'a été renvoyé par le feed
  10.    ErrorMessage = "Une erreur est survenue lors de l'accès à " &URLToRSS & "<br />Veuillez contacter l'administrateur du site"
  11.    Set xmlHttp = CreateObject("MSXML2.ServerXMLHTTP.3.0" )
  12.    xmlHttp.Open "Get", URLToRSS, false
  13.    xmlHttp.Send ""
  14.    RSSXML = xmlHttp.ResponseText
  15.    Set xmlDOM = Server.CreateObject("MSXML2.DomDocument.3.0" )
  16.    xmlDOM.async = false
  17.    xmlDOM.LoadXml(RSSXML)
  18.    Set xmlHttp = Nothing
  19.    Set RSSItems = xmlDOM.getElementsByTagName("item" )
  20.    Set RSSChannels = xmlDOM.getElementsByTagName("channel" )
  21.    Set xmlDOM = Nothing
  22.    RSSItemsCount = RSSItems.Length - 1
  23.    RSSChannelsCount = RSSChannels.Length - 1
  24.    k=-1
  25.    For l = 0 To RSSChannelsCount
  26.      Set RSSChannel = RSSChannels.Item(l)
  27.      For each child in RSSChannels.item(l).childNodes
  28.        Select case lcase(child.nodeName)
  29.          case "yweather:wind"
  30.            RSStere = child.attributes.item(0).nodeValue
  31.            RSSvent = child.attributes.item(2).nodeValue
  32.        End Select
  33.      Next
  34.      k=k+1
  35.    Next
  36.    ' Check si une erreur est survenu lors de la réception du RSS et affiche un message
  37.    if RSSChannelsCount < 0 then
  38.      Response.Write ErrorMessage
  39.    End If
  40.    j=-1
  41.    For i = 0 To RSSItemsCount
  42.      Set RSSItem = RSSItems.Item(i)
  43.      For each child in RSSItems.item(i).childNodes
  44.        Select case lcase(child.nodeName)
  45.          case "pubdate"
  46.            RSSdate = child.text
  47.          case "title"
  48.            RSStitle = child.text
  49.          case "link"
  50.            RSSlink = child.text
  51.          case "description"
  52.            RSSdescription = child.text
  53.            RSSimgstartpos = InStr(RSSdescription, "<img" )
  54.            RSSimgstr = Right(RSSDescription, len(RSSdescription) + 1 - RSSdescription1)
  55.    RSSimgendpos = InStr(RSSimgstr, ">" )
  56.            RSSimgstr = Left(RSSimgstr, RSSimgendpos)
  57.          <!-- case "yweather:wind" -->
  58.            <!-- RSStere = child.attributes.item(0).nodeValue -->
  59.          case "yweather:condition"
  60.            RSSconditions = child.attributes.item(0).nodeValue
  61.            Select case RSSconditions
  62.              case "Unknown"
  63.                RSSconditions = "Climat actuel indisponible"
  64.            End Select
  65.            RSStemp = child.attributes.item(2).nodeValue
  66.          case "yweather:forecast"
  67.            RSSdemain = child.attributes.item(4).nodeValue
  68.            Select case RSSdemain
  69.              case "Unknown"
  70.                RSSdemain = "Climat indisponible"
  71.              End Select
  72.              RSStempdemain1 = child.attributes.item(2).nodeValue
  73.              RSStempdemain2 = child.attributes.item(3).nodeValue
  74.            End Select
  75.      Next
  76.      j = j+1
  77.      if j < MaxNumberOfItems then
  78.        RSSItemContent = Replace(RSSItemTemplate,"{IMG}", RSSimgstr)
  79.        RSSItemContent = Replace(RSSItemContent, "{TERE}", RSStere)
  80.        RSSItemContent = Replace(RSSItemContent, "{TEMP}", RSStemp)
  81.        RSSItemContent = Replace(RSSItemContent, "{DEM}", RSSdemain)
  82.        RSSItemContent = Replace(RSSItemContent, "{VENT}", RSSvent)
  83.        RSSItemContent = Replace(RSSItemContent, "{TEDE1}", RSStempdemain1)
  84.        RSSItemContent = Replace(RSSItemContent, "{TEDE2}", RSStempdemain2)
  85.        RSSItemContent = Replace(RSSItemContent, "{CONDITIONS}", RSSconditions)
  86.        'RSSItemContent = Replace(RSSItemContent, "{DATE}", RSSdate)
  87.        Response.write RSSItemContent
  88.        'Response.write RSSdescription
  89.      End if
  90.    Next
  91.    ' Check si une erreur est survenu lors de la réception du RSS et affiche un message
  92.    if RSSItemsCount < 0 then
  93.      Response.Write ErrorMessage
  94.    End If
  95.    %>


 
Merci.
 
Edit: En fait si vous connaissez un autre moyen totalement de prendre les données du RSS et des les afficher comme on veut ça me convient aussi, pas besoin de continuer avec le code ci-haut.


Message édité par Dreossk le 12-02-2010 à 02:07:35
Reply

Marsh Posté le 12-02-2010 à 02:02:19   

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed