Wir dürfen vorstellen: Der neue Bot von Deutsch Unplugged
34 comments
Vielleicht hat sich die Neuigkeit bei den Mitgliedern der Community bereits herumgesprochen.
Zumindest den Scrabble-Mitspielern dürfte aufgefallen sein, dass ein gewisser Finanzbot erwähnt wurde und stellenweise sogar sein Unwesen in den Kommentaren treibt…
Deutsch Unplugged hat einen eigenen Bot
DU-Freunde nennen ihn schon liebevoll DUBby :-))
Dieser Vorstellungspost war schon einige Zeit geplant, kam aber aus diversen Gründen wie Zeitverlust, Schreibblockaden oder ähnlichem bisher nicht zustande. Aber jetzt!
Anlass
Die allwöchentliche Scrabble-Runde ist bekanntlich mit einem nicht unerheblichen Betreuungsaufwand verbunden. Dabei steht neben der hauptsächlichen Schiri-Tätigkeit und der Auf- und Ausarbeitung der wöchentlichen Beiträge auch die Auszahlung der Preisgelder auf dem Programm.
Diese Arbeit blieb bisher an unserem DU-Admin @chriddi hängen.
Um den Aufwand zumindest ein wenig zu reduzieren, wurde überlegt, wie man einige der Tätigkeiten „auslagern“ könnte. Jedem wird unmittelbar einleuchten, dass die Bewertung der von den Mitspielern eingereichten Züge und die Ausarbeitung der Beiträge nicht ausgelagert werden können. Wer die letzten Runden aufmerksam verfolgte, wird wissen, weshalb dies so ist. Allenfalls käme eine Arbeitsteilung in Frage, was aber zu unterschiedlichen Interpretationen hätte führen können.
Letztlich blieb nur die Überlegung, die Auszahlungen zu vereinfachen. Die Preisgelder einfach wegfallen zu lassen, war – auch wenn es den Mitspielern vornehmlich um den Spielspaß geht – keine Alternative.
Übergangsweise haben wir uns mit freundlicher Genehmigung des Erfinders Remlaps des @penny4thoughts -Bots bedient. Leider erfüllte dieser Bot mit seiner Gießkannen-Ausschüttung nicht die besonderen Vorstellungen des DU-Teams. Meine an irgendeiner Stelle mal fallengelassene Äußerung, wir könnten sowas auch selbst auf die Beine stellen, wurde dann irgendwann wieder ausgegraben... und dann war ich dran...
Anforderungen
Prinzipiell hat eine eigene Lösung natürlich immer den Charme, dass man den Bot so bauen kann, wie man ihn benötigt. Genau das bedeutet aber auch, dass man aus den zahllosen alternativen Umsetzungsmöglichkeiten erst einmal eine effektive und sinnvolle Variante ermitteln und festlegen muss.
Die erste Anforderung war zunächst die Durchführung der Scrabble-Auszahlung. In der folgenden Ideendiskussion und Entscheidungsfindung kamen weitere Verwendungsmöglichkeiten auf, die der Bot explizit offen lassen sollte. Zunächst soll es primär um die Belohnungsauszahlungen gehen.
Hinsichtlich der Auszahlung sind also folgende Anforderungen definiert worden:
- Der Bot wird nur aufgrund einer Spende an den Account @du-finanzbot tätig. Dieser wurde für diesen Zweck vom DU-Team eingerichtet.
- Der Spender (= der Autor des Beitrages, von dem die Spende kommt) muss die Auszahlungsmodalitäten manuell festlegen.
- Es werden nur Beiträge in der Community „Deutsch Unplugged“ berücksichtigt. Diese dürfen nicht gemutet sein.
So kurz die Anforderungen, so umfangreich die Umsetzungsmöglichkeiten…
Überlegungen zur Entwicklung
An dieser Stelle begann die Umsetzung… naja, vielmehr die Vorbereitungsphase…
Bereits im September 2022 gab es einen ersten Entwurf für ein Flussdiagramm, das einige Fragen zur konkreten Ausgestaltung beinhaltete. Leider ließ es die zeitliche Einbindung beim DU-Team nicht zu, sich kurzfristig dazu auszutauschen.
Letztlich haben wir aber die offenen Fragen zum nahenden Ende des Jahres klären und nebenbei weitere Ideen entwickeln können:
Der Bot sollte nicht nur dem DU-Scrabble bzw. dem DU-Account zur Verfügung stehen, sondern allen Mitgliedern, die Beiträge oder Wettbewerbe in unserer Community verfassen. Zudem stand ziemlich früh fest, dass nur die flüssigen Anteile der Spenden ausgezahlt werden sollen. Die gestakten SP sollten beim Bot verbleiben und damit langfristig der Gemeinschaft zu Gute kommen. Daher haben wir beschlossen, dass auch eine Vote-Funktion implementiert wird, die den Votes von @deutschunplugged folgt (statt Power Down und Transfer oder Delegation).
Funktionsweise
Bezogen auf die aktuelle Version sei die Funktionsweise kurz dargestellt. Der Code liegt zwar auf Github, das Reposity ist aber (erstmal) privat.
Datenlieferant ist der Steem Data Service von Steemchiller. Die während des Entwicklungsprozesses erschienene aktuellste Version 0.1.8 hat zusätzlich zu einer willkommenen Erleichterung geführt (eine Extra-Abfrage konnte eingespart werden).
In regelmäßigen Abständen werden die kürzlich auf der Blockchain erstellten Operationen abgefragt und auf Relevanz für den DUBby geprüft.
Aktuell wird der Bot in zwei Fällen aktiv:
- Auszahlung einer Beneficiary
- Vote
Ursprünglich hatte ich andere Vorstellungen hinsichtlich der Umsetzung. Steemchiller hat nämlich auch speziellere Abfragen, mit denen man die oben genannten Fälle ohne „Hintergrundrauschen“ (also Operationen außerhalb von DU) hätte abfragen können. Allerdings wäre dann eine künftige Funktionserweiterung schwieriger und aufwändiger.
Dreh- und Angelpunkt für die Auszahlungsfunktionalität sind die manuellen Anweisungen/Befehle an den Bot.
Nur der Verfasser des Beitrags, in dem DUB als Nutznießer eingetragen ist, darf dem Bot einen wirksamen Auszahlungsbefehl geben. Dieser erfolgt durch ein Reply auf den Kommentar des Users, der eine Auszahlung erhalten soll.
Der Befehl (nicht der Kommentar) muss immer mit "!finanzbot" beginnen und dann anschließend den an den User auszuzahlenden Prozentsatz der Gesamtspende enthalten.
Wichtig ist, dass insgesamt nicht mehr als 100 % der Spende an die Teilnehmer per Auszahlungsbefehle verteilt wird. Falls doch zu viel angewiesen würde, verweigerte der Bot die Arbeit. Schließlich wollen wir nicht ihm die verantwortungsvolle Entscheidung übertragen, bei wem dann die überzähligen Prozente gekürzt werden.
Die Auszahlungsbefehle müssen spätestens zum Auszahlungszeitpunkt des Beitrages verfasst sein. Falls dies nicht erfolgt ist, oder Prozentpunkte nicht verteilt wurden, powert DUBby die entsprechenden Beträge automatisch auf.
Beispiel
Beispiele gibt es zwar im DU-Scrabble genug, aber ich mache trotzdem mal eines:
Nehmen wir an, ich starte einen Wettbewerb und möchte 30 % aller Einnahmen aus dem Beitrag den Wettbewerbsteilnehmern zukommen lassen.
In dem Fall muss ich bei der Erstellung des Beitrages 30 % als Beneficiary an @du-finanzbot festlegen (siehe rechts).
Dabei ist darauf zu achten, dass die 50% SBD/ 50% SP Reward-Aufteilung eingetragen/beibehalten wird (also keine 100% SP-Auszahlung erfolgt), da nur flüssige STEEM oder SBD ausgezahlt werden.
Nehmen wir nun an, an dem Wettbewerb hätten sich 5 Kommentatoren beteiligt. Einer davon hat vielleicht den Wettbewerb gewonnen und soll die Hälfte der Gesamtspende erhalten, die anderen den übrigen Betrag zu gleichen Teilen.
Für die Auszahlungsbefehle erstelle ich dann jeweils einen Kommentar als Antwort auf den Kommentar des begünstigten Teilnehmers mit folgendem Inhalt:
Teilnehmer | Auszahlungsanweisung |
---|---|
Gewinner | !finanzbot 50 % |
2. Teilnehmer: | !finanzbot 12,5 % |
3. Teilnehmer: | !finanzbot: 12,5% |
4. Teilnehmer: | !finanzbot: 12.5 % |
5. Teilnehmer: | !finanzbot 12,5% |
Es können durchaus auch noch andere Texte in dem Kommentar stehen. Der Befehl muss auch nicht am Anfang des Kommentars auftauchen. Wie ihr seht, sind auch Variationen kein Problem. Wichtig ist nur, dass zwischen „!finanzbot“ und Zahl ein Leerzeichen steht.
Soweit so einfach... :-))
Ausblick
Es ist vielleicht aufgefallen, dass DUBby bisher ziemlich wortkarg ist. Man könnte dies einerseits als bevorzugte Eigenschaft bezeichnen. Der Bot soll ja schließlich hauptsächlich seine Arbeit im Hintergrund machen. Andererseits kann es aber auch Situationen geben, in denen eine Wortmeldung des Bots sinnvoll wäre.
Denkbar sind zum Beispiel Kommentare auf Auszahlungsbefehle, die nicht verarbeitet werden könnten. Oder ein „Danke“-Kommentar als Reply auf alle Beiträge mit einer Spende an den Bot. Nebeneffekt solcher Kommentare wäre die Vote-Möglichkeit zum Aufbau des Community-Accounts.
Vorbereitet ist schon die Möglichkeit, auch feste Beträge für die Auszahlung festzulegen. Zum Beispiel: 3 STEEM oder 3 SBD (wenn denn irgendwann mal wieder welche gedruckt werden). Soweit das als sinnvoll angesehen wird, kann ich mich gern dranmachen…
So, nun ist aber auch gut mit den Erklärungen. Ihr könnt gern eure Meinungen, Verbesserungsvorschläge oder eigene Ideen in den Kommentaren verewigen. Auch für diesen Beitrag gibt es eine Spende an DUBby… was das bedeutet, wisst ihr spätestens nach dem Lesen der obigen Zeilen... :-))
@moecki
(Gern könnt ihr mich mit einem Witness-Vote unterstützen :-))
Deutsch Unplugged
auf https://moecki.online/hive-146118
Comments