Serverless/decentralized flat file chatting on the terminal for systems where user trust is present.
Go to file
sloum f9fbc98c52 Updates to a much more modern gab version 2024-05-08 09:27:35 -07:00
.gitignore Reworks the way items are listed and improves keeping file permissions on chat logs 2019-08-13 18:29:19 -07:00
README.md Updates the readme to reflect the two new commands: [un]block 2019-09-04 19:05:03 -07:00
gab Updates to a much more modern gab version 2024-05-08 09:27:35 -07:00

README.md

GAB

This is the second version of gab. The original existed as a bash script and opperated off of a single chat log. This updated version creates individual logs in each users home directory. The permissions for these logs should be set up to be world readable but writable only by the user. The way the script is set up, writing to another user's log should be impossible.

Commands

-h, --help, help
Print the help message

-m, --msg, msg
Follow this with quoted text to add a message to the chat log
gab -m "This is a message"

-l, --list, list
View the chat log. Pass an integer for the number of recent posts you would like to view (defaults to 5)
gab -l 20

-b, --block, block
Block a user (you will not see their messages) by passing the user's name
gab -b username

-u, --unblock, unblock
Unblock a previously blocked user by passing the user's name
gab -u username

Notes

In order to keep gab reasonably snappy and reduce unneccessary file bloat, individual user chatlogs are limited to ~12kb in size. This is generally enough to have a solid backlog of text while letting ancient conversation naturally get forgotten (at least as far as the computer is concerned).

You may think to yourself: "hey, can I just edit my chatlog directly?" The answer is: yes. But in most cases you shouldnt. The program knows that it should not display any lines that are not formatted the way it expects. It also knows that the future has not happened yet and so you could not have said anything in the future. However, you could in theory get a timestamp for a future time to essentially schedule a comment, sort of? Times that it could be appropriate to edit a chat log include: correcting spelling from a previous post, changing what you said to either provide more accuracy or annoy your friends and win an argument of some form, or to delete a message. I think the best part about gab is that it is decentralized: you own your log and it is independent of program execution. As such, you have the right to remove stuff from it. You can unsay things, sort of (not from people's ears/eyes, but from being seen in the log again). This ability to be forgotten or to decide you no longer want something representing you has largely been lost on the internet and I am happy to have created something with this ability. Just remember, with great ability comes great responsibility (dont be a jerk and try not to be weird about how you edit your log).

Blocking/unblocking has been added in version 2.1. The hope is that on larger systems or systems with varried users that do not all get along harmoniously a user can prevent spam or aggressive (or otherwise obnoxious) users from appearing in their chatlog. This blocking can be undone at any time by issuing the unblock command. When a user gets unblocked any messages that were missed while they were blocked (that have not been wiped out by the ~12k file limit) will be viewable.