Exemplo n.º 1
0
def getIcon(value):
    result = 'mdi:home'

    if value == 'not_home':
        result = 'away'
    elif value == 'home':
        result = 'home'

    return icon.getIcon(result, 'w')
def main(wf):

    ####################################################################
    # Get init data
    ####################################################################
    password = util.getPassword(wf)
    url = util.getURL(wf)

    ####################################################################
    # Fetch all data in background if the query is empty
    ####################################################################

    sys.stderr.write('query : ' + str(wf.args) + '\n')
    sys.stderr.write('el : ' + str(wf.args[0]) + '\n')
    sys.stderr.write('action : ' + str(wf.args[1]) + '\n')

    pin = ''
    if len(wf.args) == 3:
        sys.stderr.write('pin : ' + str(wf.args[2]) + '\n')
        pin = wf.args[2]

    query = wf.args[0].split(' ')

    data = util.getData(wf, 'alarm_control_panel')
    item = data[wf.args[0]]

    res = [{
        'name': 'Enter Pin Code and press <Enter>'
    }]

    # Loop through the returned posts and add an item for each to
    # the list of results for Alfred
    #for post in posts:

    for post in res:
        sys.stderr.write("post : " + str(post) + '\n')

        wf.add_item(
            title=post['name'],
            subtitle='',
            valid=True,
            arg=wf.args[0] + ' ' + wf.args[1] + ' ' + pin,
            #arg='https://browall.duckdns.org:8123/api/services/automation/trigger?api_password=DrumNBass1111',
            icon=icon.getIcon('mdi:alarm', 'w'))

        # Send the results to Alfred as XML
    wf.send_feedback()

    return 0
def main(wf):

	####################################################################
     # Get init data
    ####################################################################
    parser = argparse.ArgumentParser()
    parser.add_argument('query', nargs='?', default=None)
    args = parser.parse_args(wf.args)

    password = util.getPassword(wf);
    url = util.getURL(wf);

     ####################################################################
     # Fetch all data in background if the query is empty
     ####################################################################
    if args.query == None:
        if not is_running('update'):
            cmd = ['/usr/bin/python', wf.workflowfile('update_data.py')]
            run_in_background('update', cmd)

    data = util.getData(wf, 'sensor')

    def search_key_for_post(post):
        """Generate a string search key for a post"""
        item = data[post]

        elements = []
        elements.append(item['name'])  # title of post
        elements.append(item['friendly_name'])
        elements.append(item['entity_id'])
        elements.append(item['unit'])
        elements.append(item['search_words'])

        if 'icon' in item.keys():
            #sys.stderr.write("icon : " + str(item['icon']) + '\n')

            icon = item['icon'].split(':')
            if(len(icon) == 2):
                elements.append(icon[1])


        return u' '.join(elements)

    def wrapper():
        return data

    posts = wf.cached_data('allSensors', wrapper, max_age=1)

    # If script was passed a query, use it to filter posts
    if args.query and data:
    	posts = wf.filter(args.query, data, key=search_key_for_post, min_score=20)

    if not posts:  # we have no data to show, so show a warning and stop
        wf.add_item('No posts found', icon=ICON_WARNING)
        wf.send_feedback()
        return 0

    if wf.update_available:
        # Add a notification to top of Script Filter results
        wf.add_item('New version available',
                    'Action this item to install the update',
                    autocomplete='workflow:update',
                    icon=ICON_INFO)

    # Loop through the returned posts and add an item for each to
    # the list of results for Alfred
    #for post in posts:

    for post in posts:
        #sys.stderr.write("post : " + str(post) + '\n')
        item = data[post];

        ICON = icon.getIcon(item['icon'], 'w');

        wf.add_item(title=item['friendly_name'] + ' : ' + item['state'] + ' ' + item['unit'],
                    subtitle=item['entity_id'],
                    valid=False,
                    arg=item['entity_id'],
                    icon=ICON)

    # Send the results to Alfred as XML
    wf.send_feedback()
    return 0;
