]> jfr.im git - z_archive/twitter.git/commitdiff
First stab at a twitter logger tool/archiver.
authorMike Verdone <redacted>
Sat, 12 Mar 2011 17:35:28 +0000 (18:35 +0100)
committerMike Verdone <redacted>
Sat, 12 Mar 2011 17:35:28 +0000 (18:35 +0100)
setup.py
twitter/logger.py [new file with mode: 0644]

index 0f73e6090a76f6fecbca966d75668857767ebf17..ee99e0d9ba87bf9e0cd9ab618176b48fe477f549 100644 (file)
--- a/setup.py
+++ b/setup.py
@@ -1,7 +1,7 @@
 from setuptools import setup, find_packages
 import sys, os
 
-version = '1.5.2'
+version = '1.5.3'
 
 install_requires = [
     # -*- Extra requirements: -*-
@@ -41,5 +41,6 @@ setup(name='twitter',
       [console_scripts]
       twitter=twitter.cmdline:main
       twitterbot=twitter.ircbot:main
+      twitter-log=twitter.logger:main
       """,
       )
diff --git a/twitter/logger.py b/twitter/logger.py
new file mode 100644 (file)
index 0000000..7ff61f4
--- /dev/null
@@ -0,0 +1,52 @@
+"""
+tw-archiver - Twitter Archiver
+
+USAGE:
+
+    tw-archiver [OPTIONS]
+
+DESCRIPTION:
+
+    Produce a complete archive in text form of a user's tweets. The
+    archive format is:
+
+        screen_name tweet_id tweet_time
+
+            Tweet text spanning multiple lines with
+            each line indented by four spaces.
+
+    Each tweet is separated by a blank line.
+
+"""
+
+import sys
+import os
+
+OPTIONS = {
+    'oauth_filename': os.environ.get('HOME', '') + os.sep + '.twitter_oauth',
+}
+
+from api import Twitter
+from cmdline import CONSUMER_KEY, CONSUMER_SECRET
+from oauth import read_token_file, OAuth
+
+def main(args=sys.argv[1:]):
+    oauth_filename = OPTIONS['oauth_filename']
+    oauth_token, oauth_token_secret = read_token_file(oauth_filename)
+
+    twitter = Twitter(
+        auth=OAuth(
+            oauth_token, oauth_token_secret, CONSUMER_KEY, CONSUMER_SECRET),
+        api_version='1',
+        domain='api.twitter.com')
+
+    kwargs = dict(count=3200)
+
+    tweets = twitter.statuses.user_timeline(**kwargs)
+    for tweet in tweets:
+        print "%s %s %s" % (tweet['user']['screen_name'],
+                            tweet['id'],
+                            tweet['created_at'])
+        for line in tweet['text'].splitlines():
+            print '    ' + line.encode('utf-8')
+        print