Agregateur Gregarius (installer une mise à jour automatique)

Agregateur Gregarius (installer une mise à jour automatique) - PHP - Programmation

Marsh Posté le 01-02-2008 à 23:16:40    

Bonjour à tous,
 
j'ai installé un agrégateur Grégarius et je souhaiterais qu'une mise à jour des dernières news s'effectue automatiquement toutes les heures.
 
Pour l'instant je suis obligé de me connecter pour que la mise à jour s'effectue.  
 
Voici la page unpdate.php qui vous est sans doute necessaire pour pouvoir m'aider :
 

Code :
  1. <?php
  2. ###############################################################################
  3. # Gregarius - A PHP based RSS aggregator.
  4. # Copyright (C) 2003 - 2006 Marco Bonetti
  5. #
  6. ###############################################################################
  7. # This program is free software and open source software; you can redistribute
  8. # it and/or modify it under the terms of the GNU General Public License as
  9. # published by the Free Software Foundation; either version 2 of the License,
  10. # or (at your option) any later version.
  11. #
  12. # This program is distributed in the hope that it will be useful, but WITHOUT
  13. # ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  14. # FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
  15. # more details.
  16. #
  17. # You should have received a copy of the GNU General Public License along
  18. # with this program; if not, write to the Free Software Foundation, Inc.,
  19. # 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA  or visit
  20. # http://www.gnu.org/licenses/gpl.html
  21. #
  22. ###############################################################################
  23. # E-mail:  mbonetti at gmail dot com
  24. # Web page:  http://gregarius.net/
  25. #
  26. ###############################################################################
  27. define ('RSS_NO_CACHE',true);
  28. require_once('init.php');
  29. rss_require("cls/update.php" );
  30. rss_require("extlib/browser.php" );
  31. $sajax_request_type = "POST";
  32. $sajax_debug_mode = 0;
  33. $sajax_remote_uri = getPath() . "update.php";
  34. $sajax_export_list = array("ajaxUpdate","ajaxUpdateCleanup" );
  35. sajax_init();
  36. if (array_key_exists('js',$_GET)) {
  37. header('Content-Type: text/javascript');
  38. ajaxUpdateJavascript();
  39. exit();
  40. } elseif(array_key_exists('rs',$_REQUEST)) {
  41.     // this one handles the xmlhttprequest call from the above javascript
  42.     sajax_handle_client_request();
  43.     exit();
  44. }
  45. $browser = new Browser();
  46. $cline = isset($argv) && !$_REQUEST && isset($argc) && $argc;
  47. $silent = array_key_exists('silent', $_GET) || ($cline && in_array('--silent',$argv));
  48. $newsonly = array_key_exists('newsonly', $_GET) || ($cline && in_array('--newsonly', $argv));
  49. $mobile = array_key_exists('mobile',$_GET);
  50. $GLOBALS['rss'] -> header = new Header(
  51.   LBL_TITLE_UPDATING,
  52.   LOCATION_UPDATE,
  53.   null,
  54.   "",
  55.   (HDR_NONE | HDR_NO_CACHECONTROL )
  56.  );
  57. $GLOBALS['rss'] -> feedList = new FeedList(false);
  58. // Instantiate a different Update object, depending on the client
  59. if ($cline && !$silent && !$newsonly) {
  60. $update = new CommandLineUpdate();
  61. } elseif ($cline && !$silent && $newsonly) {
  62. $update = new CommandLineUpdateNews();
  63. } elseif (getConfig('rss.config.serverpush') && !$silent && $browser->supportsServerPush()) {
  64. $update = new HTTPServerPushUpdate();
  65. } elseif(!$silent && $browser->supportsAJAX()) {
  66. $update = new AJAXUpdate();
  67. } elseif($mobile) {
  68. $update = new MobileUpdate();
  69. } else {
  70.     error_reporting(0);
  71.     $update = new SilentUpdate();
  72. }
  73. $GLOBALS['rss'] -> appendContentObject($update);
  74. if (!$silent && !$cline) {
  75. $GLOBALS['rss'] -> renderWithTemplate('index.php','update');
  76. } else {
  77. $update->render();
  78. }
  79. ?>


 
Je vous remercie d'avance pour votre aide   :)

Reply

Marsh Posté le 01-02-2008 à 23:16:40   

Reply

Marsh Posté le 02-02-2008 à 00:41:57    

en gros tu es obligé de taper toi meme l'adresse de cette page pour que l'update se fasse ?
 
Il te suffit de paramétrer une tache planifiée CRON (si tu es sur un serveur dédié) qui executera ce fichier php à intervalle d'une heure  
 
tu pourrait pas faire plus simple.
 
:hello:

Reply

Marsh Posté le 02-02-2008 à 00:46:09    

Merci pour ton aide Bixibu,
 
pourque l'update se fasse je dois aller sur la page de l'agregateur et me connecter avec mon pseudo et pass... et je suis sur un hébergeur mutualisé ^^  est quand même faisable ?

Reply

Marsh Posté le 02-02-2008 à 00:53:27    

si tu veux qu'une page soit chargée toutes les heures, tu as pas trop le choix : tache planifié..
 
Les mutualisés n'ont pas de taches CRON je pense.. et je connais pas d'autre moyen de faire.. (proprement)
 
Sinon tu pourrait laisser les internautes qui visite ton site s'en charger pour toi.. grâce à un systeme de cache :
 
-avant d'afficher une page à un internautes tu vérifie si la derniere version de tes agregats sont plus vieux qu'une heure
-si oui tu recalcul les news en lancant le fichier ci dessus (par contre tu vas devoir contourner ton identification d'une maniere ou d'une autre)
-si non tu lui affiche les news non-périmées qu'un autre internaute avait alimenté il ya moins d'une heure et qui est dans ton fichier de cache..


Message édité par bixibu le 02-02-2008 à 00:54:21
Reply

Sujets relatifs:

Leave a Replay

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