def main(): for batch in new_batches(): url = bitly.shorten(batch['url']) json_url = batch['url'].strip('/') + '.json' batch_info = json.loads(urllib.urlopen(json_url).read()) name = format_name(batch['awardee']) msg = "%s newspaper pages were just loaded from %s %s" % \ (batch_info['page_count'], name, url) twitter.tweet(msg) time.sleep(5)
def gettxt(cinfo,curzen,sitetag,sitelink): ''' Generated formatted text for email alert ''' txt = txtfmt%(cinfo.inst.capitalize(),\ cinfo.trigid,\ curzen,\ shorten(cinfo.link),\ sitelink) return txt
def shortenWithBitly(self, text): """ Shortens the URL in the text control using bit.ly Requires a bit.ly account and API key """ bitly.API_LOGIN = "******" bitly.API_KEY = "api_key" URL = bitly.shorten(text) self.outputURLTxt.SetValue(URL)
def post_to_twitter(data): url = shorten('http://%s%s' % (site.domain, data.get_absolute_url())) post = '%s: %s' % (data.get_human_class_type(), data.name) if len(post) >= 130: post = post[:127] + '...' post_string = '%s %s' % (post, url) try: api.PostUpdate(post_string[:140]) except HTTPError: pass
def twitter_msg(headline, date): # calculate how much tweet space there is for a snippet # 140 - (date + short_url + punctuation) d = datetime.datetime.strftime(date, '%b %d, %Y') remaining = 140 - (len(d) + 20 + 5) snippet = headline['text'][0:remaining] # shorten the url url = "http://chroniclingamerica.loc.gov%s" % headline['page_id'] short_url = bitly.shorten(url) msg = '%s: "%s" %s' % (d, snippet, short_url) return msg
def print_result(self, *args): ''' Print a greeting constructed from the selections made by the user. ''' print('%s, %s!' % (self.greeting.GetValue().title(), bitly.shorten(self.recipient.GetValue())))
rv = ''.join(rv) return rv ################################################################################ # Read in data from standard input ogdata = sys.stdin.readlines() sdata = clean(ogdata) lk = getlink(sdata) tb = gettbody(sdata) pio = prepinfo(tb) fmttw = formate(pio) if lk!=None: shrtlk = shorten(lk) fmttw='%s. %s'%(fmttw,shrtlk) else: log.write('Failed to find link.\n') fmttw = fmttw.strip().replace(' ',' ').decode('unicode_escape') try: # Create twitter authentication handler auth = tweepy.OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(key, secret) # Create interface to twitter API api = tweepy.API(auth) except: log.write('Failed TAuth: %s\n'%fmttw)
def get(self): label = str(self.request.get("label")) post_release = self.request.get("post_release") app_id = str(self.request.get("app_id")) show_all = self.request.get("show_all") show_all_checkbox = "checked" if show_all else "" if not label: label = "v0." apps = SZ_APPS socialize_opts, appmakr_opts = get_project_options(app_id) self.response.out.write( """ <html> <body onLoad="document.forms[0].label.focus()"> <form method="GET" action=""> PT Project ID: <select name=app_id> <optgroup label="Socialize"> %s </optgroup> <optgroup label="AppMakr"> %s </optgroup> </select> Release Label: <input type=text name=label value="%s" tabindex=0> <input type="checkbox" name="show_all" id="show_all_checkbox" %s> <label for="show_all_checkbox">Show All </label> <input type=submit> <span style="font-size:10px;">(<a href="/publicize">View publicize stories</a>)</span> </form> </body> </html> """ % (socialize_opts, appmakr_opts, label, show_all_checkbox)) if app_id: stories, story_count = get_pt_stories(app_id, label) html = "" release_status = "Sorry, no data for that search..." ready_for_release = True released_to_prod = True release_notes = "" release_notes_plain = "" if story_count > 0: release_notes = release_notes + "<ol id='copytext'>" for story in stories: story_type = story.getElementsByTagName( "story_type")[0].childNodes[0].data current_state = story.getElementsByTagName( "current_state")[0].childNodes[0].data if current_state != "accepted": ready_for_release = False if story_type == "release": released_to_prod = False labels = story.getElementsByTagName( "labels")[0].childNodes[0].data if show_all or (not story_type in ["release", "chore"] and not "private" in labels): name = story.getElementsByTagName( "name")[0].childNodes[0].data url = story.getElementsByTagName( "url")[0].childNodes[0].data labels = labels.replace(",", " ").replace(label, "") release_notes = release_notes + "<li><p>[%s] <a href='%s'>%s</a> [ %s]<p></li>" % ( story_type, url, name, labels) release_notes_plain = release_notes_plain + "<p> [%s] %s [ %s]</p>" % ( story_type, name, labels) release_notes = release_notes + "</ol>" html = html + release_notes html = html + """ <style>p.post a {font-size: 20px;text-decoration: none;}textarea {width:500px;height:100px;}p.norm {font-size:14px;} </style> """ if not show_all: release_name = apps[app_id] + " " + label release_name_slug = _slugify(apps[app_id] + " " + label) bookmark = """<a name="%s"></a><br><br>""" % release_name_slug release_notes_plain = bookmark + release_name + "<br><br>" + release_notes_plain download = "" if app_id == "293827" or app_id == "293829": release_notes_plain = release_notes_plain + "<br><br>Download the latest SDK at http://www.getsocialize.com/sdk" download = " get it at: https://github.com/socialize/socialize-sdk-android/downloads" if app_id == "293827": download = " get it at: https://github.com/socialize/socialize-sdk-ios/downloads" get_sat_post = clean_text(release_notes_plain) topic_url = bitly.shorten( "http://support.getsocialize.com/socialize/topics/socialize_release_updates_published_on_this_thread#%s" % release_name_slug) tweet = "Released %s! More details at: %s %s" % ( release_name, topic_url, download) html = html + """ <h3>Ready to publish this release to the boards?</h3> """ release_form = "" release_form = release_form + """ <form method="POST" action="/publish_release" > """ release_form = release_form + """ <input type="hidden" name="app_id" value="%s" /><input type="hidden" name="label" value="%s" /> """ % ( app_id, label) release_form = release_form + """ <p class="norm">GetSat Post</p><textarea name="get_sat_post">%s</textarea>""" % get_sat_post release_form = release_form + """ <p class="norm">Twitter Post</p><textarea name="tweet_post">%s</textarea> """ % tweet release_form = release_form + """ <p class="norm"> <input type="submit" value="Post release to Twitter and GetSat" /></p> """ release_form = release_form + """ </form> """ html = html + release_form else: #NOT SHOW ALL bc_post_text = "See release info at: http://releasenotesgenerator.appspot.com?app_id=%s&label=%s&show_all=on" % ( app_id, label) html = html + """<p>** <a href="?app_id=%s&label=%s">Uncheck "show all" to post release notes</a></p>""" % ( app_id, label) if app_id != "293827" and app_id != "293829": #ios and android dont have todos create_release_form = "" create_release_form = create_release_form + """ <form method="POST" action="/create_release" > """ create_release_form = create_release_form + """ <input type="hidden" name="app_id" value="%s" /><input type="hidden" name="label" value="%s" /> """ % ( app_id, label) create_release_form = create_release_form + """ <p class="norm">BC Post Post</p><textarea name="bc_post">%s</textarea> """ % bc_post_text create_release_form = create_release_form + """ <p class="norm"> <input type="submit" value="Create release in basecamp" /></p> """ create_release_form = create_release_form + """ </form> """ html = html + create_release_form if not ready_for_release: release_status = "<h3 style='color:#900;'>Easy, tiger! This release is not ready for production yet...but it's in the cards.</h3>" elif released_to_prod: release_status = "<h3>I think this release is already on production</h3>" else: release_status = "<h3>Hmm...I see a release to prod in your future</h3>" html = release_status + html self.response.out.write(html)
return rv ################################################################################ # Read in data from standard input ogdata = sys.stdin.readlines() sdata = clean(ogdata) lk = getlink(sdata) tb = gettbody(sdata) pio = prepinfo(tb) fmttw = formate(pio) if lk != None: shrtlk = shorten(lk) fmttw = '%s. %s' % (fmttw, shrtlk) else: log.write('Failed to find link.\n') fmttw = fmttw.strip().replace(' ', ' ').decode('unicode_escape') try: # Create twitter authentication handler auth = tweepy.OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(key, secret) # Create interface to twitter API api = tweepy.API(auth) except: log.write('Failed TAuth: %s\n' % fmttw)
def get(self): label = str(self.request.get("label")) post_release = self.request.get("post_release") app_id = str(self.request.get("app_id")) show_all = self.request.get("show_all") show_all_checkbox = "checked" if show_all else "" if not label: label = "v0." apps = SZ_APPS socialize_opts, appmakr_opts = get_project_options(app_id) self.response.out.write(""" <html> <body onLoad="document.forms[0].label.focus()"> <form method="GET" action=""> PT Project ID: <select name=app_id> <optgroup label="Socialize"> %s </optgroup> <optgroup label="AppMakr"> %s </optgroup> </select> Release Label: <input type=text name=label value="%s" tabindex=0> <input type="checkbox" name="show_all" id="show_all_checkbox" %s> <label for="show_all_checkbox">Show All </label> <input type=submit> <span style="font-size:10px;">(<a href="/publicize">View publicize stories</a>)</span> </form> </body> </html> """ % (socialize_opts, appmakr_opts, label, show_all_checkbox) ) if app_id: stories, story_count = get_pt_stories(app_id, label) html = "" release_status = "Sorry, no data for that search..." ready_for_release = True released_to_prod = True release_notes = "" release_notes_plain = "" print "STORY COUNT %s" % story_count if story_count > 0: release_notes = release_notes + "<ol id='copytext'>" for story in stories: story_type = story.getElementsByTagName("story_type")[0].childNodes[0].data current_state = story.getElementsByTagName("current_state")[0].childNodes[0].data if current_state != "accepted": ready_for_release = False if story_type == "release": released_to_prod = False labels = "" if len(story.getElementsByTagName("labels")) > 0: labels = story.getElementsByTagName("labels")[0].childNodes[0].data if show_all or (not story_type in ["release", "chore"] and not "private" in labels): name = story.getElementsByTagName("name")[0].childNodes[0].data url = story.getElementsByTagName("url")[0].childNodes[0].data labels = labels.replace(",", " ").replace(label, "") release_notes = release_notes + "<li><p>[%s] <a href='%s'>%s</a> [ %s]<p></li>" % ( story_type, url, name, labels) release_notes_plain = release_notes_plain + "<p> [%s] %s [ %s]</p>" % ( story_type, name, labels) release_notes = release_notes + "</ol>" html = html + release_notes html = html + """ <style>p.post a {font-size: 20px;text-decoration: none;}textarea {width:500px;height:100px;}p.norm {font-size:14px;} </style> """ if not show_all: release_name = apps[app_id] + " " + label release_name_slug = _slugify(apps[app_id] + " " + label) bookmark = """<a name="%s"></a><br><br>""" % release_name_slug release_notes_plain = bookmark + release_name + "<br><br>" + release_notes_plain download = "" if app_id == "293827" or app_id == "293829": release_notes_plain = release_notes_plain + "<br><br>Download the latest SDK at http://www.getsocialize.com/sdk" download = " get it at: https://github.com/socialize/socialize-sdk-android/downloads" if app_id == "293827": download = " get it at: https://github.com/socialize/socialize-sdk-ios/downloads" get_sat_post = clean_text(release_notes_plain) topic_url = bitly.shorten("http://support.getsocialize.com/socialize/topics/socialize_release_updates_published_on_this_thread#%s" % release_name_slug) tweet = "Released %s! More details at: %s %s" % (release_name, topic_url, download) html = html + """ <h3>Ready to publish this release to the boards?</h3> """ release_form = "" release_form = release_form + """ <form method="POST" action="/publish_release" > """ release_form = release_form + """ <input type="hidden" name="app_id" value="%s" /><input type="hidden" name="label" value="%s" /> """ % (app_id, label) release_form = release_form + """ <p class="norm">GetSat Post</p><textarea name="get_sat_post">%s</textarea>""" % get_sat_post release_form = release_form + """ <p class="norm">Twitter Post</p><textarea name="tweet_post">%s</textarea> """ % tweet release_form = release_form + """ <p class="norm"> <input type="submit" value="Post release to Twitter and GetSat" /></p> """ release_form = release_form + """ </form> """ html = html + release_form else: #NOT SHOW ALL bc_post_text = "See release info at: http://releasenotesgenerator.appspot.com?app_id=%s&label=%s&show_all=on" % (app_id, label) html = html + """<p>** <a href="?app_id=%s&label=%s">Uncheck "show all" to post release notes</a></p>""" % (app_id, label) if app_id != "293827" and app_id != "293829": #ios and android dont have todos create_release_form = "" create_release_form = create_release_form + """ <form method="POST" action="/create_release" > """ create_release_form = create_release_form + """ <input type="hidden" name="app_id" value="%s" /><input type="hidden" name="label" value="%s" /> """ % (app_id, label) create_release_form = create_release_form + """ <p class="norm">BC Post Post</p><textarea name="bc_post">%s</textarea> """ % bc_post_text create_release_form = create_release_form + """ <p class="norm"> <input type="submit" value="Create release in basecamp" /></p> """ create_release_form = create_release_form + """ </form> """ html = html + create_release_form if not ready_for_release: release_status = "<h3 style='color:#900;'>Easy, tiger! This release is not ready for production yet...but it's in the cards.</h3>" elif released_to_prod: release_status = "<h3>I think this release is already on production</h3>" else: release_status = "<h3>Hmm...I see a release to prod in your future</h3>" html = release_status + html self.response.out.write(html)