mod_http_muc_log/README.markdown
author Ben Smith <bens@effortlessis.com>
Tue, 14 May 2024 07:31:34 -0700
changeset 5912 dcea4b4c415d
parent 5909 02657e8693bc
permissions -rw-r--r--
Tweaking documentation to clarify that Oauth2 can be used for VirtualHosts and Component installations.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
1807
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1786
diff changeset
     1
---
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1786
diff changeset
     2
labels:
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1786
diff changeset
     3
- 'Stage-Beta'
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1786
diff changeset
     4
summary: Provides a web interface to stored chatroom logs
4186
1890115b2773 mod_http_muc_log: Move template into a directory to ease packaging
Kim Alvefur <zash@zash.se>
parents: 3600
diff changeset
     5
rockspec:
1890115b2773 mod_http_muc_log: Move template into a directory to ease packaging
Kim Alvefur <zash@zash.se>
parents: 3600
diff changeset
     6
  build:
1890115b2773 mod_http_muc_log: Move template into a directory to ease packaging
Kim Alvefur <zash@zash.se>
parents: 3600
diff changeset
     7
    copy_directories:
1890115b2773 mod_http_muc_log: Move template into a directory to ease packaging
Kim Alvefur <zash@zash.se>
parents: 3600
diff changeset
     8
      - res
5109
2402ddabe7f7 mod_http_muc_log: Include static resources (css & js) in plugin package
Kim Alvefur <zash@zash.se>
parents: 4974
diff changeset
     9
      - static
1807
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1786
diff changeset
    10
...
1786
29f3d6b7ad16 Import wiki pages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    11
1807
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1786
diff changeset
    12
Introduction
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1786
diff changeset
    13
============
1786
29f3d6b7ad16 Import wiki pages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    14
1807
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1786
diff changeset
    15
This module provides a built-in web interface to view chatroom logs
5909
02657e8693bc mod_http_muc_log: replace "mam_muc" with "muc_mam" in README.markdown
Luca Matei Pintilie <luca@lucamatei.com>
parents: 5109
diff changeset
    16
stored by [mod\_muc\_mam].
1786
29f3d6b7ad16 Import wiki pages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    17
1807
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1786
diff changeset
    18
Installation
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1786
diff changeset
    19
============
1786
29f3d6b7ad16 Import wiki pages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    20
1981
cc29ec49776d mod_http_muc_log/README: Replace text that seems to have been copied from mod_muc_log_http
Kim Alvefur <zash@zash.se>
parents: 1980
diff changeset
    21
Same as any other module, be sure to include the HTML template
cc29ec49776d mod_http_muc_log/README: Replace text that seems to have been copied from mod_muc_log_http
Kim Alvefur <zash@zash.se>
parents: 1980
diff changeset
    22
`http_muc_log.html` alongside `mod_http_muc_log.lua`.
1786
29f3d6b7ad16 Import wiki pages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    23
1981
cc29ec49776d mod_http_muc_log/README: Replace text that seems to have been copied from mod_muc_log_http
Kim Alvefur <zash@zash.se>
parents: 1980
diff changeset
    24
Configuration
cc29ec49776d mod_http_muc_log/README: Replace text that seems to have been copied from mod_muc_log_http
Kim Alvefur <zash@zash.se>
parents: 1980
diff changeset
    25
=============
1807
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1786
diff changeset
    26
1981
cc29ec49776d mod_http_muc_log/README: Replace text that seems to have been copied from mod_muc_log_http
Kim Alvefur <zash@zash.se>
parents: 1980
diff changeset
    27
For example:
1786
29f3d6b7ad16 Import wiki pages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    28
1981
cc29ec49776d mod_http_muc_log/README: Replace text that seems to have been copied from mod_muc_log_http
Kim Alvefur <zash@zash.se>
parents: 1980
diff changeset
    29
