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
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