• Content Count

  • Joined

  • Last visited

  1. @UrbanCircus I pieced together getting files created from an action but unfortunately haven't made any progress to populate the directories based on the structure of my project. import logging import ftrack_api import errno import os class MyCustomAction(object): '''Custom action.''' label = 'createfolders' identifier = 'my.custom.action' description = 'This is an example action creating folders' def __init__(self, session): '''Initialise action.''' super(MyCustomAction, self).__init__() self.session = session self.logger = logging.getLogger( __name__ + '.' + self.__class__.__name__ ) def register(self): '''Register action.''' self.session.event_hub.subscribe( ' and source.user.username={0}'.format( self.session.api_user ), ) 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 discover(self, event): '''Return action config if triggered on a single asset version.''' # If selection contains more than one item return early since # this action can only handle a single version. selection = event['data']['selection']'Got selection: {0}'.format(selection)) # action works in the task context if len(selection) != 1 or selection[0]['entityType'] != 'task': return return { 'items': [{ 'label': self.label, 'description': self.description, 'actionIdentifier': self.identifier }] } def launch(self, event): '''Callback method for custom action.''' path = 'C:\\project\\test\\' try: os.makedirs(path) except OSError as error: if error.errno != errno.EEXIST: raise return { 'success': True, 'message': 'did it work?' } def register(session, **kw): '''Register plugin.''' # Validate that session is an instance of ftrack_api.Session. If not, # assume that register is being called from an incompatible API # and return without doing anything. if not isinstance(session, ftrack_api.Session): # Exit to avoid registering this plugin again. return action = MyCustomAction(session) action.register() if __name__ == '__main__': logging.basicConfig(level=logging.INFO) session = ftrack_api.Session() register(session) # Wait for events. session.event_hub.wait()
  2. That was it! Thanks for the help.
  3. Hello, I am trying to follow th python_API tutorial but I cant connect to my server. What am I missing? I am following the code from the tutorial with my server, api key, and username but I get the following error >>> session = ftrack_api.Session( ... server_url='', ... api_key='7545384e-a653-11e1-a82c-f22c11dd25eq', ... api_user='martin' ... ) Traceback (most recent call last): File "<stdin>", line 4, in <module> File "C:\Python27\lib\site-packages\ftrack_api\", line 224, in __init__ self._server_information = self._fetch_server_information() File "C:\Python27\lib\site-packages\ftrack_api\", line 1317, in _fetch_server_information result = self._call([{'action': 'query_server_information'}]) File "C:\Python27\lib\site-packages\ftrack_api\", line 1620, in _call raise ftrack_api.exception.ServerError(error_message) ftrack_api.exception.ServerError: Server reported error: HTTPMethodNotAllowed()
  4. Hi All, I am just going through some actions examples and I am looking for the example code from this video The link in the comments doesn't seem to work anymore. Anyone have the example code somewhere else that they can post? cheers, Steve