Lightweight Discord terminal client

Overview

discordo

Lightweight Discord terminal client

Preview

Features

  • Lightweight: Discordo is designed to have a low memory footprint and low CPU usage, overall a low usage of system resources.
  • Secure: Discordo securely encrypts and stores the authentication token on first login to an OS-specific keyring.

Installation

Building

git clone https://github.com/rigormorrtiss/discordo
cd discordo && go build

# Optional
mv ./discordo /usr/local/bin

Getting Started

  • Run the built executable in a new Terminal.
  • Choose the preferred login method.
  • Log in using the chosen login method and click on "Login" button to continue.

Disclaimer

Automated user accounts or "self-bots" are against Discord's Terms of Service. I am not responsible for any loss caused by using "self-bots" or Discordo.

Issues
  • I'm confused in how to add transperency.

    I'm confused in how to add transperency.

    I'm using kitty terminal. and my terminal already has transparency. I have submitted an issue about it here 'https://github.com/ayntgl/discordo/issues/133' But I'm not sure how to implement the solution. I setted up my TOML file to look like this [theme] border = "white" title = "white" background = ""

    I was following instructions from this comment "@tildethine, you can now set the theme.background field to an empty string in the configuration file to have a transparent background." submitted by @ayntgl

    But after doing that my discordo is still not transparent :/ I've looked into theme.go and this is what I see. package config

    type ThemeConfig struct { Background string toml:"background" Border string toml:"border" Title string toml:"title" }

    func newThemeConfig() ThemeConfig { return ThemeConfig{ Background: "", Border: "white", Title: "white", } }

    Looks like it read the TOML file but it's still not transparent :/

    opened by tildethine 7
  • Bug Fix: Replies ping the incorrect user

    Bug Fix: Replies ping the incorrect user

    Kernel: 5.15.11-gentoo-x86_64 libc: sys-libs/glibc-2.34-r4 Go: dev-lang/go-1.17.5 Terminal: st

    I didn't use the username/password login, I put my token in discordo.toml

    Reproduction:

    1. click a message with the mouse that you want to reply to
    2. press r
    3. The input box will indicate that you are replying to the correct user.
    4. Type a message and press enter
    5. The message is sent as replying to the wrong user.
    opened by SoopaKhell 6
  • Panic Crash while logging in from 2FA account

    Panic Crash while logging in from 2FA account

    Installed using AUR. Crashes when Trying to login with a 2 factor authentication enabled account.

    panic: account has 2FA enabled [recovered]
    	panic: account has 2FA enabled
    
    goroutine 1 [running]:
    github.com/rivo/tview.(*Application).Run.func1(0xc00021e000)
    	/home/niteshk/go/pkg/mod/github.com/rivo/[email protected]/application.go:243 +0x87
    panic(0x883f80, 0xc00000e270)
    	/usr/lib/go/src/runtime/panic.go:965 +0x1b9
    main.newSession(0xc000402ea0, 0x1a, 0xc00046e140, 0xe, 0x0, 0x0, 0xc000088800)
    	/home/niteshk/.cache/yay/discordo-git/src/discordo/discordo.go:126 +0x306
    main.onLoginFormLoginButtonSelected()
    	/home/niteshk/.cache/yay/discordo-git/src/discordo/discordo.go:267 +0x152
    github.com/rivo/tview.(*Button).InputHandler.func1(0xc0003e7020, 0xc0003ea810)
    	/home/niteshk/go/pkg/mod/github.com/rivo/[email protected]/button.go:129 +0x6a
    github.com/rivo/tview.(*Box).WrapInputHandler.func1(0xc0003e7020, 0xc0003ea810)
    	/home/niteshk/go/pkg/mod/github.com/rivo/[email protected]/box.go:161 +0x62
    github.com/rivo/tview.(*Form).InputHandler.func1(0xc0003e7020, 0xc0003ea810)
    	/home/niteshk/go/pkg/mod/github.com/rivo/[email protected]/form.go:673 +0xee
    github.com/rivo/tview.(*Box).WrapInputHandler.func1(0xc0003e7020, 0xc0003ea810)
    	/home/niteshk/go/pkg/mod/github.com/rivo/[email protected]/box.go:161 +0x62
    github.com/rivo/tview.(*Application).Run(0xc00021e000, 0x0, 0x0)
    	/home/niteshk/go/pkg/mod/github.com/rivo/[email protected]/application.go:335 +0x7a7
    main.main()
    	/home/niteshk/.cache/yay/discordo-git/src/discordo/discordo.go:70 +0x40d
    
    bug 
    opened by iamdevnitesh 5
  • feat: implement keybindings for opening and downloading attachments

    feat: implement keybindings for opening and downloading attachments

    This adds a few new config options:

    attachment_download_location a string which is, by default, set to the platform's default downloads folder.

    open_attachment a keybind which, when used while hovering over a message with at least one attachment, will open those attachments in the system's default handler. It uses start on Windows, xdg-open on Linux and open on MacOS

    download_attachment a keybind which, when used while hovering over a message with at least one attachment, will download those attachments in the location configured in attachment_download_locaiton

    as well as, of course, all the features relating to those configuration options.

    While I could test it on Windows and Linux, I am as of yet unsure if this works on MacOS. Also, this does not implement any user feedback upon downloading or opening a file, as I am currently unfamiliar with the UI code.

    btw this is my first ever PR so I'd appreciate any feedback

    feat 
    opened by KodiCraft 4
  • Unable to login to Discordo

    Unable to login to Discordo

    Issue: Unable to login to Discordo, appears to be failing captcha request. I suspect this is a result of the latest 0.17 update from Discord?

    I do not think it is successfully hitting the discordgo login endpoint, which may be as of result of pacman not having the latest version of Discord yet.

    Steps to reproduce:

    1. Enter 'discordo' into command line and hit enter
    2. Enter correct email and password
    3. Click Login

    Expected Result: Successfully logs into discord, lands on chat screens Actual Result: Discordo closes, user is returned to command line

    image

    opened by ODellKyle 4
  • Prebuilt Binary for Linux error

    Prebuilt Binary for Linux error

    Hello there

    I needed some help with running the prebuilt binary on Pop OS. I extracted the downloaded zip and gave the file inside permission to run as an executable. But running it does nothing.

    Kindly help me with this issue. Thanks!

    opened by IdleEndeavor 4
  • Discordo error because it need hCaptcha.

    Discordo error because it need hCaptcha.

    So the Discordo is had some issue when try to open. since it can be from discord itself where forcing to using hCaptcha to prevent spam bot exist. this is making to login via terminal is difficult for people who are trying to using Discordo.

    For more info, I'll try to Screenshot later.

    feat 
    opened by hafizdkren 4
  • Support for Discord-flavored markdown

    Support for Discord-flavored markdown

    seen this already in the readme, but thought an issue necessary for tracking purposes bold, italics etc in accordance to https://support.discord.com/hc/en-us/articles/210298617-Markdown-Text-101-Chat-Formatting-Bold-Italic-Underline-

    feat 
    opened by TheScreechingBagel 4
  • Transparency Issue

    Transparency Issue

    I'm using i3 with Kitty as my terminal. I have made my terminal transparent but whenever I launch Discordo it doesn't follow the assigned transparency.

    https://i.imgur.com/AtoVWPf.png

    I have looked into a past issue about transparency https://github.com/ayntgl/discordo/issues/63 but it doesn't seem to be working for me.

    I added "ColorDefault = 0" into /home/user/discordo/config.toml but it remained the same.

    feat 
    opened by tildethine 3
  • 2FA breaking login

    2FA breaking login

    I have enabled 2FA and when i try to enter 2FA code, only new login button and field "code" appear, the last button will crash discordo with this error:

            panic: HTTP 400 Bad Request, {"message": "Invalid two-factor code", "code": 60008}
    
    goroutine 1 [running]:
    github.com/rivo/tview.(*Application).Run.func1()
            /home/daniel/go/pkg/mod/github.com/rivo/[email protected]/application.go:243 +0x4d panic({0x7502c0, 0xc00058e420})
            /usr/lib/go/src/runtime/panic.go:1038 +0x215
    github.com/ayntgl/discordo/ui.OnLoginFormLoginButtonSelected.func1()
            /home/daniel/discordo/ui/handlers.go:337 +0x231
    github.com/rivo/tview.(*Button).InputHandler.func1(0xc0001b1d38, 0x6f441f)
            /home/daniel/go/pkg/mod/github.com/rivo/[email protected]/button.go:129 +0x42
    github.com/rivo/tview.(*Box).WrapInputHandler.func1(0xc0002fa3c0, 0xc0003e0dc8)
            /home/daniel/go/pkg/mod/github.com/rivo/[email protected]/box.go:161 +0x53
    github.com/rivo/tview.(*Form).InputHandler.func1(0x40e9c7, 0x10)
            /home/daniel/go/pkg/mod/github.com/rivo/[email protected]/form.go:673 +0xb7
    github.com/rivo/tview.(*Box).WrapInputHandler.func1(0xc0001bc000, 0xc0001b1e58)
            /home/daniel/go/pkg/mod/github.com/rivo/[email protected]/box.go:161 +0x53
    github.com/rivo/tview.(*Application).Run(0xc0001ba000)
            /home/daniel/go/pkg/mod/github.com/rivo/[email protected]/application.go:335 +0x886
    main.main()
            /home/daniel/discordo/main.go:36 +0x15f```
    
    ![2FA login](https://user-images.githubusercontent.com/45514518/148760097-81f8da08-2f24-4639-bdd6-2ec057a94867.png)
    
    opened by Just-Danuse 3
  • Panics on first run

    Panics on first run

    Installed from the AUR with yay packages all updated

    when running discordo this outputs and exits:

    panic: open /home/bagel/.config/discordo/config.json: no such file or directory
    
    goroutine 1 [running]:
    github.com/rigormorrtiss/discordo/util.LoadConfig()
    	/home/bagel/.cache/yay/discordo-git/src/discordo/util/config.go:44 +0x296
    main.main()
    	/home/bagel/.cache/yay/discordo-git/src/discordo/main.go:28 +0x2b
    
    bug 
    opened by TheScreechingBagel 3
  • Timestamps - Incorrect time zone

    Timestamps - Incorrect time zone

    Highly appreciate a way to configure which timezone I'm using. Since summertime (Personally I'm in CET+2) discordo timestamps are lagging with 2 hours Thanks

    opened by krisdybvik 0
  • Feature request: Spoiler tags

    Feature request: Spoiler tags

    I think it would just be a pretty useful feature, by default, spoilered (surrounded by unescaped ||) contents of a message could be written as โ–ˆ (U+2588) and pressing enter while hovering over a message would reveal its contents. Additionally, an option to automatically display spoilered contents like in the official discord client would be neat.

    feat 
    opened by KodiCraft 0
  • Feature request: Upload image from clipboard

    Feature request: Upload image from clipboard

    The title is self-explanatory, so nothing much to write here. It would be great to be able to send images copied onto the clipboard as well as uploading local files, with discordo.

    feat 
    opened by B83C 1
Owner
creator of overly complex things
null
Stonks is a terminal based stock visualizer and tracker that displays realtime stocks in graph format in a terminal.

Stonks is a terminal based stock visualizer and tracker. Installation Requirements: golang >= 1.13 Manual Clone the repo Run make && make install Pack

Eric Moynihan 510 May 13, 2022
a lightweight CLI client for interacting with the Akash Network

Akash Command Center A lite weight client for communicating with the Akash Network. There are no provider, or validator bits in this project. Install

Akash Network 12 Feb 12, 2022
Terminal client for SimpleNote

GoNote - Terminal client for SimpleNote GoNote is a simple utility for managing notes in your SimpleNote account. It allows basic operations like crea

Konrad Wฤ…sowicz 52 Feb 10, 2022
YouTube client on your terminal

MeowTube YouTube client on your terminal Table of Contents About Getting Started Usage Contributing About MeowTube is a CLI (Command Line Interface) t

Abdul Fattah Ikhsan 25 Feb 1, 2022
lazyhub - Terminal UI Client for GitHub using gocui.

lazyhub - Terminal UI Client for GitHub using gocui.

ryo-ma 158 May 10, 2022
๐Ÿ“ฑ๐Ÿฅด TikTok terminal client for browsing & downloading videos

tiktik ?? ?? - TikTok Terminal Client Name inspiration - this yt vid Huge Thanks to Egor who wrote the parsing part Installation ?? go get -u github.c

Ilya Revenko 69 Apr 21, 2022
Visp is a Vi-like Spotify client for terminal users.

Visp Visp is an interactive console client for Spotify, written in Go. Its interface is similar to Vim, and aims to be fast, configurable, and practic

Kim Tore Jensen 44 Apr 27, 2022
Slack client for your terminal

slack-term A Slack client for your terminal. Installation Binary installation Download a compatible binary for your system. For convenience, place sla

JP Bruins Slot 6.1k May 17, 2022
Terminal client for MangaDex ๐Ÿ“–

mangadesk - Terminal client for MangaDex ?? Download manga directly from your terminal to read! This client retrieves information straight from MangaD

null 566 May 14, 2022
TScli - a very simple terminal-based client for TSWeb online judge

TScli TScli - a very simple terminal-based client for TSWeb online judge. It supports submitting problems and receiving feedback on them. Installation

Sergey Kharitontsev-Beglov 4 Oct 24, 2021
Gocheat - Golang terminal client for cht.sh that uses charm.sh's bubbletea project

Go Cheat.sh install gotext go get -u golang.org/x/text/cmd/gotext go generate

Cyber Oliveira 21 Feb 22, 2022
A simple way of sending messages from the CLI output to your Discord channel with webhook.

discat A simple way of sending messages from the CLI output to your Discord channel with webhook. Actually, this is a fork version of slackcat that I

dw1 28 Apr 11, 2022
Discord screenshare, now with audio!

audio-share-discord-linux Discord screenshare, now with audio! Build Instructions go build . chmod +x audio-share-discord-linux ./audio-share-discord-

null 40 Apr 17, 2022
Brigodier is a command parser & dispatcher, designed and developed for command lines such as for Discord bots or Minecraft chat commands. It is a complete port from Mojang's "brigadier" into Go.

brigodier Brigodier is a command parser & dispatcher, designed and developed to provide a simple and flexible command framework. It can be used in man

Minekube 15 Apr 22, 2022
Simple, seamless, lightweight time tracking for Git

Git Time Metric Seamless time tracking for all your Git projects $ gtm report -last-month $ gtm report -last-month -format summary $ gtm report -last-

Git Time Metric 895 Apr 20, 2022
Go package to make lightweight ASCII line graph โ•ญโ”ˆโ•ฏ in command line apps with no other dependencies.

asciigraph Go package to make lightweight ASCII line graphs โ•ญโ”ˆโ•ฏ. Installation go get github.com/guptarohit/asciigraph Usage Basic graph package main

Rohit Gupta 1.9k May 12, 2022
Shelby is a fast โšก๏ธ , lightweight โ˜๏ธ , minimalโœจ, shell prompt written in Go.

Shelby is a fast โšก๏ธ ,lightweight โ˜๏ธ ,minimal โœจ , shell prompt written in Pure Go. Installation Follow the steps below(Linux and macOS), and Post Insta

Athul Cyriac Ajay 164 Apr 24, 2022
SSH Lightweight management tools

tssh golang ๅฎž็Žฐ็š„ssh ๅทฅๅ…ท ๅฎ‰่ฃ… ไธ‹่ฝฝๅฎ‰่ฃ… ไธ‹่ฝฝๅœฐๅ€ release windows็”จๆˆท่ฏทๆ‰‹ๅŠจไธ‹่ฝฝ๏ผŒๆš‚ๆ—ถไธๆไพ›ไธ€้”ฎๅฎ‰่ฃ…ๆจกๅผ๏ผˆ ไธป่ฆๆ˜ฏๆ‰นๅค„็†่„šๆœฌไธไผšๅ†™ ๏ผ‰ Macไธ€้”ฎๅฎ‰่ฃ… /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.

lrs 121 Apr 11, 2022
a lightweight and simple cli package

โ–„โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ โ–„โ–ˆ โ–„โ–ˆ โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆ โ–ˆโ–€ โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆโ–Œ โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆโ–Œ โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆ โ–ˆโ–ˆโ–ˆโ–Œ โ–ˆโ–ˆโ–ˆ โ–ˆโ–„ โ–ˆโ–ˆโ–ˆ

seo.do 12 Oct 14, 2021