MOTD (message of the day) ========================= This is a stub until a more sophisticated motd mechanism can be implemented in the future, with better platform integration. Providers can opt-in to the motd feature (only riseup is using it at the moment). If motd is enabled for a given provider, the client will attempt to fetch the motd.json file from a well-known URL, and will display the first valid message on the splash screen. The structure of the `motd.json` file is like follows: ``` { "motd": [{ "begin": "01 Nov 21 00:00 -0700", "end": "31 Jan 22 00:00 -0700", "type": "daily", "platform": "all", "urgency": "normal", "text": [ { "lang": "en", "str": "This is a test!"}, { "lang": "es", "str": "Esto es una pruebita!"} ]} ] } ``` Valid values are: * Begin, End are date strings, in the format: "01 Jan 21 00:00:00 -0700". * Type: "once" for a one-shot message, "daily" for a message that is displayed daily during the specified duration. * Platform: one of "windows", "osx", "snap", "linux", or "all". * Urgency: either "normal" or "critical". The text message can contain links. You can use the `motd-cli` tool in this folder to parse and validate the json: ``` go build ❯ ./motd-cli file: motd-example.json count: 1 Message 1 ✓ ----------- Type: daily ✓ Platform: all ✓ Urgency: normal ✓ Languages: 2 ✓ ``` Use `motd-cli -url https://example.com/motd.json` to validate a remote file. Notes: I'm considering adding an explicit layer of verification of the motd payload. Please comment on [#554](https://0xacab.org/leap/bitmask-vpn/-/issues/554) if you have an opinion on this.