Frank Schönmann: Quasi-Offline-Reader fürs Forum

hi!

Falls ihr Perl habt und das Forum offline lesen wollt, könnt ihr mal das folgende Skript ausprobieren, das ich geschrieben habe: http://top.tower.de/selfhtml/selfget.zip
Ihr braucht dafür die Module LWP und HTML, die es irgendwo im CPAN (http://www.perl.com/CPAN) zu finden gibt.

Installation:

  • auspacken und benötigte Module installieren
  • Wert in der Datei msg.num auf die Nachrichten-# setzen, ab der die Nachrichten geholt werden sollen
  • selfget.pl starten

Danach findet ihr die Forumsübersicht in der Datei self_forum.html. Alle Links sollten so angepasst sein, dass sie funktionieren. Nur zum Absenden von Nachrichten müsst ihr noch online gehen.

Falls jemand was damit anfangen kann würde ich mich über eine Mitteilung freuen :-)

bye, Frank!

  1. Hallo Frank,

    eine ganz ganz tolle Sache, aber es gab ein paar Fehlermeldungen. Das SCR wollte erst starten nachdem ich die Zeilen 54 und 55 auskommentierte. Es sind dann jede Menge Dateien auf meinem Rechner gelandet ab 10671 bis 11276 exakt 606 Dateien ad Zahl. Aber es sind sehr sehr viele leer geblieben.

    Viele Grüße, Rolf

    PS:
    Einige der eingefangenen Fehlermeldungen:

    Use of uninitialized value at selfget.pl line 86.
    Use of uninitialized value at selfget.pl line 87.
    Use of uninitialized value at selfget.pl line 90.
    ####Use of uninitialized value at selfget.pl line 82.
    Use of uninitialized value at selfget.pl line 83.
    Use of uninitialized value at selfget.pl line 84.
    Use of uninitialized value at selfget.pl line 85.
    Use of uninitialized value at selfget.pl line 86.
    Use of uninitialized value at selfget.pl line 87.
    Use of uninitialized value at selfget.pl line 90.
    ####Use of uninitialized value at selfget.pl line 82.
    ... hier wiederholt sich das.

    1. hi!

      eine ganz ganz tolle Sache, aber es gab ein paar Fehlermeldungen. Das SCR wollte erst
      starten nachdem ich die Zeilen 54 und 55 auskommentierte. Es sind dann jede Menge
      Dateien auf meinem Rechner gelandet ab 10671 bis 11276 exakt 606 Dateien ad Zahl. Aber
      es sind sehr sehr viele leer geblieben.

      Tut mir leid wegen den Fehlermeldungen. Ich hatte in den beiden Zeilen leider je ein Zeichen falsch gesetzt. Ist aber mittlerweile behoben und unter der gleichen URL liegt die aktualisierte Version. Man sollte halt seine Skripts selbst nach kleinsten Veränderungen nochmal testen ;))

      Dass manche Dateien leer bleiben liegt daran, dass zwischen 10671 und 11276 einige Nachrichten gar nicht mehr auf dem teamone-Server liegen - vom Schwanzabschneider archiviert. Daran kann mein Skript nichts ändern. Wenn du es aber nicht abgestellt hast, werden auch die leeren Dateien mit der Zeit gelöscht, theoretisch schon beim zweiten Durchlauf.

      bye, Frank!

  2. Hallo Frank

    Ein offline-Reader fuer so ein Forum ist - mal abgesehen von Entwicklungen, die hoffentlich bald eintreten werden und so etwas wie "Offline" ueberfluessig machen werden <g> - auf jeden Fall eine sinnvolle Sache.
    Ich glaube allerdings, dass den meisten Usern ein nacktes Perl-Script doch zu kryptisch ist. Was ich z.B. nicht auf Anhieb kapiert habe ist, wo die neuen Message-Files eigentlich lokal abgelegt werden.
    Vielleicht waere es besser, es als CGI umzuschreiben (erfordert nicht so viel mehr Aufwand, eigentlich nur ein schoenes HTML-Formular mit transparenter Oberflache als Input drumerhum - vielleicht sogar gleich mit Forumslayout - statt globaler Variablen im fremden Script, die man anpassen muss). Web-Server und Perl braucht man dann zwar immer noch, aber man haette eine bequeme Oberflaeche (bzw. das gleiche Programm offen, mit dem man hinterher auch die neuen Nachrichen lesen kann).
    Ausserdem solltest Du die Module, die man noch braucht, am besten direkt verlinken, nicht ungefaehr. Nur was idiotensicher ist, funktioniert <g>.
    Ansonsten aber noch mal vielen Dank fuer die Muehe und alle Achtung vor der Idee!

    viele Gruesse
      Stefan Muenz

    1. Hallo Stefan

      Ein offline-Reader fuer so ein Forum ist - mal abgesehen von Entwicklungen, die hoffentlich bald eintreten werden und so etwas wie "Offline" ueberfluessig machen werden <g> - auf jeden Fall eine sinnvolle Sache.

      Darf man fragen wie du das meinst? Ich hoffe du beziehst dich auf Internet aus der Steckdose (siehe weiter unten)..... Gibt es ein leben ohne Selfaktuell - Forum??? Ich glaube nein :)

      CU
      rufinus

      1. Hallo Rufinus

        Darf man fragen wie du das meinst? Ich hoffe du beziehst dich auf Internet aus der Steckdose (siehe weiter unten)..... Gibt es ein leben ohne Selfaktuell - Forum??? Ich glaube nein :)

        Ich meine es ganz im Sinne von <t02404.htm#a11227>. Ich hab Offline-Reader noch nie besonders gemocht, obwohl ich einsehe, dass es fuer viele Leute angesichts der heutigen Online-Kosten kaum eine andere Moeglichkeit gibt, regelmaessig aktiv am Netzleben teilzunehmen. Eben das regt mich aber so auf: warum muessen Normalverdiener zu solchen Kruecken wie Offline-Readern greifen, um am Online-Leben teilnehmen zu koennen? Leider unterstuetzt jeder, der einen Offline-Reader benutzt, den Status Quo. Es kommt aber darauf an, diesen Status Quo zu veraendern. Online muss der Normalzustand werden!

        Was das Forum betrifft, brauchst du keine Herzrhythmusstoerungen zu kriegen - da stehe ich wieder voll dahinter, und einzelne Ausrutscher kann ich wieder gut vertragen :-)

        viele Gruesse
          Stefan Muenz

    2. hi!

      Ich glaube allerdings, dass den meisten Usern ein nacktes Perl-Script doch zu kryptisch ist.

      In Perl geht es für mich am schnellsten zu programmieren. Leider gibt es für Perl keinen Compiler, bzw. keinen vernünftigen, um es als direkt ausführbare Datei anzubieten :((
      Immerhin ist es bereits soweit vorbereitet, dass es ohne jede Änderung laufen sollte, sobald man es installiert hat - wenn die benötigten Module vorhanden sind.

      Was ich z.B. nicht auf Anhieb kapiert habe ist, wo die neuen Message-Files eigentlich lokal
      abgelegt werden.

      for ($i = $no; $i <= $upto; $i++)
      {
        my $content = get $path."self_forum/$i.html";
        ...
        open FILE, ">self_forum/$i.html";
        print FILE $content;
        close FILE;
      }

      Vielleicht waere es besser, es als CGI umzuschreiben (erfordert nicht so viel mehr Aufwand,
      eigentlich nur ein schoenes HTML-Formular mit transparenter Oberflache als Input
      drumerhum - vielleicht sogar gleich mit Forumslayout - statt globaler Variablen im fremden
      Script, die man anpassen muss).

      Ich weiß nicht genau, was du meinst. Eigentlich benötigt das Skript keine Oberfläche. Und wenn man mit den Standard-Einstellungen zufrieden ist, muss man auch nichts anpassen.
      Würde ich es als CGI-Skript umschreiben, bräuchte man einen Webserver. Das ist so wie es jetzt ist nicht nötig. Der Perl-Interpreter genügt.

      Ausserdem solltest Du die Module, die man noch braucht, am besten direkt verlinken, nicht
      ungefaehr. Nur was idiotensicher ist, funktioniert <g>.

      Theoretisch müsste ich das LWP::Simple-Modul mitliefern können. Ich weiß zwar nicht, was du mit "direkt verlinken" meinst, aber ich hoffe, das was ich denke ;))
      Vielleicht kann ich auch aus dem Modul den benötigten Code rauskopieren, falls nichts kompiliertes dabei sein muss.

      Wie man es sonst vereinfachen könnte, weiß ich leider nicht. Vielleicht habe ich bei einigen von deinen Vorschlägen nicht verstanden, wie du sie gemeint hast. Falls ich was falsch verstanden habe, kannst du vielleicht nochmal genauer drauf eingehen?

      bye, Frank!

      1. Hallo Frank,

        Was ich z.B. nicht auf Anhieb kapiert habe ist, wo die neuen Message-Files eigentlich lokal
        abgelegt werden.

        for ($i = $no; $i <= $upto; $i++)
        {
          my $content = get $path."self_forum/$i.html";
          ...
          open FILE, ">self_forum/$i.html";
          print FILE $content;
          close FILE;
        }

        Also, <zitat>open FILE, ">self_forum/$i.html";</zitat> setzt meinem Verstaendnis nach einfach voraus, dass sich unterhalb des Verzeichnisses, in dem sich das Perl-Script befindet, das Verzeichnis mit den Forums-Messages befinden soll. Will heissen, der User legt am besten ordentlich parallel zum SELFHTML-Verzeichnis auf gleicher Ebene ein Verzeichnis "selfaktuell" an, und unterhalb davon ein Verzeichnis "self_forum" (eben so wie hier auf dem Server). Dein Perl-Script installiert er dann in "selfaktuell".
        Das mag fuer Dich jetzt trivial sein, aber wenn Du ein Interesse hast, dass es andere, die nicht gerade Cheatah oder Rufinus heissen, auch verwenden wollen, muessen solche Sachen einfach klipp und klar sein.

        Ich weiß nicht genau, was du meinst. Eigentlich benötigt das Skript keine Oberfläche. Und wenn man mit den Standard-Einstellungen zufrieden ist, muss man auch nichts anpassen.
        Würde ich es als CGI-Skript umschreiben, bräuchte man einen Webserver. Das ist so wie es jetzt ist nicht nötig. Der Perl-Interpreter genügt.

        Ja, das stimmt natuerlich. Aber glaubst du im Ernst, es gibt hier jemanden, der Perl installiert hat, aber keinen Web-Server? Die Leute, die sich mit solchem Zeugs hier befassen, brauchen ja zuerst mal einen Web-Server, um die CGI-Schnittstelle zu haben, um die sich alles dreht, und dann brauchen sie eben ausserdem noch Perl, sinnvollerweise zumindest.

        Theoretisch müsste ich das LWP::Simple-Modul mitliefern können. Ich weiß zwar nicht, was du mit "direkt verlinken" meinst, aber ich hoffe, das was ich denke ;))
        Vielleicht kann ich auch aus dem Modul den benötigten Code rauskopieren, falls nichts kompiliertes dabei sein muss.

        Wie auch immer: geh einfach davon aus: entweder bei dem, was Du zum Download anbietest, geht alles von allein, oder du weist an einer gut sichtbaren Readme-Stelle darauf hin, dass man genau da und dorthin gehen muss, um die benoetigten Zusatzmodule zu erhalten.

        Ich will nur, dass Dein Offline-Reader ein Erfolg wird, ganz ehrlich!

        viele Gruesse
          Stefan Muenz

        1. hi!

          Also, <zitat>open FILE, ">self_forum/$i.html";</zitat> setzt meinem Verstaendnis nach
          einfach voraus, dass sich unterhalb des Verzeichnisses, in dem sich das Perl-Script
          befindet, das Verzeichnis mit den Forums-Messages befinden soll. Will heissen, der User
          legt am besten ordentlich parallel zum SELFHTML-Verzeichnis auf gleicher Ebene ein
          Verzeichnis "selfaktuell" an, und unterhalb davon ein Verzeichnis "self_forum" (eben so wie
          hier auf dem Server). Dein Perl-Script installiert er dann in "selfaktuell".

          Dem Skript ist es letztlich gleichgültig, in welchem Verzeichnis es liegt. Es braucht nur unterhalb seines Verzeichnisses ein Verzeichnis "self_forum/", in dem die Beiträge abgelegt werden können.
          Da dieses Verzeichnis beim Entpacken des ZIP-Archivs automatisch angelegt wird, emfpand ich es nicht unbedingt als notwendig, gesondert darauf hinzuweisen.

          Würde ich es als CGI-Skript umschreiben, bräuchte man einen Webserver. Das ist so wie
          es jetzt ist nicht nötig. Der Perl-Interpreter genügt.
          Ja, das stimmt natuerlich. Aber glaubst du im Ernst, es gibt hier jemanden, der Perl
          installiert hat, aber keinen Web-Server? Die Leute, die sich mit solchem Zeugs hier
          befassen, brauchen ja zuerst mal einen Web-Server, um die CGI-Schnittstelle zu haben, um
          die sich alles dreht, und dann brauchen sie eben ausserdem noch Perl, sinnvollerweise
          zumindest.

          Ich programmiere in Perl auch nicht nur CGI-Skripts, sondern auch für andere Gelegenheiten. Aber du hast natürlich recht ;)) Trotzdem weiß ich nicht, wofür ich ein CGI-Skript daraus machen sollte, das eine HTML-Oberfläche besitzt. Da man nichts einstellen kann/muss, sondern es einfach aufruft, ist es so doch viel einfacher (zb. als Verknüpfung auf dem Desktop).

          Aber eine Möglichkeit, einen Webserver damit zu verwenden ist mir doch eingefallen: ich könnte dann eine Funktion zum Offline-Schreiben von Nachrichten einbauen. Die geschriebenen Nachrichten werden dann offline in einer Datei gespeichert und auf Anforderung später verschickt.

          [Benötigte Module]

          Wie auch immer: geh einfach davon aus: entweder bei dem, was Du zum Download
          anbietest, geht alles von allein, oder du weist an einer gut sichtbaren Readme-Stelle darauf
          hin, dass man genau da und dorthin gehen muss, um die benoetigten Zusatzmodule zu
          erhalten.

          Ich werde sehen, was ich tun kann. Morgen vielleicht.

          Ich will nur, dass Dein Offline-Reader ein Erfolg wird, ganz ehrlich!

          Man muss das Skript nichtmal unbedingt als Offline-Reader verwenden. Theoretisch müsste man es auch als Tool verwenden können, um das SELFHTML-Forum zu spiegeln. Wenn du einen Mirror findest, der auch verwendet wird, vielleicht kannst du dann teamone.de etwas entlasten ;))

          bye, Frank!