1
0
mirror of https://github.com/balkian/bitter.git synced 2024-12-22 08:28:12 +00:00
bitter/README.md

117 lines
2.6 KiB
Markdown
Raw Normal View History

2017-12-28 17:13:23 +00:00
# Description
2016-09-14 17:53:56 +00:00
There are two parts to bitter.
First of all, it is a wrapper over Python twitter that adds support for several Twitter API credentials (e.g. authorizing the same app with different user accounts).
Secondly, it is a command line tool to automate several actions (e.g. downloading user networks) using the wrapper.
# Instructions
In the command line:
python -m bitter --help
or
bitter --help
Programmatically:
```python
2017-03-08 11:15:48 +00:00
from bitter import easy
wq = easy()
2016-09-14 17:53:56 +00:00
print(wq.users.show(user_name='balkian'))
```
You can also make custom calls to the API through the command line.
e.g. to get the latest 500 tweets by the python software foundation:
```
bitter api statuses/user_timeline --id thepsf --count 500
```
# Examples
The CLI can query the rest API:
```
bitter api <URL endpoint> --parameter VALUE ... | [--tweets | --users] [--max_count MAX_COUNT] [--count COUNT_PER_CALL]
```
For instance:
```
# Get 100 tweets that mentioned Obama after tweet 942689870501302300
bitter api '/search/tweets' --since_id 942689870501302300 --count 100 --q Obama
```
That is equivalent to this call to the api: `api/1.1/searc/tweets?since_id=942689870501302300&count=100&q=Obama`.
The flags `--tweets` and `--users` are optional.
If you use them, bitter will try to intelligently fetch all the tweets/users by using pagination with the API.
For example:
```
# Download 1000 tweets, 100 tweets per call.
bitter api '/search/tweets' --since_id 942689870501302300 --count 100 --q Obama --max_count=1000 --tweets
```
```
# Download all the followers of @balkian
bitter api 'followers/list' --_id balkian --users --max_count -1
```
Note that some reserved words (such as `id`) have to be preceeded by an underscore.
This limitation is imposed by the python-twitter library.
# Configuration format
```
credentials:
- user: "balkian"
consumer_secret: "xxx"
consumer_key: "xxx"
token_key: "xxx"
token_secret: "xxx"
- user: ....
```
By default, bitter uses '~/.bitter.yaml', but you may choose a different file:
2016-09-14 17:53:56 +00:00
```
python -m bitter --config <config_file> ...
2016-09-14 17:53:56 +00:00
```
Or use an environment variable:
2016-09-14 17:53:56 +00:00
```
export BITTER_CONFIG=$(cat myconfig.yaml)
2016-09-14 17:53:56 +00:00
```
# Server
To add more users to the credentials file, you may run the builtin server, with the consumer key and secret of your app:
```
python -m bitter server <consumer_key> <consumer_secret>
```
2016-09-15 11:56:17 +00:00
If you get an error about missing dependencies, install the extra dependencies for the server. e.g.:
```
pip install bitter[web]
```
Make sure the callback url of your app is set to http://127.0.0.1:5000/callback_url/
2016-09-14 17:53:56 +00:00
# Notice
Please, use according to Twitter's Terms of Service
# TODO
* Tests
* Docs