diff --git a/assets/components/actors/actors.vue b/assets/components/actors/actors.vue index 56ab3128..4ef823ee 100644 --- a/assets/components/actors/actors.vue +++ b/assets/components/actors/actors.vue @@ -110,7 +110,7 @@ export default { @import 'theme'; .gender-link.selected .gender .icon { - fill: $text-contrast; + fill: var(--text-contrast); filter: none; } @@ -143,7 +143,7 @@ export default { display: flex; flex-shrink: 0; padding: 0 .5rem 0 0; - border-right: solid 1px $shadow-hint; + border-right: solid 1px var(--shadow-hint); margin: 0 1rem 0 0; } @@ -160,38 +160,42 @@ export default { align-items: center; justify-content: center; margin: .25rem .5rem .25rem 0; - color: $shadow; - background: $background; + color: var(--shadow); + background: var(--background); font-weight: bold; text-decoration: none; - box-shadow: 0 0 3px $shadow-weak; + box-shadow: 0 0 3px var(--shadow-weak); &:hover { - color: $primary; + color: var(--primary); cursor: pointer; } + .icon { + fill: var(--shadow); + } + &.selected { - background: $primary; - color: $text-contrast; + background: var(--primary); + color: var(--text-contrast); .icon { - fill: $text-contrast; + fill: var(--text-contrast); } &.male { - background: $male; + background: var(--male); } &.female { - background: $female; + background: var(--female); } &.transsexual { width: 2rem; height: 2rem; - background: $female; - border: solid .25rem $male; + background: var(--female); + border: solid .25rem var(--male); } } } diff --git a/assets/components/container/container.vue b/assets/components/container/container.vue index 9372b7d3..448c1ffb 100644 --- a/assets/components/container/container.vue +++ b/assets/components/container/container.vue @@ -1,5 +1,8 @@ @@ -23,7 +37,7 @@ export default { @import 'theme'; .container { - background: $background-dim; + background: var(--background-dim); height: 100%; display: flex; flex-direction: column; diff --git a/assets/components/header/filter-bar.vue b/assets/components/header/filter-bar.vue index 20709932..04c555bb 100644 --- a/assets/components/header/filter-bar.vue +++ b/assets/components/header/filter-bar.vue @@ -166,17 +166,17 @@ export default { @import 'theme'; .filter-bar { - background: $background; + background: var(--background); display: flex; justify-content: space-between; align-items: center; padding: .5rem 1rem; z-index: 1; font-size: 0; - box-shadow: 0 0 3px $shadow; + box-shadow: 0 0 3px var(--shadow); .icon { - fill: $shadow; + fill: var(--shadow); } } @@ -196,17 +196,17 @@ export default { } .range-button { - color: $shadow; - background: $background; + color: var(--shadow); + background: var(--background); display: inline-block; padding: .5rem 1rem; border: none; - box-shadow: 0 0 2px $shadow-weak; + box-shadow: 0 0 2px var(--shadow-weak); font-size: .8rem; font-weight: bold; &:hover { - color: $text; + color: var(--text); cursor: pointer; } } @@ -215,7 +215,7 @@ export default { display: none; &:checked + .range-button { - color: $primary; + color: var(--primary); } } diff --git a/assets/components/header/filters.vue b/assets/components/header/filters.vue index 727149dc..b35ea3a2 100644 --- a/assets/components/header/filters.vue +++ b/assets/components/header/filters.vue @@ -96,7 +96,7 @@ export default { margin: 0; &:not(:last-child) { - border-right: solid 1px $shadow-hint; + border-right: solid 1px var(--shadow-hint); } } @@ -116,7 +116,7 @@ export default { } .toggle { - color: $shadow-weak; + color: var(--shadow-weak); box-sizing: border-box; padding: .5rem; margin: 0 .25rem; @@ -130,12 +130,12 @@ export default { } &:hover { - color: $shadow; + color: var(--shadow); } &.active { - color: $primary; - box-shadow: 0 0 2px $shadow-weak; + color: var(--primary); + box-shadow: 0 0 2px var(--shadow-weak); } } diff --git a/assets/components/header/header.vue b/assets/components/header/header.vue index 10c57fc4..20429699 100644 --- a/assets/components/header/header.vue +++ b/assets/components/header/header.vue @@ -62,34 +62,88 @@ - +
+
+ - - + - - + + + +
+ + + + + + + + +
@@ -109,9 +173,9 @@ export default { display: flex; align-items: center; justify-content: space-between; - background: $background; - color: $primary; - border-bottom: solid 1px $shadow-hint; + background: var(--background); + color: var(--primary); + border-bottom: solid 1px var(--shadow-hint); font-size: 0; } @@ -120,6 +184,13 @@ export default { align-items: center; } +.header-section { + height: 100%; + align-items: center; + display: flex; + flex-direction: row; +} + .logo-link { color: inherit; display: inline-block; @@ -151,31 +222,44 @@ export default { justify-content: center; padding: 1rem 1rem calc(1rem - 5px) 1rem; border-bottom: solid 5px transparent; - color: $shadow; + color: var(--shadow); text-decoration: none; font-size: .9rem; font-weight: bold; cursor: pointer; - .icon { - fill: $shadow; - margin: 0 .5rem 0 0; - } - &.active { - color: $primary; - border-bottom: solid 5px $primary; + color: var(--primary); + border-bottom: solid 5px var(--primary); .icon { - fill: $primary; + fill: var(--primary); } } &:hover:not(.active) { - color: $primary; + color: var(--primary); .icon { - fill: $primary; + fill: var(--primary); + } + } +} + +.header-toggles { + margin: 0 .5rem 0 0; + + .icon { + padding: 1rem .75rem; + fill: var(--shadow); + + &:hover { + fill: var(--shadow-strong); + cursor: pointer; + } + + &.active { + fill: var(--primary); } } } @@ -189,7 +273,7 @@ export default { margin: .2rem 0 0 0; .icon { - fill: $shadow; + fill: var(--shadow); } } diff --git a/assets/components/header/search.vue b/assets/components/header/search.vue index 2a98e119..8d14a1bd 100644 --- a/assets/components/header/search.vue +++ b/assets/components/header/search.vue @@ -66,14 +66,14 @@ export default { align-items: center; justify-content: flex-end; padding: 0 1rem 0 0; - border-left: solid 1px $shadow-hint; + border-left: solid 1px var(--shadow-hint); &.compact { padding: 0; border: none; .search-input { - border: solid 1px $shadow-hint; + border: solid 1px var(--shadow-hint); } .search-button { @@ -88,12 +88,14 @@ export default { width: 100%; padding: .5rem; border: none; + color: var(--text); + background: var(--background); outline: none; font-size: 1rem; outline: none; &::placeholder { - color: $shadow; + color: var(--shadow); } &::-webkit-search-cancel-button { @@ -101,7 +103,7 @@ export default { padding: .5rem; position: relative; right: 0; - color: $text; + color: var(--text); background: url('/img/cancel-circle2.svg'); opacity: .25; @@ -112,7 +114,7 @@ export default { } &:focus::placeholder { - color: $shadow-weak; + color: var(--shadow-weak); } } @@ -125,14 +127,14 @@ export default { outline: none; .icon { - fill: $shadow-weak; + fill: var(--shadow-weak); } &:hover { cursor: pointer; .icon { - fill: $shadow; + fill: var(--shadow); } } } diff --git a/assets/components/networks/networks.vue b/assets/components/networks/networks.vue index e88fcc7f..57c563a2 100644 --- a/assets/components/networks/networks.vue +++ b/assets/components/networks/networks.vue @@ -102,18 +102,20 @@ export default { } .query { + color: var(--text); + background: var(--background); flex-grow: 1; box-sizing: border-box; padding: 1rem; border: none; box-sizing: border-box; - box-shadow: 0 0 3px $shadow-weak; + box-shadow: 0 0 3px var(--shadow-weak); margin: 1rem 0; font-size: 1rem; outline: none; &:focus { - box-shadow: 0 0 3px $primary; + box-shadow: 0 0 3px var(--primary); } } @@ -123,14 +125,14 @@ export default { border: none; .icon { - fill: $shadow; + fill: var(--shadow); } &:hover { cursor: pointer; .icon { - fill: $primary; + fill: var(--primary); } } } diff --git a/assets/components/releases/releases.vue b/assets/components/releases/releases.vue index e9c23974..81bb4f19 100644 --- a/assets/components/releases/releases.vue +++ b/assets/components/releases/releases.vue @@ -7,12 +7,13 @@ @@ -80,7 +81,7 @@ export default { } .empty { - color: $shadow-strong; + color: var(--shadow-strong); font-weight: bold; } diff --git a/assets/components/tags/photos.vue b/assets/components/tags/photos.vue index 27423372..6a10ade7 100644 --- a/assets/components/tags/photos.vue +++ b/assets/components/tags/photos.vue @@ -4,14 +4,14 @@
  • @@ -19,7 +19,7 @@
  • diff --git a/assets/components/tags/tag.vue b/assets/components/tags/tag.vue index 1ee00b0c..6c2f36a8 100644 --- a/assets/components/tags/tag.vue +++ b/assets/components/tags/tag.vue @@ -99,13 +99,17 @@ export default { @import 'theme'; .description a { - color: $link; + color: var(--link); text-decoration: inherit; &:hover { - color: $primary; + color: var(--primary); } } + +.dark .sidebar { + border-right: solid 1px var(--shadow-weak); +} diff --git a/assets/components/tile/tag.vue b/assets/components/tile/tag.vue index b73b1345..eacfe474 100644 --- a/assets/components/tile/tag.vue +++ b/assets/components/tile/tag.vue @@ -6,7 +6,7 @@ > @@ -16,6 +16,10 @@ @@ -30,8 +37,8 @@ export default { @import 'theme'; .tile { - color: $text; - background: $background; + color: var(--text); + background: var(--background); display: flex; flex-direction: column; align-items: center; diff --git a/assets/css/_theme.scss b/assets/css/_theme.scss index 6bd7b66c..747c33dd 100644 --- a/assets/css/_theme.scss +++ b/assets/css/_theme.scss @@ -35,3 +35,72 @@ $empty: #333; $male: #0af; $female: #f0a; + +:root { + --primary: #ff6c88; + + --text-dark: #222; + --text-light: #fff; + + --darken: rgba(0, 0, 0, .5); + --darken-weak: rgba(0, 0, 0, .2); + + --lighten: rgba(255, 255, 255, .5); + --lighten-weak: rgba(255, 255, 255, .2); +} + +.light { + --text: #222; + --text-contrast: #fff; + --background: #fff; + --background-dim: #fafafa; + + --profile: #222; + --tile: #2a2a2a; + + --link: #cc4466; + --empty: #333; + + --male: #0af; + --female: #f0a; + + --shadow: rgba(0, 0, 0, .5); + --shadow-extreme: rgba(0, 0, 0, .9); + --shadow-strong: rgba(0, 0, 0, .7); + --shadow-weak: rgba(0, 0, 0, .2); + --shadow-hint: rgba(0, 0, 0, .1); + + --highlight: rgba(255, 255, 255, .5); + --highlight-extreme: rgba(255, 255, 255, .9); + --highlight-strong: rgba(255, 255, 255, .7); + --highlight-weak: rgba(255, 255, 255, .2); + --highlight-hint: rgba(255, 255, 255, .075); +} + +.dark { + --text: #fff; + --text-contrast: #222; + --background: #333; + --background-dim: #222; + + --profile: #222; + --tile: #2a2a2a; + + --link: #cc4466; + --empty: #333; + + --male: #0af; + --female: #f0a; + + --shadow: rgba(255, 255, 255, .5); + --shadow-extreme: rgba(255, 255, 255, .9); + --shadow-strong: rgba(255, 255, 255, .7); + --shadow-weak: rgba(255, 255, 255, .2); + --shadow-hint: rgba(255, 255, 255, .075); + + --highlight: rgba(0, 0, 0, .5); + --highlight-extreme: rgba(0, 0, 0, .9); + --highlight-strong: rgba(0, 0, 0, .7); + --highlight-weak: rgba(0, 0, 0, .2); + --highlight-hint: rgba(0, 0, 0, .1); +} diff --git a/assets/css/style.scss b/assets/css/style.scss index 46fa73b8..f36c5732 100644 --- a/assets/css/style.scss +++ b/assets/css/style.scss @@ -9,7 +9,7 @@ body { } body { - color: $text; + color: var(--text); margin: 0; font-family: Arial, Helvetica, sans-serif; } @@ -25,7 +25,7 @@ body { } .heading { - color: $shadow; + color: var(--shadow); padding: 0; margin: 0 0 1rem 0; font-size: 1.5rem; diff --git a/assets/img/balloon.svg b/assets/img/balloon.svg new file mode 100644 index 00000000..db8bebf1 --- /dev/null +++ b/assets/img/balloon.svg @@ -0,0 +1,5 @@ + + +balloon + + diff --git a/assets/img/eye-blocked.svg b/assets/img/eye-blocked.svg new file mode 100644 index 00000000..31d10b3a --- /dev/null +++ b/assets/img/eye-blocked.svg @@ -0,0 +1,7 @@ + + +eye-blocked + + + + diff --git a/assets/img/eye-blocked2.svg b/assets/img/eye-blocked2.svg new file mode 100644 index 00000000..04fa13c8 --- /dev/null +++ b/assets/img/eye-blocked2.svg @@ -0,0 +1,5 @@ + + +eye-blocked2 + + diff --git a/assets/img/eye.svg b/assets/img/eye.svg new file mode 100644 index 00000000..8f5c4a9f --- /dev/null +++ b/assets/img/eye.svg @@ -0,0 +1,5 @@ + + +eye + + diff --git a/assets/img/eye2.svg b/assets/img/eye2.svg new file mode 100644 index 00000000..46daf1b9 --- /dev/null +++ b/assets/img/eye2.svg @@ -0,0 +1,5 @@ + + +eye2 + + diff --git a/assets/img/flower2.svg b/assets/img/flower2.svg new file mode 100644 index 00000000..cc783cd8 --- /dev/null +++ b/assets/img/flower2.svg @@ -0,0 +1,6 @@ + + +flower2 + + + diff --git a/assets/img/glasses.svg b/assets/img/glasses.svg new file mode 100644 index 00000000..a2c7f124 --- /dev/null +++ b/assets/img/glasses.svg @@ -0,0 +1,5 @@ + + +glasses + + diff --git a/assets/img/glasses2.svg b/assets/img/glasses2.svg new file mode 100644 index 00000000..aa0480d4 --- /dev/null +++ b/assets/img/glasses2.svg @@ -0,0 +1,5 @@ + + +glasses2 + + diff --git a/assets/img/hammer-wrench.svg b/assets/img/hammer-wrench.svg new file mode 100644 index 00000000..9ca83daa --- /dev/null +++ b/assets/img/hammer-wrench.svg @@ -0,0 +1,5 @@ + + +hammer-wrench + + diff --git a/assets/img/lamp4.svg b/assets/img/lamp4.svg new file mode 100644 index 00000000..fc6007be --- /dev/null +++ b/assets/img/lamp4.svg @@ -0,0 +1,5 @@ + + +lamp4 + + diff --git a/assets/img/lamp5.svg b/assets/img/lamp5.svg new file mode 100644 index 00000000..437bade2 --- /dev/null +++ b/assets/img/lamp5.svg @@ -0,0 +1,5 @@ + + +lamp5 + + diff --git a/assets/img/lamp7.svg b/assets/img/lamp7.svg new file mode 100644 index 00000000..2560740e --- /dev/null +++ b/assets/img/lamp7.svg @@ -0,0 +1,7 @@ + + +lamp7 + + + + diff --git a/assets/img/lamp8.svg b/assets/img/lamp8.svg new file mode 100644 index 00000000..7a08f60e --- /dev/null +++ b/assets/img/lamp8.svg @@ -0,0 +1,7 @@ + + +lamp8 + + + + diff --git a/assets/img/magic-wand2.svg b/assets/img/magic-wand2.svg new file mode 100644 index 00000000..ff363d36 --- /dev/null +++ b/assets/img/magic-wand2.svg @@ -0,0 +1,5 @@ + + +magic-wand2 + + diff --git a/assets/img/moon.svg b/assets/img/moon.svg new file mode 100644 index 00000000..49161fe9 --- /dev/null +++ b/assets/img/moon.svg @@ -0,0 +1,5 @@ + + +moon + + diff --git a/assets/img/paw.svg b/assets/img/paw.svg new file mode 100644 index 00000000..d319fdce --- /dev/null +++ b/assets/img/paw.svg @@ -0,0 +1,5 @@ + + +paw + + diff --git a/assets/img/pipe.svg b/assets/img/pipe.svg new file mode 100644 index 00000000..c9469ad2 --- /dev/null +++ b/assets/img/pipe.svg @@ -0,0 +1,6 @@ + + +pipe + + + diff --git a/assets/img/sun.svg b/assets/img/sun.svg new file mode 100644 index 00000000..080d4ec3 --- /dev/null +++ b/assets/img/sun.svg @@ -0,0 +1,5 @@ + + +sun + + diff --git a/assets/js/tags/actions.js b/assets/js/tags/actions.js index 64b1a86a..aba57b76 100644 --- a/assets/js/tags/actions.js +++ b/assets/js/tags/actions.js @@ -31,6 +31,12 @@ function initTagsActions(store, _router) { thumbnail path comment + sfw: sfwMedia { + id + thumbnail + path + comment + } } } photos: tagsPhotos { @@ -39,6 +45,12 @@ function initTagsActions(store, _router) { thumbnail path comment + sfw: sfwMedia { + id + thumbnail + path + comment + } } } releases: releasesTags( @@ -81,7 +93,7 @@ function initTagsActions(store, _router) { exclude: store.state.ui.filter, }); - return curateTag(tagBySlug); + return curateTag(tagBySlug, store); } async function fetchTags({ _commit }, { @@ -110,6 +122,9 @@ function initTagsActions(store, _router) { poster: tagsPosterByTagId { media { thumbnail + sfw: sfwMedia { + thumbnail + } } } group { @@ -123,7 +138,7 @@ function initTagsActions(store, _router) { limit, }); - return tags.map(tag => curateTag(tag)); + return tags.map(tag => curateTag(tag, store.state.ui.sfw)); } async function fetchTagReleases({ _commit }, tagId) { diff --git a/assets/js/ui/actions.js b/assets/js/ui/actions.js index a5fb17dd..64f99080 100644 --- a/assets/js/ui/actions.js +++ b/assets/js/ui/actions.js @@ -1,5 +1,3 @@ -// import { get } from '../api'; - function initUiActions(_store, _router) { function setFilter({ commit }, filter) { commit('setFilter', filter); @@ -16,10 +14,22 @@ function initUiActions(_store, _router) { localStorage.setItem('batch', batch); } + function setTheme({ commit }, theme) { + commit('setTheme', theme); + localStorage.setItem('theme', theme); + } + + async function setSfw({ commit }, sfw) { + commit('setSfw', sfw); + localStorage.setItem('sfw', sfw); + } + return { setFilter, setRange, setBatch, + setSfw, + setTheme, }; } diff --git a/assets/js/ui/mutations.js b/assets/js/ui/mutations.js index 85b7ce6a..85ed471a 100644 --- a/assets/js/ui/mutations.js +++ b/assets/js/ui/mutations.js @@ -10,8 +10,18 @@ function setBatch(state, batch) { state.batch = batch; } +function setSfw(state, sfw) { + state.sfw = sfw; +} + +function setTheme(state, theme) { + state.theme = theme; +} + export default { setFilter, setRange, setBatch, + setSfw, + setTheme, }; diff --git a/assets/js/ui/state.js b/assets/js/ui/state.js index 88922f43..22b750bc 100644 --- a/assets/js/ui/state.js +++ b/assets/js/ui/state.js @@ -1,9 +1,13 @@ const storedFilter = localStorage.getItem('filter'); const storedRange = localStorage.getItem('range'); const storedBatch = localStorage.getItem('batch'); +const storedSfw = localStorage.getItem('sfw'); +const storedTheme = localStorage.getItem('theme'); export default { filter: storedFilter ? storedFilter.split(',') : ['gay', 'transsexual'], range: storedRange || 'latest', batch: storedBatch || 'all', + sfw: storedSfw === 'true' || false, + theme: storedTheme || 'light', }; diff --git a/migrations/20190325001339_releases.js b/migrations/20190325001339_releases.js index 0980025a..a387cedc 100644 --- a/migrations/20190325001339_releases.js +++ b/migrations/20190325001339_releases.js @@ -36,7 +36,9 @@ exports.up = knex => Promise.resolve() table.string('scraper', 32); table.string('copyright', 100); table.string('source', 1000); + table.text('comment'); + table.string('group'); table.unique('hash'); table.unique('source'); @@ -44,6 +46,28 @@ exports.up = knex => Promise.resolve() table.datetime('created_at') .defaultTo(knex.fn.now()); })) + .then(() => knex.schema.createTable('media_sfw', (table) => { + table.increments('id', 12); + + table.integer('media_id', 16) + .references('id') + .inTable('media'); + + table.unique('media_id'); + })) + .then(() => knex.raw(` + CREATE FUNCTION get_random_sfw_media_id() RETURNS int AS $$ + SELECT media_id FROM media_sfw + ORDER BY random() + LIMIT 1; + $$ LANGUAGE sql STABLE; + `)) + .then(() => knex.schema.alterTable('media', (table) => { + table.integer('sfw_media_id', 16) + .references('id') + .inTable('media') + .defaultTo(knex.raw('get_random_sfw_media_id()')); + })) .then(() => knex.schema.createTable('tags_groups', (table) => { table.increments('id', 12); @@ -562,9 +586,6 @@ exports.up = knex => Promise.resolve() `)); exports.down = knex => knex.raw(` - DROP FUNCTION IF EXISTS releases_by_tag_slugs; - DROP FUNCTION IF EXISTS search_sites; - DROP VIEW IF EXISTS movie_actors; DROP VIEW IF EXISTS movie_tags; @@ -595,10 +616,15 @@ exports.down = knex => knex.raw(` DROP TABLE IF EXISTS social CASCADE; DROP TABLE IF EXISTS sites CASCADE; DROP TABLE IF EXISTS studios CASCADE; + DROP TABLE IF EXISTS media_sfw CASCADE; DROP TABLE IF EXISTS media CASCADE; DROP TABLE IF EXISTS countries CASCADE; DROP TABLE IF EXISTS networks CASCADE; + DROP FUNCTION IF EXISTS releases_by_tag_slugs; + DROP FUNCTION IF EXISTS search_sites; + DROP FUNCTION IF EXISTS get_random_sfw_media_id; + DROP TEXT SEARCH CONFIGURATION IF EXISTS traxxx; DROP TEXT SEARCH DICTIONARY IF EXISTS traxxx_dict; `); diff --git a/public/img/sfw/architecture/2td44mctvmI.jpeg b/public/img/sfw/architecture/2td44mctvmI.jpeg new file mode 100644 index 00000000..08cc3c0f Binary files /dev/null and b/public/img/sfw/architecture/2td44mctvmI.jpeg differ diff --git a/public/img/sfw/architecture/47QjuZBn5dQ.jpeg b/public/img/sfw/architecture/47QjuZBn5dQ.jpeg new file mode 100644 index 00000000..f76a2677 Binary files /dev/null and b/public/img/sfw/architecture/47QjuZBn5dQ.jpeg differ diff --git a/public/img/sfw/architecture/4rGlazYAV3I.jpeg b/public/img/sfw/architecture/4rGlazYAV3I.jpeg new file mode 100644 index 00000000..0e86a718 Binary files /dev/null and b/public/img/sfw/architecture/4rGlazYAV3I.jpeg differ diff --git a/public/img/sfw/architecture/6K4hh4VX3T0.jpeg b/public/img/sfw/architecture/6K4hh4VX3T0.jpeg new file mode 100644 index 00000000..a6f15a82 Binary files /dev/null and b/public/img/sfw/architecture/6K4hh4VX3T0.jpeg differ diff --git a/public/img/sfw/architecture/7HYbCXD2GSA.jpeg b/public/img/sfw/architecture/7HYbCXD2GSA.jpeg new file mode 100644 index 00000000..821c5748 Binary files /dev/null and b/public/img/sfw/architecture/7HYbCXD2GSA.jpeg differ diff --git a/public/img/sfw/architecture/9daKXiWx5Eg.jpeg b/public/img/sfw/architecture/9daKXiWx5Eg.jpeg new file mode 100644 index 00000000..d956f7d3 Binary files /dev/null and b/public/img/sfw/architecture/9daKXiWx5Eg.jpeg differ diff --git a/public/img/sfw/architecture/B8vwUO2NM9Y.jpeg b/public/img/sfw/architecture/B8vwUO2NM9Y.jpeg new file mode 100644 index 00000000..0738c98e Binary files /dev/null and b/public/img/sfw/architecture/B8vwUO2NM9Y.jpeg differ diff --git a/public/img/sfw/architecture/FJIFiUCOTfc.jpeg b/public/img/sfw/architecture/FJIFiUCOTfc.jpeg new file mode 100644 index 00000000..1f6f99c9 Binary files /dev/null and b/public/img/sfw/architecture/FJIFiUCOTfc.jpeg differ diff --git a/public/img/sfw/architecture/GGxUyCgfORg.jpeg b/public/img/sfw/architecture/GGxUyCgfORg.jpeg new file mode 100644 index 00000000..5658d16b Binary files /dev/null and b/public/img/sfw/architecture/GGxUyCgfORg.jpeg differ diff --git a/public/img/sfw/architecture/H3mL3kocOQ4.jpeg b/public/img/sfw/architecture/H3mL3kocOQ4.jpeg new file mode 100644 index 00000000..8cdbcb0f Binary files /dev/null and b/public/img/sfw/architecture/H3mL3kocOQ4.jpeg differ diff --git a/public/img/sfw/architecture/L-2jRW74fPY.jpeg b/public/img/sfw/architecture/L-2jRW74fPY.jpeg new file mode 100644 index 00000000..14e841ff Binary files /dev/null and b/public/img/sfw/architecture/L-2jRW74fPY.jpeg differ diff --git a/public/img/sfw/architecture/M1uoNRrNrkE.jpeg b/public/img/sfw/architecture/M1uoNRrNrkE.jpeg new file mode 100644 index 00000000..86489197 Binary files /dev/null and b/public/img/sfw/architecture/M1uoNRrNrkE.jpeg differ diff --git a/public/img/sfw/architecture/NrzNScsGgp8.jpeg b/public/img/sfw/architecture/NrzNScsGgp8.jpeg new file mode 100644 index 00000000..dfa1a454 Binary files /dev/null and b/public/img/sfw/architecture/NrzNScsGgp8.jpeg differ diff --git a/public/img/sfw/architecture/Qr5pi1_GlvY.jpeg b/public/img/sfw/architecture/Qr5pi1_GlvY.jpeg new file mode 100644 index 00000000..dd8ed77d Binary files /dev/null and b/public/img/sfw/architecture/Qr5pi1_GlvY.jpeg differ diff --git a/public/img/sfw/architecture/Ro6CB6x-VUg.jpeg b/public/img/sfw/architecture/Ro6CB6x-VUg.jpeg new file mode 100644 index 00000000..15a03c51 Binary files /dev/null and b/public/img/sfw/architecture/Ro6CB6x-VUg.jpeg differ diff --git a/public/img/sfw/architecture/VoQ35NRfZro.jpeg b/public/img/sfw/architecture/VoQ35NRfZro.jpeg new file mode 100644 index 00000000..16fb77e1 Binary files /dev/null and b/public/img/sfw/architecture/VoQ35NRfZro.jpeg differ diff --git a/public/img/sfw/architecture/WMrd7-CjyF0.jpeg b/public/img/sfw/architecture/WMrd7-CjyF0.jpeg new file mode 100644 index 00000000..341c6fba Binary files /dev/null and b/public/img/sfw/architecture/WMrd7-CjyF0.jpeg differ diff --git a/public/img/sfw/architecture/__credits.json b/public/img/sfw/architecture/__credits.json new file mode 100644 index 00000000..a49a7d33 --- /dev/null +++ b/public/img/sfw/architecture/__credits.json @@ -0,0 +1,152 @@ +{ + "jBanV-D3T-Q": { + "user_name": "Dimitry Anikin", + "user_url": "https://unsplash.com/@anikinearthwalker?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/jBanV-D3T-Q?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "VoQ35NRfZro": { + "user_name": "Dabbas", + "user_url": "https://unsplash.com/@dabbas?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/VoQ35NRfZro?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "_u_wI4LaT7o": { + "user_name": "Alex Hudson", + "user_url": "https://unsplash.com/@aliffhassan91?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/_u_wI4LaT7o?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "oSmn4cbhl8w": { + "user_name": "Jorge Gardner", + "user_url": "https://unsplash.com/@gardnerjorge?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/oSmn4cbhl8w?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "c8GdokJMjWU": { + "user_name": "Mert Kahveci", + "user_url": "https://unsplash.com/@mertkahveci?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/c8GdokJMjWU?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "nfPguKj20Ac": { + "user_name": "Ilya Panasenko", + "user_url": "https://unsplash.com/@ipanasenko?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/nfPguKj20Ac?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "GGxUyCgfORg": { + "user_name": "photo_comments", + "user_url": "https://unsplash.com/@photo_comments?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/GGxUyCgfORg?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "oLUPaceKme0": { + "user_name": "Jack Schwartz", + "user_url": "https://unsplash.com/@jack_s81?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/oLUPaceKme0?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "bo6oz4m4OXY": { + "user_name": "Vinicius Henrique", + "user_url": "https://unsplash.com/@viniciushenrique?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/bo6oz4m4OXY?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "7HYbCXD2GSA": { + "user_name": "Theme Inn", + "user_url": "https://unsplash.com/@themeinn?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/7HYbCXD2GSA?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "6K4hh4VX3T0": { + "user_name": "SaiKrishna Saketh", + "user_url": "https://unsplash.com/@saiksaketh?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/6K4hh4VX3T0?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "lTxOZBNZ9yM": { + "user_name": "[2Ni]", + "user_url": "https://unsplash.com/@2ni?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/lTxOZBNZ9yM?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "H3mL3kocOQ4": { + "user_name": "Artur Matosyan", + "user_url": "https://unsplash.com/@artmatters?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/H3mL3kocOQ4?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "ijxxeMO3c8E": { + "user_name": "Larry Teo", + "user_url": "https://unsplash.com/@larrytwh?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/ijxxeMO3c8E?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "WMrd7-CjyF0": { + "user_name": "Anna Claire Schellenberg", + "user_url": "https://unsplash.com/@thinspacesproductions?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/WMrd7-CjyF0?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "FJIFiUCOTfc": { + "user_name": "Kirsten Drew", + "user_url": "https://unsplash.com/@k_drew?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/FJIFiUCOTfc?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "9daKXiWx5Eg": { + "user_name": "Anastasia Dulgier", + "user_url": "https://unsplash.com/@dulgier?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/9daKXiWx5Eg?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "47QjuZBn5dQ": { + "user_name": "Murugavel Oli", + "user_url": "https://unsplash.com/@olimurugavel123?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/47QjuZBn5dQ?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "yjR2ne1gtAA": { + "user_name": "Marius", + "user_url": "https://unsplash.com/@marius_oprea?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/yjR2ne1gtAA?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "y9vO3FWDZb0": { + "user_name": "bckfwd", + "user_url": "https://unsplash.com/@bckfwd?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/y9vO3FWDZb0?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "Ro6CB6x-VUg": { + "user_name": "Andreas NextVoyagePL", + "user_url": "https://unsplash.com/@nextvoyage_pl?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/Ro6CB6x-VUg?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "2td44mctvmI": { + "user_name": "Cameron Venti", + "user_url": "https://unsplash.com/@ventiviews?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/2td44mctvmI?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "M1uoNRrNrkE": { + "user_name": "Willian Justen de Vasconcellos", + "user_url": "https://unsplash.com/@willianjusten?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/M1uoNRrNrkE?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "L-2jRW74fPY": { + "user_name": "Daryan Shamkhali", + "user_url": "https://unsplash.com/@daryan?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/L-2jRW74fPY?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "NrzNScsGgp8": { + "user_name": "Guy Basabose", + "user_url": "https://unsplash.com/@guybas?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/NrzNScsGgp8?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "Qr5pi1_GlvY": { + "user_name": "Benno Klandt", + "user_url": "https://unsplash.com/@bennoklandt?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/Qr5pi1_GlvY?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "twruXW0M2Mw": { + "user_name": "sk", + "user_url": "https://unsplash.com/@rollelflex_graphy726?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/twruXW0M2Mw?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "B8vwUO2NM9Y": { + "user_name": "Stuart Frisby", + "user_url": "https://unsplash.com/@mrfrisby?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/B8vwUO2NM9Y?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "p9jBrqMSU6Q": { + "user_name": "Han Leentvaar", + "user_url": "https://unsplash.com/@hleen?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/p9jBrqMSU6Q?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "4rGlazYAV3I": { + "user_name": "Dmitry Bayer", + "user_url": "https://unsplash.com/@dmitrybayer?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/4rGlazYAV3I?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + } +} \ No newline at end of file diff --git a/public/img/sfw/architecture/_u_wI4LaT7o.jpeg b/public/img/sfw/architecture/_u_wI4LaT7o.jpeg new file mode 100644 index 00000000..f1ea0f85 Binary files /dev/null and b/public/img/sfw/architecture/_u_wI4LaT7o.jpeg differ diff --git a/public/img/sfw/architecture/bo6oz4m4OXY.jpeg b/public/img/sfw/architecture/bo6oz4m4OXY.jpeg new file mode 100644 index 00000000..d7c3fbbd Binary files /dev/null and b/public/img/sfw/architecture/bo6oz4m4OXY.jpeg differ diff --git a/public/img/sfw/architecture/c8GdokJMjWU.jpeg b/public/img/sfw/architecture/c8GdokJMjWU.jpeg new file mode 100644 index 00000000..eff2ac41 Binary files /dev/null and b/public/img/sfw/architecture/c8GdokJMjWU.jpeg differ diff --git a/public/img/sfw/architecture/ijxxeMO3c8E.jpeg b/public/img/sfw/architecture/ijxxeMO3c8E.jpeg new file mode 100644 index 00000000..0b49e9f6 Binary files /dev/null and b/public/img/sfw/architecture/ijxxeMO3c8E.jpeg differ diff --git a/public/img/sfw/architecture/jBanV-D3T-Q.jpeg b/public/img/sfw/architecture/jBanV-D3T-Q.jpeg new file mode 100644 index 00000000..f51d7438 Binary files /dev/null and b/public/img/sfw/architecture/jBanV-D3T-Q.jpeg differ diff --git a/public/img/sfw/architecture/lTxOZBNZ9yM.jpeg b/public/img/sfw/architecture/lTxOZBNZ9yM.jpeg new file mode 100644 index 00000000..71c1b8cf Binary files /dev/null and b/public/img/sfw/architecture/lTxOZBNZ9yM.jpeg differ diff --git a/public/img/sfw/architecture/nfPguKj20Ac.jpeg b/public/img/sfw/architecture/nfPguKj20Ac.jpeg new file mode 100644 index 00000000..a3d83d7c Binary files /dev/null and b/public/img/sfw/architecture/nfPguKj20Ac.jpeg differ diff --git a/public/img/sfw/architecture/oLUPaceKme0.jpeg b/public/img/sfw/architecture/oLUPaceKme0.jpeg new file mode 100644 index 00000000..327cc409 Binary files /dev/null and b/public/img/sfw/architecture/oLUPaceKme0.jpeg differ diff --git a/public/img/sfw/architecture/oSmn4cbhl8w.jpeg b/public/img/sfw/architecture/oSmn4cbhl8w.jpeg new file mode 100644 index 00000000..3edcf75b Binary files /dev/null and b/public/img/sfw/architecture/oSmn4cbhl8w.jpeg differ diff --git a/public/img/sfw/architecture/p9jBrqMSU6Q.jpeg b/public/img/sfw/architecture/p9jBrqMSU6Q.jpeg new file mode 100644 index 00000000..661aa418 Binary files /dev/null and b/public/img/sfw/architecture/p9jBrqMSU6Q.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/2td44mctvmI.jpeg b/public/img/sfw/architecture/thumbs/2td44mctvmI.jpeg new file mode 100644 index 00000000..f7282981 Binary files /dev/null and b/public/img/sfw/architecture/thumbs/2td44mctvmI.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/47QjuZBn5dQ.jpeg b/public/img/sfw/architecture/thumbs/47QjuZBn5dQ.jpeg new file mode 100644 index 00000000..d6bc3450 Binary files /dev/null and b/public/img/sfw/architecture/thumbs/47QjuZBn5dQ.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/4rGlazYAV3I.jpeg b/public/img/sfw/architecture/thumbs/4rGlazYAV3I.jpeg new file mode 100644 index 00000000..a4b0dfe9 Binary files /dev/null and b/public/img/sfw/architecture/thumbs/4rGlazYAV3I.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/6K4hh4VX3T0.jpeg b/public/img/sfw/architecture/thumbs/6K4hh4VX3T0.jpeg new file mode 100644 index 00000000..fe518652 Binary files /dev/null and b/public/img/sfw/architecture/thumbs/6K4hh4VX3T0.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/7HYbCXD2GSA.jpeg b/public/img/sfw/architecture/thumbs/7HYbCXD2GSA.jpeg new file mode 100644 index 00000000..33775bda Binary files /dev/null and b/public/img/sfw/architecture/thumbs/7HYbCXD2GSA.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/9daKXiWx5Eg.jpeg b/public/img/sfw/architecture/thumbs/9daKXiWx5Eg.jpeg new file mode 100644 index 00000000..e22d6b67 Binary files /dev/null and b/public/img/sfw/architecture/thumbs/9daKXiWx5Eg.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/B8vwUO2NM9Y.jpeg b/public/img/sfw/architecture/thumbs/B8vwUO2NM9Y.jpeg new file mode 100644 index 00000000..2584e0bd Binary files /dev/null and b/public/img/sfw/architecture/thumbs/B8vwUO2NM9Y.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/FJIFiUCOTfc.jpeg b/public/img/sfw/architecture/thumbs/FJIFiUCOTfc.jpeg new file mode 100644 index 00000000..b3abd40f Binary files /dev/null and b/public/img/sfw/architecture/thumbs/FJIFiUCOTfc.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/GGxUyCgfORg.jpeg b/public/img/sfw/architecture/thumbs/GGxUyCgfORg.jpeg new file mode 100644 index 00000000..c9ff223b Binary files /dev/null and b/public/img/sfw/architecture/thumbs/GGxUyCgfORg.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/H3mL3kocOQ4.jpeg b/public/img/sfw/architecture/thumbs/H3mL3kocOQ4.jpeg new file mode 100644 index 00000000..ecce6856 Binary files /dev/null and b/public/img/sfw/architecture/thumbs/H3mL3kocOQ4.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/L-2jRW74fPY.jpeg b/public/img/sfw/architecture/thumbs/L-2jRW74fPY.jpeg new file mode 100644 index 00000000..b3c3fa7a Binary files /dev/null and b/public/img/sfw/architecture/thumbs/L-2jRW74fPY.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/M1uoNRrNrkE.jpeg b/public/img/sfw/architecture/thumbs/M1uoNRrNrkE.jpeg new file mode 100644 index 00000000..15df6ff3 Binary files /dev/null and b/public/img/sfw/architecture/thumbs/M1uoNRrNrkE.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/NrzNScsGgp8.jpeg b/public/img/sfw/architecture/thumbs/NrzNScsGgp8.jpeg new file mode 100644 index 00000000..864bfa45 Binary files /dev/null and b/public/img/sfw/architecture/thumbs/NrzNScsGgp8.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/Qr5pi1_GlvY.jpeg b/public/img/sfw/architecture/thumbs/Qr5pi1_GlvY.jpeg new file mode 100644 index 00000000..ee6d6b43 Binary files /dev/null and b/public/img/sfw/architecture/thumbs/Qr5pi1_GlvY.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/Ro6CB6x-VUg.jpeg b/public/img/sfw/architecture/thumbs/Ro6CB6x-VUg.jpeg new file mode 100644 index 00000000..7580e6b8 Binary files /dev/null and b/public/img/sfw/architecture/thumbs/Ro6CB6x-VUg.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/VoQ35NRfZro.jpeg b/public/img/sfw/architecture/thumbs/VoQ35NRfZro.jpeg new file mode 100644 index 00000000..e953dbb0 Binary files /dev/null and b/public/img/sfw/architecture/thumbs/VoQ35NRfZro.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/WMrd7-CjyF0.jpeg b/public/img/sfw/architecture/thumbs/WMrd7-CjyF0.jpeg new file mode 100644 index 00000000..ffcdde34 Binary files /dev/null and b/public/img/sfw/architecture/thumbs/WMrd7-CjyF0.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/_u_wI4LaT7o.jpeg b/public/img/sfw/architecture/thumbs/_u_wI4LaT7o.jpeg new file mode 100644 index 00000000..778c28de Binary files /dev/null and b/public/img/sfw/architecture/thumbs/_u_wI4LaT7o.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/bo6oz4m4OXY.jpeg b/public/img/sfw/architecture/thumbs/bo6oz4m4OXY.jpeg new file mode 100644 index 00000000..f0644ac6 Binary files /dev/null and b/public/img/sfw/architecture/thumbs/bo6oz4m4OXY.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/c8GdokJMjWU.jpeg b/public/img/sfw/architecture/thumbs/c8GdokJMjWU.jpeg new file mode 100644 index 00000000..00bc4f99 Binary files /dev/null and b/public/img/sfw/architecture/thumbs/c8GdokJMjWU.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/ijxxeMO3c8E.jpeg b/public/img/sfw/architecture/thumbs/ijxxeMO3c8E.jpeg new file mode 100644 index 00000000..83ef0420 Binary files /dev/null and b/public/img/sfw/architecture/thumbs/ijxxeMO3c8E.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/jBanV-D3T-Q.jpeg b/public/img/sfw/architecture/thumbs/jBanV-D3T-Q.jpeg new file mode 100644 index 00000000..f5f90dc0 Binary files /dev/null and b/public/img/sfw/architecture/thumbs/jBanV-D3T-Q.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/lTxOZBNZ9yM.jpeg b/public/img/sfw/architecture/thumbs/lTxOZBNZ9yM.jpeg new file mode 100644 index 00000000..228e47e3 Binary files /dev/null and b/public/img/sfw/architecture/thumbs/lTxOZBNZ9yM.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/nfPguKj20Ac.jpeg b/public/img/sfw/architecture/thumbs/nfPguKj20Ac.jpeg new file mode 100644 index 00000000..85340b8e Binary files /dev/null and b/public/img/sfw/architecture/thumbs/nfPguKj20Ac.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/oLUPaceKme0.jpeg b/public/img/sfw/architecture/thumbs/oLUPaceKme0.jpeg new file mode 100644 index 00000000..55ca60d3 Binary files /dev/null and b/public/img/sfw/architecture/thumbs/oLUPaceKme0.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/oSmn4cbhl8w.jpeg b/public/img/sfw/architecture/thumbs/oSmn4cbhl8w.jpeg new file mode 100644 index 00000000..11826388 Binary files /dev/null and b/public/img/sfw/architecture/thumbs/oSmn4cbhl8w.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/p9jBrqMSU6Q.jpeg b/public/img/sfw/architecture/thumbs/p9jBrqMSU6Q.jpeg new file mode 100644 index 00000000..0bef0c63 Binary files /dev/null and b/public/img/sfw/architecture/thumbs/p9jBrqMSU6Q.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/twruXW0M2Mw.jpeg b/public/img/sfw/architecture/thumbs/twruXW0M2Mw.jpeg new file mode 100644 index 00000000..392e4202 Binary files /dev/null and b/public/img/sfw/architecture/thumbs/twruXW0M2Mw.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/y9vO3FWDZb0.jpeg b/public/img/sfw/architecture/thumbs/y9vO3FWDZb0.jpeg new file mode 100644 index 00000000..3a18c0a0 Binary files /dev/null and b/public/img/sfw/architecture/thumbs/y9vO3FWDZb0.jpeg differ diff --git a/public/img/sfw/architecture/thumbs/yjR2ne1gtAA.jpeg b/public/img/sfw/architecture/thumbs/yjR2ne1gtAA.jpeg new file mode 100644 index 00000000..14fcf74b Binary files /dev/null and b/public/img/sfw/architecture/thumbs/yjR2ne1gtAA.jpeg differ diff --git a/public/img/sfw/architecture/twruXW0M2Mw.jpeg b/public/img/sfw/architecture/twruXW0M2Mw.jpeg new file mode 100644 index 00000000..c72c3d13 Binary files /dev/null and b/public/img/sfw/architecture/twruXW0M2Mw.jpeg differ diff --git a/public/img/sfw/architecture/y9vO3FWDZb0.jpeg b/public/img/sfw/architecture/y9vO3FWDZb0.jpeg new file mode 100644 index 00000000..94ee0883 Binary files /dev/null and b/public/img/sfw/architecture/y9vO3FWDZb0.jpeg differ diff --git a/public/img/sfw/architecture/yjR2ne1gtAA.jpeg b/public/img/sfw/architecture/yjR2ne1gtAA.jpeg new file mode 100644 index 00000000..afa5a7d5 Binary files /dev/null and b/public/img/sfw/architecture/yjR2ne1gtAA.jpeg differ diff --git a/public/img/sfw/flowers/3TXuFNun-5Q.jpeg b/public/img/sfw/flowers/3TXuFNun-5Q.jpeg new file mode 100644 index 00000000..27bdfa15 Binary files /dev/null and b/public/img/sfw/flowers/3TXuFNun-5Q.jpeg differ diff --git a/public/img/sfw/flowers/4QLKuXKAy7k.jpeg b/public/img/sfw/flowers/4QLKuXKAy7k.jpeg new file mode 100644 index 00000000..3a311930 Binary files /dev/null and b/public/img/sfw/flowers/4QLKuXKAy7k.jpeg differ diff --git a/public/img/sfw/flowers/7pGehyH7o64.jpeg b/public/img/sfw/flowers/7pGehyH7o64.jpeg new file mode 100644 index 00000000..faf8c011 Binary files /dev/null and b/public/img/sfw/flowers/7pGehyH7o64.jpeg differ diff --git a/public/img/sfw/flowers/8ANiHTtHbAQ.jpeg b/public/img/sfw/flowers/8ANiHTtHbAQ.jpeg new file mode 100644 index 00000000..a27da7d1 Binary files /dev/null and b/public/img/sfw/flowers/8ANiHTtHbAQ.jpeg differ diff --git a/public/img/sfw/flowers/9wQ-aGu0gBs.jpeg b/public/img/sfw/flowers/9wQ-aGu0gBs.jpeg new file mode 100644 index 00000000..3e9fc174 Binary files /dev/null and b/public/img/sfw/flowers/9wQ-aGu0gBs.jpeg differ diff --git a/public/img/sfw/flowers/D5RScffd8WU.jpeg b/public/img/sfw/flowers/D5RScffd8WU.jpeg new file mode 100644 index 00000000..38bac5e6 Binary files /dev/null and b/public/img/sfw/flowers/D5RScffd8WU.jpeg differ diff --git a/public/img/sfw/flowers/DlYzHwAl32g.jpeg b/public/img/sfw/flowers/DlYzHwAl32g.jpeg new file mode 100644 index 00000000..6a4469db Binary files /dev/null and b/public/img/sfw/flowers/DlYzHwAl32g.jpeg differ diff --git a/public/img/sfw/flowers/Ehko8EbURbk.jpeg b/public/img/sfw/flowers/Ehko8EbURbk.jpeg new file mode 100644 index 00000000..7b36bbac Binary files /dev/null and b/public/img/sfw/flowers/Ehko8EbURbk.jpeg differ diff --git a/public/img/sfw/flowers/GnwWHUXBfYI.jpeg b/public/img/sfw/flowers/GnwWHUXBfYI.jpeg new file mode 100644 index 00000000..15ccea80 Binary files /dev/null and b/public/img/sfw/flowers/GnwWHUXBfYI.jpeg differ diff --git a/public/img/sfw/flowers/HG5RcKEawLA.jpeg b/public/img/sfw/flowers/HG5RcKEawLA.jpeg new file mode 100644 index 00000000..10ea1ee3 Binary files /dev/null and b/public/img/sfw/flowers/HG5RcKEawLA.jpeg differ diff --git a/public/img/sfw/flowers/REczfcmwooE.jpeg b/public/img/sfw/flowers/REczfcmwooE.jpeg new file mode 100644 index 00000000..24856b79 Binary files /dev/null and b/public/img/sfw/flowers/REczfcmwooE.jpeg differ diff --git a/public/img/sfw/flowers/RWz313DUECo.jpeg b/public/img/sfw/flowers/RWz313DUECo.jpeg new file mode 100644 index 00000000..444bba6c Binary files /dev/null and b/public/img/sfw/flowers/RWz313DUECo.jpeg differ diff --git a/public/img/sfw/flowers/Rlxfn__azLQ.jpeg b/public/img/sfw/flowers/Rlxfn__azLQ.jpeg new file mode 100644 index 00000000..05a8d027 Binary files /dev/null and b/public/img/sfw/flowers/Rlxfn__azLQ.jpeg differ diff --git a/public/img/sfw/flowers/Rrhfeq9yeQ0.jpeg b/public/img/sfw/flowers/Rrhfeq9yeQ0.jpeg new file mode 100644 index 00000000..6c183ba1 Binary files /dev/null and b/public/img/sfw/flowers/Rrhfeq9yeQ0.jpeg differ diff --git a/public/img/sfw/flowers/VBtdWGCQ2yw.jpeg b/public/img/sfw/flowers/VBtdWGCQ2yw.jpeg new file mode 100644 index 00000000..e25caef6 Binary files /dev/null and b/public/img/sfw/flowers/VBtdWGCQ2yw.jpeg differ diff --git a/public/img/sfw/flowers/YaQdJyulJdU.jpeg b/public/img/sfw/flowers/YaQdJyulJdU.jpeg new file mode 100644 index 00000000..933dd3a2 Binary files /dev/null and b/public/img/sfw/flowers/YaQdJyulJdU.jpeg differ diff --git a/public/img/sfw/flowers/__credits.json b/public/img/sfw/flowers/__credits.json new file mode 100644 index 00000000..fcbbebff --- /dev/null +++ b/public/img/sfw/flowers/__credits.json @@ -0,0 +1,152 @@ +{ + "4QLKuXKAy7k": { + "user_name": "BEAUFIGEAU CELINE", + "user_url": "https://unsplash.com/@celinebeaufigeau?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/4QLKuXKAy7k?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "DlYzHwAl32g": { + "user_name": "HISANARI KUNIMOTO", + "user_url": "https://unsplash.com/@kunigntite?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/DlYzHwAl32g?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "3TXuFNun-5Q": { + "user_name": "Erik Andres Reynoso", + "user_url": "https://unsplash.com/@ereynoso?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/3TXuFNun-5Q?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "Rrhfeq9yeQ0": { + "user_name": "NeONBRAND", + "user_url": "https://unsplash.com/@neonbrand?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/Rrhfeq9yeQ0?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "YaQdJyulJdU": { + "user_name": "Natasha V", + "user_url": "https://unsplash.com/@njvans?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/YaQdJyulJdU?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "n0yND3VH72E": { + "user_name": "Rodolfo Sanches Carvalho", + "user_url": "https://unsplash.com/@rsanchescarvalho?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/n0yND3VH72E?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "wt4u1wNiT9I": { + "user_name": "Teo Zac", + "user_url": "https://unsplash.com/@teo?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/wt4u1wNiT9I?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "HG5RcKEawLA": { + "user_name": "Varshesh Joshi", + "user_url": "https://unsplash.com/@varshesh?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/HG5RcKEawLA?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "VBtdWGCQ2yw": { + "user_name": "Vanessa Ochotorena", + "user_url": "https://unsplash.com/@vanephoto?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/VBtdWGCQ2yw?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "W2I7ZE9c8xQ": { + "user_name": "David Thomaz", + "user_url": "https://unsplash.com/@davidthomaz?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/W2I7ZE9c8xQ?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "a-lIQzpvbHs": { + "user_name": "Thomas AE", + "user_url": "https://unsplash.com/@thomasae?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/a-lIQzpvbHs?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "D5RScffd8WU": { + "user_name": "NeONBRAND", + "user_url": "https://unsplash.com/@neonbrand?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/D5RScffd8WU?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "mXQyEcINwa8": { + "user_name": "Thought Catalog", + "user_url": "https://unsplash.com/@thoughtcatalog?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/mXQyEcINwa8?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "REczfcmwooE": { + "user_name": "Steve Harvey", + "user_url": "https://unsplash.com/@trommelkopf?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/REczfcmwooE?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "7pGehyH7o64": { + "user_name": "Leonardo Wong", + "user_url": "https://unsplash.com/@nardoleo?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/7pGehyH7o64?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "dXP204Hy_U4": { + "user_name": "JD Mason", + "user_url": "https://unsplash.com/@jmason?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/dXP204Hy_U4?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "wvGQYtZ_c08": { + "user_name": "chuttersnap", + "user_url": "https://unsplash.com/@chuttersnap?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/wvGQYtZ_c08?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "jjqZ0gvHLYc": { + "user_name": "Suresh Purohit", + "user_url": "https://unsplash.com/@skpurohit66?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/jjqZ0gvHLYc?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "9wQ-aGu0gBs": { + "user_name": "Joël de Vriend", + "user_url": "https://unsplash.com/@joeldevriend?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/9wQ-aGu0gBs?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "8ANiHTtHbAQ": { + "user_name": "Nick Karvounis", + "user_url": "https://unsplash.com/@nickkarvounis?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/8ANiHTtHbAQ?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "Ehko8EbURbk": { + "user_name": "Chris Barbalis", + "user_url": "https://unsplash.com/@cbarbalis?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/Ehko8EbURbk?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "Rlxfn__azLQ": { + "user_name": "Annie Spratt", + "user_url": "https://unsplash.com/@anniespratt?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/Rlxfn__azLQ?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "q8I3Jeph4uU": { + "user_name": "Jake Dela Concepcion", + "user_url": "https://unsplash.com/@jakeedc?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/q8I3Jeph4uU?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "wQjjYp8_a0Y": { + "user_name": "Henry Lorenzatto", + "user_url": "https://unsplash.com/@henryatto?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/wQjjYp8_a0Y?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "GnwWHUXBfYI": { + "user_name": "Will Svec", + "user_url": "https://unsplash.com/@will_svec?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/GnwWHUXBfYI?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "ssnw3Qrygng": { + "user_name": "Jeremy Bishop", + "user_url": "https://unsplash.com/@jeremybishop?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/ssnw3Qrygng?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "pwFNVBlj5XU": { + "user_name": "Danijela Froki", + "user_url": "https://unsplash.com/@frokz?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/pwFNVBlj5XU?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "RWz313DUECo": { + "user_name": "Laura Baker", + "user_url": "https://unsplash.com/@templeofthedove?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/RWz313DUECo?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "lffwXgsqChg": { + "user_name": "Nils Schirmer", + "user_url": "https://unsplash.com/@nilsschirmer?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/lffwXgsqChg?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "e1O6NCmhUt4": { + "user_name": "Brian McGowan", + "user_url": "https://unsplash.com/@sushioutlaw?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/e1O6NCmhUt4?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + } +} \ No newline at end of file diff --git a/public/img/sfw/flowers/a-lIQzpvbHs.jpeg b/public/img/sfw/flowers/a-lIQzpvbHs.jpeg new file mode 100644 index 00000000..7b24145b Binary files /dev/null and b/public/img/sfw/flowers/a-lIQzpvbHs.jpeg differ diff --git a/public/img/sfw/flowers/e1O6NCmhUt4.jpeg b/public/img/sfw/flowers/e1O6NCmhUt4.jpeg new file mode 100644 index 00000000..137b502b Binary files /dev/null and b/public/img/sfw/flowers/e1O6NCmhUt4.jpeg differ diff --git a/public/img/sfw/flowers/jjqZ0gvHLYc.jpeg b/public/img/sfw/flowers/jjqZ0gvHLYc.jpeg new file mode 100644 index 00000000..7976bd48 Binary files /dev/null and b/public/img/sfw/flowers/jjqZ0gvHLYc.jpeg differ diff --git a/public/img/sfw/flowers/lffwXgsqChg.jpeg b/public/img/sfw/flowers/lffwXgsqChg.jpeg new file mode 100644 index 00000000..682b9cd0 Binary files /dev/null and b/public/img/sfw/flowers/lffwXgsqChg.jpeg differ diff --git a/public/img/sfw/flowers/mXQyEcINwa8.jpeg b/public/img/sfw/flowers/mXQyEcINwa8.jpeg new file mode 100644 index 00000000..d3854d6d Binary files /dev/null and b/public/img/sfw/flowers/mXQyEcINwa8.jpeg differ diff --git a/public/img/sfw/flowers/pwFNVBlj5XU.jpeg b/public/img/sfw/flowers/pwFNVBlj5XU.jpeg new file mode 100644 index 00000000..972e4def Binary files /dev/null and b/public/img/sfw/flowers/pwFNVBlj5XU.jpeg differ diff --git a/public/img/sfw/flowers/q8I3Jeph4uU.jpeg b/public/img/sfw/flowers/q8I3Jeph4uU.jpeg new file mode 100644 index 00000000..7a17e06e Binary files /dev/null and b/public/img/sfw/flowers/q8I3Jeph4uU.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/3TXuFNun-5Q.jpeg b/public/img/sfw/flowers/thumbs/3TXuFNun-5Q.jpeg new file mode 100644 index 00000000..9ac77516 Binary files /dev/null and b/public/img/sfw/flowers/thumbs/3TXuFNun-5Q.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/4QLKuXKAy7k.jpeg b/public/img/sfw/flowers/thumbs/4QLKuXKAy7k.jpeg new file mode 100644 index 00000000..bb1084c1 Binary files /dev/null and b/public/img/sfw/flowers/thumbs/4QLKuXKAy7k.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/7pGehyH7o64.jpeg b/public/img/sfw/flowers/thumbs/7pGehyH7o64.jpeg new file mode 100644 index 00000000..8aedbb97 Binary files /dev/null and b/public/img/sfw/flowers/thumbs/7pGehyH7o64.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/8ANiHTtHbAQ.jpeg b/public/img/sfw/flowers/thumbs/8ANiHTtHbAQ.jpeg new file mode 100644 index 00000000..b0407c81 Binary files /dev/null and b/public/img/sfw/flowers/thumbs/8ANiHTtHbAQ.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/9wQ-aGu0gBs.jpeg b/public/img/sfw/flowers/thumbs/9wQ-aGu0gBs.jpeg new file mode 100644 index 00000000..2ed30e5a Binary files /dev/null and b/public/img/sfw/flowers/thumbs/9wQ-aGu0gBs.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/D5RScffd8WU.jpeg b/public/img/sfw/flowers/thumbs/D5RScffd8WU.jpeg new file mode 100644 index 00000000..546e5e9a Binary files /dev/null and b/public/img/sfw/flowers/thumbs/D5RScffd8WU.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/DlYzHwAl32g.jpeg b/public/img/sfw/flowers/thumbs/DlYzHwAl32g.jpeg new file mode 100644 index 00000000..1db33711 Binary files /dev/null and b/public/img/sfw/flowers/thumbs/DlYzHwAl32g.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/Ehko8EbURbk.jpeg b/public/img/sfw/flowers/thumbs/Ehko8EbURbk.jpeg new file mode 100644 index 00000000..739349c9 Binary files /dev/null and b/public/img/sfw/flowers/thumbs/Ehko8EbURbk.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/GnwWHUXBfYI.jpeg b/public/img/sfw/flowers/thumbs/GnwWHUXBfYI.jpeg new file mode 100644 index 00000000..3817a721 Binary files /dev/null and b/public/img/sfw/flowers/thumbs/GnwWHUXBfYI.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/HG5RcKEawLA.jpeg b/public/img/sfw/flowers/thumbs/HG5RcKEawLA.jpeg new file mode 100644 index 00000000..fc781ed5 Binary files /dev/null and b/public/img/sfw/flowers/thumbs/HG5RcKEawLA.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/REczfcmwooE.jpeg b/public/img/sfw/flowers/thumbs/REczfcmwooE.jpeg new file mode 100644 index 00000000..e994b52b Binary files /dev/null and b/public/img/sfw/flowers/thumbs/REczfcmwooE.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/RWz313DUECo.jpeg b/public/img/sfw/flowers/thumbs/RWz313DUECo.jpeg new file mode 100644 index 00000000..141e64dd Binary files /dev/null and b/public/img/sfw/flowers/thumbs/RWz313DUECo.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/Rlxfn__azLQ.jpeg b/public/img/sfw/flowers/thumbs/Rlxfn__azLQ.jpeg new file mode 100644 index 00000000..86dd8cca Binary files /dev/null and b/public/img/sfw/flowers/thumbs/Rlxfn__azLQ.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/Rrhfeq9yeQ0.jpeg b/public/img/sfw/flowers/thumbs/Rrhfeq9yeQ0.jpeg new file mode 100644 index 00000000..0467459c Binary files /dev/null and b/public/img/sfw/flowers/thumbs/Rrhfeq9yeQ0.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/VBtdWGCQ2yw.jpeg b/public/img/sfw/flowers/thumbs/VBtdWGCQ2yw.jpeg new file mode 100644 index 00000000..b69f9447 Binary files /dev/null and b/public/img/sfw/flowers/thumbs/VBtdWGCQ2yw.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/YaQdJyulJdU.jpeg b/public/img/sfw/flowers/thumbs/YaQdJyulJdU.jpeg new file mode 100644 index 00000000..cccfde2e Binary files /dev/null and b/public/img/sfw/flowers/thumbs/YaQdJyulJdU.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/a-lIQzpvbHs.jpeg b/public/img/sfw/flowers/thumbs/a-lIQzpvbHs.jpeg new file mode 100644 index 00000000..31aef86e Binary files /dev/null and b/public/img/sfw/flowers/thumbs/a-lIQzpvbHs.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/e1O6NCmhUt4.jpeg b/public/img/sfw/flowers/thumbs/e1O6NCmhUt4.jpeg new file mode 100644 index 00000000..0ce29b53 Binary files /dev/null and b/public/img/sfw/flowers/thumbs/e1O6NCmhUt4.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/jjqZ0gvHLYc.jpeg b/public/img/sfw/flowers/thumbs/jjqZ0gvHLYc.jpeg new file mode 100644 index 00000000..6facb450 Binary files /dev/null and b/public/img/sfw/flowers/thumbs/jjqZ0gvHLYc.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/lffwXgsqChg.jpeg b/public/img/sfw/flowers/thumbs/lffwXgsqChg.jpeg new file mode 100644 index 00000000..0a3ecb30 Binary files /dev/null and b/public/img/sfw/flowers/thumbs/lffwXgsqChg.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/mXQyEcINwa8.jpeg b/public/img/sfw/flowers/thumbs/mXQyEcINwa8.jpeg new file mode 100644 index 00000000..f53009d4 Binary files /dev/null and b/public/img/sfw/flowers/thumbs/mXQyEcINwa8.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/pwFNVBlj5XU.jpeg b/public/img/sfw/flowers/thumbs/pwFNVBlj5XU.jpeg new file mode 100644 index 00000000..f3e60e06 Binary files /dev/null and b/public/img/sfw/flowers/thumbs/pwFNVBlj5XU.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/q8I3Jeph4uU.jpeg b/public/img/sfw/flowers/thumbs/q8I3Jeph4uU.jpeg new file mode 100644 index 00000000..c4b76c78 Binary files /dev/null and b/public/img/sfw/flowers/thumbs/q8I3Jeph4uU.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/wQjjYp8_a0Y.jpeg b/public/img/sfw/flowers/thumbs/wQjjYp8_a0Y.jpeg new file mode 100644 index 00000000..bf8afc98 Binary files /dev/null and b/public/img/sfw/flowers/thumbs/wQjjYp8_a0Y.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/wt4u1wNiT9I.jpeg b/public/img/sfw/flowers/thumbs/wt4u1wNiT9I.jpeg new file mode 100644 index 00000000..11ab0cff Binary files /dev/null and b/public/img/sfw/flowers/thumbs/wt4u1wNiT9I.jpeg differ diff --git a/public/img/sfw/flowers/thumbs/wvGQYtZ_c08.jpeg b/public/img/sfw/flowers/thumbs/wvGQYtZ_c08.jpeg new file mode 100644 index 00000000..f29fc5bf Binary files /dev/null and b/public/img/sfw/flowers/thumbs/wvGQYtZ_c08.jpeg differ diff --git a/public/img/sfw/flowers/wQjjYp8_a0Y.jpeg b/public/img/sfw/flowers/wQjjYp8_a0Y.jpeg new file mode 100644 index 00000000..8dae0bff Binary files /dev/null and b/public/img/sfw/flowers/wQjjYp8_a0Y.jpeg differ diff --git a/public/img/sfw/flowers/wt4u1wNiT9I.jpeg b/public/img/sfw/flowers/wt4u1wNiT9I.jpeg new file mode 100644 index 00000000..fe982e20 Binary files /dev/null and b/public/img/sfw/flowers/wt4u1wNiT9I.jpeg differ diff --git a/public/img/sfw/flowers/wvGQYtZ_c08.jpeg b/public/img/sfw/flowers/wvGQYtZ_c08.jpeg new file mode 100644 index 00000000..bbfbdbf6 Binary files /dev/null and b/public/img/sfw/flowers/wvGQYtZ_c08.jpeg differ diff --git a/public/img/sfw/food/1ZTccDpF71k.jpeg b/public/img/sfw/food/1ZTccDpF71k.jpeg new file mode 100644 index 00000000..c7137ef0 Binary files /dev/null and b/public/img/sfw/food/1ZTccDpF71k.jpeg differ diff --git a/public/img/sfw/food/4-rmvQRL2nY.jpeg b/public/img/sfw/food/4-rmvQRL2nY.jpeg new file mode 100644 index 00000000..1bb6fb79 Binary files /dev/null and b/public/img/sfw/food/4-rmvQRL2nY.jpeg differ diff --git a/public/img/sfw/food/44eKcVXzFoc.jpeg b/public/img/sfw/food/44eKcVXzFoc.jpeg new file mode 100644 index 00000000..96ec2e5b Binary files /dev/null and b/public/img/sfw/food/44eKcVXzFoc.jpeg differ diff --git a/public/img/sfw/food/4E0dknSrQVU.jpeg b/public/img/sfw/food/4E0dknSrQVU.jpeg new file mode 100644 index 00000000..a2e738cd Binary files /dev/null and b/public/img/sfw/food/4E0dknSrQVU.jpeg differ diff --git a/public/img/sfw/food/4PtChDuxsDI.jpeg b/public/img/sfw/food/4PtChDuxsDI.jpeg new file mode 100644 index 00000000..f8d98573 Binary files /dev/null and b/public/img/sfw/food/4PtChDuxsDI.jpeg differ diff --git a/public/img/sfw/food/8JIIoSFtEbo.jpeg b/public/img/sfw/food/8JIIoSFtEbo.jpeg new file mode 100644 index 00000000..17f56067 Binary files /dev/null and b/public/img/sfw/food/8JIIoSFtEbo.jpeg differ diff --git a/public/img/sfw/food/8Yvwy4Kbd1g.jpeg b/public/img/sfw/food/8Yvwy4Kbd1g.jpeg new file mode 100644 index 00000000..ea657250 Binary files /dev/null and b/public/img/sfw/food/8Yvwy4Kbd1g.jpeg differ diff --git a/public/img/sfw/food/9TWavGempJc.jpeg b/public/img/sfw/food/9TWavGempJc.jpeg new file mode 100644 index 00000000..25969e10 Binary files /dev/null and b/public/img/sfw/food/9TWavGempJc.jpeg differ diff --git a/public/img/sfw/food/9cfHdC2Asak.jpeg b/public/img/sfw/food/9cfHdC2Asak.jpeg new file mode 100644 index 00000000..0d098cf7 Binary files /dev/null and b/public/img/sfw/food/9cfHdC2Asak.jpeg differ diff --git a/public/img/sfw/food/9vHOhKoNlNw.jpeg b/public/img/sfw/food/9vHOhKoNlNw.jpeg new file mode 100644 index 00000000..b6b949bd Binary files /dev/null and b/public/img/sfw/food/9vHOhKoNlNw.jpeg differ diff --git a/public/img/sfw/food/Au-LzDMd_Cw.jpeg b/public/img/sfw/food/Au-LzDMd_Cw.jpeg new file mode 100644 index 00000000..f3baa92e Binary files /dev/null and b/public/img/sfw/food/Au-LzDMd_Cw.jpeg differ diff --git a/public/img/sfw/food/BKSntHf8oiU.jpeg b/public/img/sfw/food/BKSntHf8oiU.jpeg new file mode 100644 index 00000000..3a1bede8 Binary files /dev/null and b/public/img/sfw/food/BKSntHf8oiU.jpeg differ diff --git a/public/img/sfw/food/DPNrBT1WCMs.jpeg b/public/img/sfw/food/DPNrBT1WCMs.jpeg new file mode 100644 index 00000000..49ac5dbf Binary files /dev/null and b/public/img/sfw/food/DPNrBT1WCMs.jpeg differ diff --git a/public/img/sfw/food/Hvrm3efPYIA.jpeg b/public/img/sfw/food/Hvrm3efPYIA.jpeg new file mode 100644 index 00000000..3346a0ee Binary files /dev/null and b/public/img/sfw/food/Hvrm3efPYIA.jpeg differ diff --git a/public/img/sfw/food/I2tgHl69Dco.jpeg b/public/img/sfw/food/I2tgHl69Dco.jpeg new file mode 100644 index 00000000..6e8bfacc Binary files /dev/null and b/public/img/sfw/food/I2tgHl69Dco.jpeg differ diff --git a/public/img/sfw/food/JpbtAb-f3JA.jpeg b/public/img/sfw/food/JpbtAb-f3JA.jpeg new file mode 100644 index 00000000..b0ac0b2d Binary files /dev/null and b/public/img/sfw/food/JpbtAb-f3JA.jpeg differ diff --git a/public/img/sfw/food/Mi1SNlsyWAk.jpeg b/public/img/sfw/food/Mi1SNlsyWAk.jpeg new file mode 100644 index 00000000..c66c1466 Binary files /dev/null and b/public/img/sfw/food/Mi1SNlsyWAk.jpeg differ diff --git a/public/img/sfw/food/U3hCd1S7FQ4.jpeg b/public/img/sfw/food/U3hCd1S7FQ4.jpeg new file mode 100644 index 00000000..7bde8024 Binary files /dev/null and b/public/img/sfw/food/U3hCd1S7FQ4.jpeg differ diff --git a/public/img/sfw/food/VOpJTnP6S9g.jpeg b/public/img/sfw/food/VOpJTnP6S9g.jpeg new file mode 100644 index 00000000..43dc80e5 Binary files /dev/null and b/public/img/sfw/food/VOpJTnP6S9g.jpeg differ diff --git a/public/img/sfw/food/VpxavZd4S-I.jpeg b/public/img/sfw/food/VpxavZd4S-I.jpeg new file mode 100644 index 00000000..0d4b11b4 Binary files /dev/null and b/public/img/sfw/food/VpxavZd4S-I.jpeg differ diff --git a/public/img/sfw/food/XPSXhLx143g.jpeg b/public/img/sfw/food/XPSXhLx143g.jpeg new file mode 100644 index 00000000..55a3687e Binary files /dev/null and b/public/img/sfw/food/XPSXhLx143g.jpeg differ diff --git a/public/img/sfw/food/Yy-dHQP-Ax0.jpeg b/public/img/sfw/food/Yy-dHQP-Ax0.jpeg new file mode 100644 index 00000000..597b58ed Binary files /dev/null and b/public/img/sfw/food/Yy-dHQP-Ax0.jpeg differ diff --git a/public/img/sfw/food/__credits.json b/public/img/sfw/food/__credits.json new file mode 100644 index 00000000..ae9ed9ae --- /dev/null +++ b/public/img/sfw/food/__credits.json @@ -0,0 +1,152 @@ +{ + "XPSXhLx143g": { + "user_name": "Wouter Meijering", + "user_url": "https://unsplash.com/@woetah?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/XPSXhLx143g?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "VpxavZd4S-I": { + "user_name": "Mr Lemon", + "user_url": "https://unsplash.com/@mrlemon?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/VpxavZd4S-I?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "9vHOhKoNlNw": { + "user_name": "Edrece Stansberry", + "user_url": "https://unsplash.com/@edrecestansberry?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/9vHOhKoNlNw?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "uScYRjZ2ol8": { + "user_name": "donald modeste", + "user_url": "https://unsplash.com/@leeboy39?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/uScYRjZ2ol8?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "fCE-pTmFrPI": { + "user_name": "Valeriu Bondarenco", + "user_url": "https://unsplash.com/@valwizard?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/fCE-pTmFrPI?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "1ZTccDpF71k": { + "user_name": "Austin Paquette", + "user_url": "https://unsplash.com/@pqt?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/1ZTccDpF71k?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "Au-LzDMd_Cw": { + "user_name": "Stephanie McCabe", + "user_url": "https://unsplash.com/@stephaniemccabe?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/Au-LzDMd_Cw?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "9cfHdC2Asak": { + "user_name": "cindy fernandez", + "user_url": "https://unsplash.com/@fernandezciindy?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/9cfHdC2Asak?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "4-rmvQRL2nY": { + "user_name": "Annie Spratt", + "user_url": "https://unsplash.com/@anniespratt?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/4-rmvQRL2nY?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "8Yvwy4Kbd1g": { + "user_name": "Alex Kondratiev", + "user_url": "https://unsplash.com/@alexanderkondratiev?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/8Yvwy4Kbd1g?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "4PtChDuxsDI": { + "user_name": "Dronile Hiraldo", + "user_url": "https://unsplash.com/@dronilehiraldo?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/4PtChDuxsDI?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "Mi1SNlsyWAk": { + "user_name": "Louis Hansel @shotsoflouis", + "user_url": "https://unsplash.com/@louishansel?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/Mi1SNlsyWAk?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "nn0whk6nzv4": { + "user_name": "Yulia Chinato", + "user_url": "https://unsplash.com/@yuliachinato?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/nn0whk6nzv4?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "8JIIoSFtEbo": { + "user_name": "Massimo Virgilio", + "user_url": "https://unsplash.com/@massimovirgilio?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/8JIIoSFtEbo?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "44eKcVXzFoc": { + "user_name": "Alonso Romero", + "user_url": "https://unsplash.com/@bloo?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/44eKcVXzFoc?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "JpbtAb-f3JA": { + "user_name": "Dollar Gill", + "user_url": "https://unsplash.com/@dollargill?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/JpbtAb-f3JA?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "Hvrm3efPYIA": { + "user_name": "Delaney Van", + "user_url": "https://unsplash.com/@delaneyvan?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/Hvrm3efPYIA?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "4E0dknSrQVU": { + "user_name": "Matteo Maretto", + "user_url": "https://unsplash.com/@matmaphotos?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/4E0dknSrQVU?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "krNP2ESq-54": { + "user_name": "Joshua Bedford", + "user_url": "https://unsplash.com/@joshuabedford?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/krNP2ESq-54?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "DPNrBT1WCMs": { + "user_name": "Egor Lyfar", + "user_url": "https://unsplash.com/@egorlyfar?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/DPNrBT1WCMs?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "Yy-dHQP-Ax0": { + "user_name": "Markus Spiske", + "user_url": "https://unsplash.com/@markusspiske?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/Yy-dHQP-Ax0?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "BKSntHf8oiU": { + "user_name": "Melissa Walker Horn", + "user_url": "https://unsplash.com/@sugercoatit?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/BKSntHf8oiU?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "asaGSZEyltQ": { + "user_name": "Noora AlHammadi", + "user_url": "https://unsplash.com/@nh7_?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/asaGSZEyltQ?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "U3hCd1S7FQ4": { + "user_name": "Louis Hansel @shotsoflouis", + "user_url": "https://unsplash.com/@louishansel?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/U3hCd1S7FQ4?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "VOpJTnP6S9g": { + "user_name": "Liana Mikah", + "user_url": "https://unsplash.com/@lianamikah?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/VOpJTnP6S9g?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "9TWavGempJc": { + "user_name": "Ashleigh Robertson", + "user_url": "https://unsplash.com/@a5hleighh?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/9TWavGempJc?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "I2tgHl69Dco": { + "user_name": "Louis Hansel @shotsoflouis", + "user_url": "https://unsplash.com/@louishansel?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/I2tgHl69Dco?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "fyQr1T3GE34": { + "user_name": "Petr Sevcovic", + "user_url": "https://unsplash.com/@sevcovic23?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/fyQr1T3GE34?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "pGe5mc4Eip8": { + "user_name": "Daniel Park", + "user_url": "https://unsplash.com/@qkrwngh13?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/pGe5mc4Eip8?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "gZsgKrNc8es": { + "user_name": "Dan Gold", + "user_url": "https://unsplash.com/@danielcgold?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/gZsgKrNc8es?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + } +} \ No newline at end of file diff --git a/public/img/sfw/food/asaGSZEyltQ.jpeg b/public/img/sfw/food/asaGSZEyltQ.jpeg new file mode 100644 index 00000000..9623f2db Binary files /dev/null and b/public/img/sfw/food/asaGSZEyltQ.jpeg differ diff --git a/public/img/sfw/food/fCE-pTmFrPI.jpeg b/public/img/sfw/food/fCE-pTmFrPI.jpeg new file mode 100644 index 00000000..bd58e3a8 Binary files /dev/null and b/public/img/sfw/food/fCE-pTmFrPI.jpeg differ diff --git a/public/img/sfw/food/fyQr1T3GE34.jpeg b/public/img/sfw/food/fyQr1T3GE34.jpeg new file mode 100644 index 00000000..038a3f95 Binary files /dev/null and b/public/img/sfw/food/fyQr1T3GE34.jpeg differ diff --git a/public/img/sfw/food/gZsgKrNc8es.jpeg b/public/img/sfw/food/gZsgKrNc8es.jpeg new file mode 100644 index 00000000..f0d54aee Binary files /dev/null and b/public/img/sfw/food/gZsgKrNc8es.jpeg differ diff --git a/public/img/sfw/food/krNP2ESq-54.jpeg b/public/img/sfw/food/krNP2ESq-54.jpeg new file mode 100644 index 00000000..83ccfc07 Binary files /dev/null and b/public/img/sfw/food/krNP2ESq-54.jpeg differ diff --git a/public/img/sfw/food/nn0whk6nzv4.jpeg b/public/img/sfw/food/nn0whk6nzv4.jpeg new file mode 100644 index 00000000..646a04fd Binary files /dev/null and b/public/img/sfw/food/nn0whk6nzv4.jpeg differ diff --git a/public/img/sfw/food/pGe5mc4Eip8.jpeg b/public/img/sfw/food/pGe5mc4Eip8.jpeg new file mode 100644 index 00000000..006ea077 Binary files /dev/null and b/public/img/sfw/food/pGe5mc4Eip8.jpeg differ diff --git a/public/img/sfw/food/thumbs/1ZTccDpF71k.jpeg b/public/img/sfw/food/thumbs/1ZTccDpF71k.jpeg new file mode 100644 index 00000000..0cd2c922 Binary files /dev/null and b/public/img/sfw/food/thumbs/1ZTccDpF71k.jpeg differ diff --git a/public/img/sfw/food/thumbs/4-rmvQRL2nY.jpeg b/public/img/sfw/food/thumbs/4-rmvQRL2nY.jpeg new file mode 100644 index 00000000..8a6fb93d Binary files /dev/null and b/public/img/sfw/food/thumbs/4-rmvQRL2nY.jpeg differ diff --git a/public/img/sfw/food/thumbs/44eKcVXzFoc.jpeg b/public/img/sfw/food/thumbs/44eKcVXzFoc.jpeg new file mode 100644 index 00000000..3942870c Binary files /dev/null and b/public/img/sfw/food/thumbs/44eKcVXzFoc.jpeg differ diff --git a/public/img/sfw/food/thumbs/4E0dknSrQVU.jpeg b/public/img/sfw/food/thumbs/4E0dknSrQVU.jpeg new file mode 100644 index 00000000..eac09a5d Binary files /dev/null and b/public/img/sfw/food/thumbs/4E0dknSrQVU.jpeg differ diff --git a/public/img/sfw/food/thumbs/4PtChDuxsDI.jpeg b/public/img/sfw/food/thumbs/4PtChDuxsDI.jpeg new file mode 100644 index 00000000..86721799 Binary files /dev/null and b/public/img/sfw/food/thumbs/4PtChDuxsDI.jpeg differ diff --git a/public/img/sfw/food/thumbs/8JIIoSFtEbo.jpeg b/public/img/sfw/food/thumbs/8JIIoSFtEbo.jpeg new file mode 100644 index 00000000..400ef6ed Binary files /dev/null and b/public/img/sfw/food/thumbs/8JIIoSFtEbo.jpeg differ diff --git a/public/img/sfw/food/thumbs/8Yvwy4Kbd1g.jpeg b/public/img/sfw/food/thumbs/8Yvwy4Kbd1g.jpeg new file mode 100644 index 00000000..f5779796 Binary files /dev/null and b/public/img/sfw/food/thumbs/8Yvwy4Kbd1g.jpeg differ diff --git a/public/img/sfw/food/thumbs/9TWavGempJc.jpeg b/public/img/sfw/food/thumbs/9TWavGempJc.jpeg new file mode 100644 index 00000000..084e2729 Binary files /dev/null and b/public/img/sfw/food/thumbs/9TWavGempJc.jpeg differ diff --git a/public/img/sfw/food/thumbs/9cfHdC2Asak.jpeg b/public/img/sfw/food/thumbs/9cfHdC2Asak.jpeg new file mode 100644 index 00000000..19fa5cb1 Binary files /dev/null and b/public/img/sfw/food/thumbs/9cfHdC2Asak.jpeg differ diff --git a/public/img/sfw/food/thumbs/9vHOhKoNlNw.jpeg b/public/img/sfw/food/thumbs/9vHOhKoNlNw.jpeg new file mode 100644 index 00000000..af76a9d6 Binary files /dev/null and b/public/img/sfw/food/thumbs/9vHOhKoNlNw.jpeg differ diff --git a/public/img/sfw/food/thumbs/Au-LzDMd_Cw.jpeg b/public/img/sfw/food/thumbs/Au-LzDMd_Cw.jpeg new file mode 100644 index 00000000..fd326dd4 Binary files /dev/null and b/public/img/sfw/food/thumbs/Au-LzDMd_Cw.jpeg differ diff --git a/public/img/sfw/food/thumbs/BKSntHf8oiU.jpeg b/public/img/sfw/food/thumbs/BKSntHf8oiU.jpeg new file mode 100644 index 00000000..9bb0adae Binary files /dev/null and b/public/img/sfw/food/thumbs/BKSntHf8oiU.jpeg differ diff --git a/public/img/sfw/food/thumbs/DPNrBT1WCMs.jpeg b/public/img/sfw/food/thumbs/DPNrBT1WCMs.jpeg new file mode 100644 index 00000000..ef36c6f2 Binary files /dev/null and b/public/img/sfw/food/thumbs/DPNrBT1WCMs.jpeg differ diff --git a/public/img/sfw/food/thumbs/Hvrm3efPYIA.jpeg b/public/img/sfw/food/thumbs/Hvrm3efPYIA.jpeg new file mode 100644 index 00000000..9dfee392 Binary files /dev/null and b/public/img/sfw/food/thumbs/Hvrm3efPYIA.jpeg differ diff --git a/public/img/sfw/food/thumbs/I2tgHl69Dco.jpeg b/public/img/sfw/food/thumbs/I2tgHl69Dco.jpeg new file mode 100644 index 00000000..7f1b0ab8 Binary files /dev/null and b/public/img/sfw/food/thumbs/I2tgHl69Dco.jpeg differ diff --git a/public/img/sfw/food/thumbs/JpbtAb-f3JA.jpeg b/public/img/sfw/food/thumbs/JpbtAb-f3JA.jpeg new file mode 100644 index 00000000..37f29025 Binary files /dev/null and b/public/img/sfw/food/thumbs/JpbtAb-f3JA.jpeg differ diff --git a/public/img/sfw/food/thumbs/Mi1SNlsyWAk.jpeg b/public/img/sfw/food/thumbs/Mi1SNlsyWAk.jpeg new file mode 100644 index 00000000..ffce3296 Binary files /dev/null and b/public/img/sfw/food/thumbs/Mi1SNlsyWAk.jpeg differ diff --git a/public/img/sfw/food/thumbs/U3hCd1S7FQ4.jpeg b/public/img/sfw/food/thumbs/U3hCd1S7FQ4.jpeg new file mode 100644 index 00000000..2e27b8f4 Binary files /dev/null and b/public/img/sfw/food/thumbs/U3hCd1S7FQ4.jpeg differ diff --git a/public/img/sfw/food/thumbs/VOpJTnP6S9g.jpeg b/public/img/sfw/food/thumbs/VOpJTnP6S9g.jpeg new file mode 100644 index 00000000..ab6cc25c Binary files /dev/null and b/public/img/sfw/food/thumbs/VOpJTnP6S9g.jpeg differ diff --git a/public/img/sfw/food/thumbs/VpxavZd4S-I.jpeg b/public/img/sfw/food/thumbs/VpxavZd4S-I.jpeg new file mode 100644 index 00000000..47a59195 Binary files /dev/null and b/public/img/sfw/food/thumbs/VpxavZd4S-I.jpeg differ diff --git a/public/img/sfw/food/thumbs/XPSXhLx143g.jpeg b/public/img/sfw/food/thumbs/XPSXhLx143g.jpeg new file mode 100644 index 00000000..15572d5f Binary files /dev/null and b/public/img/sfw/food/thumbs/XPSXhLx143g.jpeg differ diff --git a/public/img/sfw/food/thumbs/Yy-dHQP-Ax0.jpeg b/public/img/sfw/food/thumbs/Yy-dHQP-Ax0.jpeg new file mode 100644 index 00000000..2cc3a7ac Binary files /dev/null and b/public/img/sfw/food/thumbs/Yy-dHQP-Ax0.jpeg differ diff --git a/public/img/sfw/food/thumbs/asaGSZEyltQ.jpeg b/public/img/sfw/food/thumbs/asaGSZEyltQ.jpeg new file mode 100644 index 00000000..0fa0571b Binary files /dev/null and b/public/img/sfw/food/thumbs/asaGSZEyltQ.jpeg differ diff --git a/public/img/sfw/food/thumbs/fCE-pTmFrPI.jpeg b/public/img/sfw/food/thumbs/fCE-pTmFrPI.jpeg new file mode 100644 index 00000000..aabf9638 Binary files /dev/null and b/public/img/sfw/food/thumbs/fCE-pTmFrPI.jpeg differ diff --git a/public/img/sfw/food/thumbs/fyQr1T3GE34.jpeg b/public/img/sfw/food/thumbs/fyQr1T3GE34.jpeg new file mode 100644 index 00000000..1f7d7881 Binary files /dev/null and b/public/img/sfw/food/thumbs/fyQr1T3GE34.jpeg differ diff --git a/public/img/sfw/food/thumbs/gZsgKrNc8es.jpeg b/public/img/sfw/food/thumbs/gZsgKrNc8es.jpeg new file mode 100644 index 00000000..54ab32c9 Binary files /dev/null and b/public/img/sfw/food/thumbs/gZsgKrNc8es.jpeg differ diff --git a/public/img/sfw/food/thumbs/krNP2ESq-54.jpeg b/public/img/sfw/food/thumbs/krNP2ESq-54.jpeg new file mode 100644 index 00000000..13225fbc Binary files /dev/null and b/public/img/sfw/food/thumbs/krNP2ESq-54.jpeg differ diff --git a/public/img/sfw/food/thumbs/nn0whk6nzv4.jpeg b/public/img/sfw/food/thumbs/nn0whk6nzv4.jpeg new file mode 100644 index 00000000..fe36b850 Binary files /dev/null and b/public/img/sfw/food/thumbs/nn0whk6nzv4.jpeg differ diff --git a/public/img/sfw/food/thumbs/pGe5mc4Eip8.jpeg b/public/img/sfw/food/thumbs/pGe5mc4Eip8.jpeg new file mode 100644 index 00000000..df2bd635 Binary files /dev/null and b/public/img/sfw/food/thumbs/pGe5mc4Eip8.jpeg differ diff --git a/public/img/sfw/food/thumbs/uScYRjZ2ol8.jpeg b/public/img/sfw/food/thumbs/uScYRjZ2ol8.jpeg new file mode 100644 index 00000000..bcf0e3af Binary files /dev/null and b/public/img/sfw/food/thumbs/uScYRjZ2ol8.jpeg differ diff --git a/public/img/sfw/food/uScYRjZ2ol8.jpeg b/public/img/sfw/food/uScYRjZ2ol8.jpeg new file mode 100644 index 00000000..f373c768 Binary files /dev/null and b/public/img/sfw/food/uScYRjZ2ol8.jpeg differ diff --git a/public/img/sfw/kittens/02kGh5lGsb8.jpeg b/public/img/sfw/kittens/02kGh5lGsb8.jpeg new file mode 100644 index 00000000..67b33832 Binary files /dev/null and b/public/img/sfw/kittens/02kGh5lGsb8.jpeg differ diff --git a/public/img/sfw/kittens/1BfCps2-XjQ.jpeg b/public/img/sfw/kittens/1BfCps2-XjQ.jpeg new file mode 100644 index 00000000..58342cc4 Binary files /dev/null and b/public/img/sfw/kittens/1BfCps2-XjQ.jpeg differ diff --git a/public/img/sfw/kittens/1S08ciB6Fy4.jpeg b/public/img/sfw/kittens/1S08ciB6Fy4.jpeg new file mode 100644 index 00000000..7c2e40ca Binary files /dev/null and b/public/img/sfw/kittens/1S08ciB6Fy4.jpeg differ diff --git a/public/img/sfw/kittens/6EchiwVg7C4.jpeg b/public/img/sfw/kittens/6EchiwVg7C4.jpeg new file mode 100644 index 00000000..e19ad41b Binary files /dev/null and b/public/img/sfw/kittens/6EchiwVg7C4.jpeg differ diff --git a/public/img/sfw/kittens/6vY_jbV12kQ.jpeg b/public/img/sfw/kittens/6vY_jbV12kQ.jpeg new file mode 100644 index 00000000..609615e4 Binary files /dev/null and b/public/img/sfw/kittens/6vY_jbV12kQ.jpeg differ diff --git a/public/img/sfw/kittens/8ELEgu78IbU.jpeg b/public/img/sfw/kittens/8ELEgu78IbU.jpeg new file mode 100644 index 00000000..fb6c6382 Binary files /dev/null and b/public/img/sfw/kittens/8ELEgu78IbU.jpeg differ diff --git a/public/img/sfw/kittens/Aq4e2-v7UuQ.jpeg b/public/img/sfw/kittens/Aq4e2-v7UuQ.jpeg new file mode 100644 index 00000000..efad89ab Binary files /dev/null and b/public/img/sfw/kittens/Aq4e2-v7UuQ.jpeg differ diff --git a/public/img/sfw/kittens/CKsDMYPDgCs.jpeg b/public/img/sfw/kittens/CKsDMYPDgCs.jpeg new file mode 100644 index 00000000..de100bc2 Binary files /dev/null and b/public/img/sfw/kittens/CKsDMYPDgCs.jpeg differ diff --git a/public/img/sfw/kittens/DyD9hx5lvpg.jpeg b/public/img/sfw/kittens/DyD9hx5lvpg.jpeg new file mode 100644 index 00000000..d0825e48 Binary files /dev/null and b/public/img/sfw/kittens/DyD9hx5lvpg.jpeg differ diff --git a/public/img/sfw/kittens/FCx5h0erwnA.jpeg b/public/img/sfw/kittens/FCx5h0erwnA.jpeg new file mode 100644 index 00000000..36a89330 Binary files /dev/null and b/public/img/sfw/kittens/FCx5h0erwnA.jpeg differ diff --git a/public/img/sfw/kittens/GGb-AyBZhjY.jpeg b/public/img/sfw/kittens/GGb-AyBZhjY.jpeg new file mode 100644 index 00000000..20241cc6 Binary files /dev/null and b/public/img/sfw/kittens/GGb-AyBZhjY.jpeg differ diff --git a/public/img/sfw/kittens/JHf_O0inuHg.jpeg b/public/img/sfw/kittens/JHf_O0inuHg.jpeg new file mode 100644 index 00000000..49664883 Binary files /dev/null and b/public/img/sfw/kittens/JHf_O0inuHg.jpeg differ diff --git a/public/img/sfw/kittens/MNju0A6EeE0.jpeg b/public/img/sfw/kittens/MNju0A6EeE0.jpeg new file mode 100644 index 00000000..ce05506e Binary files /dev/null and b/public/img/sfw/kittens/MNju0A6EeE0.jpeg differ diff --git a/public/img/sfw/kittens/RcGUiP9dphM.jpeg b/public/img/sfw/kittens/RcGUiP9dphM.jpeg new file mode 100644 index 00000000..15f92f1f Binary files /dev/null and b/public/img/sfw/kittens/RcGUiP9dphM.jpeg differ diff --git a/public/img/sfw/kittens/TEnrxLKakgI.jpeg b/public/img/sfw/kittens/TEnrxLKakgI.jpeg new file mode 100644 index 00000000..c0aa50f5 Binary files /dev/null and b/public/img/sfw/kittens/TEnrxLKakgI.jpeg differ diff --git a/public/img/sfw/kittens/TQ0XD_mGC8c.jpeg b/public/img/sfw/kittens/TQ0XD_mGC8c.jpeg new file mode 100644 index 00000000..c563f03c Binary files /dev/null and b/public/img/sfw/kittens/TQ0XD_mGC8c.jpeg differ diff --git a/public/img/sfw/kittens/TYXh7h4QxX0.jpeg b/public/img/sfw/kittens/TYXh7h4QxX0.jpeg new file mode 100644 index 00000000..1440ddef Binary files /dev/null and b/public/img/sfw/kittens/TYXh7h4QxX0.jpeg differ diff --git a/public/img/sfw/kittens/V8o2n1GbMWc.jpeg b/public/img/sfw/kittens/V8o2n1GbMWc.jpeg new file mode 100644 index 00000000..14fae1e7 Binary files /dev/null and b/public/img/sfw/kittens/V8o2n1GbMWc.jpeg differ diff --git a/public/img/sfw/kittens/XZuTLRfxwcU.jpeg b/public/img/sfw/kittens/XZuTLRfxwcU.jpeg new file mode 100644 index 00000000..08ba58c5 Binary files /dev/null and b/public/img/sfw/kittens/XZuTLRfxwcU.jpeg differ diff --git a/public/img/sfw/kittens/Y3gjv5x38Wc.jpeg b/public/img/sfw/kittens/Y3gjv5x38Wc.jpeg new file mode 100644 index 00000000..c78d9333 Binary files /dev/null and b/public/img/sfw/kittens/Y3gjv5x38Wc.jpeg differ diff --git a/public/img/sfw/kittens/__credits.json b/public/img/sfw/kittens/__credits.json new file mode 100644 index 00000000..7eb3417b --- /dev/null +++ b/public/img/sfw/kittens/__credits.json @@ -0,0 +1,152 @@ +{ + "fEK4jvgnApg": { + "user_name": "Kim Davies", + "user_url": "https://unsplash.com/@flowerchildkimmi?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/fEK4jvgnApg?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "FCx5h0erwnA": { + "user_name": "Lorraine Steriopol", + "user_url": "https://unsplash.com/@llorias?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/FCx5h0erwnA?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "RcGUiP9dphM": { + "user_name": "Kym Ellis", + "user_url": "https://unsplash.com/@kymellis?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/RcGUiP9dphM?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "gAPXLS1LRVE": { + "user_name": "Olya Kuzovkina", + "user_url": "https://unsplash.com/@o_l_l_a?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/gAPXLS1LRVE?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "JHf_O0inuHg": { + "user_name": "Prasad Panchakshari", + "user_url": "https://unsplash.com/@pkprasad1996?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/JHf_O0inuHg?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "CKsDMYPDgCs": { + "user_name": "Jacalyn Beales", + "user_url": "https://unsplash.com/@jacalynbeales?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/CKsDMYPDgCs?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "mQquoOszMRM": { + "user_name": "Dimitri Houtteman", + "user_url": "https://unsplash.com/@dimhou?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/mQquoOszMRM?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "MNju0A6EeE0": { + "user_name": "Amy Baugess", + "user_url": "https://unsplash.com/@amybaugess?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/MNju0A6EeE0?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "emI7VUcvLi0": { + "user_name": "The Lucky Neko", + "user_url": "https://unsplash.com/@theluckyneko?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/emI7VUcvLi0?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "Aq4e2-v7UuQ": { + "user_name": "Mario Peter", + "user_url": "https://unsplash.com/@wdwithmp?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/Aq4e2-v7UuQ?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "6vY_jbV12kQ": { + "user_name": "Kazuky Akayashi", + "user_url": "https://unsplash.com/@kazukyakayashi?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/6vY_jbV12kQ?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "1BfCps2-XjQ": { + "user_name": "Ramiz Dedaković", + "user_url": "https://unsplash.com/@ramche?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/1BfCps2-XjQ?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "iNEXVlX-RLs": { + "user_name": "Lucija Ros", + "user_url": "https://unsplash.com/@lucija_ros?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/iNEXVlX-RLs?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "b8g-ywrrl5Y": { + "user_name": "Leighann Blackwood", + "user_url": "https://unsplash.com/@ohleighann?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/b8g-ywrrl5Y?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "Y3gjv5x38Wc": { + "user_name": "Agustin Fernandez", + "user_url": "https://unsplash.com/@agustinfernandez?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/Y3gjv5x38Wc?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "TYXh7h4QxX0": { + "user_name": "Leighann Blackwood", + "user_url": "https://unsplash.com/@ohleighann?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/TYXh7h4QxX0?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "6EchiwVg7C4": { + "user_name": "Jesse Borovnica", + "user_url": "https://unsplash.com/@jss_brvnc?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/6EchiwVg7C4?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "fGh_mgAcKYY": { + "user_name": "Šárka Jonášová", + "user_url": "https://unsplash.com/@sarekparek?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/fGh_mgAcKYY?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "V8o2n1GbMWc": { + "user_name": "Hunt Han", + "user_url": "https://unsplash.com/@hunth?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/V8o2n1GbMWc?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "TEnrxLKakgI": { + "user_name": "Diver Zhang", + "user_url": "https://unsplash.com/@wantchai?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/TEnrxLKakgI?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "XZuTLRfxwcU": { + "user_name": "Diana Parkhouse", + "user_url": "https://unsplash.com/@ditakesphotos?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/XZuTLRfxwcU?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "rpvS2T2Tl0c": { + "user_name": "Luiza Braun", + "user_url": "https://unsplash.com/@luizabraun?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/rpvS2T2Tl0c?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "1S08ciB6Fy4": { + "user_name": "Екатерина Балабанова", + "user_url": "https://unsplash.com/@lovovna?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/1S08ciB6Fy4?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "iuBVMDnwaho": { + "user_name": "Shaun Meintjes", + "user_url": "https://unsplash.com/@shaunmcreatives?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/iuBVMDnwaho?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "02kGh5lGsb8": { + "user_name": "Kym Ellis", + "user_url": "https://unsplash.com/@kymellis?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/02kGh5lGsb8?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "8ELEgu78IbU": { + "user_name": "Kristin Wilson", + "user_url": "https://unsplash.com/@kristinwilson?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/8ELEgu78IbU?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "TQ0XD_mGC8c": { + "user_name": "Kamal Bilal", + "user_url": "https://unsplash.com/@bilalkamal16?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/TQ0XD_mGC8c?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "zgvb8Knw_AU": { + "user_name": "Zoë Gayah Jonker", + "user_url": "https://unsplash.com/@zoegayah?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/zgvb8Knw_AU?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "GGb-AyBZhjY": { + "user_name": "Brett Jordan", + "user_url": "https://unsplash.com/@brett_jordan?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/GGb-AyBZhjY?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + }, + "DyD9hx5lvpg": { + "user_name": "James Pond", + "user_url": "https://unsplash.com/@jamesponddotco?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit", + "photo_url": "https://unsplash.com/photos/DyD9hx5lvpg?utm_source=unsample&utm_medium=referral&utm_campaign=api-credit" + } +} \ No newline at end of file diff --git a/public/img/sfw/kittens/b8g-ywrrl5Y.jpeg b/public/img/sfw/kittens/b8g-ywrrl5Y.jpeg new file mode 100644 index 00000000..a5815321 Binary files /dev/null and b/public/img/sfw/kittens/b8g-ywrrl5Y.jpeg differ diff --git a/public/img/sfw/kittens/emI7VUcvLi0.jpeg b/public/img/sfw/kittens/emI7VUcvLi0.jpeg new file mode 100644 index 00000000..b78d522f Binary files /dev/null and b/public/img/sfw/kittens/emI7VUcvLi0.jpeg differ diff --git a/public/img/sfw/kittens/fEK4jvgnApg.jpeg b/public/img/sfw/kittens/fEK4jvgnApg.jpeg new file mode 100644 index 00000000..0f150aca Binary files /dev/null and b/public/img/sfw/kittens/fEK4jvgnApg.jpeg differ diff --git a/public/img/sfw/kittens/fGh_mgAcKYY.jpeg b/public/img/sfw/kittens/fGh_mgAcKYY.jpeg new file mode 100644 index 00000000..389bbd81 Binary files /dev/null and b/public/img/sfw/kittens/fGh_mgAcKYY.jpeg differ diff --git a/public/img/sfw/kittens/gAPXLS1LRVE.jpeg b/public/img/sfw/kittens/gAPXLS1LRVE.jpeg new file mode 100644 index 00000000..b5eda13f Binary files /dev/null and b/public/img/sfw/kittens/gAPXLS1LRVE.jpeg differ diff --git a/public/img/sfw/kittens/iNEXVlX-RLs.jpeg b/public/img/sfw/kittens/iNEXVlX-RLs.jpeg new file mode 100644 index 00000000..dbe41e26 Binary files /dev/null and b/public/img/sfw/kittens/iNEXVlX-RLs.jpeg differ diff --git a/public/img/sfw/kittens/iuBVMDnwaho.jpeg b/public/img/sfw/kittens/iuBVMDnwaho.jpeg new file mode 100644 index 00000000..375d09a7 Binary files /dev/null and b/public/img/sfw/kittens/iuBVMDnwaho.jpeg differ diff --git a/public/img/sfw/kittens/mQquoOszMRM.jpeg b/public/img/sfw/kittens/mQquoOszMRM.jpeg new file mode 100644 index 00000000..a838f84f Binary files /dev/null and b/public/img/sfw/kittens/mQquoOszMRM.jpeg differ diff --git a/public/img/sfw/kittens/rpvS2T2Tl0c.jpeg b/public/img/sfw/kittens/rpvS2T2Tl0c.jpeg new file mode 100644 index 00000000..3f858c35 Binary files /dev/null and b/public/img/sfw/kittens/rpvS2T2Tl0c.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/02kGh5lGsb8.jpeg b/public/img/sfw/kittens/thumbs/02kGh5lGsb8.jpeg new file mode 100644 index 00000000..b4d4e35e Binary files /dev/null and b/public/img/sfw/kittens/thumbs/02kGh5lGsb8.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/1BfCps2-XjQ.jpeg b/public/img/sfw/kittens/thumbs/1BfCps2-XjQ.jpeg new file mode 100644 index 00000000..33e9c91e Binary files /dev/null and b/public/img/sfw/kittens/thumbs/1BfCps2-XjQ.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/1S08ciB6Fy4.jpeg b/public/img/sfw/kittens/thumbs/1S08ciB6Fy4.jpeg new file mode 100644 index 00000000..04eb602d Binary files /dev/null and b/public/img/sfw/kittens/thumbs/1S08ciB6Fy4.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/6EchiwVg7C4.jpeg b/public/img/sfw/kittens/thumbs/6EchiwVg7C4.jpeg new file mode 100644 index 00000000..2b9b292e Binary files /dev/null and b/public/img/sfw/kittens/thumbs/6EchiwVg7C4.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/6vY_jbV12kQ.jpeg b/public/img/sfw/kittens/thumbs/6vY_jbV12kQ.jpeg new file mode 100644 index 00000000..668ed2db Binary files /dev/null and b/public/img/sfw/kittens/thumbs/6vY_jbV12kQ.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/8ELEgu78IbU.jpeg b/public/img/sfw/kittens/thumbs/8ELEgu78IbU.jpeg new file mode 100644 index 00000000..0c37dd2f Binary files /dev/null and b/public/img/sfw/kittens/thumbs/8ELEgu78IbU.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/Aq4e2-v7UuQ.jpeg b/public/img/sfw/kittens/thumbs/Aq4e2-v7UuQ.jpeg new file mode 100644 index 00000000..d262da07 Binary files /dev/null and b/public/img/sfw/kittens/thumbs/Aq4e2-v7UuQ.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/CKsDMYPDgCs.jpeg b/public/img/sfw/kittens/thumbs/CKsDMYPDgCs.jpeg new file mode 100644 index 00000000..4b9805e3 Binary files /dev/null and b/public/img/sfw/kittens/thumbs/CKsDMYPDgCs.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/DyD9hx5lvpg.jpeg b/public/img/sfw/kittens/thumbs/DyD9hx5lvpg.jpeg new file mode 100644 index 00000000..89dcfc6f Binary files /dev/null and b/public/img/sfw/kittens/thumbs/DyD9hx5lvpg.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/FCx5h0erwnA.jpeg b/public/img/sfw/kittens/thumbs/FCx5h0erwnA.jpeg new file mode 100644 index 00000000..78aa1381 Binary files /dev/null and b/public/img/sfw/kittens/thumbs/FCx5h0erwnA.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/GGb-AyBZhjY.jpeg b/public/img/sfw/kittens/thumbs/GGb-AyBZhjY.jpeg new file mode 100644 index 00000000..6cf7be28 Binary files /dev/null and b/public/img/sfw/kittens/thumbs/GGb-AyBZhjY.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/JHf_O0inuHg.jpeg b/public/img/sfw/kittens/thumbs/JHf_O0inuHg.jpeg new file mode 100644 index 00000000..6aae4e49 Binary files /dev/null and b/public/img/sfw/kittens/thumbs/JHf_O0inuHg.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/MNju0A6EeE0.jpeg b/public/img/sfw/kittens/thumbs/MNju0A6EeE0.jpeg new file mode 100644 index 00000000..81935fbb Binary files /dev/null and b/public/img/sfw/kittens/thumbs/MNju0A6EeE0.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/RcGUiP9dphM.jpeg b/public/img/sfw/kittens/thumbs/RcGUiP9dphM.jpeg new file mode 100644 index 00000000..2ade5521 Binary files /dev/null and b/public/img/sfw/kittens/thumbs/RcGUiP9dphM.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/TEnrxLKakgI.jpeg b/public/img/sfw/kittens/thumbs/TEnrxLKakgI.jpeg new file mode 100644 index 00000000..f84b6e5f Binary files /dev/null and b/public/img/sfw/kittens/thumbs/TEnrxLKakgI.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/TQ0XD_mGC8c.jpeg b/public/img/sfw/kittens/thumbs/TQ0XD_mGC8c.jpeg new file mode 100644 index 00000000..cd5a26f9 Binary files /dev/null and b/public/img/sfw/kittens/thumbs/TQ0XD_mGC8c.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/TYXh7h4QxX0.jpeg b/public/img/sfw/kittens/thumbs/TYXh7h4QxX0.jpeg new file mode 100644 index 00000000..10fbbdeb Binary files /dev/null and b/public/img/sfw/kittens/thumbs/TYXh7h4QxX0.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/V8o2n1GbMWc.jpeg b/public/img/sfw/kittens/thumbs/V8o2n1GbMWc.jpeg new file mode 100644 index 00000000..3788283a Binary files /dev/null and b/public/img/sfw/kittens/thumbs/V8o2n1GbMWc.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/XZuTLRfxwcU.jpeg b/public/img/sfw/kittens/thumbs/XZuTLRfxwcU.jpeg new file mode 100644 index 00000000..5f603dd9 Binary files /dev/null and b/public/img/sfw/kittens/thumbs/XZuTLRfxwcU.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/Y3gjv5x38Wc.jpeg b/public/img/sfw/kittens/thumbs/Y3gjv5x38Wc.jpeg new file mode 100644 index 00000000..707eec0b Binary files /dev/null and b/public/img/sfw/kittens/thumbs/Y3gjv5x38Wc.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/b8g-ywrrl5Y.jpeg b/public/img/sfw/kittens/thumbs/b8g-ywrrl5Y.jpeg new file mode 100644 index 00000000..8b153b39 Binary files /dev/null and b/public/img/sfw/kittens/thumbs/b8g-ywrrl5Y.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/emI7VUcvLi0.jpeg b/public/img/sfw/kittens/thumbs/emI7VUcvLi0.jpeg new file mode 100644 index 00000000..89a2a80b Binary files /dev/null and b/public/img/sfw/kittens/thumbs/emI7VUcvLi0.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/fEK4jvgnApg.jpeg b/public/img/sfw/kittens/thumbs/fEK4jvgnApg.jpeg new file mode 100644 index 00000000..2f36b3a6 Binary files /dev/null and b/public/img/sfw/kittens/thumbs/fEK4jvgnApg.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/fGh_mgAcKYY.jpeg b/public/img/sfw/kittens/thumbs/fGh_mgAcKYY.jpeg new file mode 100644 index 00000000..6e4cc065 Binary files /dev/null and b/public/img/sfw/kittens/thumbs/fGh_mgAcKYY.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/gAPXLS1LRVE.jpeg b/public/img/sfw/kittens/thumbs/gAPXLS1LRVE.jpeg new file mode 100644 index 00000000..ff885f50 Binary files /dev/null and b/public/img/sfw/kittens/thumbs/gAPXLS1LRVE.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/iNEXVlX-RLs.jpeg b/public/img/sfw/kittens/thumbs/iNEXVlX-RLs.jpeg new file mode 100644 index 00000000..c14ae905 Binary files /dev/null and b/public/img/sfw/kittens/thumbs/iNEXVlX-RLs.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/iuBVMDnwaho.jpeg b/public/img/sfw/kittens/thumbs/iuBVMDnwaho.jpeg new file mode 100644 index 00000000..5a0080c0 Binary files /dev/null and b/public/img/sfw/kittens/thumbs/iuBVMDnwaho.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/mQquoOszMRM.jpeg b/public/img/sfw/kittens/thumbs/mQquoOszMRM.jpeg new file mode 100644 index 00000000..15b5d3b9 Binary files /dev/null and b/public/img/sfw/kittens/thumbs/mQquoOszMRM.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/rpvS2T2Tl0c.jpeg b/public/img/sfw/kittens/thumbs/rpvS2T2Tl0c.jpeg new file mode 100644 index 00000000..c1086803 Binary files /dev/null and b/public/img/sfw/kittens/thumbs/rpvS2T2Tl0c.jpeg differ diff --git a/public/img/sfw/kittens/thumbs/zgvb8Knw_AU.jpeg b/public/img/sfw/kittens/thumbs/zgvb8Knw_AU.jpeg new file mode 100644 index 00000000..6df304b4 Binary files /dev/null and b/public/img/sfw/kittens/thumbs/zgvb8Knw_AU.jpeg differ diff --git a/public/img/sfw/kittens/zgvb8Knw_AU.jpeg b/public/img/sfw/kittens/zgvb8Knw_AU.jpeg new file mode 100644 index 00000000..f226f3bf Binary files /dev/null and b/public/img/sfw/kittens/zgvb8Knw_AU.jpeg differ diff --git a/public/img/tags/double-penetration/1.jpeg b/public/img/tags/double-penetration/1.jpeg new file mode 100644 index 00000000..031bf2e4 Binary files /dev/null and b/public/img/tags/double-penetration/1.jpeg differ diff --git a/public/img/tags/double-penetration/1_thumb.jpeg b/public/img/tags/double-penetration/1_thumb.jpeg new file mode 100644 index 00000000..59033856 Binary files /dev/null and b/public/img/tags/double-penetration/1_thumb.jpeg differ diff --git a/public/img/tags/facefucking/0.jpeg b/public/img/tags/facefucking/0.jpeg deleted file mode 100644 index d2cffae8..00000000 Binary files a/public/img/tags/facefucking/0.jpeg and /dev/null differ diff --git a/public/img/tags/facefucking/0_thumb.jpeg b/public/img/tags/facefucking/0_thumb.jpeg deleted file mode 100644 index c628ce69..00000000 Binary files a/public/img/tags/facefucking/0_thumb.jpeg and /dev/null differ diff --git a/public/img/tags/facefucking/1.jpeg b/public/img/tags/facefucking/1.jpeg index 398a6c9b..2b61c3bb 100644 Binary files a/public/img/tags/facefucking/1.jpeg and b/public/img/tags/facefucking/1.jpeg differ diff --git a/public/img/tags/facefucking/1_thumb.jpeg b/public/img/tags/facefucking/1_thumb.jpeg index ea520f87..21705526 100644 Binary files a/public/img/tags/facefucking/1_thumb.jpeg and b/public/img/tags/facefucking/1_thumb.jpeg differ diff --git a/public/img/tags/facefucking/2.jpeg b/public/img/tags/facefucking/2.jpeg new file mode 100644 index 00000000..9966e551 Binary files /dev/null and b/public/img/tags/facefucking/2.jpeg differ diff --git a/public/img/tags/facefucking/2_thumb.jpeg b/public/img/tags/facefucking/2_thumb.jpeg new file mode 100644 index 00000000..22cfcef2 Binary files /dev/null and b/public/img/tags/facefucking/2_thumb.jpeg differ diff --git a/public/img/tags/mfm/1.jpeg b/public/img/tags/mfm/1.jpeg new file mode 100644 index 00000000..f13897c0 Binary files /dev/null and b/public/img/tags/mfm/1.jpeg differ diff --git a/public/img/tags/mfm/1_thumb.jpeg b/public/img/tags/mfm/1_thumb.jpeg new file mode 100644 index 00000000..4a8a8b62 Binary files /dev/null and b/public/img/tags/mfm/1_thumb.jpeg differ diff --git a/seeds/04_media.js b/seeds/04_media.js index 93f41d5a..2101477c 100644 --- a/seeds/04_media.js +++ b/seeds/04_media.js @@ -16,18 +16,18 @@ const tagPosters = [ ['da-tp', 0, 'Natasha Teen in LegalPorno SZ2164'], ['deepthroat', 0, 'Chanel Grey in "Deepthroating Is Fun" for Throated'], ['double-anal', 2, 'Lana Rhoades in "Lana Rhoades Unleashed" for HardX'], - ['double-penetration', 'poster', 'Mia Malkova in "DP!" for HardX'], + ['double-penetration', 'poster', 'Mia Malkova in "DP Me Vol. 8" for HardX'], ['double-vaginal', 'poster', 'Riley Reid in "Pizza That Ass" for Reid My Lips'], ['dv-tp', 'poster', 'Juelz Ventura in "Gangbanged 5" for Elegant Angel'], ['ebony', 1, 'Sarah Banks for Brazzers'], - ['facefucking', '1', 'Carrie for Young Throats'], + ['facefucking', 1, 'Carrie for Young Throats'], ['facial', 'poster'], ['gangbang', 'poster', 'Kristen Scott in "Interracial Gangbang!" for Jules Jordan'], ['gaping', 1, 'Vina Sky in "Vina Sky Does Anal" for HardX'], ['interracial', 'poster'], ['latina', 'poster'], ['mff', 0, 'Madison Ivy and Adriana Chechik in "Day With A Pornstar" for Brazzers'], - ['mfm', 'poster'], + ['mfm', 1, 'Jynx Maze in "Don\'t Make Me Beg 4" for Evil Angel'], ['oral-creampie', 1, 'Keisha Grey in Brazzers House'], ['orgy', 'poster'], ['schoolgirl', 1, 'Eliza Ibarra for Brazzers'], @@ -61,16 +61,18 @@ const tagPhotos = [ ['double-anal', 'poster', 'Haley Reed in "Young Hot Ass" for Evil Angel'], ['double-anal', 0, 'Nicole Black doing double anal during a gangbang in GIO971 for LegalPorno'], ['double-anal', 1, 'Ria Sunn in SZ1801 for LegalPorno'], - ['double-penetration', 0], + ['double-penetration', 0, 'Zoey Monroe in "Slut Puppies 7" for Jules Jordan'], + ['double-penetration', 1, 'Jynx Maze in "Don\'t Make Me Beg 4" for Evil Angel'], ['double-vaginal', 0, 'Aaliyah Hadid in "Squirting From Double Penetration With Anal" for Bang Bros'], ['dv-tp', 1, 'Adriana Chechik in "Adriana\'s Triple Anal Penetration!"'], ['dv-tp', 0, 'Luna Rival in LegalPorno SZ1490'], - ['facefucking', '0', 'Brea for Young Throats'], + ['facefucking', 2, 'Jynx Maze for Throated'], ['gangbang', 0, '"4 On 1 Gangbangs" for Doghouse Digital'], ['gangbang', 1, 'Ginger Lynn in "Gangbang Mystique", a photoset shot by Suze Randall for Puritan No. 10, 1984. This photo pushed the boundaries of pornography at the time, as depicting a woman \'fully occupied\' was unheard of.'], ['gangbang', 2, 'Riley Reid\'s double anal in "The Gangbang of Riley Reid" for Jules Jordan'], ['gaping', 'poster', 'Paulina in "Anal Buffet 4" for Evil Angel'], ['gaping', 0, 'McKenzee Miles in "Anal Buffet 4" for Evil Angel'], + ['mfm', 'poster', 'Vina Sky for Jules Jordan'], ['trainbang', 0, 'Nicole Black in GIO971 for LegalPorno'], ['triple-anal', 1, 'Natasha Teen in SZ2098 for LegalPorno'], ['triple-anal', 2, 'Kira Thorn in GIO1018 for LegalPorno'], @@ -85,12 +87,157 @@ const tagPhotos = [ comment, })); +const sfw = Object.entries({ + kittens: [ + ['fEK4jvgnApg', 'Kim Davies'], + ['FCx5h0erwnA', 'Lorraine Steriopol'], + ['RcGUiP9dphM', 'Kym Ellis'], + ['gAPXLS1LRVE', 'Olya Kuzovkina'], + ['JHf_O0inuHg', 'Prasad Panchakshari'], + ['CKsDMYPDgCs', 'Jacalyn Beales'], + ['mQquoOszMRM', 'Dimitri Houtteman'], + ['MNju0A6EeE0', 'Amy Baugess'], + ['emI7VUcvLi0', 'The Lucky Neko'], + ['Aq4e2-v7UuQ', 'Mario Peter'], + ['6vY_jbV12kQ', 'Kazuky Akayashi'], + ['1BfCps2-XjQ', 'Ramiz Dedaković'], + ['iNEXVlX-RLs', 'Lucija Ros'], + ['b8g-ywrrl5Y', 'Leighann Blackwood'], + ['Y3gjv5x38Wc', 'Agustin Fernandez'], + ['TYXh7h4QxX0', 'Leighann Blackwood'], + ['6EchiwVg7C4', 'Jesse Borovnica'], + ['fGh_mgAcKYY', 'Šárka Jonášová'], + ['V8o2n1GbMWc', 'Hunt Han'], + ['TEnrxLKakgI', 'Diver Zhang'], + ['XZuTLRfxwcU', 'Diana Parkhouse'], + ['rpvS2T2Tl0c', 'Luiza Braun'], + ['1S08ciB6Fy4', 'Екатерина Балабанова'], + ['iuBVMDnwaho', 'Shaun Meintjes'], + ['02kGh5lGsb8', 'Kym Ellis'], + ['8ELEgu78IbU', 'Kristin Wilson'], + ['TQ0XD_mGC8c', 'Kamal Bilal'], + ['zgvb8Knw_AU', 'Zoë Gayah Jonker'], + ['GGb-AyBZhjY', 'Brett Jordan'], + ['DyD9hx5lvpg', 'James Pond'], + ], + architecture: [ + ['jBanV-D3T-Q', 'Dimitry Anikin'], + ['VoQ35NRfZro', 'Dabbas'], + ['_u_wI4LaT7o', 'Alex Hudson'], + ['oSmn4cbhl8w', 'Jorge Gardner'], + ['c8GdokJMjWU', 'Mert Kahveci'], + ['nfPguKj20Ac', 'Ilya Panasenko'], + ['GGxUyCgfORg', 'photo_comments'], + ['oLUPaceKme0', 'Jack Schwartz'], + ['bo6oz4m4OXY', 'Vinicius Henrique'], + ['7HYbCXD2GSA', 'Theme Inn'], + ['6K4hh4VX3T0', 'SaiKrishna Saketh'], + ['lTxOZBNZ9yM', '[2Ni]'], + ['H3mL3kocOQ4', 'Artur Matosyan'], + ['ijxxeMO3c8E', 'Larry Teo'], + ['WMrd7-CjyF0', 'Anna Claire Schellenberg'], + ['FJIFiUCOTfc', 'Kirsten Drew'], + ['9daKXiWx5Eg', 'Anastasia Dulgier'], + ['47QjuZBn5dQ', 'Murugavel Oli'], + ['yjR2ne1gtAA', 'Marius'], + ['y9vO3FWDZb0', 'bckfwd'], + ['Ro6CB6x-VUg', 'Andreas NextVoyagePL'], + ['2td44mctvmI', 'Cameron Venti'], + ['M1uoNRrNrkE', 'Willian Justen de Vasconcellos'], + ['L-2jRW74fPY', 'Daryan Shamkhali'], + ['NrzNScsGgp8', 'Guy Basabose'], + ['Qr5pi1_GlvY', 'Benno Klandt'], + ['twruXW0M2Mw', 'sk'], + ['B8vwUO2NM9Y', 'Stuart Frisby'], + ['p9jBrqMSU6Q', 'Han Leentvaar'], + ['4rGlazYAV3I', 'Dmitry Bayer'], + ], + flowers: [ + ['4QLKuXKAy7k', 'BEAUFIGEAU CELINE'], + ['DlYzHwAl32g', 'HISANARI KUNIMOTO'], + ['3TXuFNun-5Q', 'Erik Andres Reynoso'], + ['Rrhfeq9yeQ0', 'NeONBRAND'], + ['YaQdJyulJdU', 'Natasha V'], + ['wt4u1wNiT9I', 'Teo Zac'], + ['HG5RcKEawLA', 'Varshesh Joshi'], + ['VBtdWGCQ2yw', 'Vanessa Ochotorena'], + ['a-lIQzpvbHs', 'Thomas AE'], + ['D5RScffd8WU', 'NeONBRAND'], + ['mXQyEcINwa8', 'Thought Catalog'], + ['REczfcmwooE', 'Steve Harvey'], + ['7pGehyH7o64', 'Leonardo Wong'], + ['wvGQYtZ_c08', 'chuttersnap'], + ['jjqZ0gvHLYc', 'Suresh Purohit'], + ['9wQ-aGu0gBs', 'Joël de Vriend'], + ['8ANiHTtHbAQ', 'Nick Karvounis'], + ['Ehko8EbURbk', 'Chris Barbalis'], + ['Rlxfn__azLQ', 'Annie Spratt'], + ['q8I3Jeph4uU', 'Jake Dela Concepcion'], + ['wQjjYp8_a0Y', 'Henry Lorenzatto'], + ['GnwWHUXBfYI', 'Will Svec'], + ['pwFNVBlj5XU', 'Danijela Froki'], + ['RWz313DUECo', 'Laura Baker'], + ['lffwXgsqChg', 'Nils Schirmer'], + ['e1O6NCmhUt4', 'Brian McGowan'], + ], + food: [ + ['XPSXhLx143g', 'Wouter Meijering'], + ['VpxavZd4S-I', 'Mr Lemon'], + ['9vHOhKoNlNw', 'Edrece Stansberry'], + ['uScYRjZ2ol8', 'donald modeste'], + ['fCE-pTmFrPI', 'Valeriu Bondarenco'], + ['1ZTccDpF71k', 'Austin Paquette'], + ['Au-LzDMd_Cw', 'Stephanie McCabe'], + ['9cfHdC2Asak', 'cindy fernandez'], + ['4-rmvQRL2nY', 'Annie Spratt'], + ['8Yvwy4Kbd1g', 'Alex Kondratiev'], + ['4PtChDuxsDI', 'Dronile Hiraldo'], + ['Mi1SNlsyWAk', 'Louis Hansel @shotsoflouis'], + ['nn0whk6nzv4', 'Yulia Chinato'], + ['8JIIoSFtEbo', 'Massimo Virgilio'], + ['44eKcVXzFoc', 'Alonso Romero'], + ['JpbtAb-f3JA', 'Dollar Gill'], + ['Hvrm3efPYIA', 'Delaney Van'], + ['4E0dknSrQVU', 'Matteo Maretto'], + ['krNP2ESq-54', 'Joshua Bedford'], + ['DPNrBT1WCMs', 'Egor Lyfar'], + ['Yy-dHQP-Ax0', 'Markus Spiske'], + ['BKSntHf8oiU', 'Melissa Walker Horn'], + ['asaGSZEyltQ', 'Noora AlHammadi'], + ['U3hCd1S7FQ4', 'Louis Hansel @shotsoflouis'], + ['VOpJTnP6S9g', 'Liana Mikah'], + ['9TWavGempJc', 'Ashleigh Robertson'], + ['I2tgHl69Dco', 'Louis Hansel @shotsoflouis'], + ['fyQr1T3GE34', 'Petr Sevcovic'], + ['pGe5mc4Eip8', 'Daniel Park'], + ['gZsgKrNc8es', 'Dan Gold'], + ], +}) + .map(([category, photos]) => photos.map(([photo, copyright], index) => ({ + path: `sfw/${category}/${photo}.jpeg`, + thumbnail: `sfw/${category}/thumbs/${photo}.jpeg`, + mime: 'image/jpeg', + sfw_media_id: null, + group: category, + index, + copyright, + comment: `Courtesy of ${copyright}`, + }))) + .flat(); + /* eslint-disable max-len */ exports.seed = knex => Promise.resolve() + .then(async () => { + const { inserted } = await upsert('media', sfw, 'path'); + const sfwMediaIds = inserted.map(mediaEntry => ({ media_id: mediaEntry.id })); + + await upsert('media_sfw', sfwMediaIds, 'media_id'); + }) .then(async () => { const tagMedia = tagPosters.concat(tagPhotos); const tags = await knex('tags').whereIn('slug', tagMedia.map(item => item.tagSlug)); + const { inserted, updated } = await upsert('media', tagMedia.map(({ path, thumbnail, mime, index, comment, }) => ({ diff --git a/src/media.js b/src/media.js index b8185917..c6a9e814 100644 --- a/src/media.js +++ b/src/media.js @@ -22,11 +22,32 @@ function getHash(buffer) { return hash.digest('hex'); } -async function createThumbnail(buffer) { +async function getMeta(buffer, withHash = false) { + try { + const { entropy } = await sharp(buffer).stats(); + const { width, height, size } = await sharp(buffer).metadata(); + + const hash = withHash && getHash(buffer); + + return { + width, + height, + size, + entropy, + hash, + }; + } catch (error) { + logger.warn(`Failed to retrieve image entropy, using 7.5: ${error.message}`); + + return 7.5; + } +} + +async function createThumbnail(buffer, height = config.media.thumbnailSize) { try { const thumbnail = sharp(buffer) .resize({ - height: config.media.thumbnailSize, + height, withoutEnlargement: true, }) .jpeg({ @@ -101,24 +122,6 @@ function pickQuality(items) { return item || items[0]; } -async function getMeta(buffer) { - try { - const { entropy } = await sharp(buffer).stats(); - const { width, height, size } = await sharp(buffer).metadata(); - - return { - width, - height, - size, - entropy, - }; - } catch (error) { - logger.warn(`Failed to retrieve image entropy, using 7.5: ${error.message}`); - - return 7.5; - } -} - async function extractItem(source) { // const res = await bhttp.get(source.src); const res = await get(source.src); @@ -434,7 +437,10 @@ async function associateMedia(sourcesByTargetId, mediaBySource, domain, role, pr } module.exports = { + associateMedia, + createThumbnail, + getHash, + getMeta, pluckItems, storeMedia, - associateMedia, }; diff --git a/src/tags.js b/src/tags.js index ad3d1e9d..260094ca 100644 --- a/src/tags.js +++ b/src/tags.js @@ -8,11 +8,11 @@ async function matchReleaseTags(releases) { .map(release => release.tags).flat() .filter(Boolean); - const casedTags = Array.from(new Set( + const casedTags = [...new Set( rawTags .concat(rawTags.map(tag => tag.toLowerCase())) .concat(rawTags.map(tag => tag.toUpperCase())), - )); + )]; const tagEntries = await knex('tags') .select('tags.id', 'tags.name', 'tags.alias_for') @@ -48,17 +48,18 @@ function buildReleaseTagAssociations(releases, tagIdsBySlug, siteTagIdsBySiteId) const tagAssociations = releases .map((release) => { const siteTagIds = siteTagIdsBySiteId[release.site.id]; + const releaseTags = release.tags || []; - const releaseTagIds = release.tags.every(tag => typeof tag === 'number') - ? release.tags // obsolete scraper returned pre-matched tags - : release.tags.map(tag => tagIdsBySlug[slugify(tag)]); + const releaseTagIds = releaseTags.every(tag => typeof tag === 'number') + ? releaseTags // obsolete scraper returned pre-matched tags + : releaseTags.map(tag => tagIdsBySlug[slugify(tag)]); - return Array.from(new Set( + return [...new Set( // filter duplicates and empties releaseTagIds .concat(siteTagIds) .filter(Boolean), - )) + )] .map(tagId => ({ release_id: release.id, tag_id: tagId, @@ -93,7 +94,7 @@ async function associateTags(releases) { const siteTagIdsBySiteId = await getSiteTags(releases); const tagAssociations = buildReleaseTagAssociations(releases, tagIdsBySlug, siteTagIdsBySiteId); - const uniqueAssociations = extractUniqueAssociations(tagAssociations); + const uniqueAssociations = await extractUniqueAssociations(tagAssociations); await knex('releases_tags').insert(uniqueAssociations); } diff --git a/src/utils/shuffle.js b/src/utils/shuffle.js new file mode 100644 index 00000000..5b96bc6e --- /dev/null +++ b/src/utils/shuffle.js @@ -0,0 +1,14 @@ +'use strict'; + +function shuffle(array) { + const shuffledArray = [...array]; + + for (let i = array.length - 1; i > 0; i -= 1) { + const j = Math.floor(Math.random() * (i + 1)); + [shuffledArray[i], shuffledArray[j]] = [shuffledArray[j], shuffledArray[i]]; + } + + return shuffledArray; +} + +module.exports = shuffle;