import os
|
import random
|
import re
|
|
import setting
|
|
|
def replace_img_with_alt(html_text):
|
"""
|
将HTML中的所有<img>标签替换为其alt属性内容
|
如果没有alt属性,则替换为空字符串或指定默认值
|
"""
|
pattern = r'<img\b[^>]*\balt=(["\'])(.*?)\1[^>]*>|<img\b[^>]*>'
|
|
def replacement(match):
|
if match.group(2): # 如果匹配到alt属性
|
return match.group(2) # 返回alt属性内容
|
return '' # 没有alt属性则替换为空
|
|
return re.sub(pattern, replacement, html_text, flags=re.IGNORECASE).strip()
|
|
|
def get_like_conditions():
|
"""
|
获取点赞的条件
|
:return:[正则表达式,...]
|
"""
|
condition_str = setting.get_like_conditions()
|
return [x.split("#")[0] for x in condition_str.split("\n") if x]
|
|
|
def get_comment_templates():
|
"""
|
获取评论模版
|
:return:[(匹配的正则, 评论的内容)]
|
"""
|
condition_str = setting.get_comment_templates()
|
return [(x.split("#")[0], x.split("#")[1]) for x in condition_str.split("\n") if x]
|
|
|
def __get_common_emojis():
|
comment_emojis = setting.get_common_emojis()
|
if comment_emojis:
|
return re.findall("\[.*?\]", comment_emojis)
|
return []
|
|
|
def __load_content(content_template, nick_name, comment_content):
|
"""
|
加载内容
|
:param content_template:
|
:param nick_name:
|
:param comment_content:
|
:return:
|
"""
|
# 替换表情
|
pattern = r'【([\d-]+)】'
|
|
def replacement_emojis(match):
|
match_str = match.group(1)
|
if match_str:
|
start = 0
|
end = 0
|
if match_str.find("-") >= 0:
|
sts = match_str.split("-")
|
if sts[0]:
|
start = int(sts[0])
|
if sts[1]:
|
end = int(sts[1])
|
else:
|
start = int(match_str)
|
end = int(match_str)
|
if start == 0 and end == 0:
|
return ""
|
count = random.randint(start, end)
|
result_str = ""
|
common_emojis = __get_common_emojis()
|
for i in range(count):
|
result_str += common_emojis[random.randint(0, len(common_emojis) - 1)]
|
return result_str # 返回alt属性内容
|
return '' # 没有alt属性则替换为空
|
|
result = re.sub(pattern, replacement_emojis, content_template, flags=re.IGNORECASE).strip()
|
|
comment_emojis = re.findall(r"\[.*?\]", comment_content)
|
last_emoji = ""
|
if comment_emojis:
|
last_emoji = comment_emojis[-1]
|
# 替换昵称与原内容
|
result = result.replace("【昵称】", nick_name).replace("【内容】", comment_content).replace("【最后一个表情】", last_emoji)
|
# 替换最后一个表情
|
return result
|
|
|
def load_content(content_template, nick_name, comment_content):
|
"""
|
加载内容
|
:param content_template:
|
:param nick_name:
|
:param comment_content:
|
:return:
|
"""
|
# 替换表情
|
pattern = r'\{(.*?)\}'
|
|
def replacement_express(match):
|
match_str = match.group(1)
|
if match_str:
|
# 替换或者表达式
|
if match_str.find("|") >= 0:
|
sts = match_str.split("|")
|
return sts[random.randint(0, len(sts)-1)]
|
return match_str
|
return ''
|
|
result = re.sub(pattern, replacement_express, content_template, flags=re.IGNORECASE).strip()
|
# 替换最后一个表情
|
return __load_content(result, nick_name, comment_content)
|
|
|
if __name__ == "__main__":
|
print(os.getcwd())
|
st = "{是的,你的观点很赞|好吧[爱心]|谢谢[抱拳]|是的[强]|确实可能有些不对[裂开]}"
|
comment_emojis = load_content(st,"昵称","评论内容本身")
|
print(comment_emojis)
|