surveiller un RSS ou un site web

Programmation d'applications complexes
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

surveiller un RSS ou un site web

Message par Thyphoon »

Hello !

Me revoilà pour un petit projet pour le boulot.
Dans ma boite on a un problème, les personnes ne vont pas voir l'intranet. Le directeur voudrait qu'on ai sur les postes, une application qui ouvre une petite fenêtre en pop-up lorsque l'application détecte qu'un RSS ou qu'une page web a été modifier sur l'intranet.Et ainsi inviter les personnes a venir voir l'info
Et a mon avis utiliser PB pour faire cette application est l'idéal.
Voici le bout de code que j'utilise pour détecter qu'un file RSS ou une page web a changé.
Qu'en pensez vous ? y a t'il une meilleur façon de faire ?

Code : Tout sélectionner

InitNetwork()
Procedure.l DownloadToMem ( URL.s, *lpRam, ramsize.l )  
 Protected agent.s, hInet.l, hData.l, Bytes.l  
  
 ; #INTERNET_OPEN_TYPE_DIRECT = 1  
 ; #INTERNET_DEFAULT_HTTP_PORT = 80  
 ; #INTERNET_SERVICE_HTTP = 3  
 ; #INTERNET_FLAG_NO_CACHE_WRITE = $4000000  
 ; #INTERNET_FLAG_RELOAD = $8000000  
 agent.s = "Mozilla/4.0 (compatible; ST)"  
 hInet.l = InternetOpen_ ( @agent.s,0,0,0,0 )  
 hData.l = InternetOpenUrl_ ( hInet, @URL.s, "", 0, $8000000, 0 )  
  
 If hData > 0 : InternetReadFile_ ( hData, *lpRam, ramsize.l, @Bytes.l ) : Else : Bytes = -1 : EndIf  
  
 InternetCloseHandle_ (hInet)  
 InternetCloseHandle_ (hFile)  
 InternetCloseHandle_ (hData)  
  
 ProcedureReturn Bytes.l  
EndProcedure  

;Structure  pour mémoriser les différents URLs a surveiller
Structure WebList
  name.s          ;Un nom
  url.s           ;l'adresse URL a surveiller
  fingerPrint.s   ;l'emprunte de la page (pour savoir si ça changé)
EndStructure

Global NewList WebList.WebList()

;Une pseud
AddElement(WebList())
WebList()\url="http://ecotidien.typhon.net/feed/";

AddElement(WebList())
WebList()\url="http://www.lemonde.fr/rss/une.xml";


;on test tout les liens et on verifie si certain on changer ...
Procedure Check()
  ForEach WebList()
    Debug WebList()\url
    Result.s = Space(63000)  
    Size= DownloadToMem ( WebList()\url, @Result, 63000 )
    If Size>0
      fingerprint.s=SHA1Fingerprint(@Result, Size)
      ;Si la page a changé
      If WebList()\fingerPrint<>fingerprint
        Debug "la page a changé"
        WebList()\fingerPrint=fingerprint
        Debug Result
      EndIf
    EndIf
  Next
EndProcedure

;Une pseudo boucle pour tester si ça marche
For z=1 To 4000
  Delay(10000)
  Check()
Next
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: surveiller un RSS ou un site web

Message par Ar-S »

Ce sont des pages RSS internes ou pas, y as tu accès ?
Si oui il suffit de "marquer" la page avec une valeur x dans la source et de vérifier si cette valeur a changée (ID de la dernière news par exemple).
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: surveiller un RSS ou un site web

Message par Thyphoon »

Ar-S a écrit :Ce sont des pages RSS internes ou pas, y as tu accès ?
Si oui il suffit de "marquer" la page avec une valeur x dans la source et de vérifier si cette valeur a changée (ID de la dernière news par exemple).
Oui ça peut être une bonne idée... je vais regarder ça ... le problème c'est qu'on a pas acces au code de l'intranet ...
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: surveiller un RSS ou un site web

Message par Ar-S »

c'est à voir avec le webmaster
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
Thyphoon
Messages : 2706
Inscription : mer. 25/août/2004 6:31
Localisation : Eragny
Contact :

Re: surveiller un RSS ou un site web

Message par Thyphoon »

Ar-S a écrit :c'est à voir avec le webmaster
Oui mais même le webmaster n'a pas accès au code, c'est un produit clef en main ...
Avatar de l’utilisateur
case
Messages : 1546
Inscription : lun. 10/sept./2007 11:13

Re: surveiller un RSS ou un site web

Message par case »

c'est bête d'avoir tout les postes qui doivent vérifier si il y a eu changement des pages non ? si c'est une grosse boite ca vas faire plein de requêtes sur l'intégralité des pages du serveur... sans compter que ca vas bouffer tu temps machine sur chaque poste... et de la bande passante plus utilie a autre chose , enfin il me semble non ?

le plus simple serait d'avoir la possibilité que chaque client interroge un fichier texte généré chaque jour par un logiciel avec une tache planifiée sur le serveur par exemple.

du coup le client interrogerais uniquement le fichier du jour pour avoir les url modifiées. et les popuperais a la face du vil collaborateur qui a rien a foutre de l'intranet et des flux rss de la boite :)

mais pour ca faudrait avoir accès au serveur.
ImageImage
Répondre