标签:手动 db 标题 fsys var import guid config 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,应该会更好适配各种情况
标签:手动,db,标题,fsys,var,import,guid,config,jellyfin 来源: https://www.cnblogs.com/toumingbai/p/15514526.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。