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 HarryP am 03.03.2003 um 16:32:

 

Hallo!!!

Also nachdem ich mir hier lokal einen Webserver und php installiert habe läuft der Bot einwanfrei....

Aber das dumme Biest mit den gleichen Datein bei Hosteurope zum laufen zu bringen ....schaf ich leider net....

Hosteurope behauptet zwar keine ports geblockt zu haben aber sobald ich

php:
1:
irc_notify($wbbuserdata['username'],$postid,$threadid);


eintrage kommt es zu einer merkwürdigen Fehlermeldung....die meiner meinung nach noch nicht mal was mit Hack zu tun hat sie lautet:
Database error in WoltLab Burning Board: Invalid SQL: SELECT wordid, word FROM bb3_wordlist WHERE word IN ('ccc','ccc')
mysql error: Lost connection to MySQL server during query
mysql error number: 2013
Date: 03.03.2003 @ 16:34
Script: /forum/newthread.php
Referer: http://www.kalinowskidesign.de/forum/newthread.php?boardid=103&sid=

Werde demnächst es noch mal auf einem frischen Board ....wo noch absolut kein anderer Hack eingebaut ist.....

Sollte trotzdem jemand eine Idee dazuhaben ....bin ich dafür dankbar...

MFG
HarryP



Geschrieben von Compuholic am 05.03.2003 um 22:25:

 

Ich hätte auch noch mal eine Frage bezüglich des Eggdrop Moduls. Ich habe mir den Code mal genauer angeschaut. Leider bin ich noch nicht dazugekommen programmiertechnisch auf Linux umzusteigen. Deshalb bin ich immer noch ein Winsock-User.

Wenn mir jemand vielleicht mal erklären könnte, was fd_sets eigentlich sind. Ich glaube ich habe das zumindest ansatzweise verstanden (google sei Dank). Aber wo ich absolut noch nicht durchsteige ist select(). Ich habe noch nie mit Synchronous I/O gearbeitet. Vielleicht wäre eine kurze Beschreibung was die Funktion "readline" eigentlich im Detail macht hilfreich.

Mein Hauptproblem liegt hier:
if (select(fd+1,&rfds,NULL,NULL,&tv)<1) { i=-1; break; }
außerdem verstehe ich nicht ganz, was die while-Schleife hier soll.

Danke



Geschrieben von Zirias am 06.03.2003 um 15:19:

 

select() ist eine der kompliziertesten Funktionen smile Im Grunde übergibt man ihr ein Set von filedeskriptoren zum lesen und/oder eines zum schreiben (fd_set) und die Funktion gibt einem davon den nächsten zurück, der bereit wird. Für das ganze kann man ein Timeout angeben.
Meine readline()-Funktion tut nichts weiter, als eine komplette Zeile (terminiert mit \n oder \r\n) vom Socket einzulesen und das zeichenweise.

Weitere Infos in der sehr sehr komplizierten manpage Augenzwinkern
http://www.mcsr.olemiss.edu/cgi-bin/man-cgi?select+2

PS: In readline() verwende ich select nur mit einem einzigen filedeskriptor zum lesen, wenn also select() einen wert >0 zurückliefert weiß ich schon, dass auf genau diesem Deskriptor Daten warten. die von dir zitierte Anweisung implementiert also nur einen Timeout, wenn nicht innerhalb von (... ich glaub eine Sekunde hatte ich genommen oder eine halbe ...) weitere Daten ankommen, wird mit einem Fehler abgebrochen und der Socket wieder geschlossen. Das verhindert erstens, dass der Bot "einfrieren" kann und zweitens, dass jemand es allzuleicht hab, von hand Passwörter zu raten smile



Geschrieben von Compuholic am 06.03.2003 um 20:35:

 

Da gibt es nur ein paar Sachen, die ich nicht verstehe:

1. fd_set ist also eine Ansammlung von Bits, von denen jedes einen Socket repräsentiert. sizeof(fd_set) ist 128 Bytes. Das entspricht 1024 Bits oder Sockets. Der Geltungsbereich von int ist aber wesentlich größer. Es können also nicht alle möglichen Socketdeskriptoren von der Bitmaske abgedeckt werden. Irgendwas muß ich also falsch verstanden haben.

2. fd wird mit dem Socketdeskriptor initialisiert, der von accept zurückgegeben wird. Man kann also sagen, das fd ein Handle für den Socket enthält. Was wird denn der Funktion select() übergeben? Soll das die Obergrenze darstellen, bis zu der die Funktion die Bereitschaft prüfen soll?



Geschrieben von Zirias am 06.03.2003 um 20:45:

 

Was fd_set intern ist kann dir egal sein, betrachte es als einen ADT, er ist ja in header-files definiert und es gibt Makros zur Verwaltung.

