root/dev/cron/cron_fetcher.php @ 386

Revision 386, 4.9 KB (checked in by kovell, 13 years ago)

Fetch properly ignores non-api kills when requested.
missing subsystem slot icon

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