Mercurial > prosody-modules
annotate mod_migrate_lastlog2/mod_migrate_lastlog2.lua @ 6261:1c62edeb9147
mod_pastebin: Update Readme
diff --git a/mod_pastebin/README.md b/mod_pastebin/README.md
--- a/mod_pastebin/README.md
+++ b/mod_pastebin/README.md
@@ -37,12 +37,14 @@ For example:
Pastes will be available by default at
`http://<your-prosody>:5280/pastebin/` by default.
-In Prosody 0.9 and later this can be changed with [HTTP
-settings](https://prosody.im/doc/http).
+Ports and path can be changed with [HTTP
+settings](https://prosody.im/doc/http), for example like:
-In 0.8 and older this can be changed with `pastebin_ports` (see below),
-or you can forward another external URL from your web server to Prosody,
-use `pastebin_url` to set that URL.
+``` {.lua}
+ http_paths = {
+ pastebin = "/$host-paste";
+ }
+```
# Discovery
@@ -82,27 +84,16 @@ The line and character tresholds are adv
pastebin_line_threshold The maximum number of lines a message may have before it is sent to the pastebin. (default 4 lines)
pastebin_trigger A string of characters (e.g. "!paste ") which if detected at the start of a message, always sends the message to the pastebin, regardless of length. (default: not set)
pastebin_expire_after Number of hours after which to expire (remove) a paste, defaults to 24. Set to 0 to store pastes permanently on disk.
- pastebin_ports List of ports to run the HTTP server on, same format as mod_httpserver's http_ports[^1]
- pastebin_url Base URL to display for pastebin links, must end with / and redirect to Prosody's built-in HTTP server[^2]
# Compatibility
- ------ -------
- trunk Works
+ ------ ---------------------
+ trunk Works as of 25-06-13
+ 13 Works
0.12 Works
- 0.11 Works
- 0.10 Works
- 0.9 Works
- 0.8 Works
- ------ -------
+ ------ ---------------------
# Todo
- Maximum paste length
- Web interface to submit pastes?
-
-[^1]: As of Prosody 0.9, `pastebin_ports` is replaced by `http_ports`,
- see [Prosody HTTP server documentation](https://prosody.im/doc/http)
-
-[^2]: See also
- [http_external_url](https://prosody.im/doc/http#external_url)
| author | Menel <menel@snikket.de> |
|---|---|
| date | Fri, 13 Jun 2025 11:39:58 +0200 |
| parents | a4d7fefa4a8b |
| children |
| rev | line source |
|---|---|
|
6231
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
1 -- This module is based on the shell command code from mod_account_activity |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
2 |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
3 local autoremove = module:get_option_boolean("migrate_lastlog2_auto_remove", true); |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
4 |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
5 local function do_migration() |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
6 local store = module:open_store("account_activity", "keyval+"); |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
7 local lastlog2 = module:open_store("lastlog2", "keyval+"); |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
8 local n_updated, n_errors, n_skipped = 0, 0, 0; |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
9 |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
10 local async = require "prosody.util.async"; |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
11 |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
12 local p = require "prosody.util.promise".new(function (resolve) |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
13 local async_runner = async.runner(function () |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
14 local n = 0; |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
15 for username in lastlog2:items() do |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
16 local was_error = nil; |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
17 n = n + 1; |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
18 if n % 100 == 0 then |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
19 module:log("debug", "Processed %d...", n); |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
20 async.sleep(0); |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
21 end |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
22 local lastlog2_data = lastlog2:get(username); |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
23 if lastlog2_data then |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
24 local current_data, err = store:get(username); |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
25 if not current_data then |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
26 if not err then |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
27 current_data = {}; |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
28 else |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
29 n_errors = n_errors + 1; |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
30 end |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
31 end |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
32 if current_data then |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
33 local imported_timestamp = current_data.timestamp; |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
34 local latest; |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
35 for k, v in pairs(lastlog2_data) do |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
36 if k ~= "registered" and (not latest or v.timestamp > latest) then |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
37 latest = v.timestamp; |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
38 end |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
39 end |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
40 if latest and (not imported_timestamp or imported_timestamp < latest) then |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
41 local ok, err = store:set_key(username, "timestamp", latest); |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
42 if ok then |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
43 n_updated = n_updated + 1; |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
44 else |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
45 module:log("error", "Failed to import %q: %s", username, err); |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
46 was_error = true; |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
47 n_errors = n_errors + 1; |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
48 end |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
49 else |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
50 n_skipped = n_skipped + 1; |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
51 end |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
52 end |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
53 if autoremove and not was_error then |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
54 lastlog2:set(username, nil); |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
55 end |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
56 end |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
57 end |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
58 return resolve(("%d accounts imported, %d errors, %d skipped"):format(n_updated, n_errors, n_skipped)); |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
59 end); |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
60 async_runner:run(true); |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
61 end); |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
62 return p; |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
63 end |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
64 |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
65 function module.ready() |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
66 do_migration(); |
|
a4d7fefa4a8b
mod_migrate_lastlog2: New module to automatically migrate data to mod_account_activity
Matthew Wild <mwild1@gmail.com>
parents:
diff
changeset
|
67 end |
