mailcap — Обработка файлов mailcap
Исходный код: Lib/mailcap.py
Файлы mailcap используются для настройки реакции MIME-ориентированных приложений, таких как почтовые клиенты и веб-браузеры, на файлы с различными типами MIME. (Название «mailcap» происходит от фразы «возможности почты».) Например, файл mailcap может содержать строку, подобную video/mpeg; xmpeg %s. Затем, если пользователь столкнётся с электронным письмом или веб-документом с типом MIME video/mpeg, %s будет заменено именем файла (обычно именем временного файла), и программа xmpeg может автоматически запуститься для просмотра файла.
Формат mailcap документирован в RFC 1524, «Механизм конфигурации пользовательского агента для информации о формате мультимедийной почты», но не является интернет-стандартом. Однако файлы mailcap поддерживаются на большинстве Unix-систем.
-
mailcap.findmatch(caps, MIMEtype, key='view', filename='/dev/null', plist=[]) -
Возвращает пару из 2 элементов; первый элемент — строка, содержащая командную строку для выполнения (которую можно передать в
os.system()), а второй — запись mailcap для данного типа MIME. Если соответствующий тип MIME не найден, возвращается(None, None).key — имя желаемого поля, которое представляет тип выполняемого действия; значение по умолчанию — ‘view’, так как в большинстве случаев требуется просто просмотреть содержимое данных с типом MIME. Другими возможными значениями могут быть ‘compose’ и ‘edit’, если нужно создать новый документ данного типа MIME или изменить существующие данные. Полный список этих полей см. в RFC 1524.
filename — имя файла, которое должно быть подставлено вместо
%sв командной строке; значение по умолчанию —'/dev/null', что почти наверняка не то, что нужно, поэтому обычно вы переопределяете его, указав имя файла.plist может быть списком, содержащим именованные параметры; значение по умолчанию — просто пустой список. Каждый элемент списка должен быть строкой, содержащей имя параметра, знак равенства (
'=') и значение параметра. Записи mailcap могут содержать именованные параметры, такие как%{foo}, которые будут заменены значением параметра с именем «foo». Например, если в файле mailcap была командная строкаshowpartial %{id} %{number} %{total}, а plist был установлен в['id=1', 'number=2', 'total=3'], результирующая командная строка будет'showpartial 1 2 3'.В файле mailcap поле «test» может быть указано для проверки внешнего условия (такого как архитектура машины или используемая оконная система) для определения применимости строки mailcap.
findmatch()автоматически проверяет такие условия и пропускает запись, если проверка завершается неудачно.
-
mailcap.getcaps() -
Возвращает словарь, сопоставляющий типы MIME списку записей файла mailcap. Этот словарь должен быть передан функции
findmatch(). Запись хранится как список словарей, но знать детали этого представления необязательно.Информация извлекается из всех файлов mailcap, найденных в системе. Настройки в файле mailcap пользователя
$HOME/.mailcapбудут переопределять настройки в системных файлах mailcap/etc/mailcap,/usr/etc/mailcap, и/usr/local/etc/mailcap.
Пример использования:
>>> import mailcap
>>> d = mailcap.getcaps()
>>> mailcap.findmatch(d, 'video/mpeg', filename='tmp1223')
('xmpeg tmp1223', {'view': 'xmpeg %s'})
© 2001–2020 Python Software Foundation
Licensed under the PSF License.
https://docs.python.org/3.6/library/mailcap.html