ePub2Go zum Selbermachen

Bitte melden Sie sich hier, wenn Sie eine ePub-Datei mit fehlerhaften oder fehlenden Inhalten gefunden haben. (http://epub.furtmeier.it)
Antworten
Support
Administrator
Beiträge: 2710
Registriert: 24.Okt.2007, 23:59

ePub2Go zum Selbermachen

Beitrag von Support » 07.Nov.2010, 14:13

Hallo,

ich werde in Kürze ein Paket veröffentlichen, um ePubi selbst zu betreiben und zu verbessern.
Wer Interesse hat, meldet sich bitte hier.

Grüße
Rainer

Support
Administrator
Beiträge: 2710
Registriert: 24.Okt.2007, 23:59

Re: ePubi zum Selbermachen

Beitrag von Support » 08.Nov.2010, 13:52

Ok, das braucht ihr, um selbst ePubs zu erstellen:

Windows: Als Erstes muss XAMPP eingerichtet und gestartet werden.
Details zur Installation gibts hier: http://www.apachefriends.org/de/xampp-windows.html#1098
Am Ende müssen der Apache sowie die MySQL-Datenbank laufen.

Dann sollte das htdocs-Verzeichnis unterhalb der XAMPP-Installation geleert und anschließend die .zip-Datei darin entpackt werden.
Im Verzeichnis /ubiquitous/EPub befindet sich eine Datei tidy.exe, diese muss nach C:\ kopiert werden, damit sie gefunden wird.

Anschließend könnt ihr im Browser http://localhost aufrufen.
Es sollte eine Anmeldemaske erscheinen sowie die Meldung, dass ihr euch mit Admin//Admin anmelden könnt.
Wenn das klappt, müsst ihr auf "Installation" klicken und die Datenbankzugangsdaten bearbeiten.
Dazu genügt ein Klick auf den Stift in der vorhandenen Zeile. Die folgenden Daten müssten funktionieren:
  • Host: localhost
  • Benutzername: root
  • Passwort: leer lassen
  • Datenbank: test
Nach dem Speichern erscheinen auf der rechten Seite weitere
Zeilen.
In jeder Zeile bitte auf "Tabelle anlegen" klicken.
Anschließend muss im Benutzer-Reiter noch ein Benutzer ohne Admin-Rechte angelegt werden, mit dem könnt ihr euch nach dem Abmelden wieder anmelden.

Rechts oben erscheint dann ein Reiter "ePub".

Grüße
Rainer

Support
Administrator
Beiträge: 2710
Registriert: 24.Okt.2007, 23:59

Re: ePubi zum Selbermachen

Beitrag von Support » 08.Nov.2010, 14:21

Nun folgt noch eine Erklärung der wichtigsten Dateien.

Alles Interessante für die ePub-Erstellung findet sich im Unterverzeichnis ubiquitous/EPub:
  • ReadyEPubs: Hier werden die fertigen .epub Dateien sowie eine .lib-Datei abgelegt.
    Die .lib-Datei wird verwendet, um herauszufinden, ob das ePub bereits erzeugt wurde und beinhaltet den Dateinamen der .epub-Datei.
  • TempEPubs: Enthält die HTML- und CSS-Dateien, die zur .epub-Datei gepackt werden
  • EPub.class.php: Eine generelle Klasse für die Erzeugung beliebiger ePub-Dateien.
  • *.png: Symboldateien für die Oberfläche
  • gbSpiegelParserGUI.class.php: Diese Klasse lädt die Daten von gutenberg.spiegel.de, bearbeitet sie und erzeugt zusammen mit der Klasse EPub das ePub
  • iEPubParser.class.php: Unvollständige Interface-Klasse für die Implementierung mehrerer Parser. Z.B. noch zusätzlich für zeno.org
  • mEPubGUI.class.php: Wird für die Oberfläche benötigt, um alle Parser auswählen zu können, die das Interface iEPubParser implementieren.
  • plugin.xml: Das Framework braucht diese Datei, um das Plugin laden zu können (Symbole, Datenpfade, Klassen)
  • tidy.exe: Die Windows-Version der Anwendung HTMLTidy wird benötigt, um aus dem Quelltext des Buches von gutenberg.spiegel.de ordentliche XHTML-Daten zu erzeugen.
  • zip.exe: Wird verwendet, um die .epub-Datei zu packen.
Details zur Klasse EPub:
Die Klasse enthält zunächst einige Methoden, um die ePub-Informationen zu setzen:

Code: Alles auswählen

public function  __construct($author, $title);
public function addImage($url);
public function setISBN($isbn);
public function addChapter($chapterName);
public function addParagraph($content);
Die einzelnen Dateien werden dann von der Methode public function pubify(); im Verzeichnis TempEPubs angelegt und gepackt in ReadyEPubs abgelegt.
Dazu werden mehrere interne Methode verwendet:

Code: Alles auswählen

private function makeDirs(); //Erzeugt alle notwendigen Verzeichnisse unterhalb von TempEPubs und legt bereits generische .css und container.xml-Dateien an.
private function makeChapterFiles(); //Legt für jedes Kapitel eine eigene HTML-Datei unterhalb des content-Verzeichnisses (von makeDirs() erzeugt) ab
private function makeContentOpf(); //Erstellt die content.opf-Datei im content-Verzeichnis
private function makeTocNcx(); //Die Datei toc.ncx unterhalb des content-Verzeichnisses
private function makeDLImages(); //Lädt die hinzugefügten Bilder herunter und kopiert sie in das content-Verzeichnis
Die erstellten Dateien basieren hauptsächlich auf dem ePub-Standard, der zum Beispiel hier nachgelesen werden kann:
http://www.hxa.name/articles/content/ep ... _2007.html

Support
Administrator
Beiträge: 2710
Registriert: 24.Okt.2007, 23:59

Re: ePubi zum Selbermachen

Beitrag von Support » 08.Nov.2010, 14:39

Details zur Klasse gbSpiegelParserGUI:
Die Klasse gbSpiegelParserGUI übernimmt alle Aufgaben, die spezifisch für gutenberg.spiegel.de erledigt werden müssen.
Dazu zählen das Herunterladen der Daten, die Aufarbeitung sowie die Übergabe an die EPub-Klasse.

public function getHTML($id);
Wird aufgerufen, wenn auf der Oberfläche auf das kleine Buch in der Zeile auf der rechten Seite geklickt wird.
Die Methode stellt ein Formular zur Verfügung, um die Adresse einzugeben.

public function debug($spiegelURL);
Eine Debug-Methode, die über den Debug-Knopf aufgerufen werden kann.

public function getLabel();
Wird benötigt, damit der Eintrag auf der rechten Seite erzeugt werden kann.

public function generateEPub($spiegelURL);
Hier passiert die ganze Arbeit.
Es werden zunächst die Eingaben überprüft und anschließend nach einer bereits vorhandenen Version der Datei gesucht.
Wenn die Datei bereits vorhanden ist, wird ihr Dateiname zurückgegeben.

Falls nicht, wird eine Instanz der Klasse GBTidy mit der URL zur Spiegel-Seite erstellt.
Die Klasse GBTidy befindet sich in der Datei gbSpiegelParserGUI.class.php ganz unten.
Sie erweitert die Klasse HTMLTidy und bearbeitet zunächst den heruntergeladenen HTML-Text, damit HTMLTidy daraus eine ordentliche XHTML-Datei erstellen kann.

Hier ist also die richtige Stellte, um seltsame HTML-Konstrukte auf der Seite loszuwerden.
Als Beispiel werden alle script-, link- sowie noscript-Tags aus der Seite entfernt.
Die Spiegel-Seite verwendet auch nicht zulässige gb_meta- sowie doc-Tags.

Die Klasse HTMLSlicer nimmt die GBTidy-Klasse entgegen und erzeugt aus der XML-Datei eine interne Repräsentation, auf der XPath-Abfragen (http://de.wikipedia.org/wiki/XPath) ausgeführt werden können.

Damit ist es einfach möglich, aus der Spiegel-Seite Informationen abzufragen.
Dies wird zum Beispiel in diesen Methoden verwendet:

Code: Alles auswählen

private function findParagraphs($HS);
private function findImages($HS);
private function findTitle($HS);
private function findAuthor($HS);
private function findISBN($HS);
Es werden jetzt einfach alle Seiten heruntergeladen, die über den Link am Anfang des Kapitels erreichbar sind und der EPub-Klasse hinzugefügt.
Am Ende erzeugt ein Aufruf der pubify()-Methode die .epub-Datei.

Bei weiteren Fragen bitte melden, dies sollte nur ein kurzer Überblick werden.

Grüße
Rainer

firstlion
Beiträge: 4
Registriert: 07.Nov.2010, 11:23

Re: ePubi zum Selbermachen

Beitrag von firstlion » 18.Nov.2010, 21:19

Das klingt ja wirklich sehr interessant. Leider habe ich im Moment nicht soviel Zeit und muss mich auch erstmal einarbeiten, da ich aus der Java-Welt komme. Hoffe aber, bald meinen Beitrag leisten zu können. Bis dahin auf jeden Fall schonmal vielen Dank für das Tool!!!

Support
Administrator
Beiträge: 2710
Registriert: 24.Okt.2007, 23:59

Re: ePubi zum Selbermachen

Beitrag von Support » 18.Nov.2010, 21:21

Wenn du viel mit Java machst, sollte es kein Problem sein.
Bei mir gibts auch nur Klassen.

Wenn du Probleme hast, kannst du dich gerne melden.

Grüße
Rainer

mmleipzig
Beiträge: 2
Registriert: 26.Mär.2017, 09:20

Re: ePub2Go zum Selbermachen

Beitrag von mmleipzig » 26.Mär.2017, 09:28

Auch wenn es an Leichenfledderei erinnert, diesen Thread auszubuddeln...

Sind die Asbach-Pakete noch aktuell? Falls ja: gibt es einen weg, dass ich vielleicht mal in einer Mußestunde einen Teil der Warteliste manuell (oder halbautomatisch) abarbeite und Dir irgendwie zur Verfügung stellen kann?

LG Markus

Support
Administrator
Beiträge: 2710
Registriert: 24.Okt.2007, 23:59

Re: ePub2Go zum Selbermachen

Beitrag von Support » 26.Mär.2017, 13:35

Hallo Markus,

ääh, nee, das Paket ist nicht mehr aktuell :|

Ich sehe schon, da sind über 900 Titel in der Warteliste.
Das Problem ist, dass das damals nur ein Seitenprojekt war und ich selbst lese noch klassisch von Papier.
Inzwischen ist die Nachfrage aber doch recht groß (~60 Besucher pro Tag).

Deswegen frage ich einfach mal ganz gerade raus:
Hättest du Interesse daran, das Projekt zu übernehmen?
Ich würde auch einen Server mit Speicherplatz, die Domain und das Forum hier stellen.

Mir geht es hauptsächlich darum, dass sich jemand um das Projekt kümmert, der einen Bezug dazu hat.

Liebe Grüße,
Nena

mmleipzig
Beiträge: 2
Registriert: 26.Mär.2017, 09:20

Re: ePub2Go zum Selbermachen

Beitrag von mmleipzig » 27.Mär.2017, 09:20

Hallo Nena!

Danke für das Vertrauen! Nun, mit Programmieren habe ich es nicht so, um da wirklich was "übernehmen" zu können. Oder was war Dein Gedanke hinter der Frage?

LG Markus

Support
Administrator
Beiträge: 2710
Registriert: 24.Okt.2007, 23:59

Re: ePub2Go zum Selbermachen

Beitrag von Support » 28.Mär.2017, 18:13

Hallo Markus,

ja, es wäre mir schon eine Hilfe, wenn jemand beobachtet, dass alles funktioniert und den Meldungen zu den fehlerhaften Büchern nachgeht.
Der Programmier-Teil ist ja im großen und ganzen fertig. Hin und wieder passt noch ein Absatz nicht oder so.

Liebe Grüße,
Nena

Antworten

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast