diff --git a/docs/advanced/abuse_management.md b/docs/advanced/abuse_management.md new file mode 100644 index 0000000..5403da4 --- /dev/null +++ b/docs/advanced/abuse_management.md @@ -0,0 +1,29 @@ +--- +title: "Abuse Management" +date: 2021-08-03T20:30:00+02:00 +--- + +# Abuse Management + +our matrix instance has a moderation tool [mjolnir](https://github.com/matrix-org/mjolnir). +to protect your own room from known spammers and evil accounts, you can simply give [@mjolnir:envs.net](https://matrix.to/#/@mjolnir:envs.net) +an invite and admin Permissions in the room. +the abuse moderators then receive the invitation and have to confirm it. +after this step, the room is protected. + +you are welcome to join [#abuse:envs.net](https://matrix.to/#/#abuse:envs.net) to report known spammers and evil peoples. + +***notice:*** + +you can also subscribe to our banlist to ignore the banned users even in unprotected rooms. + +.. to do this, you need to allow the `showLabsSettings` feature in your element config ([see sample config](https://element.envs.net/config.json)) +and then activate in `settings` -> `labs` -> `Try out new ways to ignore people`. + +in the last step you need to subscribe our banlist: [#envs-ban-list:envs.net](https://matrix.to/#/#envs-ban-list:envs.net) (`!UyrSHIwWgbGsHjabGe:envs.net`) +under `settings` -> `ignored users`. + +***official matrix.org banlists:*** + +- [#matrix-org-coc-bl:matrix.org](https://matrix.to/#/#matrix-org-coc-bl:matrix.org) (coc violations) +- [#matrix-org-hs-tos-bl:matrix.org](https://matrix.to/#/#matrix-org-hs-tos-bl:matrix.org) (toc violations) diff --git a/docs/advanced/irc_bridge.md b/docs/advanced/irc_bridge.md new file mode 100644 index 0000000..91d0963 --- /dev/null +++ b/docs/advanced/irc_bridge.md @@ -0,0 +1,28 @@ +--- +title: "IRC Bridges" +date: 2021-08-03T20:30:00+02:00 +--- + +# IRC Bridges + +## IRC Bridge to irc.tilde.chat + +our envs.net matrix instance provides an federated irc bridge to [irc.tilde.chat](https://tilde.chat/). + +### Bridge information + +| | | +|:------------------------|:------------------------------------------------------------------------------------------:| +| **network name:** | irc.tilde.chat | +| **room alias format:** | `#irc.tilde.chat_CHANNELNAME:envs.net` | +| **appservice user:** | [@IRCBot:envs.net](https://matrix.to/#/@IRCBot:envs.net) | +| **NickServ:** | [@irc.tilde.chat_NickServ:envs.net](https://matrix.to/#/@irc.tilde.chat_NickServ:envs.net) | +| **ChanServ:** | [@irc.tilde.chat_ChanServ:envs.net](https://matrix.to/#/@irc.tilde.chat_ChanServ:envs.net) | +| **room for support:** | [#envs:envs.net](https://matrix.to/#/envs:envs.net) | +| **operator:** | envs.net (~creme) | + +## Documentation + +- [matrix irc bridge documentation](https://matrix-org.github.io/matrix-appservice-irc/latest/usage.html) +- [end user faq](https://github.com/matrix-org/matrix-appservice-irc/wiki/End-user-FAQ) +- [tilde.chat - wiki](https://tilde.chat/wiki/) diff --git a/docs/advanced/local_bots.md b/docs/advanced/local_bots.md new file mode 100644 index 0000000..52d6840 --- /dev/null +++ b/docs/advanced/local_bots.md @@ -0,0 +1,356 @@ +--- +title: "Bot's Overview" +date: 2021-08-03T20:30:00+02:00 +--- + +# local Bot's on envs.net + +> all our bots are from [maubot](https://github.com/maubot/maubot) + +feel free to use our bot's in your room! + +!!! note + The Bot's won't work in encrypted rooms! + +## Overview + +[RSS Bot](#rss_bot) | +[Reminder](#reminder) | +[sed Bot](#sed_bot) | +[Poll Bot](#poll_bot) | +[Karma Bot](#karma_bot) | +[Github Bot](#github_bot) | +[Weather Bot](#weather_bot) | +[Translator](#translator) | +[version checker](#version_checker) | +[urbandictionary Bot](#urbandictionary_bot) | +[Wolfram Alpha Bot](#wolfram_alpha_bot) | +[Factorial Bot](#factorial_bot) | +[Dice Bot](#dice_bot) | +[XKCD](#xkcd) | +[CommitStrip](#commitstrip) | +[Cat Disruptor](#cat_disruptor) | +[echobot [envs]](#echobot_envs) + +!!! info + there is also [@maubot:envs.net](https://matrix.to/#/@maubot:envs.net) which includes all bots. + you can try all the bots in [`#test:envs.net`](https://matrix.to/#/#test:envs.net). + +*** + +## RSS Bot + +**name:** [`@rss:envs.net`](https://matrix.to/#/@rss:envs.net) + +A Bot that posts RSS feed updates to Matrix. + +**Usage:** `!rss [...]` + +- `subscribe ` - Subscribe this room to a feed. +- `unsubscribe ` - Unsubscribe this room from a feed. +- `template ` - Change the notification template for a subscription in this room +- `notice [true/false]` - Set whether or not the bot should send updates as m.notice +- `subscriptions` - List the subscriptions in the current room. + +## Reminder + +A Bot to remind you about things. + +**name:** [`@reminder:envs.net`](https://matrix.to/#/@reminder:envs.net) + +**Usage:** `!remind [message]` _OR_ `!remind [...]` + +**Subcommands:** reschedule, help, list, locales, locale, timezone + +`` can be a time delta (e.g. `2 days 1.5 hours` or `friday at 15:00`) or an absolute date (e.g. `2020-03-27 15:00`). + +To set the timezone for date parsing and output for your messages, use `!remind tz `. +It's recommended to use a [TZ database name](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones), +but anything supported by Pytz will work. + +Similarly, you can set the locale for date parsing with `!remind locale `. If you +provide multiple locales, each one will be tried for parsing your input until one matches. Unlike +the timezone, the locale only affects input, not output. You can view available locales using +`!remind locales`. You can also contribute new locales by making a pull request +(see [locales.py](https://github.com/maubot/reminder/blob/master/reminder/locales.py), content warning: long regexes). + +To list your upcoming reminders, use `!remind list` + +## sed Bot + +A Bot to do sed-like replacements. + +**name:** [`@sed:envs.net`](https://matrix.to/#/@sed:envs.net) + +Example: + +> this is a wrong txt. + +**Usage:** `s/txt/text/g` + +**sed output:** +> this is a wrong text. + +## Poll Bot + +A Bot that creates a poll in a room and allows users to vote. + +**name:** [`@poll:envs.net`](https://matrix.to/#/@poll:envs.net) + +**Usage:** `!poll [...]` + +- `new ` - Creates a new poll with "Question" "choice" "choice" "choice" ... +- `results` - Prints out the current results of the poll +- `close` - Ends the poll + +Example: + +`!poll new "Question" "Choice1" "Choice2" "Choice3"` - Creates a new poll with given (at least 1) choices + +The user can now also create polls with line-breaks: +``` +!poll new What is my question? +Choice1 +Choice2 +Choice3 +``` + +`!poll results` - Displays the results from the poll + +`!poll close` - Ends the poll + +Users vote by adding the matching emoji to the poll (i.e. if the first choice has a :thumbsup: then in order to pick that choice the user has to react with :thumbsup:) + +## Karma Bot + +A Bot that tracks the karma of users. + +**name:** [`@karma:envs.net`](https://matrix.to/#/@karma:envs.net) + +**Usage:** `!karma [...]` + +- `up ` - Upvote an event +- `down ` - Downvote a message +- `stats` - View global karma statistics +- `view [user ID]` - View your or another users karma +- `export` - Export the data of your karma +- `breakdown` - View your karma breakdown +- `top` - View the highest rated users +- `bottom` - View the lowest rated users +- `best` - View the highest rated messages +- `worst` - View the lowest rated messages + +## Github Bot + +A GitHub client and webhook receiver for maubot. + +**name:** [`@github:envs.net`](https://matrix.to/#/@github:envs.net) + +**Usage:** `!github [...]` + +- `login [flags]` - Log into GitHub. +- `ping` - Check your login status. +- `raw ` - Make a raw GraphQL query. +- `create [owner/repo] ` - Create an issue. Title on first line, body on other lines +- `webhook <subcommand> [...]` - Manage webhooks. + +<br /> +1. **Use `!github login` to log in.** + + After inviting your bot / client to a matrix channel, use the `!gh` or + `!github` command to use the github instance. + + Using `gh login` first is mandatory and needed once **per instance**. + + The bot will reply with a link leading to your personal Github's allowed + OAuth apps page, where you shall grant the necessary rights to the bot + OAuth app. + + By default, the bot will request access to all public repos and to add + webhooks. You can control the permissions it wants with some flags: + + - `--no-repo` makes it not ask for repo access at all. + Only `!github webhook add` will work, other commands like `!github create` + will not. + - `--no-hook` makes it not ask for webhook access. + `!github webhook add` will not work. + - `--private` makes it ask for private repo access. Necessary if you want to + use the bot to manage private repos. + +<br /> +2. **Use `!github webhook add <owner>/<repo>` to add webhooks.** + + This will let you see in the current channel all the commits, comments, + issues, stars, forks, pull requests, and so on, for that given repository. + + You must have admin rights on the repositories you want to track, as adding + webhooks to a repository requires manager access rights to a project. + + Once you create a webhook and track a repository, it will be tracked + **only in the room from which you are in**. + +## Weather Bot + +A Bot that gets the weather from [wttr.in](http://wttr.in) and returns the text to the chat + +**name:** [`@weather:envs.net`](https://matrix.to/#/@weather:envs.net) + +**Usage:** + +- `!weather` - Reply with the weather based on the default config value (Germany, Berlin) +- `!weather <location>` - Reply with the location for the specified `<location>` where +`<location>` can be an airport code, or a city + +## Translator + +A Bot to translate words using Google Translate (DeepL is planned too) + +**name:** [`@translate:envs.net`](https://matrix.to/#/@translate:envs.net) + +**Usage:** `!translate <language> [text]` + +After inviting the bot to your room, simply use the `!translate` command: + +`!translate en ru Hello world.` + +which results in + +>Translator: +> > rubo77 +> > !translate en ru Hello world. + +> Привет, мир. + +You can also use the alias `tr`: + +`!tr en ru Hello world.` + +The first parameter (source language) can be set to `auto` or omitted entirely +to let Google Translate detect the source language. Additionally, you can reply +to a message with `!tr <from> <to>` (no text) to translate the message you +replied to. + +**supported languages:** + +- de: (german) +- en: (english) +- zh: (chinese) +- ... + +Full list of supported languages: [https://cloud.google.com/translate/docs/languages](https://cloud.google.com/translate/docs/languages) + +## version checker + +A Bot to check the version of servers in rooms. + +**name:** [`@version:envs.net`](https://matrix.to/#/@version:envs.net) + +**Usage:** + +- `!servers` - Test all servers in room and report aggregated tests. +- `!servers retest <name>` - Re-test a server and update the previous results. +- `!servers match <software> [operator] <version>` - Show all servers with the + given software and version. Operator can be `>`, `<`, `>=`, `<=`, `!=`, `=` + or empty. +- `!server test <name>` - Test one server, independently of any previous whole-room tests. +- `!server`, `!version` and `!versions` are aliases for `!servers`, `recheck` + is an alias for `tetest`. + +## urbandictionary Bot + +A Bot to fetch definitions from [Urban Dictionary](https://www.urbandictionary.com/). Returns a specified or random entry. + +**name:** [`@urban:envs.net`](https://matrix.to/#/@urban:envs.net) + +**Usage:** `!ud [term] [index]` + +Examples +``` +!ud +!ud foo +!ud foo 2 +``` + +## Wolfram Alpha Bot + +a Bot to search on [Wolfram Alpha](https://www.wolframalpha.com/). + +**name:** [`@wolframalpha:envs.net`](https://matrix.to/#/@wolframalpha:envs.net) + +**Usage:** `!wolfram some search term` + +## Factorial Bot + +A Bot that calculates expected and unexpected factorials in messages. + +**name:** [`@factorial:envs.net`](https://matrix.to/#/@factorial:envs.net) + +**Usage:** + +Simply type a number followed by one or more exclamation marks. Note that multiple exclamation marks means a double factorial, not a factorial applied twice. + +Example: + +`1! 2! 3!` + +> 1! = 1 +> 2! = 2 +> 3! = 6 + +`over 9000!` + +>9000! ≈ 8.09958 × 10<sup>31681</sup> + + +## Dice Bot + +A Bot that rolls dice. Has built-in calculator. + +**name:** [`@dice:envs.net`](https://matrix.to/#/@dice:envs.net) + +**Usage:** + +The base command is `!roll`. To roll dice, pass `XdY` as an argument, where `X` +is the number of dice (optional) and `Y` is the number of sides in each dice. +Most Python math and bitwise operators and basic `math` module functions are +also supported, which means you can roll different kinds of dice and combine +the results however you like. + +## XKCD + +A Bot to fetch xkcd comics and to get notifications about new comics. + +**name:** [`@xkcd:envs.net`](https://matrix.to/#/@xkcd:envs.net) + +**Usage:** `!xkcd [number]` _OR_ `!xkcd <subcommand> [...]` + +**Subcommands:** `reindex`, `lucky`, `search`, `subscribe`, `unsubscribe` + +## CommitStrip + +A Bot to fetch [CommitStrips](https://www.commitstrip.com/en/) and to get notifications about new comics. + +**name:** [`@commitstrip:envs.net`](https://matrix.to/#/@commitstrip:envs.net) + +**Usage:** `!commitstrip` _OR_ `!commitstrip <subcommand> [...]` + +**Subcommands:** `search`, `subscribe`, `unsubscribe` + +## Cat Disruptor + +A Bot plugin that disrupts monologues cat pictures and react to some messages. + +**name:** [`@cat:envs.net`](https://matrix.to/#/@cat:envs.net) + +You can use it 3 times per day with `🐈️` _(\:cat2:)_. + +## echobot [envs] + +A simple Bot that echoes pings and other stuff. + +**name:** [`@echo:envs.net`](https://matrix.to/#/@echo:envs.net) + +**Usage:** + +- `!ping` - Reply with "Pong!" and the time it took for the message to reach the bot. +- `!echo <message>` - Reply with the given message diff --git a/docs/faq.md b/docs/faq.md index bbe567f..6c47267 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -171,7 +171,7 @@ Go back to the old room. * Set event type to `m.room.tombstone` * In event content enter (you'll need the target room_ID now): -``` +```json { "body": "This room has been replaced by new one", "replacement_room": "!target_room_id:server.tld" diff --git a/docs/rooms/retention_policies.md b/docs/rooms/retention_policies.md new file mode 100644 index 0000000..9196f1c --- /dev/null +++ b/docs/rooms/retention_policies.md @@ -0,0 +1,61 @@ +--- +title: "Message retention policies" +date: 2021-08-03T20:30:00+02:00 +--- + +# Message retention policies + +Message retention policies exist at a room level, follow the semantics described in [MSC1763](https://github.com/matrix-org/matrix-doc/blob/matthew/msc1763/proposals/1763-configurable-retention-periods.md), and allow server and room admins to configure how long messages should be kept in a homeserver's database before being purged from it. + +!!! note + Please note that, as this feature isn't part of the Matrix specification yet, this implementation is to be considered as experimental. + +A message retention policy is mainly defined by its `max_lifetime` parameter, which defines how long a message can be kept around after it was sent to the room. If a room doesn't have a message retention policy, and there's no default one for a given server, then no message sent in that room is ever purged on that server. + +MSC1763 also specifies semantics for a `min_lifetime` parameter which defines the amount of time after which an event can get purged (after it was sent to the room), but Synapse doesn't currently support it beyond registering it. + +Both `max_lifetime` and `min_lifetime` are optional parameters. + +!!! note + Note that message retention policies don't apply to state events. + +more infomration about Message retention policies can find [here](https://github.com/matrix-org/synapse/blob/master/docs/message_retention_policies.md). + +## Lifetime limits on envs.net + +Our current instance lifetime limits are: + +```yaml + allowed_lifetime_min: 30m + allowed_lifetime_max: 3y +``` + +## Room configuration + +To configure a room's message retention policy, a room's admin or +moderator needs to send a state event in that room with the type +`m.room.retention` and the following content: + +* Type `/devtools`. +* Select "Create custom event" +* Press red "Event" button to change to "State event" +* Set event type to `m.room.retention` + +```json +{ + "max_lifetime": ... +} +``` + +Press `Send` + +In this event's content, the `max_lifetime` parameter has the same +meaning as previously described, and needs to be expressed in +milliseconds. The event's content can also include a `min_lifetime` +parameter, which has the same meaning and limited support as previously +described. + +!!! note + Note that over every server in the room, only the ones with support for + message retention policies will actually remove expired events. This + support is currently not enabled by default in Synapse. diff --git a/mkdocs.yml b/mkdocs.yml index 36b5a19..3996716 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -49,11 +49,15 @@ nav: - Find rooms: rooms/find.md - Delete rooms: rooms/delete.md - Share rooms: rooms/sharing.md + - Message retention policies: rooms/retention_policies.md - Notifications: notifications.md - Encryption: encryption.md - Advanced: - Spaces: advanced/spaces.md - Integrations: advanced/integrations.md + - Abuse Management: advanced/abuse_management.md + - IRC Bridges: advanced/irc_bridge.md + - Bot's: advanced/local_bots.md - FAQ: faq.md - Impressum: impressum.md - Development: development.md