mirror of
https://github.com/Luzifer/password.git
synced 2024-09-20 10:52:57 +00:00
48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
|
#author: Peter Okma
|
||
|
import xml.etree.ElementTree as et
|
||
|
|
||
|
|
||
|
class Feedback():
|
||
|
"""Feeback used by Alfred Script Filter
|
||
|
|
||
|
Usage:
|
||
|
fb = Feedback()
|
||
|
fb.add_item('Hello', 'World')
|
||
|
fb.add_item('Foo', 'Bar')
|
||
|
print fb
|
||
|
|
||
|
"""
|
||
|
|
||
|
def __init__(self):
|
||
|
self.feedback = et.Element('items')
|
||
|
|
||
|
def __repr__(self):
|
||
|
"""XML representation used by Alfred
|
||
|
|
||
|
Returns:
|
||
|
XML string
|
||
|
"""
|
||
|
return et.tostring(self.feedback)
|
||
|
|
||
|
def add_item(self, title, subtitle="", arg="", valid="yes", autocomplete="", icon="icon.png"):
|
||
|
"""
|
||
|
Add item to alfred Feedback
|
||
|
|
||
|
Args:
|
||
|
title(str): the title displayed by Alfred
|
||
|
Keyword Args:
|
||
|
subtitle(str): the subtitle displayed by Alfred
|
||
|
arg(str): the value returned by alfred when item is selected
|
||
|
valid(str): whether or not the entry can be selected in Alfred to trigger an action
|
||
|
autcomplete(str): the text to be inserted if an invalid item is selected. This is only used if 'valid' is 'no'
|
||
|
icon(str): filename of icon that Alfred will display
|
||
|
"""
|
||
|
item = et.SubElement(self.feedback, 'item', uid=str(len(self.feedback)),
|
||
|
arg=arg, valid=valid, autocomplete=autocomplete)
|
||
|
_title = et.SubElement(item, 'title')
|
||
|
_title.text = title
|
||
|
_sub = et.SubElement(item, 'subtitle')
|
||
|
_sub.text = subtitle
|
||
|
_icon = et.SubElement(item, 'icon')
|
||
|
_icon.text = icon
|