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 (发布于 )
用户参与
星数81
关注者数8
派生数14
提交数59
已启用问题?
问题数4
打开的问题数1
拉请求数0
打开的拉请求数0
关闭的拉请求数2
项目设置
已启用Wiki?
已存档?
是复刻?
已锁定?
是镜像?
是私有?