Skip to content

GeopJr/Crycord

This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

2971c11 · Sep 22, 2020

History

9 Commits
Sep 8, 2020
Sep 22, 2020
Sep 8, 2020
Sep 8, 2020
Sep 8, 2020
Sep 22, 2020
Sep 8, 2020

Repository files navigation



Ko-Fi donate button liberapay MIT

crycord

Crycord is a modular Discord Client Mod written in Crystal.

Uses asar-cr.

Installation

You can download the statically linked build from the releases page!

Building

  1. shards install
  2. crystal build --release

Note: Static builds can only be built in AlpineLinux

Usage

$ ./crycord -h

<== [Crycord] ==>
    -v, --version                    Show version
    -h, --help                       Show help
    -gs, --groups                    Lists all available plugin groups
    -p, --plugins                    Lists all available plugins
    -c CSS_PATH, --css=CSS_PATH      Sets CSS location
    -f CORE_ASAR_PATH, --force=CORE_ASAR_PATH
                                     Forces an asar path
    -g PLUGIN_GROUP, --group=PLUGIN_GROUP
                                     Selects the plugin group(s) to install. Split multiple groups with commas(,).
$ ./crycord -c ./Downloads/css.css

Flatpak Detected:
Make sure it has access to your CSS file
Usually ~/Downloads is accessible
Extracting core.asar...
Installing enable_css...
Installing enable_https...
Packing core.asar...
Done!
Restart Discord to see the results!

Plugins

Name Group Description Maintainer
enable_https core Disables CSP GeopJr
enable_css core Enables css injection GeopJr
unrestricted_resize extra Removes window size limits GeopJr

To enable groups of plugins use $ crycord -g core,extra -c /path/to/css

Note: core is enabled by default so there's no need to include it.

Benchmarks

Crycord:

$ time ./crycord -c ~/Downloads/css.css
...

real	0m2,942s
user	0m2,932s
sys	0m0,462s

BeautifulDiscord:

$ time python3 -m beautifuldiscord --css ~/Downloads/css.css
...

real	0m4,593s
user	0m2,026s
sys	0m2,381s

(Laggy) Gifs

install restore hotreload

WARNING

  • Any Discord Client modification is against their T.O.S.
  • I am not responsible if your account gets terminated.
  • Using a client mod such as this (and all others), deactivates many electron security functions.
  • If a Discord Staff happens to stumble upon this, I don't use this tool on my account and it's made for educational purposes.

Goals

As I also wrote the shard that manages the asar pack/extract (these 2 functions at least), my main goal is to achieve max speed and max compatibility. Using Crystal only tools like Path, File, Dir etc. is one way to reach it. However, since I don't have access to a Mac and Windows doesn't have proper support, some paths (Discord config) are made specifically for linux.

How is it different to BeautifulDiscord?

First of all, it's written, well... in Crystal!

That alone makes it a lot faster!

Crycord also has a plugin(?) system!

Lastly, it can patch the flatpak version.

TODO

  • Use a cross-platform way to find Discord's pid
  • Clean the module collector
  • GitHub action using docker in an attempt to build static builds automatically

Contributing

  1. Fork it (https://github.com/your-github-user/crycord/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