From 2835c66694628ab7e50d33d709ab06949ea2b224 Mon Sep 17 00:00:00 2001 From: DebaucheryLibrarian Date: Thu, 20 Aug 2020 04:57:38 +0200 Subject: [PATCH] Added chapters and shoot location. Added In The Crack. --- README.md | 2 +- assets/components/releases/media.vue | 8 +- assets/components/releases/movies.vue | 1 + assets/components/releases/scene.vue | 106 +++++++++++++++ assets/js/curate.js | 10 ++ assets/js/fragments.js | 39 +++++- assets/js/releases/actions.js | 8 +- config/default.js | 2 - migrations/20190325001339_releases.js | 87 +++++++++++- public/img/logos/inthecrack/favicon.png | Bin 0 -> 5332 bytes public/img/logos/inthecrack/inthecrack.png | Bin 0 -> 23311 bytes .../img/logos/inthecrack/lazy/inthecrack.png | Bin 0 -> 6674 bytes public/img/logos/inthecrack/lazy/network.png | Bin 0 -> 6674 bytes .../inthecrack/misc/in-the-crack_original.png | Bin 0 -> 18094 bytes public/img/logos/inthecrack/network.png | Bin 0 -> 23312 bytes .../logos/inthecrack/thumbs/inthecrack.png | Bin 0 -> 20736 bytes .../img/logos/inthecrack/thumbs/network.png | Bin 0 -> 20736 bytes seeds/00_tags.js | 5 + seeds/02_sites.js | 6 + src/actors.js | 2 +- src/media.js | 6 +- src/scrapers/inthecrack.js | 124 ++++++++++++++++++ src/scrapers/scrapers.js | 2 + src/store-releases.js | 65 ++++++++- src/tags.js | 36 ++--- src/utils/bulk-insert.js | 4 + src/utils/resolve-place.js | 10 +- 27 files changed, 471 insertions(+), 52 deletions(-) create mode 100644 public/img/logos/inthecrack/favicon.png create mode 100644 public/img/logos/inthecrack/inthecrack.png create mode 100644 public/img/logos/inthecrack/lazy/inthecrack.png create mode 100644 public/img/logos/inthecrack/lazy/network.png create mode 100644 public/img/logos/inthecrack/misc/in-the-crack_original.png create mode 100644 public/img/logos/inthecrack/network.png create mode 100644 public/img/logos/inthecrack/thumbs/inthecrack.png create mode 100644 public/img/logos/inthecrack/thumbs/network.png create mode 100644 src/scrapers/inthecrack.js diff --git a/README.md b/README.md index ecfb4caa..537047ec 100644 --- a/README.md +++ b/README.md @@ -55,7 +55,7 @@ To build traxxx, run the following command: `npm run build` -To generate thumbnails for logos and tag photos, install ImageMagick and run: +To generate thumbnails for new logos and tag photos, install ImageMagick and run: `npm run logos-thumbs` diff --git a/assets/components/releases/media.vue b/assets/components/releases/media.vue index 28ea11f6..249d8eb7 100644 --- a/assets/components/releases/media.vue +++ b/assets/components/releases/media.vue @@ -105,18 +105,20 @@ function sfw() { } function photos() { + const photosWithChapterPosters = (this.release.photos || []).concat(this.release.chapters ? this.release.chapters.map(chapter => chapter.poster) : []); + if (this.release.trailer || this.release.teaser) { // poster will be on trailer video - return this.release.photos; + return photosWithChapterPosters; } if (this.release.poster) { // no trailer, add poster to photos - return [this.release.poster].concat(this.release.photos); + return [this.release.poster].concat(this.release.photos).concat(photosWithChapterPosters); } // no poster available - return this.release.photos; + return photosWithChapterPosters; } export default { diff --git a/assets/components/releases/movies.vue b/assets/components/releases/movies.vue index ca33247b..94284d63 100644 --- a/assets/components/releases/movies.vue +++ b/assets/components/releases/movies.vue @@ -53,6 +53,7 @@ export default { display: grid; grid-template-columns: repeat(auto-fill, minmax(25rem, 1fr)); grid-gap: 1rem; + padding: 1rem; } @media(max-width: $breakpoint) { diff --git a/assets/components/releases/scene.vue b/assets/components/releases/scene.vue index f7681002..4e23ecc5 100644 --- a/assets/components/releases/scene.vue +++ b/assets/components/releases/scene.vue @@ -99,6 +99,51 @@

{{ release.description }}

+ +
Shoot date {{ formatDate(release.productionDate, 'MMMM D, YYYY') }}
+ +
+ Location + + {{ release.productionLocation.city }}, + {{ release.productionLocation.state }}, + {{ release.productionLocation.country.alias || release.productionLocation.country.name }} + + + +
curateRelease(scene)); if (release.movies) curatedRelease.movies = release.movies.map(({ movie }) => curateRelease(movie)); + if (release.chapters) curatedRelease.chapters = release.chapters.map(chapter => curateRelease(chapter)); if (release.photos) curatedRelease.photos = release.photos.map(({ media }) => media); if (release.covers) curatedRelease.covers = release.covers.map(({ media }) => media); if (release.trailer) curatedRelease.trailer = release.trailer.media; @@ -77,6 +78,15 @@ function curateRelease(release) { if (release.movieTags && release.movieTags.length > 0) curatedRelease.tags = release.movieTags.map(({ tag }) => tag); if (release.movieActors && release.movieActors.length > 0) curatedRelease.actors = release.movieActors.map(({ actor }) => curateActor(actor, curatedRelease)); + if (release.productionLocation) { + curatedRelease.productionLocation = { + raw: release.productionLocation, + city: release.productionCity, + state: release.productionState, + country: release.productionCountry, + }; + } + return curatedRelease; } diff --git a/assets/js/fragments.js b/assets/js/fragments.js index f1745723..45f015e4 100644 --- a/assets/js/fragments.js +++ b/assets/js/fragments.js @@ -237,6 +237,14 @@ const releaseFragment = ` createdAt shootId productionDate + productionLocation + productionCity + productionState + productionCountry: countryByProductionCountryAlpha2 { + alpha2 + name + alias + } comment url ${releaseActorsFragment} @@ -247,6 +255,35 @@ const releaseFragment = ` ${releaseTrailerFragment} ${releaseTeaserFragment} ${siteFragment} + chapters { + id + title + description + duration + tags: chaptersTags { + tag { + id + name + slug + } + } + poster: chaptersPosterByChapterId { + media { + index + path + thumbnail + lazy + comment + sfw: sfwMedia { + id + thumbnail + lazy + path + comment + } + } + } + } studio { id name @@ -258,7 +295,7 @@ const releaseFragment = ` id title slug - covers: moviesCoversByReleaseId { + covers: moviesCovers { media { index path diff --git a/assets/js/releases/actions.js b/assets/js/releases/actions.js index 6a9d63e6..a5e5ed32 100644 --- a/assets/js/releases/actions.js +++ b/assets/js/releases/actions.js @@ -7,8 +7,6 @@ function initReleasesActions(store, _router) { async function fetchReleases({ _commit }, { limit = 10, pageNumber = 1, range = 'latest' }) { const { before, after, orderBy } = getDateRange(range); - console.log(after, before, orderBy); - const { connection: { releases, totalCount } } = await graphql(` query Releases( $limit:Int = 1000, @@ -89,7 +87,7 @@ function initReleasesActions(store, _router) { type } } - covers: moviesCoversByReleaseId { + covers: moviesCovers { media { id path @@ -139,14 +137,14 @@ function initReleasesActions(store, _router) { lazy } } - covers: moviesCoversByReleaseId { + covers: moviesCovers { media { id path thumbnail } } - trailer: moviesTrailerByReleaseId { + trailer: moviesTrailerByMovieId { media { id path diff --git a/config/default.js b/config/default.js index c0abb69d..80978805 100644 --- a/config/default.js +++ b/config/default.js @@ -26,8 +26,6 @@ module.exports = { 'amberathome', 'marycarey', 'racqueldevonshire', - // boobpedia - 'boobpedia', // blowpass 'sunlustxxx', // ddfnetwork diff --git a/migrations/20190325001339_releases.js b/migrations/20190325001339_releases.js index 0d9271f0..2f3d2cb1 100644 --- a/migrations/20190325001339_releases.js +++ b/migrations/20190325001339_releases.js @@ -614,6 +614,7 @@ exports.up = knex => Promise.resolve() table.text('shoot_id'); table.text('entry_id'); + table.unique(['entity_id', 'entry_id']); table.text('url', 1000); @@ -625,6 +626,13 @@ exports.up = knex => Promise.resolve() table.date('production_date'); + table.text('production_location'); + table.text('production_city'); + table.text('production_state'); + table.text('production_country_alpha2', 2) + .references('alpha2') + .inTable('countries'); + table.enum('date_precision', ['year', 'month', 'day', 'hour', 'minute', 'second']) .defaultTo('day'); @@ -821,7 +829,7 @@ exports.up = knex => Promise.resolve() .defaultTo(knex.fn.now()); })) .then(() => knex.schema.createTable('movies_covers', (table) => { - table.integer('release_id', 16) + table.integer('movie_id', 16) .notNullable() .references('id') .inTable('movies'); @@ -831,10 +839,10 @@ exports.up = knex => Promise.resolve() .references('id') .inTable('media'); - table.unique(['release_id', 'media_id']); + table.unique(['movie_id', 'media_id']); })) .then(() => knex.schema.createTable('movies_trailers', (table) => { - table.integer('release_id', 16) + table.integer('movie_id', 16) .unique() .notNullable() .references('id') @@ -845,6 +853,74 @@ exports.up = knex => Promise.resolve() .references('id') .inTable('media'); })) + .then(() => knex.schema.createTable('chapters', (table) => { + table.increments('id', 16); + + table.integer('release_id', 12) + .references('id') + .inTable('releases') + .notNullable(); + + table.integer('chapter', 6); + + table.unique(['release_id', 'chapter']); + + table.text('title'); + table.text('description'); + + table.integer('duration') + .unsigned(); + + table.integer('created_batch_id', 12) + .references('id') + .inTable('batches'); + + table.integer('updated_batch_id', 12) + .references('id') + .inTable('batches'); + + table.datetime('created_at') + .defaultTo(knex.fn.now()); + })) + .then(() => knex.schema.createTable('chapters_posters', (table) => { + table.integer('chapter_id', 16) + .notNullable() + .references('id') + .inTable('chapters'); + + table.text('media_id', 21) + .notNullable() + .references('id') + .inTable('media'); + + table.unique('chapter_id'); + })) + .then(() => knex.schema.createTable('chapters_photos', (table) => { + table.integer('chapter_id', 16) + .notNullable() + .references('id') + .inTable('chapters'); + + table.text('media_id', 21) + .notNullable() + .references('id') + .inTable('media'); + + table.unique(['chapter_id', 'media_id']); + })) + .then(() => knex.schema.createTable('chapters_tags', (table) => { + table.integer('tag_id', 12) + .notNullable() + .references('id') + .inTable('tags'); + + table.integer('chapter_id', 16) + .notNullable() + .references('id') + .inTable('chapters'); + + table.unique(['tag_id', 'chapter_id']); + })) // SEARCH .then(() => { // eslint-disable-line arrow-body-style // allow vim fold @@ -1024,6 +1100,10 @@ exports.down = (knex) => { // eslint-disable-line arrow-body-style DROP TABLE IF EXISTS movies_scenes CASCADE; DROP TABLE IF EXISTS movies_trailers CASCADE; + DROP TABLE IF EXISTS chapters_tags CASCADE; + DROP TABLE IF EXISTS chapters_posters CASCADE; + DROP TABLE IF EXISTS chapters_photos CASCADE; + DROP TABLE IF EXISTS batches CASCADE; DROP TABLE IF EXISTS actors_avatars CASCADE; @@ -1042,6 +1122,7 @@ exports.down = (knex) => { // eslint-disable-line arrow-body-style DROP TABLE IF EXISTS tags_posters CASCADE; DROP TABLE IF EXISTS tags_photos CASCADE; DROP TABLE IF EXISTS movies CASCADE; + DROP TABLE IF EXISTS chapters CASCADE; DROP TABLE IF EXISTS releases CASCADE; DROP TABLE IF EXISTS actors CASCADE; DROP TABLE IF EXISTS directors CASCADE; diff --git a/public/img/logos/inthecrack/favicon.png b/public/img/logos/inthecrack/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..8e5c2dcc88e56bfeeb921f5bde68bc8b64ce22ad GIT binary patch literal 5332 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 ebr)mxwSNPW7Gv`7$#o$B0000T#E literal 0 HcmV?d00001 diff --git a/public/img/logos/inthecrack/lazy/inthecrack.png b/public/img/logos/inthecrack/lazy/inthecrack.png new file mode 100644 index 0000000000000000000000000000000000000000..6d0529af95196b974582733563a3b493b00a6c4c GIT binary patch literal 6674 zcmb7I1zZ$e*B?3rBt;M04lopmQUAhD$Bm`7K5D*nG z08v0pV!y$7-uRyH`@QeoxpU9X`Ja2wf9^SV=1!u%t_C$FD=C2D9=GWMl8V#fiu`Es?sF1n6`JS;+5MwY)zGZC*%DQtgD`olplADF_KH;g>l3x6ZiX6p8 zR5O=WIEq(Vs2>~*^%!K_T=iKM%M{T(97R1_lX{?*E0Z%;khgzLOizgMs_6&Y3P;x= z!yz%F8UB)oLG_Ro`+6f+t*zqsv6!CTrU_L3pr$>YHZ7;3IyLO3Ew^r+Zc?noHgCwG zN}~-=?)63pBU0!#C3VIY*+KM+=jO3v6qorkfG!)hw+_VQ+k}%{Ya#4cbw3f4%M+Od zE!lVg;w9ztOXly%-z|}fG%n@$kXe2JqV?h&wHg`A$CxPl4_HDCX%bcl<=m{j8bS-@ z0hUbxUm`X(Laf@j_18fEj^_68M=d`N2=wKUdFPj18Nlh_aL_c+0f3-O01y!a06)M> z5$^!NR}=s?Z2>^`7633K3cGGx0|3G;{p&Z?EWU5S@c= z9L(vNE*w}4E9>w}zwMJ%g~+Hp-Vk7YAk|Nog&hmV{_w+>N>_|k{XAS?hLn$PN!iTUE=fYBQVbKc`k9c;7LW^ zS=A^E7L|V6BRbtXt0uOlucH5P!|-fo!@bzTT9?>tkSQvo9Fp$`ilQMUbc!$V$*T6tu0o^~xkjMD&Yfd#S%;*$C+49NG9xQ{LJAtAD!Nme#{3I# zuE`}K#m&gfO3+pC0B=P^We+O14)i3XtRuXvJsjHsns_AUyGNzJoE!q>nCjlpB3xuu zuV-qhPflHYO>a^e4xUgDg>8?ny5|m(P0SCu-I~|&@b185VP$=Ic~@A)y};s@IBZKq zMR!Qyosh!2F=Z_|?c-6^{Sj4tKB*U{qWMZu(I};n%=;y za&XGz^es~F4hNOAngyYCJtHiFQmp)A!P^^C)0bS^6Ia_GUDl#)V(p(-A9=eurlKRL zxG5mBEV`=44PB<`6mSy}spp7@tmsBJjiuv;k(pIDy`#`|_fjfa60yyRWw_$L*^K4~ z;aO$q+8*#oD5^=W>PW&iB~`X3SGFZrcO};J_-B>-VoE*ZvRcOGF}UH7qPxD?)uDxr zam5YE<;@^|qOB$yHxOA+7nV^3c3asyQ9JM?rKU47w>+<4P~Hf2)2JyMuh1ZNSI9rp3VTdJhflD6o-zsM4#=bDM=o-s*bDOlv#??qdqQ& zsf*9;x^p=t!k;3O&(lKnUCQWSgNiVQ@Me+(n(bVMoX)+@nk!atvUFc&EB=0v zIDx&khU&Mg4$e;C9}0w~nGXP*qCcqw)6c^W!HZ-lsE!)hIyu7`CaLnUWh>C;e$Y)* zl!2W;2LkEk1b2sVpaKyvj-QLZG`hmjB9)Dk>hLY2Ow?|(jP7X(gAd`6XQ@6dKGQ5P zRZf7kJ*?F1bJOXItFeo+3y3nl=%L;(!RZmia*nb|jBAurO_%s?^7Bx@vG3MgZb|dS zNiB8KLK5PR0R_{qwb3_L6uI5~ofKO32M=`2hBdMJ4@ks$yr`(qgQX9ZT;DK6p>w%+ zCZ@jbcncj`V*B$$3Vl*uxuiufAJ+OW7w_nd?qU*-U{L~2)=d3G@@p@a^`dJ_+oWgw z?mikIxoeK_yDaUs?B`a<)_Cd1vDU%Gx+H5Z<*T-xa*=7Y9p8}j5Ni*KS{3+e_tn|U zXif)Sij?HpsfdlmQtX?_)##k`%0olQZNA?JF4(M&#YMf+>2Kt} z$Q5$NF>aiWe|vL~99G>Qk2+yp!qFY)s63kV7ci(D2JgYbz<5E4mVAtsRmAJ3#$uaU{g z0}6^t$||aA>Kd9*E$!<%^7Zql2neJM3JwVk3y+A5ijIkmJ4HoJ6Q7Wnl$?T2O-sjQWRhlO=j7hXI}PL) z6c!bi+%Bap!_t*kR902j)YjEEG~T(3Yie$3ZENr7?CS2h*W1^Be_(KE_`%5N7%={D zVv>I9(PM@u(~L8-b4*X?7oIIHEk9p*@$%K`+WPA^Z{KZfZoS|B@Ns8%@6-P0FJGD0 z{Acu<_G!V_npgQ^- z5D_s^5eWDghloN%WkscBA)*|jqOuS%SqW(nO>q0yXeV|j1@!;7zb9S&@%QHrXpcB`@6MhL$ z0mw;7$w*1a$;ikkD99+sC%MG>D}N*;ubgDepEUWC9e=XoXEFo?2A!n9 zN%&`E{tEm2GVJeI|0~GNq62vm5)%^< zlb!G)AoM>WPDf0_DMm`Kbc4*!n}G`wNzSN@DaGBV;1)O7VX{X)p*+JQ@#^C43ALXq z!+%EXXLA47%>GK!U)g!WYZ0I#A^<0khz?KymUqxSPi)`@lFx@Cu`(vv2?y~w$){Uk zob8YEpF6jA-g?ySm0s)J&N8L>nQ1D(;m9uy4_H1rPL{;2>c@T66CoggZGp>P!)wMj zm`5yXSZA37`t2TZ*;)y;?zIXU!^+^D4+9{Zb8d^yp(E2M^0i7;KoLfg4rEy zJv&D~UYJH0t5H39yI!PF%Ca>ZN<-6DTD|1D!X|a*t$>vZcj&r%N|cbV{p z6cmC7225UkgEi+{NMgPcaSHVF3n(p>XiXFhFw-jWOxA0vx|&8x1A}#slvzWn?Bd@egZBIdj8aZCoyTB5C#{o#@lV;oFV;xtS1QpQ_Ef z)>mq$M=oqXVPX3)j(NQMLZbHq9!NV#`>|d!F|T1{tOG6M8dYdCGV!zs7YE33V5qrE+5f2(Kj5%<7=NdcGRkY)z5CAwq9*CcpNYQTgHso4Cs~RDi?8wt;ltGLIREzO)KZ1Lw@Q)+yQ&gyRLy#s4h0P2Os7sOVjJa)y5>I8aZ}sNoXx0nWnsQXXcnnp zO|~vr8B^09qb_z8a3Np;JIAXIVHgMp_Shd`p$k!o~P}J2xpv| zTTQ-^(6v|t;6kUJ*^8ax1w8Qhs=@CWm^oBeSaqQ2=TY|lKJ#K|<${KQJ9cy*XR}kQ zZ&|aDD>X6qUbqU~QkOSmP%&A#O4vGN%g?*akTyctCA;di-nx5=++6|>2w`yEXLa6Q zJCBY0e7MzaOO#$ESbVybe^}78)(3fS0_`<)CZB%rOF~ul8(vq%h(en3^~h9>Fg#%1 zUb!ji+7)8bb})n_+UpqPCnKiY!dM=)oLbeRwOmd)6@cBF)?Hw^e`uPyk5$ZWdG55P zljRP*)l_rLLPn)PtDxn1D(6VGR^AOI+x7Nik6q=n<+EI7A9)Pp4AGUhu3(P~HkVY`rZJ4};_1-0WVi=`wP9>e>g{k068zljwRKdrkqXQvjW4O&g!MDf#Tj&sLUfmM#vLj|p9uhAEWp%a7!nw6tVvX*+vv zs*BpQowk=@k5#IIpOMuo`NEf!w|q56<{AxSFjdJ^=IeLTpKJ_bPeJ+57dXg^$QL%E;=rCt28et7>l_@fzr(~R^ z31{^{W8J#OwHucANy^%-NoBWfHiKS`Bjf__WN*DceNI4Q=c`o`kLjw8ETS4qpgw5B{#5rlb@q16=gYBpVBQ4} ze4YT;jb`&+LFxR5M`Ph%v{JS6I1DAU={04gV3)~A`R9Hr5HT{ImL|_vNBaSi?0&#DyiU?#$eG=dd#*3N)_xDh?s~zr1TOEK z)!k%r-h1PEvVLdxqeYgB&%XMrSFu;fhX=|J9VqyYblP90dq=x8c>YO@F0LBko*c69 zHob6mZ1v;mYSXn&x|CN&!dB|gFP28)xYX-s)(`qiUTGS0KV4ZmKIHvo;CZ=YI^(^^ z<`3`Qw$t>{*UVn}`pRi^veC-7PMLm73T4u1_}tRG#4%)`O5lqJ9HUd^e$4c>OR|6e zjt54V4+UPM2RFasG{Wd@_XKca)%M~?FA0v|HFd~QgXlMJlIiu>;J5kWR`#46sbiDR z>3!AJTn}~(b$KFr-rw-4&QRNcoG?~EpDtkmNwW$WDi)RVS#0yY$E-X3K4W$I3B3x3 zWv`_J@xFWN+|+r01CG-zJEQhE`sF^3x8m=F2h`aw}NYJM*a zriyBMGi$Hp`bAyLZWH8t_x+%XC_R{cw=RtLUa*efc+9F>&R!&0HgU+v-r54j42@V! z;aK4jXY+VC5VN*d)jFG-YQ3%|s6Ij4qXj1BTAC|cX7+ux>b){ItJ4NiAAJZph)rjg5Fxjl;eNcfUkPn=Rad|Cw)2<-3?!6!>-K$@ z%53W^?2r~$rH>mrH~qUA${QR#u^M+=g0cPLxB0ujS+cDu=$lARS-2Sngsr+<7Oo8T zb1&)(x-`N~R(&n}^CyGW{V(M7k4GrGnQbwA#5>|Mi}f2{A#Th#rSK+{NHsF)9Lq)r z)o}}!C%bqs>zu2$_or|3nwpCk{OA5+&MEUC4*4EA8Wn9(bO;z6e zUgG1H>#4flA8%0m8yFK??kOyQ4<_I9bBQ;z^I@T07OYi+kLXmSO+VVrRDGfir(FoM z+dk|Q_-@_XoWsZa{LSK$G|JJ|_B!P5ePV}nr46&b9dtnWaRjTzF`$MAhGwtYsA#S% zmf)WOB?&yw!I#~OC^b`*qa6w+>wtuT&Ck7(u&A`Kn9NNG&XbP0JxK^G92Zj4?`N-c_7?jfV2?D$w9v@&kLgH{z9pE zxqBfE5q1tRK7`TnLyEqyf&s3!`Bba1irbcU&WAwBF+fVikc zy~ZOK(B|@gYV-TvibF)ja<<{`KvRLgG1YhRLV0<>P)NAL&rw0vC_B_o+Vo6Gte_Rg z-&p+$qLXmahX=si0r6M!ljb1y+zA%^z9#G7g$P8#on26XzOTJI+<`;Y%fk-t*@h9b z0AXBzV2&^!2P7QvbG)B3Y3~bnM+w6{IeZK>l&?E0F@R{MKWGm-PhTfH2b3=ohWt74 i*NfA~K>*EP053<-nG;hBTc`@C0ibHSs*TFFQU3$Q1XbDq literal 0 HcmV?d00001 diff --git a/public/img/logos/inthecrack/lazy/network.png b/public/img/logos/inthecrack/lazy/network.png new file mode 100644 index 0000000000000000000000000000000000000000..74b29a322edc5c4a70380925d3554e87ea03c85c GIT binary patch literal 6674 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 literal 0 HcmV?d00001 diff --git a/public/img/logos/inthecrack/thumbs/network.png b/public/img/logos/inthecrack/thumbs/network.png new file mode 100644 index 0000000000000000000000000000000000000000..cd78d3216867caa7582a1f58b75908ea4df4ff2a GIT binary patch literal 20736 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 bp8~uOn9Po=n-|Imv;Zg*YvYH 0) { - await bulkInsert(`${type}_${role}`, associations, false); + await bulkInsert(`${type}s_${role}`, associations, false); } }, Promise.resolve()); } diff --git a/src/scrapers/inthecrack.js b/src/scrapers/inthecrack.js new file mode 100644 index 00000000..3dad77a3 --- /dev/null +++ b/src/scrapers/inthecrack.js @@ -0,0 +1,124 @@ +'use strict'; + +const moment = require('moment'); + +const qu = require('../utils/q'); +const slugify = require('../utils/slugify'); + +function scrapeAll(scenes, channel) { + return scenes.map(({ query }) => { + const release = {}; + + release.url = query.url('a', 'href', { origin: channel.url }); + release.entryId = new URL(release.url).pathname.match(/\/Collection\/(\d+)/)[1]; + + release.shootId = query.cnt('a span:nth-of-type(1)').match(/^\d+/)?.[0]; + release.date = query.date('a span:nth-of-type(2)', 'YYYY-MM-DD'); + + release.actors = (query.q('a img', 'alt') || query.cnt('a span:nth-of-type(1)'))?.match(/[a-zA-Z]+(\s[A-Za-z]+)*/g); + + release.poster = release.shootId + ? `https://inthecrack.com/assets/images/posters/collections/${release.shootId}.jpg` + : query.img('a img', 'src', { origin: channel.url }); + + return release; + }); +} + +function scrapeScene({ query, html }, url, channel) { + const release = {}; + + release.entryId = new URL(url).pathname.match(/\/Collection\/(\d+)/)[1]; + release.shootId = query.cnt('h2 span').match(/^\d+/)?.[0]; + + release.actors = query.cnt('h2 span')?.match(/[a-zA-Z]+(\s[A-Za-z]+)*/g); + + release.description = query.cnt('p#CollectionDescription'); + release.productionLocation = query.cnt('.modelCollectionHeader p')?.match(/Shoot Location: (.*)/)?.[1]; + + release.poster = qu.prefixUrl(html.match(/background-image: url\('(.*)'\)/)?.[1], channel.url); + + release.chapters = query.all('.ClipOuter').map((el) => { + const chapter = {}; + + chapter.title = query.text(el, 'h4'); + chapter.description = query.cnt(el, 'p'); + chapter.duration = query.dur(el, '.InlineDuration'); + + const posterStyle = query.style(el, '.clipImage', 'background-image'); + const poster = qu.prefixUrl(posterStyle.match(/url\((.*)\)/)?.[1], channel.url); + + if (poster) { + const { origin, pathname } = new URL(poster); + + chapter.poster = [ + `${origin}${pathname}`, // full size + poster, + ]; + } + + if (query.exists(el, '.ThreeDInfo')) { + chapter.tags = ['3d']; + } + + return chapter; + }); + + return release; +} + +function scrapeProfile({ query, el }, actorName, entity, include) { + const profile = {}; + + profile.description = query.cnt('.bio-text'); + profile.birthPlace = query.cnt('.birth-place span'); + + profile.avatar = query.img('.actor-photo img'); + + if (include.releases) { + return scrapeAll(qu.initAll(el, '.scene')); + } + + console.log(profile); + return profile; +} + +async function fetchLatest(channel, page = 1) { + const year = moment().subtract(page - 1, ' year').year(); + + const url = `${channel.url}/Collections/Date/${year}`; + const res = await qu.getAll(url, '.collectionGridLayout li'); + + if (res.ok) { + return scrapeAll(res.items, channel); + } + + return res.status; +} + +async function fetchScene(url, channel) { + const res = await qu.get(url); + + if (res.ok) { + return scrapeScene(res.item, url, channel); + } + + return res.status; +} + +async function fetchProfile({ name: actorName }, entity, include) { + const url = `${entity.url}/actors/${slugify(actorName, '_')}`; + const res = await qu.get(url); + + if (res.ok) { + return scrapeProfile(res.item, actorName, entity, include); + } + + return res.status; +} + +module.exports = { + fetchLatest, + fetchScene, + // fetchProfile, +}; diff --git a/src/scrapers/scrapers.js b/src/scrapers/scrapers.js index ab5ab528..f67add47 100644 --- a/src/scrapers/scrapers.js +++ b/src/scrapers/scrapers.js @@ -27,6 +27,7 @@ const hitzefrei = require('./hitzefrei'); const hush = require('./hush'); const iconmale = require('./iconmale'); const insex = require('./insex'); +const inthecrack = require('./inthecrack'); const jayrock = require('./jayrock'); const jesseloadsmonsterfacials = require('./jesseloadsmonsterfacials'); const julesjordan = require('./julesjordan'); @@ -108,6 +109,7 @@ module.exports = { hushpass: hush, insex, interracialpass: hush, + inthecrack, jayrock, jesseloadsmonsterfacials, julesjordan, diff --git a/src/store-releases.js b/src/store-releases.js index 40386844..1cfd0998 100644 --- a/src/store-releases.js +++ b/src/store-releases.js @@ -7,13 +7,14 @@ const logger = require('./logger')(__filename); const knex = require('./knex'); const slugify = require('./utils/slugify'); const bulkInsert = require('./utils/bulk-insert'); +const resolvePlace = require('./utils/resolve-place'); const { formatDate } = require('./utils/qu'); const { associateActors, scrapeActors } = require('./actors'); const { associateReleaseTags } = require('./tags'); const { curateEntity } = require('./entities'); const { associateReleaseMedia } = require('./media'); -function curateReleaseEntry(release, batchId, existingRelease, type = 'scene') { +async function curateReleaseEntry(release, batchId, existingRelease, type = 'scene') { const slugBase = release.title || (release.actors?.length && `${release.entity.slug} ${release.actors.map(actor => actor.name).join(' ')}`) || (release.date && `${release.entity.slug} ${formatDate(release.date, 'YYYY MM DD')}`) @@ -50,6 +51,20 @@ function curateReleaseEntry(release, batchId, existingRelease, type = 'scene') { curatedRelease.duration = release.duration; } + if (release.productionLocation) { + curatedRelease.production_location = release.productionLocation; + + if (argv.resolvePlace) { + const productionLocation = await resolvePlace(release.productionLocation); + + if (productionLocation) { + curatedRelease.production_city = productionLocation.city; + curatedRelease.production_state = productionLocation.state; + curatedRelease.production_country_alpha2 = productionLocation.country; + } + } + } + if (!existingRelease && !release.id) { curatedRelease.created_batch_id = batchId; } @@ -228,6 +243,46 @@ async function updateReleasesSearch(releaseIds) { } } +async function storeChapters(releases) { + const chapters = releases.map(release => release.chapters?.map((chapter, index) => ({ + title: chapter.title, + description: chapter.description, + releaseId: release.id, + chapter: index + 1, + duration: chapter.duration, + poster: chapter.poster, + photos: chapter.photos, + tags: chapter.tags, + }))).flat().filter(Boolean); + + const curatedChapterEntries = chapters.map(chapter => ({ + title: chapter.title, + description: chapter.description, + duration: chapter.duration, + release_id: chapter.releaseId, + chapter: chapter.chapter, + })); + + const storedChapters = await bulkInsert('chapters', curatedChapterEntries); + const chapterIdsByReleaseIdAndChapter = storedChapters.reduce((acc, chapter) => ({ + ...acc, + [chapter.release_id]: { + ...acc[chapter.release_id], + [chapter.chapter]: chapter.id, + }, + }), {}); + + const chaptersWithId = chapters.map(chapter => ({ + ...chapter, + id: chapterIdsByReleaseIdAndChapter[chapter.releaseId][chapter.chapter], + })); + + await associateReleaseTags(chaptersWithId, 'chapter'); + + // media is more error-prone, associate separately + await associateReleaseMedia(chaptersWithId, 'chapter'); +} + async function storeScenes(releases) { if (releases.length === 0) { return []; @@ -241,7 +296,7 @@ async function storeScenes(releases) { // uniqueness is entity ID + entry ID, filter uniques after adding entities const { uniqueReleases, duplicateReleases, duplicateReleaseEntries } = await filterDuplicateReleases(releasesWithStudios); - const curatedNewReleaseEntries = uniqueReleases.map(release => curateReleaseEntry(release, batchId)); + const curatedNewReleaseEntries = await Promise.all(uniqueReleases.map(release => curateReleaseEntry(release, batchId))); const storedReleases = await bulkInsert('releases', curatedNewReleaseEntries); // TODO: update duplicate releases @@ -263,6 +318,8 @@ async function storeScenes(releases) { await scrapeActors(actors.map(actor => actor.name)); } + await storeChapters(releasesWithId); + logger.info(`Stored ${storedReleaseEntries.length} releases`); return releasesWithId; @@ -303,13 +360,13 @@ async function storeMovies(movies, movieScenes) { const { uniqueReleases } = await filterDuplicateReleases(movies); const [batchId] = await knex('batches').insert({ comment: null }).returning('id'); - const curatedMovieEntries = uniqueReleases.map(release => curateReleaseEntry(release, batchId, null, 'movie')); + const curatedMovieEntries = await Promise.all(uniqueReleases.map(release => curateReleaseEntry(release, batchId, null, 'movie'))); const storedMovies = await bulkInsert('movies', curatedMovieEntries, ['entity_id', 'entry_id'], true); const moviesWithId = attachReleaseIds(movies, storedMovies); await associateMovieScenes(moviesWithId, movieScenes); - await associateReleaseMedia(moviesWithId, 'movies'); + await associateReleaseMedia(moviesWithId, 'movie'); return storedMovies; } diff --git a/src/tags.js b/src/tags.js index 2efb56bd..d8cb94af 100644 --- a/src/tags.js +++ b/src/tags.js @@ -2,6 +2,7 @@ const knex = require('./knex'); const slugify = require('./utils/slugify'); +const bulkInsert = require('./utils/bulk-insert'); async function matchReleaseTags(releases) { const rawTags = releases @@ -28,7 +29,7 @@ async function matchReleaseTags(releases) { } async function getEntityTags(releases) { - const entityIds = releases.map(release => release.entity.id); + const entityIds = releases.map(release => release.entity?.id).filter(Boolean); const entityTags = await knex('entities_tags').whereIn('entity_id', entityIds); const entityTagIdsByEntityId = entityTags.reduce((acc, entityTag) => { @@ -44,10 +45,10 @@ async function getEntityTags(releases) { return entityTagIdsByEntityId; } -function buildReleaseTagAssociations(releases, tagIdsBySlug, entityTagIdsByEntityId) { +function buildReleaseTagAssociations(releases, tagIdsBySlug, entityTagIdsByEntityId, type) { const tagAssociations = releases .map((release) => { - const entityTagIds = entityTagIdsByEntityId[release.entity.id]; + const entityTagIds = entityTagIdsByEntityId[release.entity?.id] || []; const releaseTags = release.tags || []; const releaseTagIds = releaseTags.every(tag => typeof tag === 'number') @@ -61,7 +62,7 @@ function buildReleaseTagAssociations(releases, tagIdsBySlug, entityTagIdsByEntit .filter(Boolean), )] .map(tagId => ({ - release_id: release.id, + [`${type}_id`]: release.id, tag_id: tagId, })); @@ -72,34 +73,13 @@ function buildReleaseTagAssociations(releases, tagIdsBySlug, entityTagIdsByEntit return tagAssociations; } -async function filterUniqueAssociations(tagAssociations) { - const duplicateAssociations = await knex('releases_tags') - .whereIn(['release_id', 'tag_id'], tagAssociations.map(association => [association.release_id, association.tag_id])); - - const duplicateAssociationsByReleaseIdAndTagId = duplicateAssociations.reduce((acc, association) => { - if (!acc[association.release_id]) { - acc[association.release_id] = {}; - } - - acc[association.release_id][association.tag_id] = true; - - return acc; - }, {}); - - const uniqueAssociations = tagAssociations - .filter(association => !duplicateAssociationsByReleaseIdAndTagId[association.release_id]?.[association.tag_id]); - - return uniqueAssociations; -} - -async function associateReleaseTags(releases) { +async function associateReleaseTags(releases, type = 'release') { const tagIdsBySlug = await matchReleaseTags(releases); const EntityTagIdsByEntityId = await getEntityTags(releases); - const tagAssociations = buildReleaseTagAssociations(releases, tagIdsBySlug, EntityTagIdsByEntityId); - const uniqueAssociations = await filterUniqueAssociations(tagAssociations); + const tagAssociations = buildReleaseTagAssociations(releases, tagIdsBySlug, EntityTagIdsByEntityId, type); - await knex('releases_tags').insert(uniqueAssociations); + await bulkInsert(`${type}s_tags`, tagAssociations, false); } module.exports = { diff --git a/src/utils/bulk-insert.js b/src/utils/bulk-insert.js index 7ef5fffc..b2af09d7 100644 --- a/src/utils/bulk-insert.js +++ b/src/utils/bulk-insert.js @@ -4,6 +4,10 @@ const knex = require('../knex'); const chunk = require('./chunk'); async function bulkUpsert(table, items, conflict, update = true, chunkSize) { + if (items.length === 0) { + return []; + } + const updated = (conflict === false && ':query ON CONFLICT DO NOTHING RETURNING *;') || (conflict && update && ` :query ON CONFLICT (${conflict}) diff --git a/src/utils/resolve-place.js b/src/utils/resolve-place.js index 4c455995..cea15148 100644 --- a/src/utils/resolve-place.js +++ b/src/utils/resolve-place.js @@ -20,7 +20,15 @@ async function resolvePlace(query) { const rawPlace = item.address; const place = {}; - if (rawPlace.city) place.city = rawPlace.city; + if (item.class === 'place' || item.class === 'boundary') { + const location = rawPlace[item.type] || rawPlace.city || rawPlace.place; + + if (location) { + place.place = location; + place.city = rawPlace.city || location; + } + } + if (rawPlace.state) place.state = rawPlace.state; if (rawPlace.country_code) place.country = rawPlace.country_code.toUpperCase(); if (rawPlace.continent) place.continent = rawPlace.continent;