From 069ba7b3afc2a7785c1fd8e927393834e5aca4b0 Mon Sep 17 00:00:00 2001 From: Petr Kalis Date: Wed, 9 Jun 2021 18:52:01 +0200 Subject: [PATCH] client/#75 - added functionality to send different message to different channel(s) --- .../plugins/publish/collect_slack_family.py | 5 +- .../plugins/publish/integrate_slack_api.py | 52 +++++++++++------- .../defaults/project_settings/slack.json | 11 +--- .../projects_schema/schema_project_slack.json | 34 +++++++++--- website/docs/assets/slack_project.png | Bin 34468 -> 48648 bytes website/docs/module_slack.md | 11 ++-- 6 files changed, 70 insertions(+), 43 deletions(-) diff --git a/openpype/modules/slack/plugins/publish/collect_slack_family.py b/openpype/modules/slack/plugins/publish/collect_slack_family.py index fefc0c8f56..2110c0703b 100644 --- a/openpype/modules/slack/plugins/publish/collect_slack_family.py +++ b/openpype/modules/slack/plugins/publish/collect_slack_family.py @@ -30,7 +30,6 @@ class CollectSlackFamilies(pyblish.api.InstancePlugin): profile = filter_profiles(self.profiles, key_values, logger=self.log) - self.log.debug("profile ::{}".format(profile)) # make slack publishable if profile: if instance.data.get('families'): @@ -38,8 +37,8 @@ class CollectSlackFamilies(pyblish.api.InstancePlugin): else: instance.data['families'] = ['slack'] - instance.data["slack_channel"] = profile["channel"] - instance.data["slack_message"] = profile["message"] + instance.data["slack_channel_message_profiles"] = \ + profile["channel_messages"] slack_token = (instance.context.data["project_settings"] ["slack"] diff --git a/openpype/modules/slack/plugins/publish/integrate_slack_api.py b/openpype/modules/slack/plugins/publish/integrate_slack_api.py index d3f0f36140..ccd00dc1c8 100644 --- a/openpype/modules/slack/plugins/publish/integrate_slack_api.py +++ b/openpype/modules/slack/plugins/publish/integrate_slack_api.py @@ -23,8 +23,30 @@ class IntegrateSlackAPI(pyblish.api.InstancePlugin): optional = True def process(self, instance): - message_templ = instance.data["slack_message"] + published_path = self._get_thumbnail_path(instance) + for message_profile in instance.data["slack_channel_message_profiles"]: + message = self._get_filled_message(message_profile["message"], + instance) + if not message: + return + + for channel in message_profile["channels"]: + if six.PY2: + self._python2_call(instance.data["slack_token"], + channel, + message, + published_path, + message_profile["upload_thumbnail"]) + else: + self._python3_call(instance.data["slack_token"], + channel, + message, + published_path, + message_profile["upload_thumbnail"]) + + def _get_filled_message(self, message_templ, instance): + """Use message_templ and data from instance to get message content.""" fill_data = copy.deepcopy(instance.context.data["anatomyData"]) fill_pairs = ( @@ -40,27 +62,15 @@ class IntegrateSlackAPI(pyblish.api.InstancePlugin): multiple_case_variants = prepare_template_data(fill_pairs) fill_data.update(multiple_case_variants) + message = None try: message = message_templ.format(**fill_data) except Exception: self.log.warning( "Some keys are missing in {}".format(message_templ), exc_info=True) - return - published_path = self._get_thumbnail_path(instance) - - for channel in instance.data["slack_channel"]: - if six.PY2: - self._python2_call(instance.data["slack_token"], - channel, - message, - published_path) - else: - self._python3_call(instance.data["slack_token"], - channel, - message, - published_path) + return message def _get_thumbnail_path(self, instance): """Returns abs url for thumbnail if present in instance repres""" @@ -79,11 +89,13 @@ class IntegrateSlackAPI(pyblish.api.InstancePlugin): break return published_path - def _python2_call(self, token, channel, message, published_path): + def _python2_call(self, token, channel, message, + published_path, upload_thumbnail): from slackclient import SlackClient try: client = SlackClient(token) - if published_path and os.path.exists(published_path): + if upload_thumbnail and \ + published_path and os.path.exists(published_path): with open(published_path, 'rb') as pf: response = client.api_call( "files.upload", @@ -108,12 +120,14 @@ class IntegrateSlackAPI(pyblish.api.InstancePlugin): error_str = self._enrich_error(str(e), channel) self.log.warning("Error happened: {}".format(error_str)) - def _python3_call(self, token, channel, message, published_path): + def _python3_call(self, token, channel, message, + published_path, upload_thumbnail): from slack_sdk import WebClient from slack_sdk.errors import SlackApiError try: client = WebClient(token=token) - if published_path and os.path.exists(published_path): + if upload_thumbnail and \ + published_path and os.path.exists(published_path): _ = client.files_upload( channels=channel, initial_comment=message, diff --git a/openpype/settings/defaults/project_settings/slack.json b/openpype/settings/defaults/project_settings/slack.json index 853ef4bed7..e70ef77fd2 100644 --- a/openpype/settings/defaults/project_settings/slack.json +++ b/openpype/settings/defaults/project_settings/slack.json @@ -1,20 +1,15 @@ { - "token": "xoxb-2134660737317-2122995982087-cALVXgj3mpBhdf2nO36cdWok", + "token": "", "publish": { "CollectSlackFamilies": { "enabled": true, "optional": true, "profiles": [ { - "families": [ - "workfile" - ], + "families": [], "tasks": [], "hosts": [], - "channel": [ - "things" - ], - "message": "{Asset} was publishet {subset} with {thumbnail}" + "channel_messages": [] } ] } diff --git a/openpype/settings/entities/schemas/projects_schema/schema_project_slack.json b/openpype/settings/entities/schemas/projects_schema/schema_project_slack.json index 83c8ab0812..532aa083b3 100644 --- a/openpype/settings/entities/schemas/projects_schema/schema_project_slack.json +++ b/openpype/settings/entities/schemas/projects_schema/schema_project_slack.json @@ -68,16 +68,32 @@ "type": "separator" }, { + "key": "channel_messages", + "label": "Messages to channels", "type": "list", - "object_type": "text", - "key": "channel", - "label": "Channel" - }, - { - "type": "text", - "multiline": true, - "key": "message", - "label": "Message" + "use_label_wrap": true, + "object_type": { + "type": "dict", + "children": [ + { + "type": "list", + "object_type": "text", + "key": "channels", + "label": "Channels" + }, + { + "type": "boolean", + "key": "upload_thumbnail", + "label": "Upload thumbnail" + }, + { + "type": "text", + "multiline": false, + "key": "message", + "label": "Message" + } + ] + } } ] } diff --git a/website/docs/assets/slack_project.png b/website/docs/assets/slack_project.png index 496013800f8eebbf03828a3018095becd61320b1..417cdab2de4dfb70f985fadeb49fddf3c55e61eb 100644 GIT binary patch literal 48648 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 PD9kQf{f;)ee(!$)16z81 literal 34468 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 Dx4{?{ diff --git a/website/docs/module_slack.md b/website/docs/module_slack.md index e993f36965..0a3d542393 100644 --- a/website/docs/module_slack.md +++ b/website/docs/module_slack.md @@ -48,20 +48,23 @@ Eg. If I want to be notified when render is published from Maya, setting is: - family: 'render' - host: 'Maya' -### Channel -Message could be delivered to one or multiple channels, by default app allows Slack bot +### Messages to channels + +#### Channels +Multiple messages could be delivered to one or multiple channels, by default app allows Slack bot to send messages to 'public' channels (eg. bot doesn't need to join the channel first). ![Configure module](assets/slack_system.png) +#### Upload thumbnail Integration can upload 'thumbnail' file (if present in instance), for that bot must be manually added to target channel by Slack admin! (In target channel write: ```/invite @OpenPypeNotifier``) -### Message +#### Message Message content can use Templating (see https://openpype.io/docs/admin_settings_project_anatomy/#available-template-keys). -Pre selected set of keys could be used in lowercase, Capitalized or UPPERCASE format, values will be modified accordingly. +Pre-selected set of keys could be used in lowercase, Capitalized or UPPERCASE format, values will be modified accordingly. ({Asset} >> "Asset", {FAMILY} >> "RENDER") **Available keys:**