Und mit der Obergrenze liegst du richtig, siehe manpage.



Geschrieben von HarryP am 04.04.2003 um 09:21:

  Hallo!!

Da bin ich auch mal wieder.....Nachdem der Bot auf meiner HP schon länger läuft mögen ihn die Leute nicht mehr so recht ...., weil bei über 250 postings am tag es doch schon zeitweise nervt....!!!
Anderseite will man auch nicht drauf verzichten

Daher liegt jetzt der wunsch nahe das der Bot diese Info´s nur im query ausgibt.....ist sowas möglich oder gibt es irgendwo schon ein ähnliches Modul was man anpassen kann ???

Auch über links zu Infos würde ich mich schon freun....

MFG
HarryP



Geschrieben von Zirias am 04.04.2003 um 12:04:

 

Query wäre umständlich, da müsste sich der Bot eine Liste aller Leute führen, die das habenn wollen. Genau dafür hat man ja eigentlich die Channels erfunden smile
Erstelle einfach einen zweiten Channel, wer die neuen Posts lesen will, geht da rein, und gut ist smile

Greets, Ziri



Geschrieben von HarryP am 04.04.2003 um 23:27:

 

ja, stimmt im grunde bleibt sich das gleich 8)
MFG



Geschrieben von Junkee am 29.07.2003 um 21:29:

 

super script

kann mir jemand sagen wie es für die wbb2.1 ist ? also wie da die Dateien modifiziert werden müssen?

wäre über Hilfe Dankbar

Gruß

Junkee



Geschrieben von DSD am 03.08.2003 um 06:27:

 

hi!
wie kann man den bot in 2 channels benutzen?
also ich habe meine einzelnen forenids mit if tags so belegt das halt bestimmte prefixe ausgegeben werden per boardid halt!
nun will ich aber das interne zeugs fuer admins etc im admin channel haben aber wie kann man das einbaun? vlt ne 2te irc.noftify.php? ich wäre über hilfe sehr dankbar



Geschrieben von LX am 03.08.2003 um 11:35:

Achtung

Entweder das, oder du fragst eben am Anfang des Scripts die Foren-ID ab und wenn die von einem Admin-Forum ist, dann lässt du die $channel-Variable anpassen.



Geschrieben von DSD am 03.08.2003 um 12:02:

 

die foren variable ist abgefragt da ich ja fuer andere foren nen $prefix benutze aber ich möchte genauer wissn wie ich das anstellensoll mit dem 2ten chan unglücklich



Geschrieben von LX am 03.08.2003 um 12:11:

Achtung

php:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
//Config:

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

if ($forenvariable == "bestimmter Wert")
  $channel="#adminchannel";
else
  $channel="#normalerchannel";

//END Config.



Geschrieben von DSD am 03.08.2003 um 14:15:

 

so kommt nix in den chan weder in den admin noch in den crew chan

hab das so gemacht:
if ($forenvariable == "1")
$channel="#adminchannel";
else
$channel="#normalerchannel";

unten dann:
if ($thread[boardid]==36) $prefix="New crew Stuff" && $forenvariable == "1";

ja boardid wird abgefragt



*help*



Geschrieben von Compuholic am 09.08.2003 um 11:49:

 

So, nach längerer Arbeit hab ich es jetzt endlich hinbekommen das Modul von Zirias zu erweitern. Neue Features:

Zu den Arbeitsmodi muß ich noch etwas erklären. Es gibt einmal den Transparent-Mode und den Private-Mode. Der Transparent-Mode arbeitet praktisch identisch wie das alte Modul. Eine Nachricht wird einfach an einen angegeben Channel gesendet. Der Private-Mode kommt ohne einen extra Channel aus. Befindet sich das Modul in diesem Modus, werden alle Nachrichten über Query an die Benutzer verteilt, die sich für diesen Newsletter angemeldet haben.

Für das Kompilieren gelten die gleichen Anweisungen, die Zirias im schon angegeben hat. Einzige Änderung gegenüber dem Original: Der Board-Hack muß so angepasst werden, daß er nur die Nachricht selbst übergibt und keine IRC-Protokolldaten.

Ich denke zwar, daß ich alle internen Puffer des Moduls abgesichert habe, so daß niemand einen Bufferoverflow zustande bringt, aber man kann ja immer mal etwas übersehen haben. Ich übernehme keine Verantwortung für evtl. Schäden die durch den Einsatz dieses Modul entstehen. Daher ist die Benutzung auf eigene Gefahr.

Wen das nicht abschreckt: Viel Spaß damit...
Download

[edit]
Ach ja, fast hätte ich's vergessen. Die Konfigurationsdatei ist standardmäßig im Eggdrop-Verzeichnis und heißt "mod_notify.conf". Das Verzeichnis und der Name kann aber auch geändert werden indem man die entsprechenden #define-Anweisungen im Source ändert. Die Konfigurationsdatei ist folgendermaßen aufgebaut (Groß- und Kleinschreibung wird unterschieden, jede Zeile ist mit ENTER abzuschliessen):
Zitat:

