Add missing art, set up nsfw filter

This commit is contained in:
Joshua Goins 2023-02-10 14:25:28 -05:00
parent b4ccae3283
commit d80c8f11ef
48 changed files with 100 additions and 22 deletions

5
art/short-hair.eno Normal file
View file

@ -0,0 +1,5 @@
-- Alt Text
A brown haired girl with dark eyes looking at the viewer. She has a pale purple tank top and playing with her short hair.
-- Alt Text

8
art/sword-leftlean.eno Normal file
View file

@ -0,0 +1,8 @@
-- Alt Text
A girl is looking at you. She has dark brown hair, and pale skin. She has a dark dress with golden accents and is plastered against a simple light background.
-- Alt Text
Characters:
- Mysterious Swordswoman

BIN
assets/art/short-hair.webp Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

View file

@ -6,4 +6,5 @@ date: 2022-01-01
excludefeed: true excludefeed: true
layout: art-detail layout: art-detail
filename: /art/demon.webp filename: /art/demon.webp
nsfw: true
--- ---

View file

@ -4,4 +4,5 @@ date: 2021-01-01
excludefeed: true excludefeed: true
layout: art-detail layout: art-detail
filename: /art/ffxiv-sketches.webp filename: /art/ffxiv-sketches.webp
nsfw: true
--- ---

View file

@ -4,4 +4,5 @@ date: 2020-01-01
excludefeed: true excludefeed: true
layout: art-detail layout: art-detail
filename: /art/ffxiv-swim.webp filename: /art/ffxiv-swim.webp
nsfw: true
--- ---

View file

@ -6,4 +6,5 @@ date: 2021-01-01
excludefeed: true excludefeed: true
layout: art-detail layout: art-detail
filename: /art/miqote-swimsuit.webp filename: /art/miqote-swimsuit.webp
nsfw: true
--- ---

View file

@ -4,4 +4,5 @@ date: 2019-01-01
excludefeed: true excludefeed: true
layout: art-detail layout: art-detail
filename: /art/naked-elf.webp filename: /art/naked-elf.webp
nsfw: true
--- ---

View file

@ -4,4 +4,5 @@ date: 2019-01-01
excludefeed: true excludefeed: true
layout: art-detail layout: art-detail
filename: /art/naked.webp filename: /art/naked.webp
nsfw: true
--- ---

View file

@ -0,0 +1,9 @@
---
layout: art-detail
filename: /art/short-hair.webp
alt_text: "A brown haired girl with dark eyes looking at the viewer. She has a pale purple tank top and playing with her short hair."
date: 2023-02-01
slug: short-hair
characters:
arttags:
---

View file

@ -8,6 +8,7 @@ slug: summer-byleth
characters: characters:
- Byleth - Byleth
arttags: arttags:
nsfw: true
--- ---
This is my first proper painted character piece, and I'm pretty happy with how it turned out still. Why does she need a knife on the beach though? This is my first proper painted character piece, and I'm pretty happy with how it turned out still. Why does she need a knife on the beach though?

View file

@ -10,6 +10,7 @@ characters:
- Asuka - Asuka
- Rei - Rei
arttags: arttags:
nsfw: true
--- ---
I drew this while on a trip, and I thought it was about time to do a summer-themed Evangelion drawing! Mari is of course having some fun with Asuka! I drew this while on a trip, and I thought it was about time to do a summer-themed Evangelion drawing! Mari is of course having some fun with Asuka!

View file

@ -1,6 +1,10 @@
--- ---
slug: sword-leftlean
date: 2023-01-05
layout: art-detail layout: art-detail
filename: /art/sword-leftlean.webp filename: /art/sword-leftlean.webp
alt_text: "A girl is looking at you. She has dark brown hair, and pale skin. She has a dark dress with golden accents and is plastered against a simple light background."
date: 2023-01-05
slug: sword-leftlean
characters:
- Mysterious Swordswoman
arttags:
--- ---

View file

@ -6,4 +6,5 @@ date: 2022-01-01
excludefeed: true excludefeed: true
layout: art-detail layout: art-detail
filename: /art/two-girls.webp filename: /art/two-girls.webp
nsfw: true
--- ---

View file

@ -9,4 +9,5 @@ slug: underwear
characters: characters:
- Merume - Merume
arttags: arttags:
nsfw: true
--- ---

View file

@ -6,4 +6,5 @@ date: 2022-01-01
excludefeed: true excludefeed: true
layout: art-detail layout: art-detail
filename: /art/viera1.webp filename: /art/viera1.webp
nsfw: true
--- ---

View file

@ -6,4 +6,5 @@ date: 2022-01-01
excludefeed: true excludefeed: true
layout: art-detail layout: art-detail
filename: /art/viera2.webp filename: /art/viera2.webp
nsfw: true
--- ---

View file

@ -8,4 +8,5 @@ excludefeed: true
slug: working-out slug: working-out
characters: characters:
arttags: arttags:
nsfw: true
--- ---

