Steem in die Webseite inigieren.

avatar

Vorschaubild
Ich habe vor einer Weile mit meinen Noob-Kenntnissen versucht Steem in meine Webseite zu integrieren, dabei ist das herausgekommen Steem-Blog-Engine.

Ich muss noch viel verändern, aber bis jetzt ging es mir darum, dass sie überhaupt schon etwas funktioniert.
Ich nutze die Steemworld API von @steemchiller, da diese sich für PHP deutlich besser eignetet und auch bessere Aufruf-Funktionen bietet; die API wurde mir zum Glück von @moecki empfohlen.
Die API Aufrufe werden maximal alle 5 Minuten ausgeführt, die alten Aufrufe werden zwischengespeichert in JSON Dateien.
Das bescheinigt die Seiten aufrufe und entlastet die Steemworld API.
Die Seiten werden mithilfe von Vorlagen erstellt und dann zum Schluss ausgefüllt mit den Informationen.
Momentan werden die Seiten noch zum Teil mit Javascript erstellt, das will ich auf ein Minimum reduzieren, sodass es nur noch für die Schnellansicht genutzt wird.
Die Optik wird noch etwas verändert und es kommen noch ein paar Steem Funktionen hinzu, für einen Vote zum Beispiel.
Momentan muss ich mich aber erst einmal auf die Erstellung der Seiten konzentrieren.
Eine Update-Funktion fehlt, die aufgerufen werden soll, wenn ein Post aufgerufen wird.
Sie soll nur prüfen, ob die JSON Datei noch aktuell ist und wenn nicht, soll sie die Seite neu erstellen.

Das Projekt könnt ihr einfach C&Pen und für euch anpassen oder verbessern.
Das ist auch in der jetzigen Fassung nötig, da die HTML Seiten mehr Test-Seiten sind und da es noch nicht fertig ist.
Vielleicht kann das Projekt aber dennoch jemanden helfen.


GitHub Readme:

Steem-Blog-Engine

Eine kleine Möglichkeit, wie man Steem über Javascript und PHP als Datenbank nutzt.

Javascript only Modus mit Steem_API oder Steemworld_API
PHP und Javascript Modus, die Seiten werden mit Javascript zur Hälfte erstellt.
PHP only Modus, die Seiten werden zum Großteil nur mit PHP erstellt.

Was fehlt:
Minimum Zeit für die Aktrealitätsprüfung, welche ja bei 5 Minuten liegen sollte und wahrscheinlich nutze ich dafür auch die Datei.
Prüfung auf Aktualität, beim Aufrufen der Hauptseite und beim Aufrufen eines Artikels, anhand von Zeitstempel der Änderungen und Votes und Comments.
Ein möglicher Temp-Speicher der Bilder, wenn das Urheberrecht es zuslässt die Bilder auf dem Server zu speichern.
Ein Docker Script, welches es ermöglicht die Engine leicht zu eigenen Webseite hinzuzufügen.
Es solle eigentlich nur noch ein Username oder Community-Name eingeben werden in den Docker File.
PHP only Modus mit https://parsedown.org/ .
HTML: Vote-Funktion, Design, Darstellung von Bildern bei manchen Posts(Bug).

Vorschau als Docker:
https://raw.githubusercontent.com/JanisPlayer/Steem-Blog-Engine/main/Docker/entrypoint.sh
Name eintragen und Docker Container starten.
Die Beispielseiten können einfach angepasst und ausgetauscht werden.
Da das Projekt sich noch sehr stark verändern wird, sollte es aber wirklich nur als Demo betrachtet werden.
Ihr könnt dieses Projekt als Vorlage nutzen und natürlich verbessern.



0
0
0.000
5 comments
avatar

Steem? Warum nicht Hive?

0
0
0.000
avatar

