zoukankan      html  css  js  c++  java
  • 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,应该会更好适配各种情况

  • 相关阅读:
    JS随笔
    tp5 redis 单例模式 转载
    分享我编程工作经历及对软件开发前景的看法
    redis详解(一)-- 概述
    redis详解(二)-- 数据类型详解
    redis详解(四)-- 高可用分布式集群
    redis详解(三)
    新工科平台
    关于Nginx的负载均衡
    微信退款回调
  • 原文地址:https://www.cnblogs.com/toumingbai/p/15514526.html
Copyright © 2011-2022 走看看