bridge (pb): add TwistedBridge:

`TwistedBridge` is needed for Twisted based frontends (it's the case for
the web frontend).

Regenerated bridges.
This commit is contained in:
Goffi 2026-03-13 11:32:22 +01:00
commit 2278002f38
3 changed files with 519 additions and 0 deletions

View file

@ -44,6 +44,11 @@ class pbConstructor(base_constructor.Constructor):
{debug}d = self.root.callRemote("{name}"{args_comma}{args_no_def})
d.addErrback(self._errback)
return d.asFuture(asyncio.get_event_loop())\n""",
"twisted_methods": """\
def {name}(self{args_comma}{args}):
{debug}d = self.root.callRemote("{name}"{args_comma}{args_no_def})
d.addErrback(self._errback)
return d\n""",
}
def core_completion_signal(self, completion, function, default, arg_doc, async_):

View file

@ -206,3 +206,34 @@ class AIOBridge(bridge):
##ASYNC_METHODS_PART##
class TwistedBridge(bridge):
def __init__(self):
self.signals_handler = SignalsHandler()
async def post_init(self):
"""Post-initialization hook.
Actually no post init is needed, but the "__getattr__" return "partial" for
unknown methods, and this causes "dynamic_import.load_and_init_bridge" to fail.
"""
pass
def _errback(self, failure_):
"""Convert Failure to BridgeException"""
raise BridgeException(
name=failure_.type.decode("utf-8"), message=str(failure_.value)
)
def call(self, name, *args, **kwargs):
d = self.root.callRemote(name, *args, *kwargs)
d.addErrback(self._errback)
return d
def bridge_connect(self):
return super().bridge_connect(callback=None, errback=None)
##TWISTED_METHODS_PART##

View file

@ -1534,3 +1534,486 @@ class AIOBridge(bridge):
d = self.root.callRemote("version_get")
d.addErrback(self._errback)
return d.asFuture(asyncio.get_event_loop())
class TwistedBridge(bridge):
def __init__(self):
self.signals_handler = SignalsHandler()
async def post_init(self):
"""Post-initialization hook.
Actually no post init is needed, but the "__getattr__" return "partial" for
unknown methods, and this causes "dynamic_import.load_and_init_bridge" to fail.
"""
pass
def _errback(self, failure_):
"""Convert Failure to BridgeException"""
raise BridgeException(
name=failure_.type.decode("utf-8"), message=str(failure_.value)
)
def call(self, name, *args, **kwargs):
d = self.root.callRemote(name, *args, *kwargs)
d.addErrback(self._errback)
return d
def bridge_connect(self):
return super().bridge_connect(callback=None, errback=None)
def action_launch(self, callback_id, data, profile_key="@DEFAULT@"):
d = self.root.callRemote("action_launch", callback_id, data, profile_key)
d.addErrback(self._errback)
return d
def actions_get(self, profile_key="@DEFAULT@"):
d = self.root.callRemote("actions_get", profile_key)
d.addErrback(self._errback)
return d
def config_get(self, section, name):
d = self.root.callRemote("config_get", section, name)
d.addErrback(self._errback)
return d
def connect(self, profile_key="@DEFAULT@", password="", options={}):
d = self.root.callRemote("connect", profile_key, password, options)
d.addErrback(self._errback)
return d
def contact_add(self, entity_jid, profile_key="@DEFAULT@"):
d = self.root.callRemote("contact_add", entity_jid, profile_key)
d.addErrback(self._errback)
return d
def contact_del(self, entity_jid, profile_key="@DEFAULT@"):
d = self.root.callRemote("contact_del", entity_jid, profile_key)
d.addErrback(self._errback)
return d
def contact_get(self, arg_0, profile_key="@DEFAULT@"):
d = self.root.callRemote("contact_get", arg_0, profile_key)
d.addErrback(self._errback)
return d
def contact_update(self, entity_jid, name, groups, profile_key="@DEFAULT@"):
d = self.root.callRemote("contact_update", entity_jid, name, groups, profile_key)
d.addErrback(self._errback)
return d
def contacts_get(self, profile_key="@DEFAULT@"):
d = self.root.callRemote("contacts_get", profile_key)
d.addErrback(self._errback)
return d
def contacts_get_from_group(self, group, profile_key="@DEFAULT@"):
d = self.root.callRemote("contacts_get_from_group", group, profile_key)
d.addErrback(self._errback)
return d
def devices_infos_get(self, bare_jid, profile_key):
d = self.root.callRemote("devices_infos_get", bare_jid, profile_key)
d.addErrback(self._errback)
return d
def disco_find_by_features(
self,
namespaces,
identities,
bare_jid=False,
service=True,
roster=True,
own_jid=True,
local_device=False,
profile_key="@DEFAULT@",
):
d = self.root.callRemote(
"disco_find_by_features",
namespaces,
identities,
bare_jid,
service,
roster,
own_jid,
local_device,
profile_key,
)
d.addErrback(self._errback)
return d
def disco_infos(self, entity_jid, node="", use_cache=True, profile_key="@DEFAULT@"):
d = self.root.callRemote("disco_infos", entity_jid, node, use_cache, profile_key)
d.addErrback(self._errback)
return d
def disco_items(self, entity_jid, node="", use_cache=True, profile_key="@DEFAULT@"):
d = self.root.callRemote("disco_items", entity_jid, node, use_cache, profile_key)
d.addErrback(self._errback)
return d
def disconnect(self, profile_key="@DEFAULT@"):
d = self.root.callRemote("disconnect", profile_key)
d.addErrback(self._errback)
return d
def encryption_namespace_get(self, arg_0):
d = self.root.callRemote("encryption_namespace_get", arg_0)
d.addErrback(self._errback)
return d
def encryption_plugins_get(self):
d = self.root.callRemote("encryption_plugins_get")
d.addErrback(self._errback)
return d
def encryption_trust_ui_get(self, to_jid, namespace, profile_key):
d = self.root.callRemote(
"encryption_trust_ui_get", to_jid, namespace, profile_key
)
d.addErrback(self._errback)
return d
def entities_data_get(self, jids, keys, profile):
d = self.root.callRemote("entities_data_get", jids, keys, profile)
d.addErrback(self._errback)
return d
def entity_data_get(self, jid, keys, profile):
d = self.root.callRemote("entity_data_get", jid, keys, profile)
d.addErrback(self._errback)
return d
def features_get(self, profile_key):
d = self.root.callRemote("features_get", profile_key)
d.addErrback(self._errback)
return d
def history_get(
self, from_jid, to_jid, limit, between=True, filters="", profile="@NONE@"
):
d = self.root.callRemote(
"history_get", from_jid, to_jid, limit, between, filters, profile
)
d.addErrback(self._errback)
return d
def image_check(self, arg_0):
d = self.root.callRemote("image_check", arg_0)
d.addErrback(self._errback)
return d
def image_convert(self, source, dest, arg_2, extra):
d = self.root.callRemote("image_convert", source, dest, arg_2, extra)
d.addErrback(self._errback)
return d
def image_generate_preview(self, image_path, profile_key):
d = self.root.callRemote("image_generate_preview", image_path, profile_key)
d.addErrback(self._errback)
return d
def image_resize(self, image_path, width, height):
d = self.root.callRemote("image_resize", image_path, width, height)
d.addErrback(self._errback)
return d
def init_pre_script(self):
d = self.root.callRemote("init_pre_script")
d.addErrback(self._errback)
return d
def is_connected(self, profile_key="@DEFAULT@"):
d = self.root.callRemote("is_connected", profile_key)
d.addErrback(self._errback)
return d
def main_resource_get(self, contact_jid, profile_key="@DEFAULT@"):
d = self.root.callRemote("main_resource_get", contact_jid, profile_key)
d.addErrback(self._errback)
return d
def menu_help_get(self, menu_id, language):
d = self.root.callRemote("menu_help_get", menu_id, language)
d.addErrback(self._errback)
return d
def menu_launch(self, menu_type, path, data, security_limit, profile_key):
d = self.root.callRemote(
"menu_launch", menu_type, path, data, security_limit, profile_key
)
d.addErrback(self._errback)
return d
def menus_get(self, language, security_limit):
d = self.root.callRemote("menus_get", language, security_limit)
d.addErrback(self._errback)
return d
def message_encryption_get(self, to_jid, profile_key):
d = self.root.callRemote("message_encryption_get", to_jid, profile_key)
d.addErrback(self._errback)
return d
def message_encryption_start(
self, to_jid, namespace="", replace=False, profile_key="@NONE@"
):
d = self.root.callRemote(
"message_encryption_start", to_jid, namespace, replace, profile_key
)
d.addErrback(self._errback)
return d
def message_encryption_stop(self, to_jid, profile_key):
d = self.root.callRemote("message_encryption_stop", to_jid, profile_key)
d.addErrback(self._errback)
return d
def message_send(
self,
to_jid,
message,
subject={},
mess_type="auto",
extra={},
profile_key="@NONE@",
):
d = self.root.callRemote(
"message_send", to_jid, message, subject, mess_type, extra, profile_key
)
d.addErrback(self._errback)
return d
def namespaces_get(self):
d = self.root.callRemote("namespaces_get")
d.addErrback(self._errback)
return d
def notification_add(
self,
type_,
body_plain,
body_rich,
title,
is_global,
requires_action,
arg_6,
priority,
expire_at,
extra,
):
d = self.root.callRemote(
"notification_add",
type_,
body_plain,
body_rich,
title,
is_global,
requires_action,
arg_6,
priority,
expire_at,
extra,
)
d.addErrback(self._errback)
return d
def notification_delete(self, id_, is_global, profile_key):
d = self.root.callRemote("notification_delete", id_, is_global, profile_key)
d.addErrback(self._errback)
return d
def notifications_expired_clean(self, limit_timestamp, profile_key):
d = self.root.callRemote(
"notifications_expired_clean", limit_timestamp, profile_key
)
d.addErrback(self._errback)
return d
def notifications_get(self, filters, profile_key):
d = self.root.callRemote("notifications_get", filters, profile_key)
d.addErrback(self._errback)
return d
def param_get_a(self, name, category, attribute="value", profile_key="@DEFAULT@"):
d = self.root.callRemote("param_get_a", name, category, attribute, profile_key)
d.addErrback(self._errback)
return d
def param_get_a_async(
self,
name,
category,
attribute="value",
security_limit=-1,
profile_key="@DEFAULT@",
):
d = self.root.callRemote(
"param_get_a_async", name, category, attribute, security_limit, profile_key
)
d.addErrback(self._errback)
return d
def param_set(
self, name, value, category, security_limit=-1, profile_key="@DEFAULT@"
):
d = self.root.callRemote(
"param_set", name, value, category, security_limit, profile_key
)
d.addErrback(self._errback)
return d
def param_ui_get(self, security_limit=-1, app="", extra="", profile_key="@DEFAULT@"):
d = self.root.callRemote("param_ui_get", security_limit, app, extra, profile_key)
d.addErrback(self._errback)
return d
def params_categories_get(self):
d = self.root.callRemote("params_categories_get")
d.addErrback(self._errback)
return d
def params_register_app(self, xml, security_limit=-1, app=""):
d = self.root.callRemote("params_register_app", xml, security_limit, app)
d.addErrback(self._errback)
return d
def params_template_load(self, filename):
d = self.root.callRemote("params_template_load", filename)
d.addErrback(self._errback)
return d
def params_template_save(self, filename):
d = self.root.callRemote("params_template_save", filename)
d.addErrback(self._errback)
return d
def params_values_from_category_get_async(
self, category, security_limit=-1, app="", extra="", profile_key="@DEFAULT@"
):
d = self.root.callRemote(
"params_values_from_category_get_async",
category,
security_limit,
app,
extra,
profile_key,
)
d.addErrback(self._errback)
return d
def presence_set(self, to_jid="", show="", statuses={}, profile_key="@DEFAULT@"):
d = self.root.callRemote("presence_set", to_jid, show, statuses, profile_key)
d.addErrback(self._errback)
return d
def presence_statuses_get(self, profile_key="@DEFAULT@"):
d = self.root.callRemote("presence_statuses_get", profile_key)
d.addErrback(self._errback)
return d
def private_data_delete(self, namespace, key, arg_2):
d = self.root.callRemote("private_data_delete", namespace, key, arg_2)
d.addErrback(self._errback)
return d
def private_data_get(self, namespace, key, profile_key):
d = self.root.callRemote("private_data_get", namespace, key, profile_key)
d.addErrback(self._errback)
return d
def private_data_set(self, namespace, key, data, profile_key):
d = self.root.callRemote("private_data_set", namespace, key, data, profile_key)
d.addErrback(self._errback)
return d
def profile_create(self, profile, password="", component=""):
d = self.root.callRemote("profile_create", profile, password, component)
d.addErrback(self._errback)
return d
def profile_delete_async(self, profile):
d = self.root.callRemote("profile_delete_async", profile)
d.addErrback(self._errback)
return d
def profile_is_session_started(self, profile_key="@DEFAULT@"):
d = self.root.callRemote("profile_is_session_started", profile_key)
d.addErrback(self._errback)
return d
def profile_name_get(self, profile_key="@DEFAULT@"):
d = self.root.callRemote("profile_name_get", profile_key)
d.addErrback(self._errback)
return d
def profile_set_default(self, profile):
d = self.root.callRemote("profile_set_default", profile)
d.addErrback(self._errback)
return d
def profile_start_session(self, password="", profile_key="@DEFAULT@"):
d = self.root.callRemote("profile_start_session", password, profile_key)
d.addErrback(self._errback)
return d
def profiles_list_get(self, clients=True, components=False):
d = self.root.callRemote("profiles_list_get", clients, components)
d.addErrback(self._errback)
return d
def progress_get(self, id, profile):
d = self.root.callRemote("progress_get", id, profile)
d.addErrback(self._errback)
return d
def progress_get_all(self, profile):
d = self.root.callRemote("progress_get_all", profile)
d.addErrback(self._errback)
return d
def progress_get_all_metadata(self, profile):
d = self.root.callRemote("progress_get_all_metadata", profile)
d.addErrback(self._errback)
return d
def ready_get(self):
d = self.root.callRemote("ready_get")
d.addErrback(self._errback)
return d
def roster_resync(self, profile_key="@DEFAULT@"):
d = self.root.callRemote("roster_resync", profile_key)
d.addErrback(self._errback)
return d
def session_infos_get(self, profile_key):
d = self.root.callRemote("session_infos_get", profile_key)
d.addErrback(self._errback)
return d
def sub_waiting_get(self, profile_key="@DEFAULT@"):
d = self.root.callRemote("sub_waiting_get", profile_key)
d.addErrback(self._errback)
return d
def subscription(self, sub_type, entity, profile_key="@DEFAULT@"):
d = self.root.callRemote("subscription", sub_type, entity, profile_key)
d.addErrback(self._errback)
return d
def tor_infos_get(self, extra, profile_key):
d = self.root.callRemote("tor_infos_get", extra, profile_key)
d.addErrback(self._errback)
return d
def tor_mode_get(self, profile_key):
d = self.root.callRemote("tor_mode_get", profile_key)
d.addErrback(self._errback)
return d
def version_get(self):
d = self.root.callRemote("version_get")
d.addErrback(self._errback)
return d