Wusste da noch nicht, dass es einen Fork? gab und Hive entstanden ist.
Habe jetzt deshalb alle Beiträge von Steem auf Hive exportiert.
Aber ja einen Support für Hive kann man sicher noch hinzufügen.
Muss mir dafür aber die API ansehen, denke die API wird aber relativ gleich sein von den Daten die man erhält.
Wahrscheinlich mache ich auch eine Muli-Post Funktion rein, damit man auf Steem und Hive posten kann.
Die Blockchain soll ja nur als sichere Datenbank dienen und dann hat man auch gleich zwei Backups, falls die eine Blockchain-Technologie nicht mehr geeignet ist und einen anderen Weg geht.
Da Hive jetzt allerdings ja schon ein paar Jahre lebt und bis jetzt das Konzept noch gleich geblieben ist, eignet sie sich sehr gut als zweite Datenbank für den Blog.
Also füge ich einen Support sehr wahrscheinlich noch hinzu.

0
0
0.000
avatar

Puh, die Hive API hat so ihre Probleme, leider auch viele von Steemit übernommen.
Die Dokumentation ist auch nur halb vollständig, die Beispiele sind nicht Praxis nahe.
Ich musste jetzt in meinem Browser nachsehen, welche Parameter übergeben werden müssen.
Um Hive in meine Engine zu intrigieren, muss ich verdammt viel verändern.
Hive macht so viele unnötige anfragen, weil das System eher für so eine Webseite gedacht ist.
Die API von S

Wahrscheinlich wird es so funktionieren, wenn ich es Update:
bridge.get_discussion Post abfragen:
{"id":1,"jsonrpc":"2.0","method":"bridge.get_discussion","params":{"author":"janisplayer","permlink":"steem-in-die-webseite-inigieren","observer":"janisplayer"}}
Aber ich brauche eine Liste aller Posts, die geschieben worden mit dem Account.
Nein dafür gibt es keinen API-Befehl, großartig, bedeutet ich habe nur eine Funktion, die mir eine Liste aller zuletzt geschriebenen Posts ausgibt.
Das beste diese Liste liefert mir haufenweise Informationen, die ich nicht benötige und die den Befehl oben überflüssig macht, weil im Befehl bridge.get_account_posts ist jeder Post enthalten.
curl -s --data '{"jsonrpc":"2.0", "method":"bridge.get_account_posts", "params":{"sort":"blog", "account": "janisplayer", "limit": 100}, "id":1}' https://api.hive.blog
Du kannst maximal bis zu 100 Post von der API anfragen, wie bei Steemit.
Was muss ich dann also machen, ja nächster API Befehl: bridge.get_account_posts
Diese gibt mir die Posts von einem bestimmten Post aus.
{"id":<lastid+1>,"jsonrpc":"2.0","method":"bridge.get_account_posts","params":{"sort":"blog","account":"janisplayer","limit":100,"start_author":"janisplayer","start_permlink":"steem-in-die-webseite-inigieren","observer":"janisplayer"}}
Und dann muss ich fragen, ist lastid+1 kleiner als die ID die ich erhalten habe oder habe ich einen Fehler bekommen, dann hör auf ständig nach Posts zu fragen.
Was muss ich dann machen:
Das JSON was jetzt mehr als 100+ Posts enthalten kann in einer Schleife durchgehen, die für mich wichtigen Informationen aufbereiten und diese in eigene JSON Dateien ablegen.
Woher weiß der Blog ob er aktuell ist im PHP Modus, ja das muss jetzt anders gehändelt werden.
Ich muss den letzten Post alle 5 Minuten abfragen, wenn dieser nicht als JSON Datei existiert, dann wird der Generator angeworfen bis zu einem Post der als JSON Datei existiert.
Die nicht existenten JSON müssen neu generiert werden und der Blog ist aktuell.
Mit der API von @steemchiller war die PHP Umsetzung viel einfacher, da kann ich nämlich einfach nachfragen, wie viele Posts ein Account hat und das grenzenlos und dann einfach die gewünschten Posts abfragen.
Also kann noch eine weile Dauern, bis ich das umgesetzt habe, ich muss zuerst einmal den Code aufräumen der schon da ist, damit man das Ganze leichter nutzbar machen kann für User.
Aber ja auch wenn die Hive API genau so nervtötend umständlich ist wie die von Steemit, ist es auch mit PHP möglich diese zu nutzen, wird also kommen, da ich aber auch andere Projekte habe, die mehr genutzt werden und nutzbarer sind für einfache User vielleicht erst in 1-2 Monaten.

