From 344c1ebf6c7e20696063ca73b4a6701e226ec7ea Mon Sep 17 00:00:00 2001 From: mProjectsCode Date: Wed, 18 May 2022 22:22:11 +0200 Subject: [PATCH] Tags --- src/api/apis/MusicBrainzAPI.ts | 5 +++-- src/models/GameModel.ts | 7 ++++++- src/models/MediaTypeModel.ts | 2 ++ src/models/MovieModel.ts | 7 ++++++- src/models/MusicReleaseModel.ts | 7 ++++++- src/models/SeriesModel.ts | 7 ++++++- src/models/WikiModel.ts | 7 ++++++- src/utils/Utils.ts | 4 ++++ 8 files changed, 39 insertions(+), 7 deletions(-) diff --git a/src/api/apis/MusicBrainzAPI.ts b/src/api/apis/MusicBrainzAPI.ts index 0cd899c..91f9d55 100644 --- a/src/api/apis/MusicBrainzAPI.ts +++ b/src/api/apis/MusicBrainzAPI.ts @@ -3,6 +3,7 @@ import {MediaTypeModel} from '../../models/MediaTypeModel'; import MediaDbPlugin from '../../main'; import {requestUrl} from 'obsidian'; import {MusicReleaseModel} from '../../models/MusicReleaseModel'; +import {contactEmail, pluginName} from '../../utils/Utils'; // import {MusicBrainzApi} from 'musicbrainz-api'; // WIP @@ -27,7 +28,7 @@ export class MusicBrainzAPI extends APIModel { const fetchData = await requestUrl({ url: searchUrl, headers: { - 'User-Agent': 'obsidian-media-db-plugin/0.1.7 ( m.projects.code@gmail.com )', + 'User-Agent': `${pluginName}/0.1.7 (${contactEmail})`, }, }); @@ -68,7 +69,7 @@ export class MusicBrainzAPI extends APIModel { const fetchData = await requestUrl({ url: searchUrl, headers: { - 'User-Agent': 'MyAwesomeTagger/1.2.0 ( me@example.com )', + 'User-Agent': `${pluginName}/0.1.7 (${contactEmail})`, }, }); diff --git a/src/models/GameModel.ts b/src/models/GameModel.ts index 7740bae..8a807ba 100644 --- a/src/models/GameModel.ts +++ b/src/models/GameModel.ts @@ -1,5 +1,6 @@ import {MediaTypeModel} from './MediaTypeModel'; import {stringifyYaml} from 'obsidian'; +import {mediaDbTag} from '../utils/Utils'; export class GameModel extends MediaTypeModel { @@ -29,11 +30,15 @@ export class GameModel extends MediaTypeModel { } toMetaData(): string { - return stringifyYaml(this); + return stringifyYaml({...this, tags: '#' + this.getTags().join('/')}); } getFileName(): string { return this.title + (this.year ? ` (${this.year})` : ''); } + getTags(): string[] { + return [mediaDbTag, 'game']; + } + } diff --git a/src/models/MediaTypeModel.ts b/src/models/MediaTypeModel.ts index 9f6c9f1..4963fb5 100644 --- a/src/models/MediaTypeModel.ts +++ b/src/models/MediaTypeModel.ts @@ -10,4 +10,6 @@ export abstract class MediaTypeModel { abstract toMetaData(): string; abstract getFileName(): string; + + abstract getTags(): string[]; } diff --git a/src/models/MovieModel.ts b/src/models/MovieModel.ts index 6b54613..e0ff845 100644 --- a/src/models/MovieModel.ts +++ b/src/models/MovieModel.ts @@ -1,5 +1,6 @@ import {MediaTypeModel} from './MediaTypeModel'; import {stringifyYaml} from 'obsidian'; +import {mediaDbTag} from '../utils/Utils'; export class MovieModel extends MediaTypeModel { @@ -32,11 +33,15 @@ export class MovieModel extends MediaTypeModel { } toMetaData(): string { - return stringifyYaml(this); + return stringifyYaml({...this, tags: '#' + this.getTags().join('/')}); } getFileName(): string { return this.title + (this.year ? ` (${this.year})` : ''); } + getTags(): string[] { + return [mediaDbTag, 'tv', 'movie']; + } + } diff --git a/src/models/MusicReleaseModel.ts b/src/models/MusicReleaseModel.ts index 46a2505..2561cf0 100644 --- a/src/models/MusicReleaseModel.ts +++ b/src/models/MusicReleaseModel.ts @@ -1,5 +1,6 @@ import {MediaTypeModel} from './MediaTypeModel'; import {stringifyYaml} from 'obsidian'; +import {mediaDbTag} from '../utils/Utils'; export class MusicReleaseModel extends MediaTypeModel { @@ -25,11 +26,15 @@ export class MusicReleaseModel extends MediaTypeModel { } toMetaData(): string { - return stringifyYaml(this); + return stringifyYaml({...this, tags: '#' + this.getTags().join('/')}); } getFileName(): string { return this.title + ' (' + this.artists.join(', ') + ' - ' + this.year + ' - ' + this.subType + ')'; } + getTags(): string[] { + return [mediaDbTag, 'music', 'album']; + } + } diff --git a/src/models/SeriesModel.ts b/src/models/SeriesModel.ts index 7fc4a17..205d51a 100644 --- a/src/models/SeriesModel.ts +++ b/src/models/SeriesModel.ts @@ -1,5 +1,6 @@ import {MediaTypeModel} from './MediaTypeModel'; import {stringifyYaml} from 'obsidian'; +import {mediaDbTag} from '../utils/Utils'; export class SeriesModel extends MediaTypeModel { @@ -35,11 +36,15 @@ export class SeriesModel extends MediaTypeModel { } toMetaData(): string { - return stringifyYaml(this); + return stringifyYaml({...this, tags: '#' + this.getTags().join('/')}); } getFileName(): string { return this.title + ' (' + this.year + ')'; } + getTags(): string[] { + return [mediaDbTag, 'tv', 'series']; + } + } diff --git a/src/models/WikiModel.ts b/src/models/WikiModel.ts index b97eac8..cf5dea5 100644 --- a/src/models/WikiModel.ts +++ b/src/models/WikiModel.ts @@ -1,5 +1,6 @@ import {MediaTypeModel} from './MediaTypeModel'; import {stringifyYaml} from 'obsidian'; +import {mediaDbTag} from '../utils/Utils'; export class WikiModel extends MediaTypeModel { @@ -23,11 +24,15 @@ export class WikiModel extends MediaTypeModel { } toMetaData(): string { - return stringifyYaml(this); + return stringifyYaml({...this, tags: '#' + this.getTags().join('/')}); } getFileName(): string { return this.title; } + getTags(): string[] { + return [mediaDbTag, 'wiki']; + } + } diff --git a/src/utils/Utils.ts b/src/utils/Utils.ts index 45b66c4..a9ee779 100644 --- a/src/utils/Utils.ts +++ b/src/utils/Utils.ts @@ -79,3 +79,7 @@ function traverseMetaData(path: Array, mediaTypeModel: MediaTypeModel): return o; } + +export const pluginName = 'obsidian-media-db-plugin'; +export const contactEmail = 'm.projects.code@gmail.com'; +export const mediaDbTag = 'mediaDB';