grahamking / hatcog Goto Github PK
View Code? Open in Web Editor NEWThe IRC client for tmux addicts
License: GNU General Public License v3.0
The IRC client for tmux addicts
License: GNU General Public License v3.0
Run things through aspell / ispell? Might be annoying. Might be cool though. Need to think about how to suggest corrections.
If the username of current line is same as previous line, maybe don't display the name again.
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
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.
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'
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
On Freenode some channels start with two #, hatcog can't join them at the moment.
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
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?
When someone changes their nick, keep the same color.
There are numerous issues with the ParseLine() function, eg.
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".
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?
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/
At the moment when a user in private message has an away message set, it prints on all clients. Should only appear on the private message one.
At the moment /whois responses go to all windows. Only display in the window that asked.
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.
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.
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.