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

Revision 312, 8.8 KB (checked in by ralle030583, 13 years ago)

FIX: status of update002 wasn't saved
FIX: Ticket #63
UPD: history.xml for History Mod (yeah i know i need a automatic one)

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
28if (config::get('fetch_feed_count'))
29    $feedcount = config::get('fetch_feed_count');
30else
31    $feedcount = 3;
32// saving urls and options
33if ($_POST['submit'] || $_POST['fetch'])
34{
35    if (ctype_digit($_POST['fetch_feed_count']) && $_POST['fetch_feed_count'] > 0)
36    {
37        $feedcount = $_POST['fetch_feed_count'];
38        config::set('fetch_feed_count', $feedcount);
39        for ($i = 99; $i >= $feedcount; $i--)
40        {
41            config::del('fetch_url_' . $i);
42        }
43    }
44    if ($_POST['fetch_verbose'])
45        config::set('fetch_verbose', '1');
46    else
47        config::set('fetch_verbose', '0');
48
49    if ($_POST['fetch_compress'])
50        config::set('fetch_compress', '0');
51    else
52        config::set('fetch_compress', '1');
53
54    if ($_POST['fetch_comment'])
55        config::set('fetch_comment', $_POST['fetch_comment']);
56    else
57        config::set('fetch_comment', '');
58
59    for ($i = 1; $i <= $feedcount; $i++)
60    {
61        $url = "fetch_url_" . $i;
62        if (preg_match($validurl , $_POST[$url]))
63        {
64            if ($_POST['friend'] && in_array ($i, $_POST['friend']))
65                $friends = "on";
66            else $friends = "";
67            config::set($url, $_POST[$url] . ':::' . $time[$i] . ':::' . $friends);
68            $feed[$i] = $_POST[$url];
69        }
70        else
71            config::set($url, '');
72        $feed[$i] = '';
73    }
74}
75$feed = array();
76for ($i = 1; $i <= $feedcount; $i++)
77{
78    $str = config::get('fetch_url_' . $i);
79    $tmp = explode(':::', $str);
80    $feed[$i] = $tmp[0];
81    $time[$i] = $tmp[1];
82    if ($tmp[2] == "on")
83        $friend[$i] = $tmp[2];
84}
85// building the request query and fetching of the feeds
86if ($_POST['fetch'])
87{
88    if (CORP_ID && !MASTER)
89    {
90        $corp = new Corporation(CORP_ID);
91        $myid = '&corp=' . urlencode($corp->getName());
92    }
93    if (ALLIANCE_ID && !MASTER)
94    {
95        $alli = new Alliance(ALLIANCE_ID);
96        $myid = '&alli=' . urlencode($alli->getName());
97    }
98    for ($i = 1; $i <= $feedcount; $i++)
99    {
100        $feedfetch = new Fetcher();
101        $cfg = "fetch_url_" . $i;
102        if (preg_match($validurl , $feed[$i]) && $_POST['fetch_feed'] && in_array ($i, $_POST['fetch_feed']))
103        {
104            $str = '';
105            // if ($time[$i])
106            // $str .= '&lastkllid='.$time[$i];
107            if ($friend[$i])
108                $str .= '&friend=1';
109            if ($_POST['fetch_losses'])
110                $str .= "&losses=1";
111            if (!config::get('fetch_compress'))
112                $str .= "&gz=1";
113            if ($_POST['range1'] && $_POST['range2'])
114            {
115                if ($_POST['range1'] > $_POST['range2'])
116                {
117                    $range1 = $_POST['range2'];
118                    $range2 = $_POST['range1'];
119                }
120                else
121                {
122                    $range1 = $_POST['range1'];
123                    $range2 = $_POST['range2'];
124                }
125                for ($l = $range1; $l <= $range2; $l++)
126                {
127                    $html .= "<b>Week: " . $l . "</b><br>";
128                    $html .= $feedfetch->grab($feed[$i] . "&year=" . $_POST['year'] . "&week=" . $l, $myid . $str);
129                }
130            }
131            else
132                $html .= $feedfetch->grab($feed[$i], $myid . $str);
133        }
134        config::set($cfg, $feed[$i] . ':::' . $lastkllid . ':::' . $friend[$i]);
135        $time[$i] = $lastkllid;
136    }
137}
138// generating the html
139$html .= '<form id="options" name="options" method="post" action="?a=settings_feed_syndication">';
140$html .= "</table>";
141
142$html .= "<div class=block-header2>Feeds</div><table>";
143for ($i = 1; $i <= $feedcount; $i++)
144{
145    $html .= "<tr><td width=85px><b>Feed url #" . $i . "</b></td><td><input type=text name=fetch_url_" . $i . " size=50 class=password value=\"";
146    if ($feed[$i])
147        $html .= $feed[$i];
148    $html .= "\"></td>";
149
150    $html .= "<td><input type=checkbox name=friend[] id=friend value=" . $i;
151    if ($friend[$i])
152        $html .= " checked=\"checked\"";
153    $html .= "><b>Friend?</b></td>";
154
155    $html .= "<td><input type=checkbox name=fetch_feed[] id=fetch value=" . $i;
156    if ($feed[$i])
157        $html .= " checked=\"checked\"";
158    $html .= "><b>Fetch?</b><br>";
159    $html .= "</td></tr>";
160}
161$html .= '<tr><td colspan=2><i>Example: http://killboard.eve-d2.com/?a=feed</i></td><td>';
162$html .= '<input type="checkbox" name="all" onclick="checkAll(this.form.friend,this)"><i>all/none</i></td><td>';
163$html .= '<input type="checkbox" name="all" onclick="checkAll(this.form.fetch,this)"><i>all/none</i>';
164$html .= "</td></tr><br></table><br><br><br>";
165
166$html .= "<table><tr><td height=20px width=150px><b>First week:</b></td>";
167$html .= '<td><select name="range1">';
168$now = date("W");
169for ($i = 1; $i <= 52; $i++)
170{
171    if ($now == $i)
172        $html .= '<option selected="selected "value="' . $i . '">' . $i . '</option>';
173    else
174        $html .= '<option value="' . $i . '">' . $i . '</option>';
175}
176$html .= '</select>';
177$html .= "<i></i></td></tr>";
178$html .= "<tr><td height=20px width=150px><b>Last week:</b></td>";
179$html .= '<td><select name="range2">';
180for ($i = 1; $i <= 52; $i++)
181{
182    if ($now == $i)
183        $html .= '<option selected="selected "value="' . $i . '">' . $i . '</option>';
184    else
185        $html .= '<option value="' . $i . '">' . $i . '</option>';
186}
187$html .= '</select>';
188$html .= "<i></i></td></tr>";
189
190$html .= "<tr><td height=20px width=150px><b>Year:</b></td>";
191$html .= '<td><select name="year">';
192$html .= '<option "value="2005">2005</option>';
193$html .= '<option "value="2006">2006</option>';
194$html .= '<option "value="2007">2007</option>';
195$html .= '<option selected="selected" value="2008">2008</option>';
196$html .= '<option "value="2009">2009</option>';
197$html .= '</select>';
198$html .= "</td></tr>";
199$html .= "<tr><td height=40px width=150px><b>Get kills instead of losses?</b></td>";
200$html .= "<td><input type=checkbox name=fetch_losses id=fetch_losses>";
201$html .= "<i> (by default only their kills, your losses, get fetched, when ticked this is inversed)</i></td></tr>";
202$html .= "</table><br><br>";
203$html .= "<input type=submit id=submit name=fetch value=\"Fetch!\"><br><br>";
204
205$html .= "<div class=block-header2>Options</div><table>";
206$html .= "<tr><td height=30px width=150px><b>Number of feeds:</b></td>";
207$html .= "<td><input type=text name=fetch_feed_count size=2 maxlength=2 class=password value=\"" . $feedcount . "\"></td></tr>";
208$html .= "<tr><td height=50px width=150px><b>Comment for automatically parsed killmails?</b></td>";
209$html .= "<td><input type=text size=50 class=password name=fetch_comment id=fetch_comment value=\"";
210if (config::get('fetch_comment'))
211    $html .= config::get('fetch_comment');
212$html .= "\"><br><i> (leave blank for none)</i><br></td></tr>";
213$html .= "<tr><td height=30px width=150px><b>Enable compression?</b></td>";
214$html .= "<td><input type=checkbox name=fetch_compress id=fetch_compress";
215if (!config::get('fetch_compress'))
216    $html .= " checked=\"checked\"";
217$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>";
218$html .= "</tr>";
219$html .= "<tr><td height=30px width=150px><b>Verbose mode?</b></td>";
220$html .= "<td><input type=checkbox name=fetch_verbose id=fetch_verbose";
221if (config::get('fetch_verbose'))
222    $html .= " checked=\"checked\"";
223$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>";
224$html .= "</tr></table><br><br>";
225$html .= "<input type=submit id=submit name=submit value=\"Save\">";
226$html .= "</form>";
227
228$page->addContext($menubox->generate());
229$page->setContent($html);
230$page->generate();
231
232?>
Note: See TracBrowser for help on using the browser.