jellyfin手动修正标题为文件(夹)名

jellyfin的逻辑是根据网络刮削器自动命名媒体的,但有时候会出错,需要自己修改文件名配合程序,但我不想用这个东西,又关不掉。只能想办法自己修正数据了,还好它用的就是普通是sqlite来存媒体库数据

import sqlite;
import console;
import fsys;
import fsys.config;
import process;

console.open();
//读取配置文件
var cfgPath = io.fullpath("./configs");
var cfg = fsys.config(cfgPath)
//结束jellyfin进程
process.kill("jellyfin.exe");

//打开数据库连接
var db = sqlite(cfg.config.dataBaseFilePath);

//查 - 返回数据表
var dataTable = db.getTable("SELECT `guid`,`Path`,`Name` FROM [TypedBaseItems] WHERE `Path` is not null and `type` != 'MediaBrowser.Controller.Entities.CollectionFolder' ")
for(k,v in dataTable){
	if(k=="fields") continue;
	
	var fileName = fsys.getFileName(v["Path"]);
	if(fileName == v["Name"]) continue;
	console.log(k);
	db.exec("UPDATE TypedBaseItems SET Name = @name, CleanName=@name WHERE guid = @guid;",{
		name = fileName;
		guid = v["guid"];
	});
}
 
db.close()
process.execute(cfg.config.jellyfinPath,cfg.config.params);
//execute("pause")

因为sqlite自带的sql函数处理字符串太弱了,根本没办法在sql内部解决问题,所以只能循环处理每一条数据了,效率太低 有点糟心。
代码是用aardio编译的,通过配置文件指定数据库路径,看不懂的请自行翻译成python,应该会更好适配各种情况

posted @   鱼肉真好吃  阅读(4866)  评论(0编辑  收藏  举报
编辑推荐:
· Java 中堆内存和栈内存上的数据分布和特点
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
阅读排行:
· 本地部署 DeepSeek:小白也能轻松搞定!
· 如何给本地部署的DeepSeek投喂数据,让他更懂你
· 从 Windows Forms 到微服务的经验教训
· 李飞飞的50美金比肩DeepSeek把CEO忽悠瘸了,倒霉的却是程序员
· 超详细,DeepSeek 接入PyCharm实现AI编程!(支持本地部署DeepSeek及官方Dee
点击右上角即可分享
微信分享提示