Changeset View
Standalone View
pykolab/cli/cmd_list_deleted_mailboxes.py
Show All 31 Lines | |||||
conf = pykolab.getConf() | conf = pykolab.getConf() | ||||
def __init__(): | def __init__(): | ||||
commands.register('list_deleted_mailboxes', execute) | commands.register('list_deleted_mailboxes', execute) | ||||
def cli_options(): | def cli_options(): | ||||
my_option_group = conf.add_cli_parser_option_group(_("CLI Options")) | my_option_group = conf.add_cli_parser_option_group(_("CLI Options")) | ||||
my_option_group.add_option( '--raw', | my_option_group.add_option( '--raw', | ||||
dest = "raw", | dest = "raw", | ||||
Lint: PEP8 E221: multiple spaces before operator | |||||
Lint: PEP8 E251 unexpected spaces around keyword / parameter equals Lint: PEP8 E251: unexpected spaces around keyword / parameter equals | |||||
Lint: PEP8 E251 unexpected spaces around keyword / parameter equals Lint: PEP8 E251: unexpected spaces around keyword / parameter equals | |||||
action = "store_true", | action = "store_true", | ||||
Lint: PEP8 E221 multiple spaces before operator Lint: PEP8 E221: multiple spaces before operator | |||||
Lint: PEP8 E251 unexpected spaces around keyword / parameter equals Lint: PEP8 E251: unexpected spaces around keyword / parameter equals | |||||
Lint: PEP8 E251 unexpected spaces around keyword / parameter equals Lint: PEP8 E251: unexpected spaces around keyword / parameter equals | |||||
default = False, | default = False, | ||||
Lint: PEP8 E251 unexpected spaces around keyword / parameter equals Lint: PEP8 E251: unexpected spaces around keyword / parameter equals | |||||
Lint: PEP8 E251 unexpected spaces around keyword / parameter equals Lint: PEP8 E251: unexpected spaces around keyword / parameter equals | |||||
help = _("Display raw IMAP UTF-7 folder names")) | help = _("Display raw IMAP UTF-7 folder names")) | ||||
Lint: PEP8 E221 multiple spaces before operator Lint: PEP8 E221: multiple spaces before operator | |||||
Lint: PEP8 E251 unexpected spaces around keyword / parameter equals Lint: PEP8 E251: unexpected spaces around keyword / parameter equals | |||||
Lint: PEP8 E251 unexpected spaces around keyword / parameter equals Lint: PEP8 E251: unexpected spaces around keyword / parameter equals | |||||
my_option_group.add_option( '--server', | my_option_group.add_option( '--server', | ||||
dest = "connect_server", | dest = "connect_server", | ||||
Lint: PEP8 E251 unexpected spaces around keyword / parameter equals Lint: PEP8 E251: unexpected spaces around keyword / parameter equals | |||||
Lint: PEP8 E221 multiple spaces before operator Lint: PEP8 E221: multiple spaces before operator | |||||
Lint: PEP8 E251 unexpected spaces around keyword / parameter equals Lint: PEP8 E251: unexpected spaces around keyword / parameter equals | |||||
action = "store", | action = "store", | ||||
Lint: PEP8 E221 multiple spaces before operator Lint: PEP8 E221: multiple spaces before operator | |||||
Lint: PEP8 E251 unexpected spaces around keyword / parameter equals Lint: PEP8 E251: unexpected spaces around keyword / parameter equals | |||||
Lint: PEP8 E251 unexpected spaces around keyword / parameter equals Lint: PEP8 E251: unexpected spaces around keyword / parameter equals | |||||
default = None, | default = None, | ||||
Lint: PEP8 E251 unexpected spaces around keyword / parameter equals Lint: PEP8 E251: unexpected spaces around keyword / parameter equals | |||||
Lint: PEP8 E251 unexpected spaces around keyword / parameter equals Lint: PEP8 E251: unexpected spaces around keyword / parameter equals | |||||
metavar = "SERVER", | metavar = "SERVER", | ||||
Lint: PEP8 E251 unexpected spaces around keyword / parameter equals Lint: PEP8 E251: unexpected spaces around keyword / parameter equals | |||||
Lint: PEP8 E251 unexpected spaces around keyword / parameter equals Lint: PEP8 E251: unexpected spaces around keyword / parameter equals | |||||
help = _("List mailboxes on server SERVER only.")) | help = _("List mailboxes on server SERVER only.")) | ||||
Lint: PEP8 E221 multiple spaces before operator Lint: PEP8 E221: multiple spaces before operator | |||||
Lint: PEP8 E251 unexpected spaces around keyword / parameter equals Lint: PEP8 E251: unexpected spaces around keyword / parameter equals | |||||
Lint: PEP8 E251 unexpected spaces around keyword / parameter equals Lint: PEP8 E251: unexpected spaces around keyword / parameter equals | |||||
def execute(*args, **kw): | def execute(*args, **kw): | ||||
""" | """ | ||||
List deleted mailboxes | List deleted mailboxes | ||||
""" | """ | ||||
imap = IMAP() | imap = IMAP() | ||||
imap.connect() | imap.connect() | ||||
auth = Auth() | auth = Auth() | ||||
auth.connect() | auth.connect() | ||||
domains = auth.list_domains() | domains = auth.list_domains() | ||||
folders = [] | folders = [] | ||||
for domain in list(set(domains.keys())): | for domain in list(set(domains.keys())): | ||||
folders.extend(imap.lm("DELETED/*@%s" % (domain))) | folders.extend(imap.lm("DELETED/*@%s" % (domain))) | ||||
folders.extend(imap.lm("DELETED/*")) | folders.extend(imap.lm("DELETED/*")) | ||||
print "Deleted folders:" | print "Deleted folders:" | ||||
for folder in folders: | for folder in folders: | ||||
mbox_parts = imap.parse_mailfolder(folder) | utf8_folder = imap_utf7.decode(folder).encode('utf-8') | ||||
mbox_parts = imap.parse_mailfolder(utf8_folder) | |||||
ts = datetime.datetime.fromtimestamp(int(mbox_parts['hex_timestamp'], 16)) | |||||
if not conf.raw: | if not conf.raw: | ||||
print "%s (Deleted at %s)" % (imap_utf7.decode(folder).encode('utf-8'), datetime.datetime.fromtimestamp(int(mbox_parts['hex_timestamp'], 16))) | print "%s (Deleted at %s)" % (utf8_folder, ts) | ||||
else: | else: | ||||
print "%s (Deleted at %s)" % (folder, datetime.datetime.fromtimestamp(int(mbox_parts['hex_timestamp'], 16))) | print "%s (Deleted at %s)" % (folder, ts) | ||||
multiple spaces before operator