~vbkaisetsu/bzr-twitter/trunk

« back to all changes in this revision

Viewing changes to __init__.py

  • Committer: Koichi Akabe
  • Date: 2012-09-27 00:25:03 UTC
  • Revision ID: vbkaisetsu@gmail.com-20120927002503-sk2mathvsz9cxikq
add tweet_on_push option to tweet commit messages on push

Show diffs side-by-side

added added

removed removed

Lines of Context:
55
55
 
56
56
i18n_install()
57
57
 
 
58
def get_api():
 
59
 
 
60
        gs = globalconfig.GlobalStack()
 
61
        
 
62
        token_key = gs.get("twitter_token_key")
 
63
        token_secret = gs.get("twitter_token_secret")
 
64
        if token_key is None or token_secret is None:
 
65
                return None
 
66
        
 
67
        return twitter.Api(consumer_key=consumer_key, consumer_secret=consumer_sec,
 
68
                          access_token_key=token_key, access_token_secret=token_secret)
 
69
 
58
70
def post_push_hook(push_result):
59
71
 
60
72
        old_rev = push_result.old_revno
68
80
        branch_name = config.get_user_option("twitter_branch_id")
69
81
        if branch_name is None:
70
82
                return
 
83
 
 
84
        api = get_api()
 
85
        if api is None:
 
86
                return
 
87
 
 
88
        tweet_on_push = config.get_user_option("tweet_on_push")
 
89
        if tweet_on_push == "yes":
 
90
                for revno in range(old_rev + 1, new_rev + 1):
 
91
                        revid = branch.dotted_revno_to_revision_id((revno,))
 
92
                        revision = branch.repository.get_revision(revid)
 
93
                        tweet_revision(api, revision, branch_name, revno)
71
94
        
72
95
        tweetstr = _("bzr push: %(name)s was pushed up from %(old)d to %(new)d [bzr-tweet]") % {"name": branch_name, "old": old_rev, "new": new_rev}
73
 
        
74
 
        gs = globalconfig.GlobalStack()
75
 
        
76
 
        token_key = gs.get("twitter_token_key")
77
 
        token_secret = gs.get("twitter_token_secret")
78
 
        if token_key is None or token_secret is None:
79
 
                return
80
 
        
81
 
        api = twitter.Api(consumer_key=consumer_key, consumer_secret=consumer_sec,
82
 
                          access_token_key=token_key, access_token_secret=token_secret)
 
96
 
83
97
        try:
84
98
                api.PostUpdate(tweetstr)
85
99
        except Exception:
94
108
        branch_name = config.get_user_option("twitter_branch_id")
95
109
        if branch_name is None:
96
110
                return
 
111
        tweet_on_push = config.get_user_option("tweet_on_push")
 
112
        if tweet_on_push == "yes":
 
113
                return
 
114
 
 
115
        api = get_api()
 
116
        if api is None:
 
117
                return
 
118
 
97
119
        revision = branch.repository.get_revision(new_revid)
 
120
        tweet_revision(api, revision, branch_name, new_revno)
 
121
 
 
122
def tweet_revision(api, revision, branch_name, revno):
 
123
 
98
124
        message = revision.message.splitlines()[0]
99
125
        
100
126
        tweet_fmtstr = _("bzr commit: %(name)s has the new revid: %(revid)d: %(msg)s [bzr-tweet]")
101
 
        msgmax = TWEET_MAXLEN - len(tweet_fmtstr % {"name": branch_name, "revid": new_revno, "msg": ""})
 
127
        msgmax = TWEET_MAXLEN - len(tweet_fmtstr % {"name": branch_name, "revid": revno, "msg": ""})
102
128
        
103
129
        if(msgmax < len(message)):
104
130
                message = message[:msgmax - 3] + "..."
105
131
        
106
 
        tweetstr = tweet_fmtstr % {"name": branch_name, "revid": new_revno, "msg": message}
107
 
        
108
 
        gs = globalconfig.GlobalStack()
109
 
        
110
 
        token_key = gs.get("twitter_token_key")
111
 
        token_secret = gs.get("twitter_token_secret")
112
 
        if token_key is None or token_secret is None:
113
 
                return
114
 
        
115
 
        api = twitter.Api(consumer_key=consumer_key, consumer_secret=consumer_sec,
116
 
                          access_token_key=token_key, access_token_secret=token_secret)
 
132
        tweetstr = tweet_fmtstr % {"name": branch_name, "revid": revno, "msg": message}
 
133
 
117
134
        try:
118
135
                api.PostUpdate(tweetstr)
119
136
        except Exception: