Giter Site home page Giter Site logo

crcophony's Introduction

crcophony /kəˈkɒf(ə)ni/

read: cacophony

release badge

A simple Discord Terminal UI written in Crystal.

WARNING

Self-bots are not allowed by Discord's Terms of Service. Using crcophony could technically count as using a self-bot. Use this project at your own risk, it isn't my fault if it gets you banned.

That being said, I'm trying my best to ensure the application is as safe as possible. You cannot do anything in crcophony that you can't do in the normal Discord client (in fact, there are things you can do in the Discord client that you can't do in crcophony) so it should be okay.

Bottom line: Use at your own risk

Keybinds

Normal

  • Ctrl+C: Quit Application
  • Enter: Send Message
  • Ctrl+W / Up: Scroll Up
  • Ctrl+S / Down: Scroll Down
  • Ctrl+N: Add line break to message input

Channel Switching

  • Ctrl+K: Open / Close Channel Selection Menu
  • Enter: Select Channel
  • Ctrl+W / Up: Scroll Selection Up
  • Ctrl+S / Down: Scroll Selection Down
  • ESC: Alternative Close Button

Installation

PKGBUILD

If you use Arch Linux or any similar variant, then there's a PKGBUILD in the repo. I haven't published this project to the AUR yet but I intend to at some stage.

From source

If you're not on Arch, currently the only way is to install from source.

Install requirements

The requirements for the application are as follows;

Build

  1. Clone this repo
  2. Run shards install and then shards build --release -Dpreview_mt to install all the requirements and build the application.
    • This will create an executable in the bin folder local to the cloned repo, which can then be moved wherever it needs to be moved.

Usage

Before you can run Crcophony, you need to gather a bit of data.

Gathering Data

To use the system, you must gather the following information and export the data as environment variables. These variables are as follows;

  • CRCOPHONY_TOKEN: Your user token used to authenticate yourself with the client
  • CRCOPHONY_USER_ID: Your user id (might not be necessary, requires investigation and could be removed at a later point)

Here are the instructions for you to get these bits of data;

  1. Turn on Developer Mode
  2. To get the user_id, right click on your own name in the Users sidebar of any channel and click "Copy ID". This is the value you should put in as the user_id
  3. Follow this guide to get your token.

If you use the fish or bash shells, a sample .env file has been included in this project (.env.sample.fish and env.sample.bash respectively). Simply rename the appropriate file to .env, populate the strings inside with your gathered data and run source .env in the directory to get the correct environment variables created.

Running the Application

After the environment variables are defined, simply run the crcophony executable.

NOTE

As far as I am currently aware, placing crcophony in a bin folder and running it as crcophony does not work when attempting to spawn threads. This is because Crystal tries to spawn by reading the file passed in as the command following it like a path from your current directory. The workaround I currently use is creating a small bash script that runs crcophony using an absolute path, and placing this executable script in your bin folder.

Contributing

  1. Fork it (https://github.com/freyamade/crcophony/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

  • freyamade - creator, maintainer

crcophony's People

Contributors

freyamade avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

crcophony's Issues

Invalid version for git resolver

$ shards install

Resolving dependencies

Fetching https://github.com/oprypin/crystal-dbus.git

Fetching https://github.com/freyamade/discordcr.git

Fetching https://github.com/freyamade/hydra.git

Fetching https://github.com/freyamade/noir.git

Fetching https://github.com/woodruffw/notify.cr.git

Fetching https://github.com/andrewsuzuki/termbox-crystal.git

Invalid version for git resolver: v0.1.0+git.commit.c1902634ce60acbd13cb445d441b3ca32631021e

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.