Port 12345
Password abcdef
Mode transparent
Channel #bb-announce
GrantOp Compuholic
GrantOp LX

  1. Port: Port auf dem der Bot auf Daten vom Board-Hack wartet
  2. Passwort: Passwort mit dem der Port gegen unbefugte Nutzung gesichert ist
  3. Channel: Name des Channel in den im Transparent-Mode die Daten gepostet werden (wird ignoriert, wenn der Private-Mode aktiviert ist)
  4. GrantOp: Hier kann man einzelnen Benutzern Operator-Rechte geben. Für jeden Benutzer ist eine neue GrantOp-Zeile erforderlich.

Die Kommandos sind wie folgt definiert:
  1. /msg <Botname> subscribe : Trägt einen für den Newsletter ein
  2. /msg <Botname> unsubscribe : Löscht einen von der Liste für den Newsletter
  3. !notify_status : Gibt des Status des Moduls aus (nur für Admins)
  4. !notify_off : Unterdrückt das Anzeigen neuer Nachrichten (nur für Admins)
  5. !notify_on : Aktiviert das Modul wieder. Alle Einträge für den Newsletter werden gelöscht und die Konfigurationsdatei neu eingelesen. (nur für Admins)
  6. !notify_channel #channel : Setzt den Ausgabe-Channel für den Transparent-Mode (nur für Admins)
  7. !notify_mode <transparent | private> : Setzt den Modus den Bots entsprechend dem Argument. (nur für Admins)



Geschrieben von Skywalker am 19.08.2003 um 14:56:

 

Hallo

Super das du/ihr hier das zusammengetragen habt
aber mein eigentliches Problem is,wo bekomme ich einen solchen Eggdrop/Bot her usw..

Sorry für die Frage,aber ich blick da net so ganz durch & vielleicht is hier jemand dabei,der mir ein bisschen helfen kann auf diesem Gebiet

Danke euch

Greetz



Geschrieben von Compuholic am 19.08.2003 um 17:19:

 

Download für Eggdrop: www.eggheads.org
Um gleich weiteren Fragen vorzubeugen: Eggdrop ist für *NIX Systeme geschrieben worden. Es gibt zwar ein Windows-Version (heißt Windrop), allerdings weiß ich nicht ob der Windrop auch mit normalen Eggdrop-Modulen auskommt und ob das Modul in dieser Form darauf lauffähig ist.

Vielleit sollte ich noch ein paar Worte zur GrantOp Option verlieren. Es findet keinerlei Identitätsprüfung statt. Wenn jemand dem Channel joint, der den gleichen Nick hat, wie jemand, der auf der Operatorliste steht, hat er alle Rechte über das Modul.

Das Problem besteht zwar generell im IRC, aber es trotzdem nochmal darauf hingewiesen. Vielleicht baut ja auch noch jemand eine Option ein, mit der man die Befehle mit einem Passwort schützen kann oder sich die Ops erst identifizieren müssen.



Geschrieben von Skywalker am 20.08.2003 um 20:04:

 

Danke

aber ich hab mal nachgeschaut,den gezuppelt,aber weiter weiss ich auch net ... weil ich absolut net durchblicke

zumal,am Anfang den Ordner gibts net usw...( der User der den 1.Post gemacht hat ) aber wie gesagt,Blicke net durch

Weiss ja net,aber vll hilft mir wieder jemand von euch dabei

Danke



Geschrieben von FidelCastro am 23.10.2003 um 23:07:

 

hab ein problem beim compilen:

code:
1:
2:
3:
4:
5:
6:
7:
8:
cp: Aufruf von stat für »./remote.mod/Makefile« nicht möglich: Datei oder Verzeichnis nicht gefunden
make[2]: Entering directory `/home/FidelCastro/eggedk/src/mod/remote.mod'
make[2]: *** Keine Regel, um »modules« zu erstellen.  Schluss.
make[2]: Leaving directory `/home/FidelCastro/eggedk/src/mod/remote.mod'
make[1]: *** [remote.mod_so] Fehler 2
make[1]: Leaving directory `/home/FidelCastro/eggedk/src/mod'
make: *** [modules] Fehler 2
FidelCastro@FidelCastro:~/eggedk>



wäre über jede hilfe dankbar



Geschrieben von LX am 24.10.2003 um 00:33:

Achtung

Datei korrekt erstellt? Groß-/Kleinschreibung beachtet? TABs statt 8 Spaces in der Source des Makefiles verwendet?


Forensoftware: Burning Board 2.3.6, entwickelt von WoltLab GmbH