Add new expansion key for mbnames.peritem config variable
It is called localfolders and holds expanded name for the same variable for the local repository of the account that is being processed. GitHub issue: https://github.com/OfflineIMAP/offlineimap/issues/21 Signed-off-by: Eygene Ryabinkin <rea@codelabs.ru>
This commit is contained in:
parent
8b6f10e2e7
commit
95aea5e489
@ -23,6 +23,9 @@ WIP (add new stuff for the next release)
|
||||
(Andreas Mack)
|
||||
* Allow to set message access and modification timestamps based
|
||||
on the "Date" header of the message itself. (Cyril Russo)
|
||||
* "peritem" format string for [mbnames] got new expansion key
|
||||
"localfolders" that corresponds to the same parameter of the
|
||||
local repository for the account being processed.
|
||||
* [regression] pass folder names to the foldersort function,
|
||||
revert the documented behaviour
|
||||
|
||||
|
@ -129,6 +129,12 @@ accounts = Test
|
||||
#
|
||||
# The header, peritem, sep, and footer are all Python expressions passed
|
||||
# through eval, so you can (and must) use Python quoting.
|
||||
#
|
||||
# The following hash key are available to the expansion for 'peritem':
|
||||
# - accountname: the name of the corresponding account;
|
||||
# - foldername: the name of the folder;
|
||||
# - localfolders: path to the local directory hosting all Maildir
|
||||
# folders for the account.
|
||||
|
||||
enabled = no
|
||||
filename = ~/Mutt/muttrc.mailboxes
|
||||
|
@ -390,7 +390,8 @@ def syncfolder(account, remotefolder, quick):
|
||||
localfolder = account.get_local_folder(remotefolder)
|
||||
|
||||
# Write the mailboxes
|
||||
mbnames.add(account.name, localfolder.getname())
|
||||
mbnames.add(account.name, localfolder.getname(),
|
||||
localrepos.getlocalroot())
|
||||
|
||||
# Load status folder.
|
||||
statusfolder = statusrepos.getfolder(remotefolder.getvisiblename().\
|
||||
|
@ -21,6 +21,7 @@ import re # for folderfilter
|
||||
from threading import Lock
|
||||
|
||||
boxes = {}
|
||||
localroots = {}
|
||||
config = None
|
||||
accounts = None
|
||||
mblock = Lock()
|
||||
@ -30,9 +31,10 @@ def init(conf, accts):
|
||||
config = conf
|
||||
accounts = accts
|
||||
|
||||
def add(accountname, foldername):
|
||||
def add(accountname, foldername, localfolders):
|
||||
if not accountname in boxes:
|
||||
boxes[accountname] = []
|
||||
localroots[accountname] = localfolders
|
||||
if not foldername in boxes[accountname]:
|
||||
boxes[accountname].append(foldername)
|
||||
|
||||
@ -64,10 +66,12 @@ def genmbnames():
|
||||
{'re': re})
|
||||
itemlist = []
|
||||
for accountname in boxes.keys():
|
||||
localroot = localroots[accountname]
|
||||
for foldername in boxes[accountname]:
|
||||
if folderfilter(accountname, foldername):
|
||||
itemlist.append({'accountname': accountname,
|
||||
'foldername': foldername})
|
||||
'foldername': foldername,
|
||||
'localfolders': localroot})
|
||||
itemlist.sort(key = mb_sort_keyfunc)
|
||||
format_string = config.get("mbnames", "peritem", raw=1)
|
||||
itemlist = [format_string % d for d in itemlist]
|
||||
|
@ -259,3 +259,8 @@ class BaseRepository(CustomConfig.ConfigHelperMixin, object):
|
||||
for the threads to terminate."""
|
||||
pass
|
||||
|
||||
def getlocalroot(self):
|
||||
""" Local root folder for storing messages.
|
||||
Will not be set for remote repositories."""
|
||||
return None
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user