标签 Python 下的文章

将 typecho 的博客文章下载至本地

如题,这是本人的亲身经历

不废话了,直接开车

走人

正文

下载 typecho_contents 数据库为 SQL 文件

typecho_contents 主要包含一些文章内容、附件等等

所以我们需要下载他
2026-01-21-23-33-11-image.png

如图是使用 phpmyadmin 来导出 typecho_contents 中的记录

导出后,你会得到一个 SQL 文件

你成功了

删除你的 SQL 文件没用的东西

首先,手动打开你的 SQL 文件,找到这个并把下面这部分的内容给复制出来

--
-- 转存表中的数据 `typecho_contents`
--
INSERT INTO `typecho_contents` (`cid`, `title`, `slug`, `created`, `modified`, `text`, `order`, `authorId`, `template`, `type`, `status`, `password`, `commentsNum`, `allowComment`, `allowPing`, `allowFeed`, `parent`, `views`, `stars`) VALUES

复制这里的东西

--
-- 转储表的索引
--

单独把他保存到一个 txt 文件中

然后打开 ./assets/0_clear_nottidy.py,介绍一下,清理 png jpg pdf jpeg 在第二字段所包含的行,其他保留

你需要手动填写两个内容:

  • input_file_path 设置为你的 txt 文件路径,注意一定要有 R,是用来转义的,要用双引号包裹路径
  • output_file_path 设置为你的导出后 txt 文件路径,就是处理后的文件路径,同上

然后使用 python 直接运行,即可完成操作

恭喜你,删除完成,你可以手动浏览一下

从 SQL 文件中分类保存文章至文件夹

打开 ./assets/1_download_md.py,还是简单介绍一下,读取文章名称和时间戳和文章内容,在你所指定的目录下,新建 YYYYMMDD - title 的文件夹,即时间戳对应的年月日加上对应的文章名称,然后在文件夹里面新建 title.md 作为文章的主内容

你需要手动填写:

  • INPUT_FILE:上一次导出的 txt 文件路径,同上

然后还是使用 python 直接运行,即可完成操作

警告:导出后的文件将被保存在 C:/Users/<USER_NAME>/ 下

你可以手动观察一下,你会发现导出的 md 特别变态,所以接下来,我们就要处理换行符的问题 + 图片资源

保存图像附件和处理换行

打开 ./assets/2_make_image_rn_to_n.py,还是简单介绍一下,从 md 里面读取 ![]() 的格式,将 () 下载保存到当前文件夹的 assets 目录里头,然后将 \\r\\n 替换为 \n(不理解这句话内容的自行上网搜索)

你需要手动填写:

  • TARGET_DIR:设置上一次导出文章目录的目录(?)
  • download_url:但是你只需要修改我的 http://www.tropical-fish.cn 部分,修改为你的下载域名,不要加斜杠!!!

然后,你懂的

然后,你就会发现,换行好了,图片资源也被正确保存在了对应的 assets 目录下

你好牛逼啊!!!

处理开头的小插曲

打开 ./assets/3_kill_markdown.py,还是简单减少一下,删除 <!--markdown--> ,没了

你需要手动填写:

  • TARGET_DIR:你上一次导出文章的的目录的目录(?)

然后,你懂的

然后,你完成了

处理完成

资源下载

20260211 - 将 typecho 的博客文章下载至本地 - assets.zip - huang1111网盘

推荐一个 Markdown 编辑器 —— $\text{MarkText}$

众所周知

在某个奇怪的版本更新后,openlist(alist)不再支持设置用户为管理员,但是,不代表我们不能设置管理员

正文

偶然之间,我翻 openlist 文件的时候,发现了一个文件
image.png
那么,我们是不是可以通过这个数据库来修改一个用户为管理员捏?

开始操作

警告:Windows 需要先安装 Python,Linux 需要使用 apt install python3 && apt install pip 来安装 Python

进入终端

然后 cd 到 data 文件夹的位置(如果 Windows 不在当前盘符需要先键入盘符,前面不需要加任何内容,进入这个盘符,才能 cd 进入这个盘符的目录)

然后进入 python ,使用 python 或 python3

然后,依次键入以下命令

import sqlite3
conn = sqlite3.connect('data.db')
cur = conn.cursor()

恭喜你,已经成功连接数据库

然后,开始设置管理员

cur.execute("UPDATE x\_users SET role = 2 WHERE username = 'DHEnry';")
conn.commit()

