From 23b628d4cbec1f5425c67bdbcbe602e705a53f09 Mon Sep 17 00:00:00 2001 From: nojhan Date: Tue, 21 Jul 2015 00:02:59 +0200 Subject: [PATCH] Working twitter API --- forthlift.py | 42 ++++++++++++++++++++++++++++++++---------- twitter.conf-dist | 5 +++++ 2 files changed, 37 insertions(+), 10 deletions(-) create mode 100644 twitter.conf-dist diff --git a/forthlift.py b/forthlift.py index c1d3781..2f9aa69 100755 --- a/forthlift.py +++ b/forthlift.py @@ -4,6 +4,8 @@ import sys import locale import argparse +import tweepy + def write(data, stream = sys.stdout): """ @@ -95,6 +97,21 @@ def on_stdout( data, asked, endline="\n" ): yield prefix*i + line +def on_twitter( data, api, asked, endline="\n" ): + lines = setup(data, asked) + + prev_status_id = None + + for line in lines: + # API.update_status(status[, in_reply_to_status_id][, lat][, long][, source][, place_id]) + status = api.update_status(line, prev_status_id) + + if asked.chain: + prev_status_id = status.id + + yield status.text + endline + + def operate( func, *args ): for line in func( readline(sys.stdin), *args ): write(line) @@ -129,6 +146,8 @@ parser.add_argument("-d", "--adorn", action="store_true", parser.add_argument("-q", "--quiet", action="store_true", help="Do not print errors and warnings on the standard error output.") +# TODO option: rate at which to post lines + # API-dependant options parser.add_argument("-c", "--chain", action="store_true", @@ -152,23 +171,26 @@ if asked.api == "stdout": operate( on_stdout, asked ) -elif asked.api == "twitter": # TODO +elif asked.api == "twitter": - import tweepy + import ConfigParser - consumer_key = "" - consumer_secret = "" + config = ConfigParser.RawConfigParser() + config.read('twitter.conf') - access_token = "" - access_token_secret = "" + consumer_key = config.get("Auth","key") + consumer_secret = config.get("Auth","key_secret") + + try: + verifier_code = config.get("Auth","code") + except: + access_token = config.get("Auth","token") + access_token_secret = config.get("Auth","token_secret") auth = tweepy.OAuthHandler(consumer_key, consumer_secret, "https://api.twitter.com/1.1/") auth.set_access_token(access_token, access_token_secret) api = tweepy.API(auth) - public_tweets = api.home_timeline() - for tweet in public_tweets: - print "#########################################" - print tweet.text + operate( on_twitter, api, asked ) diff --git a/twitter.conf-dist b/twitter.conf-dist new file mode 100644 index 0000000..aa3b3ff --- /dev/null +++ b/twitter.conf-dist @@ -0,0 +1,5 @@ +[Auth] +key= +key_secret= +token= +token_secret=