goodbye

Notify yourself when someone unfollows you on Twitter

Github星跟蹤圖

Goodbye

Goodbye is a Go application, when someone unfollows you on Twitter,
it will Direct Message you their Twitter handle.

At its core, it’s a program that downloads your twitter follower list in certain
intervals, and compares it with the previous list to find out who has unfollowed
you.

It has the following execution modes:

  • -daemon: Process continously runs and fetches the followers every 5
    minutes (or specified $GOODBYE_POLLING_INTERVAL). Doesn't need extra storage
    to store followers list (stores in-memory).

  • -http-addr: Process listens on specified port and checks follower list
    on each request to GET /goodbye. Needs extra storage (currently a GCS
    bucket) to store follower list. (Suitable for serverless environments)

  • -run-once: Process runs once and exits. Needs extra storage (currently
    a GCS bucket) to store follower list. (Suitable for cronjobs.)

Setup

First, you will need a config.json file containing Twitter API credentials.

Create a Twitter application on https://dev.twitter.com and access tokens for
the application. Save these and pass as environment variables to the
application:

export CONSUMER_KEY=[...] \
       CONSUMER_SECRET=[...] \
       ACCESS_TOKEN=[...] \
       ACCESS_TOKEN_SECRET=[...]

./goodbye -daemon

You can compile the application with Go compiler, or use the Dockerfile to build
a container image.

Run with Docker

Clone this repo on a Linux server with docker installed and build the Docker
image in the repository root directory:

docker build -t goodbye .

Then run the container and give it the arguments it needs.

docker run -d --restart=always \
    -e CONSUMER_KEY=[...] \
    -e CONSUMER_SECRET=[...] \
    -e ACCESS_TOKEN=[...] \
    -e ACCESS_TOKEN_SECRET=[...] \
    --name=goodbye-agent \
       goodbye -daemon

Check if it is running fine: docker logs -f goodbye-agent.

Set up follower ID storage (for -run-once and -http-addr modes)

The -daemon mode stores the follower IDs in memory, however other modes need
external storage (currently only Google Cloud Storage is supported) to store
the follower IDs.

  1. Create a new Google Cloud Storage bucket to store follower IDs:

    BUCKET_NAME=pick-a-name
    gsutil mb gs://$BUCKET_NAME
    
  2. Upload an empty file named ids to GCS bucket

    touch ids
    gsutil cp ./ids gs://$BUCKET_NAME/ids
    

Use this gs://my_bucket/ids value as the -followers-file argument.

Demo

Goodbye in action

Author

Copyright (c) 2013-2019, Ahmet Alp Balkan

Made in Bellevue,WA and Seattle, WA with love.

主要指標

概覽
名稱與所有者ahmetb/goodbye
主編程語言Go
編程語言Go (語言數: 2)
平台
許可證Apache License 2.0
所有者活动
創建於2013-05-25 23:25:26
推送於2020-11-20 05:43:41
最后一次提交2020-11-19 21:43:09
發布數5
最新版本名稱v4.0.0 (發布於 )
第一版名稱v1.0.0 (發布於 )
用户参与
星數82
關注者數6
派生數14
提交數59
已啟用問題?
問題數4
打開的問題數1
拉請求數0
打開的拉請求數0
關閉的拉請求數2
项目设置
已啟用Wiki?
已存檔?
是復刻?
已鎖定?
是鏡像?
是私有?