Formatting consistency for README and TODO.

This commit is contained in:
karxi 2016-12-23 12:53:21 -05:00
parent 0a073afda2
commit e657138dad
2 changed files with 89 additions and 84 deletions

View file

@ -57,10 +57,12 @@ necessary.
* [Download from main branch][pchum-zip] * [Download from main branch][pchum-zip]
5. Unzip Pesterchum somewhere easily-accessible. 5. Unzip Pesterchum somewhere easily-accessible.
6. **If you have any custom themes**, copy/paste them into the 'themes' folder. 6. **If you have any custom themes**, copy/paste them into the 'themes' folder.
You can find this in `%APPDATA%/Local/pesterchum`. You can find this in `%LOCALAPPDATA%\pesterchum`, which is the same as
Oftentimes it doesn't exist, so you'll have to make it and copy the custom `%APPDATA%\..\Local\pesterchum`. Copy/paste one into Explorer's address bar
themes into it. and you'll end up where you need to be.
__If that doesn't work:__ Oftentimes the 'themes' folder doesn't exist in Pesterchum's shared config
folder, so you'll have to make it and copy the custom themes into it.
__If, for some reason, that doesn't work:__
You can also copy the missing themes into the 'themes' folder of the version You can also copy the missing themes into the 'themes' folder of the version
you just unzipped. **Don't overwrite any files** if you do this - the themes you just unzipped. **Don't overwrite any files** if you do this - the themes
used by this have been updated, and the older default themes may break when used by this have been updated, and the older default themes may break when

163
TODO.mkdn
View file

