kriegaex / Galileo-Openbook-Cleaner

HTML cleaner for Galileo Computing's openbooks, implemented in Java
Other
64 stars 6 forks source link

Java ist auch eine Insel 12. Auflage #33

Open LeHoangDev opened 6 years ago

LeHoangDev commented 6 years ago

Hallo, ich möchte gerne mir die Openbook Version der 12. Auflage von Java ist auch eine Insel als als Ebook Version herunterladen.

http://openbook.rheinwerk-verlag.de/javainsel/

Ist es mit der aktuellen Version möglich? Nach meinen Nachforschungen in der config.xml Datei zeigen die Links nur auf die .zip Datei des jeweiligen Buches. Nach meinen Kenntnisstand ist es nicht mehr möglich die von Rheinwerk bereitgestellten Openbooks als .zip herunterzuladen.

kriegaex commented 6 years ago

Die alten Bücher sind nach wie vor zum Download verfügbar, die neueren, welche Rheinwerk nicht mehr als ZIP-Dateien anbietet, sind es aus offensichtlichen Gründen nicht.

Ich bin sehr beschäftigt, habe aber aus Neugier mal folgendes probiert:

Ergebnis: Der GOC sollte nun in der Lage sein, das ZIP zu entpacken. Allerdings produziert er Müll beim Säubern, da die HTML-Struktur abweicht von den alten Openbook-Downloads. Das fängt damit an, daß die Dateien in UTF-8 kodiert sind statt in windows-1252, daß die Titel-Tags woanders zu finden sind etc. Vielleicht schaue ich mir das irgendwann mal an, wenn ich ein paar Stunden Zeit habe, das könnte aber komplex sein, insbesondere wenn es für die alten und dieses neue Openbook gleichzeitig funktionieren soll. So gesehen, kann ich Dir im Moment nicht helfen. Ich wollte nur mal für mich selbst und andere Experimentierfreudige dokumentieren, wie man zu einem ZIP-Archiv mit enthaltenem Openbook kommen kann, das der GOC zumindest mal erkennen und auspacken kann. Der Rest ist dann Quellcode-Pflege.

Theoretisch könnte ich ein mit HTTrack erzeugtes Openbook-ZIP auch auf meinem Server hosten, aber vermutlich hat der Rheinwerk-Verlag aus Copyright-Gründen etwas dagegen. Ich möchte aber auch keinen Crawler in den GOC einbauen, der dann hundertfach läuft und die Webseite des Verlags belastet. Wer aber selbst HTTrack o.ä. laufen lassen und das Buch herunterladen möchte, kann das tun, das ist dann Privatsache. Dann den GOC so zu erweitern, daß er mit dem Buch klarkommt, wäre aber möglich. Es ist Open-Source-Software, also sind mir Pull Requests willkommen, weil ich wenig Zeit habe und den GOC auch selbst nicht mehr nutze. Wenn mir aber mal langweilig ist, kann es durchaus sein, daß ich mir das mal anschaue, nur evtl. dauert es halt eine ganze Weile.

LeHoangDev commented 6 years ago

Danke, habe eine so schnelle Antwort nicht erwartet. 👍 Du hast das Problem sehr genau geschildert und erklärt. Im Moment werde ich mich wohl mit der Openbook Webseite zufrieden geben müssen. Ich freue mich schon darauf, wenn du das Projekt irgendwann Mal aktualisieren wirst, wenn du Lust und Laune hast. 👍

Gruß LeHoang93

kriegaex commented 6 years ago

Zwischenstand: Ich war mal neugierig und habe mir heute morgen eine Stunde als Timebox reserviert, um zu debuggen, wieso die generierten Seiten nach dem Säubern meiner Offline-Kopie des Java-8-Buches leer waren. Es gibt einige Inkompatibilitäten der neuen Struktur zur alten, aber ich habe es am Ende der Stunde geschafft, einen sauber generierten Satz von Webseiten zu erstellen, der optisch und von der "Säuberungs-Qualität" her dem entspricht, was der GOC für die alten ZIP-Archive auch leistet. So gesehen, könnte ich das also commiten und eine neue Version zur Verfügung stellen.

Bleibt die Frage, ob ich eine Wiki-Seite aus meiner Beschreibung weiter oben erstelle, damit sich jeder das Buch selbst crawlen kann, oder ob ich vielleicht von diesem Buch (und evtl. anderen neuen Büchern, die es inzwischen gibt), gezippte Kopien zur Verfügung stellen, die man dann durch den GOC jagen kann. Da muß ich mir mal die Lizenzbedingungen der Openbooks anschauen. Was ich aber sicher nicht machen werden, ist, für alle Bücher bereits bereinigte Versionen zur Verfügung zu stellen. Offen zugängliche Inhalte 1:1 zur Verfügung zu stellen, ist eine Sache, das erscheint mir in Ordnung. Sie aber verändert zur anzubieten, ist sicher nicht in Ordnung dem Verlag gegenüber. Was dann jeder privat mit den Inhalten macht, solange er sie nicht anderen anbietet, geht dann wiederum den Verlag nichts an. Falls ich also etwas anbiete, dann komplette Kopien der Webseite mit CSS, Werbung, Original-Layout etc.

