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 |
---|
11 | define('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()); |
---|
19 | chdir($KB_HOME); |
---|
20 | |
---|
21 | require_once('kbconfig.php'); |
---|
22 | require_once('common/includes/globals.php'); |
---|
23 | require_once('common/includes/class.config.php'); |
---|
24 | require_once('common/includes/class.corp.php'); |
---|
25 | require_once('common/includes/class.alliance.php'); |
---|
26 | require_once('common/includes/class.event.php'); |
---|
27 | require_once('common/admin/feed_fetcher.php'); |
---|
28 | require_once('common/includes/db.php'); |
---|
29 | |
---|
30 | $config = new Config(KB_SITE); |
---|
31 | |
---|
32 | $validurl = "/^(http|https):\/\/([A-Za-z0-9_]{1,8}(:[A-Za-z0-9_]{1,8})?@)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}((:[0-9]{1,5})?\/.*)?$/i"; |
---|
33 | |
---|
34 | // load the config from the database |
---|
35 | if (config::get('fetch_feed_count')) |
---|
36 | $feedcount = config::get('fetch_feed_count'); |
---|
37 | else |
---|
38 | $feedcount = 3; |
---|
39 | |
---|
40 | // corporation OR alliance id |
---|
41 | if (config::get('cfg_corpid')) |
---|
42 | { |
---|
43 | define('CORP_ID', intval(config::get('cfg_corpid'))); |
---|
44 | define('ALLIANCE_ID', 0); |
---|
45 | } |
---|
46 | else |
---|
47 | { |
---|
48 | define('CORP_ID', 0); |
---|
49 | define('ALLIANCE_ID', intval(config::get('cfg_allianceid'))); |
---|
50 | } |
---|
51 | |
---|
52 | if (CORP_ID && !MASTER) |
---|
53 | { |
---|
54 | $corp = new Corporation(CORP_ID); |
---|
55 | $myid = '&corp=' . urlencode($corp->getName()); |
---|
56 | } |
---|
57 | |
---|
58 | if (ALLIANCE_ID && !MASTER) |
---|
59 | { |
---|
60 | $alli = new Alliance(ALLIANCE_ID); |
---|
61 | $myid = '&alli=' . urlencode($alli->getName()); |
---|
62 | } |
---|
63 | define('KB_TITLE', config::get('cfg_kbtitle')); |
---|
64 | define('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(); |
---|
74 | for ($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 | |
---|
136 | if ($out) |
---|
137 | { |
---|
138 | // print $outhead . strip_tags(str_replace("</div>","\n",$out), '<a>'); |
---|
139 | print $outhead . strip_tags($out); |
---|
140 | } |
---|
141 | |
---|
142 | ?> |
---|