2022-08-27 23:27:05 +00:00
# comcord
A CLI-based client for Discord inspired by [SDF ](https://sdf.org )'s [commode ](https://sdf.org/?tutorials/comnotirc ).
## Why?
1. All CLI/TUI Discord clients are outdated/unmaintained or have flaws.
2. I've been spending more time in commode on SDF and have been accustomed to the experience.
## Usage
1. `pnpm i`
2. `node src/index.js <token>`
2022-10-10 03:15:53 +00:00
Your token will be then stored in `.comcordrc` after the first launch.
2022-08-27 23:27:05 +00:00
2022-10-10 03:15:53 +00:00
### User Accounts
User accounts are *partially* supported via `allowUserAccounts=true` in your `.comcordrc` .
This is use at your own risk, despite spoofing the official client. I am not responsible for any banned accounts.
2022-08-27 23:27:05 +00:00
2022-10-10 03:15:53 +00:00
#### Guild members not populating
This is due to Oceanic not implementing Lazy Guilds as they are user account specific. **DO NOT bother Oceanic to implement it!** They are purely a bot-focused library.
If you are willing to implement Lazy Guilds based off of [unofficial documentation ](https://luna.gitlab.io/discord-unofficial-docs/lazy_guilds.html )
and my already existing horrible hacks to make user accounts work in the first place, feel free to send a PR (on GitLab, GitHub repo is a read only mirror).
### Bot Accounts (prefered)
2022-08-27 23:27:05 +00:00
You **MUST** grant your bot all Privileged Gateway Intents.
## Design Decisions
* Node.js was chosen currently due to familiarity.
2022-10-10 03:15:53 +00:00
* Oceanic was chosen due to familiarity and the nature of everything not being abstracted out to 200 different classes unlike discord.js.
2022-08-27 23:27:05 +00:00
* "Jank" by design. While I don't expect anyone to actually use comcord on serial terminals or teletypes other than for meme factor, the option is still there.
## TODO
2022-08-28 00:14:10 +00:00
- [x] Commands
- [x] Quit (q)
2022-08-28 01:53:55 +00:00
- [x] Switch guilds (G)
2022-08-28 02:57:40 +00:00
- [x] Switch channels (g)
2022-08-28 01:53:55 +00:00
- [x] List online users in guild (w)
2022-08-28 02:57:40 +00:00
- [x] Emote (e)
2022-08-27 23:27:05 +00:00
- Just sends message surrounded in `*` 's
- [ ] Finger (f)
- [ ] Shows presence data if available
- [ ] Creation date, join date, ID, etc
2022-08-28 03:22:06 +00:00
- [x] Room history (r)
- [x] Extended room history (R)
2022-08-28 03:56:02 +00:00
- [x] List channels (l)
2022-08-28 03:40:53 +00:00
- [x] List guilds (L)
- [x] Clear (c)
- [ ] Surf channels forwards (>)
- [ ] Surf channels backwards (< )
2022-10-10 03:15:53 +00:00
- [x] AFK toggle (A)
- [x] Send DM (s)
- [x] Answer DM (a)
2022-08-28 00:14:10 +00:00
- [x] Message Receiving
2022-10-09 20:39:15 +00:00
- [x] Markdown styling
2022-08-27 23:27:05 +00:00
- [ ] Common markdown (bold, italic, etc)
- [ ] Figure out how spoilers would work
2022-10-09 20:39:15 +00:00
- [x] Emotes?????
- [x] Timestamp parsing
- [x] Mentions parsing
2022-08-27 23:27:05 +00:00
- [ ] Embeds in the style of commode's posted links
2022-08-28 00:14:10 +00:00
- [x] Messages wrapped in `*` 's or `_` 's parsed as emotes
2022-08-27 23:27:05 +00:00
- [ ] Inline DMs to replicate commode's private messages
2022-08-28 03:22:06 +00:00
- [x] Replies
2022-08-28 00:14:10 +00:00
- [x] Message sending
- [x] Puts incoming messages into queue whilst in send mode
2022-08-27 23:27:05 +00:00
- [ ] Mentions
- [ ] Replies
2022-10-10 03:15:53 +00:00
- [x] Configuration
- [x] Default guild/channel
- No way to set in client (yet?), `defaultChannel=` and `defaultGuild=` in your `.comcordrc` .
2022-08-27 23:27:05 +00:00
- [ ] Threads
2022-10-10 03:15:53 +00:00
- [x] Not have the token just be in argv
2022-08-28 22:01:31 +00:00
- [x] Not have everything in one file