Ich denke das war eine ausführlichere Antwort ob es einen Hive Support gibt. :D

0
0
0.000
avatar

Was ist eigentlich der Zweck der ganzen Arbeit?
Du könntest doch einfach auf Deiner Webseite einen Link zu Deinem Hive-Profil legen und fertig.

0
0
0.000
avatar
(Edited)

Ja eigentlich war Steem oder heute auch Hive nur als Datenbank gedacht, ich wollte einen Speicher für die Ewigkeit sozusagen.
Falls die Seite eines Tags nicht mehr existiert, gibt es immer noch die Blockchain.
Ich finde das viel besser als so eine 0815 WordPress Seite.
Zweiter Vorteil, die Webseite kann mit ADs und Partnerprogrammen versorgt werden.
Frag mich nicht wieso, aber wie sich herausgestellt hat, will Amazon seine Links nicht auf Steemit oder Hive sehen.
Ich habe eins drauf bekommen, weil ich sogar nur zu Steemit verlinkt habe in der ersten Version.
In der jetzigen Version kann man das was Parsedown und marked.js ausspuckt auch lesen, HTML ist allerdings noch nicht kompatibel nur Markdown.
Die PHP Version ist halt noch unfertig und muss noch einmal stark verändert werden, der Code ist so geschrieben, ja es muss nur laufen. :D
Ich habe das ganze, meist spät Abends geschrieben.
Die Performance macht deshalb noch Probleme und es gibt Probleme mit den lokalen Bildern (Dateipfad) bei Docker, weil das eigentlich zwei Funktionen sein müssen oder zwei Variablen.
Also der Plan ist, das PHP Script zieht seine Informationen von Steem oder Hive und nutzt diese als Datenbank.
Speichert die Daten auf dem Server zwischen als Backup, falls die Blockchain ausfällt. (Gibts ja hin und wieder bei Steem z.B.)
Und wenn alles fertig ist, kannst du damit deinen eigenen Blog oder deine eigene Community Seite erstellen, mit der du schnell ein paar Sachen schreiben kannst ohne die Hilfe der Overlay Plattform.
Du zahlst natürlich auch keine Gebühren an eine Overlay Plattform und kannst wie gewohnt deine Sachen schreiben.
Also wenn meine Idee irgendwann von mir endlich lauffähig umgesetzt wird und ich mich endlich auf einen Modus einige, denn ich auch optimiere, dann könnte das richtig schön werden.
Ein Nutzer hat dann eigentlich nur noch eins zu tun:
Eine fertige Vorlage nutzen, wie die Seite bei ihm auszusehen hat, er kann sie ja auch selbst bauen.
Den Dockerfile herunterladen und die Infos zum Blog oder Community eintragen, Admin Passwort (für das posten) und fertig ist die Seite mit später hoffentlich alles Steem und Hive Funktionen.

Also ja, ist vielleicht etwas aufwändig, aber man lernt immerhin was zwangsläufig dabei, allein dafür hat es sich schon gelohnt.
Aber ein WordPress Blog oder ein Link geht deutlich leichter. :D
Was aber super einfach geht, die Informationen als Javascript aufbereiten und auf der Seite zu platzieren, die Blockchain APIs waren mir aber viel zu träge, deshalb gibts auch den PHP Modus (der so ziemlich alles herunterlädt und aufbereitet).

Edit:
Als WordPress-Plugin wäre das eigentlich gar nicht mal so bescheuert.

0
0
0.000