import re import json import os import time # 提取两个字符串之间的内容 def extract_string_between(source_string, start_string, end_string): start_index = source_string.find(start_string) + len(start_string) end_index = source_string.find(end_string) extracted_string = source_string[start_index:-37] return extracted_string # 去除多余的空格 def replace_multiple_spaces(string): pattern = r'\s+' replaced_string = re.sub(pattern, ' ', string) return replaced_string # 替换十六进制编码 def process_old_html(message): def replace_hex(match): hex_value = match.group(0) byte_value = bytes(hex_value, 'utf-8').decode('unicode_escape') return byte_value new_text = re.sub(r'\\x[0-9a-fA-F]{2}', replace_hex, message) start_string = "html:'" end_string = "',opuin" new_text = extract_string_between(new_text, start_string, end_string) new_text = replace_multiple_spaces(new_text).replace('\\', '') return new_text def show_author_info(): CYAN = '\033[36m' YELLOW = '\033[33m' BLUE = '\033[34m' RESET = '\033[0m' RED = '\033[31m' author_art = r''' ░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓███████▓▒░ ░▒▓███████▓▒░ ░▒▓██████▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓███████▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓███████▓▒░ ░▒▓███████▓▒░ ░▒▓████████▓▒░ ░▒▓████████▓▒░ ░▒▓███████▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░ ░▒▓████████▓▒░ ░▒▓█▓▒░ ░▒▓███████▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░░▒▓█▓▒░ ░▒▓█▓▒░ ''' print(CYAN + author_art + RESET) author_info = f"{YELLOW}bilibili{RESET} {BLUE}@高数带我飞{RESET} {YELLOW}GetQzonehistory V1.0{RESET}" print(author_info) print(f'{RED}程序完全免费,且在GitHub开源!!!!{RESET}') print(f'{RED}程序完全免费,且在GitHub开源!!!!{RESET}') print(f'{RED}程序完全免费,且在GitHub开源!!!!{RESET}') def get_html_template(): # HTML模板 html_template = """ QQ空间动态 {posts} """ # 生成每个动态的HTML内容 post_template = """
头像
{nickname}
{time}
{message}
{image}
{comments}
""" # 评论区HTML模板 comment_template = """
评论头像
{nickname}
{time}
{message}
""" return html_template, post_template, comment_template # 格式化时间 def format_timestamp(timestamp): time_struct = time.localtime(timestamp) formatted_time = time.strftime("%Y年%m月%d日 %H:%M:%S", time_struct) return formatted_time # 判断json是否合法 def is_valid_json(json_data): try: json_object = json.loads(json_data) # 尝试解析JSON数据 return True # 解析成功,是有效的JSON except ValueError as e: # 解析失败,捕获异常 print(e) return False # 解析失败,不是有效的JSON # 写入信息 def write_txt_file(workdir, file_name, data): if not os.path.exists(workdir): os.makedirs(workdir) base_path_file_name = os.path.join(workdir, file_name) with open(base_path_file_name, 'w', encoding='utf-8') as file: file.write(data) # 读取文件信息 def read_txt_file(workdir, file_name): base_path_file_name = os.path.join(workdir, file_name) if os.path.exists(base_path_file_name): with open(base_path_file_name, 'r', encoding='utf-8') as file: return file.read() return None # QQ空间表情替换 [em]xxx[/em] 为 def replace_em_to_img(match): # 获取匹配的 xxx 部分 emoji_code = match.group(1) return f'{emoji_code}' def get_content_from_split(content): content_split = str(content).split(":") return content_split[1].strip() if len(content_split) > 1 else content.strip() # 判断两个字符串是否相等 def is_any_mutual_exist(str1, str2): str1 = get_content_from_split(str1) str2 = get_content_from_split(str2) return str1 == str2