forked from MightyPork/group-actor
				
			
							parent
							
								
									df197f91b7
								
							
						
					
					
						commit
						4c8fbb413d
					
				| @ -0,0 +1,99 @@ | ||||
| # Groups for Pleroma!!! | ||||
| and Mastodon or anything with the Mastodon API. | ||||
| 
 | ||||
| ## Usage | ||||
| 
 | ||||
| ### Building | ||||
| 
 | ||||
| Install the rust toolchain using `rustup`: [https://www.rust-lang.org/tools/install](https://www.rust-lang.org/tools/install) | ||||
| 
 | ||||
| Rust 1.54+ is recommended. | ||||
| 
 | ||||
| Build with `cargo build`, or optimized: `cargo build --release`. The binary is placed in the `target/debug` or `target/release` directory. | ||||
| 
 | ||||
| You can also run the program using Cargo, that is handy for development: `cargo run`. When passing command line flags, use `--`: `cargo run -- -i my@group.xyz`. | ||||
| 
 | ||||
| ### Setting up a group account | ||||
| 
 | ||||
| 1. Create the group's account all nice like you want it. Pleroma and Mastodon should work, others may work too but you're on your own. | ||||
| 2. Run the group service with `fedigroups -a mygroup@groups.social` (your account's handle) to authenticate. | ||||
| 3. **Make sure you auth as the correct user!**  | ||||
| 4. Paste the Oauth2 token you got into the terminal, hit enter. | ||||
| 
 | ||||
| The program now ends. The credentials are saved in a file `groups.json`. | ||||
| 
 | ||||
| You can repeat this for any number of groups. | ||||
| 
 | ||||
| ### Editing config | ||||
| 
 | ||||
| **Do not edit the config while the group service is running, it will overwrite your changes!** | ||||
| 
 | ||||
| The JSON file is easily editable, you can e.g. add yourself as an admin (use the e-mail format, e.g. `piggo@piggo.space`).  | ||||
| The file format is quite self-explanatory. | ||||
| 
 | ||||
| ```json | ||||
| { | ||||
|   "groups": { | ||||
|     "group@myserver.xyz": { | ||||
|       "enabled": true, | ||||
|       "acct": "group@myserver.xyz", | ||||
|       "appdata": { | ||||
|         "base": "https://myserver.xyz", | ||||
|         "client_id": "...", | ||||
|         "client_secret": "...", | ||||
|         "redirect": "urn:ietf:wg:oauth:2.0:oob", | ||||
|         "token": "..." | ||||
|       }, | ||||
|       "admin_users": [ | ||||
|         "admin@myserver.xyz" | ||||
|       ], | ||||
|       "member_users": [], | ||||
|       "banned_users": [], | ||||
|       "member_only": false, | ||||
|       "banned_servers": [ | ||||
|         "bad-stuff-here.cc" | ||||
|       ], | ||||
|       "last_notif_ts": 1629626621000 | ||||
|     } | ||||
|   } | ||||
| } | ||||
| ``` | ||||
| 
 | ||||
| - `member_users` - used if `member_only` is true, then only members and admins can post to the group | ||||
| - `banned_users` - can't post or interact with the group service | ||||
| - `banned_servers` - work like an instance block | ||||
| 
 | ||||
| ### Running | ||||
| 
 | ||||
| To run the group service, simply run it with no arguments. It will read what to do from `groups.json`. | ||||
| 
 | ||||
| Note that the file must be writable, it is updated at run-time. | ||||
| 
 | ||||
| ### Commands | ||||
| 
 | ||||
| To share an original post, mention the group user. | ||||
| Posts with commands, and replies, won’t be shared. | ||||
| 
 | ||||
| Commands are simple text lines you use when mentioning the group user. DMs work well for this. | ||||
| One post can contain multiple commands; the replies will be batched to one response. | ||||
| 
 | ||||
| **Basic commands** | ||||
| - `/ignore, /i` - make the group completely ignore the post | ||||
| - `/members, /who` - show group members / admins | ||||
| - `/boost, /b` - boost the replied-to post into the group | ||||
| 
 | ||||
| **For member-only groups** | ||||
| - `/leave` - leave the group | ||||
| 
 | ||||
| **For admins** | ||||
| - `/announce x` - make a public announcement from the rest of the status | ||||
| - `/ban x` - ban a user or a server. Note that this is only on the service level, the account won't be blocked or muted. | ||||
| - `/unban x` - lift a ban | ||||
| - `/op, /admin user` - grant admin rights to the group | ||||
| - `/deop, /deadmin user` - revoke admin rights | ||||
| - `/opengroup` - make member-only | ||||
| - `/closegroup` - make public-access | ||||
| 
 | ||||
| **For admins of private groups** | ||||
| - `/add user` - add a member (use e-mail style address) | ||||
| - `/kick, /remove user` - kick a member | ||||
					Loading…
					
					
				
		Reference in new issue