예제 #1
0
파일: update.py 프로젝트: alphazw/moedj
def cleanDeletedItemsByPrefix(prefix):
    items = rs.keys(prefix+"*")
    for item in items:
        title = item.partition(prefix)[2]
        if item_deleted(title.decode('utf-8')):
            logger.info('check deleted: %s, %s' % (prefix, title))
            rs.delete(item)
예제 #2
0
def cleanDeletedItemsByPrefix(prefix):
    items = rs.keys(prefix + "*")
    for item in items:
        title = item.partition(prefix)[2]
        if item_deleted(title.decode('utf-8')):
            logger.info('check deleted: %s, %s' % (prefix, title))
            rs.delete(item)
예제 #3
0
def verifyingKeyExpired(verifyingKey):
    expire_time = rs.zscore(VERIFYING_SET, verifyingKey)
    if not expire_time:
        logger.info("verifyingKey not in verifying keys set")
        return False

    if expire_time < time.time():
        return True
    return False
예제 #4
0
 def __init__(self):
     super(SendItem, self).__init__()
     prefix, self.ItemTobeSendKey = getItemTobeSend()
     if not self.ItemTobeSendKey:
         setattr(self, 'ItemTobeSend', None)
         logger.info("No item to be send")
         return None
     self.ItemTobeSend = self.ItemTobeSendKey.partition(prefix)[2]
     self.getWeiboApi()
예제 #5
0
파일: update.py 프로젝트: alphazw/moedj
 def updateRoutine(self):
     try:
         self.fetchNewItemGenerated(self.lastmins)
         self.filter_valid()
         self.storeValidItems()
         autoVerifyExpiredItems()
         cleanDeletedItems()
     except:
         logger.info(traceback.format_exc())
예제 #6
0
파일: update.py 프로젝트: alphazw/moedj
 def __init__(self):
     super(SendItem, self).__init__()
     prefix, self.ItemTobeSendKey = getItemTobeSend()
     if not self.ItemTobeSendKey:
         setattr(self, 'ItemTobeSend', None)
         logger.info("No item to be send")
         return None
     self.ItemTobeSend = self.ItemTobeSendKey.partition(prefix)[2]
     self.getWeiboApi()
예제 #7
0
 def updateRoutine(self):
     try:
         self.fetchNewItemGenerated(self.lastmins)
         self.filter_valid()
         self.storeValidItems()
         autoVerifyExpiredItems()
         cleanDeletedItems()
     except:
         logger.info(traceback.format_exc())
예제 #8
0
파일: update.py 프로젝트: alphazw/moedj
def filterRedirectedItems(that):
    url = queryRedirectUrl % that.encode("utf-8")
    r = requests.post(url)
    rjson = json.loads(r.text)
    try:
        logger.info("redirected item: %s" % rjson['query']['redirects'][0]['from'].encode('utf-8'))
        return False
    except KeyError:
        return True
예제 #9
0
파일: update.py 프로젝트: alphazw/moedj
def verifyingKeyExpired(verifyingKey):
    expire_time = rs.zscore(VERIFYING_SET, verifyingKey)
    if not expire_time:
        logger.info("verifyingKey not in verifying keys set")
        return False

    if expire_time < time.time():
        return True
    return False
예제 #10
0
def filterRedirectedItems(that):
    url = queryRedirectUrl % that.encode("utf-8")
    r = requests.post(url)
    rjson = json.loads(r.text)
    try:
        logger.info("redirected item: %s" %
                    rjson['query']['redirects'][0]['from'].encode('utf-8'))
        return False
    except KeyError:
        return True
예제 #11
0
파일: update.py 프로젝트: alphazw/moedj
    def storeValidItems(self):
        for item in self.edited_items:
            itemKey = EDITED + item
            rs.set(EDITED+item, item, EDITED_EXPIRE)
            msg = "插入旧词条更新:%s" % item.encode('utf-8')
            logger.info(msg)

        for item in self.new_items:
            rs.zadd(VERIFYING_SET, item, time.time()+VERIFYING_ZSET_SCORE)
            msg = "插入新创建词条:%s" % item.encode('utf-8')
            logger.info(msg)
예제 #12
0
파일: update.py 프로젝트: alphazw/moedj
 def sendRoutine(self):
     if not self.ItemTobeSend:
         return None
     try:
         self.prepare()
         self.send()
         logger.info("Sending: "+self.ItemTobeSend+" Succ")
     except:
         logger.info(traceback.format_exc())
     finally:
         self.postsend()
예제 #13
0
    def storeValidItems(self):
        for item in self.edited_items:
            itemKey = EDITED + item
            rs.set(EDITED + item, item, EDITED_EXPIRE)
            msg = "插入旧词条更新:%s" % item.encode('utf-8')
            logger.info(msg)

        for item in self.new_items:
            rs.zadd(VERIFYING_SET, item, time.time() + VERIFYING_ZSET_SCORE)
            msg = "插入新创建词条:%s" % item.encode('utf-8')
            logger.info(msg)
예제 #14
0
 def sendRoutine(self):
     if not self.ItemTobeSend:
         return None
     try:
         self.prepare()
         self.send()
         logger.info("Sending: " + self.ItemTobeSend + " Succ")
     except:
         logger.info(traceback.format_exc())
     finally:
         self.postsend()
예제 #15
0
파일: update.py 프로젝트: alphazw/moedj
 def fetchNewItemGenerated(self, mins):
     url_t = "http://zh.moegirl.org/api.php?format=json&action=query&list=recentchanges&rcstart=%s&rcend=%s&rcdir=newer&rcnamespace=0&rctoponly&rctype=edit|new"
     rcstart = calendar.timegm((utcnow() - datetime.timedelta(
         minutes=mins)).utctimetuple())
     rcend = calendar.timegm(utcnow().utctimetuple())
     url = url_t % (rcstart, rcend)
     print url
     r = requests.post(url)
     rjson = json.loads(r.text)
     self.rch = rjson['query']['recentchanges']
     self.new_items = [item['title'] for item in self.rch if item['type']
                       == 'new']
     self.edited_items = [item['title'] for item in self.rch if item['type']
                          != 'new']
     msg = ','.join([item['title'].encode('utf-8') for item in self.rch])
     if msg:
         msg = ('过去%d分钟更新的条目有:' % mins)+msg
     else:
         msg = "过去%d分钟没有条目更新" % mins
     logger.info(msg)
예제 #16
0
 def fetchNewItemGenerated(self, mins):
     url_t = "http://zh.moegirl.org/api.php?format=json&action=query&list=recentchanges&rcstart=%s&rcend=%s&rcdir=newer&rcnamespace=0&rctoponly&rctype=edit|new"
     rcstart = calendar.timegm(
         (utcnow() - datetime.timedelta(minutes=mins)).utctimetuple())
     rcend = calendar.timegm(utcnow().utctimetuple())
     url = url_t % (rcstart, rcend)
     print url
     r = requests.post(url)
     rjson = json.loads(r.text)
     self.rch = rjson['query']['recentchanges']
     self.new_items = [
         item['title'] for item in self.rch if item['type'] == 'new'
     ]
     self.edited_items = [
         item['title'] for item in self.rch if item['type'] != 'new'
     ]
     msg = ','.join([item['title'].encode('utf-8') for item in self.rch])
     if msg:
         msg = ('过去%d分钟更新的条目有:' % mins) + msg
     else:
         msg = "过去%d分钟没有条目更新" % mins
     logger.info(msg)
예제 #17
0
파일: mptask.py 프로젝트: alphazw/moedj
def nighttest():
    logger.info("nighttest")
예제 #18
0
파일: mptask.py 프로젝트: alphazw/moedj
def justtest():
    logger.info("justtest")
예제 #19
0
파일: update.py 프로젝트: alphazw/moedj
 def send(self):
     try:
         self.weiboApi.send(self.weibo_content, self.weibo_link, self.img)
     except APIError as e:
         if 'expired_token' in e:
             logger.info("Sina Weibo Token已到期,请重新授权")
예제 #20
0
 def send(self):
     try:
         self.weiboApi.send(self.weibo_content, self.weibo_link, self.img)
     except APIError as e:
         if 'expired_token' in e:
             logger.info("Sina Weibo Token已到期,请重新授权")