phpBB3 Forum mit Hilfe eines TCL-Scripts auslesen. Eggdrop!

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Benutzeravatar
h32Lg
Mitglied
Beiträge: 324
Registriert: 04.04.2008 11:05
Wohnort: Bayern
Kontaktdaten:

phpBB3 Forum mit Hilfe eines TCL-Scripts auslesen. Eggdrop!

Beitrag von h32Lg »

Hi, hat von euch einer die Möglichkeit gefunden ein phpbb3 Forum auszulesen um die aktuellsten, bzw den neuesten Beitrag in einem IRC-Channel zu posten?

greets h32Lg 8)
Moralisten sind Leute, die sich dort kratzen wo es andere juckt!
Legt euer Geld in Alkohol an! Wo sonst gibt es mehr als 40% ;-)
Besucht doch auch mal http://www.mircscriptz.de wenn ihr euch für IRC und mIRC-Addons interessiert!
fragz
Mitglied
Beiträge: 204
Registriert: 23.10.2006 12:52
Kontaktdaten:

Beitrag von fragz »

Ja sicher,

Öffne functions_posting.php und finde

Code: Alles auswählen

unset($sql_data[TOPICS_TABLE]['sql']);
	}

	// Submit new post
	if ($post_mode == 'post' || $post_mode == 'reply')
	{
darunter einfügen

Code: Alles auswählen

// Begin Post to IRC       
            if ($data['forum_id'] != 14)
            {
                $irc_msg = "Neuster Post :: http://www.howtoarchiv.net/viewtopic.php?=".$data['forum_id']."&t=".$data['topic_id']." : posted by " .$user->data['username']. " um ".date('H:i:s'). "\n";
                $forumfile = fopen("./newthread.dat", "a");
                fputs($forumfile, $irc_msg);
                fclose($forumfile);
            }
            // END Post to IRC 
Die 14 ist die Foren ID des Forums woraus er nix posten soll. Bei mehreren Foren durch komma trennen. Die Url natürlich auch anpassen.

Hier das tcl script

Code: Alles auswählen

utimer 2 newthreads

    proc newthreads { } {
    set forumfile [open /var/www/virtual/howtoarchiv.net/htdocs/newthread.dat r]
    while {![eof $forumfile]} {
    gets $forumfile lalala
    if {$lalala != ""} { puthelp "PRIVMSG #HowToArchiv :$lalala!" }
    }
    close $forumfile
    set forumfile [open /var/www/virtual/howtoarchiv.net/htdocs/newthread.dat w]
    puts $forumfile ""
    close $forumfile
    utimer 2 newthreads
    } 
Im Root Ordner deines Forums eine newthread.dat erstellen und die rechte 777 geben. Bei

Code: Alles auswählen

if {$lalala != ""} { puthelp "PRIVMSG #HowToArchiv :$lalala!" }
deinen Channel angeben und bei

Code: Alles auswählen

 set forumfile [open /var/www/virtual/howtoarchiv.net/htdocs/newthread.dat r]
natürlich den absoluten pfad zur newthread.dat angeben
Benutzeravatar
h32Lg
Mitglied
Beiträge: 324
Registriert: 04.04.2008 11:05
Wohnort: Bayern
Kontaktdaten:

Beitrag von h32Lg »

Ui, des ging aber schnell :D :D

Was, wenn jetzt das Forum nicht von mir moderiert wird, ich keine Rechte hab etwas zu ändern und einfach so auslesen möchte? :wink:

greets h32Lg 8)
Moralisten sind Leute, die sich dort kratzen wo es andere juckt!
Legt euer Geld in Alkohol an! Wo sonst gibt es mehr als 40% ;-)
Besucht doch auch mal http://www.mircscriptz.de wenn ihr euch für IRC und mIRC-Addons interessiert!
fragz
Mitglied
Beiträge: 204
Registriert: 23.10.2006 12:52
Kontaktdaten:

Beitrag von fragz »

