From 49550f0e8cfc7c57dbb2910aca83c1dce4ce2bfe Mon Sep 17 00:00:00 2001 From: Someone Date: Wed, 8 Dec 2021 19:38:38 +0100 Subject: [PATCH] [somebot] WS:Onboarding --- modules/WSOnboarding.py | 81 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 81 insertions(+) create mode 100644 modules/WSOnboarding.py diff --git a/modules/WSOnboarding.py b/modules/WSOnboarding.py new file mode 100644 index 0000000..8793ea6 --- /dev/null +++ b/modules/WSOnboarding.py @@ -0,0 +1,81 @@ +# Mattermost Bot module. +# Copyright (c) 2016-2021 by Someone (aka. Jan Vales ) +# published under MIT-License + +import pprint +import re +from inspect import cleandoc + + +from AbstractWSHandler import * +class WSOnboarding(AbstractWSHandler): + NAME = "onboarding" + + + def __init__(self, user_teams_and_channels, guest_teams_and_channels): + super().__init__() + + self.user_teams_and_channels = user_teams_and_channels + self.guest_teams_and_channels = guest_teams_and_channels + + + def on_WS_EVENT(self, data): + user = self.bot.api.get_user(data['data']['user_id']) + + if not "system_guest" in user["roles"]: + for team_id, chan_ids in self.user_teams_and_channels.items(): + for chan_id, excluded_user_ids in chan_ids.items(): + if not user["id"] in excluded_user_ids: + self.bot.api.add_user_to_team(team_id, user["id"], exc=False) + self.bot.api.add_user_to_channel(chan_id, user["id"], exc=False) + else: + for team_id, chan_ids in self.guest_teams_and_channels.items(): + for chan_id, excluded_user_ids in chan_ids.items(): + if not user["id"] in excluded_user_ids: + self.bot.api.add_user_to_team(team_id, user["id"], exc=False) + self.bot.api.add_user_to_channel(chan_id, user["id"], exc=False) + + c = self.bot.api.create_dm_channel_with(data['data']['user_id']) + + self.bot.api.create_post(c['id'], 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'], cleandoc(""" + Es gibt etliche Befehle, die dir die Navigation in Mattermost erleichtern sollen. Einige wichtige sind: + + **``/join-active`` bzw. ``/join-all`` im FSInf-Team** - Befiehlt mir, dich in alle aktiven/verfügbaren öffentlichen Channels 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'], 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 :) + """)) + + # additional info for guests. + if "system_guest" in user["roles"]: + self.bot.api.create_post(c['id'], cleandoc(""" + ## ``Confirm your student email to get full access to Mattermost`` + Your account is currently a [guest account](https://docs.mattermost.com/deployment/guest-accounts.html), which means your user expirience is limited due to privacy, copyright and licencing reasons and you are restricted to these channels: + * Chat + * Beratung (Consultation) + * Guest-Talk + + Guest accounts are deleted after 30 days of inactivity. + + To gain full access to all channels and features you need to go to your Account Settings and change your email to ``eXXXXXXXX@student.tuwien.ac.at`` and then click on the link in the confirmation email. You will then get full access within an hour. + """)) + -- 2.43.0