👀v0.2.3,添加3个配置项目,展览详情支持发送活动介绍栏目内容

This commit is contained in:
2024-08-30 16:48:14 +08:00
parent ffc28c98f5
commit 32f067c33a
8 changed files with 79 additions and 9 deletions

View File

@ -1,4 +1,5 @@
import os
import re
import random
import datetime
import json
@ -19,10 +20,57 @@ def choose_random_bgimage() -> str:
def convert_timestamp(timestamp) -> str:
"""
将时间戳转换为日期格式
:param timestamp: unix 时间戳
:return: yyyy-mm-dd hh:mm:ss时间
"""
return datetime.datetime.fromtimestamp(timestamp).strftime("%Y-%m-%d %H:%M:%S")
def extract_banner_url(value) -> str:
a = json.loads(value)
url = "https:"+a["banner"]["url"]
return url
return url
def add_https_to_urls(html_content):
"""
为 HTML 内容中的缺失 https: 前缀的 URL 添加 https: 前缀
:param html_content: 包含 HTML 的字符串
:return: 修正后的 HTML 字符串
"""
# 使用正则表达式查找所有以 "//" 开头的 URL
updated_html_content = re.sub(r'(?<=src=["\'])//', 'https://', html_content)
return updated_html_content
def split_html_into_fragments(html_content):
"""
将 HTML 内容按照元素分割成多个片段,并存储在列表中
:param html_content: 包含 HTML 的字符串
:return: 存储 HTML 片段的列表
"""
# 使用正则表达式匹配 HTML 标签及其内容
pattern = re.compile(r'(<[^>]+>[^<]*<\/[^>]+>|<[^>]+\/>|<[^>]+>)')
fragments = pattern.findall(html_content)
return fragments
def join_fragments_in_groups(fragments, image_count=2):
"""
:param fragments: 存储 HTML 片段的列表
:param image_count: 每个组包含的图片数量默认为2
:return: 拼接后的 HTML 列表
"""
grouped_html = []
count = 0
buffer = ""
for group in fragments:
buffer += group
if "img" in group:
count += 1 # 发现图片则计数器+1
if count >= image_count:
grouped_html.append(buffer)
count = 0
buffer = "" # 初始化计数器和缓冲区
grouped_html.append(buffer)# 把缓冲区剩余内容一起添加
return grouped_html