mozprofile
— 创建和修改 Mozilla 应用程序配置文件¶
Mozprofile 是一个 Python 工具,用于为 Mozilla 的应用程序(Firefox、Thunderbird 等)创建和管理配置文件。除了创建配置文件外,mozprofile 还可以安装 附加组件 并设置首选项。Mozprofile 可以从命令行或作为 API 使用。
设置配置文件数据(附加组件、权限、首选项等)的首选方法是将它们传递给 profile 构造函数。
附加组件¶
- exception mozprofile.addons.AddonFormatError¶
格式不正确的附加组件清单文件的异常
- class mozprofile.addons.AddonManager(profile, restore=True)¶
处理配置文件中与附加组件相关的所有操作,包括:安装和清理附加组件
- classmethod addon_details(addon_path)¶
返回有关附加组件的详细信息字典。
- 参数:
addon_path – 附加组件目录或 XPI 的路径
返回值
{'id': u'[email protected]', # id of the addon 'version': u'1.4', # version of the addon 'name': u'Rainbow', # name of the addon 'unpack': False } # whether to unpack the addon
- clean()¶
清理配置文件中的附加组件。
- get_addon_path(addon_id)¶
返回已安装附加组件的路径
- 参数:
addon_id – 要从中检索路径的附加组件的 ID
- install(addons, **kwargs)¶
从配置文件中附加组件的文件路径或目录安装附加组件。
- 参数:
addons – .xpi 或附加组件目录的路径
unpack – 是否解压,除非在 install.rdf 中另有指定
- classmethod is_addon(addon_path)¶
检查给定路径是否为有效的附加组件
- 参数:
addon_path – 附加组件目录或 XPI 的路径
- remove_addon(addon_id)¶
删除由 ID 指定的附加组件
- 参数:
addon_id – 要删除的附加组件的 ID
可以单独安装附加组件或从清单中安装。
示例
from mozprofile import FirefoxProfile
# create new profile to pass to mozmill/mozrunner
profile = FirefoxProfile(addons=["adblock.xpi"])
命令行界面¶
创建和/或修改 Firefox 配置文件。可以通过传递要安装的附加组件或要设置的首选项来修改配置文件。如果未指定配置文件,则会创建一个新的配置文件,并打印生成的配置文件的路径。
- exception mozprofile.cli.KeyValueParseError(msg, errors=())¶
解析序列化键值字符串时出错。
- class mozprofile.cli.MozProfileCLI(args=['doc', '--upload', '--no-open', '--no-serve', '--write-url', '/builds/worker/firefox-source-docs-url.txt', '--dump-trees=/builds/worker/artifacts/trees.json'], add_options=None)¶
mozprofile
的命令行界面。- preferences()¶
配置文件首选项
- profile(restore=False)¶
创建配置文件
- profile_args()¶
实例化配置文件类的参数
- mozprofile.cli.cli(args=['doc', '--upload', '--no-open', '--no-serve', '--write-url', '/builds/worker/firefox-source-docs-url.txt', '--dump-trees=/builds/worker/artifacts/trees.json'])¶
通过
sys.argv
处理mozprofile
的命令行参数
- mozprofile.cli.parse_key_value(strings, separator='=', context='key, value')¶
解析以 key = value 形式表示的字符串序列化的键值对。
- 参数:
strings (list) – 要解析的字符串列表。
separator (str) – 用于分割字符串的标识符。
- 返回值:
(<key>,<value>) 元组列表。不会去除空格。
- 返回类型:
list
- 引发:
- mozprofile.cli.parse_preferences(prefs, context='--setpref=')¶
解析命令行上指定的首选项。
- 参数:
prefs (list) – 字符串列表,通常采用 “<pref>=<value>” 的形式。
- 返回值:
- 形式为 {<pref>: <value>} 的字典,其中值已
强制转换。
- 返回类型:
dict
可以使用 --profile
开关指定要对其进行操作的配置文件。如果未指定配置文件,则会在一个临时目录中创建一个配置文件,该目录将回显到终端
(mozmill)> mozprofile
/tmp/tmp4q1iEU.mozrunner
(mozmill)> ls /tmp/tmp4q1iEU.mozrunner
user.js
要从命令行运行 mozprofile,请输入:mozprofile --help
以获取选项列表。
权限¶
向配置文件添加权限
- 异常 mozprofile.permissions.BadPortLocationError(given_port)¶
位置的端口值无效。
- 异常 mozprofile.permissions.DuplicateLocationError(url)¶
相同的位置被定义了两次。
- 类 mozprofile.permissions.Location(scheme, host, port, options)¶
表示 server-locations.txt 文件中的一行位置信息。
- isEqual(location)¶
比较 scheme://host:port,但忽略选项。
- 异常 mozprofile.permissions.LocationsSyntaxError(lineno, err=None)¶
表示 server-locations.txt 文件中特定行上的语法错误。
- 异常 mozprofile.permissions.MissingPrimaryLocationError¶
位置文件中未定义主要位置。
- 异常 mozprofile.permissions.MultiplePrimaryLocationsError¶
定义了多个主要位置。
- 类 mozprofile.permissions.Permissions(locations=None)¶
允许处理
mozprofile
的权限。- network_prefs(proxy=None)¶
获取已知位置并生成用于处理权限和代理的偏好设置,返回一个包含偏好设置和用户偏好设置的元组。
- pac_prefs(user_proxy=None)¶
返回代理自动配置的偏好设置。
- 类 mozprofile.permissions.ServerLocations(filename=None)¶
位置的可迭代集合。为了检查错误并确保回调函数被调用(如果已给出),请使用提供的函数添加新的位置,而不是直接操作
_locations
。- read(filename, check_for_primary=True)¶
读取文件并将所有有效的位置添加到
self._locations
数组中。- 参数:
filename – 格式为 server-locations.txt
check_for_primary – 如果为 True,则如果未找到主要位置,则会引发
MissingPrimaryLocationError
异常。
唯一的例外是,如果未定义端口,则默认为 80 或 443。
待办事项:这是否应该默认为与协议相关的端口?有理由设置默认值吗?
可以通过创建一个 ServerLocations
对象并将其传递给 Profile
构造函数来设置权限。可以使用 add_host(host, port)
将主机添加到其中。port
可以为 0。
偏好设置¶
用户偏好设置。
- 类 mozprofile.prefs.Preferences(prefs=None)¶
从各种来源组装偏好设置。
- add(prefs, cast=False)¶
- 参数:
偏好设置。
cast – 是否将字符串转换为值,例如 '1' -> 1。
- add_file(path)¶
从文件中读取偏好设置。
- 参数:
路径。
- 类方法 cast(value)¶
从命令行或例如 .ini 文件中的字符串插值偏好设置,没有很好的方法来表示偏好设置值的类型,因为在本地它是一个字符串。
整数将被转换为整数。
true/false 将被转换为 True/False。
任何用单引号括起来的字符串都将被视为一个字符串,并且两侧的 '' 将被移除。
- 类方法 read(path)¶
从文件中读取偏好设置。
- 类方法 read_ini(path, section=None)¶
从 .ini 文件中读取偏好设置。
- 类方法 read_json(path)¶
从 JSON 数据中读取偏好设置。
- 类方法 read_prefs(path, pref_setter='user_pref', interpolation=None)¶
从(例如)prefs.js 读取偏好设置。
- 参数:
path – 要读取的偏好设置文件的路径。
pref_setter – 用于在偏好设置文件中设置偏好设置的函数的名称。
interpolation – 如果提供,则为将传递给 str.format 的字典,用于插值偏好设置值。
- 类方法 write(_file, prefs, pref_string='user_pref(%s, %s);')¶
将偏好设置写入文件。
- 异常 mozprofile.prefs.PreferencesReadError¶
偏好设置文件的读取错误。
可以通过多种方式设置偏好设置。
使用 API:可以使用字典存储偏好设置,并将其传递给
Profile
构造函数。还可以使用Profile.set_preferences
方法添加更多偏好设置。使用 JSON 数据文件:
mozprofile --preferences myprefs.json
使用
.ini
文件:mozprofile --preferences myprefs.ini
通过命令行:
mozprofile --pref key:value --pref key:value [...]
从 .ini 文件或 --pref 开关设置偏好设置时,如果可能,值将被插值为整数或布尔值(true/false)。
配置文件¶
- 类 mozprofile.profile.FirefoxProfile(profile=None, addons=None, preferences=None, locations=None, proxy=None, restore=True, allowlistpaths=None, **kwargs)¶
Firefox 的专用配置文件子类。
- 类 mozprofile.profile.Profile(profile=None, addons=None, preferences=None, locations=None, proxy=None, restore=True, allowlistpaths=None, **kwargs)¶
处理所有与配置文件相关的操作。
创建新的配置文件、安装附加组件、设置偏好设置和处理清理。
对象被垃圾回收后,与配置文件关联的文件将自动删除。
profile = Profile() print profile.profile # this is the path to the created profile del profile # the profile path has been removed from disk
cleanup()
在后台被调用以删除配置文件。您可以通过将配置文件用作上下文管理器来确保此方法被调用(即使在出现异常的情况下)with Profile() as profile: # do things with the profile pass # profile.cleanup() has been called here
- clean_preferences()¶
删除由 mozrunner 添加的首选项。
- cleanup()¶
配置文件的清理操作。
- pop_preferences(filename)¶
弹出最后设置的首选项,如果弹出则返回 True。
- set_persistent_preferences(preferences)¶
将首选项字典添加到配置文件首选项,并在重置配置文件期间保存它们。
- set_preferences(preferences, filename='user.js')¶
将首选项字典添加到配置文件首选项。
- summary(return_parts=False)¶
返回总结配置文件信息的字符串。如果 return_parts 为真,则返回 (Part_name, value) 元组列表,而不是组装后的字符串。
- class mozprofile.profile.ThunderbirdProfile(profile=None, addons=None, preferences=None, locations=None, proxy=None, restore=True, allowlistpaths=None, **kwargs)¶
Thunderbird 的专用 Profile 子类。
- mozprofile.profile.create_profile(app, **kwargs)¶
给定应用程序名称创建配置文件。
- 参数:
app – 要为其创建配置文件的应用程序的字符串名称,例如“firefox”。
kwargs – 与 Profile 类参数相同(可选)。
- 返回值:
特定于应用程序的 Profile 实例。
- 引发:
NotImplementedError
资源¶
其他 Mozilla 程序提供了用于配置文件的额外和重叠的功能。关于配置文件及其管理也有大量文档。
配置文件 文档