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
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;
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