def main(wf):

    ####################################################################
    # Get init data
    ####################################################################
    password = util.getPassword(wf)
    url = util.getURL(wf)

    ####################################################################
    # Fetch all data in background if the query is empty
    ####################################################################

    sys.stderr.write('query : ' + str(wf.args) + '\n')
    sys.stderr.write('el : ' + str(wf.args[0]) + '\n')

    query = wf.args[0].split(' ')

    data = util.getData(wf, 'alarm_control_panel')
    item = data[wf.args[0]]

    def search_key_for_post(post):
        elements = []
        elements.append(post['name'])
        elements.append(post['value'])
        return u' '.join(elements)

    # If script was passed a query, use it to filter posts
    if item['state'] == 'disarmed':
        res = [{
            'name': 'Arm home',
            'value': 'arm_home'
        }, {
            'name': 'Arm away',
            'value': 'arm_away'
        }]
    else:
        res = [{
            'name': 'Disarmed',
            'value': 'disarmed'
        }]

    if not res:  # we have no data to show, so show a warning and stop
        wf.add_item('No posts found', icon=ICON_WARNING)
        wf.send_feedback()
        return 0

    # Loop through the returned posts and add an item for each to
    # the list of results for Alfred
    #for post in posts:

    for post in res:
        sys.stderr.write("post : " + str(post) + '\n')

        wf.add_item(
            title=post['name'],
            subtitle='',
            valid=True,
            arg=wf.args[0] + " " + post['value'],
            #arg='https://browall.duckdns.org:8123/api/services/automation/trigger?api_password=DrumNBass1111',
            icon=icon.getIcon('mdi:alarm', 'w'))

        # Send the results to Alfred as XML
    wf.send_feedback()

    return 0
Exemplo n.º 5
0
def main(wf):

	####################################################################
     # Get init data
    ####################################################################
    #parser = argparse.ArgumentParser()
    #parser.add_argument('query', nargs='?', default=None)
    #args = parser.parse_args(wf.args)

    password = util.getPassword(wf);
    url = util.getURL(wf);

     ####################################################################
     # Fetch all data in background if the query is empty
     ####################################################################

    sys.stderr.write('query : '+ str(wf.args) + '\n')
    sys.stderr.write('el : '+ str(wf.args[0]) + '\n')

    query = wf.args[0].split(' ')



    sys.stderr.write('in : '+ '\n')
    
    level = '';
    if len(wf.args) == 2 :
        level = wf.args[1]


    def search_key_for_post(post):
        elements = []
        elements.append(post['name']) 
        elements.append(post['value']) 
        return u' '.join(elements)

    def wrapper():
        data = [{'name' : 'Off', 'value' : 'off'},
                {'name' : 'max', 'value' : '100'},
                {'name' : '90%', 'value' : '90'},
                {'name' : '80%', 'value' : '80'},
                {'name' : '70%', 'value' : '70'}, 
                {'name' : '60%', 'value' : '60'}, 
                {'name' : '50%', 'value' : '50'},
                {'name' : '40%', 'value' : '40'},
                {'name' : '30%', 'value' : '30'},
                {'name' : '20%', 'value' : '20'}, 
                {'name' : '10%', 'value' : '10'}, 
                {'name' : 'min', 'value' : '0'}]
        return data

    posts = wf.cached_data('allLightLevels', wrapper, max_age=60)

    # If script was passed a query, use it to filter posts
    if level:
        res = wf.filter(level, posts, key=search_key_for_post, min_score=20)
    else :
        res = posts;

    if not res:  # we have no data to show, so show a warning and stop
        wf.add_item('No posts found', icon=ICON_WARNING)
        wf.send_feedback()
        return 0


    # Loop through the returned posts and add an item for each to
    # the list of results for Alfred
    #for post in posts:

    for post in res:
        sys.stderr.write("post : " + str(post) + '\n')

        if post['value'] == 'off' :
            v_icon = icon.getIcon('light-off','w')
        else : 
            v_icon = icon.getIcon('light-on','w')

        wf.add_item(title=post['name'],
                    subtitle='',
                    valid=True,
                    arg=wf.args[0] + " " + post['value'],
                    icon=v_icon)

        # Send the results to Alfred as XML
    wf.send_feedback()

    return 0;
