FreewarWiki:Bot/Skripts/rss feed.php: Unterschied zwischen den Versionen

aus FreewarWiki, der Referenz für Freewar
Zur Navigation springen Zur Suche springen
(Die Seite wurde neu angelegt: „<pre> <?php $page_cache = include_once('PageTitles.php'); //enthält Seitentitel, die mit AllPagesBot.php generiert werden; function feed($page_cache) { $feed…“)
 
K (- Tabellenanfang/Ende, sollte per Vorlage erzeugt werden)
Zeile 8: Zeile 8:
  preg_match_all("#<updated>(.*?)<\/updated>.*?<id>(.*?)</id>.*?<title type=\"html\"><!\[CDATA\[(.*?)\]\]><\/title>.*?<!\[CDATA\[(.*?)(<p>|<br \/>)#", $feed, $data); //kompliziertes Bwoebi-Futter
  preg_match_all("#<updated>(.*?)<\/updated>.*?<id>(.*?)</id>.*?<title type=\"html\"><!\[CDATA\[(.*?)\]\]><\/title>.*?<!\[CDATA\[(.*?)(<p>|<br \/>)#", $feed, $data); //kompliziertes Bwoebi-Futter


$text = "{| \n |- \n";
        $text = "";
$count = count($data[0]);
$count = count($data[0]);
  for($i = 0; $i < $count; $i++) {
  for($i = 0; $i < $count; $i++) {
Zeile 42: Zeile 42:
$text .= "|".date("d.m.Y",strtotime($data[1][$i]))."||[".$data[2][$i]." ".$title."]||".$desc."\n|-\n";
$text .= "|".date("d.m.Y",strtotime($data[1][$i]))."||[".$data[2][$i]." ".$title."]||".$desc."\n|-\n";
}
}
$text .= "|}";
return array($count,$text); //als Klasse wäre das sicher schöner :')
return array($count,$text); //als Klasse wäre das sicher schöner :')
}
}

Version vom 17. Januar 2016, 08:01 Uhr

<?php
$page_cache = include_once('PageTitles.php'); //enthält Seitentitel, die mit AllPagesBot.php generiert werden;
function feed($page_cache) {
	$feed = file_get_contents("http://forum.freewar.de/feed.php?mode=news"); //lade RSS-Feed
	$feed = trim(preg_replace('/\s+/', ' ', $feed)); //entferne alle neuen Zeilen
	
 	preg_match_all("#<updated>(.*?)<\/updated>.*?<id>(.*?)</id>.*?<title type=\"html\"><!\[CDATA\[(.*?)\]\]><\/title>.*?<!\[CDATA\[(.*?)(

|
)#", $feed, $data); //kompliziertes Bwoebi-Futter $text = ""; $count = count($data[0]); for($i = 0; $i < $count; $i++) { $desc = explode(".", $data[4][$i])[0]."."; //kürze Beschreibungstexte auf 1 Satz //setze alle bekannten Artikel aus dem Artikel-Cache $page_cache ein; //$page_cache wird mittels AllPagesBot.php generiert; //es werden nur solche Wörter betrachtet, die mehr als 3 Zeichen haben; $explosion = explode (" ", $desc); for($e = 0; $e < count($explosion); $e++) { $token = $explosion[$e]; $flag = false; if(substr($token, -1) === ":") { //Überprüfung ob mehrteiliger Name $token .= " ".$explosion[$e+1]; $flag = true; } if(strlen($token) > 3 && in_array($token, $page_cache)) { $token = "" . $token . ""; } elseif(strlen($token) > 3 && in_array(substr($token, 0, -1), $page_cache)) { //entferne Satzzeichen, Plural "s" und sonstige einzelne Zeichen, die einen Artikel unauffindbar machen würden; $token = "" . substr($token, 0, -1) . "" . substr($token, -1); } $explosion[$e] = $token; if($flag) { $e++; $explosion[$e] = ""; } } $desc = implode(" ", $explosion); $title = preg_replace("#(\[.*?\])#", "", $data[3][$i]); //entferne [W1*]-Markierung $text .= "|".date("d.m.Y",strtotime($data[1][$i]))."||[".$data[2][$i]." ".$title."]||".$desc."\n|-\n"; } return array($count,$text); //als Klasse wäre das sicher schöner :') }