diff --git a/README.mkdn b/README.mkdn index 8498ff1..484783d 100644 --- a/README.mkdn +++ b/README.mkdn @@ -57,10 +57,12 @@ necessary. * [Download from main branch][pchum-zip] 5. Unzip Pesterchum somewhere easily-accessible. 6. **If you have any custom themes**, copy/paste them into the 'themes' folder. - You can find this in `%APPDATA%/Local/pesterchum`. - Oftentimes it doesn't exist, so you'll have to make it and copy the custom - themes into it. - __If that doesn't work:__ + You can find this in `%LOCALAPPDATA%\pesterchum`, which is the same as + `%APPDATA%\..\Local\pesterchum`. Copy/paste one into Explorer's address bar + and you'll end up where you need to be. + 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 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 diff --git a/TODO.mkdn b/TODO.mkdn index c03ad00..7327e89 100644 --- a/TODO.mkdn +++ b/TODO.mkdn @@ -10,7 +10,7 @@ * Tab completion of two letter names * Auto download/install updates via Windows installer * Use web connection to send offline messages in email-like fashion - (Idea: ghostDunk) + (Idea: ghostDunk) * Better NickServ registering * Make toast notifications only on certain chums * Local alisas for chums @@ -18,56 +18,59 @@ * Hide offline friends per group * LET PEOPLE TURN OFF HONKING - people already rename the soundfile and such to - do this manually + do this manually * Implement **MemoServ** support * 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 * Tell user when NickServ handles are going to expire * Tell user when old handles have D/C'd? Offer autoghost support?! * Make @XY and @xxxYyy formats ping their targets * 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 - matches) + matches) * Fix hyperlink escaping (Qt seems to do this automatically - need a workaround) * Show bans if +h or higher (+h, +o, +a, +q) * Add more comprehensive status support - IDLE, DND, INVISIBLE for now - or at least add similar functionality. * 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? - * It'd probably be best to give an option to either CHANGE NICKS or - DISCONNECT upon nick collision...? But, then how would we GHOST? - * Auto-disconnect if collsion before joining channels, make it - possible to disconnect (but not send messages, obviously) - without losing everything - * Maybe GHOSTing should use auto-identify to ensure- no, that doesn't - work, because we can't ident into a specified nick without being ON - it. Need GD's help to fix.... + shunted off our nick closes windows and breaks things! Just D/C and + reconnect? + * It'd probably be best to give an option to either CHANGE NICKS or + DISCONNECT upon nick collision...? But, then how would we GHOST? + * Auto-disconnect if collsion before joining channels, make it + possible to disconnect (but not send messages, obviously) + without losing everything + * Maybe GHOSTing should use auto-identify to ensure- no, that doesn't + 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: - * For those that are *really* sure that this build is the build for - them. - * Should enable extra features, including ctag compression. - * Allow manual compression changes via memo right-click menu for - 'advanced' (per the setting) users + * For those that are *really* sure that this build is the build for + them. + * Should enable extra features, including ctag compression. + * Allow manual compression changes via memo right-click menu for + 'advanced' (per the setting) users * Make it possible to test quirk things and such without connecting? This'd be - hard to separate out, but useful. - * Make a quirk 'bin' that exists independent of profiles, and can be - copied to/from at will. + hard to separate out, but useful. + * Make a quirk 'bin' that exists independent of profiles, and can be + copied to/from at will. * 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 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 - right-clicking the title (frame??) + right-clicking the title (frame??) * Add an option to Cycle (for log separation) * Add a separate 'Tweaks' section in Options * Fix graphical issues with dark themes vs. light themes (Qt/text too - light/etc.) + light/etc.) ## Todo/Done **Everything in this section has already been completed.** @@ -76,16 +79,16 @@ * Make /me messages that cut continue into more /me messages * Make sound work on Windows through QSound (disables volume control) * 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 * 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 - 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 * Fix NickServ auto-login things * Make a window that can be used to interface with the script directly - a - simple Python console. + simple Python console. ### Backend * Perpetual code cleanup, refactoring, simplification and general improvements @@ -99,55 +102,55 @@ * Redo text processing in general * Redo quirk processing (use pieces from Textsub if needed) * 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 - accessible manager objects, etc. + accessible manager objects, etc. * 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 - handled by a backend and merely RENDERED into Qt objects!! + handled by a backend and merely RENDERED into Qt objects!! * Overhaul debugging * Debug generic.py's CaseInsensitiveDict/replace it with mine * 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 - stored and maintained via dicts - even a refined version of what I used for - textsub. - * Doing it this way means I can fix the case in/sensitivity issue, too. + stored and maintained via dicts - even a refined version of what I used for + textsub. + * 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 - what hexchat has. + what hexchat has. * More efficient framework for accessing stored user information - right now, - Pesterchum keeps information on user colors and such on hand *forever*, - 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 - 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. - 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 - accessed first, with the larger 'inactive users' file being accessed to check - for unfamiliar handles. - These would have to output the old data to pesterchum.js for backwards - compatibility purposes. + Pesterchum keeps information on user colors and such on hand *forever*, + 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 + 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. + 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 + accessed first, with the larger 'inactive users' file being accessed to + check for unfamiliar handles. + These would have to output the old data to pesterchum.js for backwards + compatibility purposes. * 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. - * 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. + 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 + might try that myself later, but that's a long-term goal. ### Debugging * 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 pertaining to things like set quirks, users present, etc. - * Also let it display the stylesheet settings of the current window, or - similar. + * Also let it display the stylesheet settings of the current window, or + similar. * Make a console to display debug info without requiring us to run from terminal * 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 * weird memo time bug * Windows doesn't show style sheet sometimes?? Maybe related to themes. * 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 * Closing a timeclone doesn't actually cease for everyone else * Kill Zalgo @@ -159,28 +162,28 @@ * Mentions occasionally don't work (e.g. in /me) * Character times aren't 'forgotten' on Part * +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 - example? Needs an errormessage at least) - * The whole chumlist handling system really ought to be refactored into - something sane...the objects should only be there to render + example? Needs an errormessage at least) + * The whole chumlist handling system really ought to be refactored into + something sane...the objects should only be there to render * PESTERCHUM: messages are sent to things like NickServ * 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) * Volume control 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?) * Pesterchum doesn't seem to close all of its file handles - it runs out of - handles to use on Linux - * Others have reported memory leak-induced crashes on Windows. These - may or may not be related. + handles to use on Linux + * Others have reported memory leak-induced crashes on Windows. These + may or may not be related. ## Windows Bugs * XP SP2: sometimes mouse clicks dont register? must be some kinda crash * On reconnect and nick change, momentary theme change causes menu items to - stop working + stop working * Random chums won't show up on chumroll * Popup toast notifications cause main window to raise @@ -202,38 +205,38 @@ > * More complex quirks: by-sound * This would require a way to determine what maps to a sound, and - replace it. - I've played with the idea before. It resulted in me needing to look - up things like the [Metaphone Algorithm][metaphone] to figure out - 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 - just about everything else. + replace it. + I've played with the idea before. It resulted in me needing to look + up things like the [Metaphone Algorithm][metaphone] to figure out + 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 + just about everything else. [metaphone]: https://en.wikipedia.org/wiki/Metaphone > * Spy mode * 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. - There's no real need to implement an inferior version into every single - client on Pesterchum. + 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 + client on Pesterchum. > * "Someone has friended you" notifier > * Spectation notices (Idea: lexicalNuance) (probly WONTFIX) * 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 * 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 - little payoff. + also breaking a number of things in the process. Too much work for too + little payoff. > * Use web connection to save profiles (Idea: ghostDunk) * There is no way to do this now that Pesterchum is basically unsupported; an - external server would be necessary for storage. - As such, you'll just have to settle for copying your profiles and logs when - you change computers. + external server would be necessary for storage. + As such, you'll just have to settle for copying your profiles and logs when + you change computers.