add asciify function

This commit is contained in:
Adrian Sampson 2011-12-19 19:41:09 -08:00
parent b493bc7004
commit 8fde981b1d
2 changed files with 11 additions and 0 deletions

View file

@ -17,6 +17,7 @@ import os
import re
import sys
import logging
from unidecode import unidecode
from beets.mediafile import MediaFile
from beets import plugins
from beets import util
@ -1301,6 +1302,10 @@ def _tmpl_if(condition, trueval, falseval=u''):
return trueval
else:
return falseval
def _tmpl_asciify(s):
"""Translate non-ASCII characters to their ASCII equivalents.
"""
return unidecode(s)
TEMPLATE_FUNCTIONS = {
'lower': _tmpl_lower,
@ -1309,4 +1314,5 @@ TEMPLATE_FUNCTIONS = {
'left': _tmpl_left,
'right': _tmpl_right,
'if': _tmpl_if,
'asciify': _tmpl_asciify,
}

View file

@ -65,6 +65,11 @@ These functions are built in to beets:
``condition`` is nonempty (or nonzero, if it's a number), then returns
the second argument. Otherwise, returns the third argument if specified (or
nothing if ``falsetext`` is left off).
* ``%asciify{text}``: Convert non-ASCII characters to their ASCII equivalents.
For example, "café" becomes "cafe". Uses the mapping provided by the
`unidecode module`_.
.. _unidecode module: http://pypi.python.org/pypi/Unidecode
Plugins can extend beets with more template functions (see
:ref:`writing-plugins`).