GithubHelp home page GithubHelp logo

zigzter / chatterm Goto Github PK

View Code? Open in Web Editor NEW
23.0 2.0 1.0 8.89 MB

A Twitch.tv chat client in the terminal, supporting moderator actions

License: Other

Go 99.37% HTML 0.63%
bubbletea chat twitch twitch-api irc-client terminal terminal-app

chatterm's Introduction

Chatterm

Twitch chat in the terminal, with moderator actions.

Chat app preview image

Chat app preview image

Chat app channel input image

โšก Features

  • View and send messages.
  • Built-in authentication via Twitch.
  • Ban & timeout users, clear chat, query user info
  • Search received messsages, powered by the FTS5 extension of SQLite
  • Username autocomplete on @ mentions and / commands, triggered by pressing tab.

๐Ÿ”ง Tech Used

  • Bubble Tea for the terminal UI
  • Gorilla WebSocket for the websocket connection
  • SQLite for storage
  • Viper for configuration

๐Ÿ–ฅ๏ธ Supported Platforms

Currently only tested on Linux. macOS might work if you build it yourself.

๐Ÿ“ฆ Installation

Cloning option (requires Go):

  1. git clone https://github.com/zigzter/chatterm.git
  2. cd chatterm
  3. go build --tags "fts5" .
  4. ./chatterm

If you have to re-auth for whatever reason, and the oauth request gets stuck loading, try removing the connection from Twitch Connections, then retry the auth.

Downloading binary option: Simply download the binary and run ./chatterm

๐Ÿš€ Supported Commands

  • Ban a user: /ban username
  • Timeout a user: /ban username timeInSeconds
  • Search for messages: /search something to search
    • from:username restricts search to messages sent by that user
    • channel:channelName restricts search to messages in that channel
    • Supports wildcards and is case insensitive: kek* will find KEKW
    • Supports AND, NOT, and OR keywords. /search tf2 OR ow2 will find all messages that contain at least one of those
    • This search queries the local DB, so it will only find messages that you've received while in the chat rooms
  • Clear chat: /clear (this is the moderator clear, not a local one)
  • Get a user's info: /info username
  • Send an announcement: /announcement something to announce
  • Give a streamer a shoutout: /shoutout username (untested, only works if the channel you're in is live)
  • Warn a user, requiring them to acknowledge the warning before they can resume chatting: /warn username reason
  • Delete all locally stored chat messages: /clearall
  • Enable/disable shield mode: /shield on|off
  • Watch a user (highlight their messages): /watch username
    • To remove the user, re-run the command
    • You can also manually edit the $HOME/.config/chatterm.json file to add/remove users under the watched-users key

chatterm's People

Contributors

zigzter avatar

Stargazers

 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

Forkers

dickeyy

chatterm's Issues

Allow highlighting specific users

Sometimes a user can seem suspicious without warranting an immediate timeout or ban, and it can be hard to keep track of their messages in a busy chat room.
This feature is for adding a highlight to every chat message by a specified user to easily track them, similar to adding a user to the monitored list on Twitch. Possibly using something like /highlight username or /monitor username.

App creates duplicate chatterm.db and debug.log files.

I created an alias in my .zshrc

alias chatterm='~/chatterm/chatterm'

and it works but it creates a chatterm.db and debug.log file inside the directory that invokes chatterm.

Is there anyway to have it so it points to the same .db and .log file rather than creating new ones in each directory?

Authorizing page gives a 404 not found

so yeah - as the title says, I'm trying to authorize the use of chatterm, and the localhost page is giving me a 404 page not found error every time I try. it was perfectly fine the last time I did this, and everything worked just fine when I briefly gave Chatterino a try, so I don't know what's going on here.

When searching for a channel and typing an 'a' -> Redirected to authentication page

Hey there,

just had some small dable with the Project looks cool.

I just found a small bug, that when I'm authenticated etc. and I go to search for a live channel (via 'i') and then when I type the letter 'a' (even after some other letters first) it jumps back to the authentication view.

I had a short look into the source code but could in my brief view not figure out where the bug lies.

I'm guessing it must have to do with that you give the 'authentication' keystroke priority in some of the case statements, but not quite sure.

If you need more information let me know.

Keep up the great work.

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.