root/dev/mods/feed_syndication/feed_fetcher.php @ 213

Revision 213, 4.3 KB (checked in by ralle030583, 15 years ago)

All files (i hope i havent forgott something) was modified to use the the config in this way:
- config::get($key)
- config::del($key)
- config::set($key,value)

Exception Templates/Smarty?:
The templates still uses $config->get($key) and $config->set($key,$value) cause
it seems that smarty dont like the :: notification

Line 
1<?php
2        //////
3//////  //////
4//////  liq's feed syndication mod v1.5
5////////////
6////////////
7////////////
8////////////
9 
10
11@set_time_limit(0);
12@ini_set('memory_limit',999999999);
13
14require_once( "common/includes/class.kill.php" );
15require_once( "common/includes/class.parser.php" );
16if ( file_exists("../../common/includes/class.comments.php") ) // for the Eve-Dev Comment Class
17        require_once( "common/includes/class.comments.php" );
18if ( file_exists("../../common/includes/class.comment.php") ) // for the D2 Killboard Comment Class
19        require_once( "common/includes/class.comment.php" );
20
21$insideitem = false;
22$tag = "";
23$title = "";
24$description = "";
25$link = "";
26$x=0;
27
28class Fetcher {
29
30function grab($url, $str) {
31                global $x, $uurl;
32                $x=0;
33                $fetchurl = $url.$str;
34                $uurl = $url;
35        $xml_parser = xml_parser_create();
36                xml_set_object ( $xml_parser, $this );
37                xml_set_element_handler($xml_parser, "startElement", "endElement");
38                xml_set_character_data_handler ( $xml_parser, 'characterData' );
39                $fp = @fopen($fetchurl,"r"); 
40                while ($chunk = @fread($fp, 4096)) {
41                        $data .= $chunk;
42                }
43                $data = preg_replace('<<!--.*?-->>', '', $data); // remove <!-- Cached --> message, else it will break gzinflate
44               
45                if (!@gzinflate($data)) {
46                        $cprs = "raw HTML stream";
47                } else { 
48                        $data = gzinflate($data);
49                        $cprs = "GZip compressed stream";
50                }       
51               
52                if (!xml_parse( $xml_parser, $data, @feof($fp) ) && !@feof($fp) )
53                        return "<i>Error getting XML data from ".$url."</i><br><br>";           
54                       
55                @fclose($fp);
56                xml_parser_free($xml_parser);
57
58                if (config::get('fetch_verbose') ) {
59                        if ($x)
60                                $html .= "<div class=block-header2>".$x." kills added from feed: ".$url."<br>".$str." <i><br>(".$cprs.")</i><br><br></div>";
61                        else
62                                $html .= "<div class=block-header2>No kills added from feed: ".$url."<br>".$str." <i><br>(".$cprs.")</i><br><br></div>";
63                } else {
64                        if ($x)
65                                $html .= "<div class=block-header2>".$x." kills added from feed: ".$url." <i>(".$cprs.")</i><br><br></div>";
66                        else
67                                $html .= "<div class=block-header2>No kills added from feed: ".$url." <i>(".$cprs.")</i><br><br></div>";
68                }
69               
70return $html;
71}
72
73function startElement($parser, $name, $attrs) {
74        global $insideitem, $tag, $title, $description, $link;
75        if ($insideitem)
76                $tag = $name;
77        elseif ($name == "ITEM")
78                $insideitem = true;
79}
80
81function endElement($parser, $name) {
82        global $insideitem, $tag, $title, $description, $link, $html, $x, $uurl;
83
84        if ($name == "ITEM") {
85                if ( isset( $description ) ) {
86                        $parser = new Parser( $description );
87                $killid = $parser->parse( true );
88                if ( $killid == 0 || $killid == -1 || $killid == -2 ) {
89                                if ( $killid == 0 && config::get('fetch_verbose') )
90                        $html .= "Killmail is malformed.<br>";
91                        if ( $killid == -2 && config::get('fetch_verbose') )
92                            $html .= "Killmail is not related to ".KB_TITLE.".<br>";
93                                if ( $killid == -1 && config::get('fetch_verbose') )
94                                    $html .= "Killmail already posted <a href=\"?a=kill_detail&kll_id=".$parser->dupeid_."\">here</a>.<br>";
95                        }
96                        else {
97                                $qry = new DBQuery();
98                                $qry->execute( "insert into kb3_log     values( ".$killid.", '".KB_SITE."','".$_SERVER['REMOTE_ADDR']."',now() )" );
99                                $html .= "Killmail succsessfully posted <a href=\"?a=kill_detail&kll_id=".$killid."\">here</a>.<br>";
100
101                                if (class_exists('Comments') && config::get('fetch_comment')) { // for the Eve-Dev Comment Class
102                                        $comments = new Comments($killid);
103                        $comments->addComment("liq's feed syndication", config::get('fetch_comment')." mail fetched from: ".$uurl.")");
104                                }
105                                if (class_exists('Comment') && config::get('fetch_comment')) { // for the D2 Killboard Comment Class
106                                        $comment = new Comment($killid);
107                        $comment->postComment(config::get('fetch_comment')." \n\n\n <i>mail fetched from:\n ".$uurl."</i>", "liquidism");
108                                }
109                                $x++;
110                        }
111        }
112                $title = "";
113                $description = "";
114                $link = "";
115                $insideitem = false;
116        }
117}
118
119function characterData($parser, $data) {
120        global $insideitem, $tag, $title, $description, $link;
121        if ($insideitem) {
122                switch ($tag) {
123                        case "TITLE":
124                        $title .= $data;
125                        break;
126                        case "DESCRIPTION":
127                        $description .= $data;
128                        break;
129                        case "LINK":
130                        $link .= $data;
131                        break;
132                }
133        }
134}
135
136}
137?>
Note: See TracBrowser for help on using the browser.