Go to file
2020-09-20 20:46:29 +02:00
.gitignore purge history since July 2018 2019-01-01 19:35:22 +01:00
credentials.go updated for increased security theater 2020-08-08 11:52:42 +02:00
drivel.go new timeline subcommand 2020-09-20 20:37:12 +02:00
go.mod purge history since July 2018 2019-01-01 19:35:22 +01:00
LICENSE add license 2019-01-13 20:17:24 +01:00
Readme.md readme: mention lacking input validation 2020-09-20 20:46:29 +02:00

drivel

drivel is a Twitter command line interface.

You can find releases on releases.gutmet.org or build it yourself.

build

Checkout the repository and compile with

go build drivel.go credentials.go

usage

To get the last 200 tweets of your home timeline:

drivel home

To get the last 200 tweets of your mention timeline:

drivel mentions

To get the last 200 tweets of @USER:

drivel timeline USER

To like a tweet with a specific ID:

drivel like TWEET_ID

To retweet a tweet with a specific ID:

drivel retweet TWEET_ID

To update your status with optional media upload:

drivel status STATUS [FILE1, FILE2, ...]

To reply to a tweet with a specific ID:

drivel reply TWEET_ID MESSAGE [FILE1, FILE2, ...]

To quote a tweet with a specific ID:

drivel quote TWEET_ID MESSAGE [FILE1, FILE2, ...]

with any number of files, as long as they are .jpg, .png, .gif or .mp4 and smaller than 50 MB each. On first use, drivel will ask you to go to https://apps.twitter.com/app/new, register a new app and create an access token. Those values will be stored in HOME/.drivel/ for later use.

drivel will automatically split large status messages and multiple files into separate tweets belonging to the same thread.

example:

$ ./drivel status "First Message"
Did not find /home/alexander/.drivel, creating.
Go to https://apps.twitter.com/app/new to register a new app
and create an access token

Consumer Key: someconsumerkey
Consumer Secret: somesecret
Access Token: sometoken
Access Token Secret: sometokensecret
==> Updated status to 'First Message' with id 1013198854823514112
$
$ ./drivel status "Maxitest Lorem ipsum dolor sit amet, consetetur sadipscing elitr, 
sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, 
sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet 
clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet. 
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod 
tempor invidunt ut labor" *.jpg *.mp4 *.gif
==> Uploaded 7-Sins-in-the-Digital-World.jpg with id 1013200017602043904
==> Uploaded DifferenceTechEnthusiasts.jpg with id 1013200023608287234
==> Uploaded disappointednotsurprised.jpg with id 1013200028339507200
==> Uploaded fpalm30c3.jpg with id 1013200033053896704
==> Updated status to 'Maxitest Lorem ipsum dolor sit amet, consetetur sadipscing
elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam
erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum.
Stet clita kasd gubergren, no sea takimata sanctus est' with id 1013200053387874305
==> Uploaded howtoeven.jpg with id 1013200057108135936
==> Updated status to 'Lorem ipsum dolor sit amet. Lorem ipsum dolor sit amet,
consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labor'
with id 1013200061533171712
==> Uploaded disgusted-clint-eastwood.gif with id 1013200063978500097
==> Updated status to '' with id 1013200074254450688
==> Uploaded headwall.gif with id 1013200076871696384
==> Updated status to '' with id 1013200088049602562
==> Uploaded KittingUp.mp4 with id 1013200090595545089
==> Updated status to '' with id 1013200101811122178
==> Uploaded SteveHughes_Metal.mp4 with id 1013200104357064704
==> Updated status to '' with id 1013200119813033985

final note

drivel does not sanitize/validate user input for now.

final final note

You can buy me a beer here.