Mercurial > prosody-modules
comparison mod_storage_xmlarchive/mod_storage_xmlarchive.lua @ 5740:100110d539d3
mod_storage_xmlarchive: Migrate all users/rooms if no JID argument given
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 28 Nov 2023 19:48:34 +0100 |
parents | 79ba1a1a75cc |
children | 5232d12eb74d |
comparison
equal
deleted
inserted
replaced
5739:7e6bf0a5aef2 | 5740:100110d539d3 |
---|---|
443 local function skip_at_date(item) | 443 local function skip_at_date(item) |
444 return not item:find("@"); | 444 return not item:find("@"); |
445 end | 445 end |
446 | 446 |
447 function archive:users() | 447 function archive:users() |
448 return it.filter(skip_at_date, dm.users(module.host, self.store, "list")); | 448 return it.filter(skip_at_date, dm.users(self.host, self.store, "list")); |
449 end | 449 end |
450 | 450 |
451 local provider = {}; | 451 local provider = {}; |
452 function provider:open(store, typ) | 452 function provider:open(store, typ) |
453 if typ ~= "archive" then return nil, "unsupported-store"; end | 453 if typ ~= "archive" then return nil, "unsupported-store"; end |
546 end | 546 end |
547 end | 547 end |
548 | 548 |
549 local store = arg[4]; | 549 local store = arg[4]; |
550 if arg[3] == "internal" then | 550 if arg[3] == "internal" then |
551 for i = 5, #arg do | 551 if arg[5] then |
552 local user, host = jid.prepped_split(arg[i]); | 552 for i = 5, #arg do |
553 if not user then | 553 local user, host = jid.prepped_split(arg[i]); |
554 print(string.format("Argument #%d (%q) is an invalid JID, aborting", i, arg[i])); | 554 if not user then |
555 os.exit(1); | 555 print(string.format("Argument #%d (%q) is an invalid JID, aborting", i, arg[i])); |
556 end | 556 os.exit(1); |
557 convert(user, host, store); | 557 end |
558 convert(user, host, store); | |
559 end | |
560 else | |
561 for user in archive.users({ host = host; store = store }) do | |
562 convert(user, host, store); | |
563 end | |
558 end | 564 end |
559 print("Done"); | 565 print("Done"); |
560 return 0; | 566 return 0; |
561 else | 567 else |
562 print("Currently only conversion to/from mod_storage_internal is supported"); | 568 print("Currently only conversion to/from mod_storage_internal is supported"); |
563 print("Check out https://modules.prosody.im/mod_migrate"); | 569 print("Check out https://modules.prosody.im/mod_migrate"); |
564 end | 570 end |
565 end | 571 end |
566 print("prosodyctl mod_storage_xmlarchive convert (from|to) internal (archive|archive2|muc_log) user@host"); | 572 print("prosodyctl mod_storage_xmlarchive convert (from|to) internal (archive|archive2|muc_log) [user@host]"); |
567 end | 573 end |
568 | 574 |