Giter VIP home page Giter VIP logo

web-irc's People

Contributors

akavlie avatar davidpadbury avatar lancelakey avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

web-irc's Issues

Auto-completion for nicks

When you input a nickname and press tab, it should auto-complete on nicks in the current channel.

Create test server

It would be nice to have a mock server for testing the app (client side), to alleviate the need to connect to a real IRC server and such every time a change is made. Think I've worked out a reasonable way to do so:

  • Enter test mode at /test and/or with a hardcoded test IRC server name ('wi-test' or some such)
  • App watches for that condition, and initiates test method
  • Said test method mocks all supported socket.on/socket.emit events to return canned responses, echo input, or whatever makes sense for that method

When connecting with a nickname already in use, the new user doesn't actually connect or join

This is an awesome project. Thanks for this.

If I use web-irc to connect to a server with nick "lance" and any channel(s) and that nick is already in use I won't get any warning messages I'll just be presented with a web-irc UI with only a status tab which doesn't respond to any commands. I won't have joined any channels. If I try to /join #channel nothing will happen in the UI.

I was able to reproduce this using the only 2 servers I tried with, my own IRC server, and irc.freenode.net

This is easy to work around when connecting to my private IRC server, I just won't use a nickname I know is already in use.

If you need any details from me, logs, whatever, just ask. Thanks.

Uncaught TypeError: Cannot read property 'command' of undefined

This app seemed to work okay on my local box but not on a live server.

I get this error when I put in my name/server/channel

From my console log:

Uncaught TypeError: Cannot read property 'command' of undefined
app.js:446

On line 560, I have an undefined, on the data.message.

Lazy load channel list

Clearly, appending all the channels returned on a site like Freenode to the DOM as they're received kills performance.

Let's try lazy-loading the channels once it gets past a fairly low threshhold (say 100) -- add the next batch once you get close to the end of the list.

Ah, forget trying to custom code this. I need other grid functionality anyway like sort & search. Looks like jqGrid & Slickgrid are the best candidates here for good performance -- try jqGrid as it looks to be better documented.

http://www.trirand.com/jqgridwiki/doku.php

Scroll view on new messages

Channel output should automatically scroll down when a new message arrives (but only if the channel is already scrolled to the bottom)

Notification on mention

Add support for user notification of any channel mentions

A couple of ideas for notification methods:

  • Add a count of unread mentions (for all channels) in title
  • Play a sound effect

Handle nick changes

If I set my nick, but the server renames me, currently it freaks out because the app still thinks I have my original nick.
This will probably all be fine if I handle a nick change event:

'nick'
function (oldnick, newnick, channels) { }

Emitted when a user changes nick along with the channels the user is in.

Redo server.js with express

The server portion of this app is pretty thin, but I think it would still benefit from express.js -- at the very least, to handle static file serving better, and to make it easy to vary port (and other config) for different environments.

parse URLs

Find a good foolproof regex and parse URLs mentioned in the channel.
They should open in a new window of course.

Deal with tabs that run past window edge

UI experience needed here -- find a good way to deal with tabs when they run past the browser window width.

Concept & mockups would be useful even if you can't code it.

(This is assuming that we continue to use the browser-style tabbing as it is now. I'm open to other ideas.)

Support persistent logins

Think about possible approaches to supporting persistent logins, even after a user leaves the page.
I don't think any free web IRC clients do this.

May need to split into multiple tasks after a good approach is discovered.

Server crashes on invalid server name

From the nodester deployment logs:

   debug - xhr-polling received data packet 5:::{"name":"connect","args":[{"nick":"addyosmani","server":"freenode","channels":["jquery-ot,jquery-dev"]}]}

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.

More better design

Client obviously needs polish, from a better designer.

Both visual and UI/UX

Support inline images, source code, etc.

This may be a big one, and may warrant multiple separate issues. Here are some ideas:

  • When a URL is pasted with a standard image format extension, it's downloaded and displayed inline
  • When a URL from a popular image/video hosting site is pasted in, it's shown inline via that site's API
  • When a link to a pasteboard is pasted in, the code is displayed inline -- via iframe?

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.