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,應該會更好適配各種情況


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM