forked from DebaucheryLibrarian/traxxx
Added database structure for profiles and tattoos. Improved sidebar appearance. Expanded new actors module.
This commit is contained in:
parent
bb3f6fc408
commit
d29e296799
|
@ -16,7 +16,7 @@
|
||||||
"tabWidth": 4,
|
"tabWidth": 4,
|
||||||
"ignoreUrls": true
|
"ignoreUrls": true
|
||||||
}],
|
}],
|
||||||
"vue/no-v-html" 0: ,
|
"vue/no-v-html": 0,
|
||||||
"vue/html-indent": ["error", 4],
|
"vue/html-indent": ["error", 4],
|
||||||
"vue/multiline-html-element-content-newline": 0,
|
"vue/multiline-html-element-content-newline": 0,
|
||||||
"vue/singleline-html-element-content-newline": 0,
|
"vue/singleline-html-element-content-newline": 0,
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
<header class="header">
|
<header class="header">
|
||||||
<div class="header-nav">
|
<div class="header-nav">
|
||||||
<Icon
|
<Icon
|
||||||
icon="grid2"
|
icon="menu"
|
||||||
class="sidebar-toggle"
|
class="sidebar-toggle"
|
||||||
@click.native.stop="toggleSidebar"
|
@click.native.stop="toggleSidebar"
|
||||||
/>
|
/>
|
||||||
|
@ -203,8 +203,8 @@ export default {
|
||||||
.sidebar-toggle {
|
.sidebar-toggle {
|
||||||
display: none;
|
display: none;
|
||||||
fill: var(--shadow-modest);
|
fill: var(--shadow-modest);
|
||||||
padding: 0 1.5rem 0 1rem;
|
padding: 0 1rem;
|
||||||
width: 1.25rem;
|
width: 1.5rem;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
>
|
>
|
||||||
<div class="sidebar-header">
|
<div class="sidebar-header">
|
||||||
<Icon
|
<Icon
|
||||||
icon="cross"
|
icon="cross2"
|
||||||
class="sidebar-close"
|
class="sidebar-close"
|
||||||
@click.native="toggleSidebar(false)"
|
@click.native="toggleSidebar(false)"
|
||||||
/>
|
/>
|
||||||
|
@ -31,6 +31,21 @@
|
||||||
|
|
||||||
<nav class="nav">
|
<nav class="nav">
|
||||||
<ul class="nolist">
|
<ul class="nolist">
|
||||||
|
<li class="nav-item">
|
||||||
|
<router-link
|
||||||
|
v-slot="{ href, isActive, navigate }"
|
||||||
|
to="/home"
|
||||||
|
@click.native="toggleSidebar(false)"
|
||||||
|
>
|
||||||
|
<a
|
||||||
|
class="nav-link"
|
||||||
|
:href="href"
|
||||||
|
:class="{ active: isActive }"
|
||||||
|
@click="navigate"
|
||||||
|
>Home</a>
|
||||||
|
</router-link>
|
||||||
|
</li>
|
||||||
|
|
||||||
<li class="nav-item">
|
<li class="nav-item">
|
||||||
<router-link
|
<router-link
|
||||||
v-slot="{ href, isActive, navigate }"
|
v-slot="{ href, isActive, navigate }"
|
||||||
|
@ -96,7 +111,7 @@ export default {
|
||||||
logoPrimary,
|
logoPrimary,
|
||||||
logoLight,
|
logoLight,
|
||||||
};
|
};
|
||||||
}
|
},
|
||||||
};
|
};
|
||||||
</script>
|
</script>
|
||||||
|
|
||||||
|
@ -122,9 +137,9 @@ export default {
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidebar-close {
|
.sidebar-close {
|
||||||
width: 1.25rem;
|
width: 1.5rem;
|
||||||
height: 100%;
|
height: 100%;
|
||||||
padding: 0 1.5rem 0 1rem;
|
padding: 0 1rem;
|
||||||
fill: var(--lighten);
|
fill: var(--lighten);
|
||||||
|
|
||||||
&:hover {
|
&:hover {
|
||||||
|
|
|
@ -106,10 +106,6 @@ export default {
|
||||||
color: var(--primary);
|
color: var(--primary);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.dark .sidebar {
|
|
||||||
border-right: solid 1px var(--shadow-weak);
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|
||||||
<style lang="scss" scoped>
|
<style lang="scss" scoped>
|
||||||
|
@ -201,6 +197,10 @@ export default {
|
||||||
padding: 1rem;
|
padding: 1rem;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.dark .sidebar {
|
||||||
|
border-right: solid 1px var(--shadow-hint);
|
||||||
|
}
|
||||||
|
|
||||||
@media(max-width: $breakpoint3) {
|
@media(max-width: $breakpoint3) {
|
||||||
.tag {
|
.tag {
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|
|
@ -90,8 +90,6 @@ async function mounted() {
|
||||||
[category]: tagSlugs.map(tagSlug => tagsBySlug[tagSlug]),
|
[category]: tagSlugs.map(tagSlug => tagsBySlug[tagSlug]),
|
||||||
}), {});
|
}), {});
|
||||||
|
|
||||||
console.log(this.categories);
|
|
||||||
|
|
||||||
this.pageTitle = 'Tags';
|
this.pageTitle = 'Tags';
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
<!-- Generated by IcoMoon.io -->
|
<!-- Generated by IcoMoon.io -->
|
||||||
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="32" height="32" viewBox="0 0 32 32">
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
|
||||||
<title>menu</title>
|
<title>menu</title>
|
||||||
<path d="M2 6h28v6h-28zM2 14h28v6h-28zM2 22h28v6h-28z"></path>
|
<path d="M13 7c1.105 0 2 0.895 2 2s-0.895 2-2 2c-1.105 0-2-0.895-2-2s0.895-2 2-2zM8 7c1.105 0 2 0.895 2 2s-0.895 2-2 2c-1.105 0-2-0.895-2-2s0.895-2 2-2zM3 7c1.105 0 2 0.895 2 2s-0.895 2-2 2c-1.105 0-2-0.895-2-2s0.895-2 2-2z"></path>
|
||||||
</svg>
|
</svg>
|
||||||
|
|
Before Width: | Height: | Size: 221 B After Width: | Height: | Size: 391 B |
|
@ -0,0 +1,5 @@
|
||||||
|
<!-- Generated by IcoMoon.io -->
|
||||||
|
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
|
||||||
|
<title>menu3</title>
|
||||||
|
<path d="M1 3h14v3h-14zM1 7h14v3h-14zM1 11h14v3h-14z"></path>
|
||||||
|
</svg>
|
After Width: | Height: | Size: 221 B |
|
@ -250,6 +250,28 @@ exports.up = knex => Promise.resolve()
|
||||||
.unique()
|
.unique()
|
||||||
.notNullable();
|
.notNullable();
|
||||||
|
|
||||||
|
table.string('slug', 32)
|
||||||
|
.unique();
|
||||||
|
|
||||||
|
table.integer('alias_for', 12)
|
||||||
|
.references('id')
|
||||||
|
.inTable('actors');
|
||||||
|
|
||||||
|
table.integer('network_id', 12)
|
||||||
|
.references('id')
|
||||||
|
.inTable('networks');
|
||||||
|
|
||||||
|
table.datetime('created_at')
|
||||||
|
.defaultTo(knex.fn.now());
|
||||||
|
}))
|
||||||
|
.then(() => knex.schema.createTable('actors_profiles', (table) => {
|
||||||
|
table.increments('id', 12);
|
||||||
|
|
||||||
|
table.integer('actor_id')
|
||||||
|
.references('id')
|
||||||
|
.inTable('actors')
|
||||||
|
.notNullable();
|
||||||
|
|
||||||
table.date('birthdate');
|
table.date('birthdate');
|
||||||
table.string('gender', 18);
|
table.string('gender', 18);
|
||||||
table.text('description');
|
table.text('description');
|
||||||
|
@ -283,19 +305,142 @@ exports.up = knex => Promise.resolve()
|
||||||
table.string('piercings');
|
table.string('piercings');
|
||||||
table.string('tattoos');
|
table.string('tattoos');
|
||||||
|
|
||||||
table.integer('alias_for', 12)
|
|
||||||
.references('id')
|
|
||||||
.inTable('actors');
|
|
||||||
|
|
||||||
table.string('slug', 32)
|
|
||||||
.unique();
|
|
||||||
|
|
||||||
table.datetime('created_at')
|
table.datetime('created_at')
|
||||||
.defaultTo(knex.fn.now());
|
.defaultTo(knex.fn.now());
|
||||||
|
|
||||||
table.datetime('scraped_at');
|
table.datetime('scraped_at');
|
||||||
table.boolean('scrape_success');
|
table.boolean('scrape_success');
|
||||||
}))
|
}))
|
||||||
|
.then(() => knex.schema.createTable('body', (table) => {
|
||||||
|
table.string('slug', 20)
|
||||||
|
.primary();
|
||||||
|
|
||||||
|
table.string('name');
|
||||||
|
}))
|
||||||
|
.then(() => knex('body').insert([
|
||||||
|
// head
|
||||||
|
{ slug: 'head', name: 'head' },
|
||||||
|
{ slug: 'face', name: 'face' },
|
||||||
|
{ slug: 'scalp', name: 'scalp' },
|
||||||
|
{ slug: 'forehead', name: 'forehead' },
|
||||||
|
{ slug: 'cheek', name: 'cheek' },
|
||||||
|
{ slug: 'chin', name: 'chin' },
|
||||||
|
{ slug: 'neck', name: 'neck' },
|
||||||
|
{ slug: 'throat', name: 'throat' },
|
||||||
|
// eyes
|
||||||
|
{ slug: 'eyelid', name: 'eyelid' },
|
||||||
|
{ slug: 'eyeball', name: 'eyeball' },
|
||||||
|
{ slug: 'eyebrow', name: 'eyebrow' },
|
||||||
|
// mouth
|
||||||
|
{ slug: 'tongue', name: 'tongue' },
|
||||||
|
{ slug: 'lip', name: 'lip' },
|
||||||
|
{ slug: 'upper-lip', name: 'upper lip' },
|
||||||
|
{ slug: 'lower-lip', name: 'lower lip' },
|
||||||
|
{ slug: 'inner-lip', name: 'inner lip' },
|
||||||
|
{ slug: 'above-lip', name: 'above lip' },
|
||||||
|
{ slug: 'below-lip', name: 'below lip' },
|
||||||
|
// nose
|
||||||
|
{ slug: 'nose', name: 'nose' },
|
||||||
|
{ slug: 'third-eye', name: 'third eye' },
|
||||||
|
{ slug: 'bridge', name: 'bridge' },
|
||||||
|
{ slug: 'nostril', name: 'nostril' },
|
||||||
|
{ slug: 'septum', name: 'septum' },
|
||||||
|
{ slug: 'septril', name: 'septril' },
|
||||||
|
// ear
|
||||||
|
{ slug: 'ear', name: 'ear' },
|
||||||
|
{ slug: 'earlobe', name: 'earlobe' },
|
||||||
|
{ slug: 'helix', name: 'helix' },
|
||||||
|
{ slug: 'tragus', name: 'tragus' },
|
||||||
|
{ slug: 'conch', name: 'conch' },
|
||||||
|
{ slug: 'rook', name: 'rook' },
|
||||||
|
{ slug: 'behind-ear', name: 'behind ear' },
|
||||||
|
// arms
|
||||||
|
{ slug: 'arm', name: 'arm' },
|
||||||
|
{ slug: 'upper-arm', name: 'upper arm' },
|
||||||
|
{ slug: 'lower-arm', name: 'lower arm' },
|
||||||
|
{ slug: 'elbow', name: 'elbow' },
|
||||||
|
{ slug: 'inner-elbow', name: 'inner elbow' },
|
||||||
|
{ slug: 'outer-elbow', name: 'outer elbow' },
|
||||||
|
// hands
|
||||||
|
{ slug: 'hand', name: 'hand' },
|
||||||
|
{ slug: 'fingers', name: 'fingers' },
|
||||||
|
{ slug: 'knuckles', name: 'knucles' },
|
||||||
|
{ slug: 'thumb', name: 'thumb' },
|
||||||
|
{ slug: 'index-finger', name: 'index finger' },
|
||||||
|
{ slug: 'middle-finger', name: 'middle finger' },
|
||||||
|
{ slug: 'ring-finger', name: 'ring finger' },
|
||||||
|
{ slug: 'pinky', name: 'pinky' },
|
||||||
|
{ slug: 'back-of-hand', name: 'back of hand' },
|
||||||
|
{ slug: 'inner-wrist', name: 'inner wrist' },
|
||||||
|
{ slug: 'outer-wrist', name: 'outer wrist' },
|
||||||
|
// torso
|
||||||
|
{ slug: 'shoulder', name: 'shoulder' },
|
||||||
|
{ slug: 'collarbone', name: 'collarbone' },
|
||||||
|
{ slug: 'chest', name: 'chest' },
|
||||||
|
{ slug: 'rib-cage', name: 'rib cage' },
|
||||||
|
{ slug: 'underboob', name: 'underboob' },
|
||||||
|
{ slug: 'boob', name: 'boob' },
|
||||||
|
{ slug: 'nipple', name: 'nipple' },
|
||||||
|
{ slug: 'abdomen', name: 'abdomen' },
|
||||||
|
{ slug: 'lower-abdomen', name: 'lower abdomen' },
|
||||||
|
// back
|
||||||
|
{ slug: 'back', name: 'back' },
|
||||||
|
{ slug: 'upper-back', name: 'upper back' },
|
||||||
|
{ slug: 'middle-back', name: 'lower back' },
|
||||||
|
{ slug: 'lower-back', name: 'lower back' },
|
||||||
|
{ slug: 'spine', name: 'spine' },
|
||||||
|
// bottom
|
||||||
|
{ slug: 'butt', name: 'butt' },
|
||||||
|
{ slug: 'hip', name: 'hip' },
|
||||||
|
// genitals
|
||||||
|
{ slug: 'pubic-mound', name: 'pubic mound' },
|
||||||
|
{ slug: 'anus', name: 'anus' },
|
||||||
|
{ slug: 'vagina', name: 'vagina' },
|
||||||
|
{ slug: 'outer-labia', name: 'outer labia' },
|
||||||
|
{ slug: 'inner-labia', name: 'inner labia' },
|
||||||
|
{ slug: 'clitoris', name: 'clitoris' },
|
||||||
|
{ slug: 'penis', name: 'penis' },
|
||||||
|
{ slug: 'glans', name: 'glans' },
|
||||||
|
{ slug: 'foreskin', name: 'foreskin' },
|
||||||
|
{ slug: 'shaft', name: 'shaft' },
|
||||||
|
{ slug: 'scrotum', name: 'scrotum' },
|
||||||
|
// legs
|
||||||
|
{ slug: 'leg', name: 'leg' },
|
||||||
|
{ slug: 'groin', name: 'groin' },
|
||||||
|
{ slug: 'upper-leg', name: 'upper leg' },
|
||||||
|
{ slug: 'lower-leg', name: 'lower leg' },
|
||||||
|
{ slug: 'knee', name: 'knee' },
|
||||||
|
{ slug: 'inner-knee', name: 'inner knee' },
|
||||||
|
// feet
|
||||||
|
{ slug: 'inner-ankle', name: 'inner ankle' },
|
||||||
|
{ slug: 'outer-ankle', name: 'outer ankle' },
|
||||||
|
{ slug: 'foot', name: 'foot' },
|
||||||
|
{ slug: 'toes', name: 'toes' },
|
||||||
|
{ slug: 'big-toe', name: 'big toe' },
|
||||||
|
{ slug: 'index-toe', name: 'index toe' },
|
||||||
|
{ slug: 'middle-toe', name: 'middle toe' },
|
||||||
|
{ slug: 'fourth-toe', name: 'fourth toe' },
|
||||||
|
{ slug: 'little-toe', name: 'little toe' },
|
||||||
|
]))
|
||||||
|
.then(() => knex.schema.createTable('actors_tattoos', (table) => {
|
||||||
|
table.increments('id');
|
||||||
|
|
||||||
|
table.integer('actor_id', 12)
|
||||||
|
.notNullable()
|
||||||
|
.references('id')
|
||||||
|
.inTable('actors');
|
||||||
|
|
||||||
|
table.string('body_slug', 20)
|
||||||
|
.references('slug')
|
||||||
|
.inTable('body');
|
||||||
|
|
||||||
|
table.enum('side', ['left', 'right', 'center', 'both']);
|
||||||
|
|
||||||
|
table.string('description');
|
||||||
|
|
||||||
|
table.datetime('created_at')
|
||||||
|
.defaultTo(knex.fn.now());
|
||||||
|
}))
|
||||||
.then(() => knex.schema.createTable('actors_avatars', (table) => {
|
.then(() => knex.schema.createTable('actors_avatars', (table) => {
|
||||||
table.integer('actor_id', 12)
|
table.integer('actor_id', 12)
|
||||||
.notNullable()
|
.notNullable()
|
||||||
|
@ -581,8 +726,8 @@ exports.up = knex => Promise.resolve()
|
||||||
COMMENT ON VIEW movie_actors IS E'@foreignKey (movie_id) references releases (id)\n@foreignKey (actor_id) references actors (id)';
|
COMMENT ON VIEW movie_actors IS E'@foreignKey (movie_id) references releases (id)\n@foreignKey (actor_id) references actors (id)';
|
||||||
COMMENT ON VIEW movie_tags IS E'@foreignKey (movie_id) references releases (id)\n@foreignKey (tag_id) references tags (id)';
|
COMMENT ON VIEW movie_tags IS E'@foreignKey (movie_id) references releases (id)\n@foreignKey (tag_id) references tags (id)';
|
||||||
|
|
||||||
COMMENT ON COLUMN actors.height IS E'@omit read,update,create,delete,all,many';
|
COMMENT ON COLUMN actors_profiles.height IS E'@omit read,update,create,delete,all,many';
|
||||||
COMMENT ON COLUMN actors.weight IS E'@omit read,update,create,delete,all,many';
|
COMMENT ON COLUMN actors_profiles.weight IS E'@omit read,update,create,delete,all,many';
|
||||||
`));
|
`));
|
||||||
|
|
||||||
exports.down = knex => knex.raw(`
|
exports.down = knex => knex.raw(`
|
||||||
|
@ -599,10 +744,16 @@ exports.down = knex => knex.raw(`
|
||||||
DROP TABLE IF EXISTS releases_teasers CASCADE;
|
DROP TABLE IF EXISTS releases_teasers CASCADE;
|
||||||
DROP TABLE IF EXISTS releases_tags CASCADE;
|
DROP TABLE IF EXISTS releases_tags CASCADE;
|
||||||
DROP TABLE IF EXISTS releases_search CASCADE;
|
DROP TABLE IF EXISTS releases_search CASCADE;
|
||||||
|
|
||||||
DROP TABLE IF EXISTS batches CASCADE;
|
DROP TABLE IF EXISTS batches CASCADE;
|
||||||
|
|
||||||
DROP TABLE IF EXISTS actors_avatars CASCADE;
|
DROP TABLE IF EXISTS actors_avatars CASCADE;
|
||||||
DROP TABLE IF EXISTS actors_photos CASCADE;
|
DROP TABLE IF EXISTS actors_photos CASCADE;
|
||||||
DROP TABLE IF EXISTS actors_social CASCADE;
|
DROP TABLE IF EXISTS actors_social CASCADE;
|
||||||
|
DROP TABLE IF EXISTS actors_profiles CASCADE;
|
||||||
|
DROP TABLE IF EXISTS actors_tattoos CASCADE;
|
||||||
|
DROP TABLE IF EXISTS body CASCADE;
|
||||||
|
|
||||||
DROP TABLE IF EXISTS sites_tags CASCADE;
|
DROP TABLE IF EXISTS sites_tags CASCADE;
|
||||||
DROP TABLE IF EXISTS sites_social CASCADE;
|
DROP TABLE IF EXISTS sites_social CASCADE;
|
||||||
DROP TABLE IF EXISTS networks_social CASCADE;
|
DROP TABLE IF EXISTS networks_social CASCADE;
|
||||||
|
|
|
@ -176,32 +176,32 @@ const sfw = Object.entries({
|
||||||
['DyD9hx5lvpg', 'James Pond'],
|
['DyD9hx5lvpg', 'James Pond'],
|
||||||
],
|
],
|
||||||
dogs: [
|
dogs: [
|
||||||
['f7-aL0xQd6A','Mark Galer'],
|
['f7-aL0xQd6A', 'Mark Galer'],
|
||||||
['kOI1RlSGsfo','Mark Zamora'],
|
['kOI1RlSGsfo', 'Mark Zamora'],
|
||||||
['7c8z4KEvgds','William Daigneault'],
|
['7c8z4KEvgds', 'William Daigneault'],
|
||||||
['oWrZoAVOBS0','William Daigneault'],
|
['oWrZoAVOBS0', 'William Daigneault'],
|
||||||
['xwpF_Hts7jA','Carolinie Cavalli'],
|
['xwpF_Hts7jA', 'Carolinie Cavalli'],
|
||||||
['72mXoMwCoq4','Yuki Dog'],
|
['72mXoMwCoq4', 'Yuki Dog'],
|
||||||
['7EKROB9iGFc','Yuki Dog'],
|
['7EKROB9iGFc', 'Yuki Dog'],
|
||||||
['cX-KEISwDIw','Cole Keister'],
|
['cX-KEISwDIw', 'Cole Keister'],
|
||||||
['6v-lTFEoO6E','Camilo Fierro'],
|
['6v-lTFEoO6E', 'Camilo Fierro'],
|
||||||
['1-sM8xqPFTM','Dimitri Bong'],
|
['1-sM8xqPFTM', 'Dimitri Bong'],
|
||||||
['uTRtIcwkbGM','Lenin Estrada'],
|
['uTRtIcwkbGM', 'Lenin Estrada'],
|
||||||
['dpn6K9e1vzY','Evan Clark'],
|
['dpn6K9e1vzY', 'Evan Clark'],
|
||||||
['M8AKGLnbi90','Tatiana Rodriguez'],
|
['M8AKGLnbi90', 'Tatiana Rodriguez'],
|
||||||
['sxGJv1SUlew','Jon Tyson'],
|
['sxGJv1SUlew', 'Jon Tyson'],
|
||||||
['pT9TTuuzivQ','William Daigneault'],
|
['pT9TTuuzivQ', 'William Daigneault'],
|
||||||
['KKNxCHLesGc','Julio Arcadio Santamaría Reyes'],
|
['KKNxCHLesGc', 'Julio Arcadio Santamaría Reyes'],
|
||||||
['e_Du6fAT5dI','Thomas Fryatt'],
|
['e_Du6fAT5dI', 'Thomas Fryatt'],
|
||||||
['1IqHMmYaQJE','Mitchell Orr'],
|
['1IqHMmYaQJE', 'Mitchell Orr'],
|
||||||
['BHh-jKrTIoU','NICOLAS TESSARI'],
|
['BHh-jKrTIoU', 'NICOLAS TESSARI'],
|
||||||
['l6GlfPH-8y4','Tatiana Rodriguez'],
|
['l6GlfPH-8y4', 'Tatiana Rodriguez'],
|
||||||
['d7TLLuiwm_c','Brett Jordan'],
|
['d7TLLuiwm_c', 'Brett Jordan'],
|
||||||
['I_PBuIa3Bm8','Karl Bewick'],
|
['I_PBuIa3Bm8', 'Karl Bewick'],
|
||||||
['d2hWXEV8J-8','Harrison Kugler'],
|
['d2hWXEV8J-8', 'Harrison Kugler'],
|
||||||
['AhKXmqa_7yU','Yuki Dog'],
|
['AhKXmqa_7yU', 'Yuki Dog'],
|
||||||
['aH79Nc7Npas','Irene Garcia'],
|
['aH79Nc7Npas', 'Irene Garcia'],
|
||||||
['v3-zcCWMjgM','James Barker'],
|
['v3-zcCWMjgM', 'James Barker'],
|
||||||
],
|
],
|
||||||
architecture: [
|
architecture: [
|
||||||
['jBanV-D3T-Q', 'Dimitry Anikin'],
|
['jBanV-D3T-Q', 'Dimitry Anikin'],
|
||||||
|
@ -293,99 +293,99 @@ const sfw = Object.entries({
|
||||||
['fyQr1T3GE34', 'Petr Sevcovic'],
|
['fyQr1T3GE34', 'Petr Sevcovic'],
|
||||||
['pGe5mc4Eip8', 'Daniel Park'],
|
['pGe5mc4Eip8', 'Daniel Park'],
|
||||||
['gZsgKrNc8es', 'Dan Gold'],
|
['gZsgKrNc8es', 'Dan Gold'],
|
||||||
['XPSXhLx143g','Wouter Meijering'],
|
['XPSXhLx143g', 'Wouter Meijering'],
|
||||||
['VpxavZd4S-I','Mr Lemon'],
|
['VpxavZd4S-I', 'Mr Lemon'],
|
||||||
['9vHOhKoNlNw','Edrece Stansberry'],
|
['9vHOhKoNlNw', 'Edrece Stansberry'],
|
||||||
['uScYRjZ2ol8','donald modeste'],
|
['uScYRjZ2ol8', 'donald modeste'],
|
||||||
['fCE-pTmFrPI','Valeriu Bondarenco'],
|
['fCE-pTmFrPI', 'Valeriu Bondarenco'],
|
||||||
['1ZTccDpF71k','Austin Paquette'],
|
['1ZTccDpF71k', 'Austin Paquette'],
|
||||||
['Au-LzDMd_Cw','Stephanie McCabe'],
|
['Au-LzDMd_Cw', 'Stephanie McCabe'],
|
||||||
['9cfHdC2Asak','cindy fernandez'],
|
['9cfHdC2Asak', 'cindy fernandez'],
|
||||||
['4-rmvQRL2nY','Annie Spratt'],
|
['4-rmvQRL2nY', 'Annie Spratt'],
|
||||||
['8Yvwy4Kbd1g','Alex Kondratiev'],
|
['8Yvwy4Kbd1g', 'Alex Kondratiev'],
|
||||||
['4PtChDuxsDI','Dronile Hiraldo'],
|
['4PtChDuxsDI', 'Dronile Hiraldo'],
|
||||||
['Mi1SNlsyWAk','Louis Hansel @shotsoflouis'],
|
['Mi1SNlsyWAk', 'Louis Hansel @shotsoflouis'],
|
||||||
['nn0whk6nzv4','Yulia Chinato'],
|
['nn0whk6nzv4', 'Yulia Chinato'],
|
||||||
['8JIIoSFtEbo','Massimo Virgilio'],
|
['8JIIoSFtEbo', 'Massimo Virgilio'],
|
||||||
['44eKcVXzFoc','Alonso Romero'],
|
['44eKcVXzFoc', 'Alonso Romero'],
|
||||||
['JpbtAb-f3JA','Dollar Gill'],
|
['JpbtAb-f3JA', 'Dollar Gill'],
|
||||||
['Hvrm3efPYIA','Delaney Van'],
|
['Hvrm3efPYIA', 'Delaney Van'],
|
||||||
['4E0dknSrQVU','Matteo Maretto'],
|
['4E0dknSrQVU', 'Matteo Maretto'],
|
||||||
['krNP2ESq-54','Joshua Bedford'],
|
['krNP2ESq-54', 'Joshua Bedford'],
|
||||||
['DPNrBT1WCMs','Egor Lyfar'],
|
['DPNrBT1WCMs', 'Egor Lyfar'],
|
||||||
['Yy-dHQP-Ax0','Markus Spiske'],
|
['Yy-dHQP-Ax0', 'Markus Spiske'],
|
||||||
['BKSntHf8oiU','Melissa Walker Horn'],
|
['BKSntHf8oiU', 'Melissa Walker Horn'],
|
||||||
['asaGSZEyltQ','Noora AlHammadi'],
|
['asaGSZEyltQ', 'Noora AlHammadi'],
|
||||||
['U3hCd1S7FQ4','Louis Hansel @shotsoflouis'],
|
['U3hCd1S7FQ4', 'Louis Hansel @shotsoflouis'],
|
||||||
['VOpJTnP6S9g','Liana Mikah'],
|
['VOpJTnP6S9g', 'Liana Mikah'],
|
||||||
['9TWavGempJc','Ashleigh Robertson'],
|
['9TWavGempJc', 'Ashleigh Robertson'],
|
||||||
['I2tgHl69Dco','Louis Hansel @shotsoflouis'],
|
['I2tgHl69Dco', 'Louis Hansel @shotsoflouis'],
|
||||||
['fyQr1T3GE34','Petr Sevcovic'],
|
['fyQr1T3GE34', 'Petr Sevcovic'],
|
||||||
['pGe5mc4Eip8','Daniel Park'],
|
['pGe5mc4Eip8', 'Daniel Park'],
|
||||||
['gZsgKrNc8es','Dan Gold'],
|
['gZsgKrNc8es', 'Dan Gold'],
|
||||||
],
|
],
|
||||||
candy: [
|
candy: [
|
||||||
['51AhxwkYyHo','Viktor Forgacs'],
|
['51AhxwkYyHo', 'Viktor Forgacs'],
|
||||||
['rS1GogPLVHk','Eaters Collective'],
|
['rS1GogPLVHk', 'Eaters Collective'],
|
||||||
['9m6NQHyxk-s','Brooke Lark'],
|
['9m6NQHyxk-s', 'Brooke Lark'],
|
||||||
['DOmaKmeCp_8','Sarah Takforyan'],
|
['DOmaKmeCp_8', 'Sarah Takforyan'],
|
||||||
['aCPOKOb4qis','Jamie Street'],
|
['aCPOKOb4qis', 'Jamie Street'],
|
||||||
['On8Ov1TItnU','QooQee'],
|
['On8Ov1TItnU', 'QooQee'],
|
||||||
['KN7tpVQCmWA','Nick Fewings'],
|
['KN7tpVQCmWA', 'Nick Fewings'],
|
||||||
['9lmFbtJ2QzM','Tim Gouw'],
|
['9lmFbtJ2QzM', 'Tim Gouw'],
|
||||||
['54hUU5pNSvo','Erol Ahmed'],
|
['54hUU5pNSvo', 'Erol Ahmed'],
|
||||||
['zYH4SubXCWY','Наталья Горох'],
|
['zYH4SubXCWY', 'Наталья Горох'],
|
||||||
['wJHJY7PcDcg','Andrew Itaga'],
|
['wJHJY7PcDcg', 'Andrew Itaga'],
|
||||||
['BnusUP5jydc','Marc Markstein'],
|
['BnusUP5jydc', 'Marc Markstein'],
|
||||||
['NI_fJ15rIfI','Szabo Viktor'],
|
['NI_fJ15rIfI', 'Szabo Viktor'],
|
||||||
['LymVMRIUwPQ','Happy Films'],
|
['LymVMRIUwPQ', 'Happy Films'],
|
||||||
['mrNVnLEphdo','Greg Nunes'],
|
['mrNVnLEphdo', 'Greg Nunes'],
|
||||||
['FKvoEKSV2LY','zhou yu'],
|
['FKvoEKSV2LY', 'zhou yu'],
|
||||||
['CKLF34baCTQ','Willian Justen de Vasconcellos'],
|
['CKLF34baCTQ', 'Willian Justen de Vasconcellos'],
|
||||||
['7uGCN9qshsY','Siora Photography'],
|
['7uGCN9qshsY', 'Siora Photography'],
|
||||||
['xBTnaTgleQE','Glen Carrie'],
|
['xBTnaTgleQE', 'Glen Carrie'],
|
||||||
['sC_HExGwbhI','Erik Mclean'],
|
['sC_HExGwbhI', 'Erik Mclean'],
|
||||||
['1gViVVlEaPc','Sérgio André'],
|
['1gViVVlEaPc', 'Sérgio André'],
|
||||||
['k9yY0XZTSnI','Fernando Hernandez'],
|
['k9yY0XZTSnI', 'Fernando Hernandez'],
|
||||||
['h1_R9-o9an0','emrecan arık'],
|
['h1_R9-o9an0', 'emrecan arık'],
|
||||||
['XB0ha-DSGoU','Laura Briedis'],
|
['XB0ha-DSGoU', 'Laura Briedis'],
|
||||||
['ONn4OfAnxZY','Monique Carrati'],
|
['ONn4OfAnxZY', 'Monique Carrati'],
|
||||||
['24p9dPeXdFA','Frederic Köberl'],
|
['24p9dPeXdFA', 'Frederic Köberl'],
|
||||||
['GL6J_sFYHLw','Yuiizaa September'],
|
['GL6J_sFYHLw', 'Yuiizaa September'],
|
||||||
['LU_fCezP9-o','Amit Lahav'],
|
['LU_fCezP9-o', 'Amit Lahav'],
|
||||||
['CSkAj_XqOVc','Mockaroon'],
|
['CSkAj_XqOVc', 'Mockaroon'],
|
||||||
['xLvIcAYuuMQ','Luis Aguila'],
|
['xLvIcAYuuMQ', 'Luis Aguila'],
|
||||||
],
|
],
|
||||||
fruit: [
|
fruit: [
|
||||||
['ZLc9yTIFzNk','Kelly Sikkema'],
|
['ZLc9yTIFzNk', 'Kelly Sikkema'],
|
||||||
['DoxGtpAsdYY','Sanni Sahil'],
|
['DoxGtpAsdYY', 'Sanni Sahil'],
|
||||||
['lyEkpuuIrg0','kaouther djouada'],
|
['lyEkpuuIrg0', 'kaouther djouada'],
|
||||||
['fDx4zHpnlOM','Nanxi wei'],
|
['fDx4zHpnlOM', 'Nanxi wei'],
|
||||||
['0AXNt5SdeXU','Sara Cervera'],
|
['0AXNt5SdeXU', 'Sara Cervera'],
|
||||||
['s05XKB6jK2c','Markus Spiske'],
|
['s05XKB6jK2c', 'Markus Spiske'],
|
||||||
['bPMyJzKhCyA','Louis Hansel @shotsoflouis'],
|
['bPMyJzKhCyA', 'Louis Hansel @shotsoflouis'],
|
||||||
['4jeWN4puDrw','Carolyn Leber'],
|
['4jeWN4puDrw', 'Carolyn Leber'],
|
||||||
['8EScigZC6AU','MF Evelyn'],
|
['8EScigZC6AU', 'MF Evelyn'],
|
||||||
['1QbosWMxOx0','elCarito'],
|
['1QbosWMxOx0', 'elCarito'],
|
||||||
['NWA3s8r-1bc','Fli Hi'],
|
['NWA3s8r-1bc', 'Fli Hi'],
|
||||||
['TfNUmbaIjj8','Sophie Dale'],
|
['TfNUmbaIjj8', 'Sophie Dale'],
|
||||||
['duskNBVv420','Louis Hansel @shotsoflouis'],
|
['duskNBVv420', 'Louis Hansel @shotsoflouis'],
|
||||||
['QYupKZjYDbw','Moritz Kindler'],
|
['QYupKZjYDbw', 'Moritz Kindler'],
|
||||||
['ozcHSq3XfVs','Callum Blacoe'],
|
['ozcHSq3XfVs', 'Callum Blacoe'],
|
||||||
['ucY_-U1dM8U','Louis Hansel @shotsoflouis'],
|
['ucY_-U1dM8U', 'Louis Hansel @shotsoflouis'],
|
||||||
['4WLc_dWE-kc','Dmitry Mishin'],
|
['4WLc_dWE-kc', 'Dmitry Mishin'],
|
||||||
['BTqDasyX62E','Priscilla Du Preez'],
|
['BTqDasyX62E', 'Priscilla Du Preez'],
|
||||||
['SD5dOSkhQdU','Alexander Mils'],
|
['SD5dOSkhQdU', 'Alexander Mils'],
|
||||||
['4pJekgmSmPM','Rinck Content Studio'],
|
['4pJekgmSmPM', 'Rinck Content Studio'],
|
||||||
['0XGWys_GaFo','Toa Heftiba'],
|
['0XGWys_GaFo', 'Toa Heftiba'],
|
||||||
['uTZvsJsylYc','Louis Hansel @shotsoflouis'],
|
['uTZvsJsylYc', 'Louis Hansel @shotsoflouis'],
|
||||||
['vAHaYh5s_Sc','RAPHAEL MAKSIAN'],
|
['vAHaYh5s_Sc', 'RAPHAEL MAKSIAN'],
|
||||||
['0N4A1c5tJSs','Miguel Vaz'],
|
['0N4A1c5tJSs', 'Miguel Vaz'],
|
||||||
['VAhUq30sW0c','Cody Berg'],
|
['VAhUq30sW0c', 'Cody Berg'],
|
||||||
['qbO7Mlhq8PQ','JOSHUA COLEMAN'],
|
['qbO7Mlhq8PQ', 'JOSHUA COLEMAN'],
|
||||||
['dLB32q_bRs0','Jason Leung'],
|
['dLB32q_bRs0', 'Jason Leung'],
|
||||||
['66itnKdGlC4','Fateme Azimi'],
|
['66itnKdGlC4', 'Fateme Azimi'],
|
||||||
['_DYRZHbCIq0','Will Mcmahon'],
|
['_DYRZHbCIq0', 'Will Mcmahon'],
|
||||||
],
|
],
|
||||||
landscapes: [
|
landscapes: [
|
||||||
['FuaNmJPLAHg', 'MINSUN KIM'],
|
['FuaNmJPLAHg', 'MINSUN KIM'],
|
||||||
|
@ -418,180 +418,180 @@ const sfw = Object.entries({
|
||||||
['p8h0_0pyW9k', 'Bence Balla-Schottner'],
|
['p8h0_0pyW9k', 'Bence Balla-Schottner'],
|
||||||
],
|
],
|
||||||
waterfalls: [
|
waterfalls: [
|
||||||
['Cwd0zYOIClY','Thomas Ensley'],
|
['Cwd0zYOIClY', 'Thomas Ensley'],
|
||||||
['dGCHAo7mb2Q','Jamie Melville'],
|
['dGCHAo7mb2Q', 'Jamie Melville'],
|
||||||
['bukitR21NO8','Jen Theodore'],
|
['bukitR21NO8', 'Jen Theodore'],
|
||||||
['IKIY5bpd9eM','Bruno Kelzer'],
|
['IKIY5bpd9eM', 'Bruno Kelzer'],
|
||||||
['rrVm3b-uxkk','Jamie Melville'],
|
['rrVm3b-uxkk', 'Jamie Melville'],
|
||||||
['UegnUIW76gQ','Jamie Melville'],
|
['UegnUIW76gQ', 'Jamie Melville'],
|
||||||
['d0cvao4fC6Q','Forest Simon'],
|
['d0cvao4fC6Q', 'Forest Simon'],
|
||||||
['N8r2hH1siEY','Lester Hine'],
|
['N8r2hH1siEY', 'Lester Hine'],
|
||||||
['oRmeWoJx_nY','Michael Olsen'],
|
['oRmeWoJx_nY', 'Michael Olsen'],
|
||||||
['jVjwlfyJAkA','Tom Wheatley'],
|
['jVjwlfyJAkA', 'Tom Wheatley'],
|
||||||
['ar6PYxBFgis','Gerald Berliner'],
|
['ar6PYxBFgis', 'Gerald Berliner'],
|
||||||
['9fpK7fPw6Is','Jamie Melville'],
|
['9fpK7fPw6Is', 'Jamie Melville'],
|
||||||
['jeXkw2HR1SU','Julia Caesar'],
|
['jeXkw2HR1SU', 'Julia Caesar'],
|
||||||
['Evs5MnlmUXY','Damian Kamp'],
|
['Evs5MnlmUXY', 'Damian Kamp'],
|
||||||
['phstcH4QKJc','Jakob Owens'],
|
['phstcH4QKJc', 'Jakob Owens'],
|
||||||
['7dmDlBfB9Vk','Spencer Watson'],
|
['7dmDlBfB9Vk', 'Spencer Watson'],
|
||||||
['SHhaNnNR1xo','SaiKrishna Saketh'],
|
['SHhaNnNR1xo', 'SaiKrishna Saketh'],
|
||||||
['_6ghImrDiVU','Daniel H. Tong'],
|
['_6ghImrDiVU', 'Daniel H. Tong'],
|
||||||
['gfaXzDmMY7M','RADIN AHMAD MUJAHID'],
|
['gfaXzDmMY7M', 'RADIN AHMAD MUJAHID'],
|
||||||
['rFbK1PP9LEA','Daniel Hernandez'],
|
['rFbK1PP9LEA', 'Daniel Hernandez'],
|
||||||
['s6Tv7b4SAoo','Miltiadis Fragkidis'],
|
['s6Tv7b4SAoo', 'Miltiadis Fragkidis'],
|
||||||
['ir9RUDjVpPo','Clay Banks'],
|
['ir9RUDjVpPo', 'Clay Banks'],
|
||||||
['7emiteIwfuk','yunchuan luo'],
|
['7emiteIwfuk', 'yunchuan luo'],
|
||||||
['9tqrKo4B98I','Austin Farrington'],
|
['9tqrKo4B98I', 'Austin Farrington'],
|
||||||
['dfazzUCjMro','oakie'],
|
['dfazzUCjMro', 'oakie'],
|
||||||
['4HEuHmA7WfM','Ketan Morris'],
|
['4HEuHmA7WfM', 'Ketan Morris'],
|
||||||
['eG1_rPekhTk','Jack B'],
|
['eG1_rPekhTk', 'Jack B'],
|
||||||
['_up7EDGdTqU','Hari Nandakumar'],
|
['_up7EDGdTqU', 'Hari Nandakumar'],
|
||||||
['MhIPEJmVwaA','Karthik Chandran'],
|
['MhIPEJmVwaA', 'Karthik Chandran'],
|
||||||
],
|
],
|
||||||
travel: [
|
travel: [
|
||||||
['gC2Q_Tfub6c','James Lee'],
|
['gC2Q_Tfub6c', 'James Lee'],
|
||||||
['1Tcu61Qz7c0','Payas'],
|
['1Tcu61Qz7c0', 'Payas'],
|
||||||
['eLMJ2x7s9ak','Alexandre Chambon'],
|
['eLMJ2x7s9ak', 'Alexandre Chambon'],
|
||||||
['aNrRsB2wLDk','Ahmet Yalçınkaya'],
|
['aNrRsB2wLDk', 'Ahmet Yalçınkaya'],
|
||||||
['xu2WYJek5AI','Anastasia Petrova'],
|
['xu2WYJek5AI', 'Anastasia Petrova'],
|
||||||
['xRoexKKv8fs','Robson Hatsukami Morgan'],
|
['xRoexKKv8fs', 'Robson Hatsukami Morgan'],
|
||||||
['qdIer4A0afE','Camille Brodard'],
|
['qdIer4A0afE', 'Camille Brodard'],
|
||||||
['0lPZBa6-1J8','Torbjorn Sandbakk'],
|
['0lPZBa6-1J8', 'Torbjorn Sandbakk'],
|
||||||
['CLm3pWXrS9Q','Tim Trad'],
|
['CLm3pWXrS9Q', 'Tim Trad'],
|
||||||
['D1fs2x11_jk','Raul Taciu'],
|
['D1fs2x11_jk', 'Raul Taciu'],
|
||||||
['BZ3aE3ouAfc','Petr Sevcovic'],
|
['BZ3aE3ouAfc', 'Petr Sevcovic'],
|
||||||
['_OUvt8kLf0s','GAWN AUSTRALIA'],
|
['_OUvt8kLf0s', 'GAWN AUSTRALIA'],
|
||||||
['T_6yJJQ_-wA','Square Lab'],
|
['T_6yJJQ_-wA', 'Square Lab'],
|
||||||
['1Z_mX3zzEBc','Andy Pearce'],
|
['1Z_mX3zzEBc', 'Andy Pearce'],
|
||||||
['lWHJwoSZf7M','Joseph Costa'],
|
['lWHJwoSZf7M', 'Joseph Costa'],
|
||||||
['O6Euhw7NMbQ','Cosmic Timetraveler'],
|
['O6Euhw7NMbQ', 'Cosmic Timetraveler'],
|
||||||
['bs1eqd6zSiU','Harley-Davidson'],
|
['bs1eqd6zSiU', 'Harley-Davidson'],
|
||||||
['_qkuc1V9Gbg','Ken Cheung'],
|
['_qkuc1V9Gbg', 'Ken Cheung'],
|
||||||
],
|
],
|
||||||
cars: [
|
cars: [
|
||||||
['w5SZe8hoqlk','Rachel Lynette French'],
|
['w5SZe8hoqlk', 'Rachel Lynette French'],
|
||||||
['Nwk0ye_Y_As','Lex Valishvili'],
|
['Nwk0ye_Y_As', 'Lex Valishvili'],
|
||||||
['P9yqMy_9ZaY','Anastasia Dulgier'],
|
['P9yqMy_9ZaY', 'Anastasia Dulgier'],
|
||||||
['aGwBtbncMWo','Sandra Kaas'],
|
['aGwBtbncMWo', 'Sandra Kaas'],
|
||||||
['jV_QaRjbhWE','Clem Onojeghuo'],
|
['jV_QaRjbhWE', 'Clem Onojeghuo'],
|
||||||
['SwmaJDvasuU','Gunnar Ridderström'],
|
['SwmaJDvasuU', 'Gunnar Ridderström'],
|
||||||
['BsJovWrQ7vE','Caroline'],
|
['BsJovWrQ7vE', 'Caroline'],
|
||||||
['3t0Q-GYXE0U','Austin Park'],
|
['3t0Q-GYXE0U', 'Austin Park'],
|
||||||
['tlCzxI2RQAc','Vinícius Henrique'],
|
['tlCzxI2RQAc', 'Vinícius Henrique'],
|
||||||
['fecFQcxsUok','Zachary Spears'],
|
['fecFQcxsUok', 'Zachary Spears'],
|
||||||
['upttrzCo8-U','takahiro taguchi'],
|
['upttrzCo8-U', 'takahiro taguchi'],
|
||||||
['zoHustBfNxA','Lukas Werner'],
|
['zoHustBfNxA', 'Lukas Werner'],
|
||||||
['UZH69YA50qY','Austin Park'],
|
['UZH69YA50qY', 'Austin Park'],
|
||||||
['tJwY80NMkhk','Hanny Naibaho'],
|
['tJwY80NMkhk', 'Hanny Naibaho'],
|
||||||
['esfNTaHsR1c','Willian Justen de Vasconcellos'],
|
['esfNTaHsR1c', 'Willian Justen de Vasconcellos'],
|
||||||
['Tas1kF-6aNA','Tyler Casey'],
|
['Tas1kF-6aNA', 'Tyler Casey'],
|
||||||
['7nrsVjvALnA','Denys Nevozhai'],
|
['7nrsVjvALnA', 'Denys Nevozhai'],
|
||||||
['CRf3KYexpCA','Will Truettner'],
|
['CRf3KYexpCA', 'Will Truettner'],
|
||||||
['B8JpogxOnyw','Mike Von'],
|
['B8JpogxOnyw', 'Mike Von'],
|
||||||
['mU5vnpJW_CQ','Luke Tanis'],
|
['mU5vnpJW_CQ', 'Luke Tanis'],
|
||||||
['GaRPxo9Z86M','Court Cook'],
|
['GaRPxo9Z86M', 'Court Cook'],
|
||||||
['Orp-VAQ_gNA','Angello Lopez'],
|
['Orp-VAQ_gNA', 'Angello Lopez'],
|
||||||
['q4UZ53rYYy0','Ali Moharami'],
|
['q4UZ53rYYy0', 'Ali Moharami'],
|
||||||
['XA2OEcvrrP8','Alexander Pidgeon'],
|
['XA2OEcvrrP8', 'Alexander Pidgeon'],
|
||||||
['hXMv04v_py0','Patrick Schöpflin'],
|
['hXMv04v_py0', 'Patrick Schöpflin'],
|
||||||
['G7sWGEF8pRc','Julian Hochgesang'],
|
['G7sWGEF8pRc', 'Julian Hochgesang'],
|
||||||
['PUnARRf-rE8','jean wimmerlin'],
|
['PUnARRf-rE8', 'jean wimmerlin'],
|
||||||
['UIk-rF4Df60','Igor Bumba'],
|
['UIk-rF4Df60', 'Igor Bumba'],
|
||||||
['0dW-eQVL0WQ','Michael Heuser'],
|
['0dW-eQVL0WQ', 'Michael Heuser'],
|
||||||
],
|
],
|
||||||
aviation: [
|
aviation: [
|
||||||
['bw1hXT_okL4','sayhitobel'],
|
['bw1hXT_okL4', 'sayhitobel'],
|
||||||
['ecOXN5jGtaU','Alexander Lobanov'],
|
['ecOXN5jGtaU', 'Alexander Lobanov'],
|
||||||
['rFujmwrNv1w','Abe Drzycimski'],
|
['rFujmwrNv1w', 'Abe Drzycimski'],
|
||||||
['EKYsla2fER8','Paola Aguilar'],
|
['EKYsla2fER8', 'Paola Aguilar'],
|
||||||
['1uiXp6fXd3w','Kevin Hackert'],
|
['1uiXp6fXd3w', 'Kevin Hackert'],
|
||||||
['tVzGTraJ4T0','Samantha Gades'],
|
['tVzGTraJ4T0', 'Samantha Gades'],
|
||||||
['5h1-cHxJz1I','Nikli Nodin'],
|
['5h1-cHxJz1I', 'Nikli Nodin'],
|
||||||
['u-1cYIua_aI','John Torcasio'],
|
['u-1cYIua_aI', 'John Torcasio'],
|
||||||
['l2OusPPMLxs','yvette Wynne'],
|
['l2OusPPMLxs', 'yvette Wynne'],
|
||||||
['SUIvWFHBZas','Timothy Newman'],
|
['SUIvWFHBZas', 'Timothy Newman'],
|
||||||
['Tvrnezn1N6g','Daniel Eledut'],
|
['Tvrnezn1N6g', 'Daniel Eledut'],
|
||||||
['ZN0469D3v98','Jason Hafso'],
|
['ZN0469D3v98', 'Jason Hafso'],
|
||||||
['LNmKCmZ2pcI','Ricardo Resende'],
|
['LNmKCmZ2pcI', 'Ricardo Resende'],
|
||||||
['P_ExwnnPGyM','Tudose Alexandru'],
|
['P_ExwnnPGyM', 'Tudose Alexandru'],
|
||||||
['1vyWYdyUDGU','Ian Cumming'],
|
['1vyWYdyUDGU', 'Ian Cumming'],
|
||||||
['k102QVrpitQ','Jake Blucker'],
|
['k102QVrpitQ', 'Jake Blucker'],
|
||||||
['eB8-XtMtqZI','Miguel Ángel Sanz'],
|
['eB8-XtMtqZI', 'Miguel Ángel Sanz'],
|
||||||
['1XDZavWyows','Samuel Sianipar'],
|
['1XDZavWyows', 'Samuel Sianipar'],
|
||||||
['7WHD-pdECGU','Miguel Ángel Sanz'],
|
['7WHD-pdECGU', 'Miguel Ángel Sanz'],
|
||||||
['CN8HsCUCjUQ','Cameron Kitson'],
|
['CN8HsCUCjUQ', 'Cameron Kitson'],
|
||||||
['q_rNy9pRe78','Walter Walraven'],
|
['q_rNy9pRe78', 'Walter Walraven'],
|
||||||
['a9SA6Zs1L9g','Tim Dennert'],
|
['a9SA6Zs1L9g', 'Tim Dennert'],
|
||||||
['JW50PRr5UbI','Roland O'],
|
['JW50PRr5UbI', 'Roland O'],
|
||||||
['um_6nrOnPZ4','Pascal Meier'],
|
['um_6nrOnPZ4', 'Pascal Meier'],
|
||||||
['EpxT58kpBhc','Terence Burke'],
|
['EpxT58kpBhc', 'Terence Burke'],
|
||||||
['3fbjHj2k0vE','Dušan Smetana'],
|
['3fbjHj2k0vE', 'Dušan Smetana'],
|
||||||
['9o4p3eCcRBE','Jeremy Bishop'],
|
['9o4p3eCcRBE', 'Jeremy Bishop'],
|
||||||
['sbfLwfoVX7E','Nour Betar'],
|
['sbfLwfoVX7E', 'Nour Betar'],
|
||||||
['4VCJBAtlnNI','sippakorn yamkasikorn'],
|
['4VCJBAtlnNI', 'sippakorn yamkasikorn'],
|
||||||
['LcbsrFbqwGk','Angel Barnes'],
|
['LcbsrFbqwGk', 'Angel Barnes'],
|
||||||
],
|
],
|
||||||
nature: [
|
nature: [
|
||||||
['io0umElGQwU','Fabrizio Forte'],
|
['io0umElGQwU', 'Fabrizio Forte'],
|
||||||
['lh2sQ_L3GaA','Daniel Lord'],
|
['lh2sQ_L3GaA', 'Daniel Lord'],
|
||||||
['Gyr7o3BMsSc','Dave Francis'],
|
['Gyr7o3BMsSc', 'Dave Francis'],
|
||||||
['lRipDukRpd4','Kevin'],
|
['lRipDukRpd4', 'Kevin'],
|
||||||
['GxymWkdnl4Y','Fernando Jorge'],
|
['GxymWkdnl4Y', 'Fernando Jorge'],
|
||||||
['rWnw7JL0LPE','Rahul Gupta'],
|
['rWnw7JL0LPE', 'Rahul Gupta'],
|
||||||
['YKuYS3ChMyw','Yuliya Kosolapova'],
|
['YKuYS3ChMyw', 'Yuliya Kosolapova'],
|
||||||
['ZsUjLYqbNz8','Pau Morfín'],
|
['ZsUjLYqbNz8', 'Pau Morfín'],
|
||||||
['x2o3HX6RKG8','Dave'],
|
['x2o3HX6RKG8', 'Dave'],
|
||||||
['Few073pm6aQ','Dennis Bertuch'],
|
['Few073pm6aQ', 'Dennis Bertuch'],
|
||||||
['jP-wvLA7uyg','Gary Butterfield'],
|
['jP-wvLA7uyg', 'Gary Butterfield'],
|
||||||
['euhs3wanL-I','Andrew Stapleton'],
|
['euhs3wanL-I', 'Andrew Stapleton'],
|
||||||
['UHt2TG_CHO0','Wolfgang Hasselmann'],
|
['UHt2TG_CHO0', 'Wolfgang Hasselmann'],
|
||||||
['SAIb5NkbAaE','Alexis Gethin'],
|
['SAIb5NkbAaE', 'Alexis Gethin'],
|
||||||
['tdNjdIW-_OY','Lachlan'],
|
['tdNjdIW-_OY', 'Lachlan'],
|
||||||
['0NtjFr0-DwM','Jane Carmona'],
|
['0NtjFr0-DwM', 'Jane Carmona'],
|
||||||
['fhg_nm1sufU','Pascal Debrunner'],
|
['fhg_nm1sufU', 'Pascal Debrunner'],
|
||||||
['HJUDECvtxZE','jose alfonso sierra'],
|
['HJUDECvtxZE', 'jose alfonso sierra'],
|
||||||
['8vS1CwHIEH8','Serge Sustavov'],
|
['8vS1CwHIEH8', 'Serge Sustavov'],
|
||||||
['oTTnZcwQ2t4','Daniel Radford'],
|
['oTTnZcwQ2t4', 'Daniel Radford'],
|
||||||
['TNhs9udas8Q','Migsar Navarro'],
|
['TNhs9udas8Q', 'Migsar Navarro'],
|
||||||
['zT9g3crTPcE','Devin L'],
|
['zT9g3crTPcE', 'Devin L'],
|
||||||
['hYuNG1zptM4','Roberto Gamito'],
|
['hYuNG1zptM4', 'Roberto Gamito'],
|
||||||
['DfOQRep1LKU','Wolfgang Rottmann'],
|
['DfOQRep1LKU', 'Wolfgang Rottmann'],
|
||||||
['2sT_iJhIcEg','Anamika Pokharel'],
|
['2sT_iJhIcEg', 'Anamika Pokharel'],
|
||||||
['Zjcl2vaeGdo','Lucas Mitchell'],
|
['Zjcl2vaeGdo', 'Lucas Mitchell'],
|
||||||
['b2T6zgFAW1E','Theme Inn'],
|
['b2T6zgFAW1E', 'Theme Inn'],
|
||||||
['EnFQmcTtsjo','Yang Jing'],
|
['EnFQmcTtsjo', 'Yang Jing'],
|
||||||
['PWI-CDVynhw','Thomas Galler'],
|
['PWI-CDVynhw', 'Thomas Galler'],
|
||||||
['gTvLsDi-Uzo','Arun Raj'],
|
['gTvLsDi-Uzo', 'Arun Raj'],
|
||||||
],
|
],
|
||||||
trees: [
|
trees: [
|
||||||
['aSCx7M1E4Vo','Markos Mant'],
|
['aSCx7M1E4Vo', 'Markos Mant'],
|
||||||
['3B9MYDjQ-EQ','Firasat Durrani'],
|
['3B9MYDjQ-EQ', 'Firasat Durrani'],
|
||||||
['39oaRqfUacc','Nick'],
|
['39oaRqfUacc', 'Nick'],
|
||||||
['Y0NLa_KmEgU','Michael Ankes'],
|
['Y0NLa_KmEgU', 'Michael Ankes'],
|
||||||
['i6nGVkbbUT4','Henry McIntosh'],
|
['i6nGVkbbUT4', 'Henry McIntosh'],
|
||||||
['_WITb4g1ImY','Mark Basarab'],
|
['_WITb4g1ImY', 'Mark Basarab'],
|
||||||
['prd5CXMsD68','JOHN TOWNER'],
|
['prd5CXMsD68', 'JOHN TOWNER'],
|
||||||
['avxSevmCKfw','Marta Pawlik'],
|
['avxSevmCKfw', 'Marta Pawlik'],
|
||||||
['LZf0HMPg-3I','Max Brinton'],
|
['LZf0HMPg-3I', 'Max Brinton'],
|
||||||
['Ovjx9FsXX9c','Andy Fitzsimon'],
|
['Ovjx9FsXX9c', 'Andy Fitzsimon'],
|
||||||
['YPtfMXRMUe0','Corey Agopian'],
|
['YPtfMXRMUe0', 'Corey Agopian'],
|
||||||
['h3y3XPXKoeY','Elke Karin Lugert'],
|
['h3y3XPXKoeY', 'Elke Karin Lugert'],
|
||||||
['qeGC1zrsG8U','Tycho Atsma'],
|
['qeGC1zrsG8U', 'Tycho Atsma'],
|
||||||
['dAkd3xaSDTA','Nick West'],
|
['dAkd3xaSDTA', 'Nick West'],
|
||||||
['Prd-KB7CKo4','Austin Neill'],
|
['Prd-KB7CKo4', 'Austin Neill'],
|
||||||
['iqu9ZTwTfVM','Clem Onojeghuo'],
|
['iqu9ZTwTfVM', 'Clem Onojeghuo'],
|
||||||
['klNpWLkgezo','Wil Stewart'],
|
['klNpWLkgezo', 'Wil Stewart'],
|
||||||
['Pm4U5IqI4dM','Lena Derevianko'],
|
['Pm4U5IqI4dM', 'Lena Derevianko'],
|
||||||
['5i664o1oY4c','Yannick Pulver'],
|
['5i664o1oY4c', 'Yannick Pulver'],
|
||||||
['uoMFPm5_Xg8','Yoni Kozminsi'],
|
['uoMFPm5_Xg8', 'Yoni Kozminsi'],
|
||||||
['Qr2dZRNdf_M','Afifi Zulkifle'],
|
['Qr2dZRNdf_M', 'Afifi Zulkifle'],
|
||||||
['jxljuYqn8uU','Sebastian Pichler'],
|
['jxljuYqn8uU', 'Sebastian Pichler'],
|
||||||
['H3mO3zNlvNU','Jonathan Knepper'],
|
['H3mO3zNlvNU', 'Jonathan Knepper'],
|
||||||
['pEb-Xf_qM0s','Martin Reisch'],
|
['pEb-Xf_qM0s', 'Martin Reisch'],
|
||||||
['prSogOoFmkw','Braden Jarvis'],
|
['prSogOoFmkw', 'Braden Jarvis'],
|
||||||
['y9csmronT3s','Alberto Restifo'],
|
['y9csmronT3s', 'Alberto Restifo'],
|
||||||
['R8R9H_xuvBY','Andrew Pons'],
|
['R8R9H_xuvBY', 'Andrew Pons'],
|
||||||
['fuT-m1yzUG4','Ales Krivec'],
|
['fuT-m1yzUG4', 'Ales Krivec'],
|
||||||
],
|
],
|
||||||
wildlife: [
|
wildlife: [
|
||||||
['Tot7FLHWotI', 'elCarito'],
|
['Tot7FLHWotI', 'elCarito'],
|
||||||
|
@ -655,34 +655,34 @@ const sfw = Object.entries({
|
||||||
['hnhE83RhAWg', 'Stefan Steinbauer'],
|
['hnhE83RhAWg', 'Stefan Steinbauer'],
|
||||||
],
|
],
|
||||||
statues: [
|
statues: [
|
||||||
['ig8E7Mlrl7Y','Vidar Nordli-Mathisen'],
|
['ig8E7Mlrl7Y', 'Vidar Nordli-Mathisen'],
|
||||||
['1ak3Z7ZmtQA','Ryan Lum'],
|
['1ak3Z7ZmtQA', 'Ryan Lum'],
|
||||||
['ntPF02wcTY','Gigi'],
|
['ntPF02wcTY', 'Gigi'],
|
||||||
['5_i4OPeOAZU','Viktor Forgacs'],
|
['5_i4OPeOAZU', 'Viktor Forgacs'],
|
||||||
['iRON0g6iO0k','Alexandre Chambon'],
|
['iRON0g6iO0k', 'Alexandre Chambon'],
|
||||||
['PhQ4CpXLEX4','Daniels Joffe'],
|
['PhQ4CpXLEX4', 'Daniels Joffe'],
|
||||||
['EfHqouvZU2Y','Bettina Otott Kovács'],
|
['EfHqouvZU2Y', 'Bettina Otott Kovács'],
|
||||||
['kaEhf0eZme8','Nils'],
|
['kaEhf0eZme8', 'Nils'],
|
||||||
['4-4IDc21Gto','K. Mitch Hodge'],
|
['4-4IDc21Gto', 'K. Mitch Hodge'],
|
||||||
['Y8Xh7ZJFU5A','Vidar Nordli-Mathisen'],
|
['Y8Xh7ZJFU5A', 'Vidar Nordli-Mathisen'],
|
||||||
['fmawALmMLSA','Gabriel TRESCH'],
|
['fmawALmMLSA', 'Gabriel TRESCH'],
|
||||||
['DUp4B6M0AMc','Sebastien'],
|
['DUp4B6M0AMc', 'Sebastien'],
|
||||||
['MFZUY4gqvA4','James Yarema'],
|
['MFZUY4gqvA4', 'James Yarema'],
|
||||||
['50vvwcNFFzU','Robert Anasch'],
|
['50vvwcNFFzU', 'Robert Anasch'],
|
||||||
['TMRi8cD2umM','Frank Eiffert'],
|
['TMRi8cD2umM', 'Frank Eiffert'],
|
||||||
['wLx_WCkWvHg','Chris A. Tweten'],
|
['wLx_WCkWvHg', 'Chris A. Tweten'],
|
||||||
['Twoj21Av-so','Arthur Reeder'],
|
['Twoj21Av-so', 'Arthur Reeder'],
|
||||||
['EiGDn8cwU4Y','Tessa Rampersad'],
|
['EiGDn8cwU4Y', 'Tessa Rampersad'],
|
||||||
['fVY6UxZuECA','Christine Wehrmeier'],
|
['fVY6UxZuECA', 'Christine Wehrmeier'],
|
||||||
['uJdTBTJ9rbo','Christine Wehrmeier'],
|
['uJdTBTJ9rbo', 'Christine Wehrmeier'],
|
||||||
['4eEBFTBKx5E','Ralph Spandl'],
|
['4eEBFTBKx5E', 'Ralph Spandl'],
|
||||||
['HtQRGemW_40','Ivan Bertona'],
|
['HtQRGemW_40', 'Ivan Bertona'],
|
||||||
['uHBcinxOLhQ','K. Mitch Hodge'],
|
['uHBcinxOLhQ', 'K. Mitch Hodge'],
|
||||||
['2TmsyZXMNTE','Emma Fabbri'],
|
['2TmsyZXMNTE', 'Emma Fabbri'],
|
||||||
['9KkPloRgOUY','Matteo Maretto'],
|
['9KkPloRgOUY', 'Matteo Maretto'],
|
||||||
['KzPefInJW58','JOSHUA COLEMAN'],
|
['KzPefInJW58', 'JOSHUA COLEMAN'],
|
||||||
['szVTIkisN1M','David Siglin'],
|
['szVTIkisN1M', 'David Siglin'],
|
||||||
['iRzEPkYSETQ','Francois Olwage'],
|
['iRzEPkYSETQ', 'Francois Olwage'],
|
||||||
],
|
],
|
||||||
technology: [
|
technology: [
|
||||||
['QpTCSHzhWuo', 'Joshua Hoehne'],
|
['QpTCSHzhWuo', 'Joshua Hoehne'],
|
||||||
|
|
|
@ -1,28 +1,75 @@
|
||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
|
const knex = require('./knex');
|
||||||
const slugify = require('./utils/slugify');
|
const slugify = require('./utils/slugify');
|
||||||
|
const capitalize = require('./utils/capitalize');
|
||||||
|
|
||||||
function toBaseActors(actorsOrNames) {
|
function toBaseActors(actorsOrNames, release) {
|
||||||
return actorsOrNames.map((actorOrName) => {
|
return actorsOrNames.map((actorOrName) => {
|
||||||
if (actorOrName.name) {
|
if (actorOrName.name) {
|
||||||
return {
|
return {
|
||||||
...actorOrName,
|
...actorOrName,
|
||||||
|
name: capitalize(actorOrName.name),
|
||||||
slug: slugify(actorOrName.name),
|
slug: slugify(actorOrName.name),
|
||||||
|
networkId: release.site.network.id,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
name: actorOrName,
|
name: capitalize(actorOrName),
|
||||||
slug: slugify(actorOrName.name),
|
slug: slugify(actorOrName),
|
||||||
|
networkId: release.site.network.id,
|
||||||
};
|
};
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
async function associateActors(releases) {
|
function curateActorEntry(baseActor) {
|
||||||
const rawActors = releases.map(release => release.actors).flat().filter(Boolean);
|
const actorEntry = {
|
||||||
const baseActors = toBaseActors(rawActors);
|
name: baseActor.name,
|
||||||
|
slug: baseActor.slug,
|
||||||
|
};
|
||||||
|
|
||||||
console.log(baseActors);
|
if (baseActor.name.split(/\s+/).length === 1) {
|
||||||
|
// attach network ID for single names, to reduce mismatches
|
||||||
|
actorEntry.network_id = baseActor.networkId;
|
||||||
|
}
|
||||||
|
|
||||||
|
return actorEntry;
|
||||||
|
}
|
||||||
|
|
||||||
|
function curateActorEntries(baseActors) {
|
||||||
|
return baseActors.map(baseActor => curateActorEntry(baseActor));
|
||||||
|
}
|
||||||
|
|
||||||
|
async function getActors(baseActors) {
|
||||||
|
const existingActors = await knex('actors')
|
||||||
|
.whereIn('slug', baseActors.map(baseActor => baseActor.slug))
|
||||||
|
.orWhereIn('name', baseActors.map(baseActor => baseActor.slug));
|
||||||
|
|
||||||
|
if (existingActors.length === 0) {
|
||||||
|
// TODO: TESTING ONLY
|
||||||
|
await knex('actors').insert(curateActorEntries(baseActors.slice(0, 3)));
|
||||||
|
}
|
||||||
|
|
||||||
|
console.log(existingActors);
|
||||||
|
}
|
||||||
|
|
||||||
|
async function associateActors(releases) {
|
||||||
|
const baseActorsByReleaseId = releases.reduce((acc, release) => {
|
||||||
|
if (release.actors) {
|
||||||
|
acc[release.id] = toBaseActors(release.actors, release);
|
||||||
|
}
|
||||||
|
|
||||||
|
return acc;
|
||||||
|
}, {});
|
||||||
|
|
||||||
|
const baseActors = Object.values(baseActorsByReleaseId).flat();
|
||||||
|
const baseActorsBySlug = baseActors.reduce((acc, baseActor) => ({ ...acc, [baseActor.slug]: baseActor }), {});
|
||||||
|
const uniqueBaseActors = Object.values(baseActorsBySlug);
|
||||||
|
|
||||||
|
const actors = await getActors(uniqueBaseActors);
|
||||||
|
|
||||||
|
console.log(actors);
|
||||||
}
|
}
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
|
|
|
@ -6,7 +6,7 @@ function capitalize(string, trim = true) {
|
||||||
}
|
}
|
||||||
|
|
||||||
const capitalized = string
|
const capitalized = string
|
||||||
.split(/\s/)
|
.split(/\s+/)
|
||||||
.map(component => `${component.charAt(0).toUpperCase()}${component.slice(1)}`)
|
.map(component => `${component.charAt(0).toUpperCase()}${component.slice(1)}`)
|
||||||
.join(' ');
|
.join(' ');
|
||||||
|
|
||||||
|
|
|
@ -11,14 +11,14 @@ const schemaExtender = makeExtendSchemaPlugin(_build => ({
|
||||||
IMPERIAL
|
IMPERIAL
|
||||||
}
|
}
|
||||||
|
|
||||||
extend type Actor {
|
extend type ActorProfile {
|
||||||
age: Int @requires(columns: ["birthdate"])
|
age: Int @requires(columns: ["birthdate"])
|
||||||
height(units:Units): String @requires(columns: ["height"])
|
height(units:Units): String @requires(columns: ["height"])
|
||||||
weight(units:Units): String @requires(columns: ["weight"])
|
weight(units:Units): String @requires(columns: ["weight"])
|
||||||
}
|
}
|
||||||
`,
|
`,
|
||||||
resolvers: {
|
resolvers: {
|
||||||
Actor: {
|
ActorProfile: {
|
||||||
age(parent, _args, _context, _info) {
|
age(parent, _args, _context, _info) {
|
||||||
if (!parent.birthdate) return null;
|
if (!parent.birthdate) return null;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue