Esempio n. 1
0
def update(c = 0):
    user = User.objects.get(id = settings.FOR_USER_ID)
    if c:
        items = FlowItem.objects.get_for_user(user,Message)
        for item in items:
            if item.object:
                item.object.delete()
            item.delete()
    last_update_date = FlowItem.objects.get_last_update_of_model(Message,interactive = False)
    log.debug("Last update date: %s", last_update_date)
    
    page = 1
    go = True
    while go:
        go    = False
        xml   = utils.getxml(RECENT_STATUSES_URL % (settings.TWITTER_USERNAME,page))
        page += 1
        for status in xml.getiterator("item"):
            message      = status.find('title')
            message_text = smart_unicode(message.text)
            url          = smart_unicode(status.find('link').text)

            # pubDate delivered as UTC
            timestamp    = dateutil.parser.parse(status.find('pubDate').text)
            if settings.FLOWREPO_ADJUST_DATETIME:
                timestamp = utils.utc_to_local_datetime(timestamp)
            
            if Message.objects.filter(url = url):
                go = False
                break
                
            _handle_status(message_text, url, timestamp, user)
            go = True
Esempio n. 2
0
 def __call__(self, **params):
     # Enforce Yahoo's "no calls quicker than every 1 second" rule
     delta = time.time() - DeliciousClient.lastcall
     if delta < 2:
         time.sleep(2 - delta)
     DeliciousClient.lastcall = time.time()
     url = ('%s%s?' % (self._deliciousApiHost,self.method)) + urllib.urlencode(params)     
     return utils.getxml(url, username=self.username, password=self.password)