Changeset 143

Show
Ignore:
Timestamp:
12/08/06 00:09:48 (14 years ago)
Author:
liq
Message:

Feed Syndication Addon v1.1

Location:
dev/common
Files:
3 modified

Legend:

Unmodified
Added
Removed
  • dev/common/admin_feed.php

    r137 r143  
    1 <?php 
    2 @set_time_limit(0); 
     1<? 
    32 
    4 // liq's feed syndication mod v1.0 
    5 require_once("class.page.php"); 
    6 require_once("db.php"); 
    7 require_once("admin_menu.php"); 
    8 require_once("feed_fetcher.php"); 
    9 require_once("class.killboard.php"); 
    10 require_once('class.corp.php'); 
    11 require_once('class.alliance.php'); 
     3// liq's feed syndication mod v1.1 
     4   
     5@set_time_limit(0);  
     6require_once( "class.page.php" ); 
     7require_once( "admin_menu.php" );   
     8require_once( "feed_fetcher.php" ); 
     9require_once( 'class.corp.php' ); 
     10require_once( 'class.alliance.php' ); 
     11require_once( "db.php" ); 
     12   
     13        $page = new Page( "Administration - Feeds" ); 
     14        $page->setAdmin(); 
     15   
     16        $validurl = "/^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}((:[0-9]{1,5})?\/.*)?$/i";   
     17        $html .= "<table class=kb-subtable>"; 
    1218 
    13 $page = new Page("Administration - Feeds"); 
    14 $page->setAdmin(); 
    15 $killboard = new Killboard(KB_SITE); 
     19        if (getConfig('fetch_feed_count')) 
     20                $feedcount = getConfig('fetch_feed_count'); 
     21        else  
     22                $feedcount = 3; 
    1623 
    17 // the rig0r basecode does not have this functions 
    18 function setConfig($key, $value) 
    19 { 
    20     global $config; 
     24        if ( $_POST['submit'] ) { 
     25         
     26                if ( ctype_digit($_POST['fetch_feed_count']) ) { 
     27                        setConfig('fetch_feed_count', $_POST['fetch_feed_count']); 
     28                        $feedcount = $_POST['fetch_feed_count']; 
     29                        for ($i = 99; $i>=$feedcount; $i--) { 
     30                                delConfig('fetch_url_'.$i); 
     31                        } 
     32                } 
    2133 
    22     if (method_exists($config, 'setConfig')) 
    23     { 
    24         return $config->setConfig($key, $value); 
     34                if ( $_POST['fetch_verbose'] ) 
     35                        setConfig('fetch_verbose', '1'); 
     36                else 
     37                        setConfig('fetch_verbose', '0'); 
     38 
     39                if ( $_POST['fetch_comment'] ) 
     40                        setConfig('fetch_comment', $_POST['fetch_comment']); 
     41                else 
     42                        setConfig('fetch_comment', ''); 
     43 
     44                for ($i = 1; $i<=$feedcount; $i++) { 
     45                        $url = "fetch_url_".$i; 
     46                        if ( preg_match($validurl ,$_POST[$url]) ) { 
     47                                setConfig($url, $_POST[$url].':::'.$time[$i]); 
     48                                $feed[$i] = $_POST[$url];        
     49                } else  
     50                                setConfig($url, ''); 
     51                                $feed[$i] = '';                  
     52                } 
     53        }  
     54 
     55        $feed = array(); 
     56        for ($i = 1; $i<=$feedcount; $i++) { 
     57                $str = getConfig('fetch_url_'.$i); 
     58                $tmp = explode(':::', $str); 
     59                $feed[$i] = $tmp[0]; 
     60                $time[$i] = $tmp[1]; 
     61        } 
     62        if ( $_POST['fetch'] ) { 
     63            if (CORP_ID) { 
     64                $corp = new Corporation(CORP_ID); 
     65                $myid = '&corp='.urlencode($corp->getName()); 
     66            } 
     67            if (ALLIANCE_ID) { 
     68                $alli = new Alliance(ALLIANCE_ID); 
     69                $myid = '&alli='.urlencode($alli->getName());  
     70                        } 
     71                 for ($i=1; $i<=$feedcount; $i++) { 
     72                        $feedfetch = new Fetcher(); 
     73                        $cfg = "fetch_url_".$i; 
     74                        if (preg_match($validurl , $feed[$i])) { 
     75                            $str = ''; 
     76                                if ($time[$i]) 
     77                        $str .= '&lastkllid='.$time[$i]; 
     78                                if ( $_POST['fetch_losses'] ) 
     79                        $str .= "&losses=1";     
     80                                if ( $_POST['graball'] ) { 
     81                                        for ($l = 1; $l<=52; $l++) {  
     82                                                $html .= "<b>Week: ". $l ."</b><br>"; 
     83                                                $html .= $feedfetch->grab( $feed[$i].$myid.$str."&week=".$l ); 
     84                                        } 
     85                            } else 
     86                                $html .= $feedfetch->grab( $feed[$i].$myid.$str ); 
     87                        } 
     88                    setConfig($cfg, $feed[$i].':::'.$lastkllid); 
     89            $time[$i] = $lastkllid;      
     90                } 
     91        } 
     92   
     93        $html .= "<br><form id=options name=options method=post action=?a=admin_feed>"; 
     94    $html .= "<input type=submit id=submit name=fetch value=\"Fetch\">"; 
     95         
     96        $html .= "<br><br><input type=checkbox name=fetch_losses id=fetch_losses>"; 
     97        $html .= "<b>Get Kills?</b> <br> <i>(by default only your losses get fetched, when ticked all kills where one of your pilots is involved get fetched instead)</i>";  
     98 
     99    $html .= "<br><br><input type=checkbox name=graball id=graball>"; 
     100    $html .= "<b>Grab ALL mails from the feed servers?</b> <br> <i>(fetches all mails from the feed servers! use this may take upto several hours depending on the amount of kills to import!)</i>"; 
     101 
     102        $html .= "</form></table><br><br>"; 
     103   
     104    $html .= "<table class=kb-subtable>"; 
     105    $html .= "<div class=block-header2>Feeds</div>"; 
     106    $html .= "<form id=options name=options method=post action=?a=admin_feed>"; 
     107    for ($i = 1; $i<=$feedcount; $i++) { 
     108        $html .= "<b>Feed url #".$i."</b><input type=text name=fetch_url_".$i." size=50 class=password value=\""; 
     109        if ( $feed[$i] ) 
     110           $html .= $feed[$i]; 
     111        $html .= "\"><br><br>"; 
    25112    } 
     113    $html .= "<i>Example: http://killboard.eve-d2.com/?a=feed</i><br><br>"; 
     114     
     115        $html .= "<div class=block-header2>Options</div>"; 
     116        $html .= "<b>Number of feeds:</b> <input type=text name=fetch_feed_count size=2 maxlength=2 class=password value=\"".$feedcount."\"<br><br>"; 
     117         
     118        $html .= "<input type=checkbox name=fetch_verbose id=fetch_verbose"; 
     119    if ( getConfig('fetch_verbose') )   
     120                $html .= " checked=\"checked\""; 
     121        $html .= "><b>Verbose mode?</b> <br> <i>(display errormessages when the imported mail is malformed, already exists, is not related etc.)</i><br><br>";  
    26122 
    27     $qry = new DBQuery(); 
    28     $qry->execute("select cfg_value from kb3_config 
    29                    where cfg_key = '".$key."' and cfg_site = '".KB_SITE."'"); 
    30     if ($qry->recordCount()) 
    31     { 
    32         $sql = "update kb3_config set cfg_value = '".$value."' 
    33                 where cfg_site = '".KB_SITE."' and cfg_key = '".$key."'"; 
    34     } 
    35     else 
    36     { 
    37         $sql = "insert into kb3_config values ( '".KB_SITE."','".$key."','".$value."' )"; 
    38     } 
    39     $qry->execute($sql); 
    40 } 
     123        $html .= "<b>Comment for automatically parsed killmails?</b><br><br>";  
     124        $html .= "<input type=text size=50 class=password name=fetch_comment id=fetch_comment value=\""; 
     125    if ( getConfig('fetch_comment') )  
     126                $html .= getConfig('fetch_comment'); 
     127        $html .= "\"><br><i>(leave blank for none)</i><br>"; 
    41128 
    42 function getConfig($key) 
    43 { 
    44     global $config; 
     129    $html .= "<br><br><br><input type=submit id=submit name=submit value=\"Save\">"; 
     130    $html .= "</form></table>";  
    45131 
    46     if (method_exists($config, 'getConfig')) 
    47     { 
    48         return $config->getConfig($key); 
    49     } 
    50     $qry = new DBQuery(); 
    51     $qry->query("select ".$key." from kb3_config where cfg_site = '".KB_SITE."'"); 
    52     $row = $qry->getRow(); 
    53     if (isset($row[$key])) 
    54     { 
    55         return $row[$key]; 
    56     } 
    57     return false; 
    58 } 
    59  
    60 $validurl = "/^(http|https):\/\/[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}((:[0-9]{1,5})?\/.*)?$/i"; 
    61  
    62 $html .= "<table class=\"kb-subtable\">"; 
    63  
    64 $feed = array(); 
    65 for ($i = 1; $i<=5; $i++) 
    66 { 
    67     $str = getConfig('fetch_url_'.$i); 
    68     $tmp = explode(':::', $str); 
    69     $feed[$i] = $tmp[0]; 
    70     $time[$i] = $tmp[1]; 
    71 } 
    72  
    73 if ($_POST['fetch']) 
    74 { 
    75     $i = 1; 
    76     while ($i <= 5) 
    77     { 
    78         $feedfetch = new Fetcher(); 
    79         $url = "fetch_url_".$i; 
    80         if (preg_match($validurl , $feed[$i])) 
    81         { 
    82             $str = ''; 
    83             if (CORP_ID) 
    84             { 
    85                 $corp = new Corporation(CORP_ID); 
    86                 $str = '&corp_name='.urlencode($corp->getName()); 
    87             } 
    88             else 
    89             { 
    90                 $all = new Alliance(ALLIANCE_ID); 
    91                 $str = '&alliance_name='.urlencode($all->getName()); 
    92             } 
    93             if ($time[$i]) 
    94             { 
    95                 $str .= '&lastkllid='.$time[$i]; 
    96             } 
    97  
    98             if ($_POST['graball']) 
    99             { 
    100                 $l = 1; 
    101                 while ($l <= 52) 
    102                 { 
    103                     $html .= "<b>Week: ".$l."</b><br>"; 
    104                     $html .= $feedfetch->generate($feed[$i]."&week=".$l.$str); 
    105                     $l++; 
    106                 } 
    107             } 
    108             else 
    109             { 
    110                 $html .= $feedfetch->generate($feed[$i].$str); 
    111             } 
    112             setConfig($url, $feed[$i].':::'.$lastkllid); 
    113             $time[$i] = $lastkllid; 
    114         } 
    115         $i++; 
    116     } 
    117 } 
    118  
    119 if ($_POST['submit']) 
    120 { 
    121     $i = 1; 
    122     while ($i <= 5) 
    123     { 
    124         $url = "fetch_url_".$i; 
    125         if (preg_match($validurl , $_POST[$url])) 
    126         { 
    127             setConfig($url, $_POST[$url].':::'.$time[$i]); 
    128             $feed[$i] = $_POST[$url]; 
    129         } 
    130         else 
    131         { 
    132             setConfig($url, ''); 
    133         } 
    134         $i++; 
    135     } 
    136 } 
    137  
    138 $html .= "<br><form id=options name=options method=post action=?a=admin_feed>"; 
    139 $html .= "<input type=submit id=submit name=fetch value=\"Fetch\">"; 
    140 $html .= "<br><br><input type=checkbox name=graball id=graball>grab ALL kills from the feed servers? <br> <i>(use this may take upto several hours depending on the amount of kills to import!)</i>"; 
    141 $html .= "</form></table><br>"; 
    142  
    143 $html .= "<table class=kb-subtable>"; 
    144 $html .= "<div class=block-header2>Feed options</div>"; 
    145 $html .= "<form id=options name=options method=post action=?a=admin_feed>"; 
    146 $html .= "Feed url #1<input type=text name=fetch_url_1 size=50 class=password value=\"".$feed[1]."\"><br><br>"; 
    147 $html .= "Feed url #2<input type=text name=fetch_url_2 size=50 class=password value=\"".$feed[2]."\"><br><br>"; 
    148 $html .= "Feed url #3<input type=text name=fetch_url_3 size=50 class=password value=\"".$feed[3]."\"><br><br>"; 
    149 $html .= "Feed url #4<input type=text name=fetch_url_4 size=50 class=password value=\"".$feed[4]."\"><br><br>"; 
    150 $html .= "Feed url #5<input type=text name=fetch_url_5 size=50 class=password value=\"".$feed[5]."\"><br><br>"; 
    151 $html .= "<i>Example: http://killboard.eve-d2.com/?a=feed</i>"; 
    152 $html .= "<br><br><br><input type=submit id=submit name=submit value=\"Save\">"; 
    153 $html .= "</form></table>"; 
    154  
    155 $page->addContext($menubox->generate()); 
    156 $page->setContent($html); 
    157 $page->generate(); 
     132    $page->addContext( $menubox->generate() ); 
     133    $page->setContent( $html ); 
     134    $page->generate(); 
     135         
    158136?> 
  • dev/common/feed.php

    r137 r143  
    11<?php 
     2 
     3// liq's feed syndication mod v1.1 
     4 
    25@set_time_limit(0); 
    3  
    4 // liq's feed syndication mod v1.0 
    5 require_once("class.corp.php"); 
    6 require_once("class.alliance.php"); 
    7 require_once("class.killlist.php"); 
    8 require_once("class.kill.php"); 
    9 require_once("db.php"); 
    10 require_once("globals.php"); 
     6header('Content-type: text/xml');  
     7require_once( "class.corp.php" ); 
     8require_once( "class.alliance.php" ); 
     9require_once( "class.killlist.php" ); 
     10require_once( "class.kill.php" ); 
     11require_once( "db.php" ); 
     12require_once( "globals.php" ); 
    1113 
    1214class RSSTable 
    1315{ 
    14     function RSSTable($kill_list) 
    15     { 
     16    function RSSTable($kill_list) { 
    1617        $this->limit = 0; 
    1718        $this->offset = 0; 
     
    1920    } 
    2021 
    21     function setLimit($limit) 
    22     { 
     22    function setLimit($limit) { 
    2323        $this->limit_ = $limit; 
    2424    } 
    2525 
    26     function generate() 
    27     { 
     26    function generate() { 
    2827        $prevdate = ""; 
    2928        $this->kill_list_->rewind(); 
    30  
     29                 
    3130        while ($kill = $this->kill_list_->getKill()) 
    3231        { 
    33             $rawkill = new Kill($kill->getID()); 
    34  
    35             $html .= " 
     32                $rawkill = new Kill( $kill->getID() ); 
     33                 
     34                $html .= " 
    3635                <item> 
    3736                        <title>".$rawkill->getID()."</title> 
    3837                <description> <![CDATA[ ".$rawkill->getRawMail()." ]]>  </description> 
    3938                <guid>?a=kill_detail&amp;kll_id=".$kill->getID()."</guid> 
    40             <pubDate>".strftime("%a, %d %b %Y %T %Z" , strtotime($kill->getTimeStamp()))."</pubDate> 
    41                 </item> "; 
     39            <pubDate>".strftime( "%a, %d %b %Y %T %Z" , strtotime($kill->getTimeStamp()))."</pubDate> 
     40                </item> ";  
    4241        } 
    4342        return $html; 
     
    4645 
    4746$html .= " 
    48 <rss version=\"2.0\"> 
    49 <channel> 
     47<rss version=\"2.0\"><channel> 
    5048<title>".KB_TITLE."</title> 
    51 <description>Kill Feed</description> 
    5249<link>http://".KB_HOST."</link> 
    5350<copyright>".KB_TITLE."</copyright>"; 
     
    5754$klist->setPodsNoobShips(true); 
    5855 
    59 if ($_GET['week']) 
     56if ($_GET['corp']) 
    6057{ 
    61     $klist->setWeek($_GET['week']); 
     58        $corp = new Corporation(); 
     59        $corp->lookup( urldecode($_GET['corp']) ); 
    6260} 
    63 elseif (!$_GET['lastkllid']) 
     61if ($_GET['alli']) 
    6462{ 
    65     $klist->setWeek(date("W")); 
    66 } 
    67 if ($_GET['lastkllid']) 
    68 { 
    69     if (method_exists($klist, 'setMinKllID')) 
    70     { 
    71         $klist->setMinKllID($_GET['lastkllid']); 
    72     } 
     63    $alli = new Alliance(); 
     64    $alli->add( urldecode($_GET['alli']) );   
    7365} 
    7466 
    75 if ($_GET['corp_name']) 
    76 { 
    77     $corp = new Corporation(); 
    78     $corp->lookup($_GET['corp_name']); 
    79     $klist->addInvolvedCorp($corp); 
     67if ($_GET['week']) 
     68        $klist->setWeek( $_GET['week'] ); 
     69elseif (!$_GET['lastkllid']) 
     70        $klist->setWeek( date("W") ); 
     71if ($_GET['lastkllid']) { 
     72        if (method_exists($klist, 'setMinKllID')) 
     73        $klist->setMinKllID($_GET['lastkllid']); 
    8074} 
    81 elseif ($_GET['alliance_name']) 
    82 { 
    83     $ally = new Alliance(); 
    84     $ally->add($_GET['alliance_name']); 
    85     $klist->addInvolvedAlliance($ally); 
     75 
     76if ( $_GET['losses']) { 
     77        $html .= "<description> Loss Feed </description>"; 
     78        if (CORP_ID) 
     79                $klist->addVictimCorp(new Corporation(CORP_ID)); 
     80        if (ALLIANCE_ID) 
     81                $klist->addVictimAlliance(new Alliance(ALLIANCE_ID)); 
     82        if ($corp) 
     83                $klist->addInvolvedCorp($corp); 
     84        if ($alli) 
     85                $klist->addInvolvedAlliance($alli); 
     86 
     87} else { 
     88        $html .= "<description> Kill Feed </description>"; 
     89        if (CORP_ID) 
     90                $klist->addInvolvedCorp(new Corporation(CORP_ID)); 
     91        if (ALLIANCE_ID) 
     92                $klist->addInvolvedAlliance(new Alliance(ALLIANCE_ID)); 
     93    if ($corp) 
     94                $klist->addVictimCorp($corp); 
     95        if ($alli) 
     96        $klist->addVictimAlliance($alli); 
    8697} 
    8798 
    8899$table = new RSSTable($klist); 
     100$html .= $table->generate(); 
     101$html .= "</channel></rss>"; 
     102echo $html; 
    89103 
    90 $html .= $table->generate(); 
    91 $html .= " 
    92 </channel> 
    93 </rss>"; 
    94  
    95 echo $html; 
    96104?> 
  • dev/common/feed_fetcher.php

    r137 r143  
    11<?php 
    2 @set_time_limit(0); 
    3 // liq's feed syndication mod v1.0 
    4 require_once("class.page.php"); 
    5 require_once("class.kill.php"); 
    6 require_once("class.parser.php"); 
    72 
    8 $insideitem = false; 
     3// liq's feed syndication mod v1.1 
     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;  
    914$tag = ""; 
    1015$title = ""; 
    1116$description = ""; 
    12 $link = ""; 
    13 $x = 0; 
     17$link = "";   
     18$x=0; 
    1419 
    15 class Fetcher 
    16 { 
    17     function generate($url, $lastkllid = 0) 
    18     { 
    19         global $x; 
     20function 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); 
     33} 
    2034 
    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'); 
     35function 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} 
    2546 
    26         $fp = @fopen($url, "r"); 
    27         $file = ''; 
    28         while ($data = fread($fp, 4096)) 
    29         { 
    30             $file .= $data; 
    31         } 
    32         fclose($fp); 
     47function 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} 
    3352 
    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); 
     53class Fetcher { 
     54  
     55function grab($url) {  
     56                global $x, $fetchurl; 
     57                $fetchurl = $url; 
     58        $xml_parser = xml_parser_create(); 
     59                xml_set_object ( $xml_parser, $this ); 
     60                xml_set_element_handler($xml_parser, "startElement", "endElement");        
     61                xml_set_character_data_handler ( $xml_parser, 'characterData' );   
     62                $fp = @fopen($url,"r"); 
     63                while ($data = fread($fp, 4096)) { 
     64                        if (!xml_parse( $xml_parser, $data, feof($fp) ) && !feof($fp) ) 
     65                                return "<i>Error getting XML data from ".$url."</i><br><br>"; 
     66                } 
     67                fclose($fp); 
     68                xml_parser_free($xml_parser); 
     69                if ($x) 
     70                        $html = "<div class=block-header2>".$x." kills added from feed: ".$url."</div>"; 
     71                else 
     72                        $html = "<div class=block-header2>No kills added from feed: ".$url."</div>"; 
     73return $html;  
     74} 
    4375 
    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         } 
     76function startElement($parser, $name, $attrs) { 
     77        global $insideitem, $tag, $title, $description, $link; 
     78        if ($insideitem) 
     79                $tag = $name; 
     80        elseif ($name == "ITEM") 
     81                $insideitem = true; 
     82} 
    5283 
    53         return $html; 
    54     } 
     84function endElement($parser, $name) { 
     85        global $insideitem, $tag, $title, $description, $link, $html, $x, $fetchurl; 
    5586 
    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     } 
     87        if ($name == "ITEM") { 
     88                if ( isset( $description ) ) { 
     89                        $parser = new Parser( $description ); 
     90                $killid = $parser->parse( true ); 
     91                if ( $killid == 0 || $killid == -1 || $killid == -2 ) { 
     92                                if ( $killid == 0 && getConfig('fetch_verbose') ) 
     93                        $html .= "Killmail is malformed.<br>"; 
     94                        if ( $killid == -2 && getConfig('fetch_verbose') ) 
     95                            $html .= "Killmail is not related to ".KB_TITLE.".<br>"; 
     96                                if ( $killid == -1 && getConfig('fetch_verbose') ) 
     97                                    $html .= "Killmail already posted <a href=\"?a=kill_detail&kll_id=".$parser->dupeid_."\">here</a>.<br>"; 
     98                        }                
     99                        else { 
     100                                $qry = new DBQuery(); 
     101                                $qry->execute( "insert into kb3_log     values( ".$killid.", '".KB_SITE."','".$_SERVER['REMOTE_ADDR']."',now() )" ); 
     102                                $html .= "Killmail succsessfully posted <a href=\"?a=kill_detail&kll_id=".$killid."\">here</a>.<br>"; 
    68103 
    69     function endElement($parser, $name) 
    70     { 
    71         global $insideitem, $tag, $title, $description, $link, $html, $x, $lastkllid; 
     104                                if (class_exists('Comments') && getConfig('fetch_comment')) { // for the Eve-Dev Comment Class 
     105                                        $comments = new Comments($killid); 
     106                        $comments->addComment("Automatic Kill Import", getConfig('fetch_comment')." (mail fetched from: ".$fetchurl.")"); 
     107                                } 
     108                                if (class_exists('Comment') && getConfig('fetch_comment')) { // for the D2 Killboard Comment Class 
     109                                        $comment = new Comment($killid); 
     110                        $comment->postComment(getConfig('fetch_comment')." \n\n <i>(mail fetched from:\n ".$fetchurl.")</i>", "liquidism"); 
     111                                } 
     112                                $x++; 
     113                        } 
     114        } 
     115                $title = ""; 
     116                $description = "";  
     117                $link = ""; 
     118                $insideitem = false; 
     119        } 
     120} 
    72121 
    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     } 
     122function characterData($parser, $data) { 
     123        global $insideitem, $tag, $title, $description, $link; 
     124        if ($insideitem) { 
     125                switch ($tag) { 
     126                        case "TITLE": 
     127                        $title .= $data; 
     128                        break; 
     129                        case "DESCRIPTION": 
     130                        $description .= $data; 
     131                        break; 
     132                        case "LINK": 
     133                        $link .= $data; 
     134                        break; 
     135                } 
     136        } 
     137} 
    109138 
    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     } 
    129139} 
     140 
    130141?>