A console based twitter client for displaying tweets from twitter lists

Overview

About

I follow a bunch of people who span a bunch of topics and wanted a way to keep track of all the cool stuff they post. I figured there would certainly be a read-only type tool to just stream tweets for you to view. I wasn't able to find anything which is why I created this.

Tweetdeck was the first thing I went to, but it was kind of clunky and I couldn't get over the set column width thing. Maybe I'm just dumb, but it didn't feel right to me. The fact that you needed to run it in a web browseer was also not ideal.

For that reason I hacked this thing together. It gives me the ability to watch tweets stream by in my terminal while I'm working. Think of it like a monitoring dashboard or something, only for tweets :).

The app leans heavily on Twitter "lists". Each list should be a grouping of similar topics, say "sports" or "world news" or whatever. In the app, each list will have a dedicated column which will only display tweets from members of that list. I use private lists as a way to organize who I follow, but the list doesn't have to be private for things to work.

Install/Setup

Before you begin, you'll need a twitter dev account as you'll need to be able to interact with the twitter API. Once you have that, you can populate the config file with your access token(s).

To install, you can either download a compiled executable from the releases page, or, if you have go installed, do your typical go get:

go get github.com/esell/twitterMon

NOTE: sqlite is used for storage and the sqlite library I use depends on cgo. sqlite is only needed when starting with no lists.

Currently there are a few manual steps that need to be done for this POS to work. These steps assume you do NOT have any existing lists that you want to use. If you DO have existing lists you want to use, skip to step #5 and just use your existing list IDs in the config.

  1. Create a lists.csv file with the names of each list you want to create. Each name should be on its own line. There is an example in this repo.
  2. Run ./twitterMon -f > out.csv to generate a list of people you follow.
  3. Now the fun part. Open up out.csv and add a third value for each row, this will be the list you want to assign the account to. Again, the repo has an example of this. It is important that you use the same list names from list.csv, otherwise the app won't be able to map everything correctly.
  4. Run ./twitterMon -n -l to create the database structure, create the lists and then add accounts to each list based on the mapping from out.csv.
  5. Now you need to setup your config with the lists you want to display in the app. You'll need the list name and the list ID, which you can dump with ./twitterMon -d. repo == example.
  6. Run /.twitterMon and enjoy.

Keyboard Shortcuts

  • The tab key cycles through the columns, and the typical up/down (or pgup/pgdn) will scroll through the column.
  • ctrl+d will delete the focused column
  • ctrl+a will add a column
You might also like...
🔗 Generate a temporary login URL for the AWS Console

AWS Console 🔗 Generate a temporary login URL for the AWS Console Installation Prebuilt binaries for several architectures can be found attached to an

A productivity tools to diagnose list of exported URL status from Google Search Console, Analytics, Sitemap URL...etc.

google-url-checker A productivity tools to diagnose list of exported URL status from Google Search Console, Analytics, Sitemap URL...etc. A quick way

Go Twitter REST and Streaming API v1.1

go-twitter go-twitter is a Go client library for the Twitter API. Check the usage section or try the examples to see how to access the Twitter API. Fe

Scrape the Twitter Frontend API without authentication with Golang.

Twitter Scraper Twitter's API is annoying to work with, and has lots of limitations — luckily their frontend (JavaScript) has it's own API, which I re

twitter clone front-end for Internet Engineering course - fall 99 built by go+echo

twitter backend build twitter-like back-end for internet engeering course - fall 99 with go+echo+gorm team mates Roozbeh Sharifnasab + Parsa Fadaee +

Periodically collect data about my Twitter account and check in to github to preserve an audit trail.

Twitter audit trail backup This repository backs up my follower list, following list, blocked accounts list and muted accounts list periodically using

Twitter backend - Golang
Twitter backend - Golang

A Twitter-like Website This repository contains the backend code for the final project of Fall 2020 Internet Engineering course. In this project,

Twitter ID Finder For Golang

