root/dev/cron/cron_fetcher.php @ 449

Revision 449, 4.9 KB (checked in by kovell, 11 years ago)

Page cache uses subdirectories to split cache files. clearup cron script has longer expiry times on page and query cache. fetch and import cron scripts have commented code removed.

Line 
1#!/usr/bin/php
2<?php
3/*
4 * EDK Feed Syndication v1.7
5 * based on liq's feed syndication mod v1.5
6 *
7 */
8
9// set this to 1 if you are running a master killboard and want
10// to even fetch mails not related to your corp / alliance
11define('MASTER', 0);
12
13@set_time_limit(0);
14
15// Has to be run from the KB main directory for nested includes to work
16$KB_HOME = preg_replace('/[\/\\\\]cron$/', '', getcwd());
17chdir($KB_HOME);
18
19require_once('kbconfig.php');
20require_once('common/includes/globals.php');
21require_once('common/includes/class.config.php');
22require_once('common/includes/class.corp.php');
23require_once('common/includes/class.alliance.php');
24require_once('common/includes/class.event.php');
25require_once('common/admin/feed_fetcher.php');
26require_once('common/includes/db.php');
27
28$config = new Config(KB_SITE);
29
30$validurl = "/^(http|https):\/\/([A-Za-z0-9_]+(:[A-Za-z0-9_]+)?@)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}((:[0-9]{1,5})?\/.*)?$/i";
31
32// load the config from the database
33if (config::get('fetch_feed_count'))
34    $feedcount = config::get('fetch_feed_count');
35else
36    $feedcount = 3;
37
38// corporation OR alliance id
39if (config::get('cfg_corpid'))
40{
41    define('CORP_ID', intval(config::get('cfg_corpid')));
42    define('ALLIANCE_ID', 0);
43}
44else
45{
46    define('CORP_ID', 0);
47    define('ALLIANCE_ID', intval(config::get('cfg_allianceid')));
48}
49
50if (CORP_ID && !MASTER)
51{
52    $corp = new Corporation(CORP_ID);
53    $myid = '&corp=' . urlencode($corp->getName());
54}
55
56if (ALLIANCE_ID && !MASTER)
57{
58    $alli = new Alliance(ALLIANCE_ID);
59    $myid = '&alli=' . urlencode($alli->getName());
60}
61define('KB_TITLE', config::get('cfg_kbtitle'));
62define('DB_USE_CCP', true);
63
64$year = gmdate("Y");
65$week = gmdate("W");
66
67$outhead = "Running on " . gmdate(DATE_RFC822) . "\n";
68$out = '';
69
70$feed = array();
71$friend = array();
72for ($i = 1; $i <= $feedcount; $i++)
73{
74    $str = config::get('fetch_url_' . $i);
75    $tmp = explode(':::', $str);
76    $feed[$i] = $tmp[0];
77    $feedlast[$i] = intval($tmp[1]);
78    if ($tmp[2] == "on")
79        $friend[$i] = $tmp[2];
80        if ($tmp[3] == "on")
81        $apikills[$i] = $tmp[3];
82    $feedfetch = new Fetcher();
83    if (preg_match($validurl , $feed[$i]))
84    {
85        $str = '';
86        if ($feedlast[$i])
87        {
88            $str .= '&combined=1';
89            $str .= '&lastkllid='.$feedlast[$i];
90        }
91        if ($friend[$i])
92            $str .= '&friend=1';
93                if ($apikills[$i])
94                        $str .= '&apikills=1';
95        if (!config::get('fetch_compress'))
96            $str .= "&gz=1";
97        // If a last kill id is specified fetch all kills since then
98        if($feedlast[$i] > 0)
99        {
100            $out .= preg_replace('/<div.+No kills added from feed.+<\/div>/','',$feedfetch->grab($feed[$i], $myid . $str, $friend[$i], "fetch_url_" . $i)). "\n";
101            if(intval($feedfetch->lastkllid_)) $feedlast[$i] = intval($feedfetch->lastkllid_);
102            // Check if feed used combined list. get losses if not
103            if(!$feedfetch->combined_)
104            {
105                    $out .= preg_replace('/<div.+No kills added from feed.+<\/div>/','',$feedfetch->grab($feed[$i], $myid . $str . "&losses=1", $friend[$i], "fetch_url_" . $i)) . "\n";
106                    if(intval($feedfetch->lastkllid_)) $feedlast[$i] = intval($feedfetch->lastkllid_);
107            }
108            // Store most recent kill id fetched
109            if($feedfetch->lastkllid_)
110            {
111                //Fetch final kill id of board from feed if possible and set as new last kill.
112                if(intval($feedfetch->finalkllid_)> $feedlast[$i])
113                    config::set("fetch_url_" . $i, $feed[$i] . ':::' . intval($feedfetch->finalkllid_) . ':::' . $friend[$i]);
114                else config::set("fetch_url_" . $i, $feed[$i] . ':::' . $feedlast[$i] . ':::' . $friend[$i]);
115            }
116        }
117        // If no last kill is specified then fetch by week
118        else
119        {
120                // Fetch for current and previous weeks, both kills and losses
121                for ($l = $week - 1; $l <= $week; $l++)
122                {
123                    $out .= preg_replace('/<div.+No kills added from feed.+<\/div>/','',$feedfetch->grab($feed[$i] . "&year=" . $year . "&week=" . $l, $myid . $str)). "\n";
124                        if(intval($feedfetch->lastkllid_)) $feedlast[$i] = intval($feedfetch->lastkllid_);
125                    $out .= preg_replace('/<div.+No kills added from feed.+<\/div>/','',$feedfetch->grab($feed[$i] . "&year=" . $year . "&week=" . $l, $myid . $str . "&losses=1")) . "\n";
126                        if(intval($feedfetch->lastkllid_ )) $feedlast[$i] = intval($feedfetch->lastkllid_);
127                }
128                // Store most recent kill id fetched
129                if($feedfetch->lastkllid_) config::set("fetch_url_" . $i, $feed[$i] . ':::' . $feedlast[$i] . ':::' . $friend[$i]);
130        }
131    }
132}
133
134if ($out)
135{
136//    print $outhead . strip_tags(str_replace("</div>","\n",$out), '<a>');
137    print $outhead . strip_tags($out);
138}
139
140?>
Note: See TracBrowser for help on using the browser.