root/dev/mods/feed_syndication/settings.php @ 304

Revision 304, 9.5 KB (checked in by beansman, 13 years ago)

Fixed the version checking from tomx.org, since it's now a commercial ad site!

Line 
1<?php
2// ////
3// ////  //////
4// ////  liq's feed syndication mod v1.5
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$version = "v1.5";
14@set_time_limit(0);
15require_once('feed_fetcher.php');
16require_once('common/admin/admin_menu.php');
17require_once('common/includes/class.corp.php');
18require_once('common/includes/class.alliance.php');
19
20$page = new Page("Administration - Feed Syndication " . $version);
21$page->setCachable(false);
22$page->setAdmin();
23
24$validurl = "/^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}((:[0-9]{1,5})?\/.*)?$/i";
25$html .= "<script language=\"JavaScript\">function checkAll(checkname, exby) {for (i = 0; i < checkname.length; i++)checkname[i].checked = exby.checked? true:false}</script>";
26$html .= "<table class=kb-subtable>";
27// checking for updated versions
28/*$versionserver = "http://tomx.org/feed/version.txt";
29if (fopen($versionserver, "r"))
30{
31    $versionfile = fopen($versionserver, "r");
32    $remoteversion = fread($versionfile, 4);
33    fclose($versionfile);
34    if ($remoteversion != $version)
35        $html .= '<div class="kl-loss"><b>Your version (' . $version . ') is outdated! </b></div><br>There is a newer version (' . $remoteversion . ') available <a href="http://tomx.org/feed/mod_feed_' . $remoteversion . '.zip"><b>here</b></a>. <br>Please update!<br><br>';
36}
37else
38    $html .= '<div class="kl-loss">Cant retrieve version information from: ' . $versionserver . '</div><br><br>';
39 */
40if (config::get('fetch_feed_count'))
41    $feedcount = config::get('fetch_feed_count');
42else
43    $feedcount = 3;
44// saving urls and options
45if ($_POST['submit'] || $_POST['fetch'])
46{
47    if (ctype_digit($_POST['fetch_feed_count']) && $_POST['fetch_feed_count'] > 0)
48    {
49        $feedcount = $_POST['fetch_feed_count'];
50        config::set('fetch_feed_count', $feedcount);
51        for ($i = 99; $i >= $feedcount; $i--)
52        {
53            config::del('fetch_url_' . $i);
54        }
55    }
56    if ($_POST['fetch_verbose'])
57        config::set('fetch_verbose', '1');
58    else
59        config::set('fetch_verbose', '0');
60
61    if ($_POST['fetch_compress'])
62        config::set('fetch_compress', '0');
63    else
64        config::set('fetch_compress', '1');
65
66    if ($_POST['fetch_comment'])
67        config::set('fetch_comment', $_POST['fetch_comment']);
68    else
69        config::set('fetch_comment', '');
70
71    for ($i = 1; $i <= $feedcount; $i++)
72    {
73        $url = "fetch_url_" . $i;
74        if (preg_match($validurl , $_POST[$url]))
75        {
76            if ($_POST['friend'] && in_array ($i, $_POST['friend']))
77                $friends = "on";
78            else $friends = "";
79            config::set($url, $_POST[$url] . ':::' . $time[$i] . ':::' . $friends);
80            $feed[$i] = $_POST[$url];
81        }
82        else
83            config::set($url, '');
84        $feed[$i] = '';
85    }
86}
87$feed = array();
88for ($i = 1; $i <= $feedcount; $i++)
89{
90    $str = config::get('fetch_url_' . $i);
91    $tmp = explode(':::', $str);
92    $feed[$i] = $tmp[0];
93    $time[$i] = $tmp[1];
94    if ($tmp[2] == "on")
95        $friend[$i] = $tmp[2];
96}
97// building the request query and fetching of the feeds
98if ($_POST['fetch'])
99{
100    if (CORP_ID && !MASTER)
101    {
102        $corp = new Corporation(CORP_ID);
103        $myid = '&corp=' . urlencode($corp->getName());
104    }
105    if (ALLIANCE_ID && !MASTER)
106    {
107        $alli = new Alliance(ALLIANCE_ID);
108        $myid = '&alli=' . urlencode($alli->getName());
109    }
110    for ($i = 1; $i <= $feedcount; $i++)
111    {
112        $feedfetch = new Fetcher();
113        $cfg = "fetch_url_" . $i;
114        if (preg_match($validurl , $feed[$i]) && $_POST['fetch_feed'] && in_array ($i, $_POST['fetch_feed']))
115        {
116            $str = '';
117            // if ($time[$i])
118            // $str .= '&lastkllid='.$time[$i];
119            if ($friend[$i])
120                $str .= '&friend=1';
121            if ($_POST['fetch_losses'])
122                $str .= "&losses=1";
123            if (!config::get('fetch_compress'))
124                $str .= "&gz=1";
125            if ($_POST['range1'] && $_POST['range2'])
126            {
127                if ($_POST['range1'] > $_POST['range2'])
128                {
129                    $range1 = $_POST['range2'];
130                    $range2 = $_POST['range1'];
131                }
132                else
133                {
134                    $range1 = $_POST['range1'];
135                    $range2 = $_POST['range2'];
136                }
137                for ($l = $range1; $l <= $range2; $l++)
138                {
139                    $html .= "<b>Week: " . $l . "</b><br>";
140                    $html .= $feedfetch->grab($feed[$i] . "&year=" . $_POST['year'] . "&week=" . $l, $myid . $str);
141                }
142            }
143            else
144                $html .= $feedfetch->grab($feed[$i], $myid . $str);
145        }
146        config::set($cfg, $feed[$i] . ':::' . $lastkllid . ':::' . $friend[$i]);
147        $time[$i] = $lastkllid;
148    }
149}
150// generating the html
151$html .= '<form id="options" name="options" method="post" action="?a=settings_feed_syndication">';
152$html .= "</table>";
153
154$html .= "<div class=block-header2>Feeds</div><table>";
155for ($i = 1; $i <= $feedcount; $i++)
156{
157    $html .= "<tr><td width=85px><b>Feed url #" . $i . "</b></td><td><input type=text name=fetch_url_" . $i . " size=50 class=password value=\"";
158    if ($feed[$i])
159        $html .= $feed[$i];
160    $html .= "\"></td>";
161
162    $html .= "<td><input type=checkbox name=friend[] id=friend value=" . $i;
163    if ($friend[$i])
164        $html .= " checked=\"checked\"";
165    $html .= "><b>Friend?</b></td>";
166
167    $html .= "<td><input type=checkbox name=fetch_feed[] id=fetch value=" . $i;
168    if ($feed[$i])
169        $html .= " checked=\"checked\"";
170    $html .= "><b>Fetch?</b><br>";
171    $html .= "</td></tr>";
172}
173$html .= '<tr><td colspan=2><i>Example: http://killboard.eve-d2.com/?a=feed</i></td><td>';
174$html .= '<input type="checkbox" name="all" onclick="checkAll(this.form.friend,this)"><i>all/none</i></td><td>';
175$html .= '<input type="checkbox" name="all" onclick="checkAll(this.form.fetch,this)"><i>all/none</i>';
176$html .= "</td></tr><br></table><br><br><br>";
177
178$html .= "<table><tr><td height=20px width=150px><b>First week:</b></td>";
179$html .= '<td><select name="range1">';
180$now = date("W");
181for ($i = 1; $i <= 52; $i++)
182{
183    if ($now == $i)
184        $html .= '<option selected="selected "value="' . $i . '">' . $i . '</option>';
185    else
186        $html .= '<option value="' . $i . '">' . $i . '</option>';
187}
188$html .= '</select>';
189$html .= "<i></i></td></tr>";
190$html .= "<tr><td height=20px width=150px><b>Last week:</b></td>";
191$html .= '<td><select name="range2">';
192for ($i = 1; $i <= 52; $i++)
193{
194    if ($now == $i)
195        $html .= '<option selected="selected "value="' . $i . '">' . $i . '</option>';
196    else
197        $html .= '<option value="' . $i . '">' . $i . '</option>';
198}
199$html .= '</select>';
200$html .= "<i></i></td></tr>";
201
202$html .= "<tr><td height=20px width=150px><b>Year:</b></td>";
203$html .= '<td><select name="year">';
204$html .= '<option "value="2005">2005</option>';
205$html .= '<option "value="2006">2006</option>';
206$html .= '<option selected="selected "value="2007">2007</option>';
207$html .= '<option "value="2008">2008</option>';
208$html .= '<option "value="2009">2009</option>';
209$html .= '</select>';
210$html .= "</td></tr>";
211$html .= "<tr><td height=40px width=150px><b>Get kills instead of losses?</b></td>";
212$html .= "<td><input type=checkbox name=fetch_losses id=fetch_losses>";
213$html .= "<i> (by default only their kills, your losses, get fetched, when ticked this is inversed)</i></td></tr>";
214$html .= "</table><br><br>";
215$html .= "<input type=submit id=submit name=fetch value=\"Fetch!\"><br><br>";
216
217$html .= "<div class=block-header2>Options</div><table>";
218$html .= "<tr><td height=30px width=150px><b>Number of feeds:</b></td>";
219$html .= "<td><input type=text name=fetch_feed_count size=2 maxlength=2 class=password value=\"" . $feedcount . "\"></td></tr>";
220$html .= "<tr><td height=50px width=150px><b>Comment for automatically parsed killmails?</b></td>";
221$html .= "<td><input type=text size=50 class=password name=fetch_comment id=fetch_comment value=\"";
222if (config::get('fetch_comment'))
223    $html .= config::get('fetch_comment');
224$html .= "\"><br><i> (leave blank for none)</i><br></td></tr>";
225$html .= "<tr><td height=30px width=150px><b>Enable compression?</b></td>";
226$html .= "<td><input type=checkbox name=fetch_compress id=fetch_compress";
227if (!config::get('fetch_compress'))
228    $html .= " checked=\"checked\"";
229$html .= "><i> (enables GZip compression for feeds that support this feature, for streams that do not support GZip compression regular html mode will be used automatically)</i></td>";
230$html .= "</tr>";
231$html .= "<tr><td height=30px width=150px><b>Verbose mode?</b></td>";
232$html .= "<td><input type=checkbox name=fetch_verbose id=fetch_verbose";
233if (config::get('fetch_verbose'))
234    $html .= " checked=\"checked\"";
235$html .= "><i> (displays advanced feed request information and errormessages when the imported mail is rejected for being malformed, already exists or is not related to your corp or alliance)</i></td>";
236$html .= "</tr></table><br><br>";
237$html .= "<input type=submit id=submit name=submit value=\"Save\">";
238$html .= "</form>";
239
240$page->addContext($menubox->generate());
241$page->setContent($html);
242$page->generate();
243
244?>
Note: See TracBrowser for help on using the browser.