Twitter ID Finder n文字の全数IDを探せます Usage $ make go build -o main main.go $ ./main Twitter ID Finder Creator: @_m_vt Digits: 2 Target IDs: 100 Really? [

Comments
  • Sample config file?

    Sample config file?

    Is there a sample config file?

    When following your instructions it states to create a list.csv followed by ./twitterMon -f > out.csv which results in a 2020/01/21 16:24:17 unable to read config file, exiting... error. Running twitterMon --help I can see a conf.json is needed.

    There seems to be a gap in the docs.

    Thank you.

    opened by bashfulrobot 2
  • Fix #4 cview repo location

    Fix #4 cview repo location

    I will let you validate, not really familiar with go mod. You may edit the file to replace with your own package URL.

    Does the trick for me: go get -v github.com/arnaud-soulie/twitterMon works fine.

    Fixed also a bunch of "used as value" errors I had.

    opened by arnaud-soulie 1
  • Build impossible: cview repository no more available

    Build impossible: cview repository no more available

    The cview repository has moved to Gitlab: https://gitlab.com/tslocum/cview, so go get will fail Plus, the last version is no more compatible with twitterMon:

    • Flex does not have a GetChildren() function anymore
    • Had some other minor errors

    The last compatible version is v1.4.1.

    opened by arnaud-soulie 0
  • flex.GetChildren undefined

    flex.GetChildren undefined

    go version go1.15.6 linux/amd64
    
    go get -v github.com/esell/twitterMon 
    github.com/esell/twitterMon (download)
    created GOPATH=/home/x/go; see 'go help gopath'
    github.com/ChimeraCoder/anaconda (download)
    github.com/gdamore/tcell (download)
    github.com/gdamore/encoding (download)
    get "golang.org/x/text/encoding": found meta tag get.metaImport{Prefix:"golang.org/x/text", VCS:"git", RepoRoot:"https://go.googlesource.com/text"} at //golang.org/x/text/encoding?go-get=1
    get "golang.org/x/text/encoding": verifying non-authoritative meta tag
    golang.org/x/text (download)
    get "golang.org/x/text/transform": found meta tag get.metaImport{Prefix:"golang.org/x/text", VCS:"git", RepoRoot:"https://go.googlesource.com/text"} at //golang.org/x/text/transform?go-get=1
    get "golang.org/x/text/transform": verifying non-authoritative meta tag
    github.com/lucasb-eyer/go-colorful (download)
    github.com/mattn/go-runewidth (download)
    get "golang.org/x/sys/unix": found meta tag get.metaImport{Prefix:"golang.org/x/sys", VCS:"git", RepoRoot:"https://go.googlesource.com/sys"} at //golang.org/x/sys/unix?go-get=1
    get "golang.org/x/sys/unix": verifying non-authoritative meta tag
    golang.org/x/sys (download)
    github.com/mattn/go-sqlite3 (download)
    get "gitlab.com/tslocum/cview": found meta tag get.metaImport{Prefix:"gitlab.com/tslocum/cview", VCS:"git", RepoRoot:"https://gitlab.com/tslocum/cview.git"} at //gitlab.com/tslocum/cview?go-get=1
    gitlab.com/tslocum/cview (download)
    github.com/rivo/uniseg (download)
    get "gitlab.com/tslocum/cbind": found meta tag get.metaImport{Prefix:"gitlab.com/tslocum/cbind", VCS:"git", RepoRoot:"https://gitlab.com/tslocum/cbind.git"} at //gitlab.com/tslocum/cbind?go-get=1
    gitlab.com/tslocum/cbind (download)
    github.com/esell/twitterMon
    # github.com/esell/twitterMon
    go/src/github.com/esell/twitterMon/gui.go:114:18: flex.GetChildren undefined (type *cview.Flex has no field or method GetChildren)
    go/src/github.com/esell/twitterMon/gui.go:137:18: flex.GetChildren undefined (type *cview.Flex has no field or method GetChildren)
    
    opened by user747 0
Owner
esell
esell
Twitter - Twitter API with oauth in Golang

twitter: Twitter API with oauth in Golang Installation and Usage Install go get

majiaqi 0 Jan 7, 2022
Go-twitter - Simple Prototype for Twitter with frontend and backend

Twitter Clone Introduction A Twitter clone created with Golang, PostgreSQL, Redi

James Hsu 3 Feb 21, 2022
A site displaying musical groups information by receiving a public API. The server was written in Go.

A site displaying musical groups information by receiving a public API. The API consists of 4 parts with each represent a subset of the information. W

Julia C 0 Dec 13, 2021
Groupie Trackers consists on receiving a given API and manipulate the data contained in it, in order to create a site, displaying the information.

groupie-tracker Objectives Groupie Trackers consists on receiving a given API and manipulate the data contained in it, in order to create a site, disp

Mustafa Ustaz 0 Jan 13, 2022
Software for archiving my digital stuff like tweets

rsms's memex Software for managing my digital information, like tweets. Usage First check out the source and build. You'll need Make and Go installed.

Rasmus 45 Nov 17, 2022
A bot that tweets posts with the Go tag on Qiita

GoTwitterBot A bot that tweets posts with the Go tag on Qiita go mod init main/main go get github.com/joho/godotenv go get github.com/ChimeraCoder/a

Ibuki Yoshida 9 Oct 4, 2021
Mailctl - A non-TUI, easy-to-use, fun, modern console-based email app

mailctl (in alpha) modern console-based email app (not TUI!) Thanks for checking

Ved Thiru 4 Oct 5, 2022
A Go client library for the Twitter 1.1 API

Anaconda Anaconda is a simple, transparent Go package for accessing version 1.1 of the Twitter API. Successful API queries return native Go structs th

Aditya Mukerjee 1.1k Jan 1, 2023
A REST API microservices-based Twitter Clone server.

Simple API Twitter Clone A REST API microservices-based project to fetch, edit, post, and delete tweets. API documentation The API documentation is bu

null 1 May 13, 2022
RawLink makes backlinks queried from ahref ready for *Google Search Console*

Raw Link This simple program makes backlinks queried from ahref ready for Google Search Console. See footnote 1 for more information. It can be used t

Emre 2 Dec 14, 2022