P.S.: Was der GOC produziert, ist ja noch kein eBook sondern erst mal ein inhaltlich bereinigter bzw. vom Layout her angepaßter Satz von HTML-Dateien, der dann einfach mit einem Konvertierungs-Werkzeug wie Calibre in EPUB o.ä. umgewandelt werden kann. Man hat also schon selbst auch noch ein bißchen Arbeit.

kriegaex commented 6 years ago

Ich habe mit dem Verlag gesprochen. Er hat mir, wie befürchtet, auch das Bereitstellen einer 1:1-Offline-Kopie der - meiner Meinung nach dann fälschlich als "OpenBooks" bezeichneten - Bücher verweigert. Also wird es mit den Online-Büchern nur so gehen, daß sich jeder selbst eine Kopie zieht per HTTrack und damit den Rheinwerk-Server unnötig belastet. Aber sie wollen es anscheinend so. Sie erlauben das ja auch ausdrücklich, z.B. das Ausdrucken des gesamten Buchs für persönliche Zwecke. Das geht ja aber nur, wenn man es auch vorher komplett herunterlädt oder Seite für Seite anschaut.

Mal eine Frage an Dich, @LeHoang93, da Du der Erste bist, der danach gefragt hat: Wärst Du bereit, den Zwischenschritt mit HTTrack zu machen? Ist ja ein praktisches Tool auch abseits der Openbooks. Oder wäre es Dir dann die Mühe nicht mehr wert?

LeHoangDev commented 6 years ago

Danke @kriegaex, das du dir so viel Mühe gibst und sogar mit dem Verlag gesprochen hast. Ehrlich gesagt bereitet es mir keine Probleme HTTrack zu benutzen, die Bedienung des Programmes ist jetzt nicht so schwer. In Kombination mit deiner vorherigen Anleitung sollte es keine Probleme geben aus der bereinigten Seite mit Hilfe von Calibre ein epub zu erstellen. Aus meiner Sicht ist es die Mühe wert, da dein Tool zusätzlich viel Arbeit erspart. Die Alternative wäre es jede Seite auszudrucken, dass wäre bei diesem Buch ein sehr großer Verbrauch an Papier und Tinte , oder es online zu lesen. Da ich jedoch gerne dieses Buch nebenbei auf meinem E-Book Reader lesen möchte, ist es mir die Mühe wert.

kriegaex commented 6 years ago

Danke für Deine Einschätzung. Ich habe mir auch mal crawler4j kurz angesehen. Es wäre vermutlich relativ leicht zu integrieren in GOC, aber das One-JAR zum Download mit allen Dependencies würde dadurch von 1,1 MB auf 53 MB anwachsen, weil da ein ziemlicher Rattenschwanz dran hängt. Ich überlege noch...

ghost commented 6 years ago

Hallo, ich wollte nur mal mitteilen, dass ich ebenfalls an einer Weiterentwicklung sehr interresiert bin. Wenn das also möglich wäre...

kriegaex commented 6 years ago

Oh Mist, habe vor drei Wochen ganz vergessen zu erwähnen, daß mit o.g. Crawling-Prozedur via HTTrack und dem Code in Branch parse-online-books das Ganze schon gehen sollte. Ich habe ein, zwei Ideen, wie ich das in eine künftige Version einbauen kann, so daß man angeben kann, wo die gecrawlten Dateien liegen und einige Online-Bücher schon in der Konfigurationsdatei des GOC enthalten sind, aber mir fehlt gerade die Zeit. Probiert doch einfach mal, das Produkt aus dem Branch zu bauen und Euch das Buch selbst herunterzuladen und zu säubern.

kriegaex commented 5 years ago

Gerade hat jemand gefragt, wie das Ganze unter Linux funktioniert und von einem erfolglosen Versuch mit wget berichtet. Der Kommentar wurde aber schnell wieder gelöscht.

Egal, bevor noch jemand fragt: Es gibt HTTrack auch für Linux als Kommandozeilen-Werkzeug:

https://www.httrack.com/page/2/en/index.html

kriegaex commented 4 years ago

Eine weitere Verbesserung im Zusammenhang mit dem JAVA_8 Buch habe ich in #36 vorgenommen. Es besteht ein indirekter Zusammenhang mit diesem Ticket.

kriegaex commented 4 years ago

Hallo, Feedback bitte. Ich schließe das Ticket sonst.