matrix: Remove TODO file.
This commit is contained in:
parent
d56cf219cf
commit
9a0f16d068
1 changed files with 0 additions and 239 deletions
239
TODO.md
239
TODO.md
|
@ -1,239 +0,0 @@
|
||||||
# Weechat Matrix Scrip
|
|
||||||
|
|
||||||
# TODO
|
|
||||||
- [O] Handle disconnects seamlessly
|
|
||||||
- [X] Handle send errors
|
|
||||||
- [X] Handle receive errors
|
|
||||||
- [X] Handle the disconnect properly
|
|
||||||
- [X] Reconnect if there is stuff to do and we're disconnected
|
|
||||||
- [X] Message queue timer.
|
|
||||||
- [O] Server buffer
|
|
||||||
- [X] Create server buffer
|
|
||||||
- [X] Merge with the core buffer if configured to do so
|
|
||||||
- [ ] Informational messages
|
|
||||||
- [X] Debugging
|
|
||||||
- [X] Profiling
|
|
||||||
- [O] Matrix
|
|
||||||
- [X] Login
|
|
||||||
- [ ] Logout
|
|
||||||
- [X] Sync
|
|
||||||
- [X] Send sync request after login
|
|
||||||
- [X] Parse sync response and store important data
|
|
||||||
- [X] Create Buffers for rooms
|
|
||||||
- [X] Populate nicklist
|
|
||||||
- [X] Print out received messages
|
|
||||||
- [O] Message Error handling
|
|
||||||
- [X] Login
|
|
||||||
- [X] Send messages
|
|
||||||
- [X] Sync
|
|
||||||
- [X] Redact
|
|
||||||
- [X] Kick
|
|
||||||
- [X] Redact
|
|
||||||
- [X] Topic
|
|
||||||
- [X] Join
|
|
||||||
- [X] Part
|
|
||||||
- [X] Invite
|
|
||||||
- [X] Backlog messages
|
|
||||||
- [ ] Try again
|
|
||||||
- [o] Send messages
|
|
||||||
- [X] Text
|
|
||||||
- [o] Html
|
|
||||||
- [X] Attributes
|
|
||||||
- [ ] Color
|
|
||||||
- [o] Parsing html to formated text
|
|
||||||
- [X] Attributes
|
|
||||||
- [X] Color
|
|
||||||
- [ ] Lists
|
|
||||||
- [X] Quotes
|
|
||||||
- [ ] Code
|
|
||||||
- [X] Topic
|
|
||||||
- [X] Print sent messages without waiting for a sync
|
|
||||||
- [X] Old message sync (rooms/{roomid}/messages)
|
|
||||||
- [X] Handle calculation of room display names
|
|
||||||
- [ ] Handle invited users that haven't yet joined
|
|
||||||
- treat them as semi-joined
|
|
||||||
- keep them in the nicklist (but appropriately stylized)
|
|
||||||
- take them into account when calculating room display names
|
|
||||||
- [X] Redactions
|
|
||||||
- [X] Power levels
|
|
||||||
- [X] Invite
|
|
||||||
- [X] Join room
|
|
||||||
- [X] Leave room
|
|
||||||
- [ ] Upload
|
|
||||||
- [ ] Presence
|
|
||||||
- [ ] Presence sending
|
|
||||||
- [ ] Presence setting
|
|
||||||
- [ ] Read marker
|
|
||||||
- [ ] Setting
|
|
||||||
- [ ] Sending
|
|
||||||
- [ ] Typing notifications
|
|
||||||
- [ ] Input change callback
|
|
||||||
- [ ] Sending out the notification
|
|
||||||
- [ ] Timer for the notification reset
|
|
||||||
- [ ] Sending out the reset of the notification
|
|
||||||
- [X] Process the HTTP messages and put them into a queue
|
|
||||||
- [X] Parse the json response
|
|
||||||
- [O] Configuration
|
|
||||||
- [X] Create default configuration
|
|
||||||
- [X] Read configuration from file
|
|
||||||
- [X] Save configuration
|
|
||||||
- [X] Server address
|
|
||||||
- [X] Auto connect
|
|
||||||
- [X] SSL verify on/off
|
|
||||||
- [ ] Presence sending
|
|
||||||
- [X] Sync max backlog
|
|
||||||
- [ ] Encrypt by default
|
|
||||||
- [ ] Typing notification enable/disable
|
|
||||||
- [X] Device name
|
|
||||||
- [X] Default matrix.org server config
|
|
||||||
- [X] Per server config
|
|
||||||
- [X] Look - merge server buffer with core
|
|
||||||
- [X] Global options
|
|
||||||
- [O] Core
|
|
||||||
- [X] Don't use sendall in the send() function
|
|
||||||
- [X] Create a default server if there doesn't exist one
|
|
||||||
- [X] matrix help command
|
|
||||||
- [X] Server add command
|
|
||||||
- [X] Server list command
|
|
||||||
- [X] Server listfull command
|
|
||||||
- [X] Server delete command
|
|
||||||
- [X] Server completion
|
|
||||||
- [X] Create server classes based from the config
|
|
||||||
- [X] Refactor out connection functions for multiple server support
|
|
||||||
- [X] Refactor the server command function
|
|
||||||
- [X] Nicklist groups
|
|
||||||
- [ ] Smart filters
|
|
||||||
- [X] Clear message queue on disconnect
|
|
||||||
- [X] Fix Reconnect handling
|
|
||||||
- [X] Fetch messages if we scroll to the top (hook_signal window_scroll)
|
|
||||||
- [X] Status bar element if we're fetching old messages
|
|
||||||
- [ ] Prevent self-highlighting when mentioning yourself from another client.
|
|
||||||
- [O] Color and attributes.
|
|
||||||
- [X] Parsing the input line
|
|
||||||
- [X] Converting the input to weechat output
|
|
||||||
- [o] Converting the input to html
|
|
||||||
- [X] Attributes
|
|
||||||
- [ ] Colors
|
|
||||||
- [.] Commands
|
|
||||||
- [X] Topic
|
|
||||||
- [X] Redact
|
|
||||||
- [o] Join
|
|
||||||
- [X] Join public rooms
|
|
||||||
- [X] Join private rooms
|
|
||||||
- [ ] Create rooms if they don't exist
|
|
||||||
- [ ] Completion
|
|
||||||
- [X] Kick
|
|
||||||
- [X] Completion
|
|
||||||
- [ ] Query
|
|
||||||
- [ ] Completion
|
|
||||||
- [ ] Part
|
|
||||||
- [ ] Completion
|
|
||||||
- [ ] Invite
|
|
||||||
- [ ] Completion
|
|
||||||
- [ ] Whois
|
|
||||||
- [ ] Completion
|
|
||||||
- [ ] OP
|
|
||||||
- [ ] Voice
|
|
||||||
- [ ] Password
|
|
||||||
- [ ] Room
|
|
||||||
- [ ] Rename
|
|
||||||
- [ ] Info
|
|
||||||
- [ ] Join rules
|
|
||||||
- [O] Refactoring
|
|
||||||
- [X] Server
|
|
||||||
- [X] API
|
|
||||||
- [ ] Message handling
|
|
||||||
- [X] Colors
|
|
||||||
- [ ] Separate weechat IO from message handling/parsing
|
|
||||||
- [o] Input sanitization
|
|
||||||
- [ ] Rooms ID
|
|
||||||
- [ ] Room aliases
|
|
||||||
- [X] Event ID
|
|
||||||
- [X] User ID
|
|
||||||
- [X] Age
|
|
||||||
- [ ] Display names
|
|
||||||
- [X] Messages
|
|
||||||
- [ ] Topics
|
|
||||||
- [ ] Tests
|
|
||||||
- [ ] Commands
|
|
||||||
- [ ] Message handling
|
|
||||||
- [ ] Utils
|
|
||||||
|
|
||||||
# OLM
|
|
||||||
- [ ] Encrypted messaging
|
|
||||||
- [ ] Generate keys
|
|
||||||
- [ ] Store keys
|
|
||||||
- [ ] Load keys
|
|
||||||
- [ ] Upload keys
|
|
||||||
- [ ] Rotate keys
|
|
||||||
- [ ] Encrypt messages
|
|
||||||
- [ ] Decrypt messages
|
|
||||||
- [ ] Group message encryption
|
|
||||||
- [ ] Device ID storing
|
|
||||||
- [ ] Device ID loading
|
|
||||||
- [ ] Olm command
|
|
||||||
- [ ] info
|
|
||||||
- [ ] verify
|
|
||||||
|
|
||||||
- Keys should be transparently encrypted with your login password. (The lib
|
|
||||||
already does that for us.)
|
|
||||||
- More info [here](https://matrix.org/docs/guides/e2e_implementation.html).
|
|
||||||
|
|
||||||
- Keys are bound to a user and a device.
|
|
||||||
- Ids to store:
|
|
||||||
- user name (same as login user) -> weechat stores this for us
|
|
||||||
- device_id -> store it in a separate data file
|
|
||||||
- server-name -> folder
|
|
||||||
- OLM things to store:
|
|
||||||
- Account info (holds the Identity keypair)
|
|
||||||
- Session info
|
|
||||||
- Group session info
|
|
||||||
|
|
||||||
## Olm weechat data format
|
|
||||||
- Create a matrix folder under the weechat home folder
|
|
||||||
- Create a server folder in the matrix folder
|
|
||||||
- Filenames in this folder should have the form of
|
|
||||||
user_device.extension
|
|
||||||
- Store the device id in <user>.device_id
|
|
||||||
- Example:
|
|
||||||
.weechat
|
|
||||||
└── matrix
|
|
||||||
└── matrix.org
|
|
||||||
├── poljar.device_id
|
|
||||||
├── poljar_<device_id>.account
|
|
||||||
├── poljar_<device_id>.session
|
|
||||||
├── poljar_<device_id>.group_session
|
|
||||||
└── poljar_<device_id>.known_devices
|
|
||||||
|
|
||||||
- File formats:
|
|
||||||
- .device_id -> single line containing the device id
|
|
||||||
- .account -> pickle with the olm lib, encrypt using the user password
|
|
||||||
- .session -> pickle with the olm lib, encrypt using the user password
|
|
||||||
- .group_session -> pickle with the olm lib, encrypt using the user password
|
|
||||||
- .known_devices -> pickle using the pickle module or json, a dict containing a
|
|
||||||
user_id and a device_id
|
|
||||||
|
|
||||||
# DONE Color sending and recieving
|
|
||||||
- [SGR to/from RGB](https://github.com/chadj2/bash-ui/blob/master/COLORS.md#xterm-colorspaces)
|
|
||||||
- [RGB to from HTML/Hex](https://pypi.python.org/pypi/webcolors/1.3)
|
|
||||||
- [Fix broken HTML with Beautiful soup](https://stackoverflow.com/questions/293482/how-do-i-fix-wrongly-nested-unclosed-html-tags)
|
|
||||||
|
|
||||||
# DONE Message Redaction
|
|
||||||
- Store the event id somewhere with the message (the slack plugin replaces the
|
|
||||||
date_printed variable for the message hdata, we can use a custom tag while
|
|
||||||
printing lines)
|
|
||||||
- If we get a redaction event use hdata_pointer to get a list of all printed
|
|
||||||
messages
|
|
||||||
- Strike through or completely delete the message
|
|
||||||
|
|
||||||
# DONE Old message fetching
|
|
||||||
- We can fetch old messages if we have less lines than max buffer lines or lines
|
|
||||||
only younger than max buffer minutes
|
|
||||||
- To print out the messages we need to sort the line_data by date (see hdata)
|
|
||||||
|
|
||||||
# Room command
|
|
||||||
- Create room
|
|
||||||
- Set room join rules
|
|
||||||
- Room power levels
|
|
||||||
- Alias
|
|
||||||
- Encrypt room
|
|
Loading…
Reference in a new issue