'Args:
subject(string, optional): Head text,
message(string, optional): Body text,
notify_action(string): \'play\'
script_args(list): ["python2", \'-p\', \'-zomg\']'

def notify(self, subject='', message='', notify_action='', script_args=None, *args, **kwargs):

    logger.debug((u'PlexPy    Notifiers    ::    Trying    to    run    notify    script,    action:    %s,    arguments:    %s' % ((notify_action or None), (script_args or None))))
    if (script_args is None):
        script_args = []
    if (not self.script_folder):
        return
    script = self.scripts.get(notify_action, kwargs.get('script', ''))
    if (notify_action and (not script)):
        logger.debug((u'PlexPy    Notifiers    ::    No    script    selected    for    action    %s,    exiting...' % notify_action))
        return
    elif (not script):
        logger.debug(u'PlexPy    Notifiers    ::    No    script    selected,    exiting...')
        return
    (name, ext) = os.path.splitext(script)
    if (ext == '.php'):
        prefix = 'php'
    elif (ext == '.pl'):
        prefix = 'perl'
    elif (ext == '.ps1'):
        prefix = 'powershell    -executionPolicy    bypass    -file'
    elif (ext == '.py'):
        prefix = 'python'
    elif (ext == '.pyw'):
        prefix = 'pythonw'
    elif (ext == '.rb'):
        prefix = 'ruby'
    else:
        prefix = ''
    if (os.name == 'nt'):
        script = script.encode(plexpy.SYS_ENCODING, 'ignore')
    if prefix:
        script = (prefix.split() + [script])
    else:
        script = [script]
    if (script_args and isinstance(script_args, basestring)):
        script_args = shlex.split(script_args)
    if (script_args and (os.name == 'nt')):
        script_args = [s.encode(plexpy.SYS_ENCODING, 'ignore') for s in script_args]
    if (prefix and script_args):
        if (script_args[0] in ['python2', 'python', 'pythonw', 'php', 'ruby', 'perl']):
            script[0] = script_args[0]
            del script_args[0]
    script.extend(script_args)
    logger.debug((u'PlexPy    Notifiers    ::    Full    script    is:    %s' % script))
    logger.debug(u'PlexPy    Notifiers    ::    Executing    script    in    a    new    thread.')
    thread = threading.Thread(target=self.run_script, args=(script,)).start()
    return True
