A-0.3 - Basismodul #9

Closed
opened 2021-11-14 16:15:29 +01:00 by edraft · 3 comments
Owner
Beschreibung:

Bei Beitritt eines neuen Mitgliedes auf dem Discord Server wird dem Mitglied eine Willkommensnachricht gesendet und jedem Admin wird eine Nachricht, in der erklärt wird, wer beigetreten ist gesendet.

Des Weiteren, wird der neue Benutzer in der Datenbank angelegt, bzw. für einen bestehenden Benutzer ein Beitritt Registriert.

Des weiteren muss jede nachricht sowie jede Stunde in einem Sprachkanal durch einen festgelegten Wert von XP belohnt werden.

Zur Auswertung des Bot sollen eben ein Paar Daten über den Bot gespeichert werden:

  • Anzahl der Nachrichten
  • Anzahl der Gelöschten Nachrichten
  • Anzahl der Eingehenden Nachrichten
  • Anzahl aller gesehener Discord Mitglieder
Befehle:
  • Kein
Neue Daten zum Speichern:
  • User
    • UserId
    • DiscordId
    • XP
    • ServerId
  • Joins
    • JoinsId
    • UserId
    • JoinedOn
    • LeavedOn
  • Client
    • ClientId
    • SentMessageCount
    • ReceivedMessageCount
    • DeletedMessageCount
    • ReceivedCommandsCount
    • MovedUsersCount
    • DiscordServerId
  • KnownUsers
    • KnownUserId
    • DiscordId
Aufwand:

Mittel

##### Beschreibung: Bei Beitritt eines neuen Mitgliedes auf dem Discord Server wird dem Mitglied eine Willkommensnachricht gesendet und jedem Admin wird eine Nachricht, in der erklärt wird, wer beigetreten ist gesendet. Des Weiteren, wird der neue Benutzer in der Datenbank angelegt, bzw. für einen bestehenden Benutzer ein Beitritt Registriert. Des weiteren muss jede nachricht sowie jede Stunde in einem Sprachkanal durch einen festgelegten Wert von XP belohnt werden. Zur Auswertung des Bot sollen eben ein Paar Daten über den Bot gespeichert werden: * Anzahl der Nachrichten * Anzahl der Gelöschten Nachrichten * Anzahl der Eingehenden Nachrichten * Anzahl aller gesehener Discord Mitglieder ##### Befehle: * Kein ##### Neue Daten zum Speichern: * User * UserId * DiscordId * XP * ServerId * Joins * JoinsId * UserId * JoinedOn * LeavedOn * Client * ClientId * SentMessageCount * ReceivedMessageCount * DeletedMessageCount * ReceivedCommandsCount * MovedUsersCount * DiscordServerId * KnownUsers * KnownUserId * DiscordId ##### Aufwand: Mittel
edraft changed title from Willkommensnachricht to A-0.3 - Willkommensnachricht 2021-11-14 16:21:05 +01:00
edraft added a new dependency 2021-11-14 16:21:34 +01:00
edraft added the
story
label 2021-11-14 16:29:19 +01:00
edraft added this to the Alpha milestone 2021-11-14 16:29:21 +01:00
edraft added this to the Alpha project 2021-11-14 16:29:23 +01:00
edraft self-assigned this 2021-11-14 16:29:25 +01:00
edraft added the
module
label 2021-11-17 12:33:30 +01:00
edraft removed their assignment 2021-11-24 18:38:57 +01:00
edraft removed a dependency 2021-11-25 21:14:59 +01:00
edraft added a new dependency 2021-11-25 21:16:30 +01:00
edraft changed title from A-0.3 - Willkommensnachricht to A-0.3 - Basismodul 2021-11-29 10:08:27 +01:00
edraft added a new dependency 2021-11-29 10:12:59 +01:00
edraft added a new dependency 2021-11-29 10:13:14 +01:00
edraft added the
new-data
label 2021-12-01 08:54:29 +01:00
Author
Owner

Das Model sowie die Repository für Client steht.
Ebenso habe ich auch schonmal die enstprechenden Änderungen an dem Datenbankmodul vorgenommen, also das im on_ready geguckt wird, ob für jeden Server ein client angelegt wurde.

