Show
Ignore:
Timestamp:
12/12/06 18:01:14 (15 years ago)
Author:
exi
Message:

Reverted the changes in 1.2.1 tag, tags may not be changed.
Removed the admin menus for the syndication feeds as they don't meet the core-requirements and put them into a separate mod.
However, the modified feed engine itself remains core.

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • 1.2.1/common/feed_fetcher.php

    r147 r148  
    11<?php 
     2@set_time_limit(0); 
     3// liq's feed syndication mod v1.0 
     4require_once("class.page.php"); 
     5require_once("class.kill.php"); 
     6require_once("class.parser.php"); 
    27 
    3 // liq's feed syndication mod v1.2 
    4  
    5   @set_time_limit(0);  
    6   require_once( "class.kill.php" ); 
    7   require_once( "class.parser.php" ); 
    8   if ( file_exists("class.comments.php") ) // for the Eve-Dev Comment Class 
    9         require_once( "class.comments.php" ); 
    10   if ( file_exists("class.comment.php") ) // for the D2 Killboard Comment Class 
    11         require_once( "class.comment.php" );   
    12     
    13 $insideitem = false;  
     8$insideitem = false; 
    149$tag = ""; 
    1510$title = ""; 
    1611$description = ""; 
    17 $link = "";   
    18 $x=0; 
     12$link = ""; 
     13$x = 0; 
    1914 
    20 function setConfig($key, $value) { 
    21     global $config; 
    22     if (method_exists($config, 'setConfig')) 
    23         return $config->setConfig($key, $value); 
    24     $qry = new DBQuery(); 
    25     $qry->execute("select cfg_value from kb3_config 
    26                    where cfg_key = '".$key."' and cfg_site = '".KB_SITE."'"); 
    27     if ($qry->recordCount()) 
    28         $sql = "update kb3_config set cfg_value = '".$value."' 
    29                 where cfg_site = '".KB_SITE."' and cfg_key = '".$key."'"; 
    30     else 
    31         $sql = "insert into kb3_config values ( '".KB_SITE."','".$key."','".$value."' )"; 
    32     $qry->execute($sql); 
     15class Fetcher 
     16{ 
     17    function generate($url, $lastkllid = 0) 
     18    { 
     19        global $x; 
     20 
     21        $xml_parser = xml_parser_create(); 
     22        xml_set_object($xml_parser, $this); 
     23        xml_set_element_handler($xml_parser, "startElement", "endElement"); 
     24        xml_set_character_data_handler ($xml_parser, 'characterData'); 
     25 
     26        $fp = @fopen($url, "r"); 
     27        $file = ''; 
     28        while ($data = fread($fp, 4096)) 
     29        { 
     30            $file .= $data; 
     31        } 
     32        fclose($fp); 
     33 
     34        if (!$file && file_exists('class.http.php')) 
     35        { 
     36            include_once('class.http.php'); 
     37            $file = new http($url); 
     38            $file = $file->get_content(); 
     39        } 
     40        if (!xml_parse($xml_parser, $file)) 
     41            return "<i>Error getting XML data from ".$url."</i><br><br>"; 
     42        xml_parser_free($xml_parser); 
     43 
     44        if ($x) 
     45        { 
     46            $html = "<div class=block-header2>".$x." kills added from feed: ".$url."</div>"; 
     47        } 
     48        else 
     49        { 
     50            $html = "<div class=block-header2>No kills added from feed: ".$url."</div>"; 
     51        } 
     52 
     53        return $html; 
     54    } 
     55 
     56    function startElement($parser, $name, $attrs) 
     57    { 
     58        global $insideitem, $tag, $title, $description, $link; 
     59        if ($insideitem) 
     60        { 
     61            $tag = $name; 
     62        } 
     63        elseif ($name == "ITEM") 
     64        { 
     65            $insideitem = true; 
     66        } 
     67    } 
     68 
     69    function endElement($parser, $name) 
     70    { 
     71        global $insideitem, $tag, $title, $description, $link, $html, $x, $lastkllid; 
     72 
     73        if ($name == "ITEM") 
     74        { 
     75            if (isset($description)) 
     76            { 
     77                $parser = new Parser($description); 
     78                $killid = $parser->parse(true); 
     79                if ($killid == 0 || $killid == -1 || $killid == -2 || $killid == -3) 
     80                { 
     81                    $page = new Page("Error"); 
     82                    if ($killid == 0) 
     83                        $html .= "Killmail is malformed.<br>"; 
     84                    if ($killid == -3) 
     85                        $html .= "Killmail does not have a final blow! <p><br>To prevent the corruption of the database please just fake a <i>(laid the final blow)</i> behind one of the involved players on the killmail.<br><br><b>Example:</b><i><br>Name: liquidism (laid the final blow)</i></p>"; 
     86                    if ($killid == -2) 
     87                        $html .= "Killmail is not related to ".KB_TITLE.".<br>"; 
     88                    if ($killid == -1) 
     89                        $html .= "Killmail already posted <a href=\"?a=kill_detail&kll_id=".$parser->dupeid_."\">here</a>.<br>"; 
     90                } 
     91                else 
     92                { 
     93                    $qry = new DBQuery(); 
     94                    $qry->execute("insert into kb3_log  values( ".$killid.", '".KB_SITE."','".$_SERVER['REMOTE_ADDR']."',now() )"); 
     95                    $html .= "Killmail has succsessfully been posted <a href=\"?a=kill_detail&kll_id=".$killid."\">here</a>.<br>"; 
     96                    $x++; 
     97                } 
     98            } 
     99            if (trim($title) > $lastkllid || $lastkllid == 0) 
     100            { 
     101                $lastkllid = trim($title); 
     102            } 
     103            $title = ""; 
     104            $description = ""; 
     105            $link = ""; 
     106            $insideitem = false; 
     107        } 
     108    } 
     109 
     110    function characterData($parser, $data) 
     111    { 
     112        global $insideitem, $tag, $title, $description, $link; 
     113        if ($insideitem) 
     114        { 
     115            switch ($tag) 
     116            { 
     117                case "TITLE": 
     118                    $title .= $data; 
     119                    break; 
     120                case "DESCRIPTION": 
     121                    $description .= $data; 
     122                    break; 
     123                case "LINK": 
     124                    $link .= $data; 
     125                    break; 
     126            } 
     127        } 
     128    } 
    33129} 
    34  
    35 function getConfig($key) { 
    36     global $config; 
    37     if (method_exists($config, 'getConfig')) 
    38         return $config->getConfig($key); 
    39     $qry = new DBQuery(); 
    40     $qry->query("select ".$key." from kb3_config where cfg_site = '".KB_SITE."'"); 
    41     $row = $qry->getRow(); 
    42     if (isset($row[$key])) 
    43         return $row[$key]; 
    44     return false; 
    45 } 
    46  
    47 function delConfig($key) { 
    48     global $config; 
    49     $qry = new DBQuery(); 
    50     $qry->execute("delete from kb3_config where cfg_key = '".$key."' and cfg_site = '".KB_SITE."'"); 
    51 } 
    52  
    53 class Fetcher { 
    54   
    55 function grab($url) {  
    56                 global $x, $fetchurl; 
    57                 $x=0; 
    58                 $fetchurl = $url; 
    59         $xml_parser = xml_parser_create(); 
    60                 xml_set_object ( $xml_parser, $this ); 
    61                 xml_set_element_handler($xml_parser, "startElement", "endElement");        
    62                 xml_set_character_data_handler ( $xml_parser, 'characterData' );   
    63                 $fp = @fopen($url,"r"); 
    64                 while ($data = fread($fp, 4096)) { 
    65                         if (!xml_parse( $xml_parser, $data, feof($fp) ) && !feof($fp) ) 
    66                                 return "<i>Error getting XML data from ".$url."</i><br><br>"; 
    67                 } 
    68                 fclose($fp); 
    69                 xml_parser_free($xml_parser); 
    70                 if ($x) 
    71                         $html = "<div class=block-header2>".$x." kills added from feed: ".$url."</div>"; 
    72                 else 
    73                         $html = "<div class=block-header2>No kills added from feed: ".$url."</div>"; 
    74 return $html;  
    75 } 
    76  
    77 function startElement($parser, $name, $attrs) { 
    78         global $insideitem, $tag, $title, $description, $link; 
    79         if ($insideitem) 
    80                 $tag = $name; 
    81         elseif ($name == "ITEM") 
    82                 $insideitem = true; 
    83 } 
    84  
    85 function endElement($parser, $name) { 
    86         global $insideitem, $tag, $title, $description, $link, $html, $x, $fetchurl; 
    87  
    88         if ($name == "ITEM") { 
    89                 if ( isset( $description ) ) { 
    90                         $parser = new Parser( $description ); 
    91                 $killid = $parser->parse( true ); 
    92                 if ( $killid == 0 || $killid == -1 || $killid == -2 ) { 
    93                                 if ( $killid == 0 && getConfig('fetch_verbose') ) 
    94                         $html .= "Killmail is malformed.<br>"; 
    95                         if ( $killid == -2 && getConfig('fetch_verbose') ) 
    96                             $html .= "Killmail is not related to ".KB_TITLE.".<br>"; 
    97                                 if ( $killid == -1 && getConfig('fetch_verbose') ) 
    98                                     $html .= "Killmail already posted <a href=\"?a=kill_detail&kll_id=".$parser->dupeid_."\">here</a>.<br>"; 
    99                         }                
    100                         else { 
    101                                 $qry = new DBQuery(); 
    102                                 $qry->execute( "insert into kb3_log     values( ".$killid.", '".KB_SITE."','".$_SERVER['REMOTE_ADDR']."',now() )" ); 
    103                                 $html .= "Killmail succsessfully posted <a href=\"?a=kill_detail&kll_id=".$killid."\">here</a>.<br>"; 
    104  
    105                                 if (class_exists('Comments') && getConfig('fetch_comment')) { // for the Eve-Dev Comment Class 
    106                                         $comments = new Comments($killid); 
    107                         $comments->addComment("liq's feed syndication", getConfig('fetch_comment')." (mail fetched from: ".$fetchurl.")"); 
    108                                 } 
    109                                 if (class_exists('Comment') && getConfig('fetch_comment')) { // for the D2 Killboard Comment Class 
    110                                         $comment = new Comment($killid); 
    111                         $comment->postComment(getConfig('fetch_comment')." \n\n <i>(mail fetched from:\n ".$fetchurl.")</i>", "liquidism"); 
    112                                 } 
    113                                 $x++; 
    114                         } 
    115         } 
    116                 $title = ""; 
    117                 $description = "";  
    118                 $link = ""; 
    119                 $insideitem = false; 
    120         } 
    121 } 
    122  
    123 function characterData($parser, $data) { 
    124         global $insideitem, $tag, $title, $description, $link; 
    125         if ($insideitem) { 
    126                 switch ($tag) { 
    127                         case "TITLE": 
    128                         $title .= $data; 
    129                         break; 
    130                         case "DESCRIPTION": 
    131                         $description .= $data; 
    132                         break; 
    133                         case "LINK": 
    134                         $link .= $data; 
    135                         break; 
    136                 } 
    137         } 
    138 } 
    139  
    140 } 
    141  
    142130?>