View file

@ -195,14 +195,16 @@
"filename": "summer-eva-girls.webp", "filename": "summer-eva-girls.webp",
"newgrounds_url": "https://www.newgrounds.com/art/view/redstrate/summer-eva-girls", "newgrounds_url": "https://www.newgrounds.com/art/view/redstrate/summer-eva-girls",
"pixiv_url": "https://www.pixiv.net/en/artworks/100026963", "pixiv_url": "https://www.pixiv.net/en/artworks/100026963",
"date": "7-27" "date": "7-27",
"nsfw": true
}, },
{ {
"title": "summer byleth", "title": "summer byleth",
"filename": "summer-byleth.webp", "filename": "summer-byleth.webp",
"pixiv_url": "https://www.pixiv.net/en/artworks/98726204", "pixiv_url": "https://www.pixiv.net/en/artworks/98726204",
"newgrounds_url": "https://www.newgrounds.com/art/view/redstrate/summer-byleth", "newgrounds_url": "https://www.newgrounds.com/art/view/redstrate/summer-byleth",
"date": "5-30" "date": "5-30",
"nsfw": true
}, },
{ {
"title": "after the rain", "title": "after the rain",
@ -249,13 +251,15 @@
"filename": "tree2.webp" "filename": "tree2.webp"
}, },
{ {
"filename": "naked-elf.webp" "filename": "naked-elf.webp",
"nsfw": true
}, },
{ {
"filename": "sketch-collect.webp" "filename": "sketch-collect.webp"
}, },
{ {
"filename": "naked.webp" "filename": "naked.webp",
"nsfw": true
}, },
{ {
"filename": "2019.webp" "filename": "2019.webp"
@ -369,7 +373,8 @@
"filename": "water-test.webp" "filename": "water-test.webp"
}, },
{ {
"filename": "ffxiv-swim.webp" "filename": "ffxiv-swim.webp",
"nsfw": true
}, },
{ {
"title": "Trainwatching", "title": "Trainwatching",
@ -458,7 +463,8 @@
}, },
{ {
"title": "Miq'ote in a Swimsuit", "title": "Miq'ote in a Swimsuit",
"filename": "miqote-swimsuit.webp" "filename": "miqote-swimsuit.webp",
"nsfw": true
}, },
{ {
"filename": "drawpile-snippet.webp" "filename": "drawpile-snippet.webp"
@ -482,7 +488,8 @@
"filename": "aerith.webp" "filename": "aerith.webp"
}, },
{ {
"filename": "ffxiv-sketches.webp" "filename": "ffxiv-sketches.webp",
"nsfw": true
}, },
{ {
"filename": "futaba.webp" "filename": "futaba.webp"
@ -543,7 +550,8 @@
}, },
{ {
"title": "Underwear", "title": "Underwear",
"filename": "underwear.webp" "filename": "underwear.webp",
"nsfw": true
}, },
{ {
"title": "Sketch Dump", "title": "Sketch Dump",
@ -567,15 +575,18 @@
}, },
{ {
"title": "Viera #1", "title": "Viera #1",
"filename": "viera1.webp" "filename": "viera1.webp",
"nsfw": true
}, },
{ {
"title": "Viera #2", "title": "Viera #2",
"filename": "viera2.webp" "filename": "viera2.webp",
"nsfw": true
}, },
{ {
"title": "Two Girls", "title": "Two Girls",
"filename": "two-girls.webp" "filename": "two-girls.webp",
"nsfw": true
}, },
{ {
"title": "Overalls", "title": "Overalls",
@ -587,7 +598,8 @@
}, },
{ {
"title": "Demonness", "title": "Demonness",
"filename": "demon.webp" "filename": "demon.webp",
"nsfw": true
}, },
{ {
"title": "Guns", "title": "Guns",
@ -599,7 +611,8 @@
}, },
{ {
"title": "Working Out", "title": "Working Out",
"filename": "working-out.webp" "filename": "working-out.webp",
"nsfw": true
}, },
{ {
"title": "Funny", "title": "Funny",
@ -646,6 +659,10 @@
{ {
"date": "1-5", "date": "1-5",
"filename": "sword-leftlean.webp" "filename": "sword-leftlean.webp"
},
{
"date": "2-1",
"filename": "short-hair.webp"
} }
] ]
} }

Binary file not shown.

After

