So, weil ich gerade mächtig stolz auf mich bin und um mir selbst auf die Schulter zu klopfen, ein kurzer Blick hinter die Kulissen.
Ich habe in den letzten beiden Jahren den E3-Thread von Hand geführt, sprich: Ich habe mit sehr, sehr, sehr viel Copy & Paste und noch mehr BBCode-Tags hier im Foreneditor die Tabellen, in denen die Bilder, Trailer usw zu jedem Spiel aufgeführt sind, manuell angelegt. Da kann sich ja jeder selbst überlegen, wie unübersichtlich dass ist, aber mal zur Anschauung: Hier ein Tabelleneintrag, für ein einzelnes Spiel
Code: Alles auswählen
[tr]
[table=0][align=left][img]https://i.imgur.com/cEyWoBEl.jpg[/img][/align][/table]
[table=0][align=left][align=left] [/align][/table]
[table=0][align=left]Bloodborne[/align][/table]
[table=0][align=left][align=left] [/align][/table]
[table=0][align=left][url=https://www.youtube.com/watch?v=G203e1HhixY&has_verified=1]Debut Trailer | Face Your Fears[/url]
[/align][/table]
[table=0][align=left][align=left] [/align][/table]
[table=0][align=left]24.03.2015[/align][/table]
[table=0][align=left][align=left] [/align][/table]
[table=0][align=left][tblo]
[tbody][tr][table=0][img]https://i.imgur.com/h8tT5lY.png[/img][/table]
[table=0][img]https://i.imgur.com/767NZnc.png[/img][/table]
[/tr][/tbody]
[/tblo][/align][/table][/tr]
[tr]
Nach der letzten E3 hab ich beschlossen, dass 2019 Abhilfe geschaffen werden muss und zu meiner großen Freude - und Überraschung - gibt es dieses Jahr tatsächlich Abhilfe. Ich präsentiere: Den BBCode-Generator!
Ich habe nun eine Weboberfläche zur Verfügung, in der ich zu einem bestimmten Event (also etwa E3) Spiele samt ihrer Daten eintragen kann. Anschließend muss ich nur noch auf den passenden Menüpunkt klicken und der Generator spuckt den kompletten und fertig formatierten BBCode für den gesamten Thread automatisch aus. Das heißt, ich muss nur noch Strg+A, Strg+C und Strg+V drücken, klicke auf Absenden und der E3 Thread ist aktualisiert, ohne, dass ich noch einen BBCode-Tag anfassen muss.
Besonders hilfreich ist auch, dass in dem Teil gleich auch einen Upload zu Imgur integriert ist. Das händische hochladen zu Imgur und das zurückkopieren der Imgur-URL an die richtige Stelle des BBCodes war immer besonders nervig.
Wenn ich ein neues Event anlege, erstellt der Generator mir nun automatisch ein Album in meinem Imgur-Account. Lege ich dann ein neues Spiel an, gebe ich nur noch die URL zu dem entsprechenden Bild an und das Bild wird automatisch zu Imgur in das passende Album hochgeladen. Anschließend erhalte ich den Imgur-Link zum Bild zurück und speichere diesen in meiner Datenbank. (Falls sich jemand fragt, warum ich den Umweg über Imgur nehme, anstatt direkt das Bild zu nutze wie ich es im Web finde: Imgur hat zum einen den Vorteil, dass es Bilder bei Bedarf automatisch resized, wenn man ein Suffix an die URL anhängt, was hier im Forum ein Segen ist und zum anderen habe ich so die Kontrolle, dass ein Bild nicht offline geht)
Der Generator basiert auf Python und dem auf Python aufbauendem
Django-Framework für Webentwicklung. Im Hintergrund läuft eine MySQL-Datenbank und für die Kommunikation mit Imgur habe ich die
Imgurpython-Library genutzt. Bei der Entwicklung extrem geholfen hat mir
folgendes Tutorial von Mozilla und für die Verbindung mit Imgur
diese dreiteilige YouTube-Serie, die eine Einführung in Imgurpython liefert.
Der Generator ist noch nicht "fertig", es gibt noch ein paar Dinge, die ich hinzufügen möchte, ein paar Fehler, die ich abfangen will, ich muss noch mal gucken, wie ich den Workflow optimiere, aber der Generator ist nun weit genug, dass ich ihn für die vorgesehene Aufgabe nutzen kann.
Achso und hier dann mal mit Beispieldaten die fertig formatierte Tabelle
Angekündigte Spiele |
---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
|
|
|
|
|
|
|
---------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|