Mercurial > prosody-modules
diff mod_muc_members_json/README.md @ 5586:30b9f78b5058
mod_muc_members_json: New module to import MUC membership from a JSON URL
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 07 Jul 2023 01:25:44 +0100 |
parents | |
children | 31e56562f9bd |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mod_muc_members_json/README.md Fri Jul 07 01:25:44 2023 +0100 @@ -0,0 +1,81 @@ +--- +labels: +- 'Stage-Beta' +summary: 'Import MUC membership info from a JSON file' +... + +Introduction +============ + +This module allows you to import MUC membership information from an external +URL in JSON format. + +Details +======= + +If you have an organization or community and lots of members and/or channels, +it can be frustrating to manage MUC affiliations manually. This module will +fetch a JSON file from a configured URL, and use that to automatically set the +MUC affiliations. + +It also supports hats/badges. + +Configuration +============= + +Add the module to the MUC host (not the global modules\_enabled): + + Component "conference.example.com" "muc" + modules_enabled = { "muc_members_json" } + +You can define (globally or per-MUC component) the following options: + + Name Description + --------------------- -------------------------------------------------- + muc_members_json_url The URL to the JSON file describing memberships + muc_members_json_mucs The MUCs to manage, and their associated configuration + +The `muc_members_json_mucs` setting determines which rooms will be managed by +the plugin, and how to map roles to hats (if desired). + +``` +muc_members_json_mucs = { + myroom = { + member_hat = { + id = "urn:uuid:6a1b143a-1c5c-11ee-80aa-4ff1ce4867dc"; + title = "Cool Member"; + }; + }; +} +``` + +JSON format +=========== + +``` +{ + "members": [ + { + "jids": ["user@example.com"] + }, + { + "jids": ["user2@example.com"] + }, + { + "jids": ["user3@example.com"], + roles: ["janitor"] + } + ] +} +``` + +Each member must have a `jids` field, and optionally a `roles` field. + +Compatibility +============= + + ------- ------------------ + trunk Works + 0.12 Works + ------- ------------------ +