Width:  |  Height:  |  Size: 864 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 558 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 764 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 844 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -6,13 +6,15 @@ import json
def write_field(f, key, value): def write_field(f, key, value):
f.write(key + ": " + value + "\n") f.write(key + ": " + value + "\n")
def parse_art(title, year, date, original_filename, filename, file): def parse_art(title, year, date, nsfw, original_filename, filename, file):
with open(original_filename + '.md', 'w') as f: with open(original_filename + '.md', 'w') as f:
document = enolib.parse(file) document = enolib.parse(file)
f.write('---\n') f.write('---\n')
if title is not None:
write_field(f, 'title', title) write_field(f, 'title', title)
write_field(f, 'layout', 'art-detail') write_field(f, 'layout', 'art-detail')
write_field(f, 'filename', '/art/' + filename + '.webp') write_field(f, 'filename', '/art/' + filename + '.webp')
write_field(f, 'alt_text', "\"" + document.field('Alt Text').required_string_value().replace('\n','') + "\"") write_field(f, 'alt_text', "\"" + document.field('Alt Text').required_string_value().replace('\n','') + "\"")
@ -37,13 +39,16 @@ def parse_art(title, year, date, original_filename, filename, file):
for tag in document.list('Tags').items(): for tag in document.list('Tags').items():
f.write("- " + tag.required_string_value().lower() + "\n") f.write("- " + tag.required_string_value().lower() + "\n")
if nsfw is not None:
write_field(f, 'nsfw', str(nsfw).lower())
f.write('---\n') f.write('---\n')
if document.optional_field('Description'): if document.optional_field('Description'):
f.write(document.field('Description').required_string_value()) f.write(document.field('Description').required_string_value())
f.write('\n') f.write('\n')
def parse_art_piece(json, year, date): def parse_art_piece(json, year, date, nsfw):
filename_without_ext = os.path.splitext(json["filename"])[0] filename_without_ext = os.path.splitext(json["filename"])[0]
with open(art_output_directory + "/" + filename_without_ext + '.md', 'w') as f: with open(art_output_directory + "/" + filename_without_ext + '.md', 'w') as f:
@ -68,6 +73,9 @@ def parse_art_piece(json, year, date):
write_field(f, 'layout', 'art-detail') write_field(f, 'layout', 'art-detail')
write_field(f, 'filename', '/art/' + json['filename']) write_field(f, 'filename', '/art/' + json['filename'])
if nsfw is not None:
write_field(f, 'nsfw', str(nsfw).lower())
f.write('---\n') f.write('---\n')
art_data_directory = '../art' art_data_directory = '../art'
@ -140,19 +148,27 @@ with open('../data/art.json', 'r') as f:
path = os.path.join(art_data_directory, filename_without_ext + ".eno") path = os.path.join(art_data_directory, filename_without_ext + ".eno")
nsfw = None
if "nsfw" in piece.keys():
nsfw = piece["nsfw"]
title = None
if "title" in piece.keys():
title = piece["title"]
if os.path.isfile(path): if os.path.isfile(path):
num_eno = num_eno + 1 num_eno = num_eno + 1
with open(path) as f: with open(path) as f:
if "date" in piece.keys(): if "date" in piece.keys():
parse_art(piece["title"], year["year"], piece["date"], art_output_directory + "/" + filename_without_ext, filename_without_ext, f.read()) parse_art(title, year["year"], piece["date"], nsfw, art_output_directory + "/" + filename_without_ext, filename_without_ext, f.read())
else: else:
parse_art(piece["title"], year["year"], None, art_output_directory + "/" + filename_without_ext, filename_without_ext, f.read()) parse_art(title, year["year"], None, nsfw, art_output_directory + "/" + filename_without_ext, filename_without_ext, f.read())
else: else:
num_noneno = num_noneno + 1 num_noneno = num_noneno + 1
if "date" in piece.keys(): if "date" in piece.keys():
parse_art_piece(piece, year["year"], piece["date"]) parse_art_piece(piece, year["year"], piece["date"], nsfw)
else: else:
parse_art_piece(piece, year["year"], None) parse_art_piece(piece, year["year"], None, nsfw)
print("Art coverage: {}/{}".format(num_eno, num_eno + num_noneno)); print("Art coverage: {}/{}".format(num_eno, num_eno + num_noneno));

View file

@ -16,6 +16,11 @@
{{ $path := printf "/art/%d/%.2d/%s" (int $year) (int $month) $filename_without_ext}} {{ $path := printf "/art/%d/%.2d/%s" (int $year) (int $month) $filename_without_ext}}
{{ $title := .Params.title }} {{ $title := .Params.title }}
{{ $image := (resources.Get (printf "art/%s.webp" .Params.slug)).Resize "300x" }} {{ $image := (resources.Get (printf "art/%s.webp" .Params.slug)).Resize "300x" }}
{{ if .Params.nsfw }}
{{ $image = $image | images.Filter (images.GaussianBlur 6) (images.Pixelate 8) }}
{{ end }}
{{ with $image }} {{ with $image }}
<img class="grid-item" width="{{ .Width }}" height="{{ .Height }}" alt="{{ $title }}" src="{{ .Permalink }}"/> <img class="grid-item" width="{{ .Width }}" height="{{ .Height }}" alt="{{ $title }}" src="{{ .Permalink }}"/>
{{ else }} {{ else }}
@ -27,3 +32,4 @@
<em>CANNOT FIND {{.Params.slug }}</em> <em>CANNOT FIND {{.Params.slug }}</em>
{{ end }} {{ end }}
`