photofroggy / wsc Goto Github PK
View Code? Open in Web Editor NEWWebSocket Chat client
Home Page: http://photofroggy.github.com/wsc
WebSocket Chat client
Home Page: http://photofroggy.github.com/wsc
The UI lib needs to be used in the actual client.
This needs to be changed to not suck shit. Srsly.
Using regex on every message is a tad overkill. Simple string operations could pay off.
The control object needs refactoring.
God damn.
yuidoc doesn't seem to like documenting wsc.
Could be something to do with my setup.
create, finish, and implement the protocol object.
This will just handle parsing and rendering protocol messages.
Make channel tabs draggable so they can be reordered.
Maybe create a proper abstraction for the tabs to make this sort of stuff easier.
At the moment the core of the code base contains some code that is specific to dAmn.
This stuff needs to be moved to an extension.
Undecided on whether to include it with wsc as standard or not.
Add localStorage support.
Maybe have a custom "config" API type thingy.
Support for BDS by version 2 would be awesome!
Could have pchat notifications and native user colours. Lolol.
Finish version 1.
Users go missing from the user list on some events.
Must be something to do with the way users are added and removed from the list internal to the client.
Find a way to bundle and minify javascript files easily for deployment.
It's completely unreasonable to expect people to use more than one javascript file
for a single thing.
Bandwidth etc.
blargh.
Everything needs refactoring. Woop.
For dAmn, allow and implement custom emotes from zikes' emote cloud.
The mixin for UI themes has a shit load of arguments.
At the moment the names for the arguments are not descriptive enough, but there are also shit loads of them, so it's difficult to do it without having really long variable names.
I'll have to think of something. I should also document the variables lolol.
At the moment the protocol object handles the connection, processes data, and manipulates the UI.
This object is a little task-heavy. Might be worth splitting things up.
The channel object needs some serious reworking.
Use prototyping and shizz.
At the moment the tablumps parser is used by default to parse tablumps stuff.
Tablumps themselves are specific to dAmn. Come up with a way to make tablumps parsing/rendering optional.
I'm thinking have a basic dummy thing going on that doesn't actually do anything, or do type checking with values in the client where needed.
Dummy stuff could be as follows:
Object MessageParser
Object MessageString
No render method would be needed on the MessageParser object as the methods in MessageString would just return the string it represents.
The way the client manipulates the userlist in the UI could do with tweaking.
Mainly, the entire userlist is rewritten every time someone joins or leaves a channel.
Might be a good idea to make a node.js compatible version.
This can mainly be done with try...catch blocks, exporting/importing stuff as required.
Only trouble is I'd probably have to change the layout of the project or something.
Also would have to decide on how to structure things.
Instead of using prefixes for all classes, use "modules" to contain everything.
Modules are just global variables storing an object which holds a reference to each class.
The modules should also contain some meta information about the module.
Need to use a slightly better icon font.
Icon font should be embedded in the CSS directly with a data URL.
Using a data URL should mean that people don't have to have the same setup as me in terms of where font files are located.
For some reason, the current method for tokenising the tablumps strings uses a lot of CPU time.
Switch back to old method, maybe?
Create a settings popup for the client.
Should allow the user to configure the client.
Maybe use localStorage for setting values?
At the moment, the code for managing the UI is mixed in with all the logic of the client.
This is bad! Separate things need to be made. Objects to manage different parts of the UI.
Should be loosely coupled with the client.
Implement ignores.
Implement as its own extension style object.
Create a settings window for this bitch. Somehow.
there are problems with the height of the chat view.
Seems to leave a gap underneath the input.
Refactoring of the client object is in order.
Last object to refactor.
The whois info box needs to be properly styled.
Also need to format timestamp stuff properly dawg.
Users should be able to set up an autojoin list type thing.
abbr tags doesn't work on away messages.
It removes the parts after the first " from the away message on refresh and messes up the settings page if you view the page again without refreshing.
The chat log currently posts each message as a div.
This should probably be changed so the chat log is a ul, with messages posted as li elements.
For some reason kick reasons show up with tablumps unparsed.
Need to create an item list box.
User should be able to easily add and remove items.
All items displayed at the same time.
trist's changes to the tablumps parser for thumbs results in some thumbs being broken. Most seem to work.
Must investigate.
The channel tabs need their own close buttons.
Should be possible to force wsc to use vanilla WebSockets instead of socket.io.
There are problems with socket.io, not sure if they will be present in normal WebSockets, but it's worth doing this anyway.
Trouble is, if socket.io is not going to be used, then it shouldn't be included in the page to begin with.
Implement multiline input.
Just a thing to show progress in the milestones.
Should be possible to change channel tabs using the keyboard somehow.
The autoscrolling stuff no longer seems to keep the scroll bar at the bottom of the log.
Must fix this.
Not urgent, though.
Need better comments for all functions.
I should really just document as I write, but meh.
At the moment, pchats don't really work.
Certain characters turn up as weird question marks due to the way v8 does WebSockets.
Must make proxies encode, and clients decode.
Jason has apparently done this in his proxy already.
The default extension needs some serious refactoring and shizz.
No functionality that should be in the core should be in the extensions. For some reason I did that before...
There need to be more default commands and shizz.
Should probably make separate issues for each issue...
When disconnecting and reconnecting, sometimes channels are joined when they're supposed to be abandoned.
Some disconnects go unnoticed. Possibly a problem with the proxy server not noticing a change to null chars or something.
Allow users to configure the formatting for away messages.
Make it possible to use timestamps and stuff.
The UI should be able to make popup boxes.
Expose an api to the client.
create a flow object
This object should determine how the client responds to protocol messages.
Maybe this would be best done by an extension?
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.