``` lua
cc29ec49776d mod_http_muc_log/README: Replace text that seems to have been copied from mod_muc_log_http
Kim Alvefur <zash@zash.se>
parents: 1980
diff changeset
    30
Component "conference.example.com" "muc"
cc29ec49776d mod_http_muc_log/README: Replace text that seems to have been copied from mod_muc_log_http
Kim Alvefur <zash@zash.se>
parents: 1980
diff changeset
    31
modules_enabled = {
5909
02657e8693bc mod_http_muc_log: replace "mam_muc" with "muc_mam" in README.markdown
Luca Matei Pintilie <luca@lucamatei.com>
parents: 5109
diff changeset
    32
    "muc_mam";
1981
cc29ec49776d mod_http_muc_log/README: Replace text that seems to have been copied from mod_muc_log_http
Kim Alvefur <zash@zash.se>
parents: 1980
diff changeset
    33
    "http_muc_log";
cc29ec49776d mod_http_muc_log/README: Replace text that seems to have been copied from mod_muc_log_http
Kim Alvefur <zash@zash.se>
parents: 1980
diff changeset
    34
}
cc29ec49776d mod_http_muc_log/README: Replace text that seems to have been copied from mod_muc_log_http
Kim Alvefur <zash@zash.se>
parents: 1980
diff changeset
    35
storage = {
cc29ec49776d mod_http_muc_log/README: Replace text that seems to have been copied from mod_muc_log_http
Kim Alvefur <zash@zash.se>
parents: 1980
diff changeset
    36
    muc_log = "sql"; -- for example
cc29ec49776d mod_http_muc_log/README: Replace text that seems to have been copied from mod_muc_log_http
Kim Alvefur <zash@zash.se>
parents: 1980
diff changeset
    37
}
cc29ec49776d mod_http_muc_log/README: Replace text that seems to have been copied from mod_muc_log_http
Kim Alvefur <zash@zash.se>
parents: 1980
diff changeset
    38
```
1786
29f3d6b7ad16 Import wiki pages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    39
29f3d6b7ad16 Import wiki pages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    40
The web interface would then be reachable at the address:
1807
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1786
diff changeset
    41
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1786
diff changeset
    42
    http://conference.example.com:5280/muc_log/
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1786
diff changeset
    43
1981
cc29ec49776d mod_http_muc_log/README: Replace text that seems to have been copied from mod_muc_log_http
Kim Alvefur <zash@zash.se>
parents: 1980
diff changeset
    44
See [the page about Prosodys HTTP server][doc:http] for info about the
cc29ec49776d mod_http_muc_log/README: Replace text that seems to have been copied from mod_muc_log_http
Kim Alvefur <zash@zash.se>
parents: 1980
diff changeset
    45
address.
1786
29f3d6b7ad16 Import wiki pages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
    46
2593
89a3f049689f mod_http_muc_log/README: Add some text about the HTML template
Kim Alvefur <zash@zash.se>
parents: 1981
diff changeset
    47
## Styling
89a3f049689f mod_http_muc_log/README: Add some text about the HTML template
Kim Alvefur <zash@zash.se>
parents: 1981
diff changeset
    48
89a3f049689f mod_http_muc_log/README: Add some text about the HTML template
Kim Alvefur <zash@zash.se>
parents: 1981
diff changeset
    49
The default HTML template lives in `http_muc_log.html` in the same
89a3f049689f mod_http_muc_log/README: Add some text about the HTML template
Kim Alvefur <zash@zash.se>
parents: 1981
diff changeset
    50
directory as the module, but can be changed by setting
89a3f049689f mod_http_muc_log/README: Add some text about the HTML template
Kim Alvefur <zash@zash.se>
parents: 1981
diff changeset
    51
`http_muc_log_template` to point to a different file. The same template,
89a3f049689f mod_http_muc_log/README: Add some text about the HTML template
Kim Alvefur <zash@zash.se>
parents: 1981
diff changeset
    52
with different input is used for every view.
89a3f049689f mod_http_muc_log/README: Add some text about the HTML template
Kim Alvefur <zash@zash.se>
parents: 1981
diff changeset
    53
89a3f049689f mod_http_muc_log/README: Add some text about the HTML template
Kim Alvefur <zash@zash.se>
parents: 1981
diff changeset
    54
The module uses [util.interpolation][doc:developers:util:interpolation]
89a3f049689f mod_http_muc_log/README: Add some text about the HTML template
Kim Alvefur <zash@zash.se>
parents: 1981
diff changeset
    55
for rendering templates, with the pattern `"%b{}"` and HTML / XML
89a3f049689f mod_http_muc_log/README: Add some text about the HTML template
Kim Alvefur <zash@zash.se>
parents: 1981
diff changeset
    56
escaping enabled.
89a3f049689f mod_http_muc_log/README: Add some text about the HTML template
Kim Alvefur <zash@zash.se>
parents: 1981
diff changeset
    57
3600
6e529f53b3c3 mod_http_muc_log: Allow specifying the default view
Kim Alvefur <zash@zash.se>
parents: 3586
diff changeset
    58
## Default view
6e529f53b3c3 mod_http_muc_log: Allow specifying the default view
Kim Alvefur <zash@zash.se>
parents: 3586
diff changeset
    59
6e529f53b3c3 mod_http_muc_log: Allow specifying the default view
Kim Alvefur <zash@zash.se>
parents: 3586
diff changeset
    60
