hack.chat icon indicating copy to clipboard operation
hack.chat copied to clipboard

chat history

Open andrewgdunn opened this issue 10 years ago • 4 comments

Is there a way to log chat history on the server if it's desired?

andrewgdunn avatar Sep 24 '15 12:09 andrewgdunn

No, but I'm working on a fork of hack.chat with features similar to Slack and Hipchat, including chat history.

You can also record chat history with a client-side bot.

AndrewBelt avatar Sep 24 '15 17:09 AndrewBelt

Do you mind updating this issue when you have a desire to have testers for your fork?

Just to provide some context, this is what I think would be an ideal simple setup for collaboration between team members in my domain (academic/research work involving maths/software)

server

  • deploying hack.chat behind nginx ssl proxy with client certs (layer on security from a 'proven' software)
  • user auth within hack.chat (so folks can't assume others usernames once registered)
  • persistent chat history via files rather than db (intent to track in vcs)

client

  • white-space preservation, syntax highlighting, latex formatting
  • room tabbing (rather than several browser tabs)
  • fullscreen option, rather than fixed width

andrewgdunn avatar Sep 24 '15 17:09 andrewgdunn

We seem to have similar goals, so I'll annotate your list of features with my idea of the new fork.

server

  • This is what hack.chat is doing, so I don't see why not.
  • I may need to make a pluggable system for registrations, so organizations with general-purpose authentication servers could be hooked into that chat auth system.
  • I like the idea of using text files for chat messages, with one file per channel. However, if a lot of data is produced, it may take a while for the server to index the newlines and process the client's query to "get the last 100 messages" or the "previous 100 messages before this one." I might cave in and just use CouchDB or RethinkDB.

client

  • All these sound great. Surround code with tilde to highlight, triple tilde for multiline code, $ and $$ for LaTeX. Anything else?
  • What's wrong with one room per tab? I'm having trouble visualizing a good UI to do this.
  • Lines ideally shouldn't be wider than 60 characters, but for multiline code blocks, I suppose this rule can be broken.

AndrewBelt avatar Sep 24 '15 23:09 AndrewBelt

Pretty excited to hear this, I was thinking a bit more since the last response.

Server

  • the nginx/ssl proxy, the reason I said that was I felt like I've seen a lot of programs that attempt to do certificate management internally, there's no need for that as the default case for hosting is already through a reverse proxy and we know that nginx will have 'more eyes' on the ssl implementation that hack.chat.
  • pluggable registrations is interesting, first one you might consider is PAM?
  • DB makes sense as things grow, would be nice to have a hook in the server for dumping a room history as a text file.

Client

  • I can't think of anything else, maybe follow a convention from sphinx or whatever is currently using markdown-ish form to indicate the syntax. I think LaTeX is ~~~{.sh} for shell for example.
  • nothing wrong with it, I can think immediately of having 10+ rooms open though. I use FF tab groups so I could manage, but it might be bad for someone who's used to a lot less. Consider something like HexChat (irc client) which has a roomlist on the left side.
  • 60 char might be too tiny, for instance pep8 says 79. Configurable width would be nice.

andrewgdunn avatar Sep 25 '15 00:09 andrewgdunn