ein cooler Mod, dieser phpbb2egg. Neue Beiträge aus dem Board werden direkt von einem Eggdrop in einen IRC-Channel geschrieben. So verpassen Chatter die neuen Beiträge nicht.
Leider hat dieses Teil doch noch einige Macken. Immerhin habe ich es zum Laufen bekommen - allerdings werden nur EINZEILIGE Beiträge veröffentlicht. Dann funktioniert das nach 300 Zeichen Abschneiden des Beitrags nicht, bei mehrzeiligen Beiträgen wird der Forenlink nicht mitübergeben und der User sowie das Forum, in dem der Beitrag geschrieben wurde, werden nicht angezeigt.
Leider bin ich kein wirklicher php-Master. Wer kennt den Mod oder kann Hilfe bieten. Hier einmal der Code der zugehörigen phpbb2egg.php Datei. Das passende tcl Script kann ich, falls das Problem gelöst wird, mit dem kompletten Mod hier releasen, wenn Ihr wollt.
Code: Alles auswählen
<?php
// version 1.0.1 beta[development]
$channel = "#MEIN_IRC_CHANNEL";
$ids = "43"; // forums to display posts from MEIN TESTFORUM, DAS ÜBERWACHT WIRD
$botip = "192.168.0.0"; // your bot's ip
$botport = "13481"; // a nice port
$boardurl = "www.MEIN_SCHÖNES_BOARD.de";
function send2egg($mode, $forumid, $topic_id, $user_id, $subject, $message, $poll_title, $channel, $ids, $botip, $botport, $boardurl )
{
global $userdata;
$nick = $userdata[$user_id];
//strip BBCode off
$message = preg_replace("#\[(.*?)]#si", "", $message);
// shorten longer postings to 300 signs
$text = wordwrap($message, 300, "\0") . ' ...';
//here we ask for several cases and do some formating stuff with tcl readable colors.
if ( $poll_title != '' )
{
$text2 = "\00300,02 Neue Umfrage! \00301,99 im Forum:<br>";
}
else if ( $mode = 'newtopic' )
{
$text2 = "\00300,02 Neuer Beitrag! \00301,99 im Forum:<br>";
}
else
{
$text2 = "\00300,02 Neuer Beitrag! \00301,99 im Forum:<br>";
}
if ( $poll_title != '' )
{
$text2 .= "\00300,04 $nick \00302,99 fragt: $poll_title <br>";
}
else if ( $subject != '' )
{
$text2 .= "\00300,04 $nick \00302,99 zum Thema $subject :<br>";
$text2 .= " \00302,99 $message <br>";
}
else
{
$text2 .= "\00300,04 $nick".":";
$text2 .= " \00302,99 $message <br>";
}
$text2 .= " Link: \00312,99 $boardurl/viewtopic.php?t=$topic_id ";
$chan = checkid( $forumid, $channel, $ids );
phpbb2egg($chan, $text=$text2, $botip, $botport );
}
function phpbb2egg( $channel, $text, $botip, $botport)
{
if ( $channel == '' || $text == '') {
return;
}
$text = ereg_replace(";", ":", $text);
$text = ereg_replace("<br>", ";", $text);
$line = "$channel $text";
$socket = @fsockopen ($botip, $botport, $null, $null, 60);
if (!$socket)
{
echo " no connection made ";
}
if ($socket) {
@fputs($socket,"$line\n");
for($i=0;$i<400000;$i++)
{
$g=$i;
}
fclose($socket);
}
}
// a little tricky from unknown
function checkid($forumid, $channel, $ids )
{
$public[forumids] = " $ids ";
$public[chan] = " $channel ";
$forumids=explode(" ", $public[forumids]);
while ( list($n, $id) = each($forumids))
{
if ($forumid == $id)
{
return "$public[chan]";
}
}
return "";
}
?>
Marc