Simple Twitter CLI for day-to-day social media hygiene
Project description
plumes
Simple Twitter CLI for day-to-day social media hygiene
·
Report Bug
·
Request Feature
Contents
Overview
Plumes
is an open-source Python CLI app for day-to-day social media hygiene.
It was designed to provide a simple, clear, and concise interface to quickly explore and clean a personal Twitter account.
Inspiration
Installation
# python >=3.6.1 is required
pip install plumes
Usage
Getting Started And Creating Your Authentication Config
# create your config file
plumes init
# validate your config file
plumes check_config
# print your config file (watch out for sensitive tokens!)
plumes view_config
Export Friends
Extract friends ordered in which they were added:
plumes friends <flags>
# e.g., get the friends of Steve Martin (see data in examples dir)
plumes friends SteveMartinToGo --limit 100
Arguments:
screen_name
Optional[str], optional - Target user's screen name (i.e., Twitter handle). If none is given, authenticated user is used. Defaults to None.limit
Optional[int], optional - Max number of users to fetch. Defaults to None.output
Optional[str], optional - Output path for JSON file. Defaults to None.
Export Followers
Extract followers ordered in which they were added:
plumes followers <flags>
# e.g., get the followers of Al Yankovic (see data in examples dir)
plumes followers alyankovic --limit 100
Arguments:
screen_name
Optional[str], optional - Target user's screen name (i.e., Twitter handle). If none is given, authenticated user is used. Defaults to None.limit
Optional[int], optional - Max number of users to fetch. Defaults to None.output
Optional[str], optional - Output path for JSON file. Defaults to None.
Export Tweets
Extract (and archive) tweets ordered in by most recent:
plumes tweets <flags>
# e.g., get the tweets of Conan O'Brien (see data in examples dir)
plumes tweets ConanOBrien --limit 100
Arguments:
screen_name
Optional[str], optional - Target user's screen name (i.e., Twitter handle). If none is given, authenticated user is used. Defaults to None.limit
Optional[int], optional - Max number of users to fetch. Defaults to None.output
Optional[str], optional - Output path for JSON file. Defaults to None.
Audit Users
Audit and review users given criteria. Use this to mass follow/unfollow many users.
plumes audit_users PATH <flags>
# e.g., follow 100 of Al Yankovic's followers
plumes followers alyankovic --limit 100
plumes audit_users alyankovic-followers.json --befriend
# e.g., prune (i.e., unfollow) current friends who have less than 100 followers AND haven't tweeted in the last 30 days
plumes friends --output "friends.json"
plumes audit_users "friends.json" --prune --min_followers 100 --days 30
Arguments:
path
str - Path to JSON file of users (e.g., output of friends())min_followers
Optional[int], optional - Min number of followers. Defaults to None.max_followers
Optional[int], optional - Max number of followers. Defaults to None.min_friends
Optional[int], optional - Min number of friends. Defaults to None.max_friends
Optional[int], optional - Max number of friends. Defaults to None.days
Optional[int], optional - Days since last tweet. Defaults to None.min_tweets
Optional[int], optional - Min number of tweets. Defaults to None.max_tweets
Optional[int], optional - Max number of tweets. Defaults to None.min_favourites
Optional[int], optional - Min number of favourites. Defaults to None.max_favourites
Optional[int], optional - Max number of favourites. Defaults to None.min_ratio
Optional[float], optional - Min Twitter follower-friend (TFF) ratio. Defaults to None.max_ratio
Optional[float], optional - Max Twitter follower-friend (TFF) ratio. Defaults to None.prune
bool, optional - Unfollow identified users. Defaults to False.befriend
bool, optional - Follow identified users. Defaults to False.bool_or
bool, optional - Switch to boolean OR for conditions. Defaults to False.
Prune Your Tweets
Audit and review tweets given criteria. Use this to mass favourite or delete tweets.
plumes audit_tweets PATH <flags>
# e.g., delete your tweets that are older than 60 days AND that you didn't self-favourite
plumes tweets --output "tweets.json"
plumes audit_tweets "tweets.json" --prune --days 60 --self_favorited False
# e.g., export 100 of Conan O'Brien's tweets and favourite those that have a maximum of 10 likes and a minimum of 50 retweets
plumes tweets ConanOBrien --limit 100
plumes audit_tweets ConanOBrien-tweets.json --favorite --max_likes 10 --min_retweets 50
Arguments:
days
Optional[int], optional - Days since tweeted. Defaults to None.min_likes
Optional[int], optional - Min number of favourites. Defaults to None.max_likes
Optional[int], optional - Max number of favourites. Defaults to None.min_retweets
Optional[int], optional - Min number of retweets. Defaults to None.max_retweets
Optional[int], optional - Max number of retweets. Defaults to None.min_ratio
Optional[float], optional - Min Twitter like-retweet ratio. Defaults to None.max_ratio
Optional[float], optional - Max Twitter like-retweet ratio. Defaults to None.self_favorited
Optional[bool], optional - Check if tweet is self-liked. Defaults to None.prune
bool, optional - Prune and destroy identified tweets. Defaults to False.favorite
bool, optional - Like identified tweets. Defaults to False.bool_or
bool, optional - Switch to boolean OR for conditions. Defaults to False.
Setting Up Authentication
Get Your Twitter API Tokens
-
Navigate to the Twitter Dev Portal
-
Click
Create an app
-
Fill out the forms
-
Navigate to
Keys and tokens
-
Copy the values for
API key
,API secret key
,Access token
, andAccess token secret
Configuring plumes
The API tokens can either be set as environment variables (using the PLUMES_
prefix; e.g., export PLUMES_CONSUMER_KEY=xxxxx
) or configuration variables in ~/.plumes.toml
:
- CONSUMER_KEY =
<API key>
- CONSUMER_SECRET =
<API secret key>
- ACCESS_TOKEN =
<Access token>
- ACCESS_TOKEN_SECRET =
<Access token secret>
Contributing
Please see CONTRIBUTING.md
and the Code of Conduct for how to contribute to the project
Testing
- Please review the
Makefile
for an overview of all available tests - The most important tests and
make
commands are highlighted below:
# auto-format code
make format
# perform all static tests
make check
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file plumes-2.3.0.tar.gz
.
File metadata
- Download URL: plumes-2.3.0.tar.gz
- Upload date:
- Size: 12.7 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.10 CPython/3.8.5 Linux/5.4.0-1023-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | b5c613e964fe472a7848721fe767592824b119912f8dcd51d03991635828832c |
|
MD5 | 6ebfee9cb563b4d8dec2c6423ce4fbac |
|
BLAKE2b-256 | de64d3065a8c66db8b8d11e40b272caaa5a237edeab0348cbbb2f70a29ad2e67 |
File details
Details for the file plumes-2.3.0-py3-none-any.whl
.
File metadata
- Download URL: plumes-2.3.0-py3-none-any.whl
- Upload date:
- Size: 10.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.0.10 CPython/3.8.5 Linux/5.4.0-1023-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 1fcc5a2809e03def858268be9a9fcc823bc652ab994b91ff52ad2aa62bea22ea |
|
MD5 | eaa1ab9c8034f232202924fd44fba20c |
|
BLAKE2b-256 | d1dcbe6a4cbdebc5afaf11933cdb72f5d2718f6286172e871f85b791f1ae4bf8 |