diff --git a/pype/ftrack/events/event_show_message.py b/pype/ftrack/events/event_show_message.py new file mode 100644 index 0000000000..b0309713d9 --- /dev/null +++ b/pype/ftrack/events/event_show_message.py @@ -0,0 +1,32 @@ +import os +import sys +import re +import ftrack_api +from ftrack_event_handler import BaseEvent +from app import api + +class Show_Message(BaseEvent): + + def launch(self, event): + + self.session.event_hub.publish_reply(event, event['data']) + return event['data'] + + def register(self): + # self.session.event_hub.subscribe('topic=show_message_topic', self.launch) + + self.session.event_hub.subscribe( + 'topic=ftrack.action.launch and data.actionIdentifier={0} and source.user.username={1}'.format( + self.identifier, + self.session.api_user + ), + self._launch + ) + +def register(session, **kw): + '''Register plugin. Called when used as an plugin.''' + if not isinstance(session, ftrack_api.session.Session): + return + + event = Show_Message(session) + event.register() diff --git a/pype/ftrack/events/ftrack_event_handler.py b/pype/ftrack/events/ftrack_event_handler.py index 009c2b2d57..f3ad931985 100644 --- a/pype/ftrack/events/ftrack_event_handler.py +++ b/pype/ftrack/events/ftrack_event_handler.py @@ -46,6 +46,8 @@ class BaseEvent(object): '''Registers the event, subscribing the the discover and launch topics.''' self.session.event_hub.subscribe('topic=ftrack.update', self._launch) + self.log.info("----- event - <" + self.__class__.__name__ + "> - Has been registered -----") + def _translate_event(self, session, event): '''Return *event* translated structure to be used with the API.''' _selection = event['data'].get('entities',[]) @@ -130,6 +132,24 @@ class BaseEvent(object): ''' raise NotImplementedError() + def show_message(self, event, input_message, result = False): + if not isinstance(result, bool): + result = False + + try: + message = str(input_message) + except: + return + source = {} + source['id'] = event['source']['applicationId'] + source['user'] = event['source']['user'] + self.session.event_hub.publish_reply(event, event['data'], source) + # event = ftrack_api.event.base.Event( + # topic='show_message_topic', + # data={'success':result, 'message': message} + # ) + # + # self.session.event_hub.publish(event) def _handle_result(self, session, result, entities, event): '''Validate the returned result from the action callback''' diff --git a/pype/ftrack/events/test_event.py b/pype/ftrack/events/test_event.py index aa3bbb6e0d..19022e3360 100644 --- a/pype/ftrack/events/test_event.py +++ b/pype/ftrack/events/test_event.py @@ -11,8 +11,8 @@ class Test_Event(BaseEvent): '''just a testing event''' exceptions = ['assetversion', 'job', 'user', 'reviewsessionobject', 'timer', 'socialfeed', 'timelog'] - - + self.show_message(event,"Test",True) + self.log.info(event['source']) return True