From d7841b4e801b5f2c6c69a3aec6b3d3456dc9c946 Mon Sep 17 00:00:00 2001 From: Someone Date: Fri, 19 Jun 2020 01:32:13 +0200 Subject: [PATCH] [somebot] WS:Onboarding --- somebot/modules/WSOnboarding.py | 72 +++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 somebot/modules/WSOnboarding.py diff --git a/somebot/modules/WSOnboarding.py b/somebot/modules/WSOnboarding.py new file mode 100644 index 0000000..0f39461 --- /dev/null +++ b/somebot/modules/WSOnboarding.py @@ -0,0 +1,72 @@ +# Mattermost Bot. +# Copyright (c) 2016-2020 by Someone (aka. Jan Vales ) +# published under MIT-License + +import inspect + + +from AbstractWSHandler import * +class WSOnboarding(AbstractWSHandler): + NAME = "onboarding" + + + def on_WS_EVENT(self, data): + # no longer needed, as its checked on registration + if data["event"] != "new_user": + return + + # on registration + # {'broadcast': {'channel_id': '', + # 'omit_users': None, + # 'team_id': '', + # 'user_id': ''}, + # 'data': {'user_id': '...'}, + # 'event': 'new_user', + # 'seq': ...} + + # todo: make configurable? + self.bot.api.add_user_to_team("nnw9hzzrgbdmbdcade1ryfr5wa", data["data"]["user_id"]) + self.bot.api.add_user_to_channel("sjouu7puffytfk6n4k36gpkter", data["data"]["user_id"]) + self.bot.api.add_user_to_team("sswtb6oqciyyfmkibh6mjz479w", data["data"]["user_id"]) + self.bot.api.add_user_to_channel("jo6iokdkdfnudrr5otiyijxm4c", data["data"]["user_id"]) + + self.spam_user(data) + return True + + + def spam_user(self, data): + c = self.bot.api.create_dm_channel_with(data['data']['user_id']) + + # splitting up posts to prevent "Show More" + # this Markdown cannot be properly formatted because mm converts newlines to
+ + msg = inspect.cleandoc(""" + ## **``Willkommen auf Mattermost!``** + + Ich habe mir erlaubt, dich in beide Teams (Gruppen) zu joinen. Mit der linken Spalte kannst du zwischen den 2 Teams hin und her springen. + **Das VoWi-Team beinhaltet** + + Einen öffentlichen Channel für jede LVA der :tu: Inf-Studien. Diese Channels werden von mir gemanaged. Ich informiere auch, wenn sich im VoWi zu der jeweiligen LVA etwas tut. :) + + Viele private Channels, die von Übungsgruppen genutzt werden. Du kannst für deine Gruppen gerne ebenfalls private Chanmel anlegen. + **Das FSInf-Team beinhaltet** + + Channels wie den Beratungschannel, Lernraum-Infos, das MemeOperationCenter, Programming und die Linux Lounge, Gaming, catcontent und andere Channels, die dich möglicherweise interessieren dürften.:) + """) + self.bot.api.create_post(c['id'], msg, props={"from_webhook":"true"}) + + msg = inspect.cleandoc(""" + Es gibt etliche Befehle, die dir die Navigation in Mattermost erleichtern sollen. Einige wichtige sind: + + **``/join-all`` im FSInf-Team** - Befiehlt mir, dich in alle verfügbaren öffentlichen Channel zu adden, damit du nich jedem Channel manuell beitreten musst. + + **``/tissjoin `` nur im VoWi-Team** - Basically /join-all in sinnvoll. Added dich in die LVA-Channels deiner tiss-favoriten. + + **``/beratungsinfo``** - Hilft dir, den Beratungschannel zu finden. + + **``/threads``** - Mattermost benutzt Threads, um Diskussionen übersichtlicher zu gestalten. Mit diesem Befehl kannst du deine Mitstudierenden darauf hinweisen, Threads zu benutzen. Dies ist der wohl most over-used Befehl hier und ist bereits zu memes verarbeitet worden. + + **``/raumsuche ``** hilft dir Räume an der TU zu finden. + """) + self.bot.api.create_post(c['id'], msg, props={"from_webhook":"true"}) + + msg = inspect.cleandoc(""" + Das Motto auf mattermost ist: **``Be excellent to each other``** + Sollte dir auffallen, dass sich wer nicht exzellent benimmt und z.b. andere beleidigt zögere nicht und kontaktiere eine_n der Team-Admin_as. + Sollte ich mich mal nicht exzellent benehmen, z.b. indem ich Befehle nicht ordnungsgemäß ausführe, oder du mich verbessern willst (ich bin in python geschrieben), kontaktiere meinen Botmaster @someone. + + Happy am meisten mattern :) + """) + self.bot.api.create_post(c['id'], msg, props={"from_webhook":"true"}) -- 2.43.0