To link to the latest day instead of calendar from the room listing
6e529f53b3c3 mod_http_muc_log: Allow specifying the default view
Kim Alvefur <zash@zash.se>
parents: 3586
diff changeset
    61
page:
6e529f53b3c3 mod_http_muc_log: Allow specifying the default view
Kim Alvefur <zash@zash.se>
parents: 3586
diff changeset
    62
6e529f53b3c3 mod_http_muc_log: Allow specifying the default view
Kim Alvefur <zash@zash.se>
parents: 3586
diff changeset
    63
```lua
6e529f53b3c3 mod_http_muc_log: Allow specifying the default view
Kim Alvefur <zash@zash.se>
parents: 3586
diff changeset
    64
http_muc_log_default_view = "latest"
6e529f53b3c3 mod_http_muc_log: Allow specifying the default view
Kim Alvefur <zash@zash.se>
parents: 3586
diff changeset
    65
```
6e529f53b3c3 mod_http_muc_log: Allow specifying the default view
Kim Alvefur <zash@zash.se>
parents: 3586
diff changeset
    66
3586
444e2306c99a mod_http_muc_log: Add option to show OOB images
Kim Alvefur <zash@zash.se>
parents: 3585
diff changeset
    67
## Inline images
444e2306c99a mod_http_muc_log: Add option to show OOB images
Kim Alvefur <zash@zash.se>
parents: 3585
diff changeset
    68
444e2306c99a mod_http_muc_log: Add option to show OOB images
Kim Alvefur <zash@zash.se>
parents: 3585
diff changeset
    69
Inline images can optionally be shown. This is disabled by default for
444e2306c99a mod_http_muc_log: Add option to show OOB images
Kim Alvefur <zash@zash.se>
parents: 3585
diff changeset
    70
privacy reasons.
444e2306c99a mod_http_muc_log: Add option to show OOB images
Kim Alvefur <zash@zash.se>
parents: 3585
diff changeset
    71
444e2306c99a mod_http_muc_log: Add option to show OOB images
Kim Alvefur <zash@zash.se>
parents: 3585
diff changeset
    72
``` {.lua}
444e2306c99a mod_http_muc_log: Add option to show OOB images
Kim Alvefur <zash@zash.se>
parents: 3585
diff changeset
    73
http_muc_log_show_images = true
444e2306c99a mod_http_muc_log: Add option to show OOB images
Kim Alvefur <zash@zash.se>
parents: 3585
diff changeset
    74
```
444e2306c99a mod_http_muc_log: Add option to show OOB images
Kim Alvefur <zash@zash.se>
parents: 3585
diff changeset
    75
3585
dbc67120097f mod_http_muc_log: Document optimization for storage modules lacking :dates API
Kim Alvefur <zash@zash.se>
parents: 2593
diff changeset
    76
## Calendar optimization
dbc67120097f mod_http_muc_log: Document optimization for storage modules lacking :dates API
Kim Alvefur <zash@zash.se>
parents: 2593
diff changeset
    77
dbc67120097f mod_http_muc_log: Document optimization for storage modules lacking :dates API
Kim Alvefur <zash@zash.se>
parents: 2593
diff changeset
    78
The calendar view relies on an optional part of the Prosody archive
dbc67120097f mod_http_muc_log: Document optimization for storage modules lacking :dates API
Kim Alvefur <zash@zash.se>
parents: 2593
diff changeset
    79
storage API that provides a list of every valid date. If this is
dbc67120097f mod_http_muc_log: Document optimization for storage modules lacking :dates API
Kim Alvefur <zash@zash.se>
parents: 2593
diff changeset
    80
unavailable then the module queries for the first and the last messages
dbc67120097f mod_http_muc_log: Document optimization for storage modules lacking :dates API
Kim Alvefur <zash@zash.se>
parents: 2593
diff changeset
    81
and assumes that every date between those is valid. This may lead to
dbc67120097f mod_http_muc_log: Document optimization for storage modules lacking :dates API
Kim Alvefur <zash@zash.se>
parents: 2593
diff changeset
    82
many empty pages in case the logs are sparse.
dbc67120097f mod_http_muc_log: Document optimization for storage modules lacking :dates API
Kim Alvefur <zash@zash.se>
parents: 2593
diff changeset
    83
dbc67120097f mod_http_muc_log: Document optimization for storage modules lacking :dates API
Kim Alvefur <zash@zash.se>
parents: 2593
diff changeset
    84
This optimization can be turned off, to get a more accurate calendar
dbc67120097f mod_http_muc_log: Document optimization for storage modules lacking :dates API
Kim Alvefur <zash@zash.se>
parents: 2593
diff changeset
    85
