|
|
 |
RSS-Bot |
| Autor |
|
|
|
Servus, Grüß Euch,
Zuerst möcht ich mal sagen, dass ich euer Forum/bzw. das Design eures Forums sehr geil finde. Gefällt mir sehr gut!
Also, bin über G00gle auf eure Site gestoßen....^.... es jetzt geht darum, dass ihr hier im Forum einen RSS-Bot verwendet, welcher externe RSS auslesen kann, und automatisch im Forum postet.
Hab jetzt schon wirklich lange danach gegoogelt, wo ich ebenfalls eine solche Erweiterung herbekommen kann, jedoch hab ich nur ein paar andere Seiten gefunden, welche diese Erweiterung ebenfalls verwenden....:-)
Deshalb wollte ich fragen, ob ihr noch wisst, woher ihr diesen RSS-Bot habt, bzw. von welcher wBB-Site ihr den gedownloadet habt... würde den nämlich auch gebrauchen können, finde den allerdings nirgendwo zum Download...
Naja, jedenfalls wärs es urnett und hilfreich wenn ihr mir weiterhelfen könntet!
Grüße, baba, Eure Lieblingskakerlake
|
|
14.03.2009 13:56 |
|
|
|
|
Hi Jungs,
erstmal danke für das Script und die tollen Infos hier auf der Seite.
Ich habe das Script am laufen und stark modifiziert.
Leider postet der Bot den jeweils letzten Post im RSS Feed immer wieder,
so oft ich den Bot über den CronJob laufen lasse, wird gepostet.
Die mehrfach Einträge in die DB konnte ich durch ein Unique in der Spalte "tiltle"
vermeiden. Allerdings muss ich dann das Db querry mit INSERT IGNORE INTO
abarbeiten, sonst bricht das Script mit einer Fehlermeldung ab.
Also gibt es nun in der DB schon mal keine mehrfacheinträge mehr.
Allerdings postet der Bot wie gesagt den jeweils letzten Eintrag unendlich oft.
Hier mal der Code des stark geänderten Scripts:
<?PHP
header("Content-Type: text/html; charset=utf-8");
/*
* (C) 2005 CoderCrew
* http://www.CoderCrew.org
* info@CoderCrew.org
*/
//include
require("global.php");
//configuration
//boardid of the board in which we want to post our RSSImport
$boardid = 131;
//userid of the poster (0 eq GUEST)
$uid = 0;
//if $uid != 0 then the nick of the user with $uid else any nick.
$uname = "Team-Saarwaller";
//add your rssurls here - just 2 examples:
$sites[] = "http://www.sms2box.de/ticker/rss.php?tickerid=646";
print '*** ['.date("d.m.Y H:i").'] Starting script...';
print "\n";
print '*** ['.date("d.m.Y H:i").'] UID->'.$uid.'';
print "\n";
print '*** ['.date("d.m.Y H:i").'] UNAME->'.$uname.'';
print "\n";
print '*** ['.date("d.m.Y H:i").'] BOARDID->'.$boardid.'';
print "\n";
print '*** ['.date("d.m.Y H:i").'] SITESCONT->'.count(sites).'';
print "\n";
$time = time();
for($s = 0;$s < count($sites); $s++){
preg_match("/^((https?|ftp):\/\/|www\.)([^ \r\n\(\)\^\$!`\"'\|\[\]\{\}<>]*)/si",$sites[$s],$input[1]);
$urlsplit = split("/",$input[1][3]);
print '*** ['.date("d.m.Y H:i").'] sites['.$s.'] = '.$urlsplit[0].'';
print "\n";
$content = implode("",file($sites[$s]));
preg_match_all("/\<item\>(.*?)\<\/item\>/si", $content, $results);
for($i = 0;$i < count($results[1]);$i++) {
preg_match("/\<link\>(.*?)\<\/link\>/si", $results[1][$i], $link);
preg_match("/\<title\>(.*?)\<\/title\>/si", $results[1][$i], $title);
preg_match("/\<description\>(.*?)\<\/description\>/si", $results[1][$i], $desc);
preg_match("/\<pubDate\>(.*?)\<\/pubDate\>/si", $results[1][$i], $date);
$link = $link[1];
$title = $title[1];
$desc = $desc[1];
$date = $date[1];
$check = $db->query("SELECT id ,title FROM bb".$n."_rss WHERE title = '".addslashes($title)."'");
if($db->num_rows($check) == 0){
mysql_query("SET NAMES 'utf8'");
mysql_query("SET CHARACTER SET 'utf8'");
$db->query("INSERT IGNORE INTO`bb".$n."_rss` ( `id` , `from` , `title` , `link` , `description` ) VALUES ('', '".$s."', '".addslashes($title)."', '".addslashes($link)."', '".addslashes($desc)."')");
if(!empty($date)) $news[$s][$i]['date'] = substr($date,0,strlen($date)-6);
$news[$s][$i]['link'] = $link;
$news[$s][$i]['title'] = $title;
$news[$s][$i]['desc'] = $desc;
if(!$news[$s]['name']) $news[$s]['name'] = $urlsplit[0];
print '*** ['.date("d.m.Y H:i").'] DB->INSERT('.$title.')';
print "\n";
} else {
print '*** ['.date("d.m.Y H:i").'] DB->EXISTS('.$title.')';
print "\n";
}
}
}
for($i = 0;$i < count($news);$i++){
$newstopic[$i] = " neue SMS eingegangen [".date("d.m.Y H:i")."]";
for($a = 0;$a < count($news[$i]);$a++){
if(!empty($news[$i][$a]['date'])) $newstext[$i] .= "".$news[$i][$a]['']." ".$news[$i][$a]['link']."".$news[$i][$a]['title']."\n";
else if(!empty($news[$i][$a]['title'])) $newstext[$i] .= "» ".$news[$i][$a]['link']."".$news[$i][$a]['title']."\n";
if(!empty($news[$i][$a]['desc'])) $newstext[$i] .= "".$news[$i][$a]['desc']."\n\n";
}
$newstext[$i] .= "\n\n";
$newstext[$i] .= "Dieser Beitrag wurde automatisch erstellt.";
}
for($i = 0;$i < count($newstext);$i++){
$db->query("INSERT INTO bb".$n."_threads (boardid,topic,iconid,starttime,starterid,starter,lastposttime,lastposterid
,lastposter,closed,attachments,pollid,important,visible) VALUES ('".$boardid."','".addslashes($newstopic[$i])."','3','".$time."','".$uid."'
,'".addslashes($uname)."','".$time."','".$uid."','".addslashes($uname)."','
0','0','0','0','1')");
$threadid = $db->insert_id();
print '*** ['.date("d.m.Y H:i").'] DB->CREATE_THRED('.$threadid.'->'.$newstopic[$i].')';
print "\n";
$db->unbuffered_query("UPDATE bb".$n."_stats SET threadcount=threadcount+1", 1);
print '*** ['.date("d.m.Y H:i").'] DB->UPDATE_GLOBAL_THREADCOUNT';
print "\n";
$db->query("INSERT INTO bb".$n."_posts (parentpostid,threadid,userid,username,iconid,posttopic,posttime,message,at
tachments,allowsmilies,allowhtml,allowbbcode,allowimages,showsignature,ipad
dress,visible) VALUES "."('0','".$threadid."','".$uid."','".addslashes($uname)."','3','".addslash
es($newstopic[$i])."','".$time."','".addslashes($newstext[$i])."','0','0','
0','1','0','0','127.0.0.1','1')");
$postid = $db->insert_id();
print '*** ['.date("d.m.Y H:i").'] DB->CREATE_POST('.$threadid.'->'.$postid.')';
print "\n";
$db->unbuffered_query("UPDATE bb".$n."_stats SET postcount=postcount+1", 1);
print '*** ['.date("d.m.Y H:i").'] DB->UPDATE_GLOBAL_POSTCOUNT';
print "\n";
$db->unbuffered_query("UPDATE bb".$n."_boards SET threadcount=threadcount+1, postcount=postcount+1, lastthreadid='".$threadid."', lastposttime='".$time."', lastposterid='".$uid."', lastposter='".addslashes($uname)."' WHERE boardid IN (".$boardid.")", 1);
print '*** ['.date("d.m.Y H:i").'] DB->UPDATE_BOARD('.$boardid.')';
print "\n";
}
?>
|
|
28.03.2010 13:17 |
|
|
|
|
|
 |
|