diff --git a/templates/audible-audiobook-clipper.json b/templates/audible-audiobook-clipper.json new file mode 100644 index 0000000..f9b3627 --- /dev/null +++ b/templates/audible-audiobook-clipper.json @@ -0,0 +1,73 @@ +{ + "schemaVersion": "0.1.0", + "name": "Audiobook (audible / radio.at)", + "behavior": "create", + "noteContentFormat": "", + "properties": [ + { + "name": "categories", + "value": "[[Audiobooks Database]]", + "type": "multitext" + }, + { + "name": "subcategories", + "value": "", + "type": "multitext" + }, + { + "name": "links", + "value": "{{url}}", + "type": "multitext" + }, + { + "name": "creators", + "value": "{% set creatorLength = schema:@Audiobook:author[*].name|length %} {% if creatorLength > 0 %}{{schema:@Audiobook:author[*].name|wikilink}} {% else %} {{schema:@Audiobook:author.name|split:\\\",\\\"|replace:\\\" and \\\":\\\"\\\"|trim|wikilink}} {% endif %}", + "type": "multitext" + }, + { + "name": "durationString", + "value": "{{schema:@Audiobook:duration}}", + "type": "text" + }, + { + "name": "onlineRating", + "value": "{{schema:@Audiobook:aggregateRating.ratingValue}}", + "type": "number" + }, + { + "name": "onlineRatingCount", + "value": "{{schema:@Audiobook:aggregateRating.ratingCount}}", + "type": "number" + }, + { + "name": "year", + "value": "{{schema:@Audiobook:datePublished}}", + "type": "number" + }, + { + "name": "language", + "value": "{% set languageLength = schema:@Audiobook:inLanguage[*].name|length %} {% if languageLength == 0 %} {{schema:@Audiobook:inLanguage|capitalize}} {% else %} {{schema:@Audiobook:inLanguage[*].name|capitalize}} {% endif %}", + "type": "text" + }, + { + "name": "description", + "value": "{{schema:@Audiobook:description|markdown}}", + "type": "text" + }, + { + "name": "genres", + "value": "{{selector:.product-topictag-impression adbl-chip}}", + "type": "multitext" + }, + { + "name": "cover", + "value": "{{schema:@Audiobook:image}}", + "type": "text" + } + ], + "triggers": [ + "schema:@Audiobook" + ], + "noteNameFormat": "{{schema:@Audiobook:name|replace:\"/\":\"⧸\"|safe_name}}", + "path": "Clippings" +} \ No newline at end of file diff --git a/templates/audible-podcast-clipper.json b/templates/audible-podcast-clipper.json new file mode 100644 index 0000000..55e1c31 --- /dev/null +++ b/templates/audible-podcast-clipper.json @@ -0,0 +1,68 @@ +{ + "schemaVersion": "0.1.0", + "name": "Podcast (audible / radio.at)", + "behavior": "create", + "noteContentFormat": "", + "properties": [ + { + "name": "categories", + "value": "[[Podcasts Database]]", + "type": "multitext" + }, + { + "name": "subcategories", + "value": "", + "type": "multitext" + }, + { + "name": "links", + "value": "{{url}}", + "type": "multitext" + }, + { + "name": "creators", + "value": "{% set creatorLength = schema:@PodcastSeries:author[*].name|length %} {% if creatorLength > 0 %}{{schema:@PodcastSeries:author[*].name|wikilink}} {% else %} {{schema:@PodcastSeries:author.name|split:\\\",\\\"|replace:\\\" and \\\":\\\"\\\"|trim|wikilink}} {% endif %}", + "type": "multitext" + }, + { + "name": "onlineRating", + "value": "{{schema:@PodcastSeries:aggregateRating.ratingValue}}", + "type": "number" + }, + { + "name": "onlineRatingCount", + "value": "{{schema:@PodcastSeries:aggregateRating.ratingCount}}", + "type": "number" + }, + { + "name": "year", + "value": "{{schema:@PodcastSeries:datePublished}}", + "type": "number" + }, + { + "name": "languages", + "value": "{% set languageLength = schema:@PodcastSeries:inLanguage[*].name|length %} {% if languageLength == 0 %} {{schema:@PodcastSeries:inLanguage|capitalize}} {% else %} {{schema:@PodcastSeries:inLanguage[*].name|capitalize}} {% endif %}", + "type": "multitext" + }, + { + "name": "description", + "value": "{{schema:@PodcastSeries:description|markdown}}", + "type": "text" + }, + { + "name": "genres", + "value": "{{selector:.product-topictag-impression adbl-chip}}", + "type": "multitext" + }, + { + "name": "cover", + "value": "{{schema:@PodcastSeries:image}}", + "type": "text" + } + ], + "triggers": [ + "schema:@PodcastSeries" + ], + "noteNameFormat": "{{schema:@PodcastSeries:name|replace:\"/\":\"⧸\"|safe_name}}", + "path": "Clippings" +} \ No newline at end of file diff --git a/templates/boardgamegeek-clipper.json b/templates/boardgamegeek-clipper.json new file mode 100644 index 0000000..e404e4c --- /dev/null +++ b/templates/boardgamegeek-clipper.json @@ -0,0 +1,113 @@ +{ + "schemaVersion": "0.1.0", + "name": "BoardGameGeek", + "behavior": "create", + "noteContentFormat": "", + "properties": [ + { + "name": "categories", + "value": "[[Boardgames Database]]", + "type": "multitext" + }, + { + "name": "subcategories", + "value": "", + "type": "multitext" + }, + { + "name": "links", + "value": "{{url}}", + "type": "multitext" + }, + { + "name": "reimplements", + "value": "{% set r = selector:li.feature a[name=\\\"classifications-reimplements\\\"] ~ div.feature-description ul.text-block a.ng-binding %} {% set r_length = r|length %} {% if r_length <=5 %} {% for item in r%}[[{{item|safe_name}}]],{% endfor %} {% else %} [[{{r|safe_name}}]] {% endif %}", + "type": "multitext" + }, + { + "name": "bggTypes", + "value": "{{selector:li.feature a[name=\\\"classifications-boardgamesubdomain\\\"] ~ div.feature-description a.ng-binding}}", + "type": "multitext" + }, + { + "name": "bggCategories", + "value": "{{selector:li.feature a[name=\\\"classifications-boardgamecategory\\\"] ~ div.feature-description ul.text-block a.ng-binding}}", + "type": "multitext" + }, + { + "name": "bggMechanisms", + "value": "{{selector:li.feature a[name=\\\"classifications-boardgamemechanic\\\"] ~ div.feature-description ul.text-block a.ng-binding}}", + "type": "multitext" + }, + { + "name": "onlineRating", + "value": "{{selector:div.rating-overall span[itemprop=\\\"ratingValue\\\"]}}", + "type": "number" + }, + { + "name": "onlineRatingCount", + "value": "{{selector:ul.game-header-title-summary > li > a|first|split:\\\"\\t\\\"|first|trim}}", + "type": "number" + }, + { + "name": "complexityRating", + "value": "{{selector:span[item-poll-button=\\\"boardgameweight\\\"] span|first}}", + "type": "number" + }, + { + "name": "minPlayers", + "value": "{{selector:p.gameplay-item-primary span[ng-if=\\\"min > 0\\\"]|first}}", + "type": "number" + }, + { + "name": "maxPlayers", + "value": "{%set max = selector:p.gameplay-item-primary span[ng-if=\\\"max>0 && min != max\\\"]|first|replace:\\\"–\\\":\\\"\\\"|trim %}{% if max %}{{max}}{% else %}{{selector:p.gameplay-item-primary span[ng-if=\\\"min > 0\\\"]|first|trim}}{% endif %}", + "type": "number" + }, + { + "name": "playtime", + "value": "{{selector:gameplay-module > div > div > ul > li:nth-child(2) > p > span > span|replace:\\\"–\\\":\\\" - \\\"}} minutes", + "type": "text" + }, + { + "name": "year", + "value": "{{selector:div.game-header-title-info span.game-year|replace:\\\"(\\\":\\\"\\\",\\\")\\\":\\\"\\\"}}", + "type": "number" + }, + { + "name": "priceString", + "value": "{% set msrp = selector:div[amazon-msrp]|first|replace:\\\"/MSRP:\\\\s*/\\\":\\\"\\\"|trim %}{% set srp = selector:li[type=\\\"listprice\\\"] .item-listing__msrp|first|replace:\\\"/Suggested Retail Price:\\\\s*/\\\":\\\"\\\"|trim %}{% set amazon = selector:a[href*=\\\"amazon.com\\\"] .item-listing__btn-text|first|replace:\\\"/.*?((?:US)?\\\\$|€|£)\\\\s*([0-9]+(?:\\\\.[0-9]{2})?).*/\\\":\\\"$1$2\\\"|trim %}{% set other = selector:meta[itemprop=\\\"price\\\"]?content|first|trim %}{% set raw = msrp ?? srp ?? amazon ?? other %}{{ raw|replace:\\\"/^\\\\\\\\\"+|\\\\\\\\\"+$/g\\\":\\\"\\\"|replace:\\\"/.*?((?:US)?\\\\$|€|£)\\\\s*([0-9]+(?:\\\\.[0-9]{2})?).*/\\\":\\\"$1$2\\\"|replace:\\\"/^US\\\\$/\\\":\\\"$\\\"|trim }}", + "type": "text" + }, + { + "name": "summary", + "value": "{{selector:span[itemprop=\\\"description\\\"]}}", + "type": "text" + }, + { + "name": "description", + "value": "{{selector:article.game-description-body}}", + "type": "text" + }, + { + "name": "cover", + "value": "{{selector:div.game-header-image > ng-include > div > a > img?src}}", + "type": "text" + }, + { + "name": "banner", + "value": "{{selector:div.game-primary-background-image?style|replace:\\\"background-image: url(\\\\\"\\\":\\\"\\\"|replace:\\\"\\\\\");\\\":\\\"\\\"}}", + "type": "text" + }, + { + "name": "cssclasses", + "value": "cover-top, cover-horizontal-contain", + "type": "multitext" + } + ], + "triggers": [ + "https://boardgamegeek.com/boardgame" + ], + "noteNameFormat": "{{title|replace:\"/\":\"⧸\"|safe_name}}", + "path": "Clippings" +} \ No newline at end of file diff --git a/templates/goodreads-clipper.json b/templates/goodreads-clipper.json new file mode 100644 index 0000000..5be4883 --- /dev/null +++ b/templates/goodreads-clipper.json @@ -0,0 +1,68 @@ +{ + "schemaVersion": "0.1.0", + "name": "Books (goodreads)", + "behavior": "create", + "noteContentFormat": "", + "properties": [ + { + "name": "categories", + "value": "[[Book Database]]", + "type": "multitext" + }, + { + "name": "subcategories", + "value": "", + "type": "multitext" + }, + { + "name": "links", + "value": "{{url}}", + "type": "multitext" + }, + { + "name": "genres", + "value": "{{selector:.BookPageMetadataSection__genreButton}}", + "type": "multitext" + }, + { + "name": "creators", + "value": "{{schema:@Book:author[*].name|wikilink}}", + "type": "multitext" + }, + { + "name": "pageCount", + "value": "{{schema:@Book:numberOfPages}}", + "type": "number" + }, + { + "name": "onlineRating", + "value": "{{schema:@Book:aggregateRating.ratingValue}}", + "type": "number" + }, + { + "name": "onlineRatingCount", + "value": "{{schema:@Book:aggregateRating.ratingCount}}", + "type": "number" + }, + { + "name": "year", + "value": "{{selector:p[data-testid=\\\"publicationInfo\\\"]|slice:-4}}", + "type": "number" + }, + { + "name": "description", + "value": "{{selector:.DetailsLayoutRightParagraph__widthConstrained|first}}", + "type": "text" + }, + { + "name": "cover", + "value": "{{schema:@Book:image}}", + "type": "text" + } + ], + "triggers": [ + "schema:@Book" + ], + "noteNameFormat": "{{schema:@Book:name|replace:\"/\":\"⧸\"|safe_name}}", + "path": "Clippings" +} \ No newline at end of file diff --git a/templates/imdb-movie-clipper.json b/templates/imdb-movie-clipper.json new file mode 100644 index 0000000..e973a39 --- /dev/null +++ b/templates/imdb-movie-clipper.json @@ -0,0 +1,68 @@ +{ + "schemaVersion": "0.1.0", + "name": "Movie (imdb)", + "behavior": "create", + "noteContentFormat": "", + "properties": [ + { + "name": "categories", + "value": "[[Movie Database]]", + "type": "multitext" + }, + { + "name": "subcategories", + "value": "", + "type": "multitext" + }, + { + "name": "links", + "value": "{{url}}", + "type": "multitext" + }, + { + "name": "genres", + "value": "{{schema:@Movie:genre}}", + "type": "multitext" + }, + { + "name": "creators", + "value": "{{schema:@Movie:director[*].name|merge:schema:@Movie:actor[*].name}}", + "type": "multitext" + }, + { + "name": "onlineRating", + "value": "{{schema:@Movie:aggregateRating.ratingValue}}", + "type": "number" + }, + { + "name": "onlineRatingCount", + "value": "{{schema:@Movie:aggregateRating.ratingCount}}", + "type": "number" + }, + { + "name": "year", + "value": "{{schema:@Movie:datePublished|slice:0,4}}", + "type": "number" + }, + { + "name": "duration", + "value": "{{meta:property:og:description|split:\\\"|\\\"|first|trim}}", + "type": "number" + }, + { + "name": "description", + "value": "{{schema:@Movie:description}}", + "type": "text" + }, + { + "name": "cover", + "value": "{{schema:@Movie:image}}", + "type": "text" + } + ], + "triggers": [ + "schema:@Movie" + ], + "noteNameFormat": "{% if schema:@Movie:alternateName %} {{schema:@Movie:alternateName|replace:\"/\":\"⧸\"|safe_name}} {% else %} {{schema:@Movie:name|replace:\"/\":\"⧸\"|safe_name}} {% endif %}", + "path": "Clippings" +} \ No newline at end of file diff --git a/templates/imdb-show-clipper.json b/templates/imdb-show-clipper.json new file mode 100644 index 0000000..0c58209 --- /dev/null +++ b/templates/imdb-show-clipper.json @@ -0,0 +1,73 @@ +{ + "schemaVersion": "0.1.0", + "name": "Show (imdb)", + "behavior": "create", + "noteContentFormat": "", + "properties": [ + { + "name": "categories", + "value": "[[Show Database]]", + "type": "multitext" + }, + { + "name": "subcategories", + "value": "", + "type": "multitext" + }, + { + "name": "links", + "value": "{{url}}", + "type": "multitext" + }, + { + "name": "genres", + "value": "{{schema:@TVSeries:genre}}", + "type": "multitext" + }, + { + "name": "creators", + "value": "{{schema:@TVSeries:actor[*].name}}", + "type": "multitext" + }, + { + "name": "onlineRating", + "value": "{{schema:@TVSeries:aggregateRating.ratingValue}}", + "type": "number" + }, + { + "name": "onlineRatingCount", + "value": "{{schema:@TVSeries:aggregateRating.ratingCount}}", + "type": "number" + }, + { + "name": "year", + "value": "{{schema:@TVSeries:datePublished|slice:0,4}}", + "type": "number" + }, + { + "name": "seasons", + "value": "{{selector:#browse-episodes-season?aria-label|split:\\\" \\\"|first}}", + "type": "number" + }, + { + "name": "duration", + "value": "{{meta:property:og:description|split:\\\"|\\\"|first|trim}}", + "type": "number" + }, + { + "name": "description", + "value": "{{schema:@TVSeries:description}}", + "type": "text" + }, + { + "name": "cover", + "value": "{{schema:@TVSeries:image}}", + "type": "text" + } + ], + "triggers": [ + "schema:@TVSeries" + ], + "noteNameFormat": "{{schema:@TVSeries:name|replace:\"/\":\"⧸\"|safe_name}}", + "path": "Clippings" +} \ No newline at end of file diff --git a/templates/my-anime-list-clipper.json b/templates/my-anime-list-clipper.json new file mode 100644 index 0000000..171bc95 --- /dev/null +++ b/templates/my-anime-list-clipper.json @@ -0,0 +1,73 @@ +{ + "schemaVersion": "0.1.0", + "name": "MyAnimeList", + "behavior": "create", + "noteContentFormat": "", + "properties": [ + { + "name": "categories", + "value": "[[Manga Database]]", + "type": "multitext" + }, + { + "name": "subcategories", + "value": "{% for item in selector:.leftside .spaceit_pad %}{% set infos = item|split:\\\":\\\" %}{% set category = infos|first %}{% if category == \\\"Type\\\" %}{{infos|last|trim|wikilink}}{% endif %}{% endfor %}", + "type": "multitext" + }, + { + "name": "links", + "value": "{{url}}", + "type": "multitext" + }, + { + "name": "releaseStatus", + "value": "{% for item in selector:.leftside .spaceit_pad %}{% set infos = item|split:\\\":\\\" %}{% set category = infos|first %}{% if category == \\\"Status\\\" %}{{infos|last}}{% endif %}{% endfor %}", + "type": "text" + }, + { + "name": "genres", + "value": "{% set genres = selector:span[itemprop=\\\"genre\\\"] %} {{genres|last}}, {{genres|slice:0,-1|join:\\\", \\\"}}", + "type": "multitext" + }, + { + "name": "creators", + "value": "{{author|replace:\\\"/\\\\s*\\\\([^)]*\\\\)/g\\\":\\\"\\\"|replace:\\\"/,\\\\s+/g\\\":\\\",\\\"|split:\\\",\\\"|wikilink}}", + "type": "multitext" + }, + { + "name": "onlineRating", + "value": "{{selector:.fl-l.score}}", + "type": "number" + }, + { + "name": "onlineRatingCount", + "value": "{{selector:span[itemprop=\\\"ratingCount\\\"]}}", + "type": "number" + }, + { + "name": "year", + "value": "{% for item in selector:.leftside .spaceit_pad %}{% set infos = item|split:\\\":\\\" %}{% set category = infos|first %}{% if category == \\\"Published\\\" %}{{infos|last|replace:\\\"/^.*?(\\\\d{4}).*$/\\\":\\\"$1\\\"}}{% endif %}{% endfor %}", + "type": "number" + }, + { + "name": "description", + "value": "{{meta:property:og:description}}", + "type": "text" + }, + { + "name": "synonyms", + "value": "{% for item in selector:.leftside .spaceit_pad %}{% set infos = item|split:\\\":\\\" %}{% set category = infos|first %}{% if category == \\\"Synonyms\\\" %}{{infos|last|trim}}{% endif %}{% endfor %}", + "type": "multitext" + }, + { + "name": "cover", + "value": "{{image}}", + "type": "text" + } + ], + "triggers": [ + "https://myanimelist.net/manga/" + ], + "noteNameFormat": "{{title|replace:\"/\":\"⧸\"|safe_name}}", + "path": "Clippings" +} \ No newline at end of file