TfeServer

Blog de tfe, Perl, Web et Libre...?

Re-Nouveau: FreeBSD

Publié le 25/01/2006 dans Web

Ben voila, comme vous aurez pu le constater, le site reprends apre¨s pas loin d'une semaine d'arreªt.

La raison? une erreur de manipulation a fait grille© mon processeur. J'en ai donc profite© pour acheter un nouveau ordinateur (et oui :p), 64 bits cette fois, et passer a FreeBSD.

Apres bien des proble¨mes de configuration pour mettre internet, configurer Xorg et enfin remettre e  jour Apache2, je me suis rendu compte que les bases de donne©e n'avaient pas e©te© sauvegarde©es. On reprends donc de 0 :(

Bien que la technologie RSS est maintenant plus qu'utilise©e dans la plupart des sites, il existe encore quelques sites ne proposant pas de flux RSS dignes de ce nom.

Pour palier e  ce proble¨me, je me suis permis de creer un petit bookmarklet qui permets, sur une page. permets de se©lectionner un type de lien, et rediriger vers un script qui automatisera la ge©ne©ration du flux RSS en fonction du continu de la page.

Assez de bavardes, avec quelques images ce sera bien plus concre¨s:

Le site http://www.peliculasyonkis.com/ ne propose pas de flux RSS. Je de©sire en ge©ne©rer automatique un. Pour cela:

  1. Je bookmark le bookmarklet (cre©er un nouveau raccourci avec l'url de ce lien en url)
  2. Je visite la page ne posse©dant pas de flux rss, comme pour mon exemple la page des derniers films http://www.peliculasyonkis.com/ultimas-peliculas
  3. Je visite alors le bookmark que je viens d'enregistrer
  4. Une page d'information s'affiche alors demandant de se©lectionner le nom puis le lien voulu:
  5. On est alors redirige© vers le flux rss, qui sera mis e  jour automatiquement par la suite.

Re©sultat: une jolie url (http://bit.ly/s1Slgs) qui nous ge©ne¨re un flux rss automatiquement pour http://www.peliculasyonkis.com/.

Note importante: Il se peut que le script qui ge©ne¨re le flux RSS ne soit pas comple¨tement optimise© pour l'ensemble des pages web, auquel cas il retourne un flux rss vide.

URL du bookmarklet (url e  enregistrer dans vos favoris):

javascript:selected=new Array(); num_items=new Array(); var a; var xhr=new XMLHttpRequest(); xhr.onreadystatechange = function() { if(xhr.readyState==4) { var txt=xhr.responseText; txt=document.body.innerHTML=xhr.responseText.substring(txt.indexOf(%22<body%22), txt.indexOf(%22</body%22)); txt = txt.substring(txt.indexOf(%22>%22)+1); txt.replace(%22<script%22,%22%22); document.body.innerHTML=txt; _tfe_start(); } }; xhr.open(%22GET%22,location.href,true); xhr.send(null); function _tfe_start() { var s=document.createElement(%22div%22); s.id=%22_tfe_%22; s.setAttribute(%22style%22,%22position:fixed; left:1%; top:10px; background:black; color:white; padding:50px; width:98%; border:1px solid yellow; font-size:20px; text-align:center;%22); document.body.appendChild(s); a=document.getElementsByTagName(%22a%22); for(i=0;i<a.length;i++) { var p=a[i]; var s=%22%22; while(p!=null && p.tagName!=null &&p.tagName!=%22HTML%22) { if(p.tagName!=%22TBODY%22) { s=_tfe_getTag(p)+%22 %22+s; } p=p.parentNode; } a[i].setAttribute(%22onclick%22,%22_tfe_grab_item(\%22%22+s+%22\%22); return false%22); a[i].setAttribute(%22onmouseover%22,%22items=document.querySelectorAll(\%22%22+s+%22\%22);for(i=0;i<items.length;i++){ items[i].style.background=\%22blue\%22}%22); a[i].setAttribute(%22onmouseout%22,%22items=document.querySelectorAll(\%22%22+s+%22\%22);for(i=0;i<items.length;i++){ items[i].style.background=\%22\%22}%22); } _tfe_init(); } function _tfe_getTag(tag) { var s=tag.tagName; if(tag.id) { s+=%22#%22+tag.id; } else if(tag.className) { s+=%22.%22+tag.className.replace(/\s.*/,%22%22); } return s; } function _tfe_init() { _tfe_clear_tags(); selected=new Array(); num_items=new Array(); document.getElementById(%22_tfe_%22).innerHTML=%22Select the NAME of the items you want to add in the rss feed.%22; } function _tfe_grab_item(s) { selected.push(s); items=document.querySelectorAll(s); num_items.push(items.length); if(selected.length==2) { _tfe_submit(); } else { for(i=0;i<items.length;i++) { items[i].setAttribute(%22style%22,%22background:red !important; color:yellow !important%22); } document.getElementById(%22_tfe_%22).innerHTML=%22Select the LINK of the items you want to add in the rss feed.%22; } } function _tfe_clear_tags() { for(i=0;i<a.length;i++) { a[i].setAttribute(%22style%22,%22%22); } } function _tfe_submit() { if(num_items[0]==num_items[1]) { document.getElementById(%22_tfe_%22).innerHTML=%22Generating RSS Feed. Please Wait...%22; location.href=%22http://eztv.ptain.info/cgi-bin/html2rss.pl?url=%22+encodeURIComponent(location.href)+%22&n1=%22+encodeURIComponent(selected[0])+%22&n2=%22+encodeURIComponent(selected[1]); } else { alert(%22Link and Names have not the same number of items. Please try again.%22); _tfe_init(); } }