]> git.wh0rd.org Git - tt-rss.git/blob - update_daemon.php
d9a465a5ea339f220f6ae270b3d789ead16b7209
[tt-rss.git] / update_daemon.php
1 #!/usr/bin/php4
2 <?
3         // this daemon runs in the background and updates all feeds
4         // continuously
5
6         define('SLEEP_INTERVAL', 10); // seconds
7
8         // TODO: allow update scheduling from users
9
10         define('MAGPIE_CACHE_DIR', '/var/tmp/magpie-ttrss-cache-daemon');
11
12         define('DISABLE_SESSIONS', true);
13
14         require_once "sanity_check.php";
15         require_once "config.php";
16         require_once "db.php";
17         require_once "db-prefs.php";
18         require_once "functions.php";
19         require_once "magpierss/rss_fetch.inc";
20
21         $link = db_connect(DB_HOST, DB_USER, DB_PASS, DB_NAME); 
22
23         if (!$link) {
24                 if (DB_TYPE == "mysql") {
25                         print mysql_error();
26                 }
27                 // PG seems to display its own errors just fine by default.             
28                 return;
29         }
30
31         if (DB_TYPE == "pgsql") {
32                 pg_query("set client_encoding = 'utf-8'");
33         }
34
35         while (true) {
36
37                 // FIXME: get all schedule updates w/forced refetch
38
39                 print "Checking schedules updates (NOT IMPLEMENTED YET)\n";
40         
41                 // Process all other feeds using last_updated and interval parameters
42
43                 $result = db_query($link, "SELECT feed_url,id,owner_uid,
44                         SUBSTRING(last_updated,1,19) AS last_updated,
45                         update_interval FROM ttrss_feeds ORDER BY last_updated DESC");
46         
47                 while ($line = db_fetch_assoc($result)) {
48         
49                         print "Checking feed: " . $line["feed_url"] . "\n";
50         
51                         $upd_intl = $line["update_interval"];
52         
53                         $user_id = $line["owner_uid"];
54         
55                         if (!$upd_intl || $upd_intl == 0) {
56                                 $upd_intl = get_pref($link, 'DEFAULT_UPDATE_INTERVAL', $user_id);
57                         }
58         
59         #               printf("%d ? %d\n", time() - strtotime($line["last_updated"]) > $upd_intl*60,
60         #                       $upd_intl*60);
61         
62                         if (!$line["last_updated"] || 
63                                 time() - strtotime($line["last_updated"]) > ($upd_intl * 60)) {
64         
65                                 print "Updating...\n";
66         
67                                 update_rss_feed($link, $line["feed_url"], $line["id"], true);
68         
69                         }
70                 }
71
72                 print "Sleeping for " . SLEEP_INTERVAL . " seconds...\n";
73                 
74                 sleep(SLEEP_INTERVAL);
75         }
76
77         db_close($link);
78
79 ?>