def main(wf):

    ####################################################################
     # Get init data
    ####################################################################
    parser = argparse.ArgumentParser()
    parser.add_argument('query', nargs='?', default=None)
    args = parser.parse_args(wf.args)

    password = util.getPassword(wf);
    url = util.getURL(wf);

     ####################################################################
     # Fetch all data in background if the query is empty
     ####################################################################
    if args.query == None:
        if not is_running('update'):
            cmd = ['/usr/bin/python', wf.workflowfile('update_data.py')]
            run_in_background('update', cmd)

    data = util.getData(wf, 'alarm_control_panel')

    def search_key_for_post(post):
        """Generate a string search key for a post"""
        item = data[post]

        elements = []
        elements.append(item['friendly_name'])
        elements.append(item['entity_id'])

        return u' '.join(elements)

    def wrapper():
        return data

    posts = wf.cached_data('allAAlarms', wrapper, max_age=1)

    # If script was passed a query, use it to filter posts
    if args.query and data:
        posts = wf.filter(args.query, data, key=search_key_for_post, min_score=20)

    if not posts:  # we have no data to show, so show a warning and stop
        wf.add_item('No posts found', icon=ICON_WARNING)
        wf.send_feedback()
        return 0

    if wf.update_available:
        # Add a notification to top of Script Filter results
        wf.add_item('New version available',
                    'Action this item to install the update',
                    autocomplete='workflow:update',
                    icon=ICON_INFO)

    # Loop through the returned posts and add an item for each to
    # the list of results for Alfred
    #for post in posts:

    for post in posts:
        sys.stderr.write("post : " + str(post) + '\n')
        item = data[post];
        subtitle = '<Enter> to select alarm'

        wf.add_item(title=item['friendly_name'],
                    subtitle=subtitle,
                    valid=True,
                    arg=item['entity_id'],
                    #arg='https://browall.duckdns.org:8123/api/services/automation/trigger?api_password=DrumNBass1111',
                    icon=icon.getIcon('mdi:alarm','w'))

    # Send the results to Alfred as XML
    wf.send_feedback()
    return 0;
