Skip to content

Private-Parlor/Private-Parlor-XT

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

265 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Private Parlor XT

GitHub Workflow Status (with event) GitHub Workflow Status (with event) GitHub Workflow Status (with event)

GitHub top language

A featureful Telegram bot to make an anonymous, private group chat on Telegram.

Inspired by secretlounge-ng

Using the Tourmaline Telegram bot library.

Notable Features

  • Anonymously relay text, photos, albums, polls, videos and more to other people using the bot.
  • Restrict new users from sending media by configuring the media limit period.
  • Define new ranks via the configuration file with permissions to use various commands and media.
  • Make tripcodes harder to crack by adding a salt to the config file.
  • Add a spoiler to media before they're sent; or add a spoiler after the fact using the /spoiler command.
  • Pin and unpin messages to the chat.
  • Privately reveal your username to another user.
  • Print log messages to a Telegram channel
  • Kick users that have been inactive for a configurable period of time.
  • Send forwarded messages as photos, videos, animations, etc. to prevent rate limiting.
  • Have users automatically send every message with a tripcode using pseudonymous mode.
  • Store message history in the database to reduce RAM usage.
  • Localization in English, German, and Klingon.
  • Persist message history longer or less than 24 hours.
  • Prevent new users from joining by closing registration via the config file.
  • Upvote and Downvote messages.
  • Register commands with BotFather using the config file.
  • Enable or disable commands and relaying of certain types of messages using the config file.
  • Give users a level based on how much karma they have; user's can sign messages with their level using the /ksign command.
  • Reduce noise and enforce original messages using the Robot 9000 auto moderator.
  • And more!

Installation

Compiling PrivateParlor XT requires having both crystal and shards installed.

git clone https://github.com/Private-Parlor/Private-Parlor-XT.git
cd private-parlor-xt
shards install
shards build --release

Alternatively, you can download the precompiled binaries from Releases

BotFather Setup

  1. Start a conversation with BotFather
  2. Make a new bot with /newbot and answer the prompts
  3. /setprivacy: enabled
  4. /setjoingroups: disabled

Usage

  1. Rename config.yaml.copy to config.yaml
  2. Edit config file
  • The config file should at least contain the API Token received from Botfather and a path to a SQLite database
  • Unless the database already exists, Private Parlor XT will create a new SQLite database at the given path
  1. Run the private-parlor-xt binary

Development

Development instructions are as follows:

  • Ensure code conforms to the Crystal API coding style
  • Explicitly define return types and types for variables and parameters
  • Document your code
  • Write some specs for your code
  • Lint using Ameba; remove as many warnings as possible

Contributing

  1. Fork it (https://github.com/Private-Parlor/private-parlor-xt/fork)
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

About

A featureful Telegram bot for making anonymous group chats

Topics

Resources

License

LGPL-3.0, GPL-3.0 licenses found

Licenses found

LGPL-3.0
COPYING.LESSER
GPL-3.0
COPYING

Stars

Watchers

Forks