将 DHEnry 设置为需要设置管理员的用户名(不是用户 ID)

然后,你就修改成功了

项目地址

DHEnry-FMCRAFT/websocket-chat: 来自AI编写的websocket版的聊天程序

💬 WebSocket 聊天室应用

一个基于 WebSocket 的实时聊天室应用,支持多频道聊天、管理员功能和用户管理。

🚀 功能特性

👥 用户功能

  • 🆓 自动用户名分配 - 首次进入自动生成5位随机用户名
  • 🔄 多频道切换 - 支持在多个频道间自由切换
  • 👀 用户列表查看 - 查看指定频道的在线用户
  • 💬 实时消息收发 - 基于 WebSocket 的实时通信
  • 🎨 彩色消息显示 - 不同类型消息使用不同颜色区分

⚡ 管理员功能

  • 🔐 管理员认证 - 使用密码验证管理员身份
  • 👮 用户管理 - 踢出用户、断开用户连接
  • 📢 频道管理 - 清退频道、关闭频道
  • 👁️ 全服监控 - 查看全服在线用户
  • 📩 私信功能 - 向指定用户发送私信

🛠️ 技术栈

  • 后端: Python + asyncio + websockets
  • 前端: 纯 Python 命令行客户端
  • 通信: WebSocket + JSON
  • 安全: SHA-256 密码哈希

📦 安装与运行

1. 克隆项目

git clone https://github.com/DHEnry-FMCRAFT/websocket-chat
cd websocket-chat

2. 安装依赖

pip install websockets

3. 配置服务器的允许频道

请编辑server.py中的ALLOWED_CHANNELS数组,逗号分隔,引号包裹允许的频道,注意允许的频道一定要包含public

4. 配置服务器管理员密码HASH

请编辑hash.py中的test_string变量,为初始密码,然后使用以下代码运行

python hash.py

然后将生成后的hash设置为server.py中的ADMIN_PASSWORD_HASH变量的值,然后保存server.py

5. 启动服务器

python server.py

服务器默认监听 0.0.0.0:8765,允许的频道:public、1、2、3

6. 启动客户端

python client.py

🎯 使用指南

基本命令

命令功能示例
::login [用户名]设置用户名::login Alice
::choose [频道ID]切换频道::choose 2
::list [频道ID]查看频道用户::list 1
exit / quit退出聊天exit

管理员命令

命令功能示例
::lists查看全服用户::lists
::say [频道] [用户] [消息]发送私信::say 1 Bob "Hello"
::kicks [频道] [用户] [理由]踢出用户::kicks 1 Bob "违规发言"
::kick [频道] [理由]清退频道::kick 1 "频道维护"
::closes [频道] [用户] [理由]断开用户::closes 1 Bob "多次违规"
::close [频道] [理由]关闭频道::close 1 "封禁频道"

🔒 管理员登录

要使用管理员功能,请使用用户名 administrator 登录,系统会提示输入密码。

⚙️ 配置说明

当前默认EXAMPLE服务器配置

  • 默认端口: 8765
  • 允许频道: public, 1, 2, 3
  • 管理员密码哈希: 在 server.py 中配置

客户端配置

  • 调试模式: 修改 DEBUG 变量切换默认服务器地址,1为使用localhost:8765,用于本地调试server.py,0为需要用户自行输入服务器地址
  • 消息颜色: 不同类型消息使用不同颜色标识

🐛 故障排除

常见问题

  1. 连接被拒绝 - 确保服务器已启动且地址正确
  2. 用户名已存在 - 更换用户名或切换到其他频道
  3. 频道不允许 - 只允许使用预定义的频道ID

日志查看

服务器会在控制台输出运行状态和错误信息,客户端会显示连接状态和错误提示。

📝 开发说明

项目结构

websocket-chat/
├── server.py          # 服务器主程序
├── client.py          # 客户端主程序
└── README.md          # 项目说明

来源

这个项目其实是 $Deepseek \times Doubao$ 一起写出来的(乱用LaTex),也是有很多的BUG,但也是在我的命令下写出来的

这个项目最终会放到 $FMCRAFT$

历程

2025年10月1日 PR V1.0 Release V1.0 · DHEnry-FMCRAFT/websocket-chat V1.0

已知BUG

  • 登录时直接进入频道会导致无法发送消息,需要先自定义一个用户名

感谢AI