@ -10,7 +10,7 @@
* Tab completion of two letter names * Tab completion of two letter names
* Auto download/install updates via Windows installer * Auto download/install updates via Windows installer
* Use web connection to send offline messages in email-like fashion * Use web connection to send offline messages in email-like fashion
(Idea: ghostDunk) (Idea: ghostDunk)
* Better NickServ registering * Better NickServ registering
* Make toast notifications only on certain chums * Make toast notifications only on certain chums
* Local alisas for chums * Local alisas for chums
@ -18,56 +18,59 @@
* Hide offline friends per group * Hide offline friends per group
* LET PEOPLE TURN OFF HONKING - people already rename the soundfile and such to * LET PEOPLE TURN OFF HONKING - people already rename the soundfile and such to
do this manually do this manually
* Implement **MemoServ** support * Implement **MemoServ** support
* Add support for displaying more verbose information (e.g. Cease messages which * Add support for displaying more verbose information (e.g. Cease messages which
tell you more than the abbreviation of who left) tell you more than the abbreviation of who left)
* Make Pesterchum recognize conventional /mes so they aren't invisible * Make Pesterchum recognize conventional /mes so they aren't invisible
* Tell user when NickServ handles are going to expire * Tell user when NickServ handles are going to expire
* Tell user when old handles have D/C'd? Offer autoghost support?! * Tell user when old handles have D/C'd? Offer autoghost support?!
* Make @XY and @xxxYyy formats ping their targets * Make @XY and @xxxYyy formats ping their targets
* Allow matches like @?XY and @FXY or @PXY3 - make them only match the target * Allow matches like @?XY and @FXY or @PXY3 - make them only match the target
currently set to that. currently set to that.
* Make @ notation not match @u@; and similar (make invalid nick chars break * Make @ notation not match @u@; and similar (make invalid nick chars break
matches) matches)
* Fix hyperlink escaping (Qt seems to do this automatically - need a workaround) * Fix hyperlink escaping (Qt seems to do this automatically - need a workaround)
* Show bans if +h or higher (+h, +o, +a, +q) * Show bans if +h or higher (+h, +o, +a, +q)
* Add more comprehensive status support - IDLE, DND, INVISIBLE for now - or at * Add more comprehensive status support - IDLE, DND, INVISIBLE for now - or at
least add similar functionality. least add similar functionality.
* SEPARATE FUNCTIONALITY from CONNECTED STATE!! This is a huge problem! Being * SEPARATE FUNCTIONALITY from CONNECTED STATE!! This is a huge problem! Being
shunted off our nick closes windows and breaks things! Just D/C and reconnect? shunted off our nick closes windows and breaks things! Just D/C and
* It'd probably be best to give an option to either CHANGE NICKS or reconnect?
DISCONNECT upon nick collision...? But, then how would we GHOST? * It'd probably be best to give an option to either CHANGE NICKS or
* Auto-disconnect if collsion before joining channels, make it DISCONNECT upon nick collision...? But, then how would we GHOST?
possible to disconnect (but not send messages, obviously) * Auto-disconnect if collsion before joining channels, make it
without losing everything possible to disconnect (but not send messages, obviously)
* Maybe GHOSTing should use auto-identify to ensure- no, that doesn't without losing everything
work, because we can't ident into a specified nick without being ON * Maybe GHOSTing should use auto-identify to ensure- no, that doesn't
it. Need GD's help to fix.... work, because we can't ident into a specified nick without being ON
it. Need GD's help to fix....
* Option to disable backwards compatibility: * Option to disable backwards compatibility:
* For those that are *really* sure that this build is the build for * For those that are *really* sure that this build is the build for
them. them.
* Should enable extra features, including ctag compression. * Should enable extra features, including ctag compression.
* Allow manual compression changes via memo right-click menu for * Allow manual compression changes via memo right-click menu for
'advanced' (per the setting) users 'advanced' (per the setting) users
* Make it possible to test quirk things and such without connecting? This'd be * Make it possible to test quirk things and such without connecting? This'd be
hard to separate out, but useful. hard to separate out, but useful.
* Make a quirk 'bin' that exists independent of profiles, and can be * Make a quirk 'bin' that exists independent of profiles, and can be
copied to/from at will. copied to/from at will.
* Right-click Time entry field to see those used? (Replace left/right buttons?) * Right-click Time entry field to see those used? (Replace left/right buttons?)
* Save commonly-used times on a per-handle basis! * Save commonly-used times on a per-handle basis!
* Make the memo name entry box accept a comma-separated list * Make the memo name entry box accept a comma-separated list
* Make the memo list highlight/recolor the names of channels you're in
(including secret ones)
* Make right-clicking on a tab open up the right-click menu one would get on * Make right-clicking on a tab open up the right-click menu one would get on
right-clicking the title (frame??) right-clicking the title (frame??)
* Add an option to Cycle (for log separation) * Add an option to Cycle (for log separation)
* Add a separate 'Tweaks' section in Options * Add a separate 'Tweaks' section in Options
* Fix graphical issues with dark themes vs. light themes (Qt/text too * Fix graphical issues with dark themes vs. light themes (Qt/text too
light/etc.) light/etc.)
## Todo/Done ## Todo/Done
**Everything in this section has already been completed.** **Everything in this section has already been completed.**
@ -76,16 +79,16 @@
* Make /me messages that cut continue into more /me messages * Make /me messages that cut continue into more /me messages
* Make sound work on Windows through QSound (disables volume control) * Make sound work on Windows through QSound (disables volume control)
* Toggle individual tab flash / alert sounds (from the same right-click memo * Toggle individual tab flash / alert sounds (from the same right-click memo
that lets us toggle OOC) that lets us toggle OOC)
* Make CTRL+PGUP/PGDN switch memo/pester tabs * Make CTRL+PGUP/PGDN switch memo/pester tabs
* Color tags are now posted as their shorter hexadecimal forms, if applicable * Color tags are now posted as their shorter hexadecimal forms, if applicable
(255,255,255 -> #FFFFFF, for example) (255,255,255 -> #FFFFFF, for example)
* Separate auto-idle and checkbox idle so they don't share a state (and make * Separate auto-idle and checkbox idle so they don't share a state (and make
the first send set the timer for additional idle responses) the first send set the timer for additional idle responses)
* Stop us from sending IDLE messages to NickServ * Stop us from sending IDLE messages to NickServ
* Fix NickServ auto-login things * Fix NickServ auto-login things
* Make a window that can be used to interface with the script directly - a * Make a window that can be used to interface with the script directly - a
simple Python console. simple Python console.
### Backend ### Backend
* Perpetual code cleanup, refactoring, simplification and general improvements * Perpetual code cleanup, refactoring, simplification and general improvements
@ -99,55 +102,55 @@
* Redo text processing in general * Redo text processing in general
* Redo quirk processing (use pieces from Textsub if needed) * Redo quirk processing (use pieces from Textsub if needed)
* Pare down the PesterMemo object so it inherits more things from PesterConvo * Pare down the PesterMemo object so it inherits more things from PesterConvo
*implicitly* *implicitly*
* SOONER OR LATER: Redo internal chum storage, centralize data into widely * SOONER OR LATER: Redo internal chum storage, centralize data into widely
accessible manager objects, etc. accessible manager objects, etc.
* Also: Overhaul settings storage. Bring it more in line with the system Textsub * Also: Overhaul settings storage. Bring it more in line with the system Textsub
used (if feeling masochistic), but simpler. used (if feeling masochistic), but simpler.
* **Overhaul information storage** - chums, conversations, memos; all should be * **Overhaul information storage** - chums, conversations, memos; all should be
handled by a backend and merely RENDERED into Qt objects!! handled by a backend and merely RENDERED into Qt objects!!
* Overhaul debugging * Overhaul debugging
* Debug generic.py's CaseInsensitiveDict/replace it with mine * Debug generic.py's CaseInsensitiveDict/replace it with mine
* Overhaul messaging so **Chan/Nick/Memo Servs** all use the same code (and * Overhaul messaging so **Chan/Nick/Memo Servs** all use the same code (and
lexer) lexer)
* **Separate Pesterchum system handling from window handling.** Dicts should be * **Separate Pesterchum system handling from window handling.** Dicts should be
stored and maintained via dicts - even a refined version of what I used for stored and maintained via dicts - even a refined version of what I used for
textsub. textsub.
* Doing it this way means I can fix the case in/sensitivity issue, too. * Doing it this way means I can fix the case in/sensitivity issue, too.
* Set up framework for easily logging/accessing channels, users, etc...like * Set up framework for easily logging/accessing channels, users, etc...like
what hexchat has. what hexchat has.
* More efficient framework for accessing stored user information - right now, * More efficient framework for accessing stored user information - right now,
Pesterchum keeps information on user colors and such on hand *forever*, Pesterchum keeps information on user colors and such on hand *forever*,
meaning that things inevitably get clogged up with handles that are never meaning that things inevitably get clogged up with handles that are never
really seen, or only seen once, or even just randomly generated. This is really seen, or only seen once, or even just randomly generated. This is
silly and should be changed; I'll probably make a namedtuple for users or silly and should be changed; I'll probably make a namedtuple for users or
something, and save it all to a separate JSON file or two. something, and save it all to a separate JSON file or two.
Said JSON file should keep the extra information on hand - or rather, the Said JSON file should keep the extra information on hand - or rather, the
'recent users' JSON file should keep most of the detailed information and be 'recent users' JSON file should keep most of the detailed information and be
accessed first, with the larger 'inactive users' file being accessed to check accessed first, with the larger 'inactive users' file being accessed to
for unfamiliar handles. check for unfamiliar handles.
These would have to output the old data to pesterchum.js for backwards These would have to output the old data to pesterchum.js for backwards
compatibility purposes. compatibility purposes.
* Finish creating the sound wrapper. Just make it check what the type of sound * Finish creating the sound wrapper. Just make it check what the type of sound
needed is upon creation, and instantiate a private class based off of that. needed is upon creation, and instantiate a private class based off of that.
* There is basically no good way to do this without moving to Qt5. I * There is basically no good way to do this without moving to Qt5. I
might try that myself later, but that's a long-term goal. might try that myself later, but that's a long-term goal.
### Debugging ### Debugging
* Set up a simple function to display a traceback instead of silently moving on! * Set up a simple function to display a traceback instead of silently moving on!
* Make small, simplistic windows that allow the viewing of internal variables * Make small, simplistic windows that allow the viewing of internal variables
pertaining to things like set quirks, users present, etc. pertaining to things like set quirks, users present, etc.
* Also let it display the stylesheet settings of the current window, or * Also let it display the stylesheet settings of the current window, or
similar. similar.
* Make a console to display debug info without requiring us to run from terminal * Make a console to display debug info without requiring us to run from terminal
* Allow us to specify flags via command line * Allow us to specify flags via command line
* Let us specify a separate config (pesterchum.js) file!! * Let us specify a separate config (pesterchum.js) file!!
## Bugs ## Bugs
* weird memo time bug * weird memo time bug
* Windows doesn't show style sheet sometimes?? Maybe related to themes. * Windows doesn't show style sheet sometimes?? Maybe related to themes.
* Issues with connecting? Client not closing connection right? People keep * Issues with connecting? Client not closing connection right? People keep
getting "nick taken" messages getting "nick taken" messages
* When using mood sort, scroll position jumps to last selected chum * When using mood sort, scroll position jumps to last selected chum
* Closing a timeclone doesn't actually cease for everyone else * Closing a timeclone doesn't actually cease for everyone else
* Kill Zalgo * Kill Zalgo
@ -159,28 +162,28 @@
* Mentions occasionally don't work (e.g. in /me) * Mentions occasionally don't work (e.g. in /me)
* Character times aren't 'forgotten' on Part * Character times aren't 'forgotten' on Part
* +c is not properly recognized on join, nor does it stop someone from * +c is not properly recognized on join, nor does it stop someone from
reenabling their quirk (let ops and above ignore it?) reenabling their quirk (let ops and above ignore it?)
* Chumlist handles groups pretty badly (no using the same name as a handle, for * Chumlist handles groups pretty badly (no using the same name as a handle, for
example? Needs an errormessage at least) example? Needs an errormessage at least)
* The whole chumlist handling system really ought to be refactored into * The whole chumlist handling system really ought to be refactored into
something sane...the objects should only be there to render something sane...the objects should only be there to render
* PESTERCHUM: messages are sent to things like NickServ * PESTERCHUM: messages are sent to things like NickServ
* Log folder/file names are not case-sensitive, so they break on non-Windows * Log folder/file names are not case-sensitive, so they break on non-Windows
systems systems
* Capitalized /me's don't render (should forcibly lowercase them) * Capitalized /me's don't render (should forcibly lowercase them)
* Volume control doesn't work without pygame * Volume control doesn't work without pygame
* Sound on Linux doesn't work without pygame * Sound on Linux doesn't work without pygame
* Update checking code gives false positives (update to use json file from git?) * Update checking code gives false positives (update to use json file from git?)
* Pesterchum doesn't seem to close all of its file handles - it runs out of * Pesterchum doesn't seem to close all of its file handles - it runs out of
handles to use on Linux handles to use on Linux
* Others have reported memory leak-induced crashes on Windows. These * Others have reported memory leak-induced crashes on Windows. These
may or may not be related. may or may not be related.
## Windows Bugs ## Windows Bugs
* XP SP2: sometimes mouse clicks dont register? must be some kinda crash * XP SP2: sometimes mouse clicks dont register? must be some kinda crash
* On reconnect and nick change, momentary theme change causes menu items to * On reconnect and nick change, momentary theme change causes menu items to
stop working stop working
* Random chums won't show up on chumroll * Random chums won't show up on chumroll
* Popup toast notifications cause main window to raise * Popup toast notifications cause main window to raise
@ -202,38 +205,38 @@
> * More complex quirks: by-sound > * More complex quirks: by-sound
* This would require a way to determine what maps to a sound, and * This would require a way to determine what maps to a sound, and
replace it. replace it.
I've played with the idea before. It resulted in me needing to look I've played with the idea before. It resulted in me needing to look
up things like the [Metaphone Algorithm][metaphone] to figure out up things like the [Metaphone Algorithm][metaphone] to figure out
how it might be even remotely possible. The results were NOT a fun how it might be even remotely possible. The results were NOT a fun
time; if this is ever implemented, it will be much, much later than time; if this is ever implemented, it will be much, much later than
just about everything else. just about everything else.
[metaphone]: https://en.wikipedia.org/wiki/Metaphone [metaphone]: https://en.wikipedia.org/wiki/Metaphone
> * Spy mode > * Spy mode
* I feel as though I shouldn't need to tell anyone why this is a bad idea. * I feel as though I shouldn't need to tell anyone why this is a bad idea.
Some people already have this capability anyway; I used to be one of them. Some people already have this capability anyway; I used to be one of them.
There's no real need to implement an inferior version into every single There's no real need to implement an inferior version into every single
client on Pesterchum. client on Pesterchum.
> * "Someone has friended you" notifier > * "Someone has friended you" notifier
> * Spectation notices (Idea: lexicalNuance) (probly WONTFIX) > * Spectation notices (Idea: lexicalNuance) (probly WONTFIX)
* These are milder invasions of privacy than the above, but they are still * These are milder invasions of privacy than the above, but they are still
invasions of privacy. invasions of privacy.
> * When 'banned' make impossible to connect using timestamp banned under > * When 'banned' make impossible to connect using timestamp banned under
* This is a lot of work for something that purely affects immersion - while * This is a lot of work for something that purely affects immersion - while
also breaking a number of things in the process. Too much work for too also breaking a number of things in the process. Too much work for too
little payoff. little payoff.
> * Use web connection to save profiles (Idea: ghostDunk) > * Use web connection to save profiles (Idea: ghostDunk)
* There is no way to do this now that Pesterchum is basically unsupported; an * There is no way to do this now that Pesterchum is basically unsupported; an
external server would be necessary for storage. external server would be necessary for storage.
As such, you'll just have to settle for copying your profiles and logs when As such, you'll just have to settle for copying your profiles and logs when
you change computers. you change computers.