Das geht nicht.
Du musst zumindest entweder direkt in eine Datei schreiben lassen oder über umwege direkt aus der Datenbank auslesen wofür du vollen Zugriff auf das Forum und den Eggi haben musst
Benutzeravatar
h32Lg
Mitglied
Beiträge: 324
Registriert: 04.04.2008 11:05
Wohnort: Bayern
Kontaktdaten:

Beitrag von h32Lg »

Also eggy ja, aber wäre es nicht möglich unter aktive Themen oder neue Beiträge dann einen vergleich zu machen ob was neues vorliegt, wenn ja dann posten?

greets h32Lg 8)
Moralisten sind Leute, die sich dort kratzen wo es andere juckt!
Legt euer Geld in Alkohol an! Wo sonst gibt es mehr als 40% ;-)
Besucht doch auch mal http://www.mircscriptz.de wenn ihr euch für IRC und mIRC-Addons interessiert!
fragz
Mitglied
Beiträge: 204
Registriert: 23.10.2006 12:52
Kontaktdaten:

Beitrag von fragz »

Ne, so Intelligent ist der Eggi noch nicht das er selber weiss was neue Themen oder Post sind
Benutzeravatar
h32Lg
Mitglied
Beiträge: 324
Registriert: 04.04.2008 11:05
Wohnort: Bayern
Kontaktdaten:

Beitrag von h32Lg »

Wäre es denn möglich dass der Eggy dann ein PHP-Script aufruft, welches das ganze abhandelt und in einer Datei speichert welche der Eggy dann auslesen kann, wenn sich was geändert hat ?

greets h32Lg 8)
Moralisten sind Leute, die sich dort kratzen wo es andere juckt!
Legt euer Geld in Alkohol an! Wo sonst gibt es mehr als 40% ;-)
Besucht doch auch mal http://www.mircscriptz.de wenn ihr euch für IRC und mIRC-Addons interessiert!
fragz
Mitglied
Beiträge: 204
Registriert: 23.10.2006 12:52
Kontaktdaten:

Beitrag von fragz »

Jep, siehe meinen ersten Post, das php script postet in eine Datei und der eggi ruft es ab.

Um es direkt über ein php Script zu machen brauchst du auch wieder Zugriff auf die Datenbank.

Wie schon gesagt, vollen Zugriff auf das Forum muss vorhanden sein
Benutzeravatar
h32Lg
Mitglied
Beiträge: 324
Registriert: 04.04.2008 11:05
Wohnort: Bayern
Kontaktdaten:

Beitrag von h32Lg »

Neeee, ich meinte ein komplett eigenes PHP Script auf meinem Server (php -a script.php) so in der Richtung aufrufbar durch den Eggdrop ...

und der prüft nur via Timer wie du schon geschrieben hast ob sich was in der .dat geändert hat.

greets h32Lg 8)
Moralisten sind Leute, die sich dort kratzen wo es andere juckt!
Legt euer Geld in Alkohol an! Wo sonst gibt es mehr als 40% ;-)
Besucht doch auch mal http://www.mircscriptz.de wenn ihr euch für IRC und mIRC-Addons interessiert!
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag von gn#36 »

Theoretisch möglich, schließlich kommt dein Browser ja auch an die Daten ran...
Würde ich allerdings an deiner Stelle zumindest mit dem Admin des Forums absprechen, immerhin willst du fremde Inhalte nutzen und da brauchst du zumindest ein Nutzungsrecht.

Ich habe jetzt keine Zeit da ein Skript für zu schreiben, aber das grobe Vorgehen wäre so:
  • Themenseite auslesen (per [php:file] o.ä.)
  • per [php:preg_match] oder [php:preg_match_all] die Thementitel und Links herausfiltern (um die HTML Formatierung immer identisch hinzukriegen muss man natürlich immer die gleichen HTML Formatierungsbefehle jeweils davor haben die kann man zur Extrahierung benutzen, schließlich ist prosilver XHTML Strict).
  • Mit einer alten Liste vom letzten Besuch vergleichen
  • Wenn nicht drauf, dann posten
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Antworten

Zurück zu „Coding & Technik“