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

Revision 175, 9.0 KB (checked in by liq, 14 years ago)

liliq's feed syndication mod 1.5

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