# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
def _generate_show_url(context, entry):
url = entry[
"url" ]
return {
"actions" :
"showURL" ,
"openURL" : url.format(**context),
}
def _generate_product_details(context, entry):
url = entry[
"url" ]
return {
"detailsURL" : url.format(**context),
"type" :
"minor" ,
}
_FIELD_TYPES = {
"show-url" : _generate_show_url,
"product-details" : _generate_product_details,
}
def _generate_conditions(context, entry):
if (
"release-types" in entry
and context[
"release-type" ]
not in entry[
"release-types" ]
):
return None
if "blob-types" in entry
and context[
"blob-type" ]
not in entry[
"blob-types" ]:
return None
if "products" in entry
and context[
"product" ]
not in entry[
"products" ]:
return None
conditions = {}
if "locales" in entry:
conditions[
"locales" ] = entry[
"locales" ]
if "versions" in entry:
conditions[
"versions" ] = [
version.format(**context)
for version
in entry[
"versions" ]
]
if "update-channel" in entry:
conditions[
"channels" ] = [
entry[
"update-channel" ] + suffix
for suffix
in (
"" ,
"-localtest" ,
"-cdntest" )
]
if "build-ids" in entry:
conditions[
"buildIDs" ] = [
buildid.format(**context)
for buildid
in entry[
"build-ids" ]
]
return conditions
def generate_update_properties(context, config):
result = []
for entry
in config:
fields = _FIELD_TYPES[entry[
"type" ]](context, entry)
conditions = _generate_conditions(context, entry.get(
"conditions" , {}))
if conditions
is not None :
result.append({
"fields" : fields,
"for" : conditions,
})
return result
Messung V0.5 in Prozent C=96 H=84 G=90
¤ Dauer der Verarbeitung: 0.20 Sekunden
(vorverarbeitet am 2026-08-25)
¤
*© Formatika GbR, Deutschland