Giter VIP home page Giter VIP logo

hatcog's People

Contributors

grahamking 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

Watchers

 avatar  avatar  avatar

hatcog's Issues

Spell check

Run things through aspell / ispell? Might be annoying. Might be cool though. Need to think about how to suggest corrections.

Don't repeat user name

If the username of current line is same as previous line, maybe don't display the name again.

Support 470 - forwarding to a new channel

Support IRC numeric command 470, forward to new channel.

Need to update channel name internally. freenode#opera forwards to ##opera.
Raw message looks like this:

:hubbard.freenode.net 470 graham_king #opera ##opera :Forwarding to another channel

Inactivity indicator

Maybe fade the screen to grey, or draw a vertical line under the text. Need an one-glance way of showing channel hasn't changed since last time you looked.

hjoin crashes, File "/usr/local/lib/python3.5/dist-packages/hatcog-0.10-py3.5.egg/hjoin/hjoin.py", line 68, in main

Just installed from git, but haven't yet edited the config file. Still, see the result. Betcha it's not normal.

=> hjoin freenode.tmux
hatcog v0.10 (github.com/grahamking/hatcog) logging to /home/mehdi/.hatcog/client.log
Traceback (most recent call last):
File "/usr/local/bin/hjoin", line 11, in
load_entry_point('hatcog==0.10', 'console_scripts', 'hjoin')()
File "/usr/local/lib/python3.5/dist-packages/hatcog-0.10-py3.5.egg/hjoin/hjoin.py", line 68, in main
File "/usr/lib/python3.5/logging/init.py", line 1745, in basicConfig
h = FileHandler(filename, mode)
File "/usr/lib/python3.5/logging/init.py", line 1009, in init
StreamHandler.init(self, self._open())
File "/usr/lib/python3.5/logging/init.py", line 1038, in _open
return open(self.baseFilename, self.mode, encoding=self.encoding)
FileNotFoundError: [Errno 2] No such file or directory: '/home/mehdi/.hatcog/client.log'

hatcogd should re-connect to IRC servers

Occasionally we will lose connection to an IRC server. hatcogd should auto-reconnect, and tell the client it is doing that.

This is the error we get:

Consume Error:read tcp 82.96.64.4:6697: connection reset by peer

Dictionary size changed during iteratoin

Traceback (most recent call last):
  File "/usr/local/lib/python3.2/dist-packages/hatcog-0.8-py3.2.egg/hjoin/hjoin.py"
, line 88, in main
    client.run()
  File "/usr/local/lib/python3.2/dist-packages/hatcog-0.8-py3.2.egg/hjoin/hjoin.py"
, line 165, in run
    self.act_server(sock_data)
  File "/usr/local/lib/python3.2/dist-packages/hatcog-0.8-py3.2.egg/hjoin/hjoin.py"
, line 201, in act_server
    display = translate_in(msg, self)
  File "/usr/local/lib/python3.2/dist-packages/hatcog-0.8-py3.2.egg/hjoin/hfilter.p
y", line 145, in translate_in
    retval = getattr(callbacks, func_name)(obj)
  File "/usr/local/lib/python3.2/dist-packages/hatcog-0.8-py3.2.egg/hjoin/hjoin.py"
, line 305, in on_ping
    self.terminal.set_active_users(self.users.active_count())
  File "/usr/local/lib/python3.2/dist-packages/hatcog-0.8-py3.2.egg/hjoin/hjoin.py"
, line 372, in active_count
    self.purge_last_active()
  File "/usr/local/lib/python3.2/dist-packages/hatcog-0.8-py3.2.egg/hjoin/hjoin.py"
, line 378, in purge_last_active
    for nick, last in self.last_active.items():
RuntimeError: dictionary changed size during iteration

How to scroll back?

Sorry for the basic question in a github issue. A reference to a doc that answers the simple ones would be fine.

I wanted to try hatcog because I was looking for a client that left all of the window manipulation to tmux, since I already know how to split, join etc in that environment.

I figured a tmux-friendly client would allow me to use the pageback scrolling of tmux as well, but I don't think hatcog is letting me do that, probably because it's curses-based. So what is the key to scroll backward in hatcog?

Does this mean backward search in tmux won't work either?

src/hatcogd/line.go Barely RFC2812 compliant.

There are numerous issues with the ParseLine() function, eg.

  • No distinction is made between nick and user tokens in the prefix, you've simply called 'nick' 'user' and then not parsed the actual user token.
  • A nick prefix can exist without user and host tokens supplied as simply ":nick CMD etc"
  • The parser applies little to no restrictions on characters within tokens.

And various others. Although it may "appear to work" I suggest (re)reading http://tools.ietf.org/html/rfc2812#section-2.3.1 and implementing the grammar completely as this will break should a server decide to do anything "weird".

Work / focus mode

Add a mode to help procrastinators (ok, me) focus. In that mode don't update the display unless someone mentions your name.

Maybe fade to grey?

hjoin (Python) crashes if it can't talk to hatcogd (Go)

If hjoin can't connect to hatcogd, it can segfault (yes the Python part seg faults). Stack trace in log is:

2012-09-04 09:31:45,652 INFO: Connecting to daemon
2012-09-04 09:31:45,659 ERROR: Could not connect
Traceback (most recent call last):
File "/usr/local/lib/python3.2/dist-packages/hatcog-0.9-py3.2.egg/hjoin/hjoin.py", line 606, in get_daemon_connection
    sock = socket.create_connection((host.encode("utf8"), int(port)))
File "/usr/lib/python3.2/socket.py", line 404, in create_connection
    raise err
File "/usr/lib/python3.2/socket.py", line 395, in create_connection
    sock.connect(sa)
socket.error: [Errno 111] Connection refused
2012-09-04 09:31:45,662 DEBUG: Starting daemon: start-stop-daemon --start --background --exec /usr/local/bin/hatcogd-64 -- -host=127.0.0.1 -port=8790 --logdir /home/graham/.hatcog/

BUG: Resizing the window in tmux kills hjoin

After shrinking the window, type in the input box until reaching the edge of the screen. Crash!

Stack trace:

Traceback (most recent call last):
  File "/home/graham/bin/hjoin", line 80, in main
    client.run()
  File "/home/graham/bin/hjoin", line 154, in run
    self.act_server(sock_data)
  File "/home/graham/bin/hjoin", line 181, in act_server
    display = translate_in(msg, self)
  File "/home/graham/Projects/hatcog/hjoin/hfilter.py", line 144, in translate_in
    retval = getattr(callbacks, func_name)(obj)
  File "/home/graham/bin/hjoin", line 227, in on_join
    self.terminal.set_users(self.users.count())
  File "/home/graham/Projects/hatcog/hjoin/term.py", line 259, in set_users
    self._display_user_count()
  File "/home/graham/Projects/hatcog/hjoin/term.py", line 274, in _display_user_count
    self.win_status.addstr(0, right_pos, msg)
error: addstr() returned ERR

It seems to happens when we shrink the window, and try and add text beyond the edge of it, before hjoin knows it has been resized.

Need to get a reproduce-able test case. Fix might be to catch the error and call rebuild.

Make last ping update display configurable

When I am using hatcog in my tmux, I notice that tmux is often noting activity in idle chat windows. I believe this is because the "last ping" number is updating in the corner. I don't want to set monitor-activity off, because I really want to see when people are chatting in the channels.

I think what would be best is a configuration option to disable updates the last ping display (possibly user count changes as well) except when the user is actively typing or sending a message. It would be "use at your own risk" because it defeats the purpose of the last ping field, but it is more congruent with tmux activity notifications.

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.