privateparlor
A rewrite of secretlounge-ng, a bot to make an anonymous group chat on Telegram. Written in Crystal with the aim of being a fast, memory efficient, and featureful alternative.
Using the Tourmaline Telegram bot library.
Installation
Compiling PrivateParlor requires having both crystal
and shards
installed.
git clone https://github.com/Charibdys/Private-Parlor.git
cd privateparlor
shards install
shards build --release
BotFather Setup
- Start a conversation with BotFather
- Make a new bot with
/newbot
and answer the prompts /setprivacy
: enabled/setjoingroups
: disabled/setcommands
: paste the following command list here
Command list
start - Join the chat (start receiving messages)
stop - Leave the chat (stop receiving messages)
leave - Alias of stop
info - Get info about your account
users - Show the number of users in the chat
version - Get the version and a link to the source code
togglekarma - Toggle karma notifications
toggledebug - Toggle debug mode (sends messages back to you)
tripcode - Set or view your tripcode
rules - Show the rules of this chat
sign - Sign a message with your username
tsign - Sign a message with your tripcode
s - Alias of sign
t - Alias of tsign
Commands can also be registered with BotFather in the config file. These commands will overwrite the command list above.
Usage
- Rename
config.yaml.copy
toconfig.yaml
- Edit config file, it should at least have the API token for your bot and a path to a SQLite database
- Run the binary found in
bin/
Development
The following features are planned and being worked on:
- [x] Relay message types
- [x] Text
- [x] Photos
- [X] Albums
- [x] Videos
- [x] Files/Documents
- [x] GIFs
- [x] Stickers
- [x] Polls
- [x] Locations/Venues
- [x] Contacts
- [x] Forwards
- [x] Admin commands
- [X] Delete
- [X] Delete all
- [X] Remove
- [X] Warn
- [X] Uncooldown
- [X] Setting rules/MOTD
- [X] User info
- [X] Blacklist
- [X] Promotion
- [X] Demotion
- [x] Message history/cache
- [X] Karma
- [X] Upvotes
- [X] Downvotes
- [x] Message queue
- [x] Spam prevention
- [X] Configuration
- [X] Configurable roles and command permissions
- [X] Configurable cache contents/data
- [x] Configurable cache life
- [x] Configurable time and content limits for spam filter
- [x] Inactivity timeout
- [x] CLI tools and utility scripts
- [x] ROBOT 9000 Auto Moderator
Contributing
Open tasks and current planned features can be found in this repo's project, Private Parlor Development
If you would like to make a contribution, follow these steps:
- Fork it (https://github.com/Charibdys/Private-Parlor/fork)
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
Ensure that your code is documented and follows the Crystal API coding style.
Contributors
- Charybdis - creator and maintainer