IRCat/todo.md

69 lines
2.5 KiB
Markdown
Raw Normal View History

2024-12-13 23:10:32 -08:00
# To-Do list
2024-12-15 18:48:14 -08:00
- [ ] Implement the base of an IRCd, using Libera.Chat and RFC1459 as a reference
2025-01-02 20:38:57 -08:00
- [x] [Add the (full) connection process](https://mastodon.swee.codes/@swee/113659491393674897)
2024-12-13 23:10:32 -08:00
- [x] Add join/part, and it's requirements (WHO, etc)
- [x] Implement proper PRIVMSG
- [x] Broadcast QUIT
- [x] DNS lookup
- [x] Identity management
- [ ] WallOps
- [ ] Channel invite system
- [ ] Wildcard logic (for +b and +q)
- [x] Send PING and wait for PONG
- [x] Reply PONG if received PING
2025-01-02 20:38:57 -08:00
- [x] [Change of nicknames](https://mastodon.swee.codes/@swee/113642104470536887)
2024-12-13 23:10:32 -08:00
- [ ] Change of hostnames
2024-12-23 03:07:23 -08:00
- [x] Away
2025-01-22 11:03:44 -08:00
- [ ] [Multi-server support](https://discuss.swee.codes/t/72)
- [x] `LIST`
2025-01-16 16:36:33 -08:00
- [ ] `TOPIC`
2025-01-22 11:03:44 -08:00
- [ ] [Database support](https://discuss.swee.codes/t/71)
2024-12-13 23:10:32 -08:00
- [ ] User Flags
- [ ] i (invisible)
- [ ] o (IRCOP)
- [ ] w (gets wallops)
- [ ] Channel Flags
- [ ] o \<user\> (CHANOP)
- [ ] v \<user\> (voice)
- [ ] m (moderated, only let voice or op talk)
- [ ] s (don't show in LIST)
- [ ] i (invite-only)
- [ ] t (topic lock)
- [ ] n (no outside msgs, people have to join first)
- [ ] l \<num\> (user limit)
- [ ] b \<usermask\> (ban a user)
- [ ] k \<key\> (password lock)
- [ ] EXTRAS q \<usermask\> (Quiet)
- [ ] Destructive features for CHANOPS
- [ ] `KICK`
- [ ] `MODE <channel>`
- [ ] Destructive features for IRCOPS
- [ ] `KILL <user> <comment>`
- [ ] `MODE <external user>`
- [ ] `RESTART`
- [ ] Extra commands
2025-01-22 11:05:20 -08:00
- [x] `NAMES`
2024-12-13 23:10:32 -08:00
- [x] `WHOIS`
- [ ] `WHOWAS`
2025-01-22 11:06:56 -08:00
- [ ] [Implement services.](modules/pawserv.py)
2024-12-13 23:10:32 -08:00
- [ ] Nickserv
- [ ] ChanServ
2025-01-22 11:06:56 -08:00
- [x] CatServ (Outside of PawServ)
- [x] Link `PRIVMSG *serv` to `*serv`
2024-12-13 23:10:32 -08:00
- [ ] Extra (not planned) features
- [ ] ident support
- [ ] Authentication
- [ ] Make the server able to change the client's host
- [ ] Store credentials in an SQLite3 file.
- [ ] Map NickServ IDENTIFY
- [ ] Map PASS
- [ ] Mock SASL PLAIN
- [ ] SSL/TLS
2025-01-02 20:38:57 -08:00
- [x] [Use a thread to accept connections on SSL port 6697](https://mastodon.swee.codes/@swee/113762525145710774)
2024-12-13 23:10:32 -08:00
- [ ] Automatically reload the certificate if defined in config.
- [ ] Add IRCv3 features.
- [x] List capabilities (`CAP LS 302`)
- [ ] `away-notify`
- [ ] `tls` (STARTTLS)
- Will research later.
I am going to fully read [RFC 1459](https://datatracker.ietf.org/doc/html/rfc1459) soon and add each part to the TODO.