view, but it will likely be very slow.
dbc67120097f mod_http_muc_log: Document optimization for storage modules lacking :dates API
Kim Alvefur <zash@zash.se>
parents: 2593
diff changeset
    86
dbc67120097f mod_http_muc_log: Document optimization for storage modules lacking :dates API
Kim Alvefur <zash@zash.se>
parents: 2593
diff changeset
    87
``` {.lua}
dbc67120097f mod_http_muc_log: Document optimization for storage modules lacking :dates API
Kim Alvefur <zash@zash.se>
parents: 2593
diff changeset
    88
http_muc_log_lazy_calendar = false
dbc67120097f mod_http_muc_log: Document optimization for storage modules lacking :dates API
Kim Alvefur <zash@zash.se>
parents: 2593
diff changeset
    89
```
dbc67120097f mod_http_muc_log: Document optimization for storage modules lacking :dates API
Kim Alvefur <zash@zash.se>
parents: 2593
diff changeset
    90
4680
a2cf3b69a3d6 mod_http_muc_log: Add way to list certain rooms in a specified order
Kim Alvefur <zash@zash.se>
parents: 4186
diff changeset
    91
## Pinned chatrooms
a2cf3b69a3d6 mod_http_muc_log: Add way to list certain rooms in a specified order
Kim Alvefur <zash@zash.se>
parents: 4186
diff changeset
    92
4681
823370bc2e4c mod_http_muc_log: Sort rooms with a description before those without
Kim Alvefur <zash@zash.se>
parents: 4680
diff changeset
    93
The room list page is normally sorted by address, rooms having a
823370bc2e4c mod_http_muc_log: Sort rooms with a description before those without
Kim Alvefur <zash@zash.se>
parents: 4680
diff changeset
    94
description before those that don't. To override this, or pin certain
823370bc2e4c mod_http_muc_log: Sort rooms with a description before those without
Kim Alvefur <zash@zash.se>
parents: 4680
diff changeset
    95
rooms to the top:
4680
a2cf3b69a3d6 mod_http_muc_log: Add way to list certain rooms in a specified order
Kim Alvefur <zash@zash.se>
parents: 4186
diff changeset
    96
a2cf3b69a3d6 mod_http_muc_log: Add way to list certain rooms in a specified order
Kim Alvefur <zash@zash.se>
parents: 4186
diff changeset
    97
``` lua
a2cf3b69a3d6 mod_http_muc_log: Add way to list certain rooms in a specified order
Kim Alvefur <zash@zash.se>
parents: 4186
diff changeset
    98
http_muc_log_list_order = {
a2cf3b69a3d6 mod_http_muc_log: Add way to list certain rooms in a specified order
Kim Alvefur <zash@zash.se>
parents: 4186
diff changeset
    99
    "general@channels.example.com",
a2cf3b69a3d6 mod_http_muc_log: Add way to list certain rooms in a specified order
Kim Alvefur <zash@zash.se>
parents: 4186
diff changeset
   100
    "support@channels.example.com",
a2cf3b69a3d6 mod_http_muc_log: Add way to list certain rooms in a specified order
Kim Alvefur <zash@zash.se>
parents: 4186
diff changeset
   101
}
a2cf3b69a3d6 mod_http_muc_log: Add way to list certain rooms in a specified order
Kim Alvefur <zash@zash.se>
parents: 4186
diff changeset
   102
```
a2cf3b69a3d6 mod_http_muc_log: Add way to list certain rooms in a specified order
Kim Alvefur <zash@zash.se>
parents: 4186
diff changeset
   103
1807
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1786
diff changeset
   104
Compatibility
4d73a1a6ba68 Convert all wiki pages to Markdown
Kim Alvefur <zash@zash.se>
parents: 1786
diff changeset
   105
=============
1786
29f3d6b7ad16 Import wiki pages
Kim Alvefur <zash@zash.se>
parents:
diff changeset
   106
4974
8c7b7db69f5b mod_http_muc_log: Drop support for pre-0.11 MUC API
Kim Alvefur <zash@zash.se>
parents: 4681
diff changeset
   107
Requires Prosody 0.11 or later and a storage backend with support for
1981
cc29ec49776d mod_http_muc_log/README: Replace text that seems to have been copied from mod_muc_log_http
Kim Alvefur <zash@zash.se>
parents: 1980
diff changeset
   108
stanza archives. See [mod\_storage\_muc\_log] for using legacy data from
cc29ec49776d mod_http_muc_log/README: Replace text that seems to have been copied from mod_muc_log_http
Kim Alvefur <zash@zash.se>
parents: 1980
diff changeset
   109
[mod\_muc\_log].