BlackBoard (http://www.black-board.net/index.php)
- Design, Programmierung & Entwicklung (http://www.black-board.net/board.php?boardid=55)
-- Projekte (http://www.black-board.net/board.php?boardid=108)
--- PHP IRC-Notify für neue Posts (http://www.black-board.net/thread.php?threadid=9014)


Geschrieben von FidelCastro am 24.10.2003 um 11:19:

 

hab in der makefile die spaces durch tabs ersetzt



Geschrieben von LX am 24.10.2003 um 12:10:

Achtung

Bevor es noch mehr Probleme gibt, hänge ich die beiden Dateien jetzt einfach mal an. Die Datei heißt remote.rar, weil der Uploader hier *.tar.gz als Endung net mag. Also bitte in remote.tar.gz umbenennen.



Geschrieben von FidelCastro am 24.10.2003 um 14:14:

 

thx hat hingehauen ^^



Geschrieben von PBB-Owner am 02.11.2003 um 09:21:

 

hallo !!

kann mir mal jemand helfen ich bekomme folgenden fehler !!

hab oben die dateien runtergeladen ! und entpackt ins richtige verzeichnis !


make[2]: Wechsel in das Verzeichnis Verzeichnis »/home/pbb/eggdrop1.6.13/src/mod/remote.mod«
Makefile:2: *** Fehlendes Trennzeichen.. Schluss.
make[2]: Verlassen des Verzeichnisses Verzeichnis »/home/pbb/eggdrop1.6.13/src/mod/remote.mod«
make[1]: *** [remote.mod_so] Fehler 2
make[1]: Verlassen des Verzeichnisses Verzeichnis »/home/pbb/eggdrop1.6.13/src/mod«
make: *** [modules] Fehler 2



Geschrieben von FidelCastro am 02.11.2003 um 10:22:

 

Zitat:
Original von LX
Bevor es noch mehr Probleme gibt, hänge ich die beiden Dateien jetzt einfach mal an. Die Datei heißt remote.txt, weil der Uploader hier *.tar.gz als Endung net mag. Also bitte in remote.tar.gz umbenennen.



saug dir die txt aus dem post bennen sie in remote.tar.gz um
da is die richtige makefile drinne, hat auch bei mir gefunzelt



Geschrieben von PBB-Owner am 02.11.2003 um 10:29:

 

genau das habe ich gemacht und da kommt nunmal der fehler !

den ich weiter oben gepostet habe !



EDIT:


So nachdem LX die makefile nochmal neu angehängt hat funkzte nun das compilen

nur leider hab ich jetzt ein weiters prob .

das module läuft er hat keine probs beim starten meldet auch keinen fehler.

Nun hab ich es auch im board eingebaut und wenn ich da jetzt ein post machen schreibt er trotzdem nichts im channel.

der port und pw undsoweiter sind überall angepasst.

würde mich über hilfe freuen
!!



Geschrieben von DSD am 02.12.2003 um 01:21:

 

erm kann es sein das etwas aufm webspace verbietet das das board das zum irc bot sendn kann? wenn ja wie kann ichs ausschalten (ich hab root)



Geschrieben von LX am 02.12.2003 um 01:30:

 

Der beim Bot angegebene Port muss natürlich nach außen offen sein. Kann man recht einfach prüfen, wenn man mal mit Telnet von demjenigen Rechner versucht, auf dem jeweiligen Port zu connecten.



Geschrieben von magician am 12.02.2004 um 23:45:

 

hi, erstmal danke für die remote.mod.

erste sahne.

dann mal meine Frage habe folgendes Script:

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
function get_crewinfo($crewid) {
        global $egg_host,$egg_port,$egg_pass,$db,$n,$crewid,$nick,$channel;

                if ($fp=fsockopen($egg_host,$egg_port,$errno,$errstr,30)) {
                        fputs($fp,$egg_pass."\r\n");
                        fputs($fp,"PRIVMSG $channel From User: \037$nick\037");
                        fputs($fp,"From User: \037$nick\037\r\n");
                        fclose($fp);

                      }
}


soo das geht auch wunderbar.

er postet mir dann folgendes ins irc

Zitat:
[11:26] <@MAGiC> !getcrewinfo 1
[11:26] *speakbot* Anfrage wurde gesendet, einen Moment bitte. Anfrage wurde aus folgendem Channel gesendet: #uhb | http://copycrew.info/ma-scripts/ftp_addon_crew_irc.php?channel1=#uhb&crewid=1&irc_nick=MAGiC
[11:26] <@speakbot> Requested Crewid: 1From User: MAGiC


aber er soll nach der Crewid:1 nen zeilenumbruch machen, wie bekomme ich das hin?

Danke für ihre hilfe.

MFG MAGiC



Geschrieben von SHAB am 15.09.2004 um 14:57:

 

Vielen Dank für die ausführliche Anleitung smile

Leider bekomm' ich das aber irgendwie nicht zum laufen...evtl weil ich eine neuere wbb version benutze (wbb 2.1.3) ?

mir ist nämlich aufgefallen, dass bei den beiden files, die gepatched werden müssen - addreply.php + newthread.php - nicht mehr alles so ist wie in der Anleitung...


die Zeile require("./irc_notify.php"); am Anfang dürfte ja kein Problem sein...das bleibt ja sicher gleich....

das andere ( irc_notify($wbbuserdata['username'],$postid,$threadid);
) hab ich, wie vorgegeben direkt unter:
$postid = $db->insert_id();
eingefügt....

allerdings stimmt die Zeile davor nicht mehr überein...


if(!isset($threadid)) eval("error("".$tpl->get("error_falselink")."");");

bzw

if($_REQUEST['action']=="announce") {


gibt es in meinen files nicht....



ansonsten...das remote module wurde erfolgreich hinzugefügt!
irc_notify hab ich auch mit allen Daten gefüttert....

(allerdings, bei $egg_host="my.bots.host.net"; ---> als host hab ich eben die IP des servers auf dem der eggdrop installiert ist angegeben , aber das passt ja schon, oder ?)


wäre klasse wenn irgendjemand Rat wüsste...ich würd das gerne zum laufen bringen smile

Merci großes Grinsen



Geschrieben von Black Star am 15.09.2004 um 16:30:

 

Wir benutzen diesen Patch schon sehr lange für das WBB in mehreren Versionen.
Wie du siehst, ist unseres jetzt ein WBB-2.2.0 und wir benutzen den Patch immer noch (wenn zuch ein wenig geaendert).

Wenn du mir sagst, welche files du brauchst, kann ich dir die gerne geben.



Geschrieben von SHAB am 15.09.2004 um 16:38:

 

die files fürs wbb die gepatched werden müssen sind ja nur


ich bräuchte das fürs wbb2.1.3...

allerdings weiss ich nicht so genau ob es auch wirklich daran liegt...
aber alles andere hab ich eigneltich schon probiert...



Geschrieben von LX am 16.09.2004 um 13:53:

Achtung

Der Einbau des Patches in die WBB-Software war eigentlich kein Problem, auch bei der aktuellen Version nicht. Hast du denn schonmal versucht, eine Nachricht an den Bot zu schicken, um das Remote-Modul zu testen? Ansonsten melde dich mal im IRC bei mir, ich bin meistens da.



Geschrieben von SHAB am 17.09.2004 um 16:56:

 

so, ich nochmal smile

Ich bin einen großen Schritt weiter, aber leider klappts immer noch nicht.

Stand der Dinge ist, dass das remote module eingebaut ist und läuft, alles einwandfrei soweit...

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
[ 16:14:07 ]  :: <SHAB> .module
[ 16:14:08 ]  :: <EggBert> [16:30] #SHAB|busy# module 
[ 16:14:08 ]  :: <EggBert> Loaded module information:
[ 16:14:08 ]  :: <EggBert>   Module: remote, v 0.1
[ 16:14:08 ]  :: <EggBert>   Module: uptime, v 1.2
[ 16:14:08 ]  :: <EggBert>     requires: eggdrop, v 106.11
...............
...............usw



überprüfung des ports auf dem server:

code:
1:
2:
3:
4:
5:
6:
[root@host root]# lsof -i:XXXX
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
eggdrop 10127 shab 6u IPv4 5935986 TCP *:XXXX (LISTEN)
[root@host root]#



in der notify.php ist (habs 3mal überprüft) der gleiche port/pass wie in der remote.c angegeben, der Pfad zur thread.php ist richtig, als egghost ist die IP des servers angegeben auf dem der eggdrop installiert ist.


Eigentlich kann es ja jetzt nur noch am Einbau ins wbb liegen oder ?

Im Anhang mal meine addreply.php | newthread.php .......
evtl findet dort ja einer 'nen Fehler..?

ich weiss sonst nämlich nicht mehr weiter smile



Geschrieben von LX am 17.09.2004 um 18:19:

Achtung

Die Dateien scheinen okay zu sein.

Hast du denn schonmal versucht, das Remote-Modul zu testen? Am besten machste das mit Telnet:

telnet <host> <port>

Dann erwartet er in einer Zeile das Passwort, und in der nächsten ein IRC-Kommando, also beispielsweise

blahblubb
privmsg #channel :hallo welt


Für diese Eingaben hast du nur eine Sekunde Zeit, daher empfiehlt es sich, die vorher inklusive Zeilenumbrüche in der Zwischenablage abzulegen und dann einfach reinzukopieren.

Wenn das klappt, müsste der Bot dann im angegebenen Channel "hallo welt" sagen. Ansonsten könnte es höchstens noch sein, dass der Server, auf dem der Bot läuft, per Firewall/Paketfilter geschützt ist und der angegebene Port eben blockiert wird.



Geschrieben von SHAB am 20.09.2004 um 12:36:

 

tjo...
was soll ich sagen..
über telnet direkt geht das module wunderbar, damit bringt er mir die msg in den channel...muss also doch am board bzw boardeinbau liegen..nur weiss ich leider nicht mehr wo ich noch nach Fehlern gucken könnte.



Geschrieben von LX am 20.09.2004 um 14:53:

Achtung

Demnach muss es ja mit den Boardscripten oder dem Server, auf dem das Board läuft, zusammenhängen. Da die Scripte in meinen Augen okay sind, tippe ich mal auf den Server. Eventuell unterbinden einige Provider Socketverbindungen auf fremde Rechner. Schau mal in phpinfo(), ob "Sockets Support" aktiviert ist. Ansonsten versuche mal, mit fsockopen() eine Verbindung zu einem anderen Host herzustellen, von dem du weißt, dass er online ist.



Geschrieben von LX am 12.10.2004 um 22:51:

Achtung RE: IRC-Notify für neue Posts

Soderle, da wir hier auf dem Board ja mittlerweile eine ganze Menge Themenpräfixe eingestellt haben und einige Threadtitel ohne die Präfixe recht zusammenhangslos erscheinen, hier mal die modifizierte irc_notify.php, damit die Präfixe auch angekündigt werden:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
<?php

/* irc_notify.php
 * 12/2002 by Zirias
 *
 * announces new threads in IRC via an eggdrop using my remote module
 * 20041012: added announcement of prefixes - LX
 */

//Config:

$thread_url="http://my.boards.host.net/thread.php";
$egg_host="my.bots.host.net";
$egg_port="12345";
$egg_pass="Password";
$channel="#mychan";

//END Config.

function irc_notify($poster,$postid,$threadid) {
        global $thread_url,$egg_host,$egg_port,$egg_pass,$channel,$db,$n;
        $thread=$db->query_first("SELECT prefix,topic,boardid FROM bb".$n."_threads WHERE threadid=".$threadid);
        $board=$db->query_first("SELECT title,invisible FROM bb".$n."_boards WHERE boardid=".$thread['boardid']);
        $trans=array_flip(get_html_translation_table(HTML_ENTITIES));
        $boardname=strtr($board['title'],$trans);
        $prefixname=($thread['prefix']!='') ? '['.strtr($thread['prefix'],$trans).'] ' : '';
        $threadname=strtr($thread['topic'],$trans);
        if ($board['invisible']==0) {
                if ($fp=@fsockopen($egg_host,$egg_port,$errno,$errstr,30)) {
                        fputs($fp,$egg_pass."\r\n");
                        fputs($fp,"PRIVMSG $channel :Neuer Post von \037$poster\037: ");
                        fputs($fp,"$thread_url?postid=$postid#post$postid ");
                        fputs($fp,"\002Forum\002: $boardname ");
                        fputs($fp,"\002Thread\002: $prefixname$threadname\r\n");
                        fclose($fp);
                }
        }
}

?>



Geschrieben von LX am 15.12.2004 um 20:54:

  RE: IRC-Notify für neue Posts

Eine weitere Anpassung: Die Auswahl, welche Foren angekündigt werden und welche nicht, richtet sich jetzt nicht mehr nach der 'invisible'-Flag, sondern danach, ob ein Gast das Forum sehen kann. Eventuell muss dazu das Script modifiziert werden, wenn Gäste eine andere Gruppen-ID als die 5 haben (kann ich ACP eingesehen werden). Alternativ kann man natürlich auch eine andere Gruppe angeben, z.B. die der registrierten und angemeldeten Nutzer.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
<?php

/* irc_notify.php
 * 12/2002 by Zirias
 *
 * announces new threads in IRC via an eggdrop using my remote module
 * 20041012: added announcement of prefixes - LX
 * 20041215: forums are excluded if Guests cannot see them instead of 'invisible' flag set
 */

//Config:

$thread_url='http://my.boards.host.net/thread.php';
$egg_host='my.bots.host.net';
$egg_port='12345';
$egg_pass='Password';
$channel='#mychan';
$allowedgroup='5';

//END Config.


function irc_notify($poster,$postid,$threadid) {
	global $thread_url,$egg_host,$egg_port,$egg_pass,$channel,$db,$n,$allowedgroup;
	$thread=$db->query_first("SELECT a.prefix, a.topic, b.title, a.boardid FROM bb{$n}_threads a, bb{$n}_boards b WHERE a.boardid=b.boardid AND a.threadid={$threadid}");
	$perm=$db->query_first("SELECT can_view_board FROM bb{$n}_permissions WHERE boardid={$thread[boardid]} AND groupid={$allowedgroup}");
	$trans=array_flip(get_html_translation_table(HTML_ENTITIES));
	$boardname=strtr($thread['title'],$trans);
        $prefixname=($thread['prefix'] != '') ? '['.strtr($thread['prefix'],$trans).'] ' : '';
	$threadname=strtr($thread['topic'],$trans);
	if ($perm['can_view_board']==1) {
		if ($fp=@fsockopen($egg_host,$egg_port,$errno,$errstr,20)) {
			fputs($fp,$egg_pass."\r\n");
			fputs($fp,"PRIVMSG $channel :Neuer Post von \037$poster\037: ");
			fputs($fp,"$thread_url?postid=$postid#post$postid ");
			fputs($fp,"\002Forum\002: $boardname ");
			fputs($fp,"\002Thread\002: $prefixname$threadname\r\n");
			fclose($fp);
		}
	}
}

?>



Geschrieben von splatterman am 09.10.2005 um 15:48:

 

Hallo,
auf der Suche, nach einem Script was die neuesten Beiträge aus einem Board auslesen kann und dann im IRC postet, bin ich auf diesen Thread hier gestoßen.

Nur habe ich ein paar Fragen dazu:
1. So wie ich es verstanden habe ist hier der Egg und das Board auf einem Server. Funktioniert das auch wenn der Eggdrop auf einem anderen Server liegt?
Wo und was müßte man dann ändern?

2. Mit welcher WBB-Version funktioniert die Ausgabe? Mit jeder oder nur bestimmten?

Vielen Dank schonmal für eure Infos.

MFG
Splatterman


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH