thedjpetersen / subway Goto Github PK
View Code? Open in Web Editor NEWABANDONED - A web based IRC client
ABANDONED - A web based IRC client
When I send a /me message, though the recipient gets it, it doesn't show in Subway.
There are no min-widths on containers -- if you size the browser down horizontally, the logo overruns the left sidebar and the "New Connection" / "Settings" logos are stacked vertically.
The current loading gif has a sligh unattractive border, its time to find a new loading gif...
When the user hits the 'tab' key the input should start to autocomplete the field from the userlist.
...and hope nothing breaks. It was just released yesterday.
Looks like it has a handful of useful new features.
The convention is that /query
opens a chat window immediately, whereas /privmsg
and /msg
don't open a window. In our case, we'll make all three synonyms... but all three should work.
Icons should be placed with the CSS not as embedded images.
The titlebar needs the name of the channel and the current topic.
After switching node-irc dependency, we'll be able to show the user that connection has failed.
Status takes a while to start scrolling. Then it starts the animated scroll, one message at a time (with each line of the motd being a separate message), really slowly. A few issues here:
I have some code in web-irc for conditional auto-scroll based on whether the view is already scrolled to the bottom, and for saving scroll position when changing focused windows.
Upgrade from bootstrap 1.4 to 2.0 without destroying custom styles.
Think it's about time to get this thing up on nodester. It's easy & free.
Plan to do it on Monday when people are paying more attention to the internet.
Input focus is lost on channel join. That's annoying.
Start work on frontend model, view, templates for the application. There should be a basic overall chat window and other elements derived from that.
The server should not die when the user enters an incorrect channel.
Channel Tabs should show unread messages and unread mentions.
We need a front-end for mobile devices, we could go about this probably with a UA detection and use a different
{ layout: 'mobile' }
or something in Jade. I might be able to help integrate this.
User statuses should be shown and /me should work as needed.
We should assign nick after we connect to the server even if it is taken.
So all of the major containers in the current layout are expressed with percentage sizing. The fluid layout you get with that is great, but it creates problems. See What happens to the User List / channel headers as you shrink vertically for example.
I think the only good solution here is JS-based resizing, with elements like the input container, title bars etc. getting fixed vertical sizing, and other elements getting fixed minimums as appropriate.
On channel join, it seems that the channel is being set as active 3 times. At least, the console.log()
statement in collections.js
line 38 is tripping 3 times.
First time is caused by the irc.chatWindows.add()
statement in client.js
, the next two are caused by lines 13 & 14 of channel_list.js
.
Sort things out so we're not retreading the same steps several times.
github master branch has my fix for failed connections. It's still not on npm. We need it!
The current message formatting isn't a bad concept, but I think we can do better. It adds a bit too much vertical space to each message IMO, and draws too much attention to the date line.
My taste exceeds my talent here... there are a lot of ideas we could play with, from more conventional IRC formatting to iChat / Adium style messages with colored bubbles surrounding each.
Have a default set of IRC servers that starts autocompleting when you start typing in IRC server address.
When user types in '/topic' the client should be able to change the topic and emit a message.
There should be a mode where joins/parts are not shown in the channel only the actual message content. In big channels this will be especially useful.
There should be a backbone model which represents the settings for the app.
Not sure if there is an extra step yet required to get the side pane with list to show, but it didn't show by default for my in development
mode.
More contributors the better -- need a dot com and twitter.
Maybe subway.io or something?
In stream init, we have this:
this.bind('add', irc.appView.addMessage);
addMessage
should be brought into ChatView
; some of that code could probably be simplified in the process.
When any user changes their nick, the userlist should update, and a nick change message should show in the channel.
Had support for this in web-irc; see lines 561-572 of app.js
. Can't remember if it really worked though...
When someone posts an image or youtube link they should be embedded into the chat.
When you close the tab it should prompt you if you are sure you want to disconnect from IRC.
If not by default, should be a setting.
We really sure ensure we're supporting HTML5 tags in all browsers, in order to get the most involvement from the community.
H5BP/Modernizr/Respond.js can help out a lot here.
I've already ported H5BP to Jade, but we need only really need a stripped down version.
I can help with this.
/nick
is not supported yet. That should work, and should update the nick shown in the new user box.
Hook up basic interaction with node-irc library. This should happen in a seperate file that gets require
d by the subway.js file.
There appears to have been quiet a few regressions in some of the refactoring done in 1/misc/improvements. At this time I would say the branch is unsafe for merging until all the regressions have been cleared.
Add support for quits.
This happened today, in production:
debug - websocket writing 5:::{"name":"motd","args":[{"motd":"- asimov.freenode.net Message of the Day - \n- Welcome to asimov.freenode.net in TX, USA! Thanks to\n- Rackspace (www.rackspace.com) for sponsoring\n- this server!\n- \n- ASIMOV, ISAAC [1920-1992]. One of the brightest stars of the\n- science fiction universe. Author of \u001fI Robot\u001f, the\n- \u001fFoundation\u001f series (which \"grew like Topsy\"), \u001fPebble in the\u001f\n- \u001fSky\u001f and hundreds of works of science fact and science\n- fiction.\n- \n- You're using freenode, a service of Peer-Directed Projects\n- Center Ltd (http://freenode.net/pdpc.shtml).\n- \n- By connecting to freenode you indicate that you have read\n- and agree to adhere to our policies and procedures as per\n- the website (http://freenode.net). We would like to remind\n- you that unauthorized public logging of channels on the\n- network is prohibited. Public channel logging should only\n- take place where the channel owner(s) has requested this\n- and users of the channel are all made aware (if you are\n- publically logging your channel, you may wish to keep a\n- notice in topic and perhaps as a on-join message).\n- \n- freenode runs an open proxy scanner. Your use of the network\n- indicates your acceptance of this policy. For details on\n- freenode network policy, please take a look at our policy\n- page (http://freenode.net/policy.shtml). Thank you for using\n- the network!\n- \n- Don't forget to check out these other Peer-Directed Projects:\n- FOSSCON [http://www.fosscon.org] and fossevents \n- [http://www.fossevents.org], and soon we'll repeat last years \n- success with Picnics for Geeks across the globe, more info at \n- [http://geeknic.org]\n- \n- freenode is a service of Peer-Directed Projects Center Ltd,\n- a not for profit organisation registered in England and Wales.\n- \n- If you support the work we do and wish to donate to the PDPC, \n- you may do so over at http://freenode.net/pdpc_donations.shtml\n- \n- Thank you for using freenode!\n- \n- ***************************************************************\n- Please read http://blog.freenode.net/2010/11/be-safe-out-there/\n- ***************************************************************\nEnd of /MOTD command.\n"}]}
9 Feb 18:32:07 - MODE:mattk sets mode: +i
Event notice sent
{ nick: 'NickServ',
to: 'mattk',
text: 'This nickname is registered. Please choose a different nickname, or identify via \u0002/msg NickServ identify <password>\u0002.',
message: undefined }
debug - websocket writing 5:::{"name":"notice","args":[{"nick":"NickServ","to":"mattk","text":"This nickname is registered. Please choose a different nickname, or identify via \u0002/msg NickServ identify <password>\u0002."}]}
9 Feb 18:32:07 - GOT NOTICE from "NickServ": "This nickname is registered. Please choose a different nickname, or identify via /msg NickServ identify <password>."
debug - websocket writing 5:::{"name":"getNick","args":[{"nick":"mattk"}]}
Starting IRC client; wiring up socket events.
events.js:45
throw arguments[1]; // Unhandled 'error' event
^
Error: ENOTFOUND, Domain name not found
at IOWatcher.callback (dns.js:74:15)
Error: Restarted too many times, bailing.
Some style differences updating the userlist. Changing how the time is displayed and how delays are tracked.
Some additional signals would be helpful to indicate new mentions and privmsgs:
There needs to be a userlist that displays users and updates on users joining and leaving.
There should be a box on above the channels that shows the users name where they can click and change their name
Unread notifications should only be for messages, joins/parts should not increase the count.
Messages from notice should show up in the status window.
There should be a way to provide a friend a link with a server/channel/username and them to follow it directly and it will connect to the server, join the channel, and apply the closest possible match for that username.
The nodester deploy crashed already. There are a number of modules that will monitor and auto-restart node instances; this is very important to have in place before we advertise a public link heavily.
This is to conserve CPU and Memory.
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.