albert/org.albert.extension.python/modules/genpw.py

42 lines
926 B
Python

# -*- coding: utf-8 -*-
"""
The extension will generate a random string of the
specified length and copy it to the clipboard.
"""
import os
import base64
from albertv0 import *
__iid__ = "PythonInterface/v0.1"
__prettyname__ = "Password Generator"
__version__ = "1.0"
__trigger__ = "genpw "
__author__ = "Scott Wallace"
__dependencies__ = []
ICON_PATH = iconLookup('dialog-password')
def handleQuery(query):
if query.isTriggered:
return generatePassword(query)
def generatePassword(query):
length = int(query.string.strip())
return [Item(
id=__prettyname__,
icon=ICON_PATH,
text='Generate a new %s-character password' % length,
subtext='',
completion="%s %s" % (__trigger__, query.string),
actions=[
ClipAction('Copy the new password to clipboard',
base64.encodestring(os.urandom(256))[:length])
]
)]