正在观看

const pages = dv.pages('"2.Read/douban" or "2.Read/media-DB"')
    .where(p => p.state && String(p.state).includes("正在观看"))
    .sort(p => p["添加时间"], 'desc');
 
function renderCover(cover) {
    if (!cover) return "";
    const s = String(cover);
    if (s.startsWith("http://") || s.startsWith("https://")) return `<img src="${s}" width="100"/>`;
    const file = app.vault.getAbstractFileByPath(s);
    if (file) return `<img src="${app.vault.getResourcePath(file)}" width="100"/>`;
    const m = s.match(/\[\[(.+?)(\|.*)?\]\]/);
    if (m) { const f = app.metadataCache.getFirstLinkpathDest(m[1], ""); if (f) return `<img src="${app.vault.getResourcePath(f)}" width="100"/>`; }
    return s;
}
 
dv.table(
["list","封面","star","score","myRate","originalTitle","aliases","genre","datePublished","director","state","country"],
    pages.map(p => [
    p.file.link, 
    renderCover(p["封面"]),
    "star:"+p.scoreStar, 
    "score:"+p.score, 
    "myRate:"+p.myRate, 
    "originalTitle:"+p.originalTitle, 
    "aliases:"+p.aliases, 
    "genre:"+p.genre, 
    "datePublished:"+p.datePublished, 
    "director:"+p.director, 
    "state:"+p.state, 
    "country:"+p.country]));

待看

const pages = dv.pages('"2.Read/douban" or "2.Read/media-DB"')
    .where(p => p.state && String(p.state).includes("待看"))
    .sort(p => p["添加时间"], 'desc');
 
function renderCover(cover) {
    if (!cover) return "";
    const s = String(cover);
    if (s.startsWith("http://") || s.startsWith("https://")) return `<img src="${s}" width="100"/>`;
    const file = app.vault.getAbstractFileByPath(s);
    if (file) return `<img src="${app.vault.getResourcePath(file)}" width="100"/>`;
    const m = s.match(/\[\[(.+?)(\|.*)?\]\]/);
    if (m) { const f = app.metadataCache.getFirstLinkpathDest(m[1], ""); if (f) return `<img src="${app.vault.getResourcePath(f)}" width="100"/>`; }
    return s;
}
 
dv.table(
["list","封面","star","score","myRate","originalTitle","aliases","genre","datePublished","director","state","country"],
    pages.map(p => [
    p.file.link, 
    renderCover(p["封面"]),
    "star:"+p.scoreStar, 
    "score:"+p.score, 
    "myRate:"+p.myRate, 
    "originalTitle:"+p.originalTitle, 
    "aliases:"+p.aliases, 
    "genre:"+p.genre, 
    "datePublished:"+p.datePublished, 
    "director:"+p.director, 
    "state:"+p.state, 
    "country:"+p.country]));

已看

const pages = dv.pages('"2.Read/douban" or "2.Read/media-DB"')
    .where(p => p.state && String(p.state).includes("已看") && p.file.tags.includes("#movies"))
    .sort(p => p["添加时间"], 'desc');
 
function renderCover(cover) {
    if (!cover) return "";
    const s = String(cover);
    if (s.startsWith("http://") || s.startsWith("https://")) return `<img src="${s}" width="100"/>`;
    const file = app.vault.getAbstractFileByPath(s);
    if (file) return `<img src="${app.vault.getResourcePath(file)}" width="100"/>`;
    const m = s.match(/\[\[(.+?)(\|.*)?\]\]/);
    if (m) { const f = app.metadataCache.getFirstLinkpathDest(m[1], ""); if (f) return `<img src="${app.vault.getResourcePath(f)}" width="100"/>`; }
    return s;
}
 
dv.table(
["list","封面","star","score","myRate","originalTitle","aliases","genre","datePublished","director","state","country"],
    pages.map(p => [
    p.file.link, 
    renderCover(p["封面"]),
    "star:"+p.scoreStar, 
    "score:"+p.score, 
    "myRate:"+p.myRate, 
    "originalTitle:"+p.originalTitle, 
    "aliases:"+p.aliases, 
    "genre:"+p.genre, 
    "datePublished:"+p.datePublished, 
    "director:"+p.director, 
    "state:"+p.state, 
    "country:"+p.country]));