def advance(self):
        feed_info = get_feed_info_from_feed_url(self.feed_url)

        if self.position == len(feed_info.item_ids):
            # TODO(mihaip): insert some kind of "you're done" notification into
            # the stream?
            return

        item_id = feed_info.item_ids[self.position]

        # This API seems to fail most often (about one occurrence a day), so
        # it's worth retrying inline.
        retry_count = 0
        while True:
          try:
            googlereader.edit_item_tags(
                item_id,
                origin_stream_id='feed/%s' % self.feed_url,
                add_tags=[self.reader_stream_id])
            break
          except:
            retry_count += 1
            if retry_count == 5:
              logging.error('Could not advance subscription ID %s, '
                  'too many Google Reader API failures' % self.id)
              return

        self.position += 1
        self.save()
dataset/ETHPy150Open mihaip/streamspigot/app/feedplayback/data.py/Subscription.advance/original