Dreossk | 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 :
- <%
- ' URL to RSS Feed to display
- URLToRSS = "http://xml.weather.yahoo.com/forecastrss?p=CAXX0243&u=c"
- ' Nombre maximum d'items affichés
- MaxNumberOfItems = 1
- MaxNumberOfChannels = 1
- ' Attribution des données
- 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>"
- ' Message d'erreur si aucun item n'a été renvoyé par le feed
- ErrorMessage = "Une erreur est survenue lors de l'accès à " &URLToRSS & "<br />Veuillez contacter l'administrateur du site"
- Set xmlHttp = CreateObject("MSXML2.ServerXMLHTTP.3.0" )
- xmlHttp.Open "Get", URLToRSS, false
- xmlHttp.Send ""
- RSSXML = xmlHttp.ResponseText
- Set xmlDOM = Server.CreateObject("MSXML2.DomDocument.3.0" )
- xmlDOM.async = false
- xmlDOM.LoadXml(RSSXML)
- Set xmlHttp = Nothing
- Set RSSItems = xmlDOM.getElementsByTagName("item" )
- Set RSSChannels = xmlDOM.getElementsByTagName("channel" )
- Set xmlDOM = Nothing
- RSSItemsCount = RSSItems.Length - 1
- RSSChannelsCount = RSSChannels.Length - 1
- k=-1
- For l = 0 To RSSChannelsCount
- Set RSSChannel = RSSChannels.Item(l)
- For each child in RSSChannels.item(l).childNodes
- Select case lcase(child.nodeName)
- case "yweather:wind"
- RSStere = child.attributes.item(0).nodeValue
- RSSvent = child.attributes.item(2).nodeValue
- End Select
- Next
- k=k+1
- Next
- ' Check si une erreur est survenu lors de la réception du RSS et affiche un message
- if RSSChannelsCount < 0 then
- Response.Write ErrorMessage
- End If
- j=-1
- For i = 0 To RSSItemsCount
- Set RSSItem = RSSItems.Item(i)
- For each child in RSSItems.item(i).childNodes
- Select case lcase(child.nodeName)
- case "pubdate"
- RSSdate = child.text
- case "title"
- RSStitle = child.text
- case "link"
- RSSlink = child.text
- case "description"
- RSSdescription = child.text
- RSSimgstartpos = InStr(RSSdescription, "<img" )
- RSSimgstr = Right(RSSDescription, len(RSSdescription) + 1 - RSSdescription1)
- RSSimgendpos = InStr(RSSimgstr, ">" )
- RSSimgstr = Left(RSSimgstr, RSSimgendpos)
- <!-- case "yweather:wind" -->
- <!-- RSStere = child.attributes.item(0).nodeValue -->
- case "yweather:condition"
- RSSconditions = child.attributes.item(0).nodeValue
- Select case RSSconditions
- case "Unknown"
- RSSconditions = "Climat actuel indisponible"
- End Select
- RSStemp = child.attributes.item(2).nodeValue
- case "yweather:forecast"
- RSSdemain = child.attributes.item(4).nodeValue
- Select case RSSdemain
- case "Unknown"
- RSSdemain = "Climat indisponible"
- End Select
- RSStempdemain1 = child.attributes.item(2).nodeValue
- RSStempdemain2 = child.attributes.item(3).nodeValue
- End Select
- Next
- j = j+1
- if j < MaxNumberOfItems then
- RSSItemContent = Replace(RSSItemTemplate,"{IMG}", RSSimgstr)
- RSSItemContent = Replace(RSSItemContent, "{TERE}", RSStere)
- RSSItemContent = Replace(RSSItemContent, "{TEMP}", RSStemp)
- RSSItemContent = Replace(RSSItemContent, "{DEM}", RSSdemain)
- RSSItemContent = Replace(RSSItemContent, "{VENT}", RSSvent)
- RSSItemContent = Replace(RSSItemContent, "{TEDE1}", RSStempdemain1)
- RSSItemContent = Replace(RSSItemContent, "{TEDE2}", RSStempdemain2)
- RSSItemContent = Replace(RSSItemContent, "{CONDITIONS}", RSSconditions)
- 'RSSItemContent = Replace(RSSItemContent, "{DATE}", RSSdate)
- Response.write RSSItemContent
- 'Response.write RSSdescription
- End if
- Next
- ' Check si une erreur est survenu lors de la réception du RSS et affiche un message
- if RSSItemsCount < 0 then
- Response.Write ErrorMessage
- End If
- %>
|
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
|