Exemplo n.º 7
0
    def __init__(self, *args, **kwargs):
        wx.Frame.__init__(self, *args, **kwargs)
        self._progress = None

        self.SetTitle(u"Image Renamer")
        self.SetSize((800,600))

        panel = wx.Panel(self)

        self._comboBoxDelimiter = wx.ComboBox(panel)
        self._checkboxFlickr = wx.CheckBox(panel, label=u"Flickr Lookup")
        self._checkboxCapital = wx.CheckBox(panel, label=u"Capital")
        self._listRename = ListCtrlRename(panel)
        self.buttonOpen = wx.Button(panel, label=u"Select Folder")
        self.buttonRename = wx.Button(panel, label=u"Rename Files")
        self._textPath = wx.TextCtrl(panel)

        # Menus first
        menuBar = wx.MenuBar()
        menuFile = wx.Menu()
        self.menuFileOpen = menuFile.Append(wx.ID_OPEN, u'&Open Folder\tCtrl+O',
                                       u'Select a directory')
        self.menuFileQuit = menuFile.Append(wx.ID_EXIT, u'&Quit\tCtrl+Q',
                                            u'Quit application')

        menuHelp = wx.Menu()
        #self.menuHelpHelp = menuHelp.Append(wx.ID_HELP, '&Help\tF1',
        #                                    'View Help files')
        self.menuHelpAbout = menuHelp.Append(wx.ID_ABOUT, u'&About',
                                        u'About this program')

        menuBar.Append(menuFile, title=u"&File")
        menuBar.Append(menuHelp, title=u"&Help")

        # Set up the basic sizer - all elements fit into this.
        sizer = wx.GridBagSizer(7,4)

        boxDropdowns = wx.BoxSizer(orient=wx.HORIZONTAL)
        textDelimiter = wx.StaticText(panel, label=u"Delimiter")
        boxDropdowns.Add(textDelimiter, flag=wx.LEFT|wx.ALIGN_CENTER_VERTICAL,
                         border=5)
        boxDropdowns.Add(self._comboBoxDelimiter, flag=wx.LEFT, border=5)

        sizer.Add(boxDropdowns, pos=(0,0), flag=wx.TOP, border=5)

        helpDelimiter = wx.StaticText(
            panel,
            label=u"Determines the character used to separate words.")
        helpFlickr = wx.StaticText(
            panel,
            label=u"Replaces any filename from Flickr with its name from the site.")
        helpCapital = wx.StaticText(
            panel,
            label=u"Capitalizes the first letter of each word.")

        sizer.Add(helpDelimiter, pos=(0,1),
                  flag=wx.LEFT|wx.TOP|wx.ALIGN_CENTER_VERTICAL, border=5)
        sizer.Add(helpFlickr, pos=(2,1), flag=wx.LEFT, border=5)
        sizer.Add(helpCapital, pos=(3,1), flag=wx.LEFT, border=5)

        line = wx.StaticLine(panel)
        sizer.Add(line, pos=(1,0), span=(1,4), flag=wx.EXPAND)


        sizer.Add(self._checkboxFlickr, pos=(2,0),
                  flag=wx.LEFT, border=5)
        sizer.Add(self._checkboxCapital, pos=(3,0),
                  flag=wx.LEFT, border=5)

        sizer.Add(self._listRename, pos=(4,0), span=(1,4), flag=wx.EXPAND)

        boxPath = wx.BoxSizer(orient=wx.HORIZONTAL)
        labelPath = wx.StaticText(panel, label=u"Current Path")
        boxPath.Add(labelPath, flag=wx.LEFT|wx.ALIGN_CENTER_VERTICAL, border=5)
        boxPath.Add(self._textPath, proportion=1, flag=wx.EXPAND|wx.LEFT,
                    border=5)

        sizer.Add(boxPath, pos=(5,0), span=(1,2),
                  flag=wx.EXPAND|wx.LEFT|wx.BOTTOM, border=5)
        sizer.Add(self.buttonOpen, pos=(5,2),
                  flag=wx.LEFT|wx.BOTTOM, border=5)
        sizer.Add(self.buttonRename, pos=(5,3),
                  flag=wx.LEFT|wx.BOTTOM|wx.RIGHT, border=5)

        sizer.AddGrowableCol(1)
        sizer.AddGrowableRow(4)

        panel.SetSizer(sizer)

        self.SetMenuBar(menuBar)

        self.tbIcon = getIcon()
        self.SetIcon(self.tbIcon)

        self.Centre()
        self.Show()
def main(wf):

    ####################################################################
    # Get init data
    ####################################################################
    parser = argparse.ArgumentParser()
    parser.add_argument('query', nargs='?', default=None)
    args = parser.parse_args(wf.args)

    password = util.getPassword(wf)
    url = util.getURL(wf)

    ####################################################################
    # Fetch all data in background if the query is empty
    ####################################################################
    if args.query == None:
        if not is_running('update'):
            cmd = ['/usr/bin/python', wf.workflowfile('update_data.py')]
            run_in_background('update', cmd)

    data = util.getData(wf, 'automation')

    def search_key_for_post(post):
        """Generate a string search key for a post"""
        item = data[post]

        elements = []
        elements.append(item['name'])  # title of post
        elements.append(item['friendly_name'])
        elements.append(item['entity_id'])

        return u' '.join(elements)

    def wrapper():
        return data

    posts = wf.cached_data('allAutomations', wrapper, max_age=1)

    # If script was passed a query, use it to filter posts
    if args.query and data:
        posts = wf.filter(args.query,
                          data,
                          key=search_key_for_post,
                          min_score=20)

    if not posts:  # we have no data to show, so show a warning and stop
        wf.add_item('No posts found', icon=ICON_WARNING)
        wf.send_feedback()
        return 0

    # Loop through the returned posts and add an item for each to
    # the list of results for Alfred
    #for post in posts:

    for post in posts:
        sys.stderr.write("post : " + str(post) + '\n')
        item = data[post]
        subtitle = '<Enter> to trigger automation'

        wf.add_item(title=item['friendly_name'],
                    subtitle=subtitle,
                    valid=True,
                    arg=item['entity_id'],
                    icon=icon.getIcon('mdi:home', 'w'))

    # Send the results to Alfred as XML
    wf.send_feedback()
    return 0