def PrepareHandler(self): """prepare means: - find the oldest non-prepared - create bit.ly link if does not exist - create trimmed tweet text if the link exists""" config = get_config() self.response.out.write('<br/><br/>Preparing to tweet') # get oldest non-prepared changeset in the datastore oldest_changeset = Changeset.all().order('created_at').filter('is_prepared =', False).fetch(1) if oldest_changeset: c = oldest_changeset[0] self.response.out.write('<br/>There is non-prepared<br/>') self.response.out.write("id: %d<br/>" % c.id) self.response.out.write("created_at: %s<br/>" % c.created_at) self.response.out.write("comment: %s<br/>" % c.comment) self.response.out.write("user: %s<br/>" % c.user) # if no shortened link - create it if not c.link_url: long_url = "http://www.openstreetmap.org/browse/changeset/%d" % c.id bitly = BitLy(config["bitly_username"], config["bitly_key"]) short_url = bitly.short_url(long_url) if not short_url: self.response.out.write('could not shorten') return self.response.out.write(short_url) c.link_url = short_url if not c.tweet: if c.comment: tweet = "%s: %s %s" % (c.user, c.comment, c.link_url) else: tweet = "%s: %s" % (c.user, c.link_url) c.tweet = trim_to_tweet(tweet) if c.link_url and c.tweet: c.is_prepared = True self.response.out.write('tweet: %s' % c.tweet) c.put()
# 3 is an arbitrary number, # we just ignore changesets that 3 times larger than bbox in config print "<br/>delta_lon: %f" % (max_lon - min_lon) print "<br/>delta_lat: %f" % (max_lat - min_lat) if ((max_lon - min_lon) > 3 * delta_o) or ((max_lat - min_lat) > 3 * delta_a): print "<br/>changeset BBOX is too large<br/>" # go to next element continue comment = None created_by = None tags = elem.findall('tag') for t in tags: if t.attrib['k'] == 'comment': comment = t.attrib['v'] if t.attrib['k'] == 'created_by': created_by = t.attrib['v'] if comment: print "<br/>comment: %s" % comment if created_by: print "<br/>created_by: %s" % created_by print "<br/>" c = Changeset( key_name=str(id), id=id, created_at=created_at, user=user, comment=comment, created_by=created_by) print c print trim_to_tweet(c.comment)