newrechaTVBOX/cat/tjs/lib/quark_object.js
2024-08-25 20:54:27 +08:00

98 lines
3.3 KiB
JavaScript

/**
* File: h:\PycharmProjects\Github\TVSpider\lib\quark_object.js
* Project: h:\PycharmProjects\Github\TVSpider
* Created Date: Monday, May 20th 2024, 5:26:45 pm
* Author: jade
* -----
* Last Modified: Tue May 21 2024
* Modified By: jade
* -----
* Copyright (c) 2024 samples
* ------------------------------------
* Javascript will save your soul!
*/
import {_} from "../lib/cat.js";
import * as Utils from "./utils.js";
class Item {
constructor() {
this.fileId = "";
this.shareId = ""
this.shareToken = "";
this.shareFileToken = ""
this.seriesId = ""
this.name = "";
this.type = "";
this.formatType = "";
this.size = "";
this.parent = "";
this.shareData = null;
this.shareIndex = 0;
this.lastUpdateAt = 0
}
static objectFrom(item_json, shareId,shareIndex) {
let item = new Item();
item.fileId = typeof item_json.fid == undefined ? "" : item_json.fid;
item.shareId = shareId
item.shareToken = typeof item_json.stoken == undefined ? "" : item_json.stoken;
item.shareFileToken = typeof item_json.share_fid_token == undefined ? "" : item_json.share_fid_token;
item.seriesId = typeof item_json.series_id == undefined? "":item_json.series_id
item.name = typeof item_json.file_name == undefined ? "" : item_json.file_name;
item.type = typeof item_json.obj_category == undefined ? "" : item_json.obj_category;
item.formatType = typeof item_json.format_type == undefined? "" : item_json.format_type;
item.size = typeof item_json.size == undefined ? "" : item_json.size;
item.parent = typeof item_json.pdir_fid == undefined ? "" : item_json.pdir_fid;
item.lastUpdateAt = typeof item_json.last_update_at == undefined ? "" : item_json.last_update_at
item.shareIndex = shareIndex
return item;
}
getFileExtension(){
return this.name.split(".").slice(-1)[0]
}
getFileId() {
return _.isEmpty(this.fileId) ? "" : this.fileId
}
getName() {
return _.isEmpty(this.name) ? "" : this.name;
}
getParent() {
return _.isEmpty(this.parent) ? "" : "[" + this.parent + "]";
}
getSize() {
return this.size === 0 ? "" : "[" + Utils.getSize(this.size) + "]";
}
getShareIndex(){
return this.shareIndex
}
getDisplayName(type_name) {
let name = this.getName();
if (type_name === "电视剧") {
let replaceNameList = ["4k", "4K"]
name = name.replaceAll("." + this.getFileExtension(), "")
name = name.replaceAll(" ", "").replaceAll(" ", "")
for (const replaceName of replaceNameList) {
name = name.replaceAll(replaceName, "")
}
name = Utils.getStrByRegexDefault(/\.S01E(.*?)\./, name)
const numbers = name.match(/\d+/g);
if (!_.isEmpty(numbers) && numbers.length > 0) {
name = numbers[0]
}
}
return name + " " + this.getSize();
}
getEpisodeUrl(type_name){
return this.getDisplayName(type_name) + "$" + this.getFileId() + "++" + this.shareFileToken + "++" + this.shareId + "++" + this.shareToken
}
}
export {Item}