コード例 #1
0
 def checkTweetId(a, ad):
     if a[:1] == '#':
         ta = a[1:]
         if not ta.isdecimal():
             return None
         res = mintweetID.find(lambda item, val: item[1] == val, int(ta))
         if res == None:
             return None
         return res[0]
     elif a.isdecimal() and int(a) > 1253881609540800000:
         return a
     else:
         res = decode_b64(a)
         if res == -1:
             return None
         return res
コード例 #2
0
    def tweetToStr(self,
                   tweetinfo,
                   nick,
                   upimg=config.pushunit_default_config['upimg'],
                   template_text=''):
        if nick == '':
            if tweetinfo['user']['name']:
                nick = tweetinfo['user']['name']
            else:
                nick = tweetinfo['user']['screen_name']
        temptweetID = mintweetID.find(lambda item, val: item[0] == val,
                                      tweetinfo['id'])
        #模版变量初始化
        template_value = {
            'tweet_id':
            tweetinfo['id_str'],  #推特ID
            'tweet_id_min':
            encode_b64(tweetinfo['id']),  #压缩推特id
            'tweet_id_temp': ('未生成' if temptweetID == None else
                              ('#' + str(temptweetID[1]))),  #临时推特id
            'tweet_nick':
            nick,  #操作人昵称
            'tweet_user_id':
            tweetinfo['user']['screen_name'],  #操作人ID
            'tweet_text':
            tweetinfo['text'],  #发送推特的完整内容
            'related_user_id':
            '当前模式不支持',  #关联用户ID
            'related_user_name':
            '当前模式不支持',  #关联用户昵称-昵称-昵称查询不到时为ID(被评论/被转发/被提及)
            'related_tweet_id':
            '当前模式不支持',  #关联推特ID(被评论/被转发)
            'related_tweet_id_min':
            '当前模式不支持',  #关联推特ID的压缩(被评论/被转发)
            'related_tweet_text':
            '当前模式不支持',  #关联推特内容(被转发或被转发并评论时存在)
            'media_img':
            '',  #媒体
        }

        #组装图片
        if upimg == 1:
            if 'extended_entities' in tweetinfo:
                mis = ''
                for media_unit in tweetinfo['extended_entities']:
                    #组装CQ码
                    #file_suffix = os.path.splitext(media_unit['media_url'])[1]
                    #s = s + '[CQ:image,timeout='+config.img_time_out+',file='+config.img_path+'tweet/' + media_unit['id_str'] + file_suffix + ']'
                    mis = mis + '[CQ:image,timeout=' + str(
                        config.img_time_out) + ',file=' + media_unit + ']'
                if mis != '':
                    mis = "\n媒体:" + str(len(
                        tweetinfo['extended_entities'])) + "个\n" + mis
            template_value['media_img'] = mis
        #生成模版类
        s = ""
        t = None
        if template_text == '':
            #默认模版
            if tweetinfo['type'] == 'none':
                deftemplate_none = "推特ID:$tweet_id_min,【$tweet_nick】发布了:\n$tweet_text\n$media_img\nhttps://twitter.com/$tweet_user_id/status/$tweet_id"
                deftemplate_none = deftemplate_none + "\n临时推文ID:$tweet_id_temp"
                t = tweetToStrTemplate(deftemplate_none)
            elif tweetinfo['type'] == 'retweet':
                deftemplate_another = "推特ID:$tweet_id_min,【$tweet_nick】转了推文:\n$tweet_text\n$media_img\nhttps://twitter.com/$tweet_user_id/status/$tweet_id"
                deftemplate_another = deftemplate_another + "\n临时推文ID:$tweet_id_temp"
                t = tweetToStrTemplate(deftemplate_another)
            elif tweetinfo['type'] == 'quoted':
                deftemplate_another = "推特ID:$tweet_id_min,【$tweet_nick】转发并评论了推文:\n$tweet_text\n====================\n$related_tweet_text\n$media_img\nhttps://twitter.com/$tweet_user_id/status/$tweet_id"
                deftemplate_another = deftemplate_another + "\n临时推文ID:$tweet_id_temp"
                t = tweetToStrTemplate(deftemplate_another)
            else:
                deftemplate_another = "推特ID:$tweet_id_min,【$tweet_nick】回复了推文:\n$tweet_text\n$media_img\nhttps://twitter.com/$tweet_user_id/status/$tweet_id"
                deftemplate_another = deftemplate_another + "\n临时推文ID:$tweet_id_temp"
                t = tweetToStrTemplate(deftemplate_another)
        else:
            #自定义模版
            template_text = template_text.replace("\\n", "\n")
            t = tweetToStrTemplate(template_text)

        #转换为字符串
        s = t.safe_substitute(template_value)
        return s