GithubHelp home page GithubHelp logo

flackr / circ Goto Github PK

View Code? Open in Web Editor NEW
390.0 32.0 80.0 3.49 MB

An IRC packaged chrome app

License: BSD 3-Clause "New" or "Revised" License

JavaScript 77.37% HTML 7.90% CSS 14.30% Shell 0.43%

circ's Introduction

An IRC client in the shape of a packaged Chrome app

CIRC uses the chrome.sockets APIs to connect directly to IRC servers without needing a proxy. It has a ton of other killer features as well such as syncing your IRC state accross all your devices and allowing you to use a single IRC connection on multiple devices simultaneously.

Get it on the Chrome Web Store

Check out the documentation: https://github.com/flackr/circ/wiki

Join the official channel at #CIRC on irc.freenode.net.

circ's People

Contributors

abarisain avatar agrieve avatar andyleap avatar beaufortfrancois avatar bshepherdson avatar cosmez avatar deadheadrussell avatar ericlaw1979 avatar flackr avatar flotwig avatar heathnaylor avatar itskdog avatar jeek avatar jrdnull avatar mdrovdahl avatar michaelorr avatar mmocny avatar nicdumz avatar noahsug avatar nornagon avatar ohfunc avatar r04r avatar rixter13 avatar rpaquay avatar sumurai8 avatar terencehonles avatar theepicsnail avatar tvierling 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  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  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 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

circ's Issues

Not gracefully disconnecting on shutdown

I quit circ and restarted and wasn't able to get the nick I had previously. Do you need to hook some app closing event to leave the server? I think bshe mentioned something about app closing notifications being broken for platform apps - is there a crbug to track for this?

Add context menu

Right clicking should show options like about, help, close server, close channel, etc.

Make it easy to use CIRC without knowing all the commands.

Make it pretty!

The current look and feel is very bland and ugly. Add some color and make it look professional

Properly handle the KILL command

  • implement /kill
  • when /kill is used on us, display the appropriate message (currently throw an error)

log info:

NickServ![email protected] KILL sug :ircservices!ircservices!NickServ (GHOST command used by sug__)

ERROR :Closing Link: sug[theark.wat.corp.google.com] ircservices.hot.corp.google.com (Killed (NickServ (GHOST command used by sug__)))

NickServ![email protected] NOTICE sug__ :Ghost with your nickname has been killed.

Implement shortcut keys

  • alt-n - jump to next notification
  • alt-# - switch channel windows
  • alt-s - switch servers
  • tab (when input is empty) - compelte name of last user to mention you
  • alt/ctrl home/end - scroll to top/bottom
  • backspace - respond to last /msg
  • page up/down - scroll up/down page
  • alt-arrow keys - move to next/previous channel
  • tab - auto-complete (implemented)

listen to connection changes

on offline - display drop down notification (clear when reconnected)

on online - try to reconnect to a server device if existant

Notify when a server connection is detected

Currently, when a server device becomes a available, all clients loose their current state and connect to it. This can be jaring to the user.

Instead, display a drop-down notification when a server device can be connected to asking the user if they would like to use it's connection. Only do this when the client has been active for a while and has a state that it would lose.

Add about circ page

When circ starts there is some helpful text (eg. with the link to this site). However now that circ reconnects to servers (thanks, that's awesome!), I don't see that text. Maybe have a context menu or other UI which includes an 'about' with version info and links, etc.

Add last-read marker

I miss the feature from other IRC clients to add a marker for the point I've last read to (eg. Ctrl-M in xchat draws a horizontal red line at that point in the message list). Not urgent, but it would be nice to tell at a glance how much new traffic there's been...

User and message text should be selectable

Currently only message text is selectable.

When copied, the user's name should have a colon after it. This could be implemented by adding a hidden color after each nick who posted a message.

Retrieve chat history on connecting to remote instance.

When connecting to a remote instance of CIRC, we should retrieve some (or all) of the chat history for the channels. It's hard to pick up an existing conversation without any context. Perhaps this is blocked on issue #1 in order to retrieve the history asynchronously without blocking new input.

Implement DCC

DCC allows clients to share files over IRC. This could be used to share scripts and other useful files.

Display a drop-down prompt asking the user if they would like to accept the file.

Use handshake for server-client device authentication

Currently the client hashes it's IP addr with a password stored in storage.sync. The server then determines the client's IP addr and checks ensures the hash is correct.

This doesn't work when the client's self-detected IP addr is different then the IP addr the serve detects (e.g. when behind a router).

Instead, the server should send the client a unique key. The client then responds with the hash of the key and password stored in storage.sync. If the auth token is correct, the server responds with it's current connection state and the connection is established.

Implement missing commands

There is currently no support for the following commands:

/kill - remote user from server
/query - like /msg but with no params, just opens new private msg window
/whois - dispay user info like real name, nick, country, server, etc
/version - send CTCP version request

Detect when server device goes offline

Exchange pings every X seconds, when not responding within usual time display prompt drop-down saying "The server has stopped responding [disconnect] [X]". Clear this notification when the server begins responding again.

Questions:

  • What should X be?
  • If X is too small does it spam the network too much?
  • If X is too big is it not even worth implementing?

Circ has transparent app icon in Unity - makes it hard to switch to it using the keyboard

In Unity (default window manager for Ubuntu precise), cIRC windows show up in the Alt-Tab window list and launcher, but they have a completely transparent icon - as if it wasn't there at all (just space left for it). This is really confusing.

I'm assuming there's an AppsV2 bug here - eg. they should provide a default icon to the OS if none is supplied - so please file a crbug with details. But hopefully there's already some way for Circ to register an icon.

Need some way for circ to auto-launch

I keep forgetting to start circ on login. Is there some way for platform apps to run on startup, and if not can we get them to add one?
Short term we could make sure the background page auto-starts and can still send notifications (perhaps even connection errors) and clicking on those would open the UI via the app.

Replaying chat history is slow

Chat history should be capped per channel. E.g. 1000 messages from each channel with a total max of 10,000 messages from all sources. Tests should be run to determine what are good values for these caps.

Replaying chat history can be sped up by not parsing the message, but simply recording the raw HTML from each message and then appending the HTML in one large chunk, instead of one at a time.

hide password you used for NickServe identify

other command line clients show the password in plaintext in the input box, but replace it with * after you hit enter. That would suffice, but even better would be to recognize some internal command (perhaps map /ident) which switches text input box into password input?

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.