Das Model sowie die Repository für Client steht. Ebenso habe ich auch schonmal die enstprechenden Änderungen an dem Datenbankmodul vorgenommen, also das im on_ready geguckt wird, ob für jeden Server ein client angelegt wurde.
Author
Owner

Bisher alles soweit alles drin aber es Fehlt noch, dass die Ontime gespeichert wird.

Dazu mein Vorschlag:

Ein weiteres Datenmodell UserJoinedVoiceChannel welches wie bei UserJoinedServer mit joined_on und leaved_on arbeitet.

Wenn der Benutzer einen Channel betritt wird joined_on auf das Datum mit Zeit gesetzt und wenn dieser den Verlässt, wird leaved_on gesetzt.
Dadurch kann zum einen immer auf die Gesamte Ontime pro Nutzer zugegriffen werden und es wird RAM unabhängig gespeichert.
Des Weiteren könnte ein Webinterface über die Information, wo leaved_on nicht gesetzt ist darauf schließen, welcher Benutzer gerade online ist.

Beim Starten sollten die Werte natürlich durch das DatabaseModule gecheckt werden.
Also gibt es laut Tabelle Nutzer die Online sind, und sind diese in einem Sprach Kanal. Dies wird jedoch auf einen Konfigurierbaren Wert Limitiert, damit folgender Zufall ausgeschlossen wird.

Der Bot speichert, dass ich einen Channel betreten habe.
10 Minuten Später schmiert der Bot ab.
3 Tage Später wird der Bot wieder Online genommen und ich befinde mich in dem Moment in einem Channel.
Nun würde ich ca. 72h verrechnet bekommen. Um dies zu verhindern, darf joined_on maximal x Stunden her sein.

Bisher alles soweit alles drin aber es Fehlt noch, dass die Ontime gespeichert wird. Dazu mein Vorschlag: Ein weiteres Datenmodell ```UserJoinedVoiceChannel``` welches wie bei ```UserJoinedServer``` mit ```joined_on``` und ```leaved_on``` arbeitet. Wenn der Benutzer einen Channel betritt wird ```joined_on``` auf das Datum mit Zeit gesetzt und wenn dieser den Verlässt, wird ```leaved_on``` gesetzt. Dadurch kann zum einen immer auf die Gesamte Ontime pro Nutzer zugegriffen werden und es wird RAM unabhängig gespeichert. Des Weiteren könnte ein Webinterface über die Information, wo ```leaved_on``` nicht gesetzt ist darauf schließen, welcher Benutzer gerade online ist. Beim Starten sollten die Werte natürlich durch das DatabaseModule gecheckt werden. Also gibt es laut Tabelle Nutzer die Online sind, und sind diese in einem Sprach Kanal. Dies wird jedoch auf einen Konfigurierbaren Wert Limitiert, damit folgender Zufall ausgeschlossen wird. Der Bot speichert, dass ich einen Channel betreten habe. 10 Minuten Später schmiert der Bot ab. 3 Tage Später wird der Bot wieder Online genommen und ich befinde mich in dem Moment in einem Channel. Nun *würde* ich ca. 72h verrechnet bekommen. Um dies zu verhindern, darf ```joined_on``` maximal ```x``` Stunden her sein.
Author
Owner

Den Admins müssen noch nachrichten geschickt werden. (Admin Rollen konfigurieren)

Bei OnReady prüfen ob sich jemand in einem VoiceChannel befindet, und entsprechend in die DB eintragen.

Den Admins müssen noch nachrichten geschickt werden. (Admin Rollen konfigurieren) Bei OnReady prüfen ob sich jemand in einem VoiceChannel befindet, und entsprechend in die DB eintragen.
This repo is archived. You cannot comment on issues.
No Milestone
No project
No Assignees
1 Participants
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Blocks
#5 A-0.5 - Verwarnungssystem
sh-edraft.de/sh_gismo
#15 A-0.4.2 - Befehl: user-info
sh-edraft.de/sh_gismo
Depends on
#8 A-0.2 - Datenbank
sh-edraft.de/sh_gismo
Reference: sh-edraft.de/sh_gismo#9
No description provided.