GithubHelp home page GithubHelp logo

wsc's People

Contributors

divinityarcane avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar

wsc's Issues

tablumps processing

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.

yuidoc documentation

yuidoc doesn't seem to like documenting wsc.

Could be something to do with my setup.

protocol object

create, finish, and implement the protocol object.

This will just handle parsing and rendering protocol messages.

drag and drop tabs

Make channel tabs draggable so they can be reordered.

Maybe create a proper abstraction for the tabs to make this sort of stuff easier.

dAmn extension

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.

localStorage

Add localStorage support.

Maybe have a custom "config" API type thingy.

BDS extension

Support for BDS by version 2 would be awesome!

Could have pchat notifications and native user colours. Lolol.

user list bugs

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.

Bundle/minify

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.

refactor

Everything needs refactoring. Woop.

custom emotes

For dAmn, allow and implement custom emotes from zikes' emote cloud.

theme mixin arguments

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.

split protocol

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.

channel object

The channel object needs some serious reworking.

Use prototyping and shizz.

optional message rendering

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

  • parse( string ) : MessageString

Object MessageString

  • html( ) : string
  • text( ) : string
  • ansi( ) : string

No render method would be needed on the MessageParser object as the methods in MessageString would just return the string it represents.

userlist manipulations

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.

nodejs

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.

use "modules"

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.

fonts

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.

tablumps memory usage

For some reason, the current method for tokenising the tablumps strings uses a lot of CPU time.

Switch back to old method, maybe?

ui settings box

Create a settings popup for the client.

Should allow the user to configure the client.

Maybe use localStorage for setting values?

ui abstraction lib

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.

ignores

Implement ignores.

  • /ignore [username] ignores a user.
  • /unignore [username] unignores a user.

Implement as its own extension style object.

Create a settings window for this bitch. Somehow.

view height

there are problems with the height of the chat view.

Seems to leave a gap underneath the input.

client object

Refactoring of the client object is in order.

Last object to refactor.

whois

The whois info box needs to be properly styled.

Also need to format timestamp stuff properly dawg.

autojoin

Users should be able to set up an autojoin list type thing.

Away messages

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.

chat log markup

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.

settings item list

Need to create an item list box.

User should be able to easily add and remove items.

All items displayed at the same time.

thumb source

trist's changes to the tablumps parser for thumbs results in some thumbs being broken. Most seem to work.

Must investigate.

ignore socket.io

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.

autoscrolling broken

The autoscrolling stuff no longer seems to keep the scroll bar at the bottom of the log.

Must fix this.

Not urgent, though.

comments

Need better comments for all functions.

I should really just document as I write, but meh.

pchats

At the moment, pchats don't really work.

special characters

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.

default extension refactor

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...

disconnect issues

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.

configurable away messages

Allow users to configure the formatting for away messages.

Make it possible to use timestamps and stuff.

ui popups

The UI should be able to make popup boxes.

Expose an api to the client.

flow object

create a flow object

This object should determine how the client responds to protocol messages.

Maybe this would be best done by an extension?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.