2163 Commits

Author SHA1 Message Date
DebaucheryLibrarian
0560fac1ff 1.250.38 2026-03-13 05:14:45 +01:00
DebaucheryLibrarian
108bf3b168 Integrated manticore stash sync tool. 2026-03-13 05:14:42 +01:00
DebaucheryLibrarian
155e235246 Fixed Aylo specifying wrong host for media. 2026-03-10 05:54:00 +01:00
DebaucheryLibrarian
bff665c6ec 1.250.37 2026-03-10 04:41:36 +01:00
DebaucheryLibrarian
c7111329dc Improved knex error reporting. 2026-03-10 04:41:30 +01:00
DebaucheryLibrarian
d7c1c0ae5c 1.250.36 2026-03-09 05:36:21 +01:00
DebaucheryLibrarian
ea298d7edb Fixed Aylo scraper ignoring session configuration. 2026-03-09 05:36:17 +01:00
DebaucheryLibrarian
99dfcae920 1.250.35 2026-03-08 04:03:57 +01:00
DebaucheryLibrarian
24cba1e1fa Deleting flushed scenes from manticore. 2026-03-08 04:03:55 +01:00
DebaucheryLibrarian
076bdad310 1.250.34 2026-03-06 04:25:55 +01:00
DebaucheryLibrarian
d432d291dd Added See Him Solo to Hussie Pass, added HP affiliates. 2026-03-06 04:25:51 +01:00
DebaucheryLibrarian
220f7e787d 1.250.33 2026-03-05 02:00:53 +01:00
DebaucheryLibrarian
f1caa77e4b Added scene tags table to manticore scenes tool. 2026-03-05 02:00:43 +01:00
DebaucheryLibrarian
ff633436cb 1.250.32 2026-03-04 02:53:21 +01:00
DebaucheryLibrarian
6860072a51 Added database support for actor-specific scene tags. 2026-03-04 02:53:17 +01:00
DebaucheryLibrarian
2c7b4cfc22 1.250.31 2026-03-04 01:57:39 +01:00
DebaucheryLibrarian
7d9e1be8d4 Added Lesbian Factor. 2026-03-04 01:57:33 +01:00
DebaucheryLibrarian
00db4b1b5b 1.250.30 2026-03-03 23:47:50 +01:00
DebaucheryLibrarian
9f1cf1575a Added ASG Max channel parameters. 2026-03-03 23:47:48 +01:00
DebaucheryLibrarian
4f13e4ed28 1.250.29 2026-03-03 23:11:33 +01:00
DebaucheryLibrarian
9805aa7b5b Added Deep Inside to Disruptive Films. Added Sodomy Squad affiliate. 2026-03-03 23:11:32 +01:00
DebaucheryLibrarian
0cc6ebc305 1.250.28 2026-03-03 22:40:52 +01:00
DebaucheryLibrarian
016c24af28 Added channel filter option to Gamma scraper, re-added Disruptive Films channel. 2026-03-03 22:40:49 +01:00
DebaucheryLibrarian
2158550091 1.250.27 2026-03-03 01:21:00 +01:00
DebaucheryLibrarian
68ddc8cb78 Added Wicked affiliate. Improved Gamma banner tool filename composition. 2026-03-03 01:20:58 +01:00
DebaucheryLibrarian
bc5693e44a 1.250.26 2026-03-02 23:55:11 +01:00
DebaucheryLibrarian
7276d90629 Disabled tags by default in Gamma banner tool filenames. Added Gangbang Creampie, Gloryhole Secrets and Taboo Heat affiliates. 2026-03-02 23:55:09 +01:00
DebaucheryLibrarian
1a1af95a10 1.250.25 2026-03-02 22:36:08 +01:00
DebaucheryLibrarian
bcb7a56588 Added alt descriptions and attributes columns to series. 2026-03-02 22:36:05 +01:00
DebaucheryLibrarian
16648d50f6 Re-enabled filename actors and tags in Gamma banner tool, improved disable argument. 2026-03-02 06:24:54 +01:00
DebaucheryLibrarian
062dc0e75e 1.250.24 2026-03-02 06:21:30 +01:00
DebaucheryLibrarian
42effd53fc Added Diabolic affiliate. Disabled filename actors and tags in Gamma banner tool, unreliable. 2026-03-02 06:21:27 +01:00
DebaucheryLibrarian
3a3403bb1f 1.250.23 2026-03-02 06:07:49 +01:00
DebaucheryLibrarian
6fb4989256 Added Chaos Men affiliate. 2026-03-02 06:07:45 +01:00
DebaucheryLibrarian
9750ca4b79 1.250.22 2026-03-02 05:52:48 +01:00
DebaucheryLibrarian
0500f7eda8 Added Burning Angel affiliate. Fixed Gamma banner tool breaking on invalid URL. 2026-03-02 05:52:46 +01:00
DebaucheryLibrarian
19beff7dbc 1.250.21 2026-03-02 05:38:52 +01:00
DebaucheryLibrarian
dfe1b84992 Explicitly unsetting channel parent in seed. 2026-03-02 05:38:50 +01:00
DebaucheryLibrarian
3d3b544cb4 1.250.20 2026-03-02 05:07:26 +01:00
DebaucheryLibrarian
65fa6027ee Prioritized pissing tag. 2026-03-02 05:07:23 +01:00
DebaucheryLibrarian
b3a0ba72eb 1.250.19 2026-03-02 04:01:41 +01:00
DebaucheryLibrarian
f3e2143b45 Fixed wrong date parse function call in Gamma scraper. Added Biphoria affiliate link. 2026-03-02 04:01:39 +01:00
DebaucheryLibrarian
d289f95d3d 1.250.18 2026-03-02 03:46:48 +01:00
DebaucheryLibrarian
d8b41ec9b5 Use request interface for Vixen deep fetch, seemingly less chance of a 403. 2026-03-02 03:46:46 +01:00
DebaucheryLibrarian
05f7d8b814 1.250.17 2026-03-02 03:27:27 +01:00
DebaucheryLibrarian
c2fc09fdaa Removed redundant program filter from Gamma banner tool. 2026-03-02 03:27:24 +01:00
DebaucheryLibrarian
8a7210a3b9 1.250.16 2026-03-02 03:08:28 +01:00
DebaucheryLibrarian
e029ca7fd0 Added Gamma banner downloader. 2026-03-02 03:08:26 +01:00
DebaucheryLibrarian
ffcfae69d5 1.250.15 2026-03-02 03:07:12 +01:00
DebaucheryLibrarian
dcaee01ce8 Using channel origin instead of URL for Gamma referer URL composition. 2026-03-02 03:07:10 +01:00
DebaucheryLibrarian
7561a4577e 1.250.14 2026-03-02 01:41:38 +01:00
DebaucheryLibrarian
98b735dbae Added Vivid and Zero Tolerance affiliate links. Restored BAM Visions profile scraper, site is back online. 2026-03-02 01:41:36 +01:00
DebaucheryLibrarian
d2daed788c 1.250.13 2026-03-02 01:14:27 +01:00
DebaucheryLibrarian
23257745a7 Fixed profile updated_at timestamp not updating. 2026-03-02 01:14:23 +01:00
DebaucheryLibrarian
156954553d 1.250.12 2026-03-02 01:06:31 +01:00
DebaucheryLibrarian
eb20af14a6 Improved Gamma scene URL composition. 2026-03-02 01:06:29 +01:00
DebaucheryLibrarian
ae247c7a91 1.250.11 2026-03-02 00:49:04 +01:00
DebaucheryLibrarian
d49e6ef488 Explicitly unsetting parameters in seed. 2026-03-02 00:49:01 +01:00
DebaucheryLibrarian
2b20d98ee0 Removed stray console log. 2026-03-01 23:53:22 +01:00
DebaucheryLibrarian
b8cf6a3e71 1.250.10 2026-03-01 23:52:46 +01:00
DebaucheryLibrarian
af57f412c9 Refactored Gamma scraper, only using API. 2026-03-01 23:52:41 +01:00
DebaucheryLibrarian
3696b81e69 1.250.9 2026-03-01 20:45:32 +01:00
DebaucheryLibrarian
5b6fefd43b Rounding actor profile values stored as integers to prevent database errors. 2026-03-01 20:45:30 +01:00
DebaucheryLibrarian
a863ab888d 1.250.8 2026-03-01 19:58:37 +01:00
DebaucheryLibrarian
209a81ef71 Removed Vivid wrapper, updated channel URLs. 2026-03-01 19:58:35 +01:00
DebaucheryLibrarian
bd91dcbc77 1.250.7 2026-03-01 04:49:04 +01:00
DebaucheryLibrarian
b89f25405a Using batch insert for various actor scraping inserts. 2026-03-01 04:49:01 +01:00
DebaucheryLibrarian
198f08cb3a Removed stray console log. 2026-03-01 04:28:09 +01:00
DebaucheryLibrarian
febaac3865 1.250.6 2026-03-01 04:27:32 +01:00
DebaucheryLibrarian
f82167656b Changed actor foot column to decimal. 2026-03-01 04:27:29 +01:00
DebaucheryLibrarian
6e20d7d216 1.250.5 2026-02-27 00:55:16 +01:00
DebaucheryLibrarian
612a489cdf Fixed actor scraper list reference. 2026-02-27 00:55:14 +01:00
DebaucheryLibrarian
db2e5b2da4 1.250.4 2026-02-27 00:51:13 +01:00
DebaucheryLibrarian
d81310ed25 Removed outdated profile source list. 2026-02-27 00:51:11 +01:00
DebaucheryLibrarian
ec86aa9286 1.250.3 2026-02-26 00:04:41 +01:00
DebaucheryLibrarian
5d58ddcd49 Disabled BAM Visions profile test while site is offline. 2026-02-26 00:04:39 +01:00
DebaucheryLibrarian
c515c8aeb3 1.250.2 2026-02-26 00:00:41 +01:00
DebaucheryLibrarian
debf92afd7 Changed MetroHD test actor to Vanna Bardot, April Olsen returns implausible weight 64, which seems to be a data error (too low for lbs, too high for kg). 2026-02-26 00:00:37 +01:00
DebaucheryLibrarian
601f930324 1.250.1 2026-02-25 01:09:53 +01:00
DebaucheryLibrarian
e77ced44c7 Added batch insert util to replace bulk insert. Fixed circular dependencies. 2026-02-25 01:09:49 +01:00
DebaucheryLibrarian
9f37f54634 1.250.0 2026-02-24 06:17:41 +01:00
DebaucheryLibrarian
dc7f325d13 Added scene media detach. 2026-02-24 06:17:38 +01:00
DebaucheryLibrarian
35c941488e 1.249.15 2026-02-24 05:50:06 +01:00
DebaucheryLibrarian
fc32843c5a Expanded title query in Hush scraper. 2026-02-24 05:50:04 +01:00
DebaucheryLibrarian
26b31fb10a 1.249.14 2026-02-24 05:39:07 +01:00
DebaucheryLibrarian
9aa6c9c6c5 Added Rave Bunnys and Hot and Tatted to Hussie Pass, improved scraper. Only looking for one valid avatar URL in profile tests. 2026-02-24 05:39:05 +01:00
DebaucheryLibrarian
855a15bc73 1.249.13 2026-02-24 05:08:08 +01:00
DebaucheryLibrarian
3329661135 Added profile referer parameter to Gamma, needed for Dogfart. 2026-02-24 05:07:23 +01:00
DebaucheryLibrarian
791bd6bf27 1.249.12 2026-02-24 04:46:16 +01:00
DebaucheryLibrarian
d6be985c4b Refactored Hush / Hussie Pass with unprint. 2026-02-24 04:46:12 +01:00
DebaucheryLibrarian
7286846308 1.249.11 2026-02-24 03:37:11 +01:00
DebaucheryLibrarian
81dfce8b3d Updated POV Pornstars parameter URLs to https. 2026-02-24 03:37:09 +01:00
DebaucheryLibrarian
aff0e27c55 1.249.10 2026-02-24 03:32:56 +01:00
DebaucheryLibrarian
68fe786cb7 Updated POV Pornstars URL to https. 2026-02-24 03:32:53 +01:00
DebaucheryLibrarian
9a0b0a8989 1.249.9 2026-02-24 03:15:20 +01:00
DebaucheryLibrarian
60b8271e4f Updated unprint to fix response OK. 2026-02-24 03:15:18 +01:00
DebaucheryLibrarian
a52042b56c 1.249.8 2026-02-24 02:32:42 +01:00
DebaucheryLibrarian
7a3dac865e Updated unprint for browser context close fix. 2026-02-24 02:32:40 +01:00
DebaucheryLibrarian
74e0fb721d 1.249.7 2026-02-24 02:12:19 +01:00
DebaucheryLibrarian
ba366df7a5 Added entity resolution prefer to entity options. 2026-02-24 02:12:16 +01:00
DebaucheryLibrarian
d4e6082d2e 1.249.6 2026-02-24 01:32:43 +01:00
DebaucheryLibrarian
ea325b8ec5 Removed unavailable profile details from Fantasy Massage profile test. 2026-02-24 01:32:41 +01:00
DebaucheryLibrarian
41b1f39752 1.249.5 2026-02-24 01:28:24 +01:00
DebaucheryLibrarian
c75c3e3ed9 Changed profile test to prefer network. Removed stray console from Gamma. 2026-02-24 01:28:22 +01:00
DebaucheryLibrarian
ee495a5cde 1.249.4 2026-02-24 01:18:22 +01:00
DebaucheryLibrarian
b52e871cfe Passing network channels as site scopes in Gamma API profile scraper. 2026-02-24 01:18:20 +01:00
DebaucheryLibrarian
0fc725873e 1.249.3 2026-02-24 00:43:25 +01:00
DebaucheryLibrarian
db14657101 Removed gender from Top Web Models profile test. 2026-02-24 00:43:23 +01:00
DebaucheryLibrarian
5524efb3ba 1.249.2 2026-02-24 00:04:20 +01:00
DebaucheryLibrarian
1397349058 Fixed circumcised field for See Him Fuck profile test. 2026-02-24 00:04:19 +01:00
DebaucheryLibrarian
25cac4d0ab 1.249.1 2026-02-23 23:48:03 +01:00
DebaucheryLibrarian
5a282cc372 Following redirects in Hush / Hussiepass scraper. 2026-02-23 23:48:01 +01:00
DebaucheryLibrarian
3e6592d1f3 1.249.0 2026-02-22 06:24:30 +01:00
DebaucheryLibrarian
b95e2fadf7 Added tag reassociation and dedupe migration. 2026-02-22 06:24:26 +01:00
DebaucheryLibrarian
e3b922da6c 1.248.70 2026-02-22 04:56:28 +01:00
DebaucheryLibrarian
9bf42ff6c0 Using API to fetch Aziani block IDs, fixed block IDs were incorrect interpretation. 2026-02-22 04:56:25 +01:00
DebaucheryLibrarian
ba127ee53d 1.248.69 2026-02-22 03:41:56 +01:00
DebaucheryLibrarian
3ee73d2f77 Fixed tags with parentheses not getting matched. 2026-02-22 03:41:54 +01:00
DebaucheryLibrarian
4e68a69e02 1.248.68 2026-02-22 03:36:23 +01:00
DebaucheryLibrarian
570be66a91 Added octet stream type expectation to Bang profile avatar. 2026-02-22 03:36:19 +01:00
DebaucheryLibrarian
0092aab579 1.248.67 2026-02-22 03:17:06 +01:00
DebaucheryLibrarian
78e9088ee5 Fixed WankzVR profile scraper selecting height in feet/inches when requested from North American IP. 2026-02-22 03:17:04 +01:00
DebaucheryLibrarian
cdb4644b42 1.248.66 2026-02-22 03:05:12 +01:00
DebaucheryLibrarian
f80f73d0d4 Added Lancelot Styles and Adventure Teens to AnalVids. 2026-02-22 03:05:09 +01:00
DebaucheryLibrarian
e70acdfe79 1.248.65 2026-02-22 02:58:28 +01:00
DebaucheryLibrarian
75c5a37567 Fixed Teen Mega World typo breaking profile avatar. 2026-02-22 02:58:26 +01:00
DebaucheryLibrarian
9aa7fd77c4 1.248.64 2026-02-21 00:56:17 +01:00
DebaucheryLibrarian
6b768b6828 Added entity option to bypass deep scraped check on release day update. 2026-02-21 00:56:15 +01:00
DebaucheryLibrarian
0f44b4d410 1.248.63 2026-02-17 01:55:31 +01:00
DebaucheryLibrarian
3368e2b343 Removed poster query that would select unrelated image from Score scraper. 2026-02-17 01:55:28 +01:00
DebaucheryLibrarian
8e77a5ef46 1.248.62 2026-02-17 00:43:03 +01:00
DebaucheryLibrarian
29dc94d77d Unshowcased Full Porn Network and most of Score, updated After School URL. 2026-02-17 00:43:00 +01:00
DebaucheryLibrarian
03b039c937 1.248.61 2026-02-12 01:31:43 +01:00
DebaucheryLibrarian
f4f1afdf3b Added extreme insertion tag, set as default on Sic Flics. 2026-02-12 01:31:41 +01:00
DebaucheryLibrarian
fefb165274 1.248.60 2026-02-09 06:28:21 +01:00
DebaucheryLibrarian
a3633c2f9f Added Snow Valley affiliate link. 2026-02-09 06:28:19 +01:00
DebaucheryLibrarian
a007593390 1.248.59 2026-02-09 05:23:21 +01:00
DebaucheryLibrarian
f31c69f255 Added poster fallback to WankzVR deep scrape, preventing failed trailer request from breaking. 2026-02-09 05:23:18 +01:00
DebaucheryLibrarian
9a088599e6 1.248.58 2026-02-09 05:10:08 +01:00
DebaucheryLibrarian
01341b80d6 Refactored WankzVR for unprint, added referers in hopes of fixing missing assets. 2026-02-09 05:10:06 +01:00
DebaucheryLibrarian
fec70db20b 1.248.57 2026-02-09 03:21:28 +01:00
DebaucheryLibrarian
7bbb7cb43d Broadened Love Her Films profile selectors. 2026-02-09 03:21:26 +01:00
DebaucheryLibrarian
e7a1ad42f5 1.248.56 2026-02-09 02:40:43 +01:00
DebaucheryLibrarian
be90982420 Added unprint logs to profile tests. 2026-02-09 02:40:41 +01:00
DebaucheryLibrarian
ce94456494 1.248.55 2026-02-09 02:33:14 +01:00
DebaucheryLibrarian
fe3fcd0741 Fixed ExploitedX not matching some age fields. 2026-02-09 02:33:11 +01:00
DebaucheryLibrarian
5ca7537e24 1.248.54 2026-02-09 02:16:18 +01:00
DebaucheryLibrarian
35449ef906 Using unprint for profile test URL probing. 2026-02-09 02:16:16 +01:00
DebaucheryLibrarian
bebebf8447 1.248.53 2026-02-09 02:10:43 +01:00
DebaucheryLibrarian
101c84763a Refactored Boobpedia for unprint. 2026-02-09 02:10:40 +01:00
DebaucheryLibrarian
36ca313a89 1.248.52 2026-02-09 01:48:50 +01:00
DebaucheryLibrarian
d07d3c2c8d Fixed birthPlace field in profile tests. 2026-02-09 01:48:48 +01:00
DebaucheryLibrarian
4dfda71a94 1.248.51 2026-02-09 01:43:14 +01:00
DebaucheryLibrarian
75c2a77aea Refactored PornHub scraper for unprint, added www. prefix. 2026-02-09 01:43:12 +01:00
DebaucheryLibrarian
5bea829acb 1.248.50 2026-02-09 01:26:00 +01:00
DebaucheryLibrarian
66acacc71a Fixed Teen Mega World assets loading attempt from native site instead of network site. 2026-02-09 01:25:57 +01:00
DebaucheryLibrarian
c646b1e29b 1.248.49 2026-02-09 01:17:17 +01:00
DebaucheryLibrarian
4bd6e39a8c Added SicFlics. 2026-02-09 01:17:15 +01:00
DebaucheryLibrarian
4154246ff2 1.248.48 2026-02-08 22:35:45 +01:00
DebaucheryLibrarian
e46607a5df Merged Vogov into Teen Mega World, added No Boring, set up affiliate links. 2026-02-08 22:35:43 +01:00
DebaucheryLibrarian
ce6ad5c14a 1.248.47 2026-02-08 21:14:54 +01:00
DebaucheryLibrarian
28ded0b4b9 Fixed Teen Mega World posters. 2026-02-08 21:14:51 +01:00
DebaucheryLibrarian
f2c2c7856b 1.248.46 2026-02-08 06:22:45 +01:00
DebaucheryLibrarian
74884a500e Refactored Vixen for unprint. 2026-02-08 06:22:43 +01:00
DebaucheryLibrarian
8b8f7fddd9 1.248.45 2026-02-08 04:56:16 +01:00
DebaucheryLibrarian
371e97f695 Added materialized view for SFW media in hopes of improving media insert performance. 2026-02-08 04:56:14 +01:00
DebaucheryLibrarian
a77ce63548 1.248.44 2026-02-08 03:51:44 +01:00
DebaucheryLibrarian
85a5f13ec1 Added stream selection by hostname, improved config structure. 2026-02-08 03:51:41 +01:00
DebaucheryLibrarian
5bbfbc90a8 Renamed stream exclude option. 2026-02-08 03:36:16 +01:00
DebaucheryLibrarian
a6014a5d1a 1.248.43 2026-02-08 03:35:14 +01:00
DebaucheryLibrarian
cc45502119 Added stream host exclude config. 2026-02-08 03:35:10 +01:00
DebaucheryLibrarian
241e314c68 1.248.42 2026-02-08 00:58:51 +01:00
DebaucheryLibrarian
4843f0ebc7 Refactored Cum Louder scraper with unprint, changed entry ID to URL slug due unreliable ID. 2026-02-08 00:58:49 +01:00
DebaucheryLibrarian
79ff9eb58b 1.248.41 2026-02-07 18:16:35 +01:00
DebaucheryLibrarian
e3126b1201 Fixed In The Crack poster URL compose, padding IDs. 2026-02-07 18:16:33 +01:00
DebaucheryLibrarian
392d1daa2a 1.248.40 2026-02-07 18:02:06 +01:00
DebaucheryLibrarian
d360854a6d Excluded location from In The Crack scene actor data. 2026-02-07 18:02:04 +01:00
DebaucheryLibrarian
786ef491ac 1.248.39 2026-02-07 17:26:26 +01:00
DebaucheryLibrarian
f62e8d6bf6 Added avatar credit exclusion to profile interpolation. 2026-02-07 17:26:21 +01:00
DebaucheryLibrarian
b62c705b76 1.248.38 2026-02-07 17:00:43 +01:00
DebaucheryLibrarian
4dd236d5da Handling independent channel banner configurations. 2026-02-07 17:00:41 +01:00
DebaucheryLibrarian
d0f12c774d 1.248.37 2026-02-07 06:31:39 +01:00
DebaucheryLibrarian
13745159c6 Added BAM Visions affiliate. 2026-02-07 06:31:36 +01:00
DebaucheryLibrarian
a41134555a Added movie alt descriptions column to last migration. 2026-02-07 05:56:08 +01:00
DebaucheryLibrarian
7a7c6e92f6 1.248.36 2026-02-07 05:53:24 +01:00
DebaucheryLibrarian
9a8527a780 Refactored In The Crack. Added chapter videos (unused) and dates. Added stylized entity name field. 2026-02-07 05:53:16 +01:00
DebaucheryLibrarian
33179c0829 Disabled global banners for Hentaied, only on entity page. 2026-02-06 23:56:34 +01:00
DebaucheryLibrarian
222be390ec 1.248.35 2026-02-06 23:06:11 +01:00
DebaucheryLibrarian
3aa53e431d Updated Hentaied, added new sites. 2026-02-06 23:06:08 +01:00
DebaucheryLibrarian
b79cf4fb78 1.248.34 2026-02-06 17:15:44 +01:00
DebaucheryLibrarian
93df88768c Improved Model Media profile scraper for Delphine, added test. 2026-02-06 17:15:42 +01:00
DebaucheryLibrarian
d4b73b6dd3 1.248.33 2026-02-06 06:44:07 +01:00
DebaucheryLibrarian
acb114012c Refactored FreeOnes scraper. 2026-02-06 06:44:03 +01:00
DebaucheryLibrarian
e8d6345400 Filtering out 'Amateur' model in Model Media API. 2026-02-06 06:02:59 +01:00
DebaucheryLibrarian
7062f04e78 Added migration to repo. 2026-02-06 05:20:58 +01:00
DebaucheryLibrarian
d85e917935 1.248.32 2026-02-06 04:55:42 +01:00
DebaucheryLibrarian
5a210451e0 Added Model Media API layout, renamed AsiaM. 2026-02-06 04:55:40 +01:00
DebaucheryLibrarian
e91ff659e9 Added site filter to Gamma API actor fetch for more accurate profile results. 2026-02-06 02:29:32 +01:00
DebaucheryLibrarian
dc21571a6f 1.248.31 2026-02-06 01:48:09 +01:00
DebaucheryLibrarian
b01913690e Cleaned up Team Skeet config, added missing Say Uncle channels. 2026-02-06 01:48:07 +01:00
DebaucheryLibrarian
a05928e399 1.248.30 2026-02-05 17:23:42 +01:00
DebaucheryLibrarian
dfc9a88ba8 Switched Paper Street Media / Team Skeet from slug to ID entry IDs. 2026-02-05 17:23:40 +01:00
DebaucheryLibrarian
7562584830 1.248.29 2026-02-05 01:09:07 +01:00
DebaucheryLibrarian
26d8864659 Added missing Team Skeet channels. 2026-02-05 01:09:05 +01:00
DebaucheryLibrarian
cb0b0547cb Updated Team Skeet channels and endpoints. 2026-02-04 23:47:47 +01:00
DebaucheryLibrarian
7a70129b29 Fixed proxy test not using proxy. 2026-02-04 21:58:15 +01:00
DebaucheryLibrarian
a373a899e3 1.248.28 2026-02-04 17:59:12 +01:00
DebaucheryLibrarian
ca925d4d7f Added proxy test. 2026-02-04 17:59:09 +01:00
DebaucheryLibrarian
43358550a9 1.248.27 2026-02-04 17:50:27 +01:00
DebaucheryLibrarian
506db492bc Fixed Score scraper breaking if gallery image can't be found, though actual issue was in unprint library. 2026-02-04 17:50:24 +01:00
DebaucheryLibrarian
8d1b2975da 1.248.26 2026-02-04 17:19:43 +01:00
DebaucheryLibrarian
ff4ac301c5 Added new MYLF channels, updated endpoints. 2026-02-04 17:19:39 +01:00
DebaucheryLibrarian
baa35b3c09 1.248.25 2026-02-04 05:38:27 +01:00
DebaucheryLibrarian
4f3b152b17 Added SFW tag photos. 2026-02-04 05:38:21 +01:00
DebaucheryLibrarian
a7e2a2e5c3 1.248.24 2026-02-03 05:51:41 +01:00
DebaucheryLibrarian
b481ded6b3 Added associate tags and associate series arguments. 2026-02-03 05:51:35 +01:00
DebaucheryLibrarian
fd205aed88 1.248.23 2026-02-03 05:46:52 +01:00
DebaucheryLibrarian
39cdea17f3 Chunking scene updates to prevent database errors. 2026-02-03 05:46:50 +01:00
DebaucheryLibrarian
48af5939db 1.248.22 2026-02-03 05:40:27 +01:00
DebaucheryLibrarian
a1be68366c Added argument to disable actor association. 2026-02-03 05:40:25 +01:00
DebaucheryLibrarian
37b92209f0 Added attributes migration. 2026-02-03 05:34:14 +01:00
DebaucheryLibrarian
9754f9e9af 1.248.21 2026-02-03 05:33:51 +01:00
DebaucheryLibrarian
ccd833665f Added attributes field to help with entry ID migrations, trial with Team Skeet. 2026-02-03 05:33:47 +01:00
DebaucheryLibrarian
a77e13c7de 1.248.20 2026-02-03 05:18:35 +01:00
DebaucheryLibrarian
46dbbc75fc Logging browser events. 2026-02-03 05:18:32 +01:00
DebaucheryLibrarian
07c30108d0 1.248.19 2026-02-03 04:46:48 +01:00
DebaucheryLibrarian
6216879677 Added missing AnalVids studio IDs for LVT and GG. 2026-02-03 04:46:46 +01:00
DebaucheryLibrarian
95c1bbc129 1.248.18 2026-02-03 04:01:07 +01:00
DebaucheryLibrarian
70da29e3c5 Separated Family Strokes from Team Skeet, deleted all TS cross-over channels. 2026-02-03 04:01:05 +01:00
DebaucheryLibrarian
5764e1fd17 1.248.17 2026-02-03 03:27:35 +01:00
DebaucheryLibrarian
d554ef6b02 Split Team Skeet and MYLF into new networks Pervz, Swappz and Free Use. 2026-02-03 03:27:33 +01:00
DebaucheryLibrarian
8126cc29d9 1.248.16 2026-02-02 23:54:09 +01:00
DebaucheryLibrarian
2e1b5561dd Added AnalVids, Porn World and Private affiliate links. 2026-02-02 23:54:06 +01:00
DebaucheryLibrarian
c830c86c54 1.248.15 2026-02-02 06:02:53 +01:00
DebaucheryLibrarian
ecf7abd2ae Refactored First Anal Quest. 2026-02-02 06:02:50 +01:00
DebaucheryLibrarian
4b0e1b6711 1.248.14 2026-02-02 04:24:19 +01:00
DebaucheryLibrarian
6a49f40955 Updated Pascal's Subsluts for unprint. 2026-02-02 04:24:16 +01:00
DebaucheryLibrarian
cb686a5bc2 1.248.13 2026-02-02 02:44:54 +01:00
DebaucheryLibrarian
27bf48eb05 Improved handling of failed video stream fetching. Added proper Little Caprice album URL retrieval. 2026-02-02 02:44:51 +01:00
DebaucheryLibrarian
7f2b1e03ff 1.248.12 2026-02-01 22:57:22 +01:00
DebaucheryLibrarian
7386aa9da7 Fixed banner seed. 2026-02-01 22:57:20 +01:00
DebaucheryLibrarian
8438d2e3b3 1.248.11 2026-02-01 19:05:23 +01:00
DebaucheryLibrarian
f42d79d521 Refactored Little Caprice Dreams. Fixed Karups breaking on BoyFun domain. 2026-02-01 19:05:20 +01:00
DebaucheryLibrarian
3189652fc8 Added trailing slash to Karups channel URLs. 2026-02-01 05:03:03 +01:00
DebaucheryLibrarian
3b5e7ee5ec 1.248.10 2026-02-01 04:50:31 +01:00
DebaucheryLibrarian
85fbc9d2f2 Added missing Bang sites, updated channel URLs. 2026-02-01 04:50:29 +01:00
DebaucheryLibrarian
2e9e678c51 1.248.9 2026-02-01 04:20:18 +01:00
DebaucheryLibrarian
bf4beafb96 Updated Mike Adriano for JS-only sites. 2026-02-01 04:20:16 +01:00
DebaucheryLibrarian
3f8714003c 1.248.8 2026-02-01 03:28:19 +01:00
DebaucheryLibrarian
82c436f663 Adapted Karups scraper for BoyFun. 2026-02-01 03:28:17 +01:00
DebaucheryLibrarian
2f7ddd277d 1.248.7 2026-02-01 03:03:23 +01:00
DebaucheryLibrarian
0511b5a4a4 Updated Karups scraper. 2026-02-01 03:03:21 +01:00
DebaucheryLibrarian
b4877d16da 1.248.6 2026-02-01 01:43:53 +01:00
DebaucheryLibrarian
b61bc1ad3b Fixed shoot ID in update query. 2026-02-01 01:43:51 +01:00
DebaucheryLibrarian
53593947dd 1.248.5 2026-02-01 01:39:50 +01:00
DebaucheryLibrarian
6b40a0da5e Added shoot ID to scene update query. 2026-02-01 01:39:48 +01:00
DebaucheryLibrarian
c083c4e6d4 1.248.4 2026-02-01 01:35:05 +01:00
DebaucheryLibrarian
a56e2a608e Removed studio assignment from PornBox, studios are indexed as channels now. 2026-02-01 01:35:03 +01:00
DebaucheryLibrarian
2e20e0344a 1.248.3 2026-02-01 01:31:47 +01:00
DebaucheryLibrarian
762e605bd1 Extracting shoot IDs from title in PornBox scraper. 2026-02-01 01:31:45 +01:00
DebaucheryLibrarian
f76341f0dd 1.248.2 2026-02-01 00:11:41 +01:00
DebaucheryLibrarian
eced595ead Updated Blue Donkey Media (Meiden Van Holland). 2026-02-01 00:11:39 +01:00
DebaucheryLibrarian
ef1722d25a 1.248.1 2026-01-30 06:45:15 +01:00
DebaucheryLibrarian
9e0fc34486 Marked Blake Mason as independent channel, fixes logo. 2026-01-30 06:45:12 +01:00
DebaucheryLibrarian
16ca21d597 1.248.0 2026-01-30 05:25:38 +01:00
DebaucheryLibrarian
91771c9ef4 Removed some obsolete client components. Added ASG Max with affiliates. 2026-01-30 05:25:35 +01:00
DebaucheryLibrarian
5042f8fb40 1.247.12 2026-01-29 21:31:14 +01:00
DebaucheryLibrarian
0951ab21c2 Set up Evil Angel and XEmpire deep affiliate links. 2026-01-29 21:31:10 +01:00
DebaucheryLibrarian
db5d42a02e 1.247.11 2026-01-29 20:13:35 +01:00
DebaucheryLibrarian
888fa50d8a Merged migrations. 2026-01-29 20:13:32 +01:00
DebaucheryLibrarian
30923f7cda 1.247.10 2026-01-28 02:58:45 +01:00
DebaucheryLibrarian
045efb6e2b Filtering compilation scenes in Gamma API update query, still includes compilation movies. 2026-01-28 02:58:42 +01:00
DebaucheryLibrarian
3ae4b2d781 1.247.9 2026-01-28 01:16:04 +01:00
DebaucheryLibrarian
a5fda3e0e9 Updated Kink affiliates, WIP Blue Donkey (Meiden van Holland) refactor. 2026-01-28 01:16:02 +01:00
DebaucheryLibrarian
950048df9a 1.247.8 2026-01-27 04:44:02 +01:00
DebaucheryLibrarian
0d20872489 Added ExploitedX profile tests, fixed bio queries. 2026-01-27 04:43:59 +01:00
DebaucheryLibrarian
fd8a2c346b Added page and limit arguments to StashDB fingerprint import tool. 2026-01-27 03:39:15 +01:00
DebaucheryLibrarian
314c43bcda 1.247.7 2026-01-27 03:38:15 +01:00
DebaucheryLibrarian
6a5bb6a0f8 Improved StashDB import tool entity argument handling. 2026-01-27 03:38:13 +01:00
DebaucheryLibrarian
aa1a5bd95d 1.247.6 2026-01-27 03:34:44 +01:00
DebaucheryLibrarian
5515c969de Using arguments for entity slug and studio ID in StashDB import tool. 2026-01-27 03:34:42 +01:00
DebaucheryLibrarian
272a57de58 1.247.5 2026-01-27 03:29:43 +01:00
DebaucheryLibrarian
348b29910a Fixed Adult Empire's deep actor query. 2026-01-27 03:29:41 +01:00
DebaucheryLibrarian
f8edbef602 Added BTS tag to Behind Kink. 2026-01-26 20:40:51 +01:00
DebaucheryLibrarian
58e894dea1 1.247.4 2026-01-26 20:26:33 +01:00
DebaucheryLibrarian
14d8e06bc0 Removed TS Seduction, merged into Kink Trans. 2026-01-26 20:26:31 +01:00
DebaucheryLibrarian
6f1e2258d0 1.247.3 2026-01-26 20:11:36 +01:00
DebaucheryLibrarian
c8d6a9250f Updated Kink channel list. 2026-01-26 20:11:34 +01:00
DebaucheryLibrarian
9b60c2128e 1.247.2 2026-01-26 17:13:16 +01:00
DebaucheryLibrarian
70ac1057ee Fixed Dungeon Sex search slug, should still filter for brutalsessions. 2026-01-26 17:13:15 +01:00
DebaucheryLibrarian
6449fceef3 1.247.1 2026-01-26 02:14:20 +01:00
DebaucheryLibrarian
36ba4542a6 Added batch ID and better feedback to StashDB import tool. 2026-01-26 02:14:18 +01:00
DebaucheryLibrarian
40bb73e897 1.247.0 2026-01-26 02:03:17 +01:00
DebaucheryLibrarian
c34905247c Added fingerprint table and WIP StashDB import tool. 2026-01-26 02:03:08 +01:00
DebaucheryLibrarian
63f0410c5c 1.246.21 2026-01-24 02:03:17 +01:00
DebaucheryLibrarian
2aa323427b Using full URL slug as entry ID for Cherry Pimps, ID not consistent. 2026-01-24 02:03:14 +01:00
DebaucheryLibrarian
176573733b 1.246.20 2026-01-24 01:30:19 +01:00
DebaucheryLibrarian
e7b9147995 Added channel map to Naughty America. 2026-01-24 01:30:17 +01:00
DebaucheryLibrarian
fe0d450af0 1.246.19 2026-01-24 00:34:40 +01:00
DebaucheryLibrarian
38784a6e59 Fixed JJ scraped for Amateur Allure, removed wrapper. Added tag censor aliases. 2026-01-24 00:34:38 +01:00
DebaucheryLibrarian
defe45c396 1.246.18 2026-01-23 06:19:03 +01:00
DebaucheryLibrarian
05df904f1a Added Lucid Flix and Tough Love X to Radical. 2026-01-23 06:19:01 +01:00
DebaucheryLibrarian
718771ea64 1.246.17 2026-01-23 03:33:22 +01:00
DebaucheryLibrarian
07993556ff Separated scene and entity affiliate replace. 2026-01-23 03:33:20 +01:00
DebaucheryLibrarian
2a03707e16 1.246.16 2026-01-23 03:26:51 +01:00
DebaucheryLibrarian
13e4bf1adc Added Naughty America VR affiliate. 2026-01-23 03:26:48 +01:00
DebaucheryLibrarian
bc857530e3 1.246.15 2026-01-23 02:34:39 +01:00
DebaucheryLibrarian
2a12f5ca1d Automatically linking VR scenes to NaughtyAmericaVR.com. 2026-01-23 02:34:37 +01:00
DebaucheryLibrarian
b72bb39ff7 1.246.14 2026-01-23 01:56:48 +01:00
DebaucheryLibrarian
7cdc4a960f Removed VR indicator from Naughty America scraper. 2026-01-23 01:56:46 +01:00
DebaucheryLibrarian
677c736621 1.246.13 2026-01-23 01:55:40 +01:00
DebaucheryLibrarian
f4300d8dfb Separated some Naughty America channels into Naughty America VR. 2026-01-23 01:55:37 +01:00
DebaucheryLibrarian
83b5a5f8ba 1.246.12 2026-01-22 05:57:40 +01:00
DebaucheryLibrarian
e272ae4dd2 Updated Kink affiliate link. 2026-01-22 05:57:37 +01:00
DebaucheryLibrarian
16bc69f584 1.246.11 2026-01-22 04:19:00 +01:00
DebaucheryLibrarian
806ab35316 Added filename tag support to affiliate seed, removed obsolete Kelly Madison banner tags. 2026-01-22 04:18:58 +01:00
DebaucheryLibrarian
98551c4682 1.246.10 2026-01-22 03:49:16 +01:00
DebaucheryLibrarian
58ada146a9 Changed affiliate parameters from query string to JSON. 2026-01-22 03:49:13 +01:00
DebaucheryLibrarian
856601d1d9 1.246.9 2026-01-22 02:14:48 +01:00
DebaucheryLibrarian
fa1ca2b5f3 Linking Real Girls Now channel to RealGirlsNow.com, but updating from NA. 2026-01-22 02:14:46 +01:00
DebaucheryLibrarian
d65c34800e 1.246.8 2026-01-22 01:49:00 +01:00
DebaucheryLibrarian
e770aed8e3 Marked Real Girls Now as an independent channel. 2026-01-22 01:48:58 +01:00
DebaucheryLibrarian
75d3a79b03 1.246.7 2026-01-22 01:25:26 +01:00
DebaucheryLibrarian
351fd8def0 Fixed Naughty America locator resolving to multiple elements on Tonight's Girlfriend, removed stray console log. 2026-01-22 01:25:24 +01:00
DebaucheryLibrarian
ef1984664d 1.246.6 2026-01-22 01:20:16 +01:00
DebaucheryLibrarian
f0a2943687 Added Tonight's Girlfriend tracking link. 2026-01-22 01:20:14 +01:00
DebaucheryLibrarian
e5d457bd55 1.246.5 2026-01-21 23:00:30 +01:00
DebaucheryLibrarian
b0b8295629 Refactored Love Her Films, using API. Fixed Naughty America scraper for Tonight's Girlfriend. 2026-01-21 23:00:28 +01:00
DebaucheryLibrarian
c0459201b6 1.246.4 2026-01-21 01:32:53 +01:00
DebaucheryLibrarian
6a2772fac4 Integrated Kink VR into main Kink scraper, fixed profile method. 2026-01-21 01:32:51 +01:00
DebaucheryLibrarian
bfb9581f12 1.246.3 2026-01-20 05:59:45 +01:00
DebaucheryLibrarian
c711d73cd0 Added Full Porn Network sites. 2026-01-20 05:59:42 +01:00
DebaucheryLibrarian
3ced6a9f79 1.246.2 2026-01-20 04:28:53 +01:00
DebaucheryLibrarian
2a4dce106e Moved Arch Angel to Full Porn Network and adapted scraper. 2026-01-20 04:28:49 +01:00
DebaucheryLibrarian
b2116f728f 1.246.1 2026-01-20 02:26:33 +01:00
DebaucheryLibrarian
0b6cfbe5bc Added tags to new Vixen banners. 2026-01-20 02:26:31 +01:00
DebaucheryLibrarian
debf539fd3 1.246.0 2026-01-20 01:25:58 +01:00
DebaucheryLibrarian
873ff465e1 Auto-registering banners in affiliate seed. 2026-01-20 01:25:54 +01:00
DebaucheryLibrarian
37d283cac9 1.245.40 2026-01-19 21:48:56 +01:00
DebaucheryLibrarian
eba09e4cf9 Fixed MariskaX scraper breaking when thumbnails are missing. 2026-01-19 21:48:54 +01:00
DebaucheryLibrarian
938707f17f 1.245.39 2026-01-19 19:19:26 +01:00
DebaucheryLibrarian
dde3ea3a34 Refactored MariskaX to use Next data. Fixed Naughty America profile scraper breaking on Tonight's Girlfriend. 2026-01-19 19:19:24 +01:00
DebaucheryLibrarian
157667f771 1.245.38 2026-01-19 06:07:27 +01:00
DebaucheryLibrarian
317f6c36a2 Updated Jules Jordan affiliate. 2026-01-19 06:07:23 +01:00
DebaucheryLibrarian
2ae185c7da Fixed Naughty America affiliate network association. 2026-01-19 04:36:07 +01:00
DebaucheryLibrarian
39fcba7f04 1.245.37 2026-01-19 04:28:39 +01:00
DebaucheryLibrarian
de79f7f51e Added Naughty America banners. 2026-01-19 04:28:37 +01:00
DebaucheryLibrarian
12d0403b64 1.245.36 2026-01-19 03:31:42 +01:00
DebaucheryLibrarian
0ae834ccf0 Refactored Bam Visions to use unprint. 2026-01-19 03:31:40 +01:00
DebaucheryLibrarian
db7e9702dd 1.245.35 2026-01-19 02:18:38 +01:00
DebaucheryLibrarian
d380c64f7c Refactored Hitzefrei to use unprint. 2026-01-19 02:18:36 +01:00
DebaucheryLibrarian
ba2fd254ff 1.245.34 2026-01-19 01:54:47 +01:00
DebaucheryLibrarian
ff360423f6 Separated release and actor scrapers into modules. Fixed Dorcel profile search. 2026-01-19 01:54:44 +01:00
DebaucheryLibrarian
763a913be6 1.245.33 2026-01-18 02:14:41 +01:00
DebaucheryLibrarian
ec85faf93a Improved Woodman profile scraper. 2026-01-18 02:14:39 +01:00
DebaucheryLibrarian
841d3a8475 1.245.32 2026-01-18 01:54:05 +01:00
DebaucheryLibrarian
cfb842bd89 Fixed Woodman scene allocation. 2026-01-18 01:54:03 +01:00
DebaucheryLibrarian
56767cf965 1.245.31 2026-01-18 01:51:15 +01:00
DebaucheryLibrarian
bfb48abfdd Updated Woodman scraper to use unprint. 2026-01-18 01:51:13 +01:00
DebaucheryLibrarian
9ec2ad25a7 1.245.30 2026-01-16 05:04:58 +01:00
DebaucheryLibrarian
5c090c604a Improved Score date handling. 2026-01-16 05:04:56 +01:00
DebaucheryLibrarian
1feb44f95d 1.245.29 2026-01-16 01:36:52 +01:00
DebaucheryLibrarian
131751795f Updated Team Skeet endpoints, replaced qu with unprint. 2026-01-16 01:36:50 +01:00
DebaucheryLibrarian
f3ecfb66e3 1.245.28 2026-01-15 23:18:30 +01:00
DebaucheryLibrarian
b7d58cbe13 Fixed Score scraper breaking on scene with homepage URL. Updated Say Uncle Team Skeet endpoint. 2026-01-15 23:18:28 +01:00
DebaucheryLibrarian
e2124acad2 1.245.27 2026-01-15 04:53:34 +01:00
DebaucheryLibrarian
37275f8930 Refactored Score. 2026-01-15 04:53:31 +01:00
DebaucheryLibrarian
003aff49f9 1.245.26 2026-01-13 22:08:43 +01:00
DebaucheryLibrarian
f4c42a3cf5 Appending entity alias to entity names in manticore. 2026-01-13 22:08:41 +01:00
DebaucheryLibrarian
7563873282 1.245.25 2026-01-13 20:52:33 +01:00
DebaucheryLibrarian
c64c4dd694 Refactored PornCZ scraper. Renamed Brutal Sessions to Dungeon Sex. 2026-01-13 20:52:31 +01:00
DebaucheryLibrarian
725087bf1c 1.245.24 2026-01-12 01:51:11 +01:00
DebaucheryLibrarian
1ce8c47da2 Using spartan ID for Killergram. 2026-01-12 01:51:09 +01:00
DebaucheryLibrarian
a6f16b9f62 1.245.23 2026-01-12 01:38:18 +01:00
DebaucheryLibrarian
82f8b135bd Only using ID part of URL as entry ID for Cherry Pimps to ensure backward compatability. 2026-01-12 01:38:17 +01:00
DebaucheryLibrarian
5ac0d79b99 1.245.22 2026-01-12 01:31:33 +01:00
DebaucheryLibrarian
db62652dc8 Moved Killergram to Aylo. Added profile tests. 2026-01-12 01:31:30 +01:00
DebaucheryLibrarian
1a2bf77692 1.245.21 2026-01-11 23:46:40 +01:00
DebaucheryLibrarian
d855100770 Using Cherry Pimps scene page poster as photo if base release has poster. 2026-01-11 23:46:38 +01:00
DebaucheryLibrarian
5161519bb3 1.245.20 2026-01-11 23:19:33 +01:00
DebaucheryLibrarian
b7beea60ce Refactored Cherry Pimps to use unprint, added series as channels. 2026-01-11 23:19:31 +01:00
DebaucheryLibrarian
d0bb56e436 1.245.19 2026-01-11 16:58:35 +01:00
DebaucheryLibrarian
91981a6dd7 Removed stray slice from Gamma scraper. 2026-01-11 16:58:33 +01:00
DebaucheryLibrarian
24adf04fe3 1.245.18 2026-01-11 03:08:55 +01:00
DebaucheryLibrarian
6a3e1d7390 Added My Pervy Family. 2026-01-11 03:08:53 +01:00
DebaucheryLibrarian
9c4078a917 1.245.17 2026-01-11 02:56:48 +01:00
DebaucheryLibrarian
81c7925b86 Skipping Radical deep scrape if base release is available. 2026-01-11 02:56:46 +01:00
DebaucheryLibrarian
2c7fb51d65 1.245.16 2026-01-11 02:52:29 +01:00
DebaucheryLibrarian
7b1433edd3 Using origin for release URL in Radical scraper. 2026-01-11 02:52:27 +01:00
DebaucheryLibrarian
e70ea13161 1.245.15 2026-01-11 02:35:20 +01:00
DebaucheryLibrarian
3392b10182 Moved PurgatoryX to Radical API scraper. 2026-01-11 02:35:18 +01:00
DebaucheryLibrarian
9c1124b97f 1.245.14 2026-01-11 01:38:20 +01:00
DebaucheryLibrarian
0d9a65a077 Fixed edge-case in Radical scraper breaking Got Filled. 2026-01-11 01:38:18 +01:00
DebaucheryLibrarian
c85915bf97 1.245.13 2026-01-11 00:50:18 +01:00
DebaucheryLibrarian
6338e8fb8d Refactored Arch Angel, split off The Flourish. Added try URL util to simplify trying multiple actor URLs. 2026-01-11 00:50:16 +01:00
DebaucheryLibrarian
6cb990dbdb 1.245.12 2026-01-10 23:07:05 +01:00
DebaucheryLibrarian
c9ba7bb90b Using unprint for Perv City . Updated unprint for date formats. 2026-01-10 23:07:03 +01:00
DebaucheryLibrarian
f04451f746 1.245.11 2026-01-10 06:24:08 +01:00
DebaucheryLibrarian
6705607f67 Added Aylo and MindGeek profile tests, updated site configuration. 2026-01-10 06:24:05 +01:00
DebaucheryLibrarian
3767fc8bfe 1.245.10 2026-01-10 04:33:17 +01:00
DebaucheryLibrarian
19dbd624ca Fixed slugify behavior. 2026-01-10 04:33:15 +01:00
DebaucheryLibrarian
e84beacca1 1.245.9 2026-01-10 03:00:54 +01:00
DebaucheryLibrarian
8c84839bdd Slugify deals with repeating dashes. 2026-01-10 03:00:52 +01:00
DebaucheryLibrarian
7ad2051dd7 1.245.8 2026-01-10 02:58:52 +01:00
DebaucheryLibrarian
bddc33a734 Added profile scraper tests (WIP), fixed some profile scrapers. Fixed slugify not breaking existing slugs. 2026-01-10 02:58:50 +01:00
DebaucheryLibrarian
5acc2c607b 1.245.7 2026-01-09 04:54:28 +01:00
DebaucheryLibrarian
86669a89c6 Fixed 8K Members not mapped in scraper index. 2026-01-09 04:54:23 +01:00
DebaucheryLibrarian
5c12122e04 1.245.6 2026-01-09 03:09:56 +01:00
DebaucheryLibrarian
d600ee32f2 Fixed Bellesa deep request headers. 2026-01-09 03:09:54 +01:00
DebaucheryLibrarian
c6826b3300 1.245.5 2026-01-09 02:34:25 +01:00
DebaucheryLibrarian
97361a3977 Fixed Bellesa direct scrape passthrough. 2026-01-09 02:34:22 +01:00
DebaucheryLibrarian
bdb03bd622 1.245.4 2026-01-09 02:10:06 +01:00
DebaucheryLibrarian
aeceab3d4d Using local slugify. 2026-01-09 02:10:04 +01:00
DebaucheryLibrarian
41e9e0d85e 1.245.3 2026-01-09 01:54:25 +01:00
DebaucheryLibrarian
3fb97ff3cf Using common slugify. 2026-01-09 01:54:22 +01:00
DebaucheryLibrarian
947b56148d 1.245.2 2026-01-08 02:13:01 +01:00
DebaucheryLibrarian
a9ddce7150 Updated unprint for improved redirect logic. 2026-01-08 02:12:59 +01:00
DebaucheryLibrarian
5e081a8e2d 1.245.1 2026-01-08 01:04:36 +01:00
DebaucheryLibrarian
b67824969f Updated unprint for interface and user agent control. Using request interface in Nubiles, fixed relative album path. 2026-01-08 01:04:34 +01:00
DebaucheryLibrarian
5ce3d79e49 1.245.0 2026-01-07 06:17:55 +01:00
DebaucheryLibrarian
a80e188d15 Added Bellesa. 2026-01-07 06:17:51 +01:00
DebaucheryLibrarian
d06044ab28 1.244.106 2026-01-07 01:11:39 +01:00
DebaucheryLibrarian
42330a7d70 Updated unprint for improved browser clean-up. 2026-01-07 01:11:38 +01:00
DebaucheryLibrarian
69d2550a85 Added trailing slash to KinkVR latest URL. 2026-01-06 02:54:07 +01:00
DebaucheryLibrarian
7e87273d8d 1.244.105 2026-01-06 02:30:38 +01:00
DebaucheryLibrarian
c311964a8a Added Kink VR to Kink scraper, no longer using Badoink? 2026-01-06 02:30:35 +01:00
DebaucheryLibrarian
899691ebd7 1.244.104 2026-01-04 05:51:59 +01:00
DebaucheryLibrarian
c66d7aa26f Fixed Naughty America site slug conflict. 2026-01-04 05:51:56 +01:00
DebaucheryLibrarian
9cf1514eb8 Updated unprint for browser retirement. 2026-01-04 05:38:55 +01:00
DebaucheryLibrarian
0a5a84c0d4 1.244.103 2026-01-04 01:10:10 +01:00
DebaucheryLibrarian
b0e8ae8b5b Reusing unprint browser by default. 2026-01-04 01:10:07 +01:00
DebaucheryLibrarian
2872f90c2a 1.244.102 2026-01-04 01:01:09 +01:00
DebaucheryLibrarian
562d476693 Added untracked Naughty America sites. 2026-01-04 01:01:06 +01:00
DebaucheryLibrarian
b392f24456 1.244.101 2026-01-02 01:13:22 +01:00
DebaucheryLibrarian
a08d091989 Disable unprint browser re-use by default to observe memory effect. Fixed media throttling argument in http module. 2026-01-02 01:13:20 +01:00
DebaucheryLibrarian
373c0a9e25 1.244.100 2025-12-30 23:36:10 +01:00
DebaucheryLibrarian
3902f32b23 Added browser throttle config, removed request limits from default config. 2025-12-30 23:36:08 +01:00
DebaucheryLibrarian
72ab24bf1e 1.244.99 2025-12-30 17:27:08 +01:00
DebaucheryLibrarian
c121ef0fd6 Updated Naughty America's My Wife Is A Pornstar to Pornstar Wife. 2025-12-30 17:27:02 +01:00
DebaucheryLibrarian
ce951f9a64 1.244.98 2025-12-30 05:34:01 +01:00
DebaucheryLibrarian
b6551ab79e Removed www. from hookuphotshot.com entry. 2025-12-30 05:33:59 +01:00
DebaucheryLibrarian
b383482103 1.244.97 2025-12-30 05:14:37 +01:00
DebaucheryLibrarian
37b5e8c573 Fixed Hookup Hotshot scraper breaking if scene page has no trailer video. 2025-12-30 05:14:34 +01:00
DebaucheryLibrarian
77ade22b08 Added mofos.com to Aylo throttle list. 2025-12-30 03:54:45 +01:00
DebaucheryLibrarian
8130cc314e 1.244.96 2025-12-30 03:52:39 +01:00
DebaucheryLibrarian
6f6b3d102e Added Let's Post It and He's Got Rizz to MOFOS. 2025-12-30 03:52:36 +01:00
DebaucheryLibrarian
d3bd6238b4 1.244.95 2025-12-30 02:35:15 +01:00
DebaucheryLibrarian
ca4e0e0f32 Fixed Naughty America scene title selector. 2025-12-30 02:34:34 +01:00
DebaucheryLibrarian
c9442fff45 1.244.94 2025-12-30 02:28:05 +01:00
DebaucheryLibrarian
d4bcf96c64 Refactored Naughty America, using unprint browser. 2025-12-30 02:28:03 +01:00
DebaucheryLibrarian
6ebfe79016 1.244.93 2025-12-29 02:47:21 +01:00
DebaucheryLibrarian
28e37ccccc Added support for Whale Member dl8-video component poster and trailer. 2025-12-29 02:47:09 +01:00
DebaucheryLibrarian
3d754238ac 1.244.92 2025-12-28 06:40:20 +01:00
DebaucheryLibrarian
a6b2608a83 Fixed Kink scraper returning commas in tags. 2025-12-28 06:40:17 +01:00
DebaucheryLibrarian
dda72701f6 1.244.91 2025-12-28 06:24:10 +01:00
DebaucheryLibrarian
6096d1a811 Fixed Kink scraper returning duration as float. 2025-12-28 06:24:07 +01:00
DebaucheryLibrarian
d2b4ceb166 1.244.90 2025-12-28 06:15:23 +01:00
DebaucheryLibrarian
bcf5ca6024 Fixed URL prefixing in Kink scraper. 2025-12-28 06:15:21 +01:00
DebaucheryLibrarian
9ae81afecc Updated dependency. 2025-12-28 06:00:22 +01:00
DebaucheryLibrarian
b5e016839e Removed deprecated socials config. 2025-12-28 05:50:02 +01:00
DebaucheryLibrarian
8aaa3bfb0b 1.244.89 2025-12-28 05:48:27 +01:00
DebaucheryLibrarian
5c585d5d45 Refactored Kink scraper to use unprint browser. Improved socials handling in actors module. 2025-12-28 05:48:24 +01:00
DebaucheryLibrarian
f5d6574cc6 1.244.88 2025-12-27 02:07:47 +01:00
DebaucheryLibrarian
9da2677903 Added new Porn+ sites. 2025-12-27 02:07:43 +01:00
DebaucheryLibrarian
8d8c17028b 1.244.87 2025-12-27 01:15:41 +01:00
DebaucheryLibrarian
8b9570bb84 Using latest hostname in scene URL if specified for Whale Member. 2025-12-27 01:15:39 +01:00
DebaucheryLibrarian
13c33856a2 1.244.86 2025-12-26 01:37:56 +01:00
DebaucheryLibrarian
678412f313 Renamed 5KVids to 8Kmembers. 2025-12-26 01:37:53 +01:00
DebaucheryLibrarian
7836b40593 1.244.85 2025-12-24 05:50:19 +01:00
DebaucheryLibrarian
dc207ea255 Added browser label to unprint logs. 2025-12-24 05:50:14 +01:00
DebaucheryLibrarian
79f78a0e63 1.244.84 2025-12-24 05:48:54 +01:00
DebaucheryLibrarian
ff457940a3 Updated unprint to support browser proxies. 2025-12-24 05:48:50 +01:00
DebaucheryLibrarian
4731f7e6f6 1.244.83 2025-12-24 05:12:44 +01:00
DebaucheryLibrarian
4d91060fb8 Refactored Whale Member (Porn Pros) scraper. 2025-12-24 05:12:42 +01:00
DebaucheryLibrarian
221203d889 1.244.82 2025-12-15 01:36:11 +01:00
DebaucheryLibrarian
b4cb66111f Fixed tag association failing if tag is missing. 2025-12-15 01:36:08 +01:00
DebaucheryLibrarian
2e64965fe5 1.244.81 2025-12-14 22:30:12 +01:00
DebaucheryLibrarian
89c0cd8b2a Improved case resolution in tag matching. Fixed Kelly Madison scraper returning BTS tag when indicating 'BTS available'. 2025-12-14 22:30:10 +01:00
DebaucheryLibrarian
2052af7977 Using sequence number as entry ID for 5K/8K videos as this is what they use in URLs. 2025-12-14 00:54:25 +01:00
DebaucheryLibrarian
bc1238ad72 Tweaked default Kelly Madison/5K API limits. 2025-12-14 00:46:17 +01:00
DebaucheryLibrarian
37495fc086 1.244.80 2025-12-14 00:44:01 +01:00
DebaucheryLibrarian
81b2d25f13 Refactored Kelly Madison scraper, using API. 2025-12-14 00:43:56 +01:00
DebaucheryLibrarian
c1d548c3df 1.244.79 2025-12-13 03:04:07 +01:00
DebaucheryLibrarian
3a933af347 Removed Emily Willis tag photos, inappropriate after incident. 2025-12-13 03:04:04 +01:00
DebaucheryLibrarian
18dcbfdb40 1.244.78 2025-11-21 06:12:02 +01:00
DebaucheryLibrarian
b3ebb32688 Set up 8KCash affiliates. 2025-11-21 06:11:58 +01:00
DebaucheryLibrarian
bd7f8b69b0 1.244.77 2025-11-21 04:47:45 +01:00
DebaucheryLibrarian
5f22e9cbdb Split 5K from Kelly Madison, added 5KVids network with 5K and 8K sites. 2025-11-21 04:47:42 +01:00
DebaucheryLibrarian
ec58893b81 1.244.76 2025-10-07 23:43:27 +02:00
DebaucheryLibrarian
354d88cd14 Added SX Originals / Sex.com channel to Adult Time. 2025-10-07 23:43:25 +02:00
DebaucheryLibrarian
376ad76590 1.244.75 2025-10-06 05:19:59 +02:00
DebaucheryLibrarian
a12c9182c0 Set up affiliate banners for Kelly Madison/Teen Fidelity. Fixed affiliate network list not included in association. 2025-10-06 05:19:56 +02:00
DebaucheryLibrarian
1eb5e767f1 Removed www. from all nubiles sites. 2025-10-06 04:27:50 +02:00
DebaucheryLibrarian
c530b15fbb 1.244.74 2025-10-06 04:24:47 +02:00
DebaucheryLibrarian
f2cfa1c985 Removed www. from nubiles.net. 2025-10-06 04:24:42 +02:00
DebaucheryLibrarian
b1f663d4b7 1.244.73 2025-10-06 03:26:20 +02:00
DebaucheryLibrarian
19c892ab13 Fixed comment field not updated. Refactored Nubiles scraper. 2025-10-06 03:26:17 +02:00
DebaucheryLibrarian
e13c8ccfe0 1.244.72 2025-09-15 05:38:33 +02:00
DebaucheryLibrarian
bf545ec70c Cleared default proxy list, updating locally. 2025-09-15 05:38:30 +02:00
DebaucheryLibrarian
043ca1efd4 1.244.71 2025-09-15 03:31:19 +02:00
DebaucheryLibrarian
559007d424 Added Private to default proxy list. 2025-09-15 03:31:16 +02:00
DebaucheryLibrarian
b903222a27 1.244.70 2025-08-27 05:46:57 +02:00
DebaucheryLibrarian
bfa43d45b9 Added BAM Visions to proxy list. 2025-08-27 05:46:55 +02:00
DebaucheryLibrarian
62f40e34e2 1.244.69 2025-08-27 04:26:57 +02:00
DebaucheryLibrarian
4979e161ff Fixed Ricky's Room breaking when photos aren't available. 2025-08-27 04:26:55 +02:00
DebaucheryLibrarian
2885a82f8e 1.244.68 2025-08-21 03:34:57 +02:00
DebaucheryLibrarian
c23b3a1e19 Fixed Team Skeet search API returning generic results. 2025-08-21 03:34:55 +02:00
DebaucheryLibrarian
a01b570f0e 1.244.67 2025-08-21 03:16:14 +02:00
DebaucheryLibrarian
32d0eb13e7 Added Family Strokes' API to Team Skeet scraper. 2025-08-21 03:16:12 +02:00
DebaucheryLibrarian
4335c4693d 1.244.66 2025-08-21 02:23:16 +02:00
DebaucheryLibrarian
31abbb9ffe Fixed tags and photos in Bang scraper, added to default proxy list. 2025-08-21 02:23:13 +02:00
DebaucheryLibrarian
9a548a4767 1.244.65 2025-08-17 05:02:12 +02:00
DebaucheryLibrarian
7351770d0f Added New Sensations as a channel. 2025-08-17 05:02:09 +02:00
DebaucheryLibrarian
2a308c11c1 Updated Perv City URLs to HTTPS. 2025-06-21 00:48:28 +02:00
DebaucheryLibrarian
31d5fa14b0 1.244.64 2025-06-21 00:04:08 +02:00
DebaucheryLibrarian
c26a0bb739 Added Perv City to proxy list. 2025-06-21 00:04:06 +02:00
DebaucheryLibrarian
c4afc3fd1c 1.244.63 2025-05-30 04:45:31 +02:00
DebaucheryLibrarian
bdfa84081b Added Brazzers to the proxy list. 2025-05-30 04:45:28 +02:00
DebaucheryLibrarian
2b63f30bd4 1.244.62 2025-05-29 02:38:16 +02:00
DebaucheryLibrarian
91c490d153 Fixed orphaned media flush running on every startup. 2025-05-29 02:38:13 +02:00
DebaucheryLibrarian
3a0e815387 1.244.61 2025-05-29 02:10:19 +02:00
DebaucheryLibrarian
623100608e Added New Sensations domains without www. to proxy list. 2025-05-29 02:10:17 +02:00
DebaucheryLibrarian
816ae8f589 1.244.60 2025-05-29 00:30:25 +02:00
DebaucheryLibrarian
04dadd9d83 Added New Sensations to proxy list due SFW restrictions. 2025-05-29 00:30:20 +02:00
DebaucheryLibrarian
91fb7800cc Using proxy for all Kink modules, disabled head. 2025-05-25 23:45:18 +02:00
DebaucheryLibrarian
f04968a40f 1.244.59 2025-05-25 22:27:45 +02:00
DebaucheryLibrarian
3c595bf780 Added proxy support for puppeteer session, used in Kink scraper. 2025-05-25 22:27:43 +02:00
DebaucheryLibrarian
091149a75b 1.244.58 2025-05-24 17:58:44 +02:00
DebaucheryLibrarian
b8f0661efb Added Jules Jordan network sites to proxy list. 2025-05-24 17:58:42 +02:00
DebaucheryLibrarian
42ebd1f429 1.244.57 2025-05-24 01:32:17 +02:00
DebaucheryLibrarian
1a79f7b983 Updated faker number call. 2025-05-24 01:32:10 +02:00
DebaucheryLibrarian
69810ea7cb 1.244.56 2025-05-24 01:29:04 +02:00
DebaucheryLibrarian
9deff31fe1 Added orphan media flush config. Added Jules Jordan to proxy list due SFW redirect. 2025-05-24 01:29:01 +02:00
DebaucheryLibrarian
1f845bccec 1.244.55 2025-04-08 23:21:08 +02:00
DebaucheryLibrarian
535864bdd1 Added cap image type expectation to Aziani. 2025-04-08 23:21:06 +02:00
DebaucheryLibrarian
035c59255c 1.244.54 2025-04-08 03:44:44 +02:00
DebaucheryLibrarian
92d0dd685a Updated Aziani API area IDs, updated API actor property, added screencaps. 2025-04-08 03:44:41 +02:00
DebaucheryLibrarian
210f054ee2 1.244.53 2025-04-04 05:37:20 +02:00
DebaucheryLibrarian
0dc7c5572a Added migration to repo. 2025-04-04 05:37:18 +02:00
DebaucheryLibrarian
2bcb4413ea 1.244.52 2025-03-29 02:08:37 +01:00
DebaucheryLibrarian
f198929983 Tracking media fetch and storage durations. Enabled log symlink. 2025-03-29 02:08:34 +01:00
DebaucheryLibrarian
89da72d3d8 1.244.51 2025-03-21 01:59:36 +01:00
DebaucheryLibrarian
0bc156f863 Added Caught My Coach to Nubiles, fixed photos not prefixed with protocol. 2025-03-21 01:59:33 +01:00
DebaucheryLibrarian
7a0b364dcc Added Wifey to proxy config. 2025-03-20 02:56:27 +01:00
DebaucheryLibrarian
e33b7b8d15 1.244.50 2025-03-20 01:17:28 +01:00
DebaucheryLibrarian
71d32edeef Added WIFEY to Vixen. 2025-03-20 01:17:25 +01:00
DebaucheryLibrarian
959b1d9ea4 1.244.49 2025-03-12 01:46:00 +01:00
DebaucheryLibrarian
e20999d438 Updated Puppeteer, minor refactor Kink scraper. 2025-03-12 01:45:58 +01:00
DebaucheryLibrarian
4496f44fb3 1.244.48 2025-03-09 05:59:18 +01:00
DebaucheryLibrarian
3855d41e54 Added quick alert migration to repo. 2025-03-09 05:58:32 +01:00
DebaucheryLibrarian
0d51e61e46 1.244.47 2025-03-07 06:03:48 +01:00
DebaucheryLibrarian
f770960191 Fixed unnecessary property errors, updated unprint to address HTTP JSON response header issue. 2025-03-07 06:03:45 +01:00
DebaucheryLibrarian
022063ebd3 1.244.46 2025-03-05 04:32:54 +01:00
DebaucheryLibrarian
ded7fe0595 Fixed movie IDs in manticore search query. Fixed animated media identification. 2025-03-05 04:32:51 +01:00
DebaucheryLibrarian
f8c38fa1fe 1.244.45 2025-03-05 02:48:45 +01:00
DebaucheryLibrarian
42b5c0c150 Fixed and refactored Dorcel scraper. 2025-03-05 02:48:43 +01:00
DebaucheryLibrarian
bce340e3c2 Fixed S3 delete chain init. 2025-03-04 04:10:41 +01:00
DebaucheryLibrarian
d62c499022 Fixed S3 delete response changes. removed flush window debug code. 2025-03-04 04:09:35 +01:00
DebaucheryLibrarian
b5eddf61f9 Changed S3 delete error handling. 2025-03-04 04:07:07 +01:00
DebaucheryLibrarian
dc04577a6c 1.244.44 2025-03-04 04:05:45 +01:00
DebaucheryLibrarian
51a364b41d Updated deprecated S3 media delete command. 2025-03-04 04:05:43 +01:00
DebaucheryLibrarian
6fcd31f035 Logging source during media delete. 2025-03-04 03:47:15 +01:00
DebaucheryLibrarian
ec83d43c76 1.244.43 2025-03-04 03:16:13 +01:00
DebaucheryLibrarian
d82fc704c1 Indexed media table foreign keys for improved delete performance. Staged media flushing. 2025-03-04 03:16:07 +01:00
DebaucheryLibrarian
39477e4561 Improved media flush feedback. 2025-02-27 01:23:17 +01:00
DebaucheryLibrarian
af493bad49 1.244.42 2025-02-27 01:21:34 +01:00
DebaucheryLibrarian
1a34dbd76d Staged media flushing for improved feedback and performance. 2025-02-27 01:21:32 +01:00
DebaucheryLibrarian
f3e82375ad 1.244.41 2025-02-26 23:46:34 +01:00
DebaucheryLibrarian
68e2ecfb1d Added actors avatars table to media flush. 2025-02-26 23:46:31 +01:00
DebaucheryLibrarian
54c2b51d22 Added movie teasers table to media flush. 2025-02-26 06:35:35 +01:00
DebaucheryLibrarian
7619c432ab 1.244.40 2025-02-26 06:33:54 +01:00
DebaucheryLibrarian
6f8815b47b Batching and logging S3 media deletion. 2025-02-26 06:33:51 +01:00
DebaucheryLibrarian
6d1faf4118 1.244.39 2025-02-26 06:21:33 +01:00
DebaucheryLibrarian
f82c6916ae Removed AnalVids secondary channels from database. 2025-02-26 06:21:29 +01:00
DebaucheryLibrarian
1773e106fb 1.244.38 2025-02-26 05:41:32 +01:00
DebaucheryLibrarian
3e3a3a09e8 Marked unwanted AnalVids channels for deletion. 2025-02-26 05:41:29 +01:00
DebaucheryLibrarian
11d08d001f 1.244.37 2025-02-26 04:09:24 +01:00
DebaucheryLibrarian
f5ffc002f0 Added Porn+. 2025-02-26 04:09:22 +01:00
DebaucheryLibrarian
a8f0c25b50 Removed stray console log from Private and BAM Visions scrapers. 2025-02-25 03:24:26 +01:00
DebaucheryLibrarian
7291926d40 1.244.36 2025-02-25 03:23:17 +01:00
DebaucheryLibrarian
01706d2648 Refactored Private scraper. 2025-02-25 03:23:15 +01:00
DebaucheryLibrarian
8167809bd5 1.244.35 2025-02-24 02:53:48 +01:00
DebaucheryLibrarian
06f9efa492 Added Virtual Taboo (including OnlyTarts). 2025-02-24 02:53:46 +01:00
DebaucheryLibrarian
a114211e87 1.244.34 2025-02-10 00:13:35 +01:00
DebaucheryLibrarian
26185ba1cb Chunking manticore seen sync tool to prevent timeouts. 2025-02-10 00:13:34 +01:00
DebaucheryLibrarian
0063c55e34 1.244.33 2025-02-09 23:59:06 +01:00
DebaucheryLibrarian
722aca54e7 Added two-digit dates to manticore meta to improve search results. 2025-02-09 23:59:03 +01:00
DebaucheryLibrarian
9e44418690 1.244.32 2025-01-30 01:29:48 +01:00
DebaucheryLibrarian
6636330e11 Fixed Jules Jordan upcoming selector. 2025-01-30 01:29:45 +01:00
DebaucheryLibrarian
3e4c82bd23 1.244.31 2024-12-30 02:44:37 +01:00
DebaucheryLibrarian
df941b0021 Fixed qu all breaking if no selectors are passed. Fixed old Kelly Madison scene URLs. 2024-12-30 02:44:35 +01:00
DebaucheryLibrarian
96a5e5b693 1.244.30 2024-12-30 01:57:29 +01:00
DebaucheryLibrarian
23f76fd1be Added sparse date mode. Fixed profile fetch error catching. Updated Kelly Madison scraper, using site IDs and fixed profile scraper. 2024-12-30 01:57:26 +01:00
DebaucheryLibrarian
ffea90b5e8 1.244.29 2024-12-29 02:29:31 +01:00
DebaucheryLibrarian
61f1ad6a34 Added Aylo LetsDoeIt site IDs. 2024-12-29 02:29:28 +01:00
DebaucheryLibrarian
e096a6c4a4 1.244.28 2024-12-28 17:50:31 +01:00
DebaucheryLibrarian
0e69898c32 Prioritizing known video qualities as fallbacks, fixed Gamma quality format. 2024-12-28 17:50:28 +01:00
DebaucheryLibrarian
8194c1c8ea 1.244.27 2024-12-19 22:26:23 +01:00
DebaucheryLibrarian
7cdcf0d7ba Separated Say Uncle from Paper Street to Charged Media. 2024-12-19 22:26:20 +01:00
DebaucheryLibrarian
65bf8541a0 1.244.26 2024-11-24 06:48:54 +01:00
DebaucheryLibrarian
a12b88d6cf Passing limit arguments to unprint as defaults (will not override hostname limits). 2024-11-24 06:48:51 +01:00
DebaucheryLibrarian
ceed11cf7e 1.244.25 2024-11-24 06:10:24 +01:00
DebaucheryLibrarian
fbfd52e831 Refactored Aziani scraper. Improved actor profile update logic. 2024-11-24 06:10:21 +01:00
DebaucheryLibrarian
909dc36569 1.244.24 2024-11-19 04:46:45 +01:00
DebaucheryLibrarian
639ad6c79e Fixed Bang Bros URL path. 2024-11-19 04:46:43 +01:00
DebaucheryLibrarian
32c89bcdb6 1.244.23 2024-11-19 04:05:19 +01:00
DebaucheryLibrarian
844c1d87a6 Fixed Aylo scraper using spartan ID in URLs; should only be used for unique identifier. 2024-11-19 04:05:17 +01:00
DebaucheryLibrarian
65dedc80ed Removed Tu Venganza and Operación Limpieza from Mamacitaz on PornDoe. 2024-11-19 03:28:53 +01:00
DebaucheryLibrarian
37106e9230 1.244.22 2024-11-19 03:19:04 +01:00
DebaucheryLibrarian
2ac45c7b6d Prefer spartan ID for LetsDoeIt to smooth transition from PornDoe to Aylo. 2024-11-19 03:18:59 +01:00
DebaucheryLibrarian
94d48b253a 1.244.21 2024-11-19 02:31:31 +01:00
DebaucheryLibrarian
2da46c8c07 Prefixed Spizoo sites with www. 2024-11-19 02:31:28 +01:00
DebaucheryLibrarian
ca078bbabc Removed protocol from Spizoo proxy list. 2024-11-19 01:44:06 +01:00
DebaucheryLibrarian
2cf5a9efe9 1.244.20 2024-11-19 01:35:30 +01:00
DebaucheryLibrarian
0cf43f6eab Upgraded Spizoo scraper to unprint, added to default proxy list. 2024-11-19 01:35:28 +01:00
DebaucheryLibrarian
175c76aa89 1.244.19 2024-11-19 00:55:04 +01:00
DebaucheryLibrarian
520f12975e Replaced La Cochonne and La Novice with generic Amateur Euro channel. 2024-11-19 00:54:59 +01:00
DebaucheryLibrarian
e7c9b78827 Fixed qu methods used with unprint in PornDoe scraper. 2024-11-19 00:09:02 +01:00
DebaucheryLibrarian
255775a019 1.244.18 2024-11-18 23:58:57 +01:00
DebaucheryLibrarian
b679ae95f2 Moved LetsDoeIt to Aylo, updated PornDoe scraper. 2024-11-18 23:58:55 +01:00
DebaucheryLibrarian
6d69f098f5 1.244.17 2024-11-07 21:02:22 +01:00
DebaucheryLibrarian
b7535a3151 Fixed Team Skeet API URL, added Brat Tamer. 2024-11-07 21:02:20 +01:00
DebaucheryLibrarian
15896d4c5b Added dupe index to manticore movies table. 2024-11-05 04:07:09 +01:00
DebaucheryLibrarian
c110295413 1.244.16 2024-11-05 04:00:28 +01:00
DebaucheryLibrarian
c5545aae11 Added dupe index to manticore scenes and movies tables. 2024-11-05 04:00:25 +01:00
DebaucheryLibrarian
8894a1319e 1.244.15 2024-11-04 02:37:47 +01:00
DebaucheryLibrarian
a487f21059 Improved socials table. 2024-11-04 02:37:45 +01:00
DebaucheryLibrarian
5ae2f8e3f4 1.244.14 2024-11-03 06:29:19 +01:00
DebaucheryLibrarian
2c58dfe426 Restructured socials table. 2024-11-03 06:29:16 +01:00
DebaucheryLibrarian
47eb91a7e8 1.244.13 2024-11-03 02:52:32 +01:00
DebaucheryLibrarian
90027d12fb Fixed Adult Empire/Elegant Angel age verification. 2024-11-03 02:52:30 +01:00
DebaucheryLibrarian
c78c12929a 1.244.12 2024-11-03 01:52:52 +01:00
DebaucheryLibrarian
9eca44795f Added PornBox scraper for AnalVids. 2024-11-03 01:52:49 +01:00
DebaucheryLibrarian
949136f465 1.244.11 2024-11-01 00:38:53 +01:00
DebaucheryLibrarian
341c6aed1e Added referer to AnalVids requests. 2024-11-01 00:38:49 +01:00
DebaucheryLibrarian
54d4fbdddc 1.244.10 2024-10-31 05:59:36 +01:00
DebaucheryLibrarian
96a075cb2d Added Dogfart to actor scraper list. 2024-10-31 05:59:33 +01:00
DebaucheryLibrarian
b45a93194b 1.244.9 2024-10-31 05:47:57 +01:00
DebaucheryLibrarian
0fe6a1119a Accomodating unprint proxy options. 2024-10-31 05:47:54 +01:00
DebaucheryLibrarian
928650b602 Using options instead of config dependency for common location resolver. 2024-10-31 03:19:18 +01:00
DebaucheryLibrarian
eb519ef474 1.244.8 2024-10-31 03:01:16 +01:00
DebaucheryLibrarian
1aa876acd9 Using common for place resolve. 2024-10-31 03:01:13 +01:00
DebaucheryLibrarian
fd39fa93d9 1.244.7 2024-10-30 00:42:30 +01:00
DebaucheryLibrarian
df820e6e71 Fixed new profiles not being assigned avatars appropriately. 2024-10-30 00:42:27 +01:00
DebaucheryLibrarian
5edf781da7 1.244.6 2024-10-29 22:42:33 +01:00
DebaucheryLibrarian
ea02ec3943 Separated media request limits. 2024-10-29 22:42:30 +01:00
DebaucheryLibrarian
070ef182db 1.244.5 2024-10-27 17:12:23 +01:00
DebaucheryLibrarian
d80ec2e6a6 Fixed actor ID property for newly created profiles, should fix actor association failing. 2024-10-27 17:12:21 +01:00
DebaucheryLibrarian
707c8170bd 1.244.4 2024-10-26 22:24:56 +02:00
DebaucheryLibrarian
edf1b64624 Added more detailed total runtime. 2024-10-26 22:24:54 +02:00
DebaucheryLibrarian
19121f5a3f 1.244.3 2024-10-26 22:13:47 +02:00
DebaucheryLibrarian
2df3213936 Added error stack to actor association fail. 2024-10-26 22:13:44 +02:00
DebaucheryLibrarian
8fdc313659 1.244.2 2024-10-26 02:12:49 +02:00
DebaucheryLibrarian
b5b09a7dce Added total run time indicator. 2024-10-26 02:12:46 +02:00
DebaucheryLibrarian
24cd92807c 1.244.1 2024-10-26 01:12:41 +02:00
DebaucheryLibrarian
29ab61e713 Removed stray console logs. 2024-10-26 01:12:38 +02:00
DebaucheryLibrarian
c2fa571aa0 Added actors avatars migration to repo. 2024-10-26 01:05:02 +02:00
DebaucheryLibrarian
bed267b0b0 1.244.0 2024-10-26 01:04:32 +02:00
DebaucheryLibrarian
e24012f446 Storing avatars in actors avatars table to allow multiple (historical) photos per profile. 2024-10-26 01:04:28 +02:00
DebaucheryLibrarian
8d3f1c13cf 1.243.8 2024-10-25 01:40:00 +02:00
DebaucheryLibrarian
d7ff6cee08 Fixed Radical module, actively retrieving endpoint. 2024-10-25 01:39:58 +02:00
DebaucheryLibrarian
8b89119dfb 1.243.7 2024-10-25 00:56:38 +02:00
DebaucheryLibrarian
81d2217fdc Passing refresh view parameter into profile interpolator. Updated Got Filled and Inserted API keys. 2024-10-25 00:56:35 +02:00
DebaucheryLibrarian
928f872044 1.243.6 2024-10-24 03:18:30 +02:00
DebaucheryLibrarian
01a8a24db6 Updated default request limit config. Added type expect to Kink images to fix broken photos due malformed content type header. 2024-10-24 03:18:27 +02:00
DebaucheryLibrarian
87adc0472e Removed stray console log from AnalVids scraper. 2024-10-24 02:03:53 +02:00
DebaucheryLibrarian
712ad06ed4 1.243.5 2024-10-24 02:03:34 +02:00
DebaucheryLibrarian
4f247d23c4 Updated unprint, integrated throttle settings. 2024-10-24 02:03:30 +02:00
DebaucheryLibrarian
790e77fc1f 1.243.4 2024-10-23 02:58:39 +02:00
DebaucheryLibrarian
50af67e3c6 Added agency to actor profile tables. 2024-10-23 02:58:37 +02:00
DebaucheryLibrarian
5b12a553bf 1.243.3 2024-10-22 03:13:43 +02:00
DebaucheryLibrarian
8778ea1275 Removed old profile interpolation code. 2024-10-22 03:13:41 +02:00
DebaucheryLibrarian
260e02a06f 1.243.2 2024-10-22 03:13:06 +02:00
DebaucheryLibrarian
c307140db3 Updated actors common path. 2024-10-22 03:13:03 +02:00
DebaucheryLibrarian
8790992ed3 1.243.1 2024-10-22 02:56:58 +02:00
DebaucheryLibrarian
783712ab2f Updated traxxx common path to cjs. 2024-10-22 02:56:56 +02:00
DebaucheryLibrarian
21e0958a96 1.243.0 2024-10-22 02:51:04 +02:00
DebaucheryLibrarian
eea8d6cc68 Renamed traxxx utils to common. Added natural lips column. 2024-10-22 02:51:00 +02:00
DebaucheryLibrarian
1b0101f20a 1.242.8 2024-10-21 05:41:07 +02:00
DebaucheryLibrarian
a525d9b200 Changed sitename to availableOnSite in Gamma API call, added Evil Angel trans sites. Updated actor revisions migration. 2024-10-21 05:41:04 +02:00
DebaucheryLibrarian
2c2d7fdac8 1.242.7 2024-10-20 23:56:23 +02:00
DebaucheryLibrarian
95460c98a7 Added Taboo Heat. 2024-10-20 23:56:20 +02:00
DebaucheryLibrarian
6f36f1c7d7 Marked AnalVids network as not-showcased. 2024-10-20 02:35:07 +02:00
DebaucheryLibrarian
0d86a718c6 Merged AnalVids seed into sites seed. 2024-10-20 02:04:41 +02:00
DebaucheryLibrarian
a62b026e2b 1.242.6 2024-10-20 01:59:20 +02:00
DebaucheryLibrarian
5374d6fd39 Refactored AnalVids so studios are channels, excluded most channels from daily update. 2024-10-20 01:59:18 +02:00
DebaucheryLibrarian
d89ced2e6e 1.242.5 2024-10-20 01:05:28 +02:00
DebaucheryLibrarian
ba11dc4252 Renaming AnalVids studios to prevent channel conflicts. 2024-10-20 01:05:23 +02:00
DebaucheryLibrarian
5607930184 1.242.4 2024-10-18 22:57:14 +02:00
DebaucheryLibrarian
b8e9431225 Fixed Snow Valley breaking on Transex Japan if no album is found for scene. 2024-10-18 22:57:12 +02:00
DebaucheryLibrarian
5ed408226d Fixed eye color bruin mapping to bruin instead of brown. 2024-10-18 04:05:51 +02:00
DebaucheryLibrarian
8cc10b084d Removed AnalVids from exclusion since they are studios, not channels. 2024-10-18 03:45:19 +02:00
DebaucheryLibrarian
6e93528cca Added AnalVids exclusion JSON to repo. 2024-10-18 03:39:57 +02:00
DebaucheryLibrarian
0c93ce2a17 1.242.3 2024-10-18 03:37:57 +02:00
DebaucheryLibrarian
24c15d9387 Ignoring secondary AnalVids channels by default. 2024-10-18 03:37:54 +02:00
DebaucheryLibrarian
f0d12a4297 1.242.2 2024-10-17 23:50:57 +02:00
DebaucheryLibrarian
1163b010fb Added actor page deep scrape for the few Sperm Mania scenes not on the homepage. 2024-10-17 23:50:55 +02:00
DebaucheryLibrarian
0ac8ae4d5a 1.242.1 2024-10-16 17:20:00 +02:00
DebaucheryLibrarian
393cf38299 Made revision scene ID nullable to facilitate scene removal. 2024-10-16 17:19:58 +02:00
DebaucheryLibrarian
85b5b8203e 1.242.0 2024-10-16 02:39:14 +02:00
DebaucheryLibrarian
1950dd2e62 Added Snow Valley (Sperm Mania) scraper. 2024-10-16 02:39:11 +02:00
DebaucheryLibrarian
91e31e8ce7 1.241.17 2024-09-13 01:22:50 +02:00
DebaucheryLibrarian
d3f15a6a2b Tweaked Spizoo scraper for Goth Girlfriends. 2024-09-13 01:22:46 +02:00
DebaucheryLibrarian
b41317706f 1.241.16 2024-09-09 04:34:32 +02:00
DebaucheryLibrarian
fd58c12fee Marked Erika Korti Studio as showcased. 2024-09-09 04:34:28 +02:00
DebaucheryLibrarian
efab316343 1.241.15 2024-09-08 05:41:09 +02:00
DebaucheryLibrarian
7cb41c7c5d Added deciated ExploitedX scraper. 2024-09-08 05:41:05 +02:00
DebaucheryLibrarian
6b1fec4b30 1.241.14 2024-09-08 03:26:18 +02:00
DebaucheryLibrarian
a9a6e89d1f Further data fixes for ECG in ElevatedX scraper and seed file. 2024-09-08 03:26:16 +02:00
DebaucheryLibrarian
3e17021057 1.241.13 2024-09-08 03:09:47 +02:00
DebaucheryLibrarian
6e1c4a9de8 Added content version table. Marked ElevatedX scraper as deprecated, fixed ExploitedCollegeGirls queries. 2024-09-08 03:09:44 +02:00
DebaucheryLibrarian
cab1823f81 Added DDF channels to ignore. 2024-09-04 02:42:58 +02:00
DebaucheryLibrarian
6f5b3b257d 1.241.12 2024-09-04 02:40:55 +02:00
DebaucheryLibrarian
51bd1bff14 Added Sex Like Real. Added separate missing date limit for upcoming updates. 2024-09-04 02:40:52 +02:00
DebaucheryLibrarian
6cc872821c 1.241.11 2024-09-03 06:10:11 +02:00
DebaucheryLibrarian
8feeb0f858 Added studio info to manticore scenes. 2024-09-03 06:10:08 +02:00
DebaucheryLibrarian
d877c03180 1.241.10 2024-09-02 02:32:32 +02:00
DebaucheryLibrarian
e8f41accb1 Excluded old DDF sites from daily update. 2024-09-02 02:32:30 +02:00
DebaucheryLibrarian
e5a1bfc846 1.241.9 2024-09-01 21:44:52 +02:00
DebaucheryLibrarian
ac51382d8b Added upcoming to Porn World scraper. 2024-09-01 21:44:48 +02:00
DebaucheryLibrarian
a740c8b046 Added Porn World profiles as fallback for AnalVids. 2024-09-01 04:04:10 +02:00
DebaucheryLibrarian
717c31815b 1.241.8 2024-09-01 00:00:43 +02:00
DebaucheryLibrarian
668221dafd Added Porn World to replace DDF scraper. 2024-09-01 00:00:40 +02:00
DebaucheryLibrarian
f09a94cc6a 1.241.7 2024-08-31 05:01:18 +02:00
DebaucheryLibrarian
9e7d46f081 Added API keys table. 2024-08-31 05:01:15 +02:00
DebaucheryLibrarian
efcbe2b1a1 1.241.6 2024-08-29 22:18:59 +02:00
DebaucheryLibrarian
ccc6d1c10c Refactored Hookup Hotshot scraper. 2024-08-29 22:18:56 +02:00
DebaucheryLibrarian
87afb4abe3 1.241.5 2024-08-29 04:46:24 +02:00
DebaucheryLibrarian
b1353f3bc3 Added movie and serie titles to manticore scenes. 2024-08-29 04:46:21 +02:00
DebaucheryLibrarian
35fc2370f0 1.241.4 2024-08-28 16:38:49 +02:00
DebaucheryLibrarian
22400ed954 Removed JJ and Whale Member fix tools. 2024-08-28 16:38:46 +02:00
DebaucheryLibrarian
f067a309a1 1.241.3 2024-08-27 02:43:48 +02:00
DebaucheryLibrarian
6590e457b5 Added actor names to Jules Jordan title entry ID. 2024-08-27 02:43:46 +02:00
DebaucheryLibrarian
386d464225 1.241.2 2024-08-27 02:27:54 +02:00
DebaucheryLibrarian
3aa542ab98 Added JJ fix tool (hopefully no longer needed, but just in case). 2024-08-27 02:27:47 +02:00
DebaucheryLibrarian
c5809bc289 1.241.1 2024-08-27 02:16:27 +02:00
DebaucheryLibrarian
73676b8628 Appending date to Jules Jordan title-derived entry ID. 2024-08-27 02:16:25 +02:00
DebaucheryLibrarian
035312bd9c 1.241.0 2024-08-26 06:15:44 +02:00
DebaucheryLibrarian
856a5f4580 Added user template database. 2024-08-26 06:15:39 +02:00
DebaucheryLibrarian
43134e0c8d 1.240.7 2024-08-25 21:39:07 +02:00
DebaucheryLibrarian
1a74bdb68a Fixed Jules Jordan poster returning page URL. 2024-08-25 21:39:05 +02:00
DebaucheryLibrarian
c7947322c1 1.240.6 2024-08-23 23:55:31 +02:00
DebaucheryLibrarian
1c933c2f29 Added 'only anal' (0% pussy) tag. 2024-08-23 23:55:28 +02:00
DebaucheryLibrarian
4a4dfde73e Added Parasited to Amnesiac/Hentaied. 2024-08-22 21:42:08 +02:00
DebaucheryLibrarian
4e946b4db6 1.240.5 2024-08-22 04:04:35 +02:00
DebaucheryLibrarian
48c41b11e5 Added Cumflation to Amnesiac. 2024-08-22 04:04:31 +02:00
DebaucheryLibrarian
07cca4315b 1.240.4 2024-08-22 03:21:38 +02:00
DebaucheryLibrarian
11be4a2cb9 Updated unprint, fixes 404 response content. 2024-08-22 03:21:35 +02:00
DebaucheryLibrarian
80d8a9a830 1.240.3 2024-08-22 03:07:40 +02:00
DebaucheryLibrarian
e61411ca44 Added Angelo Godshack Original. 2024-08-22 03:07:38 +02:00
DebaucheryLibrarian
22144d3724 1.240.2 2024-08-22 02:07:42 +02:00
DebaucheryLibrarian
80e5d7828a Retired unused Bang Bros scraper (now part of Aylo). 2024-08-22 02:07:39 +02:00
DebaucheryLibrarian
893a3be393 Updated Gaywire configuration, moved from Bang Bros to Aylo. 2024-08-22 02:00:54 +02:00
DebaucheryLibrarian
fc6bb2feda 1.240.1 2024-08-21 01:03:55 +02:00
DebaucheryLibrarian
8aeee8eea6 Added Cliff Media (Vanessa Cliff). 2024-08-21 01:03:53 +02:00
DebaucheryLibrarian
91574d2e5b 1.240.0 2024-08-20 02:33:46 +02:00
DebaucheryLibrarian
d3a978c501 Using unprint as default, marked to-be-updated scrapers as deprecated. Merging movie tags and movie scene tags for manticore movies table. Removed poster set to null in deep merge; annotate if it has purpose. Refactored Brad Montana scraper. 2024-08-20 02:33:42 +02:00
DebaucheryLibrarian
f81ec6f393 Added humor/comedy tags. 2024-08-17 02:36:33 +02:00
DebaucheryLibrarian
a989bcb169 1.239.1 2024-08-17 02:34:02 +02:00
DebaucheryLibrarian
596597e0e3 Added MissaX. 2024-08-17 02:33:59 +02:00
DebaucheryLibrarian
33bad4466e 1.239.0 2024-08-16 23:26:58 +02:00
DebaucheryLibrarian
bca677b0a8 Added virtual entity spawning for multi-page updates (i.e. Elegant Angel). Fixed ffmpeg error freezing process. Refactored Adult Empire/Elegant Angel scraper. 2024-08-16 23:26:52 +02:00
DebaucheryLibrarian
958c6d83fa 1.238.8 2024-07-11 00:02:39 +02:00
DebaucheryLibrarian
0516b0cee6 Fixed Amnesiac over-selecting actors. 2024-07-11 00:02:37 +02:00
DebaucheryLibrarian
acd29a1451 Removed stray console log from Gamma. 2024-07-09 02:22:05 +02:00
DebaucheryLibrarian
d0a4d06cd3 1.238.7 2024-07-09 02:19:26 +02:00
DebaucheryLibrarian
b8e7029cef Using base poster as fallback for deep poster in merge. Improved Naughty America scraper for live scenes. 2024-07-09 02:19:23 +02:00
DebaucheryLibrarian
325e8ea77d 1.238.6 2024-07-09 01:44:20 +02:00
DebaucheryLibrarian
ad9113f624 Added Upclose to Gamma. 2024-07-09 01:44:17 +02:00
DebaucheryLibrarian
215528171d 1.238.5 2024-07-09 00:30:55 +02:00
DebaucheryLibrarian
889a13f206 Fixed pagination in Amnesiac/Hentaied scraper. 2024-07-09 00:30:53 +02:00
DebaucheryLibrarian
4925295798 Enabled logo for Amnesiac. 2024-07-09 00:18:13 +02:00
DebaucheryLibrarian
c69251f22a 1.238.4 2024-07-08 04:59:41 +02:00
DebaucheryLibrarian
c62a529e76 Added Amnesiac (Hentaied) scraper. 2024-07-08 04:59:28 +02:00
DebaucheryLibrarian
4d8ef20735 1.238.3 2024-07-08 02:09:40 +02:00
DebaucheryLibrarian
ba55179ac2 Changed Big Cock Bully to Thundercock on Naughty America. 2024-07-08 02:09:38 +02:00
DebaucheryLibrarian
1c26da447a 1.238.2 2024-07-08 01:58:13 +02:00
DebaucheryLibrarian
1e03aa37b7 Expanded Naughty America scraper to support Tonight's Girlfriend (and possibly other native sites). 2024-07-08 01:58:11 +02:00
DebaucheryLibrarian
c581bea185 1.238.1 2024-07-06 06:19:42 +02:00
DebaucheryLibrarian
857771e5c6 Inheriting argv request timeout in unprint configuration. 2024-07-06 06:19:38 +02:00
DebaucheryLibrarian
1e96c23c4c 1.238.0 2024-07-06 06:08:40 +02:00
DebaucheryLibrarian
56163f2b3d Refactored and fixed Naughty America scraper. 2024-07-06 06:08:35 +02:00
DebaucheryLibrarian
7fb24cb31b Ranked oil tag high enough to be included in search. 2024-07-05 04:05:31 +02:00
DebaucheryLibrarian
4a1a802740 1.237.25 2024-07-05 02:55:05 +02:00
DebaucheryLibrarian
36a51f0491 Sharing title filter function between manticore update module and sync tool, fixing sync tool title filter word boundaries. 2024-07-05 02:55:02 +02:00
DebaucheryLibrarian
f11a009395 Adapted Aylo scraper for Bang Bros. 2024-06-30 03:27:57 +02:00
DebaucheryLibrarian
188d67e8eb Removed banners symlink from repo. 2024-06-13 03:14:31 +02:00
DebaucheryLibrarian
1764831f47 1.237.24 2024-06-13 03:13:06 +02:00
DebaucheryLibrarian
6d1245ca85 Added Mike Adriano campaigns. 2024-06-13 03:13:03 +02:00
DebaucheryLibrarian
fba788a510 1.237.23 2024-06-13 02:16:06 +02:00
DebaucheryLibrarian
405db5e002 Solidifed New Sensations entry ID. Updated Four Finger Club to Girl Girl XXX. 2024-06-13 02:16:03 +02:00
DebaucheryLibrarian
cb9368376d 1.237.22 2024-06-12 03:21:48 +02:00
DebaucheryLibrarian
8c37071145 Expanded puppeteer options. Fixed Mike Adriano scraper. Fixed convert utility. 2024-06-12 03:21:45 +02:00
DebaucheryLibrarian
54b2cd1209 Disabled Aylo parent session for SexyHub and MetroHD. 2024-06-06 01:21:18 +02:00
DebaucheryLibrarian
f5d76e47b1 1.237.21 2024-06-06 00:20:57 +02:00
DebaucheryLibrarian
a0ed434360 Added date range to flush commands. 2024-06-06 00:20:54 +02:00
DebaucheryLibrarian
00653a7cab 1.237.20 2024-06-05 23:40:17 +02:00
DebaucheryLibrarian
13b50596e4 Disabled network session for Mile High Media to fix duplicate scenes on wrong channels. 2024-06-05 23:40:14 +02:00
DebaucheryLibrarian
894eaeb43f Added batch showcase in manticore scene update. 2024-06-05 23:04:07 +02:00
DebaucheryLibrarian
2a4b0e9636 Disable notifications if showcase flag is disabled. 2024-06-05 03:11:49 +02:00
DebaucheryLibrarian
c849d097e1 1.237.19 2024-06-05 03:05:33 +02:00
DebaucheryLibrarian
644226531e Using URL or title slug for Whale Member entry IDs for backwards compatability. 2024-06-05 03:05:30 +02:00
DebaucheryLibrarian
129b03eb5a Hiding non-batch showcased scenes from all main pages. 2024-06-04 05:30:29 +02:00
DebaucheryLibrarian
192145c948 1.237.18 2024-06-04 05:12:46 +02:00
DebaucheryLibrarian
ab46e8558d Fixed Kink scraper. 2024-06-04 05:12:41 +02:00
DebaucheryLibrarian
b6a402d964 Added grandparent network IDs to manticore scene database. 2024-06-04 03:49:35 +02:00
DebaucheryLibrarian
74fbe29db5 Added URL util to repo. 2024-06-04 03:34:09 +02:00
DebaucheryLibrarian
e16fb2e57a 1.237.17 2024-06-04 03:30:29 +02:00
DebaucheryLibrarian
c2afa571bf Fixed Whale Member (Porn Pros, Holed) scraper. 2024-06-04 03:30:26 +02:00
DebaucheryLibrarian
cc67532fd9 Changed BDSM tag priority. 2024-06-02 04:48:35 +02:00
DebaucheryLibrarian
f5fa4b79a6 1.237.16 2024-06-02 00:28:45 +02:00
DebaucheryLibrarian
43752cef92 Storing serie IDs to manticore scenes table. 2024-06-02 00:28:42 +02:00
DebaucheryLibrarian
8b0b340031 1.237.15 2024-05-31 04:36:51 +02:00
DebaucheryLibrarian
91bd0c42be Added showcase boolean to manticore scene CLI tool. 2024-05-31 04:36:47 +02:00
DebaucheryLibrarian
fb88e41087 1.237.14 2024-05-30 23:54:52 +02:00
DebaucheryLibrarian
7db724eda4 Set minimum prefix length 3 on manticore actors table. 2024-05-30 23:54:49 +02:00
DebaucheryLibrarian
7f4e4df9e3 1.237.13 2024-05-29 23:57:40 +02:00
DebaucheryLibrarian
f956f0e112 Converting expression before storing. Pre-fixed some Bang! channel names with 'Bang!'. 2024-05-29 23:57:38 +02:00
DebaucheryLibrarian
43d85bcd34 1.237.12 2024-05-20 06:29:48 +02:00
DebaucheryLibrarian
0f05abcd27 Implemented alert field AND/OR logic. 2024-05-20 06:29:44 +02:00
DebaucheryLibrarian
00a52c5f83 1.237.11 2024-05-04 05:18:03 +02:00
DebaucheryLibrarian
5ac64d410e Fixed alert stash deduper. 2024-05-04 05:18:00 +02:00
DebaucheryLibrarian
f9e8e0263a 1.237.10 2024-05-01 03:45:53 +02:00
DebaucheryLibrarian
26f3bf8d6a Fixed title tag filtering in manticore scene sync. 2024-05-01 03:45:51 +02:00
DebaucheryLibrarian
2bdd85d795 1.237.9 2024-04-29 03:53:19 +02:00
DebaucheryLibrarian
6339a253c0 Syncing alert stash with manticore. 2024-04-29 03:53:17 +02:00
DebaucheryLibrarian
db1b72f95f Fixed back-end alert verification. 2024-03-28 01:19:13 +01:00
DebaucheryLibrarian
7808ce452f 1.237.8 2024-03-28 00:48:48 +01:00
DebaucheryLibrarian
9145ecb8a4 Fixed entity-only alert not verifying. 2024-03-28 00:48:46 +01:00
DebaucheryLibrarian
99c60a0f81 1.237.7 2024-03-27 02:39:18 +01:00
DebaucheryLibrarian
e019648a87 Syncing stash actions to manticore. 2024-03-27 02:39:16 +01:00
DebaucheryLibrarian
837f675e4f 1.237.6 2024-03-25 21:51:57 +01:00
DebaucheryLibrarian
efd5b959db Removed tag priority filter from manticore scene update query. 2024-03-25 21:51:52 +01:00
DebaucheryLibrarian
33adf5b668 1.237.5 2024-03-25 02:08:56 +01:00
DebaucheryLibrarian
00f59b3743 Added movies to manticore migrations and update. 2024-03-25 02:08:54 +01:00
DebaucheryLibrarian
27ef621f75 1.237.4 2024-03-24 22:17:02 +01:00
DebaucheryLibrarian
f1f618d3a7 Added entity_ids column to manticore scenes table. 2024-03-24 22:16:58 +01:00
DebaucheryLibrarian
7171ac9252 1.237.3 2024-03-24 04:23:59 +01:00
DebaucheryLibrarian
33311b4954 Changed weight to mass in manticore actors table to prevent score weight conflict. 2024-03-24 04:23:55 +01:00
DebaucheryLibrarian
43af2ef9c9 1.237.2 2024-03-17 03:57:58 +01:00
DebaucheryLibrarian
05d78d948b Added showcase to manticore migration. Added Cheating Sis to Nubiles. 2024-03-17 03:57:55 +01:00
DebaucheryLibrarian
b932cc0c6c 1.237.1 2024-03-15 01:24:06 +01:00
DebaucheryLibrarian
8749b464fd Added alias and privileges to metadata migration. 2024-03-15 01:24:02 +01:00
DebaucheryLibrarian
31f8bd4d84 1.237.0 2024-03-15 00:57:38 +01:00
DebaucheryLibrarian
f83ea2436d Added stashes to Manticore search update. 2024-03-15 00:57:28 +01:00
DebaucheryLibrarian
b96d996947 1.236.1 2024-02-09 22:30:41 +01:00
DebaucheryLibrarian
fc0661804f Added filtered titles and secondary tags to manticore database. 2024-02-09 22:30:38 +01:00
DebaucheryLibrarian
31e884359e 1.236.0 2024-01-25 01:59:00 +01:00
DebaucheryLibrarian
d9d585d51a Added Manticore migration and meta text field. 2024-01-25 01:58:55 +01:00
DebaucheryLibrarian
86ffcc3316 Updating Manticore scenes database on scene store. 2024-01-25 01:15:42 +01:00
DebaucheryLibrarian
ae2d3591ee 1.235.5 2024-01-03 23:03:32 +01:00
DebaucheryLibrarian
a6fb572a21 Added Freaky Fembots to Team Skeet. 2024-01-03 23:03:30 +01:00
DebaucheryLibrarian
7e80cc628c 1.235.4 2023-12-16 01:59:39 +01:00
DebaucheryLibrarian
e09795534c Added photo_count column to movies and series table. 2023-12-16 01:59:37 +01:00
DebaucheryLibrarian
3379e9e517 Added more Shay Evans maintenance background. 2023-12-09 03:00:39 +01:00
DebaucheryLibrarian
a2006c2370 1.235.3 2023-12-09 02:55:34 +01:00
DebaucheryLibrarian
47f7c01c73 Added Shay Evans maintenance background. 2023-12-09 02:55:32 +01:00
DebaucheryLibrarian
5c6f172b6b Fixed maintenance page background location. 2023-12-09 01:27:34 +01:00
DebaucheryLibrarian
c0f4e888d7 1.235.2 2023-12-07 02:19:05 +01:00
DebaucheryLibrarian
d082f4f90d Moved maintenance page to assets. 2023-12-07 02:19:02 +01:00
DebaucheryLibrarian
007b541028 1.235.1 2023-12-07 01:27:46 +01:00
DebaucheryLibrarian
b872d7a0ec Moved maintenance page to public directory to be served by webserver. 2023-12-07 01:27:44 +01:00
DebaucheryLibrarian
214409a591 1.235.0 2023-12-06 01:51:36 +01:00
DebaucheryLibrarian
2a3f21976a Added maintenance mode. 2023-12-06 01:51:34 +01:00
DebaucheryLibrarian
a3c064be55 Added Inn of Sinn, added Lil Sis to Nubiles. 2023-12-06 00:15:55 +01:00
DebaucheryLibrarian
655cbf50f3 1.234.2 2023-12-01 02:19:55 +01:00
DebaucheryLibrarian
1e707ccefa Added database pool settings. 2023-12-01 02:19:53 +01:00
DebaucheryLibrarian
1d38ba1141 1.234.1 2023-12-01 02:09:26 +01:00
DebaucheryLibrarian
9ea317939b Fixed session reuse in Aylo scraper. 2023-12-01 02:09:24 +01:00
DebaucheryLibrarian
353fe6d6f8 1.234.0 2023-11-30 03:12:50 +01:00
DebaucheryLibrarian
98bf7ea9dd Updated all dependencies. Updated MindGeek to Aylo. 2023-11-30 03:12:47 +01:00
DebaucheryLibrarian
90aa29d2d4 1.233.0 2023-11-24 02:10:06 +01:00
DebaucheryLibrarian
0369446681 Added AND/OR toggle to alerts. 2023-11-24 02:10:03 +01:00
DebaucheryLibrarian
238dce78b5 Refactored alerts to use application code, added regex. Updated Jules Jordan for the Ass Factory relaunch. 2023-11-24 01:29:22 +01:00
DebaucheryLibrarian
124ff3f5e3 1.232.2 2023-11-09 01:10:08 +01:00
DebaucheryLibrarian
1cf06a8b49 Fixed Vixen upcoming. 2023-11-09 01:10:05 +01:00
DebaucheryLibrarian
a8bdb7ab59 1.232.1 2023-11-08 03:41:44 +01:00
DebaucheryLibrarian
08fd69af39 Added photo_count to movies table. 2023-11-08 03:41:41 +01:00
DebaucheryLibrarian
560ff103ce 1.232.0 2023-11-07 04:46:48 +01:00
DebaucheryLibrarian
edc724b475 Storing photo counts. 2023-11-07 04:46:45 +01:00
DebaucheryLibrarian
ac904c849d Fixed The Flourish POV URL. 2023-11-07 04:39:14 +01:00
DebaucheryLibrarian
5481b6e0a6 1.231.31 2023-11-07 04:29:38 +01:00
DebaucheryLibrarian
eba96df631 Added The Flourish, adapted Arch Angel scraper. 2023-11-07 04:29:35 +01:00
DebaucheryLibrarian
7caa325c5f 1.231.30 2023-11-07 03:06:42 +01:00
DebaucheryLibrarian
e20641e101 Fixed Teen Mega World scraper. 2023-11-07 03:06:39 +01:00
DebaucheryLibrarian
8f81f71802 1.231.29 2023-09-24 04:29:46 +02:00
DebaucheryLibrarian
e7a4ccecf3 Renamed Natasha Teen Productions to Natasha Teen Films. 2023-09-24 04:29:43 +02:00
DebaucheryLibrarian
ec33a8b5a9 1.231.28 2023-09-17 21:59:18 +02:00
DebaucheryLibrarian
4a9aa62831 Changed inadvertent click prevention in actor tile scrolling for improved native interactions. 2023-09-17 21:59:15 +02:00
DebaucheryLibrarian
8b5eada088 1.231.27 2023-08-28 02:53:38 +02:00
DebaucheryLibrarian
eeb947d311 Catching media store fail unlink error to prevent batch failure. 2023-08-28 02:53:35 +02:00
DebaucheryLibrarian
430d7a8cdd 1.231.26 2023-08-16 06:31:51 +02:00
DebaucheryLibrarian
c94dcdd9e6 Updated Radical to support Top Web Models. 2023-08-16 06:31:49 +02:00
DebaucheryLibrarian
46c514f530 1.231.25 2023-08-16 03:08:50 +02:00
DebaucheryLibrarian
b29a34c76a Updated AnalVids. 2023-08-16 03:08:47 +02:00
DebaucheryLibrarian
20ba833147 1.231.24 2023-08-14 01:54:19 +02:00
DebaucheryLibrarian
1ed47c3173 Updated Radical scraper. Added town property to location resolve tool. 2023-08-14 01:54:17 +02:00
DebaucheryLibrarian
ccac1f96dd 1.231.23 2023-08-13 21:57:35 +02:00
DebaucheryLibrarian
c860bfebc1 Separated error log. Added search/summary update tool. 2023-08-13 21:57:32 +02:00
DebaucheryLibrarian
d5806c3d31 1.231.22 2023-08-12 23:19:33 +02:00
DebaucheryLibrarian
bf36825fce Added Say Uncle channels. 2023-08-12 23:19:30 +02:00
DebaucheryLibrarian
a1780e2c4b 1.231.21 2023-08-11 03:56:12 +02:00
DebaucheryLibrarian
02850eb6e3 Updated Team Skeet and MYLF. 2023-08-11 03:56:08 +02:00
DebaucheryLibrarian
71efd7a96f 1.231.20 2023-08-05 01:39:02 +02:00
DebaucheryLibrarian
3508e47600 Added alt_titles to series table. 2023-08-05 01:38:58 +02:00
DebaucheryLibrarian
eef0be09b3 1.231.19 2023-08-05 00:09:15 +02:00
DebaucheryLibrarian
2df20aea38 Moved Aziani to Gamma. 2023-08-05 00:09:13 +02:00
DebaucheryLibrarian
1032c3cb57 1.231.18 2023-08-04 22:30:20 +02:00
DebaucheryLibrarian
5f26f8de27 Excluding studios from entity aggregration. Added profile scraping to Teste de Fudelidade. 2023-08-04 22:30:18 +02:00
DebaucheryLibrarian
328550b9a3 Added Teste de Fudelidade. 2023-08-04 22:02:28 +02:00
DebaucheryLibrarian
28455ecd5d 1.231.17 2023-08-04 21:43:58 +02:00
DebaucheryLibrarian
54dbea659a Added missing image fallbacks to legacy Aziani scraper. 2023-08-04 21:43:57 +02:00
DebaucheryLibrarian
447c1d748a 1.231.16 2023-08-04 00:12:27 +02:00
DebaucheryLibrarian
4a10887e48 Fixed Aziani breaking on missing source. 2023-08-04 00:12:24 +02:00
DebaucheryLibrarian
48015a4c95 1.231.15 2023-08-03 23:35:14 +02:00
DebaucheryLibrarian
abbfedf3f7 Added trailer support to legacy Aziani scraper. 2023-08-03 23:35:10 +02:00
DebaucheryLibrarian
fa9153deb8 1.231.14 2023-08-03 23:24:26 +02:00
DebaucheryLibrarian
b287f5c2db Fixed photo query in Aziana scraper. 2023-08-03 23:24:23 +02:00
DebaucheryLibrarian
2ebc2d441f 1.231.13 2023-08-03 00:31:09 +02:00
DebaucheryLibrarian
5f2c9eb5df Fixed place cache check. 2023-08-03 00:31:07 +02:00
DebaucheryLibrarian
ce41e24434 1.231.12 2023-08-02 23:12:44 +02:00
DebaucheryLibrarian
c5d81e94e5 Updated OSM API path, added redis caching. 2023-08-02 23:12:41 +02:00
DebaucheryLibrarian
0500bdee2b 1.231.11 2023-08-02 16:38:53 +02:00
DebaucheryLibrarian
e9a1df9123 Improved Model Media scene code matching. 2023-08-02 16:38:50 +02:00
DebaucheryLibrarian
277a06c3de 1.231.10 2023-08-02 02:22:31 +02:00
DebaucheryLibrarian
c064efc812 Fixed title curation disparity Tokyo Hot. 2023-08-02 02:22:26 +02:00
DebaucheryLibrarian
1408074ef4 1.231.9 2023-08-02 02:14:46 +02:00
DebaucheryLibrarian
8c1f1b69ff Splitting Han titles and actors in Model Media scraper. 2023-08-02 02:14:41 +02:00
DebaucheryLibrarian
5783507344 1.231.8 2023-07-31 23:41:35 +02:00
DebaucheryLibrarian
ae64c5225f Added conditions to Tokyo Hot scraper to prevent total failure. 2023-07-31 23:41:32 +02:00
DebaucheryLibrarian
d2f81d446b 1.231.7 2023-07-29 23:59:20 +02:00
DebaucheryLibrarian
ab5b165c68 Preserving Jules Jordan base photos in deep scrape. 2023-07-29 23:59:17 +02:00
DebaucheryLibrarian
c3d4bf0e62 Capitalized JAV tag. 2023-07-26 00:28:03 +02:00
DebaucheryLibrarian
60f594a948 1.231.6 2023-07-26 00:26:17 +02:00
DebaucheryLibrarian
7f74d227f0 Tracking iframe campaign clicks. 2023-07-26 00:26:15 +02:00
DebaucheryLibrarian
f59429c30a 1.231.5 2023-07-25 20:45:50 +02:00
DebaucheryLibrarian
40276a11f9 Fixed Tokyo Hot deep scrape failing on missing trailer. 2023-07-25 20:45:46 +02:00
DebaucheryLibrarian
0e846bec3f 1.231.4 2023-07-25 05:17:33 +02:00
DebaucheryLibrarian
ba376fa074 Getting last showcased batch for new label. 2023-07-25 05:17:30 +02:00
DebaucheryLibrarian
d1b54dc2c5 1.231.3 2023-07-25 05:05:09 +02:00
DebaucheryLibrarian
b9c3efa24e Tracking image campaign clicks in umami. 2023-07-25 05:05:05 +02:00
DebaucheryLibrarian
40e613ed8d 1.231.2 2023-07-25 04:23:13 +02:00
DebaucheryLibrarian
d033def947 Using batch showcase flag to hide archival releases. 2023-07-25 04:23:10 +02:00
DebaucheryLibrarian
671e110d99 1.231.1 2023-07-25 03:22:26 +02:00
DebaucheryLibrarian
b7a31b7933 Added showcase flag to batch table. 2023-07-25 03:22:24 +02:00
DebaucheryLibrarian
1082effc17 1.231.0 2023-07-25 03:03:45 +02:00
DebaucheryLibrarian
693983dc29 Added screen caps separate from photos. Added Tokyo Hot. Added hair type, shoe size and blood type actor fields. 2023-07-25 03:03:41 +02:00
DebaucheryLibrarian
6fe212796b 1.230.1 2023-07-24 22:21:09 +02:00
DebaucheryLibrarian
bb1aa4aa55 Added Umami to pm2 ecosystem file. 2023-07-24 22:21:05 +02:00
DebaucheryLibrarian
7d77e0603b 1.230.0 2023-07-24 00:59:49 +02:00
DebaucheryLibrarian
9f727a0fa0 Added analytics configuration. 2023-07-24 00:59:47 +02:00
DebaucheryLibrarian
997914ec27 Improved Hush T1 profile scraper. 2023-07-23 01:05:25 +02:00
DebaucheryLibrarian
37f01b68e8 1.229.6 2023-07-23 01:02:20 +02:00
DebaucheryLibrarian
ca695db3ba Storing actor socials, improved Hush profile scraper. 2023-07-23 01:02:18 +02:00
DebaucheryLibrarian
48acabac49 1.229.5 2023-07-22 23:43:49 +02:00
DebaucheryLibrarian
d7ee278b02 Removed unnecessary actor details from releases query. 2023-07-22 23:43:44 +02:00
DebaucheryLibrarian
191a3628b5 1.229.4 2023-07-22 00:50:02 +02:00
DebaucheryLibrarian
80750b44dc Added Milfy to profile list, fixed Vixen not returning gracefully when profile is not found. 2023-07-22 00:49:56 +02:00
DebaucheryLibrarian
25f3dcf9a5 Fixed avatar data type in Vixen scraper. 2023-07-22 00:01:12 +02:00
DebaucheryLibrarian
c17e44e9f9 1.229.3 2023-07-21 23:55:33 +02:00
DebaucheryLibrarian
0b101dde3c Updated Vixen model scraper. 2023-07-21 23:55:30 +02:00
DebaucheryLibrarian
4d20dae079 1.229.2 2023-07-21 21:58:52 +02:00
DebaucheryLibrarian
86e4fb7603 Fixed Team Skeet profiles. 2023-07-21 21:58:50 +02:00
DebaucheryLibrarian
e8d081cc67 1.229.1 2023-07-21 01:07:08 +02:00
DebaucheryLibrarian
dab38c8013 Added grey hair color, removed console log. 2023-07-21 01:07:06 +02:00
DebaucheryLibrarian
c29ecac41c Fixed summary view refresh. 2023-07-17 02:56:37 +02:00
DebaucheryLibrarian
4187f5e7e8 1.229.0 2023-07-17 01:59:29 +02:00
DebaucheryLibrarian
2b3b2d7fd2 Using summaries table for improved performance. 2023-07-17 01:59:26 +02:00
DebaucheryLibrarian
2783de5272 1.228.33 2023-07-09 21:39:44 +02:00
DebaucheryLibrarian
77727dff77 Added MariskaX. 2023-07-09 21:39:40 +02:00
DebaucheryLibrarian
f009c90e5d Updated Blowpass seed entries. 2023-07-09 05:23:17 +02:00
DebaucheryLibrarian
f4cb4ca26a 1.228.32 2023-07-09 05:08:37 +02:00
DebaucheryLibrarian
1cba51fbfd Moved Blowpass to Gamma API. 2023-07-09 05:08:35 +02:00
DebaucheryLibrarian
c5d9b93263 1.228.31 2023-07-09 04:35:33 +02:00
DebaucheryLibrarian
88a56794aa Separated Filthy Kings into its channels, upgraded Gamma scraper to accomodate. 2023-07-09 04:35:30 +02:00
DebaucheryLibrarian
c51577098a Added Milfy to proxy list. 2023-07-07 03:52:10 +02:00
DebaucheryLibrarian
3dff352399 1.228.30 2023-07-07 03:43:22 +02:00
DebaucheryLibrarian
6cb48647a8 Updated deepthroat tag photo. 2023-07-07 03:43:16 +02:00
DebaucheryLibrarian
d6c6c3435d 1.228.29 2023-07-07 02:20:09 +02:00
DebaucheryLibrarian
6f4608ba23 Using better video API for Vixen deep scrape. 2023-07-07 02:20:07 +02:00
DebaucheryLibrarian
10ba67fde1 1.228.28 2023-07-07 00:23:04 +02:00
DebaucheryLibrarian
83e22813f3 Using more aggressive optional chaining in Vixen scraper to prevent errors. 2023-07-07 00:23:02 +02:00
DebaucheryLibrarian
f8e7ace89f Removed superfluous console logs. 2023-07-06 05:40:23 +02:00
DebaucheryLibrarian
8bb46c5a6d Moved missing slug return in Vixen scraper. 2023-07-06 05:30:51 +02:00
DebaucheryLibrarian
6e79112f3a 1.228.27 2023-07-06 05:09:08 +02:00
DebaucheryLibrarian
51e04e7331 Updated Jules Jordan profile scraper. 2023-07-06 05:09:05 +02:00
DebaucheryLibrarian
9331c0af52 1.228.26 2023-07-06 04:24:51 +02:00
DebaucheryLibrarian
18744372b3 Updated Vixen scraper with more informative API query. 2023-07-06 04:24:47 +02:00
DebaucheryLibrarian
43d8b93953 1.228.25 2023-07-06 00:42:14 +02:00
DebaucheryLibrarian
b0c0b1a792 Reserving campaign space on actor, entity and tag pages. 2023-07-06 00:42:12 +02:00
DebaucheryLibrarian
717f07a09a 1.228.24 2023-07-06 00:30:06 +02:00
DebaucheryLibrarian
f6c1910be3 Added media attempt configuration, default from 3 to 2, 1 for JJ scraper. 2023-07-06 00:30:04 +02:00
DebaucheryLibrarian
a6077599bb 1.228.23 2023-07-06 00:14:42 +02:00
DebaucheryLibrarian
0905847ffa Updated Jules Jordan scraper. 2023-07-06 00:14:38 +02:00
DebaucheryLibrarian
66439b3b17 1.228.22 2023-07-03 00:50:50 +02:00
DebaucheryLibrarian
916deff487 Fixed Arch Angel placeholder thumbnail. 2023-07-03 00:50:47 +02:00
DebaucheryLibrarian
05788c2ed6 1.228.21 2023-07-02 23:59:51 +02:00
DebaucheryLibrarian
13d02a44e5 Fixed failed hash duplicate source breaking media association. 2023-07-02 23:59:49 +02:00
DebaucheryLibrarian
a2ff12a636 1.228.20 2023-07-02 22:21:21 +02:00
DebaucheryLibrarian
0a27e91de7 Using effective date in all queries. 2023-07-02 22:21:19 +02:00
DebaucheryLibrarian
3c8b6e6fc1 1.228.19 2023-07-02 21:06:42 +02:00
DebaucheryLibrarian
61c84e18e4 Added separate force media argument. 2023-07-02 21:06:38 +02:00
DebaucheryLibrarian
a858b2409a 1.228.18 2023-07-02 05:17:30 +02:00
DebaucheryLibrarian
bb204f3d85 Disabled Arch Angel campaigns until NATS license is reactivated. 2023-07-02 05:17:27 +02:00
DebaucheryLibrarian
38ce9c84ba 1.228.17 2023-07-02 05:13:43 +02:00
DebaucheryLibrarian
57a8b8e2f6 Added setting to disable campaigns. 2023-07-02 05:13:40 +02:00
DebaucheryLibrarian
4a3674feac Added dedicated Arch Angel scraper. 2023-07-02 05:07:38 +02:00
DebaucheryLibrarian
e22dbb315e 1.228.16 2023-07-02 01:04:41 +02:00
DebaucheryLibrarian
a339c096ef Fixed Kink trailer query. 2023-07-02 01:04:39 +02:00
DebaucheryLibrarian
a8fa1f36f8 Added Van Styles to Jules Jordan tag directors. 2023-07-01 22:45:28 +02:00
DebaucheryLibrarian
6edd587a33 1.228.15 2023-07-01 22:24:23 +02:00
DebaucheryLibrarian
a2331bc913 Added prefer option for entity resolution. Merged migrations. 2023-07-01 22:24:21 +02:00
DebaucheryLibrarian
744bdb3170 1.228.14 2023-07-01 21:53:03 +02:00
DebaucheryLibrarian
aa9e3b3d1f Deriving Jules Jordan director from tags. 2023-07-01 21:53:01 +02:00
DebaucheryLibrarian
99f2faa328 1.228.13 2023-07-01 21:46:47 +02:00
DebaucheryLibrarian
205102ff90 Added Meiden van Holland and Vurig Vlaanderen. 2023-07-01 21:46:44 +02:00
DebaucheryLibrarian
01b3cc42af 1.228.12 2023-06-24 22:30:58 +02:00
DebaucheryLibrarian
6de6053eaa Added page title function for Composition API components. 2023-06-24 22:30:55 +02:00
DebaucheryLibrarian
fdad61465c 1.228.11 2023-06-24 17:32:55 +02:00
DebaucheryLibrarian
49a08cd576 Using time distance for content updated on stats page. 2023-06-24 17:32:53 +02:00
DebaucheryLibrarian
60c4f6e6c1 1.228.10 2023-06-24 17:23:44 +02:00
DebaucheryLibrarian
57e7710f25 Using locale numbers for stats page. 2023-06-24 17:23:42 +02:00
DebaucheryLibrarian
e41d1e1ad2 1.228.9 2023-06-24 17:16:10 +02:00
DebaucheryLibrarian
fbcf17d1c4 Refactored stats page. 2023-06-24 17:16:06 +02:00
DebaucheryLibrarian
f4ed4fb8d8 1.228.8 2023-06-22 01:31:39 +02:00
DebaucheryLibrarian
25a90dd52c Moved Dogfart to DFXtra. 2023-06-22 01:31:36 +02:00
DebaucheryLibrarian
ed92919c0d 1.228.7 2023-06-19 05:19:51 +02:00
DebaucheryLibrarian
b5309005e9 Using affiliate parameters for Bang, fixed affiliate URL composition on entity page. 2023-06-19 05:19:49 +02:00
DebaucheryLibrarian
54c501e277 Added Bang affiliate link. 2023-06-19 05:11:27 +02:00
DebaucheryLibrarian
f36d0686a1 1.228.6 2023-06-19 03:56:07 +02:00
DebaucheryLibrarian
d6b44615a0 Allow HTML in disclaimer and announcement. 2023-06-19 03:56:05 +02:00
DebaucheryLibrarian
687d4aec08 1.228.5 2023-06-19 03:28:57 +02:00
DebaucheryLibrarian
18f75595da Added GraphiQL disable. 2023-06-19 03:28:55 +02:00
DebaucheryLibrarian
123d4155b4 1.228.4 2023-06-19 02:51:05 +02:00
DebaucheryLibrarian
b362f95790 Added pm2 ecosystem file. 2023-06-19 02:51:01 +02:00
DebaucheryLibrarian
34613a92c5 1.228.3 2023-06-19 01:45:47 +02:00
DebaucheryLibrarian
1766556c49 Added query timeout setting. 2023-06-19 01:45:45 +02:00
DebaucheryLibrarian
6bf7fc5655 1.228.2 2023-06-19 01:36:06 +02:00
DebaucheryLibrarian
7bfb08f524 Added header notice, 2023-06-19 01:36:04 +02:00
DebaucheryLibrarian
c4e77acdee 1.228.1 2023-06-19 01:25:33 +02:00
DebaucheryLibrarian
67c1bc6b1c Selecting parent and grantparent networks in entity releases filter. 2023-06-19 01:25:31 +02:00
DebaucheryLibrarian
4e6b098448 1.228.0 2023-06-19 00:39:03 +02:00
DebaucheryLibrarian
dbaddfb291 Merged database migrations. 2023-06-19 00:39:00 +02:00
DebaucheryLibrarian
85942c5d00 1.227.18 2023-06-18 02:29:12 +02:00
DebaucheryLibrarian
fe460f7441 Querying entity scenes from top level. 2023-06-18 02:29:10 +02:00
DebaucheryLibrarian
67365507b5 1.227.17 2023-06-18 02:12:14 +02:00
DebaucheryLibrarian
87a29baf8b Added stream ignore option. 2023-06-18 02:12:13 +02:00
DebaucheryLibrarian
2f4ac4e427 Removed default showcasing from entity showcase migration. 2023-06-17 23:33:15 +02:00
DebaucheryLibrarian
0056780dc4 1.227.16 2023-06-17 23:31:12 +02:00
DebaucheryLibrarian
013675d102 Improved showcase query. 2023-06-17 23:31:09 +02:00
DebaucheryLibrarian
236d4a9427 Fixed showcased not inserted in networks seed file. 2023-06-16 03:18:40 +02:00
DebaucheryLibrarian
22512833da Dsiabled showcase for entirey Nebraska Coeds network. 2023-06-16 03:17:03 +02:00
DebaucheryLibrarian
dc231527f3 Disabled showcase for Nebraska Coeds. 2023-06-16 03:14:38 +02:00
DebaucheryLibrarian
d4b0f2dc67 1.227.15 2023-06-16 02:29:03 +02:00
DebaucheryLibrarian
7723b2b698 Only curating release ID when present. 2023-06-16 02:29:01 +02:00
DebaucheryLibrarian
682f299c8f Added Milfy to Vixen. 2023-06-16 02:12:31 +02:00
DebaucheryLibrarian
c43bef544e 1.227.14 2023-06-16 00:47:23 +02:00
DebaucheryLibrarian
c4424f30ec Restored 'new' label client-side. 2023-06-16 00:47:19 +02:00
DebaucheryLibrarian
078837f276 1.227.13 2023-06-16 00:20:28 +02:00
DebaucheryLibrarian
6534692b73 Improved search efficiency. 2023-06-16 00:20:24 +02:00
DebaucheryLibrarian
20f82c4006 1.227.12 2023-06-15 19:53:44 +02:00
DebaucheryLibrarian
128f9950ec Prefer HTML over data titles for capitalization in Bang scraper. 2023-06-15 19:53:42 +02:00
DebaucheryLibrarian
c2c329e00a 1.227.11 2023-06-15 16:56:30 +02:00
DebaucheryLibrarian
5d3358ed91 Decoding HTML entities in title, description and location. 2023-06-15 16:56:27 +02:00
DebaucheryLibrarian
d7f9157424 1.227.10 2023-06-12 01:43:48 +02:00
DebaucheryLibrarian
f464563dae Added index on release tags table and temporarily removed 'new' label for performance. 2023-06-12 01:43:43 +02:00
DebaucheryLibrarian
828db2a8c8 1.227.9 2023-06-11 02:38:04 +02:00
DebaucheryLibrarian
bca865068a Fixed upcoming date sorting. 2023-06-11 02:38:02 +02:00
DebaucheryLibrarian
35245ca03f 1.227.8 2023-06-11 01:17:39 +02:00
DebaucheryLibrarian
bcc183d5b9 Using native stream promises for media stream retrieval. 2023-06-11 01:17:37 +02:00
DebaucheryLibrarian
433498eaed 1.227.7 2023-06-10 02:06:02 +02:00
DebaucheryLibrarian
80334843c9 Improved puppeteer bypass, enabled for Team Skeet. 2023-06-10 02:05:59 +02:00
DebaucheryLibrarian
09a48ed064 1.227.6 2023-06-10 00:46:41 +02:00
DebaucheryLibrarian
bae51dd59c Fixed poster query for old New Sensations scenes. 2023-06-10 00:46:38 +02:00
DebaucheryLibrarian
58175dce21 1.227.5 2023-06-09 00:33:42 +02:00
DebaucheryLibrarian
c4e4f649f5 Fixed New Sensations classic scraper breaking on missing actors. 2023-06-09 00:33:40 +02:00
DebaucheryLibrarian
bcd3c08faa Simplified stash routing. 2023-06-08 04:23:54 +02:00
DebaucheryLibrarian
0e656ea5ca 1.227.4 2023-06-08 04:19:40 +02:00
DebaucheryLibrarian
d847c58d24 Changed stash routing. 2023-06-08 04:19:37 +02:00
DebaucheryLibrarian
81f504f33e 1.227.3 2023-06-08 03:57:53 +02:00
DebaucheryLibrarian
914838e367 Curating usernames in sign-up and stash load tool. 2023-06-08 03:57:50 +02:00
DebaucheryLibrarian
1fc441670b Reduced stash load verbosity. 2023-06-08 03:48:29 +02:00
DebaucheryLibrarian
a16ca716da Warn instead of error when stash import user does not exist. 2023-06-08 03:42:26 +02:00
DebaucheryLibrarian
d0b19752e1 1.227.2 2023-06-08 03:22:48 +02:00
DebaucheryLibrarian
9c63b31dfa Fixed alert tool to transfer combinations. 2023-06-08 03:22:46 +02:00
DebaucheryLibrarian
9bdd3ff2f3 Added alert transfer tools to repo. 2023-06-08 02:37:39 +02:00
DebaucheryLibrarian
4429169166 1.227.1 2023-06-08 02:36:50 +02:00
DebaucheryLibrarian
3dbb74a1dc Added alert transfer tools. Removed stash and alert add-tiles in favor of more prominent heading buttons. 2023-06-08 02:36:47 +02:00
DebaucheryLibrarian
e7b72f5e99 Added filename to stash save. 2023-06-08 01:39:44 +02:00
DebaucheryLibrarian
5576fed590 Fixed existing stash selection in transfer tool. 2023-06-08 01:37:27 +02:00
DebaucheryLibrarian
aa0fd3cf48 1.227.0 2023-06-08 01:16:48 +02:00
DebaucheryLibrarian
56534800d8 Added stash transfer tool. 2023-06-08 01:16:44 +02:00
DebaucheryLibrarian
f7708e0740 1.226.11 2023-06-05 04:49:46 +02:00
DebaucheryLibrarian
e36ba59d27 Auto-recognizing m3u8 sources as stream. Fixed Bang Bros poster and trailer. 2023-06-05 04:49:44 +02:00
DebaucheryLibrarian
a99cee38a0 1.226.10 2023-06-05 03:32:28 +02:00
DebaucheryLibrarian
d3da2359de Refactored Bang! scraper, added My Stepdaughters Friend. 2023-06-05 03:32:24 +02:00
DebaucheryLibrarian
adda78f0c6 Refactored New Sensations scraper. 2023-06-05 02:13:36 +02:00
DebaucheryLibrarian
164757ee26 Matching URLs to entity using hostname rather than slug to minimize collisions. Fixed missing Cum Louder POV logo. 2023-06-04 21:50:59 +02:00
DebaucheryLibrarian
7e2840a00d 1.226.9 2023-06-04 04:17:06 +02:00
DebaucheryLibrarian
caf37ba9fb Transferring release media types separately to prevent race conditions. 2023-06-04 04:17:01 +02:00
DebaucheryLibrarian
042d3be4a9 1.226.8 2023-06-04 01:24:20 +02:00
DebaucheryLibrarian
18e91d54f1 Transfer tool finds existing media by source. 2023-06-04 01:24:18 +02:00
DebaucheryLibrarian
84c59bd05a Removed redundant description replace in transfer tool. 2023-06-04 01:20:38 +02:00
DebaucheryLibrarian
e0f7db8187 Improved skipped scene reporting in transfer tool. 2023-06-04 01:13:23 +02:00
DebaucheryLibrarian
13e38c487f Ignoring skipped scenes in final tally. 2023-06-04 01:05:59 +02:00
DebaucheryLibrarian
5b6911fd5c 1.226.7 2023-06-04 01:04:23 +02:00
DebaucheryLibrarian
33cab26d3b Fixed transfer status, moved media logging to debug level. 2023-06-04 01:04:21 +02:00
DebaucheryLibrarian
c9201430ea Logging index in transfer. 2023-06-04 00:58:35 +02:00
DebaucheryLibrarian
48eeac6d88 1.226.6 2023-06-04 00:49:23 +02:00
DebaucheryLibrarian
a4c82a377b Returning existing release ID in case new scene for existing movie was encountered. 2023-06-04 00:49:21 +02:00
DebaucheryLibrarian
421e8d0763 1.226.5 2023-06-04 00:42:31 +02:00
DebaucheryLibrarian
66f4244779 Logging skipped releases. 2023-06-04 00:42:29 +02:00
DebaucheryLibrarian
7fb832028e 1.226.4 2023-06-04 00:23:47 +02:00
DebaucheryLibrarian
54798f87da Improved duplicate media handling in transfer tool. 2023-06-04 00:23:45 +02:00
DebaucheryLibrarian
5ad5708e15 1.226.3 2023-06-03 22:41:18 +02:00
DebaucheryLibrarian
f356135722 Using line-separated JSON to save memory in transfer tool. 2023-06-03 22:41:15 +02:00
DebaucheryLibrarian
f3abc21482 1.226.2 2023-06-03 21:51:12 +02:00
DebaucheryLibrarian
5103a07e5f Accumulating boolean instead of full scene. 2023-06-03 21:51:09 +02:00
DebaucheryLibrarian
3fc63b1934 1.226.1 2023-06-03 02:51:45 +02:00
DebaucheryLibrarian
4b9a0e6bab Extended and improved transfer tool. Moved scenes up on movie page. 2023-06-03 02:51:42 +02:00
DebaucheryLibrarian
62617ec6bf 1.226.0 2023-05-31 00:30:00 +02:00
DebaucheryLibrarian
1b4d973e7b Added transfer tool, WIP. Added Savage Gangbang to Kink. 2023-05-31 00:29:54 +02:00
DebaucheryLibrarian
811c8e1c92 1.225.10 2023-04-06 01:29:03 +02:00
DebaucheryLibrarian
54b1c03a8d Added Fabulous Cash sites. 2023-04-06 01:28:59 +02:00
DebaucheryLibrarian
5448100b3b 1.225.9 2023-03-27 00:01:43 +02:00
DebaucheryLibrarian
1a24d39761 Updated MG session acquisition. 2023-03-27 00:01:38 +02:00
DebaucheryLibrarian
a7d094f0b6 Updatead AnalVids studios. 2023-03-19 17:31:47 +01:00
DebaucheryLibrarian
b3a77a7f7e Inverted showcased view. 2023-01-16 21:32:22 +01:00
DebaucheryLibrarian
542fbee85e Using showcase view in filter. 2023-01-16 16:49:47 +01:00
DebaucheryLibrarian
2076028697 1.225.8 2023-01-14 23:44:35 +01:00
DebaucheryLibrarian
b0692d78ac Improved showcase view. 2023-01-14 23:44:32 +01:00
DebaucheryLibrarian
2e2d8a15ac Using direct entity showcase filter again. Added higher quality Bang! Adventures logo. 2023-01-07 17:43:33 +01:00
DebaucheryLibrarian
5a3de19712 1.225.7 2023-01-07 17:22:21 +01:00
DebaucheryLibrarian
abfbb0f279 Restored showcased function with indexes. 2023-01-07 17:22:14 +01:00
DebaucheryLibrarian
97d9f5e373 1.225.6 2023-01-07 17:11:27 +01:00
DebaucheryLibrarian
f62a64c021 Added indeces on releases entity_id and studio_id, restored showcase query. 2023-01-07 17:11:25 +01:00
DebaucheryLibrarian
67f5ea9de8 Changed showcased query. 2023-01-04 02:48:37 +01:00
DebaucheryLibrarian
b6559331eb 1.225.5 2023-01-04 02:11:14 +01:00
DebaucheryLibrarian
c5201e37ee Moved showcase filter to computed column function. 2023-01-04 02:11:12 +01:00
DebaucheryLibrarian
156d1f2fbd 1.225.4 2023-01-03 23:32:55 +01:00
DebaucheryLibrarian
306744f415 Restored upcoming in Bang! scraper, added Bang! Adventures site. 2023-01-03 23:32:52 +01:00
DebaucheryLibrarian
5cda0f741d Added Kink Men to scrapers module. 2023-01-03 23:15:56 +01:00
DebaucheryLibrarian
eea74686c2 1.225.3 2023-01-02 00:54:13 +01:00
DebaucheryLibrarian
45715773f1 Updated Kink profile scraper. 2023-01-02 00:54:10 +01:00
DebaucheryLibrarian
eb759a0dec Fixed Kink Men Test Shoots slug. 2023-01-01 02:03:18 +01:00
DebaucheryLibrarian
5784178716 1.225.2 2022-12-31 17:50:42 +01:00
DebaucheryLibrarian
0d846c8871 Updated Kink channel inventory, separated Kink Men. 2022-12-31 17:50:39 +01:00
DebaucheryLibrarian
e8740f74ce 1.225.1 2022-12-29 23:07:13 +01:00
DebaucheryLibrarian
cd98b9d147 Changed deep merge so base release photos are only used when no deep photos are available. 2022-12-29 23:07:08 +01:00
DebaucheryLibrarian
16de5e2a2c Removed stray console log. 2022-12-29 00:17:20 +01:00
DebaucheryLibrarian
9dd3348535 Removed headless option from kink scraper. 2022-12-28 23:06:08 +01:00
DebaucheryLibrarian
5de26263d1 1.225.0 2022-12-28 01:34:14 +01:00
DebaucheryLibrarian
74214bc060 Added puppeteer to http module, refactored Kink scraper to utilize it. 2022-12-28 01:34:12 +01:00
DebaucheryLibrarian
17feadbc15 1.224.1 2022-12-15 23:22:55 +01:00
DebaucheryLibrarian
78b1bd2e48 Improved Love Her Films profile scraping. 2022-12-15 23:22:52 +01:00
DebaucheryLibrarian
97c641af4e 1.224.0 2022-11-28 05:46:02 +01:00
DebaucheryLibrarian
00b54b414d Scrolling release actors, added custom scroll bars. 2022-11-28 05:45:43 +01:00
DebaucheryLibrarian
732fc98704 1.223.0 2022-11-28 03:33:48 +01:00
DebaucheryLibrarian
b5e308562e Merged filters into new settings dialog, added experimental summary field. 2022-11-28 03:33:46 +01:00
DebaucheryLibrarian
637669e3d1 1.222.2 2022-11-27 04:54:01 +01:00
DebaucheryLibrarian
f7d28a7f43 Fixed entity and tag restriction in campaign component. 2022-11-27 04:53:59 +01:00
DebaucheryLibrarian
84f833ac31 1.222.1 2022-11-27 04:43:30 +01:00
DebaucheryLibrarian
114d7bdff4 Added scene avatars and improved HTML fallback to Bang! scraper. 2022-11-27 04:43:27 +01:00
DebaucheryLibrarian
6ab73bfd74 1.222.0 2022-11-27 04:23:04 +01:00
DebaucheryLibrarian
6edd62c337 Refactored Bang! scraper to match new website, first use of unprint. 2022-11-27 04:22:58 +01:00
DebaucheryLibrarian
3cf8776ca5 1.221.0 2022-10-25 23:13:26 +02:00
DebaucheryLibrarian
2943aea4d8 Added showcased migration. Added Love Her Films scraper. 2022-10-25 23:13:24 +02:00
DebaucheryLibrarian
9150aaeed6 1.220.0 2022-10-05 22:01:30 +02:00
DebaucheryLibrarian
a6905e4664 Added showcased column, hiding most LegalPorno/AnalVids studios. Refined Adult Time network structure. 2022-10-05 22:01:27 +02:00
DebaucheryLibrarian
b130e98430 1.219.0 2022-10-02 22:49:46 +02:00
DebaucheryLibrarian
463e0e1fe7 Added and restructured various Adult Time series and studios. 2022-10-02 22:49:38 +02:00
DebaucheryLibrarian
e15f00e086 1.218.0 2022-09-27 20:09:53 +02:00
DebaucheryLibrarian
0fc37e46d2 Fixed media module trying to fetch invalid source URLs. Added Accidental Gangbang to Adult Time. 2022-09-27 20:09:46 +02:00
DebaucheryLibrarian
3db8b80164 Added CF resolver to http module. Using priority lookup in tags seed. 2022-08-15 23:51:51 +02:00
DebaucheryLibrarian
b7fbcdec94 Added banners to repo. 2022-07-18 16:33:03 +02:00
DebaucheryLibrarian
704a5ee8db 1.217.3 2022-07-18 02:42:36 +02:00
DebaucheryLibrarian
cd187fac16 Added campaign retrieval function, added banner to homepage. 2022-07-18 02:42:30 +02:00
DebaucheryLibrarian
bb055e6ecc 1.217.2 2022-07-10 01:57:27 +02:00
DebaucheryLibrarian
01b37f087f Added native site support to Perv City scraper for DP Diva. 2022-07-10 01:57:24 +02:00
DebaucheryLibrarian
96e094ee88 1.217.1 2022-05-30 00:05:37 +02:00
DebaucheryLibrarian
85c73bad77 Improved MindGeek actor scraper. 2022-05-30 00:05:33 +02:00
DebaucheryLibrarian
587c111449 1.217.0 2022-05-29 21:10:46 +02:00
DebaucheryLibrarian
43d239a6ae Added Ricky's Room. 2022-05-29 21:10:44 +02:00
DebaucheryLibrarian
0fa36b17bf Refactored upcoming scenes in Vixen scraper. 2022-05-24 00:22:33 +02:00
DebaucheryLibrarian
1a92cd79f7 1.216.0 2022-05-15 23:28:59 +02:00
DebaucheryLibrarian
527112d5da Refactored Vixen scraper, moved XEmpire to generic Gamma scraper after site update, added BiPhoria. 2022-05-15 23:28:56 +02:00
DebaucheryLibrarian
0d8c92aac9 1.215.2 2022-04-10 21:51:24 +02:00
DebaucheryLibrarian
b9556c9c86 Set Kink rate limits, added method parameter for arbitrary requests. 2022-04-10 21:51:22 +02:00
DebaucheryLibrarian
8439631e2d 1.215.1 2022-04-07 23:22:41 +02:00
DebaucheryLibrarian
cc63cc652a Using network page for Dogfart sites without complete index. 2022-04-07 23:22:40 +02:00
DebaucheryLibrarian
7c46bdd495 1.215.0 2022-04-07 16:06:41 +02:00
DebaucheryLibrarian
1d84830423 Supporting JSON in scenes file. Added Dogfart link finding utility. 2022-04-07 16:06:38 +02:00
DebaucheryLibrarian
21a3bc44e6 1.214.2 2022-04-04 23:56:28 +02:00
DebaucheryLibrarian
b00b8f4a96 Using channel URL for Dogfart photos and network URL as fallback. 2022-04-04 23:56:26 +02:00
DebaucheryLibrarian
f1c9ac4207 1.214.1 2022-04-04 18:21:52 +02:00
DebaucheryLibrarian
0d95746689 Added update url parameter to Dogfart scraper. 2022-04-04 18:21:51 +02:00
DebaucheryLibrarian
430c7e124d 1.214.0 2022-04-04 00:23:40 +02:00
DebaucheryLibrarian
153f28c494 Added last login column to users table. 2022-04-04 00:23:37 +02:00
DebaucheryLibrarian
a586413240 1.213.9 2022-04-03 23:31:38 +02:00
DebaucheryLibrarian
25e0575c2b Fixed description query in Dogfart scraper. 2022-04-03 23:31:36 +02:00
DebaucheryLibrarian
acca75e2b5 1.213.8 2022-04-03 23:00:08 +02:00
DebaucheryLibrarian
5cbf122d6f Scraping Dogfart scenes from native sites. 2022-04-03 23:00:05 +02:00
DebaucheryLibrarian
08df432665 1.213.7 2022-04-03 01:29:18 +02:00
DebaucheryLibrarian
762b3984a3 Ignore join links for trailers in Dogfart scraper. 2022-04-03 01:29:16 +02:00
DebaucheryLibrarian
505ff0767c 1.213.6 2022-04-03 00:53:30 +02:00
DebaucheryLibrarian
9be80e2be9 Returning unextracted scenes from Kelly Madison / Teen Fidelity scraper. Fixed Dogfart profile scraper to use extract scenes. 2022-04-03 00:53:27 +02:00
DebaucheryLibrarian
e202e887f9 1.213.5 2022-04-03 00:49:42 +02:00
DebaucheryLibrarian
574c117ab0 Refactored Dogfart scraper to use qu and return unextracted scenes. 2022-04-03 00:49:39 +02:00
DebaucheryLibrarian
d59a57f311 1.213.4 2022-04-02 00:32:29 +02:00
DebaucheryLibrarian
5e499c3685 Added chunking to media duplicate queries to prevent overloading parameters. Added DP Diva to Perv City (coming soon). 2022-04-02 00:32:23 +02:00
DebaucheryLibrarian
17e5ce71b2 1.213.3 2022-03-31 23:01:56 +02:00
DebaucheryLibrarian
5352186319 Insex not fetching video when not required. 2022-03-31 23:01:54 +02:00
DebaucheryLibrarian
e9ba02d65d 1.213.2 2022-03-31 22:46:56 +02:00
DebaucheryLibrarian
39813d4461 Updated Insex scraper. 2022-03-31 22:46:54 +02:00
DebaucheryLibrarian
829a285a2d 1.213.1 2022-03-31 14:34:12 +02:00
DebaucheryLibrarian
a19a77e165 Optionalized qualities. 2022-03-31 14:34:10 +02:00
DebaucheryLibrarian
122dd3eaee 1.213.0 2022-03-31 14:11:23 +02:00
DebaucheryLibrarian
18b219850e Storing scene qualities. Updated Perv City scraper. 2022-03-31 14:11:13 +02:00
DebaucheryLibrarian
33a327a04b Merge branch 'master' into experimental 2022-03-30 23:00:29 +02:00
DebaucheryLibrarian
a46061e247 1.212.9 2022-03-30 16:11:09 +02:00
DebaucheryLibrarian
94e07ff23d Added Bang! Podcast channel. 2022-03-30 16:11:07 +02:00
DebaucheryLibrarian
4811befcf6 1.212.8 2022-03-30 15:45:51 +02:00
DebaucheryLibrarian
c455f02c66 Updated Men URLs. 2022-03-30 15:45:41 +02:00
DebaucheryLibrarian
efc5620a28 1.212.7 2022-03-30 01:17:56 +02:00
DebaucheryLibrarian
61123fdb6a Added Accept-Language header to MindGeek requests, seems to help with acquiring sessions. 2022-03-30 01:17:54 +02:00
DebaucheryLibrarian
3ec6911d46 1.212.6 2022-03-29 23:24:58 +02:00
DebaucheryLibrarian
2021093645 Marked Dane Jones and Lesbea as native sites. 2022-03-29 23:24:55 +02:00
DebaucheryLibrarian
1c72dc202f 1.212.5 2022-03-28 23:44:44 +02:00
DebaucheryLibrarian
1ef946fa77 Marked Mile High sites as native. 2022-03-28 23:44:42 +02:00
DebaucheryLibrarian
3b6bbc39ff 1.212.4 2022-03-28 20:05:28 +02:00
DebaucheryLibrarian
481c9feada Fixed missing scenes photos breaking album. 2022-03-28 20:05:25 +02:00
DebaucheryLibrarian
953b3e9568 1.212.3 2022-03-28 00:36:05 +02:00
DebaucheryLibrarian
bdd2e68f49 Fixed centering logic in banner. 2022-03-28 00:36:04 +02:00
DebaucheryLibrarian
e4cc349302 1.212.2 2022-03-28 00:32:00 +02:00
DebaucheryLibrarian
6547b93e55 Fixed broken scene photo length check in release banner. 2022-03-28 00:31:59 +02:00
DebaucheryLibrarian
bb9649d23b 1.212.1 2022-03-28 00:22:59 +02:00
DebaucheryLibrarian
9e2eaef9d1 Added dedicated serie photos table, renamed serie scene photo function. Fixed covers and scene photos in banner and album. 2022-03-28 00:22:57 +02:00
DebaucheryLibrarian
1c3ee75d3b 1.212.0 2022-03-27 23:42:06 +02:00
DebaucheryLibrarian
15c9af8057 Added dedicated movie photo table, renamed scene photo function. 2022-03-27 23:42:03 +02:00
DebaucheryLibrarian
295573c1ef 1.211.2 2022-03-27 00:27:29 +01:00
DebaucheryLibrarian
e93e8ace5c Added deep scene force parameter to MindGeek scraper. 2022-03-27 00:27:26 +01:00
DebaucheryLibrarian
43af7ba777 1.211.1 2022-03-26 17:56:24 +01:00
DebaucheryLibrarian
0dad5b0d68 Added series removal utils. 2022-03-26 17:56:22 +01:00
DebaucheryLibrarian
ae9b793318 1.211.0 2022-03-26 17:40:23 +01:00
DebaucheryLibrarian
fd8170f223 Added series. 2022-03-26 17:40:20 +01:00
DebaucheryLibrarian
661b8b716b 1.210.1 2022-03-09 23:26:50 +01:00
DebaucheryLibrarian
5ff076cac3 Added DP Star Sex Challenges to Digital Playground. 2022-03-09 23:26:48 +01:00
DebaucheryLibrarian
41c100ac4e 1.210.0 2022-03-04 23:32:28 +01:00
DebaucheryLibrarian
c6e977f842 Added movie support to MindGeek scraper. 2022-03-04 23:32:09 +01:00
DebaucheryLibrarian
50b7f521b5 1.209.5 2022-02-27 21:15:07 +01:00
DebaucheryLibrarian
f0d0ee3acc Removed redundant scenes path from Digital Playground main channel. 2022-02-27 21:15:05 +01:00
DebaucheryLibrarian
7b3bdadd44 1.209.4 2022-02-25 22:13:43 +01:00
DebaucheryLibrarian
5deba6b90f Passing resolved parameters into before-scrape methods. 2022-02-25 22:13:41 +01:00
DebaucheryLibrarian
a5afffc968 1.209.3 2022-02-25 00:00:21 +01:00
DebaucheryLibrarian
a239a5c593 Fixed entity scenes function for studios. Added triple anal tag alias. 2022-02-25 00:00:18 +01:00
DebaucheryLibrarian
e56e7333e3 1.209.2 2022-02-24 23:33:26 +01:00
DebaucheryLibrarian
d55e3c37cd Updated media seeds from LegalPorno to AnalVids. 2022-02-24 23:33:19 +01:00
DebaucheryLibrarian
97b78ea016 1.209.1 2022-02-24 23:30:49 +01:00
DebaucheryLibrarian
3e290b74dc Updated affiliates from LegalPorno to AnalVids. 2022-02-24 23:30:47 +01:00
DebaucheryLibrarian
65141207ae 1.209.0 2022-02-24 23:28:27 +01:00
DebaucheryLibrarian
17dfeac1af Renamed LegalPorno to AnalVids, added missing studios. 2022-02-24 23:28:24 +01:00
DebaucheryLibrarian
4a9c428d69 1.208.1 2022-02-24 22:43:01 +01:00
DebaucheryLibrarian
333f252099 Added BJ Raw to Radical. 2022-02-24 22:42:59 +01:00
DebaucheryLibrarian
38232f258a 1.208.0 2022-02-24 22:33:03 +01:00
DebaucheryLibrarian
582269cfaa Added Radical metadata layout scraper and the Got Filled and Inserted channels. 2022-02-24 22:33:00 +01:00
DebaucheryLibrarian
0b646429fd 1.207.5 2022-02-20 23:40:23 +01:00
DebaucheryLibrarian
fecef6c1cf Added missing MOFOS serie channels. 2022-02-20 23:40:20 +01:00
DebaucheryLibrarian
73e5404c44 1.207.4 2022-02-20 16:52:32 +01:00
DebaucheryLibrarian
690d2bb3ed Added MOFOS to default rate limit config, added light logos. 2022-02-20 16:52:29 +01:00
DebaucheryLibrarian
1dd935e1e9 1.207.3 2022-02-14 01:27:58 +01:00
DebaucheryLibrarian
8386230f33 Added missing Team Skeet sites. 2022-02-14 01:27:56 +01:00
DebaucheryLibrarian
5a68b06137 1.207.2 2022-02-13 01:34:41 +01:00
DebaucheryLibrarian
5918364cf5 Preventing unnecessary deep scrapes in Team Skeet scraper. 2022-02-13 01:34:39 +01:00
DebaucheryLibrarian
df4d860d35 1.207.1 2022-02-12 17:19:49 +01:00
DebaucheryLibrarian
d9f0db6e3c Fixed reading screen ID from non-existent item in Bang scraper. 2022-02-12 17:19:47 +01:00
DebaucheryLibrarian
7372b560b2 1.207.0 2022-02-12 17:16:26 +01:00
DebaucheryLibrarian
9d638c685c 1.206.12 2022-02-12 17:16:23 +01:00
DebaucheryLibrarian
5da1acc38d Added media resize. 2022-02-12 17:16:20 +01:00
DebaucheryLibrarian
c7c62e220d Removed console log from Bang scraper. 2022-02-12 16:22:41 +01:00
DebaucheryLibrarian
9edd652a2c 1.206.11 2022-02-12 16:22:03 +01:00
DebaucheryLibrarian
cde760c1ea Preventing Bang! scraper from redundant deep scraping when base release is available. 2022-02-12 16:22:00 +01:00
DebaucheryLibrarian
19c7f958e1 1.206.10 2022-02-12 03:26:43 +01:00
DebaucheryLibrarian
c7710afdbf Fixed Bang! scraped failing when scene has no photos. 2022-02-12 03:26:40 +01:00
DebaucheryLibrarian
ba18a3dadb 1.206.9 2022-02-11 22:14:46 +01:00
DebaucheryLibrarian
496c29e569 Configured Reality Kings to fetch session from RK scene overview. 2022-02-11 22:14:44 +01:00
DebaucheryLibrarian
98a72a4929 1.206.8 2022-02-09 00:19:56 +01:00
DebaucheryLibrarian
c4f0b48932 Fixed cover dimensions on movie tile to show lazy image, showing missing cover icon. 2022-02-09 00:19:54 +01:00
DebaucheryLibrarian
93abbab873 1.206.7 2022-02-08 23:59:48 +01:00
DebaucheryLibrarian
f7bbab08bd Added Porn Pros main channel and working URLs for Flexible Positions, Public Violations and Squirt Disgrace. Added bisexual tag photos. 2022-02-08 23:59:44 +01:00
DebaucheryLibrarian
1e4ddf2bbf 1.206.6 2022-02-08 00:19:36 +01:00
DebaucheryLibrarian
9b7879bff7 Removed channel ID from Gamma update query to prevent duplicate scenes. Added sexuality tags with covers to overview. 2022-02-08 00:19:34 +01:00
DebaucheryLibrarian
03d96d4dec 1.206.5 2022-02-07 22:29:11 +01:00
DebaucheryLibrarian
1dfa034332 Handling 'page not found' with 200 OK in Gamma scraper. 2022-02-07 22:29:09 +01:00
DebaucheryLibrarian
196a1d33e3 1.206.4 2022-02-07 22:16:46 +01:00
DebaucheryLibrarian
3d349c413f Fixed Adult Time scraper. 2022-02-07 22:16:43 +01:00
DebaucheryLibrarian
bd5babd37e 1.206.3 2022-02-07 21:58:31 +01:00
DebaucheryLibrarian
fffe9080f3 Added stand-alone Spizoo sites. 2022-02-07 21:58:27 +01:00
DebaucheryLibrarian
5630b16e99 1.206.2 2022-02-07 01:57:14 +01:00
DebaucheryLibrarian
4bcf7ef45b Storing associations if existing media are found. 2022-02-07 01:57:09 +01:00
DebaucheryLibrarian
9abc1d48ac 1.206.1 2022-02-05 17:14:37 +01:00
DebaucheryLibrarian
ceaf5a3217 Not storing shallow movie data when argument is disabled. 2022-02-05 17:14:34 +01:00
DebaucheryLibrarian
36d84fb98b 1.206.0 2022-02-03 00:04:51 +01:00
DebaucheryLibrarian
3d80e9d77b Added movie URL file support. Fixed Gamma movie API scraper movie URL. 2022-02-03 00:04:48 +01:00
DebaucheryLibrarian
1dc38ffacc 1.205.20 2022-02-02 23:53:44 +01:00
DebaucheryLibrarian
ee210b5c68 Replaced Gender X with Gender X Films, fixed Zero Tolerance movie URLs. 2022-02-02 23:53:42 +01:00
DebaucheryLibrarian
3aae3cd3a1 1.205.19 2022-02-02 23:51:20 +01:00
DebaucheryLibrarian
f1a7f2f905 Added Gamma movie API scraper. 2022-02-02 23:51:15 +01:00
DebaucheryLibrarian
0b7e0319f1 1.205.18 2022-02-02 22:25:06 +01:00
DebaucheryLibrarian
10b8abf706 Updated Zero Tolerance channel to Zero Tolerance Films. 2022-02-02 22:25:04 +01:00
DebaucheryLibrarian
b163223ff1 1.205.17 2022-02-01 21:18:58 +01:00
DebaucheryLibrarian
b9f3eb85f9 Ignoring Gamma master categories in update scrape as these seem to contain irrelevant tags. 2022-02-01 21:18:54 +01:00
DebaucheryLibrarian
285a65f018 1.205.16 2022-01-30 22:15:09 +01:00
DebaucheryLibrarian
815d56d334 Preventing media associations when use-reference is unavailable. 2022-01-30 22:15:07 +01:00
DebaucheryLibrarian
27a9a233e2 1.205.15 2022-01-30 17:05:20 +01:00
DebaucheryLibrarian
22864105ac Writing media associations to disk for debugging. 2022-01-30 17:05:18 +01:00
DebaucheryLibrarian
7cf47cbf8d 1.205.14 2022-01-30 00:18:17 +01:00
DebaucheryLibrarian
502c588958 Updated Bang Bros product ID for Haze Her, removed wrong ones. 2022-01-30 00:18:15 +01:00
DebaucheryLibrarian
81792a7c2f 1.205.13 2022-01-30 00:08:41 +01:00
DebaucheryLibrarian
784d326584 Updated Bang Bros product ID for College Rules. 2022-01-30 00:08:39 +01:00
DebaucheryLibrarian
83dc7aa578 1.205.12 2022-01-29 23:50:01 +01:00
DebaucheryLibrarian
5a3b27fbf7 Fixed movie cover index for overview in GraphQL query. 2022-01-29 23:49:59 +01:00
DebaucheryLibrarian
5ff83a9497 1.205.11 2022-01-29 23:39:13 +01:00
DebaucheryLibrarian
07cb39c756 Fixed movie cover index in GraphQL query. 2022-01-29 23:39:12 +01:00
DebaucheryLibrarian
fffd54995d 1.205.10 2022-01-29 17:13:13 +01:00
DebaucheryLibrarian
5302176f0b Re-added channel count to networks page. 2022-01-29 17:13:09 +01:00
DebaucheryLibrarian
efd7cf8acc 1.205.9 2022-01-29 16:38:42 +01:00
DebaucheryLibrarian
52218c30f8 Not fetching mobile Gamma page when photos are not expected. 2022-01-29 16:38:36 +01:00
DebaucheryLibrarian
04c176fa8b 1.205.8 2022-01-29 03:34:31 +01:00
DebaucheryLibrarian
af320684b4 Added Bang Bros sites. 2022-01-29 03:34:26 +01:00
DebaucheryLibrarian
b2ba14ce45 1.205.7 2022-01-29 02:39:17 +01:00
DebaucheryLibrarian
d776cc2f71 Added Abuse Me to Bang Bros network. 2022-01-29 02:39:14 +01:00
DebaucheryLibrarian
b4bed2f623 1.205.6 2022-01-29 01:21:45 +01:00
DebaucheryLibrarian
5c5a11fdca Added Bang Bros members page scraper (not for full scenes). 2022-01-29 01:21:41 +01:00
DebaucheryLibrarian
a22c62d893 1.205.5 2022-01-28 04:05:38 +01:00
DebaucheryLibrarian
90bc2f3724 Changed release media association existence check, added log for details. 2022-01-28 04:05:29 +01:00
DebaucheryLibrarian
8cdc794a3a 1.205.4 2022-01-26 13:52:41 +01:00
DebaucheryLibrarian
250618df8b Added entity scene count function. 2022-01-26 13:52:39 +01:00
DebaucheryLibrarian
b62ae00c54 1.205.3 2022-01-26 01:47:36 +01:00
DebaucheryLibrarian
67d0a9e0e0 Fixed scene entity tag association. 2022-01-26 01:47:34 +01:00
b4425bc3bb Merge pull request 'Add Facials4k' (#44) from boiii/traxxx:add-facials-4k into master
Reviewed-on: http://gitea.unknown.name/DebaucheryLibrarian/traxxx/pulls/44
2022-01-25 22:29:10 +00:00
d77c145de3 Update 'seeds/02_sites.js' 2022-01-25 20:56:11 +00:00
DebaucheryLibrarian
6753f923d9 1.205.2 2022-01-25 15:34:17 +01:00
DebaucheryLibrarian
452f725332 Switched poster URL preference in Gamma scraper to prevent cropped image on XEmpire. 2022-01-25 15:34:15 +01:00
DebaucheryLibrarian
7c1f45bcfb 1.205.1 2022-01-24 22:29:29 +01:00
DebaucheryLibrarian
11ea54f6e8 Fixed outdated alerts query. 2022-01-24 22:29:27 +01:00
DebaucheryLibrarian
5b623ee46f 1.205.0 2022-01-24 00:15:19 +01:00
DebaucheryLibrarian
7ceec1c739 Added indexes to scene tag and movie scene tables improve performance. Removed scene count from channel overview, too expensive. 2022-01-24 00:15:11 +01:00
DebaucheryLibrarian
fc318536aa 1.204.13 2022-01-23 02:46:44 +01:00
DebaucheryLibrarian
cd8f690ac6 Preferring network over channel in deep URL channel matching. 2022-01-23 02:46:42 +01:00
DebaucheryLibrarian
240a8e86fd 1.204.12 2022-01-22 23:20:10 +01:00
DebaucheryLibrarian
c557f0f1f0 Improved Gamma image sources to prevent cropped images. 2022-01-22 23:20:08 +01:00
DebaucheryLibrarian
86f56695e2 1.204.11 2022-01-20 00:54:13 +01:00
DebaucheryLibrarian
20da2d1cf6 Reusing batch ID for movies to preserve new-flag. 2022-01-20 00:54:10 +01:00
DebaucheryLibrarian
372db86927 Disabled MindGeek session bundling to analyze Too Many Requests errors. 2022-01-16 22:24:47 +01:00
DebaucheryLibrarian
4c503a3177 1.204.10 2022-01-16 17:17:49 +01:00
DebaucheryLibrarian
57d46f5842 Fixed latest query in Gamma scraper. 2022-01-16 17:17:45 +01:00
DebaucheryLibrarian
7f11d0ca91 1.204.9 2022-01-12 17:50:27 +01:00
DebaucheryLibrarian
bbd788699e Fixed GraphQL query for scenes REST API. Added entry ID to scene search document. 2022-01-12 17:50:23 +01:00
DebaucheryLibrarian
e24add98ea 1.204.8 2022-01-10 02:17:21 +01:00
DebaucheryLibrarian
506971b44b Chunked duplicate check to prevent postgres stack depth errors. 2022-01-10 02:17:17 +01:00
DebaucheryLibrarian
43a0bc8a2c 1.204.7 2022-01-07 01:07:43 +01:00
DebaucheryLibrarian
baebdbc0bb Adding comment listing sister sites for non-exclusive Gamma API scenes. 2022-01-07 01:07:41 +01:00
DebaucheryLibrarian
1c24cae3b1 1.204.6 2022-01-07 01:02:36 +01:00
DebaucheryLibrarian
b9146aee5f Removed exclusive filter from Evil Angel parameters. 2022-01-07 01:02:34 +01:00
DebaucheryLibrarian
09bfcb01f5 1.204.5 2022-01-06 01:41:29 +01:00
DebaucheryLibrarian
5d80b6dc21 Added and improved Reality Kings logos. Added tag photos. 2022-01-06 01:41:26 +01:00
DebaucheryLibrarian
140a38c349 1.204.4 2021-12-31 01:45:06 +01:00
DebaucheryLibrarian
6760c11881 Disabled why-is-node-running to assess OOM. 2021-12-31 01:45:03 +01:00
DebaucheryLibrarian
2dcdbf9c37 1.204.3 2021-12-27 22:36:03 +01:00
DebaucheryLibrarian
3b958a02ef Added memory profiler configuration options. 2021-12-27 22:36:01 +01:00
DebaucheryLibrarian
605242b399 1.204.2 2021-12-27 17:29:33 +01:00
DebaucheryLibrarian
299f257a01 Logging memory usage on media fetch. 2021-12-27 17:29:23 +01:00
DebaucheryLibrarian
0ad64ef5f4 1.204.1 2021-12-20 03:29:16 +01:00
DebaucheryLibrarian
3bfe1e8fdb Storing scenes before fetching movies. 2021-12-20 03:29:14 +01:00
DebaucheryLibrarian
7d992f4129 Added triggers to memory dump. 2021-12-20 02:28:59 +01:00
DebaucheryLibrarian
280032937f Added centralized movie page fetcher. Added memory heap dump. 2021-12-20 02:22:10 +01:00
DebaucheryLibrarian
d93670842b 1.204.0 2021-12-19 23:03:48 +01:00
DebaucheryLibrarian
dc187a9a3a Added execute method to qu, removed runScripts from Gamma's fetchMovie to observe effect on memory usage. 2021-12-19 23:03:44 +01:00
DebaucheryLibrarian
5f89c6e14c 1.203.13 2021-12-19 00:08:22 +01:00
DebaucheryLibrarian
9f10420eb9 Fixed tag search GraphQL query. 2021-12-19 00:08:21 +01:00
DebaucheryLibrarian
9568370132 1.203.12 2021-12-18 23:44:54 +01:00
DebaucheryLibrarian
1c0c30be11 Improved and re-enabled why-is-node-running logger. 2021-12-18 23:44:51 +01:00
DebaucheryLibrarian
cdb7dcd6e9 1.203.11 2021-12-18 23:22:38 +01:00
DebaucheryLibrarian
8e4be06675 Closing JSDOM window after deep scrapes in an attempt to save memory. 2021-12-18 23:22:35 +01:00
DebaucheryLibrarian
de7a8c756a 1.203.10 2021-12-13 01:20:04 +01:00
DebaucheryLibrarian
65e2b72c6a Fixed Gamma movie scraper failing when data object is not available. 2021-12-13 01:20:02 +01:00
DebaucheryLibrarian
523c36ecd4 1.203.9 2021-12-11 22:46:58 +01:00
DebaucheryLibrarian
5b5688438c Fixed Gamma movie scene query. Added tag photos. 2021-12-11 22:46:55 +01:00
DebaucheryLibrarian
4ca07631c7 1.203.8 2021-12-05 23:59:20 +01:00
DebaucheryLibrarian
ec4e7bc12a Updated Jules Jordan scraper for Sperm Swallowers and The Ass Factory. 2021-12-05 23:59:17 +01:00
DebaucheryLibrarian
26d15c0a6f Updated Jules Jordan scraper for Manuel Ferrara and Girl Girl. 2021-12-05 23:43:23 +01:00
DebaucheryLibrarian
a484396db4 Hiding scenes with missing dates from network overview. Using computed effective date column. 2021-12-05 23:29:27 +01:00
DebaucheryLibrarian
681db02784 1.203.7 2021-12-05 02:54:57 +01:00
DebaucheryLibrarian
e88554666c Reduced media concurrency to assess effect on memory. Moved qu context removal to deep scrape runner. Updated movie graphql queries. 2021-12-05 02:54:55 +01:00
DebaucheryLibrarian
9f37ec4cff 1.203.6 2021-12-04 00:32:31 +01:00
DebaucheryLibrarian
abd063a578 Removed window map from http module to prevent memory pile-up with update scraping. 2021-12-04 00:32:28 +01:00
DebaucheryLibrarian
883e57ce1f 1.203.5 2021-12-02 15:51:33 +01:00
DebaucheryLibrarian
ad04502a8c Added Radical favicons. 2021-12-02 15:51:30 +01:00
DebaucheryLibrarian
f65ed16842 1.203.4 2021-12-02 00:45:24 +01:00
DebaucheryLibrarian
1918dd4ad5 Removing query methods from XEmpire release. 2021-12-02 00:45:22 +01:00
DebaucheryLibrarian
3983d3464f 1.203.3 2021-12-01 23:44:27 +01:00
DebaucheryLibrarian
61daf5f037 Added debug log for jsdom window closing. 2021-12-01 23:44:25 +01:00
DebaucheryLibrarian
eafa144104 1.203.2 2021-12-01 23:39:11 +01:00
DebaucheryLibrarian
60c151ff6a Reduced deep scrape concurrency to 1. 2021-12-01 23:39:09 +01:00
DebaucheryLibrarian
c97d18fcf9 1.203.1 2021-12-01 23:30:12 +01:00
DebaucheryLibrarian
e41f9fa937 Added waitImmediate to deep scrape, reduced concurrency. 2021-12-01 23:30:10 +01:00
DebaucheryLibrarian
56a7fb0ad9 1.203.0 2021-12-01 17:26:34 +01:00
DebaucheryLibrarian
e29cbc9fea Closing JSDOM window after deep scrape in an attempt to save memory. Reduced deep scrape concurrency to 5. 2021-12-01 17:26:13 +01:00
DebaucheryLibrarian
08f725a0b6 1.202.3 2021-12-01 00:00:26 +01:00
DebaucheryLibrarian
b93a5715cb Updated Jules Jordan scraper for new update page layout. 2021-12-01 00:00:24 +01:00
DebaucheryLibrarian
2018d5c298 1.202.2 2021-11-29 02:49:12 +01:00
DebaucheryLibrarian
87094a9498 Replaced cheerio with qu in Gamma scraper. 2021-11-29 02:49:07 +01:00
DebaucheryLibrarian
53a1c697d0 1.202.1 2021-11-28 01:20:41 +01:00
DebaucheryLibrarian
f04eb72891 Added upcoming scraper to PurgatoryX. 2021-11-28 01:20:39 +01:00
DebaucheryLibrarian
dfeb0c08cf 1.202.0 2021-11-27 23:55:22 +01:00
DebaucheryLibrarian
9d7183ac69 Added PurgatoryX scraper. 2021-11-27 23:55:16 +01:00
DebaucheryLibrarian
2539e88f47 1.201.6 2021-11-22 02:51:55 +01:00
DebaucheryLibrarian
20d0d860d3 Fixed MindGeek scraper trying to acquire session from mindgeek.com 2021-11-22 02:51:52 +01:00
DebaucheryLibrarian
6b4aa64d74 Improved MindGeek scraper session check to prevent crash when network session isn't available yet. 2021-11-22 02:44:03 +01:00
DebaucheryLibrarian
c7b9ec7a4b 1.201.5 2021-11-21 00:47:34 +01:00
DebaucheryLibrarian
e81864ebde Removed verbose http queued output. 2021-11-21 00:47:32 +01:00
DebaucheryLibrarian
0305a22a24 Removed stray console log from media module. 2021-11-21 00:43:35 +01:00
DebaucheryLibrarian
a406eb584d 1.201.4 2021-11-21 00:41:15 +01:00
DebaucheryLibrarian
2be3ea9bbb Explicitly adding headers to http module result. 2021-11-21 00:41:12 +01:00
DebaucheryLibrarian
0a8a7ff9a5 1.201.3 2021-11-21 00:31:12 +01:00
DebaucheryLibrarian
98c103c625 Fixed uuid import. Changed fs rmdir to rm. 2021-11-21 00:31:09 +01:00
DebaucheryLibrarian
e0908a5f5e 1.201.2 2021-11-21 00:19:13 +01:00
DebaucheryLibrarian
f0b7678444 Fixed upsert failing on empty insert array due breaking Knex API change. 2021-11-21 00:19:10 +01:00
DebaucheryLibrarian
64e9efe095 1.201.1 2021-11-21 00:15:21 +01:00
DebaucheryLibrarian
ab29ab053e Increased tile heart button size. Hiding entity tile info under hover effect. 2021-11-21 00:15:19 +01:00
DebaucheryLibrarian
a5081bc7c9 Updated primary color. 2021-11-21 00:04:21 +01:00
DebaucheryLibrarian
da9c628f9b 1.201.0 2021-11-21 00:00:14 +01:00
DebaucheryLibrarian
26539b74a5 Updated dependencies. Added periodic memory logger. 2021-11-20 23:59:48 +01:00
DebaucheryLibrarian
ccb99e278c Added periodic memory logger. 2021-11-20 23:59:15 +01:00
DebaucheryLibrarian
a867817dc1 Improved scene tile scaling. 2021-10-31 01:00:12 +02:00
DebaucheryLibrarian
d1e05915b5 Tweaked scene and actor tile design, tags grid breakpoints. 2021-10-31 00:31:18 +02:00
DebaucheryLibrarian
b764fdec85 Showing scene and channel count on entity page and tile. 2021-10-30 22:41:58 +02:00
DebaucheryLibrarian
8322d43b09 1.200.2 2021-10-28 02:10:37 +02:00
DebaucheryLibrarian
29b8c5e38e Including unextracted scenes in date determination. 2021-10-28 02:10:30 +02:00
DebaucheryLibrarian
83dd233991 1.200.1 2021-10-28 02:00:04 +02:00
DebaucheryLibrarian
0864154a0e Added unextracted property to keep paginating when extracting scenes. 2021-10-28 01:59:53 +02:00
DebaucheryLibrarian
53357d4bd2 1.200.0 2021-10-27 17:19:33 +02:00
DebaucheryLibrarian
69bf98edf1 1.199.17 2021-10-27 17:19:30 +02:00
DebaucheryLibrarian
a22c4d5679 Added beforeNetwork hook, used by MindGeek. Added Filthy Kings to Gamma. 2021-10-27 17:19:23 +02:00
DebaucheryLibrarian
e5ad1648eb 1.199.16 2021-10-26 23:42:42 +02:00
DebaucheryLibrarian
100a35b4e8 Added before scene fetch method to prevent e.g. unnecessary session requests, moved scraper assignment to entity lookup. Removed channel URL hostname matching.. 2021-10-26 23:42:32 +02:00
DebaucheryLibrarian
6c5d4389fe Not parsing HTML with jsdom when using http module directly to save memory. Added loading ellipsis to release grid pages. 2021-10-25 02:06:24 +02:00
DebaucheryLibrarian
92f9ff4104 1.199.15 2021-10-20 01:47:04 +02:00
DebaucheryLibrarian
0e4fd12d70 Added more loggers to http module. 2021-10-20 01:46:56 +02:00
DebaucheryLibrarian
9040285ce5 1.199.14 2021-10-17 23:57:10 +02:00
DebaucheryLibrarian
972b15e72d Added memory profiling. 2021-10-17 23:56:49 +02:00
DebaucheryLibrarian
c1aea78496 1.199.13 2021-10-17 19:59:11 +02:00
DebaucheryLibrarian
49f891ba44 Ignoring 1-second scene duration from MindGeek API. 2021-10-17 19:59:05 +02:00
DebaucheryLibrarian
239057f1b6 1.199.12 2021-10-17 00:28:18 +02:00
DebaucheryLibrarian
167df35d37 Fixed tags module not dealing with empty releases or tags, added origin tag column to chapter tag table. 2021-10-17 00:28:13 +02:00
DebaucheryLibrarian
b1b2ad2111 1.199.11 2021-10-11 04:31:46 +02:00
DebaucheryLibrarian
f1ff662be2 Fixed tags seed file. 2021-10-11 04:31:40 +02:00
DebaucheryLibrarian
2418fec9c9 1.199.10 2021-10-11 02:16:58 +02:00
DebaucheryLibrarian
aaaa0a6afb Updated proxy list. 2021-10-11 02:16:51 +02:00
DebaucheryLibrarian
afe22003e1 1.199.9 2021-10-10 00:04:28 +02:00
DebaucheryLibrarian
b6ad2903f3 Storing original tags. 2021-10-10 00:04:21 +02:00
DebaucheryLibrarian
6c298cd639 1.199.8 2021-09-28 20:45:30 +02:00
DebaucheryLibrarian
dbff3e9539 Added Brad Montana. Added teaser link to trailer video. 2021-09-28 20:45:22 +02:00
DebaucheryLibrarian
fcc6b33d07 1.199.7 2021-09-17 04:28:54 +02:00
DebaucheryLibrarian
0224c26ca0 Fixed alert searches. Added Teen Mega World campaigns. 2021-09-17 04:28:48 +02:00
DebaucheryLibrarian
294f15e694 1.199.6 2021-09-17 03:30:58 +02:00
DebaucheryLibrarian
522584711b Added Teen Mega World scraper. 2021-09-17 03:30:49 +02:00
DebaucheryLibrarian
ae40f33283 Added Transfixed to Adult Time. 2021-09-16 16:57:14 +02:00
DebaucheryLibrarian
172e01c80e Added Score to default ignored networks. 2021-09-15 02:01:13 +02:00
DebaucheryLibrarian
901acf1390 1.199.5 2021-09-14 00:42:59 +02:00
DebaucheryLibrarian
a316da3083 Retrieving Spizoo trailers. 2021-09-14 00:42:51 +02:00
DebaucheryLibrarian
0b46e27497 1.199.4 2021-09-13 01:29:47 +02:00
DebaucheryLibrarian
b164c5dad7 Added Spizoo. 2021-09-13 01:29:39 +02:00
DebaucheryLibrarian
2d6b285817 1.199.3 2021-09-12 23:21:45 +02:00
DebaucheryLibrarian
65c79567d2 Added unstash buttons to non-favorites stash items 2021-09-12 23:21:39 +02:00
DebaucheryLibrarian
d3633f31ac 1.199.2 2021-09-12 00:33:30 +02:00
DebaucheryLibrarian
73a9a11aa6 Added favorites link to user menu. 2021-09-12 00:33:24 +02:00
DebaucheryLibrarian
c21bd8b01e 1.199.1 2021-09-12 00:24:42 +02:00
DebaucheryLibrarian
14f4d24872 Fixed movie stash hover color. Added secondary release date sorting on stashed releases. 2021-09-12 00:24:36 +02:00
DebaucheryLibrarian
731abc79ee 1.199.0 2021-09-12 00:05:47 +02:00
DebaucheryLibrarian
d542889827 Added sections and pagination to stash page. 2021-09-12 00:05:45 +02:00
DebaucheryLibrarian
8c5ef21459 1.198.11 2021-08-30 01:37:22 +02:00
DebaucheryLibrarian
7bfca9596d Appending movie title if scene title only contains 'scene x' 2021-08-30 01:37:19 +02:00
DebaucheryLibrarian
7bd858f96b Generalized Adult Empire subsite scraper, added West Coast Productions. 2021-08-30 01:13:32 +02:00
DebaucheryLibrarian
b8657cb6e6 1.198.10 2021-08-26 01:14:58 +02:00
DebaucheryLibrarian
69a7e8f13d Fixed PornDoe scraper. 2021-08-26 01:14:54 +02:00
DebaucheryLibrarian
23537e0243 Removed Gamma console logs. 2021-08-24 02:56:59 +02:00
DebaucheryLibrarian
546f778b1b 1.198.9 2021-08-24 02:56:03 +02:00
DebaucheryLibrarian
245f69a122 Fixed movie bindings. 2021-08-24 02:54:40 +02:00
DebaucheryLibrarian
c6f3f7a239 1.198.8 2021-08-23 02:38:18 +02:00
DebaucheryLibrarian
f0a6e80e5a Reset pagination on search, scroll into view when paginating search. 2021-08-23 02:38:16 +02:00
DebaucheryLibrarian
0cbb985945 1.198.7 2021-08-23 01:54:24 +02:00
DebaucheryLibrarian
bb384029ac Disabled eager searching except for entities. Updating movie search document on store. 2021-08-23 01:54:22 +02:00
DebaucheryLibrarian
85c6b581cb Fixed movie limit. 2021-08-23 01:45:18 +02:00
DebaucheryLibrarian
dd18644796 1.198.6 2021-08-23 01:44:32 +02:00
DebaucheryLibrarian
1628e41d09 Fixed actors and movies pagination scroll. 2021-08-23 01:44:30 +02:00
DebaucheryLibrarian
a77d8f4cea 1.198.5 2021-08-23 01:35:48 +02:00
DebaucheryLibrarian
0a4152b4b7 Fixed actor search query. 2021-08-23 01:35:46 +02:00
DebaucheryLibrarian
3fc4dc15df 1.198.4 2021-08-23 01:29:49 +02:00
DebaucheryLibrarian
4ee0dcef9b Added country filter for actors. 2021-08-23 01:29:46 +02:00
DebaucheryLibrarian
011482ac9d 1.198.3 2021-08-22 22:25:23 +02:00
DebaucheryLibrarian
6a8c9d89cb Using paginated full text search for movies, combined actor search and fetch to allow combining search with filters. 2021-08-22 22:25:20 +02:00
DebaucheryLibrarian
e0905ab8fc 1.198.2 2021-08-22 03:14:08 +02:00
DebaucheryLibrarian
eb1f8f86fd Added search to tags. 2021-08-22 03:14:02 +02:00
DebaucheryLibrarian
959b5d9d0e 1.198.1 2021-08-22 01:26:12 +02:00
DebaucheryLibrarian
0c19a026ef Replaced alphabet index with search bar on actors page. 2021-08-22 01:26:09 +02:00
DebaucheryLibrarian
b24973eb19 1.198.0 2021-08-22 00:40:27 +02:00
DebaucheryLibrarian
4b18867883 Added pagination and search to movies page. 2021-08-22 00:40:22 +02:00
DebaucheryLibrarian
5e292a0880 1.197.4 2021-08-17 19:25:14 +02:00
DebaucheryLibrarian
f00e37490c Finished Cum Louder scraper, updated Vixen scraper. Added tag posters. 2021-08-17 19:25:10 +02:00
DebaucheryLibrarian
715e44cf21 1.197.3 2021-08-15 16:56:00 +02:00
DebaucheryLibrarian
25d1c1b229 Fixed incomplete scene tile studio link breaking search. 2021-08-15 16:55:54 +02:00
DebaucheryLibrarian
094226eeb5 Added new LegalPorno/AnalVids studios. 2021-08-15 15:28:13 +02:00
DebaucheryLibrarian
b08cb46ae5 Removed stray console log. 2021-08-15 13:21:02 +02:00
DebaucheryLibrarian
6b88cf1040 1.197.2 2021-08-15 13:16:50 +02:00
DebaucheryLibrarian
aacfd1b29d Updated object-merge-advanced API use. 2021-08-15 13:16:48 +02:00
DebaucheryLibrarian
0427e1e276 1.197.1 2021-08-15 04:28:59 +02:00
DebaucheryLibrarian
ee33bd8e63 Upgraded object-merge-advanced. 2021-08-15 04:28:56 +02:00
DebaucheryLibrarian
25b8bd689e Rebuild. 2021-08-14 22:42:50 +02:00
DebaucheryLibrarian
b6468b03a7 1.197.0 2021-08-09 10:31:25 +02:00
DebaucheryLibrarian
a848d6991b Added Diabolic and Cum Louder, added content type expect option to media sources to fix Vixen thumbnails. 2021-08-09 10:31:12 +02:00
DebaucheryLibrarian
65c3053b49 Fixed affiliate seed flush order. 2021-07-12 01:48:01 +02:00
DebaucheryLibrarian
1d686d7e40 1.196.6 2021-07-12 01:41:22 +02:00
DebaucheryLibrarian
488d1082e4 Added parameter affiliates. 2021-07-12 01:41:18 +02:00
DebaucheryLibrarian
8967907893 1.196.5 2021-07-06 00:01:51 +02:00
DebaucheryLibrarian
e527a67dc1 Merge branch 'experimental' 2021-07-06 00:01:47 +02:00
DebaucheryLibrarian
6847ef690c Added Arch Angel, updated BAM Visions scraper to accomodate Arch Angel (different network, same unidentified CMS). 2021-07-06 00:01:44 +02:00
DebaucheryLibrarian
96a2125248 Added tag photos. 2021-07-05 15:54:37 +02:00
DebaucheryLibrarian
c5e4310a6b 1.196.4 2021-07-05 00:06:26 +02:00
DebaucheryLibrarian
23b41fc4f3 Fixed Bang scraper. Added Kink affiliate, tag photos. 2021-07-05 00:06:18 +02:00
DebaucheryLibrarian
4fb41a4c35 1.196.3 2021-06-28 18:45:46 +02:00
DebaucheryLibrarian
12c0e8e828 Fixed login link in sidebar. 2021-06-28 18:45:38 +02:00
DebaucheryLibrarian
dce27e985e 1.196.2 2021-06-28 05:13:48 +02:00
DebaucheryLibrarian
0a343dfa98 Improved campaign component, added various banners. 2021-06-28 05:13:41 +02:00
DebaucheryLibrarian
729ca0f968 1.196.1 2021-06-28 02:50:10 +02:00
DebaucheryLibrarian
385dfb9f75 Removed affiliate table in favor of direct campaign URLs. 2021-06-28 02:50:06 +02:00
DebaucheryLibrarian
afbae24f43 1.196.0 2021-06-28 00:05:32 +02:00
DebaucheryLibrarian
eb7009832a Added rudimentary affiliate banner setup. Separated login and signup disable. Added various tag photos. 2021-06-28 00:05:24 +02:00
DebaucheryLibrarian
d1480da076 Added effective date column. Changed warning page theme. 2021-06-19 18:09:58 +02:00
DebaucheryLibrarian
10a2731caf 1.195.0 2021-06-13 16:49:42 +02:00
DebaucheryLibrarian
ab1329dd67 Updating entity ID for rescraped scenes with network entry IDs enabled. 2021-06-13 16:49:27 +02:00
DebaucheryLibrarian
e9a0700742 Improved upcoming update query. 2021-06-06 01:09:32 +02:00
DebaucheryLibrarian
3f473589ad Using bulk insert utility for alert notifications to prevent duplicate errors (fixed). 2021-06-04 03:22:40 +02:00
DebaucheryLibrarian
7a44c7aaaa 1.194.1 2021-06-04 03:10:47 +02:00
DebaucheryLibrarian
bed329cd8c Using bulk insert utility for alert notifications to prevent duplicate errors. 2021-06-04 03:10:41 +02:00
DebaucheryLibrarian
011bb4efa3 1.194.0 2021-06-02 03:27:37 +02:00
DebaucheryLibrarian
c979173422 Rescraping upcoming scenes. Fixed language and scene deep scraping for Dorcel scraper. 2021-06-02 03:27:32 +02:00
DebaucheryLibrarian
42791c528e 1.193.3 2021-05-20 00:06:31 +02:00
DebaucheryLibrarian
c76c8054b9 Updated repository owner and address. 2021-05-20 00:06:28 +02:00
DebaucheryLibrarian
6107c7d0ef Added tag photos. 2021-05-19 23:27:36 +02:00
DebaucheryLibrarian
d0d045a2ab Fixed dark theme text color in alert search. 2021-05-15 22:55:50 +02:00
DebaucheryLibrarian
102e053021 Fixed missing lazy avatar from stash actor preview query. 2021-05-15 22:16:42 +02:00
DebaucheryLibrarian
ca0660c1cc Fixed see more notifications link not closing tooltip. 2021-05-15 22:04:32 +02:00
DebaucheryLibrarian
a4a05232db 1.193.2 2021-05-15 22:02:03 +02:00
DebaucheryLibrarian
0f8d5d4456 Fixed alert dialog button in notifications, fixed add tile padding on profile page. 2021-05-15 22:01:57 +02:00
DebaucheryLibrarian
478a2c4b48 Always showing alerts section on profile. 2021-05-15 20:38:16 +02:00
DebaucheryLibrarian
55e240e68d Re-added alerts to profile. 2021-05-15 03:49:27 +02:00
DebaucheryLibrarian
71b25774d0 Removed unused variable causing failed build. 2021-05-15 03:35:10 +02:00
DebaucheryLibrarian
1697728b2a Temporarily disabled alerts to address database issues. 2021-05-15 03:32:55 +02:00
DebaucheryLibrarian
4242efbd4c Patched user profile breaking when alerts can't be loaded. 2021-05-15 03:24:21 +02:00
DebaucheryLibrarian
0b825a61bb 1.193.1 2021-05-15 03:07:04 +02:00
DebaucheryLibrarian
7d974e6b89 Patched notifications to handle empty result. 2021-05-15 03:06:57 +02:00
DebaucheryLibrarian
ae1b9c0d73 Fixed v-deep selector in banner. 2021-05-15 02:55:24 +02:00
DebaucheryLibrarian
91ebcace0a 1.193.0 2021-05-15 02:51:59 +02:00
DebaucheryLibrarian
846b860c06 Hiding scene photos and trailers from guests. 2021-05-15 02:51:52 +02:00
DebaucheryLibrarian
83ed793e39 Added dedicated notifications page. 2021-05-09 00:23:10 +02:00
DebaucheryLibrarian
3f55b90ab8 Adding alerted scene to stashes. 2021-04-29 01:45:01 +02:00
DebaucheryLibrarian
4806b0aa41 Improved notifications design. 2021-04-27 04:41:22 +02:00
DebaucheryLibrarian
3b91493995 Using Tippy.js for directive tooltips. 2021-04-27 03:56:38 +02:00
DebaucheryLibrarian
8bf9fff7dc Triggering notifications for children of alert entities. Showing icons in alert entity search to distinguish networks and channels. 2021-04-26 00:48:31 +02:00
DebaucheryLibrarian
eed563e06f Updating video player when switching scene page. 2021-04-25 04:20:38 +02:00
DebaucheryLibrarian
fc1c2fc2f3 Added notification clear, improved notification styling. 2021-04-25 03:08:50 +02:00
DebaucheryLibrarian
f8a3bf6a64 Updated scene URLs in Vixen scraper. 2021-04-22 19:49:11 +02:00
DebaucheryLibrarian
c5e74c33b7 Improved alert notifications. 2021-04-22 19:44:23 +02:00
DebaucheryLibrarian
95f3b1c03a Added rudimentary notifications for set alerts. 2021-04-17 01:10:45 +02:00
DebaucheryLibrarian
0773a8019c Updated release search regex to exclude underscores. 2021-04-15 16:56:44 +02:00
DebaucheryLibrarian
1116e09af5 Added Discord link to footer. 2021-04-15 16:11:16 +02:00
DebaucheryLibrarian
52e215d3bc Added tag poster 2021-04-11 15:50:02 +02:00
DebaucheryLibrarian
7f25846d55 List alerts in profile 2021-04-05 00:48:03 +02:00
DebaucheryLibrarian
d36e52d5d1 Added row level security to alert tables. Added alerts to user query. 2021-04-04 22:52:54 +02:00
DebaucheryLibrarian
da0cbced15 Added alert dialog. Fixed image rotation EXIT data being discarded. 2021-04-04 21:52:19 +02:00
DebaucheryLibrarian
837fc98ad2 1.192.2 2021-03-29 23:58:49 +02:00
DebaucheryLibrarian
a0f41da80a Addressing CORS issues with video VR. 2021-03-29 23:58:41 +02:00
DebaucheryLibrarian
4a2d2ad996 1.192.1 2021-03-29 22:47:48 +02:00
DebaucheryLibrarian
010da8954b Fixed MYLF scraper failing when channel is missing, fixed profile measurement matching. Added MYLF Selects channel. 2021-03-29 22:47:43 +02:00
DebaucheryLibrarian
e643e0a924 1.192.0 2021-03-29 22:23:21 +02:00
DebaucheryLibrarian
c386a9098f Generalized Team Skeet scraper, added MYLF network and various Team Skeet partner channels. 2021-03-29 22:22:56 +02:00
DebaucheryLibrarian
d17dbf1b36 1.191.3 2021-03-26 01:47:58 +01:00
DebaucheryLibrarian
3961f83ef6 Fixed animated poster being overwritten as jpeg. 2021-03-26 01:47:40 +01:00
DebaucheryLibrarian
d0648b5006 Updated favicon manifest. 2021-03-24 21:49:24 +01:00
DebaucheryLibrarian
337b6c70f4 1.191.2 2021-03-24 19:47:33 +01:00
DebaucheryLibrarian
2cd007dae3 Updated favicon. 2021-03-24 19:47:25 +01:00
DebaucheryLibrarian
43e55446f7 1.191.1 2021-03-24 17:17:57 +01:00
DebaucheryLibrarian
f47be86df3 Added scroll events to inner content divs to sync tooltips with page. Including actor heart button on stash page. Fixed stash scene preview title overflow. 2021-03-24 17:17:51 +01:00
DebaucheryLibrarian
d5bf253011 1.191.0 2021-03-24 01:52:34 +01:00
DebaucheryLibrarian
093d447328 Added heart button to actor tiles. 2021-03-24 01:52:27 +01:00
DebaucheryLibrarian
e12de5ec00 1.190.6 2021-03-24 01:26:40 +01:00
DebaucheryLibrarian
a64b25eb51 Added heart button to search results. Changed warning page button design. 2021-03-24 01:26:33 +01:00
DebaucheryLibrarian
bbf058480f Added unused Wifey's World logos. 2021-03-23 21:05:03 +01:00
DebaucheryLibrarian
b2105c8fb0 Refined dark theme. 2021-03-23 20:37:20 +01:00
DebaucheryLibrarian
8ff5a8c5e1 1.190.5 2021-03-23 17:32:56 +01:00
DebaucheryLibrarian
98624c9954 Fixed text shadow in stash scene previews. 2021-03-23 17:32:50 +01:00
DebaucheryLibrarian
3b9e8e3cc3 1.190.4 2021-03-23 15:25:24 +01:00
DebaucheryLibrarian
193af9bab5 Fixed session options in http module. 2021-03-23 15:25:21 +01:00
DebaucheryLibrarian
b2ad031c54 Added tag photos. Removed brackets from actor filter range digits. 2021-03-22 00:35:55 +01:00
DebaucheryLibrarian
0419cc633b Using lazy image instead of full avatar for stash preview actors. 2021-03-21 17:28:46 +01:00
DebaucheryLibrarian
63143fb185 Fixed yet another missing S3 field in avatar query. 2021-03-21 17:23:15 +01:00
DebaucheryLibrarian
3f6ecfd92c Fixed another missing S3 field in avatar query. 2021-03-21 15:14:28 +01:00
DebaucheryLibrarian
a208c922f7 1.190.3 2021-03-21 14:22:37 +01:00
DebaucheryLibrarian
757d554e7b Fixed S3 missing from actor avatar queries. Improved stash button alignment. 2021-03-21 14:22:31 +01:00
DebaucheryLibrarian
74afc55dc6 Improved user page stash paddings. 2021-03-21 13:51:33 +01:00
DebaucheryLibrarian
29b0451608 Fixed actor tile lazy photo misalignment. 2021-03-21 13:45:49 +01:00
DebaucheryLibrarian
cfa1ed7a61 1.190.2 2021-03-21 04:34:09 +01:00
DebaucheryLibrarian
c70f500acc Fixed stashed check breaking on empty stashes in PostGraphile plugins. 2021-03-21 04:34:04 +01:00
DebaucheryLibrarian
76a5ccf3f6 1.190.1 2021-03-21 04:08:49 +01:00
DebaucheryLibrarian
35c28dede2 Fixed favorite status on scene tile. 2021-03-21 04:08:46 +01:00
DebaucheryLibrarian
11e043ca2e 1.190.0 2021-03-21 03:58:48 +01:00
DebaucheryLibrarian
7ac64c57ae Added extended heart button to actor component, fixed movie stash query. 2021-03-21 03:58:13 +01:00
DebaucheryLibrarian
9ff70e5578 Separated full heart button into component. 2021-03-21 03:46:59 +01:00
DebaucheryLibrarian
348aa91832 Added stash menu to release page, returning stashes from stash API to avoid reloading or local interpolation. 2021-03-21 03:23:58 +01:00
DebaucheryLibrarian
de5d104e1e Improved responsiveness of stash header. 2021-03-20 23:40:05 +01:00
DebaucheryLibrarian
565cf551f0 Added browse text to stash link to clarify link. 2021-03-20 23:27:53 +01:00
DebaucheryLibrarian
819d53fc2b Fixed dark theme for heart icons and stash scene previews. 2021-03-20 23:20:07 +01:00
DebaucheryLibrarian
67f22a6e08 Hiding remove stash icons from other users. 2021-03-20 23:07:47 +01:00
DebaucheryLibrarian
eee47111a6 Added delete stash icons and dialog. 2021-03-20 23:03:13 +01:00
DebaucheryLibrarian
07643870cd Updating stash button locally on actor and scene page. 2021-03-20 18:12:06 +01:00
DebaucheryLibrarian
bb949e0a3b Improved user page stash display on narrow pages. 2021-03-20 16:47:01 +01:00
DebaucheryLibrarian
a7cf3f689e Fixed actor photo width on profile page. 2021-03-20 03:36:16 +01:00
DebaucheryLibrarian
d4919016b6 1.189.1 2021-03-20 03:33:34 +01:00
DebaucheryLibrarian
67af9f2ea2 Using thumbnail width and height for release banner photos. Preventing user page from reloading when closing the add stash dialog without adding stash. 2021-03-20 03:33:29 +01:00
DebaucheryLibrarian
bb9d6ee8fc Added dialog to add stashes. 2021-03-20 03:22:08 +01:00
DebaucheryLibrarian
e88cf4e3f4 Separated user page stash component. 2021-03-20 02:49:17 +01:00
DebaucheryLibrarian
5577e4fee5 Improved user stash actor previews. 2021-03-20 02:34:49 +01:00
DebaucheryLibrarian
489d253a48 Using full header height for stash header items. 2021-03-20 02:29:52 +01:00
DebaucheryLibrarian
06e6d3940b Refreshing stash page when unstashing scene. Addressed stash preview overflowing on user page. 2021-03-20 02:23:24 +01:00
DebaucheryLibrarian
42a4fe581f 1.189.0 2021-03-20 02:15:37 +01:00
DebaucheryLibrarian
292faa1e48 Added public visibility toggle to stash page. 2021-03-20 02:15:31 +01:00
DebaucheryLibrarian
4bc6ff846d Added public visibility toggle to user page stashes. 2021-03-20 02:03:30 +01:00
DebaucheryLibrarian
011f10fba8 No longer reloading when stashing scene, immediately toggling heart locally and resetting on dispatch error. 2021-03-20 00:41:21 +01:00
DebaucheryLibrarian
d0e987a2aa 1.188.2 2021-03-20 00:16:26 +01:00
DebaucheryLibrarian
6e8af52237 Decreased subheader disclaimer padding. 2021-03-20 00:15:33 +01:00
DebaucheryLibrarian
e301e2184c Fixed undefined user ID in postgres function. Fixed and improved mobile alignment for new and stash icons on scene tile. 2021-03-20 00:12:12 +01:00
DebaucheryLibrarian
3b3f4a1f2d Added user links to sidebar. 2021-03-19 21:57:04 +01:00
DebaucheryLibrarian
c8ac8d6564 1.188.1 2021-03-19 04:19:02 +01:00
DebaucheryLibrarian
626cbc4fc5 Updating stash page when stashing scene. Improved layout. 2021-03-19 04:18:56 +01:00
DebaucheryLibrarian
fe2004b3da 1.188.0 2021-03-19 03:28:50 +01:00
DebaucheryLibrarian
fba4cbfb7b Improved scene tile stash icon shadow. 2021-03-19 03:28:44 +01:00
DebaucheryLibrarian
731a2792c5 Added favorite stash heart to scene tiles. 2021-03-19 03:27:48 +01:00
DebaucheryLibrarian
f3d55806d1 1.187.0 2021-03-19 02:36:40 +01:00
DebaucheryLibrarian
f0265c2f5d Added dedicated stash page. Using preview tiles for stashes on user page. 2021-03-19 02:36:31 +01:00
DebaucheryLibrarian
cc27f202af 1.186.3 2021-03-18 19:44:31 +01:00
DebaucheryLibrarian
41261adc76 Fixed filter dialog menu link. Improved disclaimer title wrapping. 2021-03-18 19:44:23 +01:00
DebaucheryLibrarian
1a9ded19c5 1.186.2 2021-03-18 04:36:09 +01:00
DebaucheryLibrarian
862a29bb6e Using thumbnail size instead of original photo size in image tags. 2021-03-18 04:36:04 +01:00
DebaucheryLibrarian
0a92586c53 1.186.1 2021-03-18 04:01:42 +01:00
DebaucheryLibrarian
90b3d8a4d6 Compacted warning page. 2021-03-18 04:01:35 +01:00
DebaucheryLibrarian
5a2e93e900 Added various tag photos and descriptions. 2021-03-17 05:11:17 +01:00
DebaucheryLibrarian
4e81a8a1d6 Fixed movie banner using wrong photo variable. 2021-03-17 02:12:56 +01:00
DebaucheryLibrarian
83d3621441 1.186.0 2021-03-17 02:09:43 +01:00
DebaucheryLibrarian
336b91c872 Refactored http timeout handling. 2021-03-17 02:09:34 +01:00
DebaucheryLibrarian
36a8adbd8c 1.185.1 2021-03-16 04:35:31 +01:00
DebaucheryLibrarian
586ff6d4bd Calculating tag photo dimensions in seed file, improved tag photo lazy loading. 2021-03-16 04:35:26 +01:00
DebaucheryLibrarian
6fef87b0f1 1.185.0 2021-03-16 04:12:29 +01:00
DebaucheryLibrarian
0d7a03f3e5 Allowing auth to be disabled in config. 2021-03-16 04:12:05 +01:00
DebaucheryLibrarian
1703e9a541 Moved http timeout cancelation before pipeline to prevent large files from getting canceled. 2021-03-16 03:59:36 +01:00
DebaucheryLibrarian
ece9569d66 Improved content reflow for lazy loading scene banner. 2021-03-16 03:55:20 +01:00
DebaucheryLibrarian
3bebf5bf51 Added tag photos. 2021-03-16 02:31:23 +01:00
DebaucheryLibrarian
398161b03b Added rudimentary timeline to display tag chapters. 2021-03-15 04:59:08 +01:00
DebaucheryLibrarian
1fb7d384fb Merge branch 'master' into experimental 2021-03-15 04:16:36 +01:00
DebaucheryLibrarian
7c7b38e869 Inserting user ID to PostGraphile if available. 2021-03-15 04:16:32 +01:00
DebaucheryLibrarian
8e06d465cb Changed example database users. 2021-03-15 04:15:00 +01:00
DebaucheryLibrarian
a0be8f0aa3 Accounting for missing options in http utility timeout function. 2021-03-15 04:13:09 +01:00
DebaucheryLibrarian
41d06f7e9d 1.184.2 2021-03-15 04:11:17 +01:00
DebaucheryLibrarian
cb447da7d0 Added harder timeouts to http utility. Split owner and query database users. 2021-03-15 04:11:14 +01:00
DebaucheryLibrarian
77b40817f2 Added favorites button to actor page. 2021-03-15 03:30:47 +01:00
DebaucheryLibrarian
e371e9725a Added stashes with experimental row security policies. Added tag photos. 2021-03-14 04:54:53 +01:00
DebaucheryLibrarian
816529b0ca Added user sign up and login. 2021-03-13 04:26:24 +01:00
DebaucheryLibrarian
99cfd3dc3f 1.184.1 2021-03-11 16:45:02 +01:00
DebaucheryLibrarian
7c4b9063a7 Centered actor lazy avatar, fixed tag favicon size on mobile. 2021-03-11 16:44:59 +01:00
DebaucheryLibrarian
e2e29a8dbb 1.184.0 2021-03-11 15:53:58 +01:00
DebaucheryLibrarian
66ffa420f8 Merge branch 'experimental' 2021-03-11 15:53:45 +01:00
DebaucheryLibrarian
c33f193a0c Added tag photos. 2021-03-11 15:53:37 +01:00
DebaucheryLibrarian
00c06778ef Only scraping profile source matching actor entity, changed avatar entropy cut-off from 6 to 5.5. 2021-03-11 04:16:59 +01:00
DebaucheryLibrarian
1aab492f38 1.183.0 2021-03-10 04:14:03 +01:00
DebaucheryLibrarian
7f53f585c0 Added tag photos. 2021-03-10 04:13:41 +01:00
DebaucheryLibrarian
5db5d0c7ed Rearranged tag photos in seed file for easier maintenance. 2021-03-10 00:20:50 +01:00
DebaucheryLibrarian
74fcd24a8d Added tag photos. Changed default tag fake to enhanced. 2021-03-10 00:00:50 +01:00
DebaucheryLibrarian
6b8ed89566 1.182.3 2021-03-08 01:26:30 +01:00
DebaucheryLibrarian
0c115e78e2 Updated bhttp. 2021-03-08 01:26:24 +01:00
DebaucheryLibrarian
c7b5611d68 Tag photos. 2021-03-08 01:23:33 +01:00
DebaucheryLibrarian
18684a16eb 1.182.2 2021-03-08 01:07:03 +01:00
DebaucheryLibrarian
a71752b18b Associating directors separately from actors. Added tag photos. 2021-03-08 01:06:57 +01:00
DebaucheryLibrarian
6a9d725633 1.182.1 2021-03-07 20:14:08 +01:00
DebaucheryLibrarian
63ecd3b568 Fixed logo hiding in tag album. Full comment bar links to channel. 2021-03-07 20:14:02 +01:00
DebaucheryLibrarian
1f9963075c Fixed tag descriptions. 2021-03-07 20:05:55 +01:00
DebaucheryLibrarian
d60da3c99e 1.182.0 2021-03-07 20:01:03 +01:00
DebaucheryLibrarian
f91437e03c Fixed SFW determination in image path function. 2021-03-07 20:00:57 +01:00
DebaucheryLibrarian
44523609c1 Removed entity name from tag photo description and appending it dynamically. 2021-03-07 19:47:06 +01:00
DebaucheryLibrarian
de460f53b1 Changed album close behavior so album can be closed when visiting URL directly. 2021-03-07 16:54:20 +01:00
DebaucheryLibrarian
a275d0c855 Smaller tag logo on small displays. Centering tag tile lazy image to prevent load jumps. Including SASS breakpoint variable file automatically. 2021-03-07 16:39:54 +01:00
DebaucheryLibrarian
35cd449e79 1.181.2 2021-03-07 05:11:38 +01:00
DebaucheryLibrarian
e67f029d53 Added various tag photos. 2021-03-07 05:11:27 +01:00
DebaucheryLibrarian
3389dddd08 Added logos to tag photos. 2021-03-07 04:05:25 +01:00
DebaucheryLibrarian
7522404abb 1.181.1 2021-03-07 02:09:45 +01:00
DebaucheryLibrarian
44bb9b33d9 Added intermittent process report to debug freezes. Removed original images. 2021-03-07 02:09:37 +01:00
DebaucheryLibrarian
4a9adbf588 1.181.0 2021-03-07 00:01:09 +01:00
DebaucheryLibrarian
17e6f5a5da Storing directors. 2021-03-07 00:01:02 +01:00
DebaucheryLibrarian
9ae113ab92 Added tag photo. 2021-03-06 04:40:01 +01:00
DebaucheryLibrarian
cd93615b39 1.180.10 2021-03-04 03:24:17 +01:00
DebaucheryLibrarian
fa30fe5169 Added various conditions to prevent errors and warnings. 2021-03-04 02:35:43 +01:00
DebaucheryLibrarian
0c98df232e 1.180.9 2021-03-04 00:31:37 +01:00
DebaucheryLibrarian
254e933740 Added permanent filter for invalid actor associations. 2021-03-04 00:31:31 +01:00
DebaucheryLibrarian
ed7bffd2d6 1.180.8 2021-03-03 23:54:59 +01:00
DebaucheryLibrarian
721e6494cf Added date of birth filter. 2021-03-03 23:54:54 +01:00
DebaucheryLibrarian
96f9c8f01d Only filtering on age when date of birth is not available. 2021-03-03 22:28:52 +01:00
DebaucheryLibrarian
e9ed23abe4 1.180.7 2021-03-03 22:23:53 +01:00
DebaucheryLibrarian
4a963885bc Using range component for all actor range filters. 2021-03-03 22:23:46 +01:00
DebaucheryLibrarian
5c6b5a0668 Added filter range component. Added age filter. 2021-03-03 21:53:10 +01:00
DebaucheryLibrarian
fc6de64311 1.180.6 2021-03-03 20:27:50 +01:00
DebaucheryLibrarian
d94e0ac8fc Highlighting filter trigger when filter is applied. Using binary number as query boolean. 2021-03-03 20:27:45 +01:00
DebaucheryLibrarian
6742bf7d48 Improved range track click position and actor height range. 2021-03-03 19:29:40 +01:00
DebaucheryLibrarian
2cda689b3c 1.180.5 2021-03-03 19:22:03 +01:00
DebaucheryLibrarian
7ae55db7f4 Scoped disclaimer styling. 2021-03-03 19:21:56 +01:00
DebaucheryLibrarian
4d49737536 Added icons. 2021-03-03 19:15:10 +01:00
DebaucheryLibrarian
8ac8e21d78 1.180.4 2021-03-03 19:13:16 +01:00
DebaucheryLibrarian
21ec821b8c Improved actor filter layout and behavior. 2021-03-03 19:13:09 +01:00
DebaucheryLibrarian
74e33303ed Added height and weight filters to actors overview. 2021-03-03 16:47:57 +01:00
DebaucheryLibrarian
cdb47066cc Blocking range track clicks through thumbs. 2021-03-03 14:54:51 +01:00
DebaucheryLibrarian
cf4978b37f Emitting value after clicking range track. 2021-03-03 14:50:02 +01:00
DebaucheryLibrarian
abe56d1207 1.180.3 2021-03-03 14:48:09 +01:00
DebaucheryLibrarian
370f0e784c Allowing input on range track. 2021-03-03 14:48:04 +01:00
DebaucheryLibrarian
780993eb63 Added debug log for actor associations. 2021-03-03 13:56:50 +01:00
DebaucheryLibrarian
9909bbeba5 Extended cup size filter range. 2021-03-03 13:53:18 +01:00
DebaucheryLibrarian
c2779658c6 1.180.2 2021-03-03 13:47:33 +01:00
DebaucheryLibrarian
2f401765b6 Improved cup size query. 2021-03-03 13:47:27 +01:00
DebaucheryLibrarian
0124561686 1.180.1 2021-03-03 04:08:20 +01:00
DebaucheryLibrarian
07bc49604e Improved threeway toggle design. 2021-03-03 04:05:27 +01:00
DebaucheryLibrarian
25ec52f53e 1.180.0 2021-03-03 02:18:44 +01:00
DebaucheryLibrarian
e3b1934653 Added double thumb slider for boob size. 2021-03-03 02:18:36 +01:00
DebaucheryLibrarian
4e6f19d620 1.179.1 2021-03-02 02:30:52 +01:00
DebaucheryLibrarian
408066aba0 Added working minimum cup size slider. 2021-03-02 02:30:44 +01:00
DebaucheryLibrarian
d6bebd8fec Fixed slider radius. 2021-03-01 19:45:29 +01:00
DebaucheryLibrarian
b64c7ddc96 1.179.0 2021-03-01 02:42:12 +01:00
DebaucheryLibrarian
c2ec4c15e3 Added basic filter for actor boob size. 2021-03-01 02:41:53 +01:00
DebaucheryLibrarian
357b0287b2 1.178.0 2021-02-28 03:39:02 +01:00
DebaucheryLibrarian
eca24a7c65 Added WP boob filter to actors page. 2021-02-28 03:38:54 +01:00
DebaucheryLibrarian
46a3906bde 1.177.2 2021-02-27 22:46:59 +01:00
DebaucheryLibrarian
90ca08d8ac Improved release search function to match and concat words instead of escape characters. 2021-02-27 22:46:52 +01:00
DebaucheryLibrarian
8eebcae85d Using direct parent as release actor entity instead of highest parent. 2021-02-27 21:59:33 +01:00
DebaucheryLibrarian
e095d8317b 1.177.1 2021-02-27 18:05:14 +01:00
DebaucheryLibrarian
c2a008afbe Added mimetype check to teasers and trailers. Added chapters to MindGeek scraper, fixed scene ID extraction getting stuck on numbers in domain name. Ordering chapters by timestamp. 2021-02-27 18:05:06 +01:00
DebaucheryLibrarian
a45c5f8f37 Added tags to chapters in API. 2021-02-27 17:19:07 +01:00
DebaucheryLibrarian
e55bc1ef33 Re-added trailer to scene API query. 2021-02-27 04:05:38 +01:00
DebaucheryLibrarian
e60153ad01 Curating chapter media. 2021-02-27 03:57:37 +01:00
DebaucheryLibrarian
cdea877024 1.177.0 2021-02-27 03:52:33 +01:00
DebaucheryLibrarian
2deed3a7eb Added internal GraphQL client, using GraphQL for scenes API. 2021-02-27 03:52:27 +01:00
DebaucheryLibrarian
162e5c2181 1.176.0 2021-02-27 00:39:05 +01:00
DebaucheryLibrarian
bb20659934 Refactored clips into chapters. 2021-02-27 00:37:22 +01:00
DebaucheryLibrarian
0eba0461c9 Added error handler to web server. 2021-02-26 19:39:48 +01:00
DebaucheryLibrarian
f018735052 Added relevance filter to search REST API. 2021-02-26 17:29:02 +01:00
DebaucheryLibrarian
0265ad35c9 1.175.4 2021-02-26 17:22:59 +01:00
DebaucheryLibrarian
4ca6c37cc8 Added relevance to REST release search API, sorting by relevance rank. Improved search result table column naming. 2021-02-26 17:22:54 +01:00
DebaucheryLibrarian
5c028e75a7 1.175.3 2021-02-26 04:31:17 +01:00
DebaucheryLibrarian
34608fe0d7 Added tag photos. 2021-02-26 04:31:08 +01:00
DebaucheryLibrarian
772fef5ff8 Hiding empty search sections. 2021-02-26 03:04:09 +01:00
DebaucheryLibrarian
8641651a55 1.175.2 2021-02-26 02:52:44 +01:00
DebaucheryLibrarian
20129eca5d Fixed Bang scraper. 2021-02-26 02:52:39 +01:00
DebaucheryLibrarian
16a5d92efe 1.175.1 2021-02-26 01:52:33 +01:00
DebaucheryLibrarian
bb9fbc77a9 Removed PG stop word dictionary. Filtering and ordering search results in GraphQL query. 2021-02-26 01:52:28 +01:00
DebaucheryLibrarian
3310236767 1.175.0 2021-02-26 01:33:40 +01:00
DebaucheryLibrarian
1b3bf01ed7 Updated search query function to include ranking. 2021-02-26 01:33:33 +01:00
DebaucheryLibrarian
85372581bd 1.174.2 2021-02-25 15:59:01 +01:00
DebaucheryLibrarian
b4129891dc Improved query curation in release search function. 2021-02-25 15:58:54 +01:00
DebaucheryLibrarian
342d8da29b Fixed wrong rank query. 2021-02-25 03:01:23 +01:00
DebaucheryLibrarian
887bc003e6 1.174.1 2021-02-25 02:56:22 +01:00
DebaucheryLibrarian
2b76dcd15f Fixed search graphql query for S3. 2021-02-25 02:56:16 +01:00
DebaucheryLibrarian
1eb5451060 1.174.0 2021-02-25 02:52:51 +01:00
DebaucheryLibrarian
7818328378 Refactored PG search function to allow superflous words in search query. 2021-02-25 02:52:45 +01:00
DebaucheryLibrarian
3ad1f3d1e3 1.173.6 2021-02-24 13:55:46 +01:00
DebaucheryLibrarian
312c8903e4 Fixed tag scene order. 2021-02-24 13:55:40 +01:00
DebaucheryLibrarian
fe59b23c84 1.173.5 2021-02-24 03:56:31 +01:00
DebaucheryLibrarian
07201c6563 Added S3 field for release actors. 2021-02-24 03:56:20 +01:00
DebaucheryLibrarian
6b2a66cf72 Fixed banner background path. 2021-02-24 03:23:03 +01:00
DebaucheryLibrarian
fe3f820d33 1.173.4 2021-02-24 02:43:39 +01:00
DebaucheryLibrarian
fb2217a733 Preventing actor entry ID from being inserted without entity ID. 2021-02-24 02:43:34 +01:00
DebaucheryLibrarian
af131f903e 1.173.3 2021-02-23 16:47:36 +01:00
DebaucheryLibrarian
736a15958a Fixed poster link in banner. 2021-02-23 16:47:34 +01:00
DebaucheryLibrarian
ff862dbff9 Removed debug log. 2021-02-23 04:10:03 +01:00
DebaucheryLibrarian
fae288633c Catching actor association errors so it does not inhibit media association. 2021-02-23 04:09:33 +01:00
DebaucheryLibrarian
f44cb8bf4c Merge branch 'master' into experimental 2021-02-23 03:36:56 +01:00
DebaucheryLibrarian
c32a5d2930 Added debug log for actor entries. 2021-02-23 03:36:48 +01:00
DebaucheryLibrarian
2775b593ab Updated node-sass and sass-loader. 2021-02-23 02:33:16 +01:00
DebaucheryLibrarian
50627f08b4 Updated sharp. 2021-02-23 02:21:25 +01:00
DebaucheryLibrarian
e6e163b733 1.173.2 2021-02-23 02:08:12 +01:00
DebaucheryLibrarian
39d8b0a17f Replaced eslint-loader with eslint-webpack-plugin. 2021-02-23 02:08:10 +01:00
DebaucheryLibrarian
29765f488b 1.173.1 2021-02-23 01:49:46 +01:00
DebaucheryLibrarian
44c12a0654 Removed TensorFlow from dependencies. 2021-02-23 01:49:43 +01:00
DebaucheryLibrarian
2fa48abb62 1.173.0 2021-02-23 01:31:09 +01:00
DebaucheryLibrarian
2b5aac7633 Fixed S3 display support for movies. 2021-02-23 01:30:38 +01:00
DebaucheryLibrarian
c1829c64c2 Not using media hash subdirs for S3 uploads. Updated video player for S3. 2021-02-23 00:54:19 +01:00
DebaucheryLibrarian
e9603ecec9 Removed S3 address from default config. 2021-02-22 03:16:44 +01:00
DebaucheryLibrarian
37e39dc1ec Added S3 support for media files. Fixed MindGeek scraper for new poster data structure. 2021-02-22 02:33:39 +01:00
DebaucheryLibrarian
9a65d8c0eb Merge branch 'master' into wasabi 2021-02-21 23:00:00 +01:00
DebaucheryLibrarian
c1c58f659d 1.172.3 2021-02-21 22:58:54 +01:00
DebaucheryLibrarian
b79e75349c Fixed indentation. 2021-02-21 22:58:46 +01:00
DebaucheryLibrarian
c0347eed50 1.172.2 2021-02-21 22:17:32 +01:00
DebaucheryLibrarian
8a739893ea Improved duplicate handling. Added tag photos. 2021-02-21 22:17:25 +01:00
DebaucheryLibrarian
a39750d808 Fixed Nubiles deep scrape date. 2021-02-20 01:16:09 +01:00
DebaucheryLibrarian
f310fec869 Added S3 experiment. 2021-02-20 01:12:44 +01:00
DebaucheryLibrarian
39e2abd80a Removed legacy comment. 2021-02-19 00:45:27 +01:00
DebaucheryLibrarian
3ad9a359f4 1.172.1 2021-02-18 04:44:13 +01:00
DebaucheryLibrarian
5e2909c531 Fixed actor unique index preventing multiple actors with the same slug on a different network. Changed scene delete query to be able to handle more scene IDs. 2021-02-18 04:44:04 +01:00
DebaucheryLibrarian
58c01bdfcf 1.172.0 2021-02-17 00:40:27 +01:00
DebaucheryLibrarian
c51cd080fa Improved actor mapping in release associations. Storing alias ID in actor release association. 2021-02-17 00:40:20 +01:00
DebaucheryLibrarian
3469da674a Fixed PornCZ video query. 2021-02-16 19:53:32 +01:00
DebaucheryLibrarian
67055bf920 Improved actor entity and entry ID storage. 2021-02-16 03:37:52 +01:00
DebaucheryLibrarian
b26a029f66 1.171.1 2021-02-14 14:31:38 +01:00
DebaucheryLibrarian
8a7baa02c1 Improved date query for upcoming scenes in ElevatedX scraper. 2021-02-14 14:31:33 +01:00
DebaucheryLibrarian
e39afa8b39 1.171.0 2021-02-14 01:53:10 +01:00
DebaucheryLibrarian
372b5da704 Moved all of ExploitedX and Nebraska Coeds into generic ElevatedX scraper. 2021-02-14 01:53:03 +01:00
DebaucheryLibrarian
f79505f3f6 Added generic ElevatedX scraper. Changed FCUK to ExploitedX network. Testing ElevatedX scraper with ExploitedX network. 2021-02-13 04:49:00 +01:00
DebaucheryLibrarian
4c306effb7 1.170.1 2021-02-13 00:30:53 +01:00
DebaucheryLibrarian
fbbbd99d3d Properly iterating through aliases in actor profile. 2021-02-13 00:30:49 +01:00
DebaucheryLibrarian
24ea7e0c5c 1.170.0 2021-02-11 02:02:04 +01:00
DebaucheryLibrarian
d80dd67ad0 Fixed trailer width in release banner. 2021-02-11 02:01:48 +01:00
DebaucheryLibrarian
a14227b588 Improved animated image handling. 2021-02-11 01:46:11 +01:00
DebaucheryLibrarian
42a2fd8800 Changed Dorcel trailer to teaser. 2021-02-10 23:49:37 +01:00
DebaucheryLibrarian
098d2ef693 1.169.1 2021-02-10 23:46:22 +01:00
DebaucheryLibrarian
9aca5baa2b Added teaser support to Dorcel scraper. 2021-02-10 23:46:15 +01:00
DebaucheryLibrarian
5ba2c0ebd3 1.169.0 2021-02-10 04:21:09 +01:00
DebaucheryLibrarian
23335f8bd9 Added last scrape date to stats page. 2021-02-10 04:20:58 +01:00
DebaucheryLibrarian
b6022a3e90 1.168.10 2021-02-10 03:29:47 +01:00
DebaucheryLibrarian
b6b3def8fa Showing poster in release album. Filtering empty items from album component. 2021-02-10 03:29:41 +01:00
DebaucheryLibrarian
6e2527e5c5 1.168.9 2021-02-10 03:23:57 +01:00
DebaucheryLibrarian
7ff222ce25 Passing recursive parameters to all scraper methods. Using throttle parameters in MindGeek scraper, fixed missing slug breaking scene and actor URLs. 2021-02-10 03:23:48 +01:00
DebaucheryLibrarian
62ad786318 1.168.8 2021-02-10 03:00:23 +01:00
DebaucheryLibrarian
a6c7c60290 Improved movie tile actor overflow. Improved deep movie error feedback. 2021-02-10 03:00:17 +01:00
DebaucheryLibrarian
acc496be47 1.168.7 2021-02-08 04:29:19 +01:00
DebaucheryLibrarian
a04c7dda37 Added log to give insight about media insert failures. 2021-02-08 04:29:12 +01:00
DebaucheryLibrarian
38f53d8de8 1.168.6 2021-02-08 03:35:30 +01:00
DebaucheryLibrarian
dcad0cbe8f Fixed scenes without movies spawning empty movie objects and triggering 'missing entry ID' warning. 2021-02-08 03:35:24 +01:00
DebaucheryLibrarian
fa57575cc3 1.168.5 2021-02-08 02:11:03 +01:00
DebaucheryLibrarian
73b28866ac Scene tile uses first photo if poster is unavailable. 2021-02-08 02:10:56 +01:00
DebaucheryLibrarian
998774fe5c Added tag photos. 2021-02-06 04:15:28 +01:00
DebaucheryLibrarian
0827ced0d7 1.168.4 2021-02-06 01:39:07 +01:00
DebaucheryLibrarian
1cf0e166bb Fixed scene tile thumbnail mobile aspect ratio. Increased release page tag section height to better fit first two tag rows. 2021-02-06 01:39:01 +01:00
DebaucheryLibrarian
df71bfb483 1.168.3 2021-02-05 04:23:19 +01:00
DebaucheryLibrarian
80b8fe3654 Added actor flush, renamed inconsistent actor flush to actor delete. 2021-02-05 04:23:13 +01:00
DebaucheryLibrarian
dbfbd1f04d Fixed movie flush confirmation. 2021-02-05 04:17:47 +01:00
DebaucheryLibrarian
b94a3e05bc Added flush movie argument to index file. 2021-02-05 04:16:59 +01:00
DebaucheryLibrarian
368aa8a89f 1.168.2 2021-02-05 04:14:21 +01:00
DebaucheryLibrarian
80fa953f60 Added movie flush. 2021-02-05 04:14:13 +01:00
DebaucheryLibrarian
a95a159978 Fixed movie scene column. 2021-02-05 04:06:53 +01:00
DebaucheryLibrarian
6be787ecae 1.168.1 2021-02-05 04:05:52 +01:00
DebaucheryLibrarian
7b482e6903 Deleting movie scene associations before deleting scenes. 2021-02-05 04:05:44 +01:00
DebaucheryLibrarian
2db0cab892 1.168.0 2021-02-05 03:50:09 +01:00
DebaucheryLibrarian
457256e731 Added configurable disclaimer. 2021-02-05 03:50:03 +01:00
DebaucheryLibrarian
8aaf060979 1.167.10 2021-02-05 03:37:10 +01:00
DebaucheryLibrarian
688863d16e Catching media storage errors to prevent full crash. 2021-02-05 03:37:04 +01:00
DebaucheryLibrarian
c9b774c498 1.167.9 2021-02-05 03:13:17 +01:00
DebaucheryLibrarian
3e813ca251 Prevent writing to media hasher when hasher stream has closed. 2021-02-05 03:13:10 +01:00
DebaucheryLibrarian
647e9bb186 1.167.8 2021-02-05 03:04:02 +01:00
DebaucheryLibrarian
28a68aa721 Improved scene page layout and spacing. 2021-02-05 03:03:57 +01:00
DebaucheryLibrarian
e0e584658e Changed more tags button design. 2021-02-05 02:49:43 +01:00
DebaucheryLibrarian
980f66fb33 1.167.7 2021-02-05 02:35:10 +01:00
DebaucheryLibrarian
3e0a4406eb Hiding more than 2 rows of tags under expand button on scene page. Fixed album background being bright in dark mode. 2021-02-05 02:35:00 +01:00
DebaucheryLibrarian
5906ed5948 Improved album spacing and sizing. 2021-02-05 02:00:18 +01:00
DebaucheryLibrarian
8902654c4e 1.167.6 2021-02-05 01:54:16 +01:00
DebaucheryLibrarian
15cc970ee2 Added tags to release channels. Labeling DDF Network VR trailers as VR. 2021-02-05 01:54:06 +01:00
DebaucheryLibrarian
8af562e284 Showing courtesy comments on actor album photos. 2021-02-05 01:41:53 +01:00
DebaucheryLibrarian
101f5a1453 1.167.5 2021-02-05 01:29:58 +01:00
DebaucheryLibrarian
4ae130a646 Fixed album navigation interfering with filter navigation. 2021-02-05 01:29:53 +01:00
DebaucheryLibrarian
bd59bdd215 1.167.4 2021-02-04 23:28:15 +01:00
DebaucheryLibrarian
054ea6ac66 Explicitly ordering release photos and covers by stored index. 2021-02-04 23:28:10 +01:00
DebaucheryLibrarian
c5e1f2de2e 1.167.3 2021-02-04 23:09:57 +01:00
DebaucheryLibrarian
4abfcaf9ce Improved vertical image size in album. 2021-02-04 23:09:52 +01:00
DebaucheryLibrarian
0b14f4ab5d 1.167.2 2021-02-04 22:58:23 +01:00
DebaucheryLibrarian
5e12a1e1b1 Fixed not using media limit argument. 2021-02-04 22:58:18 +01:00
DebaucheryLibrarian
456b240df8 1.167.1 2021-02-04 22:55:26 +01:00
DebaucheryLibrarian
f217b161b4 Scraping scene photos from Bang API. 2021-02-04 22:55:19 +01:00
DebaucheryLibrarian
4594dbc763 1.167.0 2021-02-04 03:06:27 +01:00
DebaucheryLibrarian
98cae9270a Added video.js player with VR support for trailers. 2021-02-04 03:06:19 +01:00
DebaucheryLibrarian
91ba916884 1.166.1 2021-02-04 01:18:52 +01:00
DebaucheryLibrarian
315bf0fc89 Fixed missing date limit default argument. 2021-02-04 01:18:46 +01:00
DebaucheryLibrarian
733d17ae7a 1.166.0 2021-02-04 01:13:11 +01:00
DebaucheryLibrarian
ff123b99b7 Added WankzVR update, scene and profile scraper. 2021-02-04 01:13:02 +01:00
DebaucheryLibrarian
0b99e72924 Added Kink VR to Kink network using BaDoink scraper. 2021-02-03 21:29:56 +01:00
DebaucheryLibrarian
2da5939648 1.165.0 2021-02-03 21:03:41 +01:00
DebaucheryLibrarian
79b51eca67 Added BaDoink profile scraper. Improved convert wrapper. 2021-02-03 21:03:35 +01:00
DebaucheryLibrarian
cd417f40a8 Fixed VR tags in seed, fixed Honour May LP studio name and slug mixup. 2021-02-03 20:11:28 +01:00
DebaucheryLibrarian
85d42dec03 1.164.1 2021-02-03 20:00:48 +01:00
DebaucheryLibrarian
8dabef57b6 Added missing LegalPorno studios with prefix codes. 2021-02-03 20:00:42 +01:00
DebaucheryLibrarian
2a51fc82fd 1.164.0 2021-02-03 19:21:53 +01:00
DebaucheryLibrarian
11ad5f8bad Using navigation for toggling album. Using album for tag photos. Fixed portrait albums. 2021-02-03 19:21:47 +01:00
DebaucheryLibrarian
e3dc989798 1.163.1 2021-02-03 03:22:52 +01:00
DebaucheryLibrarian
8ea3fccb61 Added VR tag photos. 2021-02-03 03:22:43 +01:00
DebaucheryLibrarian
97cfca74ad 1.163.0 2021-02-03 02:59:44 +01:00
DebaucheryLibrarian
0c2e45141d Added BaDoink latest and scene scraper. 2021-02-03 02:59:39 +01:00
DebaucheryLibrarian
824fb9ef37 Changed profile network argument to context. 2021-02-03 00:50:00 +01:00
DebaucheryLibrarian
a19f235684 1.162.1 2021-02-03 00:47:06 +01:00
DebaucheryLibrarian
6d93083581 Removed superfluous MindGeek scrapers. 2021-02-03 00:46:59 +01:00
DebaucheryLibrarian
8337ce8dbd Scrolling release page up when browsing to movie. 2021-02-02 22:45:10 +01:00
DebaucheryLibrarian
92ba264cff 1.162.0 2021-02-02 22:36:54 +01:00
DebaucheryLibrarian
4db9a34a34 Removed superfluous Gamma scrapers. 2021-02-02 22:36:47 +01:00
DebaucheryLibrarian
251c3964bd 1.161.8 2021-02-02 04:08:57 +01:00
DebaucheryLibrarian
1e43c0e4c3 Showing movie cover as banner background. 2021-02-02 04:08:52 +01:00
DebaucheryLibrarian
696eb9a9d0 1.161.7 2021-02-02 04:03:41 +01:00
DebaucheryLibrarian
45badad8f8 Hiding movies without date. 2021-02-02 04:03:36 +01:00
DebaucheryLibrarian
2bd02a80a6 1.161.6 2021-02-02 04:00:06 +01:00
DebaucheryLibrarian
133aa065fb Fixed missing movie batch ID. Improved release page spacing. 2021-02-02 04:00:01 +01:00
DebaucheryLibrarian
b856f81148 1.161.5 2021-02-02 03:52:20 +01:00
DebaucheryLibrarian
5988e9b1a8 Fixed movie GraphQL to include logo status. 2021-02-02 03:52:15 +01:00
DebaucheryLibrarian
0b7d7e0602 1.161.4 2021-02-02 03:47:15 +01:00
DebaucheryLibrarian
dc331637a5 Filtering empty results in release curation. 2021-02-02 03:47:06 +01:00
DebaucheryLibrarian
3bbc5a5e87 Hard merging covers to preserve order. 2021-02-02 03:10:58 +01:00
DebaucheryLibrarian
55cadcfe82 1.161.3 2021-02-02 02:18:18 +01:00
DebaucheryLibrarian
c1124abde0 Improved scene poster selector in Woodman scraper. 2021-02-02 02:18:12 +01:00
DebaucheryLibrarian
fddbafc2d5 1.161.2 2021-02-02 02:11:22 +01:00
DebaucheryLibrarian
63f43013c3 Removed superfluous grandparent from entity query. 2021-02-02 02:11:16 +01:00
DebaucheryLibrarian
e4e0eb23dd Removed unnecessary depth calculation from entity query. 2021-02-02 01:59:51 +01:00
DebaucheryLibrarian
89a729924d 1.161.1 2021-02-02 01:51:30 +01:00
DebaucheryLibrarian
6364912aa8 Added children to deep release entity, removed database dependency from Perfect Gonzo scraper. 2021-02-02 01:51:22 +01:00
DebaucheryLibrarian
ab83dd2e55 1.161.0 2021-02-02 01:31:24 +01:00
DebaucheryLibrarian
d5cdfb36a9 Selecting included networks with infinite parent depth to facilitate scraper resolve. 2021-02-02 01:31:12 +01:00
DebaucheryLibrarian
46c0b269c3 1.160.4 2021-02-01 20:49:13 +01:00
DebaucheryLibrarian
4b5cd50122 Fixed slug lookup in Perfect Gonzo scraper. 2021-02-01 20:49:08 +01:00
DebaucheryLibrarian
aade7490f8 Querying infinite parent depth for deep release entities. 2021-02-01 01:45:30 +01:00
DebaucheryLibrarian
97c088cfb4 Added Anal Only and upcoming scraping to Mike Adriano. Fixed profile expand arrow color. 2021-01-30 17:43:33 +01:00
DebaucheryLibrarian
bfb5006e95 Added actor scene URL parameter to Gamma scraper to phase out release URL function. 2021-01-30 01:12:42 +01:00
DebaucheryLibrarian
d3d08b9c21 1.160.3 2021-01-30 00:01:46 +01:00
DebaucheryLibrarian
9535ab7953 Regarding layout parameters from parent and grandparent entities. Removed Evil Angel and Fantasy Massage scraper wrappers. 2021-01-30 00:01:40 +01:00
DebaucheryLibrarian
b42bdc1d3e 1.160.2 2021-01-29 15:37:00 +01:00
DebaucheryLibrarian
89956f3ad5 Increased album tile size. 2021-01-29 15:36:54 +01:00
DebaucheryLibrarian
b58ceb85bc 1.160.1 2021-01-29 04:26:52 +01:00
DebaucheryLibrarian
6938e88fbf Fixed some Gamma scene scrapers. 2021-01-29 04:26:45 +01:00
DebaucheryLibrarian
1fc67704dc 1.160.0 2021-01-29 02:38:20 +01:00
DebaucheryLibrarian
b7aaeada45 Improved movie scraping. 2021-01-29 02:38:05 +01:00
DebaucheryLibrarian
4d89256a4c Merging improvements. 2021-01-27 00:21:58 +01:00
DebaucheryLibrarian
7185c8dc08 1.159.10 2021-01-25 23:54:06 +01:00
DebaucheryLibrarian
b506a00e7d Improved scene merging. Improved Porn World/DDF scraper for poster and title redundancy. Fixed SFW poster showing in NSFW mode. 2021-01-25 23:53:56 +01:00
DebaucheryLibrarian
5a975ad0bf 1.159.9 2021-01-25 23:25:14 +01:00
DebaucheryLibrarian
b80eca35d8 Fixed Gamma scraper breaking when scene has no movie. Improved missing thumbnail presentation on mobile scene tiles. 2021-01-25 23:24:51 +01:00
DebaucheryLibrarian
dba99a4170 Showing cover or first photo as movie trailer poster. 2021-01-25 23:15:41 +01:00
DebaucheryLibrarian
5547ff7e76 1.159.8 2021-01-25 23:01:16 +01:00
DebaucheryLibrarian
dc98fcad5a Scraping Gamma movies. Changed movie detail bar position, and scene detail bar mobile spacing. 2021-01-25 23:01:07 +01:00
DebaucheryLibrarian
41259eae5d 1.159.7 2021-01-25 00:30:29 +01:00
DebaucheryLibrarian
d3703d81b7 Added Woodman logos. 2021-01-25 00:30:19 +01:00
DebaucheryLibrarian
24178e7b04 1.159.6 2021-01-25 00:11:17 +01:00
DebaucheryLibrarian
486dbc5613 Improved Woodman scraper, added profiles. 2021-01-25 00:10:57 +01:00
DebaucheryLibrarian
e9cbf5dab2 Added Woodman Casting X and WUNF update and scene scraper. Fixed actor and fallback media arrays being merged in deep scraper. 2021-01-24 23:31:28 +01:00
DebaucheryLibrarian
b719a166d2 1.159.5 2021-01-24 20:43:40 +01:00
DebaucheryLibrarian
297f79f6e2 Restored sorting trailers by quality. 2021-01-24 20:43:34 +01:00
DebaucheryLibrarian
af59ad3d33 Fixed dark Private logos. 2021-01-24 17:44:34 +01:00
DebaucheryLibrarian
3573b84c97 Removed protocol from Vixen trailer proxy config. 2021-01-24 17:33:42 +01:00
DebaucheryLibrarian
e105d665ae Added Vixen trailer CDN URLs to default proxy config. Improved album photo sizes. 2021-01-24 17:31:32 +01:00
DebaucheryLibrarian
714f70c9ce 1.159.4 2021-01-24 17:17:03 +01:00
DebaucheryLibrarian
4151412156 Fixed Vixen trailer scraping. Using album instead of expand for actor photos. 2021-01-24 17:16:55 +01:00
DebaucheryLibrarian
f7f9862489 Improved album width on narrow screens. 2021-01-23 23:56:24 +01:00
DebaucheryLibrarian
7e52f6d18d Fixed album title overflow. 2021-01-23 23:50:15 +01:00
DebaucheryLibrarian
e1b52de7a3 1.159.3 2021-01-23 23:27:02 +01:00
DebaucheryLibrarian
0a0a3ddd7b Improved appearence of empty scene media banner. 2021-01-23 23:26:56 +01:00
DebaucheryLibrarian
fdb48f0d6d 1.159.2 2021-01-23 23:09:12 +01:00
DebaucheryLibrarian
2f3eb0e16c Improved album layout. 2021-01-23 23:09:05 +01:00
DebaucheryLibrarian
18a1d74a9a 1.159.1 2021-01-23 23:03:33 +01:00
DebaucheryLibrarian
0f29151200 Fixed release banner, improved album layout. 2021-01-23 23:03:21 +01:00
DebaucheryLibrarian
0a7378feb4 1.159.0 2021-01-23 01:18:31 +01:00
DebaucheryLibrarian
59ba84b7b1 Added album button and component to scene page. 2021-01-23 01:18:20 +01:00
DebaucheryLibrarian
985b523031 Scraping movie links from Gamma scene page. Removed expand option from scene page media to make way for album button. 2021-01-22 22:55:20 +01:00
DebaucheryLibrarian
40e0c92ec7 1.158.9 2021-01-22 15:40:54 +01:00
DebaucheryLibrarian
bd9b795516 Fixed avatars without entropy being discarded. 2021-01-22 15:40:49 +01:00
DebaucheryLibrarian
130368ca70 Fixed tile favicon. 2021-01-22 00:37:16 +01:00
DebaucheryLibrarian
611a2d66a0 1.158.8 2021-01-22 00:26:14 +01:00
DebaucheryLibrarian
b16cc26024 Added Zero Tolerance channel to network. 2021-01-22 00:26:06 +01:00
DebaucheryLibrarian
3babb9ee68 Fixed new label padding. 2021-01-19 16:37:33 +01:00
DebaucheryLibrarian
9388eb5993 Fixed new label CSS. 2021-01-19 16:36:17 +01:00
DebaucheryLibrarian
0b1f5c06bc Fixed new label padding. 2021-01-19 16:34:57 +01:00
DebaucheryLibrarian
1c1b933438 1.158.7 2021-01-19 16:33:41 +01:00
DebaucheryLibrarian
0663109634 Fixed new label positioning. 2021-01-19 16:33:35 +01:00
DebaucheryLibrarian
c329ffdf07 1.158.6 2021-01-19 16:31:07 +01:00
DebaucheryLibrarian
b89fe1805f Moved mobile scene tile details bar to top. Minor scene tile improvements. 2021-01-19 16:31:02 +01:00
DebaucheryLibrarian
ca8429150e 1.158.5 2021-01-19 15:58:35 +01:00
DebaucheryLibrarian
a95e409366 Fixed Kink deep scrape photos. Fixed favicon ratio in compact scene tile. Hiding scroll buttons on small screens. 2021-01-19 15:58:27 +01:00
DebaucheryLibrarian
f39270ee91 1.158.4 2021-01-18 15:27:13 +01:00
DebaucheryLibrarian
9debb1776b Fixed favicon width. 2021-01-18 15:27:07 +01:00
DebaucheryLibrarian
8183525961 1.158.3 2021-01-18 00:49:06 +01:00
DebaucheryLibrarian
6e8620fbbb Slimmed down scene tile details in compact mode. Hiding link icon in tile details when no link is available. 2021-01-18 00:49:00 +01:00
DebaucheryLibrarian
5c8a6b3a70 1.158.2 2021-01-18 00:33:00 +01:00
DebaucheryLibrarian
46173cb6c3 Reduced tile grid padding in compact mode. 2021-01-18 00:32:52 +01:00
DebaucheryLibrarian
bebf814577 Adjusted new label for compact compatability. 2021-01-18 00:31:52 +01:00
DebaucheryLibrarian
7d1fb86e63 1.158.1 2021-01-17 23:43:03 +01:00
DebaucheryLibrarian
f9c6e6f0dc Improved header spacing. 2021-01-17 23:43:00 +01:00
DebaucheryLibrarian
1238f90268 1.158.0 2021-01-17 23:31:57 +01:00
DebaucheryLibrarian
1dea94c0cf Improved compact scene tile layout, added dark versions of entity favicons. 2021-01-17 23:31:49 +01:00
DebaucheryLibrarian
dd5284c55a Fixed scroll to top. 2021-01-17 21:24:20 +01:00
DebaucheryLibrarian
8bc1fbf530 1.157.0 2021-01-17 02:07:16 +01:00
DebaucheryLibrarian
48f247a919 Changed scene media grid layout. 2021-01-17 02:07:02 +01:00
DebaucheryLibrarian
251bb9476d Added Gaywire, modified Bang Bros scraper to accomodate. 2021-01-17 01:43:55 +01:00
DebaucheryLibrarian
8387f676fc Added Top Web Models to profile config. 2021-01-16 04:12:22 +01:00
DebaucheryLibrarian
e1aa48f3c1 1.156.1 2021-01-16 04:10:57 +01:00
DebaucheryLibrarian
e3ef0a0d69 Added Top Web Models profile scraper. 2021-01-16 04:10:43 +01:00
DebaucheryLibrarian
b9e4764516 Fixed Pascals Sub Sluts interpreting metric as imperial height, filtering unlikely in interpolation. Splitting double actor entries in Top Web Models. 2021-01-15 16:14:48 +01:00
DebaucheryLibrarian
7e78a39717 1.156.0 2021-01-15 04:06:02 +01:00
DebaucheryLibrarian
b8df8e6507 Added Top Web Models update and scene scraper. 2021-01-15 04:04:32 +01:00
DebaucheryLibrarian
451ffdc48b Added Top Web Models directory. 2021-01-14 02:10:35 +01:00
DebaucheryLibrarian
4bbd9e8120 1.155.0 2021-01-14 02:08:39 +01:00
DebaucheryLibrarian
12c3f0d7b9 Added Top Web Models framework. 2021-01-14 01:37:50 +01:00
DebaucheryLibrarian
dbdf0fcc0b Updated README. 2021-01-13 21:29:47 +01:00
DebaucheryLibrarian
422b6c4252 1.154.0 2021-01-13 21:29:11 +01:00
DebaucheryLibrarian
39d149c728 Added default deep scrape fetch method. Added Karups scene and profile scraper. Added schoolgirl tag photo. 2021-01-13 21:29:05 +01:00
DebaucheryLibrarian
cc64f2911f 1.153.4 2021-01-13 16:19:59 +01:00
DebaucheryLibrarian
6fb8c77846 Updated README. 2021-01-13 16:19:52 +01:00
DebaucheryLibrarian
2bae6f693e Removed stray console log. 2021-01-13 16:08:53 +01:00
DebaucheryLibrarian
8d8cdcd219 1.153.3 2021-01-13 16:08:25 +01:00
DebaucheryLibrarian
ae0efccb04 Skipping Babel, updated node version. Improved deep scrape array merge. 2021-01-13 16:08:19 +01:00
DebaucheryLibrarian
ef1d34e4de 1.153.2 2021-01-13 15:43:59 +01:00
DebaucheryLibrarian
cdd4220cb9 Fixed release actor crash when no actors are present. 2021-01-13 15:43:53 +01:00
DebaucheryLibrarian
bf814c0b9d 1.153.1 2021-01-13 15:38:26 +01:00
DebaucheryLibrarian
f95c80f73f Using poster photo for Pinky XXX. 2021-01-13 01:10:29 +01:00
DebaucheryLibrarian
5d3e3b6cee 1.153.0 2021-01-13 00:52:17 +01:00
DebaucheryLibrarian
52356f0f31 Added Pinky XXX, changed ethnicity tags. 2021-01-13 00:52:05 +01:00
DebaucheryLibrarian
68aacb498a 1.152.7 2021-01-11 23:31:39 +01:00
DebaucheryLibrarian
ad73c11cb4 Using date and title for Nubiles entry ID. 2021-01-11 23:31:33 +01:00
DebaucheryLibrarian
e65828c729 1.152.6 2021-01-11 16:20:09 +01:00
DebaucheryLibrarian
db4e74fb99 Fixed Nubiles base poster query, handling trailing commas in qu source set. Added profile scene scraper to Dogfart. Added tag photo. 2021-01-11 16:20:01 +01:00
DebaucheryLibrarian
e38922f372 Removed redundant sitename from MindGeek session error. 2021-01-05 16:35:49 +01:00
DebaucheryLibrarian
e1d6c9e489 Added site name to MindGeek session error. 2021-01-05 16:34:32 +01:00
DebaucheryLibrarian
d2d124cccf 1.152.5 2021-01-05 16:27:26 +01:00
DebaucheryLibrarian
9ca2ec6dd0 Fixed parent entity relations in seed file. Fixed MindGeek scraper session URL determination. 2021-01-05 16:27:20 +01:00
DebaucheryLibrarian
fd92e7e260 1.152.4 2021-01-05 03:29:10 +01:00
DebaucheryLibrarian
150988ecb9 Fixed filter tooltips closing on click. Added tag photo. 2021-01-05 03:29:02 +01:00
DebaucheryLibrarian
bd3e1a0bde 1.152.3 2021-01-04 19:58:01 +01:00
DebaucheryLibrarian
b791aaca5a Improved consent warning layout. 2021-01-04 19:57:53 +01:00
DebaucheryLibrarian
a5eef66a1c 1.152.2 2021-01-04 01:46:11 +01:00
DebaucheryLibrarian
df5a9c9fd9 Using vertical button layout in consent warning on small screens. 2021-01-04 01:46:05 +01:00
DebaucheryLibrarian
be15e360c1 Darkened dialog background. 2021-01-04 01:39:55 +01:00
DebaucheryLibrarian
ca6478ca88 1.152.1 2021-01-04 01:30:47 +01:00
DebaucheryLibrarian
62ef041b35 Added filter presets to consent warning. Updating scenes when tag filter changes. 2021-01-04 01:30:39 +01:00
DebaucheryLibrarian
ab83a42dfb 1.152.0 2021-01-03 23:32:18 +01:00
DebaucheryLibrarian
cb4b5ce640 Added filter dialog toggle to sidebar. Moved filter dialog to container. Using events to toggle sidebar from header. 2021-01-03 23:32:09 +01:00
DebaucheryLibrarian
7bbb2f3557 Added tag filter dialog. 2021-01-03 22:53:51 +01:00
DebaucheryLibrarian
f27af19670 Added tag photo. 2021-01-03 16:36:47 +01:00
DebaucheryLibrarian
c59f05a2f8 1.151.3 2021-01-02 03:20:45 +01:00
DebaucheryLibrarian
8739ec08cf Fixed qu init selector. Fixed Aziani scene page scope. 2021-01-02 03:20:39 +01:00
DebaucheryLibrarian
70795a69c8 1.151.2 2021-01-01 04:28:17 +01:00
DebaucheryLibrarian
236d4fcde7 Fixed scene media lazy image. Fixed Perv City actor scope. 2021-01-01 04:28:10 +01:00
DebaucheryLibrarian
ba3b87471e Added scene flush. Added temporary media insert log for integer out of range error. 2020-12-30 04:17:09 +01:00
DebaucheryLibrarian
91746c73e1 1.151.1 2020-12-30 03:39:47 +01:00
DebaucheryLibrarian
f0a90db912 Only allow actor flush by name for non-entity specific actors. 2020-12-30 03:39:40 +01:00
DebaucheryLibrarian
4fd262dc60 1.151.0 2020-12-30 03:19:16 +01:00
DebaucheryLibrarian
8aabcd6443 Added actor flush. 2020-12-30 03:19:09 +01:00
DebaucheryLibrarian
af67d733ad Added profile flush. 2020-12-30 02:23:43 +01:00
DebaucheryLibrarian
cdc963c42c 1.150.1 2020-12-30 00:19:15 +01:00
DebaucheryLibrarian
e807f049d8 Showing actor photos without entropy value. 2020-12-30 00:19:08 +01:00
DebaucheryLibrarian
a51a159886 1.150.0 2020-12-30 00:16:12 +01:00
DebaucheryLibrarian
770e5b75a5 Added profile interpolate command line argument. 2020-12-30 00:16:05 +01:00
DebaucheryLibrarian
71e76e359a 1.149.9 2020-12-29 23:44:44 +01:00
DebaucheryLibrarian
a8f68f4993 Fixed boolean handling in actor profile curation. 2020-12-29 23:44:38 +01:00
DebaucheryLibrarian
92eed64fe8 1.149.8 2020-12-29 20:04:24 +01:00
DebaucheryLibrarian
13791be485 Updated sidebar transition to Vue v3. 2020-12-29 20:04:18 +01:00
DebaucheryLibrarian
ba8a3036a5 Fixed tag photo scroll and lazy loading. 2020-12-29 20:02:26 +01:00
DebaucheryLibrarian
b6bf043c48 1.149.7 2020-12-29 18:54:02 +01:00
DebaucheryLibrarian
361e8f1bd3 Fixed Kelly Madison title regex. 2020-12-29 18:53:55 +01:00
DebaucheryLibrarian
c7cb0e439d 1.149.6 2020-12-29 04:22:08 +01:00
DebaucheryLibrarian
0f052a0631 Fixed actor boolean logic, addressing missing boob, tattoo and piercing info. Removed scroll background, fixed actor photo load event and padding. 2020-12-29 04:20:33 +01:00
DebaucheryLibrarian
0f88ae324e 1.149.5 2020-12-29 02:05:29 +01:00
DebaucheryLibrarian
bc944c2373 Restored Mike Adriano scraper. 2020-12-29 02:05:22 +01:00
DebaucheryLibrarian
5476597343 Fixed tag filter tooltip. Added emits property to tooltip component. 2020-12-29 00:51:59 +01:00
DebaucheryLibrarian
8dd10f7e77 Adjusting tooltip arrow position, added open and close events. Fixed search tooltip layout. 2020-12-29 00:42:02 +01:00
DebaucheryLibrarian
442e69187b 1.149.4 2020-12-28 01:33:15 +01:00
DebaucheryLibrarian
029099d4a5 Added fallback createdAt date to date range. 2020-12-28 01:33:09 +01:00
DebaucheryLibrarian
1ec2b3ac36 1.149.3 2020-12-28 01:29:41 +01:00
DebaucheryLibrarian
6baa6b0802 Fixed fallback create dates in scene tiles. Fixed Mike Adriano entryIds and trailers for Nympho. 2020-12-28 01:29:34 +01:00
DebaucheryLibrarian
679e09f27e Changed scroll component button design. Removed unnecessary z-index from tooltip arrow. 2020-12-28 00:02:18 +01:00
DebaucheryLibrarian
b4f6373605 1.149.2 2020-12-27 23:43:15 +01:00
DebaucheryLibrarian
77ec2d3747 Using advanced merge library to maximize scraped data. 2020-12-27 23:43:08 +01:00
DebaucheryLibrarian
9c926a1d81 Fixed Mike Adriano dates for scene pages. 2020-12-27 23:36:15 +01:00
DebaucheryLibrarian
31af1ca9e6 Fixed movie tile lazy loading and SFW image. 2020-12-27 23:10:11 +01:00
DebaucheryLibrarian
1d1c9eae83 1.149.1 2020-12-27 22:45:42 +01:00
DebaucheryLibrarian
ded414577f Fixed default actor avatar allocation. Fixed lazy loading in actor photos component. 2020-12-27 22:45:38 +01:00
DebaucheryLibrarian
f58c07137a 1.149.0 2020-12-27 04:21:36 +01:00
DebaucheryLibrarian
a7e6f470f7 Improved tooltip behavior and styling. 2020-12-27 04:21:10 +01:00
DebaucheryLibrarian
229d74d266 Using teleport for tooltips. Moved theme class to body tag with UI observer. 2020-12-27 02:15:06 +01:00
DebaucheryLibrarian
12f247a927 Fixed double anchor tags in header and sidebar nav. 2020-12-27 00:40:35 +01:00
DebaucheryLibrarian
2e95e1e32b Passing router as reactive object to store, so values are automatically unwrapped. 2020-12-27 00:32:42 +01:00
DebaucheryLibrarian
c503e12adb Fixed scroll component so it uses slot props instead of the depcrecated . 2020-12-26 23:51:27 +01:00
DebaucheryLibrarian
ced8f447a7 Added tooltip menu with header toggles and upcoming filter access. 2020-12-20 23:20:41 +01:00
DebaucheryLibrarian
d50cfb8dd6 1.148.2 2020-12-20 20:16:11 +01:00
DebaucheryLibrarian
c1838d4390 Replaced consent warning backdrop blur with darker background, as backdrop blur is not supported in Firefox. 2020-12-20 20:16:04 +01:00
DebaucheryLibrarian
a127dfb8af 1.148.1 2020-12-20 19:50:07 +01:00
DebaucheryLibrarian
27e5583849 Using generic session ID variable for to determine consent warning, rather than dedicated property. 2020-12-20 19:49:57 +01:00
DebaucheryLibrarian
4a1faa0074 1.148.0 2020-12-20 04:21:35 +01:00
DebaucheryLibrarian
5f4039c5d4 Added sharpness and re-added entropy to avatars, ignoring low-entropy photos as main avatar and in profile photo list. 2020-12-20 04:21:28 +01:00
DebaucheryLibrarian
cbcac0725d 1.147.2 2020-12-19 23:01:24 +01:00
DebaucheryLibrarian
bd77d4347d Tied consent warning to session. 2020-12-19 23:01:17 +01:00
DebaucheryLibrarian
be4d025505 Fixed trailer path regex for some Hush sites. 2020-12-19 02:35:41 +01:00
DebaucheryLibrarian
17c9499ec4 1.147.1 2020-12-19 01:03:23 +01:00
DebaucheryLibrarian
67ed249239 Added poster to API scene overview. 2020-12-19 01:03:15 +01:00
DebaucheryLibrarian
2b808025f9 1.147.0 2020-12-19 00:40:44 +01:00
DebaucheryLibrarian
0d41fb48dc Removed outdated movie releases from API. Added API endpoint for scene posters. 2020-12-19 00:40:36 +01:00
DebaucheryLibrarian
7bc4a955ba 1.146.6 2020-12-19 00:19:45 +01:00
DebaucheryLibrarian
4ccd8bf07a Fixed missing initial value in scraper reduce, breaking first network (21 Naturals). 2020-12-19 00:19:38 +01:00
DebaucheryLibrarian
ddf0958c04 1.146.5 2020-12-18 23:50:19 +01:00
DebaucheryLibrarian
78aa1ed724 Updated warning message. 2020-12-18 23:50:13 +01:00
DebaucheryLibrarian
0215216e34 1.146.4 2020-12-18 23:41:35 +01:00
DebaucheryLibrarian
02dc74e395 Updated warning message. 2020-12-18 23:41:28 +01:00
DebaucheryLibrarian
b8b58726ac 1.146.3 2020-12-18 23:32:52 +01:00
DebaucheryLibrarian
9853bce90b Fixed logo size in warning. 2020-12-18 23:32:47 +01:00
DebaucheryLibrarian
116ba9c6d2 1.146.2 2020-12-18 23:28:09 +01:00
DebaucheryLibrarian
83f51219e4 Updated warning message. Added grandparent networks to network seed file, merged 21Naturals and 21Sextreme into 21Sextury. 2020-12-18 23:28:02 +01:00
DebaucheryLibrarian
5629190bf1 1.146.1 2020-12-18 04:08:38 +01:00
DebaucheryLibrarian
112970050c Updated tag photos. 2020-12-18 04:08:28 +01:00
DebaucheryLibrarian
2e3a3fd53e 1.146.0 2020-12-18 02:10:36 +01:00
DebaucheryLibrarian
5b16941ec5 Added content warning dialog. 2020-12-18 02:10:30 +01:00
DebaucheryLibrarian
5e7741afe8 1.145.6 2020-12-17 03:48:43 +01:00
DebaucheryLibrarian
aa8f1bb6be Fixed age query for release details. 2020-12-17 03:48:38 +01:00
DebaucheryLibrarian
03915110cf 1.145.5 2020-12-17 03:43:18 +01:00
DebaucheryLibrarian
d67dca60fc Fixed birthdate interpolation and query. 2020-12-17 03:43:09 +01:00
DebaucheryLibrarian
a3306ad4e7 1.145.4 2020-12-17 02:05:07 +01:00
DebaucheryLibrarian
cd8e810c35 Fixed various Kelly Madison scraper issues. 2020-12-17 02:05:01 +01:00
DebaucheryLibrarian
d0f8e21466 1.145.3 2020-12-16 03:53:53 +01:00
DebaucheryLibrarian
9413bd5357 Updated tag photos. 2020-12-16 03:53:44 +01:00
DebaucheryLibrarian
e6de8f0f9a 1.145.2 2020-12-16 00:51:07 +01:00
DebaucheryLibrarian
cc83b832f1 Attach base actor to scenes scraped from profile. 2020-12-16 00:50:58 +01:00
DebaucheryLibrarian
6ed02933a6 Added tag photos. 2020-12-15 04:45:04 +01:00
DebaucheryLibrarian
61b8f62221 1.145.1 2020-12-14 03:16:54 +01:00
DebaucheryLibrarian
07f0249717 Upgraded pg, knex and postgraphile. Updated nvmrc version to latest node LTS. Fixed Gamma scraper not passing request headers to new http module. 2020-12-14 03:16:47 +01:00
DebaucheryLibrarian
80b0f9ee0f 1.145.0 2020-12-05 02:44:54 +01:00
DebaucheryLibrarian
71196688ae Removed console log. 2020-12-05 02:44:39 +01:00
DebaucheryLibrarian
f0bec85ef8 Added Fuck'n'Drive and Jizz On Teens latest layouts to First Anal Quest scraper. 2020-12-05 02:24:31 +01:00
DebaucheryLibrarian
2e0fba3de9 Added First Anal Quest and Double View Casting profile scrapers. 2020-12-04 23:53:20 +01:00
DebaucheryLibrarian
be1821b9eb Changed --inspect to --report to avoid conflict with Node's own debug tools. 2020-12-02 21:26:55 +01:00
DebaucheryLibrarian
f5939c81d3 1.144.0 2020-12-02 03:17:42 +01:00
DebaucheryLibrarian
2656e3adb0 Added First Anal Quest and Double View Casting latest and scene scraper. 2020-12-02 03:17:32 +01:00
DebaucheryLibrarian
bfbfa761ef 1.143.2 2020-12-01 23:00:24 +01:00
DebaucheryLibrarian
6f19a8a642 Using ageFromBirth for age on scene date. Using infinite depth and colors for inspect. 2020-12-01 23:00:14 +01:00
DebaucheryLibrarian
bfbd2ddc00 1.143.1 2020-11-30 03:09:37 +01:00
DebaucheryLibrarian
eaa40190cc Fixed entity link in search results. 2020-11-30 03:09:31 +01:00
DebaucheryLibrarian
2758b90019 1.143.0 2020-11-29 04:00:12 +01:00
DebaucheryLibrarian
9a61d2305c Added fixed actor age. Added male profiles to Littlr Caprice Dreams scraper. Added various tag photos. 2020-11-29 03:59:47 +01:00
DebaucheryLibrarian
71c884fe48 Improved Little Caprice Dreams scraper. 2020-11-28 00:46:30 +01:00
DebaucheryLibrarian
9a183c7ffb Added channel matching to Little Caprice Dreams. 2020-11-27 03:23:12 +01:00
DebaucheryLibrarian
60485751e2 Added support for upcoming scenes to Bang scraper. 2020-11-26 22:07:54 +01:00
DebaucheryLibrarian
4e559f63e3 Including all children of included networks, separated included children into dedicated property. 2020-11-26 04:26:52 +01:00
DebaucheryLibrarian
1b407254a7 Increased hard limit in release API. 2020-11-26 04:01:01 +01:00
DebaucheryLibrarian
0b86def315 Ignoring non-scene page (possible CF or similar protection) in Vixen scraper. 2020-11-26 03:27:21 +01:00
DebaucheryLibrarian
6633ce78d0 Returning empty array instead of null from empty Vixen page. 2020-11-26 03:14:32 +01:00
DebaucheryLibrarian
54df9d0c78 Fixed empty page breaking Vixen scraper. 2020-11-26 03:13:43 +01:00
DebaucheryLibrarian
980efbc93d Added series as channels with logos and photo album scraping to Little Caprice. Added various tag photos. 2020-11-24 04:29:44 +01:00
DebaucheryLibrarian
711a9441a6 Added Little Caprice Dreams scraped (WIP). 2020-11-23 04:32:56 +01:00
DebaucheryLibrarian
eae9ee3cbe 1.142.2 2020-11-23 00:38:30 +01:00
DebaucheryLibrarian
8688c28d0f Replaced queueMethod in media sources for new interval/concurrency options. 2020-11-23 00:38:22 +01:00
DebaucheryLibrarian
aa1bba84aa 1.142.1 2020-11-23 00:30:28 +01:00
DebaucheryLibrarian
ca7c8f0afd Updated place resolve module to use new HTTP module. 2020-11-23 00:30:20 +01:00
DebaucheryLibrarian
d4c5da2a76 1.142.0 2020-11-23 00:05:16 +01:00
DebaucheryLibrarian
0633197793 Removed direct bhttp usage from scrapers in favor of local http module. Deleted legacy scrapers, as old code is available via git repo history. 2020-11-23 00:05:02 +01:00
DebaucheryLibrarian
3d427f7e1d Allowing HTTP rate limits to be set by configuration or argument. 2020-11-22 23:50:24 +01:00
DebaucheryLibrarian
6a5063cf32 Fixed PornCZ scene photos attribute. 2020-11-22 04:13:21 +01:00
DebaucheryLibrarian
081a5a1e8c Updated HTTP call in Gamma scraper. 2020-11-22 04:09:44 +01:00
DebaucheryLibrarian
b9b777c621 Using new HTTP module with a dynamic rate limiter. 2020-11-22 04:07:09 +01:00
DebaucheryLibrarian
5d0fe44130 1.141.2 2020-11-19 02:01:24 +01:00
DebaucheryLibrarian
77f9193669 Updated Dorcel scraper, added movie support. 2020-11-19 02:01:13 +01:00
DebaucheryLibrarian
ecc90be12c 1.141.1 2020-11-15 23:50:11 +01:00
DebaucheryLibrarian
d14ef90136 Scraping actor scenes from Hussie Pass. Adding entity to actor base releases. 2020-11-15 23:50:04 +01:00
11949 changed files with 133124 additions and 34715 deletions

0
.babelrc Normal file → Executable file
View File

0
.editorconfig Normal file → Executable file
View File

0
.eslintignore Normal file → Executable file
View File

30
.eslintrc Normal file → Executable file
View File

@@ -1,26 +1,34 @@
{
"root": true,
"extends": ["airbnb-base", "plugin:vue/recommended"],
"extends": ["airbnb-base"],
"env": {
"node": true
},
"parserOptions": {
"parser": "babel-eslint",
"ecmaVersion": 2019,
"sourceType": "module"
"parser": "@babel/eslint-parser",
"ecmaVersion": 2024,
"sourceType": "script"
},
"rules": {
"indent": ["error", "tab"],
"no-tabs": "off",
"no-unused-vars": ["error", {"argsIgnorePattern": "^_"}],
"no-unused-vars": ["error", {"argsIgnorePattern": "^_"}],
"no-console": 0,
"arrow-body-style": 0,
"default-param-last": 0,
"template-curly-spacing": "off",
"max-len": 0,
"vue/no-v-html": 0,
"vue/html-indent": ["error", "tab"],
"vue/multiline-html-element-content-newline": 0,
"vue/singleline-html-element-content-newline": 0,
"func-names": 0,
"space-before-function-paren": 0,
"strict": 0,
"no-underscore-dangle": 0,
"prefer-destructuring": "off",
"object-curly-newline": "off",
"require-await": "off",
"no-param-reassign": ["error", {
"props": true,
"ignorePropertyModificationsFor": ["state", "acc"]
}],
"ignorePropertyModificationsFor": ["state", "acc", "req", "error"]
}]
},
"globals": {
"CONFIG": true

13
.gitignore vendored Normal file → Executable file
View File

@@ -2,9 +2,22 @@ node_modules/
dist/
log/
media/
html/
data/
tmp/*
public/js/*
public/css/*
public/img/tags
public/img/logos/
public/banners
config/*
!config/default.js
!config/analvids.json
assets/js/config/
!assets/js/config/default.js
/export*
/stashes*
/alerts*
*.heapprofile
*.heapsnapshot
.vscode

3
.gitmodules vendored Normal file
View File

@@ -0,0 +1,3 @@
[submodule "common"]
path = common
url = git@unknown.name:DebaucheryLibrarian/traxxx-common.git

2
.nvmrc Normal file → Executable file
View File

@@ -1 +1 @@
12.13.0
21.2.0

36
README.md Normal file → Executable file
View File

@@ -2,12 +2,12 @@
**NSFW** - The latest releases from your favorite porn studios in one place.
## Install & run
Use [nvm](https://github.com/creationix/nvm) to install a recent version of NodeJS. Download and unpack or clone this repository, and run the following in the root directory:
Use [nvm](https://github.com/creationix/nvm) to install NodeJS v16.8.0 or newer. Download and unpack or clone this repository, and run the following in the root directory:
`npm install`
### Set up database
Install PostgreSQL, make sure password authentication is enabled (scram-sha-256) and create a database with a privileged user. For optimal search engine performance, copy `traxxx.stop` to your PostgresQL text search directory, usually `/usr/share/postgresql/tsearch_data/ or `/usr/local/share/postgresql/tsearch_data/`.
Install PostgreSQL, make sure password authentication is enabled (scram-sha-256). Create a database with a fully privileged user.
### Configuration
Do not modify `config/default.js`, but instead create a copy at `config/local.js` containing the properties you wish to change. If you have set `NODE_ENV`, copy `assets/js/config/default.js` to `assets/js/config/[environment].js`. After setting up PostgreSQL and configuring the details, run the following commands to create and populate the tables, and build the project:
@@ -110,15 +110,17 @@ A GraphQL API is available at `/graphql`, and a REST API is available at the fol
* `/api/tags/{ID|slug|name}`: Fetch detailed tag by ID, slug or name.
## Supported networks & sites
896 channels on 64 networks, continuously expanding!
1121 channels on 83 networks, continuously expanding!
* 21Naturals
* 21Sextreme
* 21Sextury
* Adult Time
* Amateur Allure
* Amateur Euro
* American Pornstar
* Assylum
* Aziani
* Aziani (Gangbang Creampies)
* Babes
* Bang!
* Bang Bros
@@ -126,24 +128,40 @@ A GraphQL API is available at `/graphql`, and a REST API is available at the fol
* Brazzers
* Burning Angel
* Cherry Pimps
* DDF Network
* CzechAV
* DDF Network / Porn World
* Digital Playground
* Dogfart Network
* Dorcel
* Elegant Angel
* Evil Angel
* Fake Hub
* Fame Digital
* Fantasy Massage
* Full Porn Network
* FCUK (Exploited College Girls)
* First Anal Quest
* ForBondage
* Full Porn Network (Analized, James Deen)
* Gaywire
* Girlsway
* Hitzefrei
* Hookup Hotshot
* Hush Pass
* Hussie Pass
* In The Crack
* Insex
* Interracial Pass
* JayRock Productions
* Jesse Loads Monster Facials
* Jules Jordan
* Karups
* Kelly Madison Media (Teen Fidelity)
* Killergram
* Kink
* LegalPorno
* LetsDoeIt
* Little Caprice Dreams
* Mamacitaz
* Men
* Metro HD
* Mike Adriano
@@ -152,10 +170,13 @@ A GraphQL API is available at `/graphql`, and a REST API is available at the fol
* Naughty America
* New Sensations
* Nubiles
* Pascal's Sub Sluts
* Perfect Gonzo
* Perv City
* Pimp.XXX
* Pinky XXX
* Porn Pros
* PornCZ
* Private
* Pure Taboo
* Reality Kings
@@ -163,10 +184,13 @@ A GraphQL API is available at `/graphql`, and a REST API is available at the fol
* Sexy Hub
* Team Skeet
* Teen Core Club
* TransBella
* Twistys
* VIP Sex Vault
* Vivid
* Vixen
* VogoV
* Whale Member (Holed, POVD)
* Wicked
* XEmpire
* ZTOD

View File

@@ -0,0 +1,138 @@
const config = require('config');
const manticore = require('manticoresearch');
const mantiClient = new manticore.ApiClient();
mantiClient.basePath = `http://${config.database.manticore.host}:${config.database.manticore.httpPort}`;
const utilsApi = new manticore.UtilsApi(mantiClient);
const scenesFields = `
id int,
title text,
title_filtered text,
shoot_id text,
channel_id int,
channel_name text,
channel_slug text,
network_id int,
network_name text,
network_slug text,
studio_id int,
studio_name text,
studio_slug text,
entity_ids multi,
actor_ids multi,
actors text,
tag_ids multi,
tags text,
movie_ids multi,
movies text,
serie_ids multi,
series text,
meta text,
date timestamp,
is_showcased bool,
created_at timestamp,
effective_date timestamp,
stashed int,
dupe_index int
`;
const moviesFields = `
id int,
title text,
title_filtered text,
channel_id int,
channel_name text,
channel_slug text,
network_id int,
network_name text,
network_slug text,
entity_ids multi,
actor_ids multi,
actors text,
tag_ids multi,
tags text,
meta text,
date timestamp,
has_cover bool,
created_at timestamp,
effective_date timestamp,
stashed int,
stashed_scenes int,
stashed_total int,
dupe_index int
`;
const actorsFields = `
id int,
name text,
slug string,
gender string,
date_of_birth timestamp,
country string,
has_avatar bool,
mass int,
height int,
cup string,
natural_boobs int,
penis_length int,
penis_girth int,
stashed int,
scenes int
`;
exports.up = async () => {
try {
await utilsApi.sql(`create table if not exists scenes (${scenesFields})`);
await utilsApi.sql(`create table if not exists scenes_stashed (
scene_id int,
stash_id int,
user_id int,
created_at timestamp
)`);
await utilsApi.sql(`create table if not exists movies (${moviesFields})`);
await utilsApi.sql(`create table if not exists movies_stashed (
movie_id int,
stash_id int,
user_id int,
created_at timestamp
)`);
await utilsApi.sql(`create table if not exists actors (${actorsFields}) min_prefix_len='3'`);
await utilsApi.sql(`create table if not exists actors_stashed (
actor_id int,
stash_id int,
user_id int,
created_at timestamp
)`);
/*
await knex.schema.alterTable('stashes_scenes', (table) => table.increments('id'));
await knex.schema.alterTable('stashes_movies', (table) => table.increments('id'));
await knex.schema.alterTable('stashes_actors', (table) => table.increments('id'));
await knex.schema.alterTable('stashes_series', (table) => table.increments('id'));
*/
} catch (error) {
console.log(error);
}
};
exports.down = async (knex) => {
await utilsApi.sql('drop table if exists scenes');
await utilsApi.sql('drop table if exists scenes_stashed');
await utilsApi.sql('drop table if exists movies');
await utilsApi.sql('drop table if exists movies_stashed');
await utilsApi.sql('drop table if exists actors');
await utilsApi.sql('drop table if exists actors_stashed');
await knex.schema.alterTable('stashes_scenes', (table) => table.dropColumn('id'));
await knex.schema.alterTable('stashes_movies', (table) => table.dropColumn('id'));
await knex.schema.alterTable('stashes_actors', (table) => table.dropColumn('id'));
await knex.schema.alterTable('stashes_series', (table) => table.dropColumn('id'));
};

View File

@@ -1,758 +0,0 @@
<template>
<div
v-if="actor"
class="content actor"
>
<div class="actor-header">
<h2 class="header-name">
<span v-if="actor.entity">{{ actor.name }} ({{ actor.entity.name }})</span>
<span v-else="">{{ actor.name }}</span>
<Gender
:gender="actor.gender"
class="header-gender"
/>
</h2>
<li
v-if="actor.aliases.length"
class="bio-item"
>
<dfn class="bio-label">Also known as</dfn>
<span>{{ actor.aliases.join(', ') }}</span>
</li>
<Social
v-if="actor.social && actor.social.length > 0"
:actor="actor"
class="header-social"
/>
</div>
<div class="content-inner actor-inner">
<div
class="profile"
:class="{ expanded: bioExpanded, 'with-avatar': !!actor.avatar }"
>
<a
v-if="actor.avatar"
:href="`/media/${actor.avatar.path}`"
target="_blank"
rel="noopener noreferrer"
class="avatar-link"
>
<img
:src="sfw ? `/img/${actor.avatar.sfw.thumbnail}` : `/media/${actor.avatar.thumbnail}`"
:title="actor.avatar.credit && `© ${actor.avatar.credit}`"
class="avatar"
>
</a>
<Expand
v-if="bioExpanded"
:expanded="bioExpanded"
class="expand expand-dark"
@expand="(state) => bioExpanded = state"
/>
<ul class="bio nolist">
<li
v-if="actor.realName"
class="bio-item"
>
<dfn class="bio-label"><Icon icon="vcard" />Real name</dfn>
<span class="bio-value">{{ actor.realName }}</span>
</li>
<li
v-if="actor.dateOfBirth"
class="bio-item"
>
<dfn class="bio-label"><Icon icon="cake" />Date of birth</dfn>
<span class="birthdate">{{ formatDate(actor.dateOfBirth, 'MMMM D, YYYY') }}<span
v-if="!actor.dateOfDeath"
class="age"
>{{ actor.age }}</span></span>
</li>
<li
v-if="actor.dateOfDeath"
class="bio-item"
>
<dfn class="bio-label"><Icon icon="tombstone" />Date of death</dfn>
<span class="birthdate">{{ formatDate(actor.dateOfDeath, 'MMMM D, YYYY') }}<span
v-if="actor.ageAtDeath"
class="age"
>{{ actor.ageAtDeath }}</span></span>
</li>
<li
v-if="actor.origin"
class="bio-item birth"
>
<dfn class="bio-label"><Icon icon="home2" />Born in</dfn>
<span>
<span
v-if="actor.origin.city"
class="city"
>{{ actor.origin.city }}</span><span
v-if="actor.origin.state && (!actor.origin.city || (actor.origin.country && actor.origin.country.alpha2 === 'US'))"
class="state"
>{{ actor.origin.city ? `, ${actor.origin.state}` : actor.origin.state }}</span>
<span
v-if="actor.origin.country"
class="country birthcountry"
>
<img
class="flag"
:src="`/img/flags/${actor.origin.country.alpha2.toLowerCase()}.svg`"
>{{ actor.origin.country.alias || actor.origin.country.name }}
</span>
</span>
</li>
<li
v-if="actor.residence"
class="bio-item residence hideable"
>
<dfn class="bio-label"><Icon icon="location" />Lives in</dfn>
<span>
<span
v-if="actor.residence.city"
class="city"
>{{ actor.residence.city }}</span><span
v-if="actor.residence.state && actor.residence.country && actor.residence.country.alpha2 === 'US'"
class="state"
>{{ actor.residence.city ? `, ${actor.residence.state}` : actor.residence.state }}</span>
<span
v-if="actor.residence.country"
class="country"
>
<img
class="flag"
:src="`/img/flags/${actor.residence.country.alpha2.toLowerCase()}.svg`"
>{{ actor.residence.country.alias || actor.residence.country.name }}
</span>
</span>
</li>
<li
v-if="actor.ethnicity"
class="bio-item ethnicity hideable"
>
<dfn class="bio-label"><Icon icon="earth2" />Ethnicity</dfn>
<span>{{ actor.ethnicity }}</span>
</li>
<li
v-if="actor.bust || actor.waist || actor.hip"
title="bust-waist-hip"
class="bio-item figure"
>
<dfn class="bio-label"><Icon icon="ruler" />Figure</dfn>
<span class="bio-value">
<Icon
v-if="actor.naturalBoobs === false"
v-tooltip="'Enhanced boobs'"
icon="magic-wand2"
class="enhanced"
/>{{ actor.bust || '??' }}{{ actor.cup || '?' }}-{{ actor.waist || '??' }}-{{ actor.hip || '??' }}
</span>
</li>
<li
v-if="actor.penisLength || actor.penisGirth || actor.circumcised"
class="bio-item penis"
>
<dfn class="bio-label"><Icon icon="pencil-ruler" />Dick</dfn>
<span>
<Icon
v-if="actor.circumcised"
v-tooltip="'Circumcised'"
icon="page-break"
class="circumcised"
/>
<template v-if="actor.penisLengthMetric && actor.penisGirthMetric">
<span>{{ actor.penisLengthMetric }} * {{ actor.penisGirthMetric }} cm</span>
<span class="bio-segment">{{ actor.penisLengthImperial }}" * {{ actor.penisGirthImperial }}"</span>
</template>
<template v-else-if="actor.penisLengthMetric">
<span>{{ actor.penisLengthMetric }} cm</span>
<span class="bio-segment">{{ actor.penisLengthImperial }}"</span>
</template>
</span>
</li>
<li
v-if="actor.height"
class="bio-item height"
>
<dfn class="bio-label"><Icon icon="height" />Height</dfn>
<span>
<span class="height-metric">{{ actor.height.metric }} cm</span>
<span class="height-imperial">{{ actor.height.imperial }}</span>
</span>
</li>
<li
v-if="actor.weight"
class="bio-item weight hideable"
>
<dfn class="bio-label"><Icon icon="scale" />Weight</dfn>
<span>
<span class="weight-metric">{{ actor.weight.metric }} kg</span>
<span class="weight-imperial">{{ actor.weight.imperial }} lbs</span>
</span>
</li>
<li
v-if="actor.eyes"
class="bio-item eyes hideable"
>
<dfn class="bio-label"><Icon icon="eye" />Eyes</dfn>
<span>{{ actor.eyes }}</span>
</li>
<li
v-if="actor.hairColor"
class="bio-item hair hideable"
>
<dfn class="bio-label"><Icon icon="haircut" />Hair</dfn>
<span><span v-if="actor.hairLength">{{ actor.hairLength }}, </span>{{ actor.hairColor }}</span>
</li>
<li
v-if="actor.hasTattoos"
class="bio-item tattoos hideable"
>
<dfn class="bio-label"><Icon icon="lotus" />Tattoos</dfn>
<span
v-if="actor.tattoos"
v-tooltip="actor.tattoos"
class="bio-value"
>{{ actor.tattoos }}</span>
<span v-else>Yes</span>
</li>
<li
v-if="actor.hasPiercings"
class="bio-item piercings hideable"
>
<dfn class="bio-label"><Icon icon="trophy4" />Piercings</dfn>
<span
v-if="actor.piercings"
v-tooltip="actor.piercings"
class="bio-value"
>{{ actor.piercings }}</span>
<span v-else>Yes</span>
</li>
<li class="bio-item scraped hideable">Updated {{ formatDate(actor.updatedAt, 'YYYY-MM-DD HH:mm') }}, ID: {{ actor.id }}</li>
</ul>
<div class="descriptions-container">
<div
v-if="actor.descriptions && actor.descriptions.length > 0"
class="descriptions"
>
<p
v-for="description in actor.descriptions"
:key="`description-${description.entity.id}`"
class="description"
>
{{ description.text }}
<router-link :to="`/${description.entity.type}/${description.entity.slug}`">
<img
v-if="description.entity.type === 'network' || !description.entity.parent || description.entity.independent"
:src="`/img/logos/${description.entity.slug}/thumbs/network.png`"
class="description-logo"
>
<img
v-else
:src="`/img/logos/${description.entity.parent.slug}/thumbs/${description.entity.slug}.png`"
class="description-logo"
>
</router-link>
</p>
</div>
</div>
<Social
v-if="actor.social && actor.social.length > 0"
:actor="actor"
class="profile-social"
/>
<Expand
:expanded="bioExpanded"
class="expand expand-dark"
@expand="(state) => bioExpanded = state"
/>
</div>
<div class="actor-content">
<Scroll
v-if="actor.avatar || (actor.photos && actor.photos.length > 0)"
:expanded="photosExpanded"
class="scroll-light"
@expand="(state) => photosExpanded = state"
>
<Photos
:actor="actor"
:class="{ expanded: photosExpanded }"
/>
</Scroll>
<FilterBar
ref="filter"
:fetch-releases="fetchActor"
:items-total="totalCount"
:items-per-page="limit"
:available-tags="actor.tags"
:available-channels="actor.channels"
:available-actors="actor.actors"
/>
<Releases :releases="releases" />
<Pagination
:items-total="totalCount"
:items-per-page="limit"
class="pagination-top"
/>
</div>
<Footer />
</div>
</div>
</template>
<script>
import Pagination from '../pagination/pagination.vue';
import FilterBar from '../filters/filter-bar.vue';
import Releases from '../releases/releases.vue';
import Photos from './photos.vue';
import Expand from '../expand/expand.vue';
import Scroll from '../scroll/scroll.vue';
import Gender from './gender.vue';
import Social from './social.vue';
async function fetchActor() {
const { actor, releases, totalCount } = await this.$store.dispatch('fetchActorById', {
actorId: Number(this.$route.params.actorId),
limit: this.limit,
pageNumber: Number(this.$route.params.pageNumber),
range: this.$route.params.range,
});
this.actor = actor;
this.releases = releases;
this.totalCount = totalCount;
if (this.$refs.filter) {
this.$refs.filter.$el.scrollIntoView();
}
}
function sfw() {
return this.$store.state.ui.sfw;
}
async function route() {
await this.fetchActor();
}
async function mounted() {
await this.fetchActor();
if (this.actor) {
this.pageTitle = this.actor.name;
}
}
export default {
components: {
FilterBar,
Pagination,
Photos,
Scroll,
Expand,
Releases,
Gender,
Social,
},
data() {
return {
actor: null,
releases: null,
totalCount: 0,
limit: 15,
pageTitle: null,
bioExpanded: false,
photosExpanded: false,
};
},
computed: {
sfw,
},
watch: {
$route: route,
},
mounted,
methods: {
fetchActor,
},
};
</script>
<style lang="scss">
.header-gender .icon {
width: 1.25rem;
height: 1.25rem;
}
</style>
<style lang="scss" scoped>
@import 'theme';
.actor-header {
display: flex;
justify-content: space-between;
align-items: center;
color: var(--lighten-extreme);
background: var(--profile);
padding: .5rem 1rem;
}
.header-name {
padding: 0;
margin: 0;
display: inline-flex;
justify-content: space-between;
flex-shrink: 0;
}
.header-gender {
display: inline-block;
margin: 0 0 0 .5rem;
transform: translate(0, .1rem);
}
.header-social {
overflow: hidden;
white-space: nowrap;
margin: 0 1rem 0 0;
}
.profile {
background: var(--profile);
color: var(--lighten-extreme);
width: 100%;
max-height: 18rem;
display: flex;
flex-direction: row;
flex-shrink: 0;
&.with-avatar {
height: 18rem; /* profile overlaps avatar in chrome */
}
.avatar-link {
padding: 0 0 1rem 1rem;
flex-shrink: 0;
}
.avatar {
height: 100%;
flex-shrink: 0;
border: solid 3px var(--lighten-hint);
margin: 0 .5rem 0 0;
}
}
.bio {
flex-grow: 1;
height: 100%;
display: flex;
flex-direction: column;
flex-wrap: wrap;
box-sizing: border-box;
overflow: hidden;
}
.bio-header {
width: calc(50% - 2rem);
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 .5rem .5rem 0;
margin: 0 0 0 1rem;
}
.bio-item {
width: calc(50% - 4rem);
display: flex;
justify-content: space-between;
box-sizing: border-box;
padding: .25rem 0 ;
margin: 0 0 .25rem 1rem;
line-height: 1.75;
text-align: right;
font-size: .9rem;
font-weight: 600;
overflow: hidden;
&:not(:last-of-type) {
border-bottom: solid 1px var(--lighten-hint);
}
}
.bio-label,
.bio-value {
display: flex;
align-items: center;
}
.bio-label {
color: var(--lighten);
margin: 0 1rem 0 0;
flex-shrink: 0;
font-style: normal;
font-weight: 400;
.icon {
fill: var(--lighten);
margin: -.25rem .5rem 0 0;
}
}
.bio-value {
margin: 0 0 0 2rem;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
.icon {
margin: -.25rem 0 0 0;
}
}
.flag {
height: 1rem;
margin: .25rem .25rem 0 0;
}
.bio-name {
display: inline-block;
padding: 0;
margin: 0;
}
.birthdate {
display: block;
}
.age {
font-weight: bold;
padding: 0 0 0 .5rem;
border-left: solid 1px var(--lighten-weak);
margin: 0 0 0 .5rem;
}
.country {
display: flex;
justify-content: flex-end;
}
.figure .bio-label .icon {
margin: -.5rem .5rem 0 0;
}
.height-imperial,
.weight-imperial,
.penis-girth-imperial,
.penis-length-imperial,
.bio-segment {
padding: 0 0 0 .5rem;
border-left: solid 1px var(--lighten-weak);
margin: 0 0 0 .5rem;
}
.enhanced.icon,
.circumcised.icon {
fill: var(--primary);
padding: 0 .5rem;
}
.enhanced.icon {
transform: scaleX(-1);
}
.ethnicity,
.hair,
.eyes {
text-transform: capitalize;
}
.scraped {
color: var(--lighten-weak);
font-size: .8rem;
}
.descriptions-container {
max-width: 30rem;
max-height: 100%;
position: relative;
display: block;
flex-grow: 1;
box-sizing: border-box;
overflow: hidden;
&::after {
content: '';
width: 100%;
height: 1.5rem;
position: absolute;
bottom: 0;
background: linear-gradient(transparent, 25%, var(--profile) 75%);
pointer-events: none;
}
}
.descriptions {
height: 100%;
overflow: auto;
scrollbar-width: none;
&::-webkit-scrollbar {
display: none;
}
}
.description {
margin: 0;
padding: 0 1rem;
border-left: solid 3px var(--lighten-hint);
line-height: 1.5;
font-size: .9rem;
}
.description-logo {
display: block;
width: 12rem;
max-height: 1.5rem;
margin: .5rem 0 1.5rem 0;
object-fit: contain;
object-position: 0 50%;
}
.actor-content {
display: flex;
flex-grow: 1;
flex-direction: column;
background: var(--background-soft);
}
.heading {
padding: 0;
margin: 0 0 1rem 0;
}
.photos {
background: var(--background-dim);
}
.profile-social {
display: none;
}
.expand {
display: none;
}
.scroll {
border-bottom: solid 1px var(--shadow-hint);
}
@media(max-width: $breakpoint4) {
.descriptions-container {
display: none;
}
}
@media(max-width: $breakpoint3) {
.profile .avatar-link {
display: none;
}
.actor-content {
flex-direction: column;
}
}
@media(max-width: $breakpoint) {
.profile {
height: auto;
max-height: none;
flex-direction: column;
&.with-avatar {
height: auto;
max-height: none;
}
&:not(.expanded) .hideable {
display: none;
}
}
.bio {
width: 100%;
height: auto;
padding: 0 1rem;
margin: 0;
}
.bio-item {
width: 100%;
margin: 0;
}
.expanded .bio-value {
white-space: normal;
}
.expand {
display: block;
}
}
@media(max-width: $breakpoint0) {
.header-social {
display: none;
}
.expanded .profile-social {
display: block;
margin: 1rem 0 0 0;
}
.header-name {
flex-grow: 1;
font-size: 1.3rem;
}
}
</style>

View File

@@ -1,274 +0,0 @@
<template>
<div class="actors">
<nav class="filter">
<ul class="genders nolist">
<li class="gender">
<router-link
:to="{ name: 'actors', params: { gender: 'all', letter, pageNumber: 1 } }"
:class="{ selected: gender === 'all' }"
class="gender-link all"
>all</router-link>
</li>
<li class="gender">
<router-link
:to="{ name: 'actors', params: { gender: 'female', letter, pageNumber: 1 } }"
:class="{ selected: gender === 'female' }"
class="gender-link female"
><Gender gender="female" /></router-link>
</li>
<li class="gender">
<router-link
:to="{ name: 'actors', params: { gender: 'male', letter, pageNumber: 1 } }"
:class="{ selected: gender === 'male' }"
class="gender-link male"
replace
><Gender gender="male" /></router-link>
</li>
<li class="gender">
<router-link
:to="{ name: 'actors', params: { gender: 'trans', letter, pageNumber: 1 } }"
:class="{ selected: gender === 'trans' }"
class="gender-link transsexual"
replace
><Gender gender="transsexual" /></router-link>
</li>
<li class="gender">
<router-link
:to="{ name: 'actors', params: { gender: 'other', letter, pageNumber: 1 } }"
:class="{ selected: gender === 'other' }"
class="gender-link other"
replace
><Icon icon="question5" /></router-link>
</li>
</ul>
<ul class="letters nolist">
<li
v-for="letterX in letters"
:key="letterX"
class="letter"
>
<router-link
:to="{ name: 'actors', params: { gender, letter: letterX, pageNumber: 1 } }"
:class="{ selected: letterX === letter }"
class="letter-link"
replace
>{{ letterX || 'All' }}</router-link>
</li>
</ul>
</nav>
<Pagination
:items-total="totalCount"
:items-per-page="limit"
/>
<div
v-lazy-container="{ selector: '.lazy' }"
class="tiles"
>
<Actor
v-for="actor in actors"
:key="`actor-${actor.id}`"
:actor="actor"
/>
</div>
<Pagination
v-if="totalCount > 0"
:items-total="totalCount"
:items-per-page="limit"
class="pagination-top"
/>
<Footer />
</div>
</template>
<script>
import Actor from './tile.vue';
import Gender from './gender.vue';
import Pagination from '../pagination/pagination.vue';
async function fetchActors() {
const curatedGender = this.gender.replace('trans', 'transsexual');
const { actors, totalCount } = await this.$store.dispatch('fetchActors', {
limit: this.limit,
pageNumber: Number(this.$route.params.pageNumber) || 1,
letter: this.letter.replace('all', ''),
gender: curatedGender === 'other' ? null : curatedGender,
});
this.actors = actors;
this.totalCount = totalCount;
}
function letter() {
return this.$route.params.letter || 'all';
}
function gender() {
return this.$route.params.gender || 'all';
}
async function route() {
await this.fetchActors();
}
async function mounted() {
this.pageTitle = 'Actors';
await this.fetchActors();
}
export default {
components: {
Actor,
Gender,
Pagination,
},
data() {
return {
actors: [],
pageTitle: null,
totalCount: 0,
limit: 30,
letters: ['all'].concat(Array.from({ length: 26 }, (value, index) => String.fromCharCode(index + 97).toUpperCase())),
};
},
computed: {
letter,
gender,
},
watch: {
$route: route,
},
mounted,
methods: {
fetchActors,
},
};
</script>
<style lang="scss">
.gender-link {
&.selected .gender .icon {
fill: var(--text-light);
filter: none;
}
&:hover:not(.selected) {
.gender .icon {
fill: var(--text-light);
}
.male .icon {
filter: drop-shadow(0 0 1px var(--male));
}
.female .icon {
filter: drop-shadow(0 0 1px var(--female));
}
}
&:hover:not(.selected) .transsexual .icon {
fill: var(--female);
filter: drop-shadow(1px 0 0 var(--text-light)) drop-shadow(-1px 0 0 var(--text-light)) drop-shadow(0 1px 0 var(--text-light)) drop-shadow(0 -1px 0 var(--text-light)) drop-shadow(1px 0 0 var(--male)) drop-shadow(-1px 0 0 var(--male)) drop-shadow(0 1px 0 var(--male)) drop-shadow(0 -1px 0 var(--male)) drop-shadow(0 0 1px rgba(0, 0, 0, 0.5));
}
}
</style>
<style lang="scss" scoped>
@import 'breakpoints';
.actors {
display: flex;
flex-direction: column;
}
.tiles {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
grid-gap: .5rem;
padding: 1rem;
flex-grow: 1;
}
.filter {
display: flex;
justify-content: center;
align-items: center;
padding: 0 1rem;
margin: 1rem 0;
}
.genders {
display: flex;
flex-shrink: 0;
padding: 0 .5rem 0 0;
border-right: solid 1px var(--shadow-hint);
margin: 0 1rem 0 0;
}
.letter,
.gender {
display: inline-block;
}
.letter-link,
.gender-link {
width: 2.5rem;
height: 2.5rem;
display: flex;
align-items: center;
justify-content: center;
box-sizing: border-box;
margin: .25rem .5rem .25rem 0;
color: var(--shadow);
background: var(--background);
font-weight: bold;
text-decoration: none;
box-shadow: 0 0 3px var(--darken-weak);
.male,
.female,
.transsexual {
padding: .2rem 0 0 0;
}
.icon {
fill: var(--shadow);
}
&:hover {
color: var(--text);
cursor: pointer;
.icon {
fill: var(--text);
}
}
&.selected {
background: var(--primary);
color: var(--text-light);
&.other .icon {
fill: var(--text-light);
}
}
}
@media(max-width: $breakpoint) {
.genders {
flex-direction: column;
}
}
@media(max-width: $breakpoint-micro) {
.tiles {
grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
}
}
</style>

View File

@@ -1,41 +0,0 @@
<template>
<span
v-if="gender"
class="gender"
:class="{ [gender]: true }"
><Icon :icon="gender" /></span>
</template>
<script>
export default {
props: {
gender: {
type: String,
default: null,
},
},
};
</script>
<style lang="scss" scoped>
@import 'theme';
.gender {
&.female .icon {
fill: var(--female);
filter: drop-shadow(0 0 1px var(--shadow));
}
&.male .icon {
fill: var(--male);
filter: drop-shadow(0 0 1px var(--shadow));
}
&.transsexual .icon {
fill: var(--text-contrast);
filter: drop-shadow(1px 0 0 var(--female)) drop-shadow(-1px 0 0 var(--female)) drop-shadow(0 1px 0 var(--female)) drop-shadow(0 -1px 0 var(--female))
drop-shadow(1px 0 0 var(--male)) drop-shadow(-1px 0 0 var(--male)) drop-shadow(0 1px 0 var(--male)) drop-shadow(0 -1px 0 var(--male))
drop-shadow(0 0 1px var(--shadow))
}
}
</style>

View File

@@ -1,136 +0,0 @@
<template>
<div
v-lazy-container
class="photos"
:class="{
avatar: !!actor.avatar,
empty: actor.photos.length === 0,
}"
>
<a
v-show="actor.avatar"
:href="`/media/${actor.avatar.path}`"
target="_blank"
rel="noopener noreferrer"
class="avatar-link photo-link"
>
<img
:src="sfw ? `/img/${actor.avatar.sfw.thumbnail}` : `/media/${actor.avatar.thumbnail}`"
:data-src="sfw ? `/img/${actor.avatar.sfw.thumbnail}` : `/media/${actor.avatar.thumbnail}`"
:data-loading="sfw ? `/img/${actor.avatar.sfw.lazy}` : `/media/${actor.avatar.lazy}`"
:title="actor.avatar.credit && `© ${actor.avatar.credit}`"
class="avatar photo"
@load="$parent.$emit('load')"
>
</a>
<a
v-for="photo in actor.photos"
:key="`photo-${photo.id}`"
:href="`/media/${photo.path}`"
target="_blank"
rel="noopener noreferrer"
class="photo-link"
>
<img
:src="sfw ? `/img/${photo.sfw.thumbnail}` : `/media/${photo.thumbnail}`"
:data-src="sfw ? `/img/${photo.sfw.thumbnail}` : `/media/${photo.thumbnail}`"
:data-loading="sfw ? `/img/${photo.sfw.lazy}` : `/media/${photo.lazy}`"
:title="`© ${photo.credit || photo.entity.name}`"
class="photo"
@load="$parent.$emit('load')"
>
</a>
</div>
</template>
<script>
function sfw() {
return this.$store.state.ui.sfw;
}
export default {
props: {
actor: {
type: Object,
default: null,
},
},
computed: {
sfw,
},
};
</script>
<style lang="scss" scoped>
@import 'theme';
.photos {
display: flex;
box-sizing: border-box;
padding: .5rem 1rem;
margin: 0 1rem 0 0;
font-size: 0;
overflow-x: scroll;
scroll-behavior: smooth;
scrollbar-width: none;
&.expanded {
flex-wrap: wrap;
justify-content: center;
margin: 0;
.photo-link {
margin: 0 .5rem .5rem 0;
}
.photo {
height: 18rem;
}
}
&.empty {
display: none;
}
.avatar-link {
display: none;
}
&::-webkit-scrollbar {
display: none;
}
}
.photo-link {
margin: 0 .5rem 0 0;
}
.photo {
height: 15rem;
box-shadow: 0 0 3px var(--darken-weak);
object-fit: cover;
}
@media(max-width: $breakpoint3) {
.photos {
&.empty.avatar {
display: flex;
}
.avatar-link {
display: inline-block;
}
&.expanded {
grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
}
}
}
@media(max-width: $breakpoint0) {
.photos.expanded {
grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
}
}
</style>

View File

@@ -1,61 +0,0 @@
<template>
<div
v-if="actor"
class="social"
>
<a
v-for="social in actor.social"
:key="`social-${social.id}`"
v-tooltip.bottom="social.url"
:href="social.url"
target="_blank"
rel="noopener noreferrer"
class="social-link"
>
<Icon
v-if="social.platform"
:icon="social.platform"
/>
<Icon
v-else
icon="link"
/>
</a>
</div>
</template>
<script>
export default {
props: {
actor: {
type: Object,
default: null,
},
},
};
</script>
<style lang="scss" scoped>
@import 'theme';
.social {
display: block;
}
.social-link {
display: inline-block;
padding: 0 0 0 1rem;
.icon {
color: var(--highlight);
fill: var(--highlight);
width: 1.5rem;
height: 1.5rem;
}
&:hover .icon {
fill: var(--primary);
}
}
</style>

View File

@@ -1,281 +0,0 @@
<template>
<div
v-if="actor"
class="actor"
>
<router-link
:to="{ name: 'actor', params: { actorId: actor.id, actorSlug: actor.slug } }"
class="link"
>
<span
class="handle"
>
<span
v-tooltip.top="actor.name"
class="name"
>{{ actor.name }}</span>
<router-link
v-if="actor.network"
v-tooltip="actor.network.name"
:to="{ name: 'network', params: { networkSlug: actor.network.slug } }"
class="favicon"
>
<img
:src="`/img/logos/${actor.network.slug}/favicon.png`"
class="favicon-icon"
>
</router-link>
<Icon
v-if="alias"
v-tooltip="`Alias of ${alias.name}`"
icon="users3"
class="favicon alias"
/>
<Icon
v-if="actor.dateOfDeath"
v-tooltip="`Died ${formatDate(actor.dateOfDeath, 'MMMM D, YYYY')}`"
icon="tombstone"
class="favicon died"
/>
</span>
<div class="avatar-container">
<img
v-if="actor.avatar"
:data-src="sfw ? `/img/${actor.avatar.sfw.thumbnail}` : `/media/${actor.avatar.thumbnail}`"
:data-loading="sfw ? `/img/${actor.avatar.sfw.lazy}` : `/media/${actor.avatar.lazy}`"
class="avatar lazy"
>
<span
v-else
class="avatar"
><img
:src="`/img/avatar_${actor.gender || 'female'}.svg`"
class="avatar-fallback"
></span>
<span
class="details"
>
<span class="gender-age">
<Gender :gender="actor.gender" />
<span
v-if="actor.ageAtDeath"
v-tooltip="`Born ${formatDate(actor.dateOfBirth, 'MMMM D, YYYY')}<br>Died ${formatDate(actor.dateOfDeath, 'MMMM D, YYYY')}`"
class="age-death"
>{{ actor.ageAtDeath }}</span>
<span
v-else-if="actor.age"
v-tooltip="`Born on ${formatDate(actor.dateOfBirth, 'MMMM D, YYYY')}`"
class="age-now"
>{{ actor.age }}</span>
<span
v-if="actor.ageThen && actor.ageThen < actor.age"
v-tooltip="`${actor.ageThen} years old on release date`"
class="age-then"
>{{ actor.ageThen }}</span>
</span>
<span
v-if="actor.origin"
v-tooltip="`Born in ${actor.origin.country.alias || actor.origin.country.name}`"
class="country"
>
{{ actor.origin.country.alpha2 }}
<img
class="flag"
:src="`/img/flags/${actor.origin.country.alpha2.toLowerCase()}.svg`"
>
</span>
<span
v-else
class="country"
/>
</span>
</div>
</router-link>
</div>
</template>
<script>
import Gender from './gender.vue';
function sfw() {
return this.$store.state.ui.sfw;
}
export default {
components: {
Gender,
},
props: {
actor: {
type: Object,
default: null,
},
alias: {
type: Object,
default: null,
},
},
computed: {
sfw,
},
};
</script>
<style lang="scss" scoped>
@import 'theme';
.actor {
width: 100%;
display: inline-block;
position: relative;
box-shadow: 0 0 3px var(--darken-weak);
background: var(--background);
overflow: hidden;
&::before {
content: '';
display: inline-block;
padding-bottom: 150%;
}
}
.link {
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
position: absolute;
top: 0;
left: 0;
color: var(--text);
text-decoration: none;
&:hover {
color: var(--primary);
}
}
.handle {
display: flex;
align-items: center;
justify-content: center;
font-weight: bold;
box-shadow: 0 0 3px var(--shadow);
.name {
padding: .5rem;
}
.alias {
fill: var(--shadow);
}
}
.favicon {
font-size: 0;
padding: .5rem .25rem;
&:last-child {
padding: .5rem;
}
&.died {
fill: var(--shadow);
}
}
.favicon-icon {
width: 1rem;
height: 1rem;
}
.name {
flex-grow: 1;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.avatar-container {
display: flex;
flex-grow: 1;
position: relative;
overflow: hidden;
background: var(--profile);
}
.avatar {
color: var(--darken-weak);
background: var(--darken-hint);
width: 100%;
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
object-fit: cover;
object-position: 50% 0;
}
.avatar-fallback {
max-height: 100%;
max-width: 100%;
opacity: .1;
}
.details {
background: var(--darken);
color: var(--text-light);
width: 100%;
height: 1.75rem;
display: flex;
align-items: center;
justify-content: space-between;
box-sizing: border-box;
padding: .5rem;
position: absolute;
bottom: 0;
font-size: .9rem;
font-weight: bold;
}
.gender-age {
display: flex;
align-items: center;
}
.gender {
margin: .25rem .25rem 0 0;
}
.country {
display: flex;
justify-content: flex-end;
align-items: center;
}
.flag {
height: .75rem;
margin: 0 0 0 .5rem;
}
.age-now,
.age-death {
margin: 0 .25rem 0 0;
}
.age-then {
color: var(--lighten);
}
</style>

View File

@@ -1,125 +0,0 @@
<template>
<div
class="container"
:class="theme"
>
<transition name="slide">
<Sidebar
v-if="showSidebar"
@toggle="(state) => showSidebar = state"
/>
</transition>
<Header :toggle-sidebar="toggleSidebar" />
<div class="content">
<router-view />
</div>
</div>
</template>
<script>
import { mapState } from 'vuex';
import EventBus from '../../js/event-bus';
import Header from '../header/header.vue';
import Sidebar from '../sidebar/sidebar.vue';
function theme(state) {
return state.ui.theme;
}
function toggleSidebar(state) {
this.showSidebar = typeof state === 'boolean' ? state : !this.showSidebar;
}
function mounted() {
document.addEventListener('click', () => {
EventBus.$emit('blur');
});
}
export default {
components: {
Header,
Sidebar,
},
data() {
return {
showSidebar: false,
};
},
computed: {
...mapState({
theme,
}),
},
mounted,
methods: {
toggleSidebar,
},
};
</script>
<style lang="scss">
@import 'theme';
.container {
position: relative;
height: 100%;
display: flex;
flex-direction: column;
overflow: hidden;
background: var(--background-soft);
color: var(--text);
}
.content {
display: flex;
flex-direction: column;
flex-grow: 1;
overflow-y: auto;
overflow-x: hidden;
}
.content-inner {
display: flex;
flex-direction: column;
flex-grow: 1;
overflow-y: auto;
overflow-x: hidden;
box-shadow: 0 0 3px var(--shadow-weak);
z-index: 1;
}
.slide-enter-active,
.slide-leave-active {
&.sidebar-container {
transition: background .15s ease-in-out;
}
.sidebar {
transition: transform .15s ease-in-out;
}
}
.slide-enter,
.slide-leave-to {
&.sidebar-container {
background: transparent;
}
.sidebar {
transform: translate(100%, 0);
}
}
.column {
width: 1200px;
max-width: 100%;
padding: 0 1rem;
margin: 0 auto;
box-sizing: border-box;
}
</style>

View File

@@ -1,66 +0,0 @@
<template>
<div class="children">
<EntityTile
v-for="child in entity.children"
:key="`child-${child.id}`"
:entity="child"
/>
</div>
</template>
<script>
import EntityTile from './tile.vue';
export default {
components: {
EntityTile,
},
props: {
entity: {
type: Object,
default: null,
},
},
};
</script>
<style lang="scss" scoped>
@import 'theme';
.children {
display: flex;
box-sizing: border-box;
padding: 1rem;
margin: 0 1rem 0 0;
border-bottom: solid 1px var(--darken-hint);
overflow-x: auto;
scroll-behavior: smooth;
scrollbar-width: none;
.tile {
width: 15rem;
margin: 0 1rem 0 0;
}
&.expanded {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
grid-gap: 1rem;
margin: 0;
.tile {
width: 100%;
}
}
&::-webkit-scrollbar {
display: none;
}
}
@media(max-width: $breakpoint0) {
.children.expanded {
grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
}
}
</style>

View File

@@ -1,276 +0,0 @@
<template>
<div
v-if="entity"
class="entity content"
>
<div class="info">
<a
:href="entity.url"
target="_blank"
rel="noopener"
class="link link-child"
>
<template v-if="entity.hasLogo">
<img
v-if="$route.name === 'network'"
class="logo logo-child"
:src="`/img/logos/${entity.slug}/thumbs/network.png`"
>
<img
v-else-if="entity.parent && !entity.independent"
class="logo logo-child"
:src="`/img/logos/${entity.parent.slug}/thumbs/${entity.slug}.png`"
>
<img
v-else
class="logo logo-child"
:src="`/img/logos/${entity.slug}/thumbs/${entity.slug}.png`"
>
</template>
<h2
v-else
class="name"
>{{ entity.name }}</h2>
<Icon
v-if="entity.url"
icon="share2"
/>
</a>
<ul
v-if="entity.tags.length > 0"
class="tags"
>
<li
v-for="tag in entity.tags"
:key="`tag-${tag.slug}`"
>{{ tag.name }}</li>
</ul>
<router-link
v-if="entity.parent"
:to="`/${entity.parent.type}/${entity.parent.slug}`"
class="link link-parent"
>
<img
v-if="entity.parent.hasLogo"
class="logo logo-parent"
:src="`/img/logos/${entity.parent.slug}/thumbs/network.png`"
>
<img
v-if="entity.parent.hasLogo"
class="favicon"
:src="`/img/logos/${entity.parent.slug}/favicon.png`"
>
<h3
v-else
class="name parent-name"
>{{ entity.parent.name }}</h3>
</router-link>
</div>
<div
ref="content"
class="content-inner"
>
<Scroll
v-if="entity.children.length > 0"
:expanded="expanded"
class="scroll-dark"
@expand="(state) => expanded = state"
>
<Children
:entity="entity"
:class="{ expanded }"
/>
</Scroll>
<FilterBar
:fetch-releases="fetchEntity"
:items-total="totalCount"
:items-per-page="limit"
/>
<div class="releases">
<Releases :releases="entity.releases" />
<Pagination
:items-total="totalCount"
:items-per-page="limit"
class="pagination-top"
/>
</div>
<Footer />
</div>
</div>
</template>
<script>
import Vue from 'vue';
import FilterBar from '../filters/filter-bar.vue';
import Pagination from '../pagination/pagination.vue';
import Releases from '../releases/releases.vue';
import Children from './children.vue';
import Scroll from '../scroll/scroll.vue';
async function fetchEntity() {
const { entity, totalCount } = await this.$store.dispatch('fetchEntityBySlugAndType', {
entitySlug: this.$route.params.entitySlug,
entityType: this.$route.name,
limit: this.limit,
range: this.$route.params.range,
pageNumber: Number(this.$route.params.pageNumber),
});
this.entity = entity;
this.totalCount = totalCount;
this.pageTitle = entity.name;
Vue.nextTick(() => {
this.$refs.content.scrollTop = 0;
});
}
async function mounted() {
await this.fetchEntity();
}
async function route() {
await this.fetchEntity();
this.expanded = false;
}
export default {
components: {
FilterBar,
Pagination,
Children,
Releases,
Scroll,
},
data() {
return {
entity: null,
pageTitle: null,
totalCount: null,
limit: Number(this.$route.query.limit) || 20,
expanded: false,
};
},
watch: {
$route: route,
},
mounted,
methods: {
fetchEntity,
},
};
</script>
<style lang="scss" scoped>
@import 'breakpoints';
.info {
display: flex;
justify-content: space-between;
background: var(--profile);
border-bottom: solid 1px var(--lighten-hint);
}
.link {
max-width: 20rem;
display: flex;
align-items: center;
box-sizing: border-box;
padding: 1rem;
text-decoration: none;
}
.link-child {
.icon {
fill: var(--lighten);
margin: 0 0 0 1rem;
}
&:hover .icon {
fill: var(--text-light);
}
}
.link-parent {
flex-direction: row-reverse;
margin: 0 0 0 3rem;
}
.logo {
height: 100%;
max-width: 100%;
object-fit: contain;
}
.logo-child {
height: 2rem;
}
.logo-parent {
height: 1.5rem;
}
.favicon {
height: 1rem;
}
.content-inner {
display: flex;
flex-direction: column;
}
.releases {
flex-grow: 1;
}
.name {
color: var(--text-light);
display: flex;
align-items: center;
padding: 0;
margin: 0;
white-space: nowrap;
font-size: 1.5rem;
}
.favicon {
display: none;
}
@media(max-width: $breakpoint) {
.tags {
display: none;
}
}
@media(max-width: $breakpoint-micro) {
.logo-parent {
display: none;
}
.favicon {
display: inline-block;
}
}
@media(max-width: $breakpoint-nano) {
.link-child .icon {
display: none;
}
}
</style>

View File

@@ -1,78 +0,0 @@
<template>
<router-link
:to="`/${entity.type}/${entity.slug}`"
:title="entity.name"
class="tile"
>
<template v-if="entity.hasLogo">
<img
v-if="entity.type === 'network' || entity.independent"
:src="`/img/logos/${entity.slug}/thumbs/network.png`"
:alt="entity.name"
class="logo"
>
<img
v-else-if="entity.parent"
:src="`/img/logos/${entity.parent.slug}/thumbs/${entity.slug}.png`"
:alt="entity.name"
class="logo"
>
<img
v-else
:src="`/img/logos/${entity.slug}/thumbs/${entity.slug}.png`"
:alt="entity.name"
class="logo"
>
</template>
<span
v-else
class="name"
>{{ entity.name }}</span>
</router-link>
</template>
<script>
export default {
props: {
entity: {
type: Object,
default: null,
},
},
};
</script>
<style lang="scss" scoped>
@import 'theme';
.tile {
height: 6rem;
background: var(--tile);
display: flex;
flex-shrink: 0;
justify-content: center;
align-items: center;
box-sizing: border-box;
padding: .5rem 1rem;
border-radius: .25rem;
box-shadow: 0 0 3px rgba(0, 0, 0, .25);
text-align: center;
text-decoration: none;
}
.logo {
max-width: 100%;
max-height: 100%;
display: flex;
align-items: center;
}
.name {
color: var(--text-light);
font-size: 1.25rem;
font-weight: bold;
}
</style>

View File

@@ -1,34 +0,0 @@
<template>
<div class="errorpage">
<h1 class="error">404 - Not Found</h1>
<a
href="/"
class="home"
>Take me home</a>
</div>
</template>
<style lang="scss" scoped>
@import 'theme';
.errorpage {
background: var(--background);
color: var(--primary);
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-size: 2rem;
}
.error {
margin: 0;
}
.home {
color: var(--shadow);
margin: 3rem 0;
}
</style>

View File

@@ -1,63 +0,0 @@
<template>
<div>
<div
v-show="expanded"
class="expand-button expanded noselect"
@click="$emit('expand', false)"
><Icon icon="arrow-up3" /></div>
<div
v-show="!expanded"
class="expand-button noselect"
@click="$emit('expand', true)"
><Icon icon="arrow-down3" /></div>
</div>
</template>
<script>
export default {
props: {
expanded: {
type: Boolean,
default: false,
},
},
};
</script>
<style lang="scss" scoped>
.expand-button {
width: 100%;
display: flex;
align-items: center;
justify-content: center;
padding: .5rem;
.icon {
fill: var(--shadow);
}
&:hover {
cursor: pointer;
background: var(--shadow-hint);
.icon {
fill: var(--text);
}
}
}
.expand-dark {
.icon {
fill: var(--lighten);
}
&:hover {
background: var(--lighten-hint);
.icon {
fill: var(--text-light);
}
}
}
</style>

View File

@@ -1,86 +0,0 @@
<template>
<v-popover class="filter-container">
<div class="filter">
<Icon icon="users" />
<div
v-if="selectedActors.length > 0"
class="filter-applied"
>{{ selectedActors.length }} {{ selectedActors.length > 1 ? 'actors' : 'actor' }}</div>
<div
v-else
class="filter-applied empty"
>Actors</div>
</div>
<div slot="popover">
<router-link
class="filter-clear"
:to="{ query: { ...$route.query, actors: undefined } }"
:class="{ active: selectedActors.length > 0 }"
>clear all<Icon icon="cross2" /></router-link>
<ul class="filter-items nolist">
<li
v-for="actor in availableActors"
:key="actor.id"
class="filter-item"
:class="{ selected: selectedActors.includes(actor.slug) }"
>
<router-link
:to="{ query: {
...$route.query,
actors: actor.slug,
}, params: { pageNumber: 1 } }"
class="filter-name"
>{{ actor.name }}</router-link>
<router-link
:to="{ query: { ...$route.query, ...getNewRange(actor) }, params: { pageNumber: 1 } }"
class="filter-include"
>
<Icon
icon="checkmark"
class="filter-add"
/>
<Icon
icon="cross2"
class="filter-remove"
/>
</router-link>
</li>
</ul>
</div>
</v-popover>
</template>
<script>
function getNewRange(actor) {
if (this.selectedActors.includes(actor.slug)) {
return { actors: this.selectedActors.filter(selectedActor => selectedActor !== actor.slug).join(',') || undefined };
}
return { actors: this.selectedActors.concat(actor.slug).join(',') };
}
function selectedActors() {
return this.$route.query.actors ? this.$route.query.actors.split(',') : [];
}
export default {
props: {
availableActors: {
type: Array,
default: () => [],
},
},
computed: {
selectedActors,
},
methods: {
getNewRange,
},
};
</script>

View File

@@ -1,177 +0,0 @@
<template>
<v-popover class="filter-container">
<div class="filter">
<Icon icon="antenna" />
<div
v-if="selectedLength > 0"
class="filter-applied"
>{{ selectedLength }} {{ selectedLength > 1 ? 'channels' : 'channel' }}</div>
<div
v-else
class="filter-applied empty"
>Channels</div>
</div>
<div slot="popover">
<router-link
class="filter-clear"
:to="{ query: { ...$route.query, channels: undefined, networks: undefined } }"
:class="{ active: selectedLength > 0 }"
>clear all<Icon icon="cross2" /></router-link>
<ul class="filter-items nolist">
<li
v-for="channel in channelsPerNetwork"
:key="`channel-${channel.id}`"
class="filter-item"
:class="{
[channel.type]: true,
independent: channel.independent,
selected: channel.type === 'network' ? selectedNetworks.includes(channel.slug) : selectedChannels.includes(channel.slug),
disabled: channel.parent && selectedNetworks.includes(channel.parent.slug),
}"
>
<router-link
:to="{ query: {
...$route.query,
[channel.type === 'network' ? 'networks' : 'channels']: channel.slug,
[channel.type === 'network' ? 'channels' : 'networks']: undefined,
}, params: { pageNumber: 1 } }"
class="filter-name"
>
<img
v-if="channel.type === 'network' || channel.independent || !channel.parent "
:src="`/img/logos/${channel.slug}/favicon.png`"
class="favicon"
>
{{ channel.name }}
</router-link>
<router-link
:to="{ query: { ...$route.query, ...getNewRange(channel) }, params: { pageNumber: 1 } }"
class="filter-include"
>
<Icon
icon="checkmark"
class="filter-add"
/>
<Icon
icon="cross2"
class="filter-remove"
/>
</router-link>
</li>
</ul>
</div>
</v-popover>
</template>
<script>
function getNewRange(entity) {
if (entity.type === 'network' && this.selectedNetworks.includes(entity.slug)) {
return {
channels: this.selectedChannels.join(',') || undefined,
networks: this.selectedNetworks.filter(selectedTag => selectedTag !== entity.slug).join(',') || undefined,
};
}
if (entity.type === 'network') {
return {
channels: this.selectedChannels.join(',') || undefined,
networks: this.selectedNetworks.concat(entity.slug).join(','),
};
}
if (this.selectedChannels.includes(entity.slug)) {
return {
channels: this.selectedChannels.filter(selectedTag => selectedTag !== entity.slug).join(',') || undefined,
networks: this.selectedNetworks.join(',') || undefined,
};
}
return {
channels: this.selectedChannels.concat(entity.slug).join(','),
networks: this.selectedNetworks.join(',') || undefined,
};
}
function selectedChannels() {
return this.$route.query.channels ? this.$route.query.channels.split(',') : [];
}
function selectedNetworks() {
return this.$route.query.networks ? this.$route.query.networks.split(',') : [];
}
function channelsPerNetwork() {
const networks = this.availableChannels.reduce((acc, channel) => {
if (channel.type === 'network' || channel.independent || !channel.parent) {
acc[channel.slug] = { ...channel, children: [] };
return acc;
}
if (!acc[channel.parent.slug]) {
acc[channel.parent.slug] = { ...channel.parent, children: [] };
}
acc[channel.parent.slug].children.push(channel);
return acc;
}, {});
return Object.values(networks).reduce((acc, network) => [...acc, network, ...(network.children || [])], []);
}
function selectedLength() {
return this.selectedChannels.length + this.selectedNetworks.length;
}
export default {
props: {
filter: {
type: Array,
default: () => [],
},
compact: {
type: Boolean,
default: false,
},
availableChannels: {
type: Array,
default: () => [],
},
},
computed: {
channelsPerNetwork,
selectedChannels,
selectedNetworks,
selectedLength,
},
methods: {
getNewRange,
},
};
</script>
<style lang="scss" scoped>
.favicon {
width: 1rem;
height: 1rem;
padding: 0 .75rem 0 0;
filter: drop-shadow(0 0 1px var(--darken));
}
.network .filter-name,
.independent .filter-name {
font-weight: bold;
padding: .5rem;
}
.channel:not(.independent) .filter-name {
padding: .5rem .5rem .5rem 2.25rem;
}
</style>

View File

@@ -1,354 +0,0 @@
<template>
<div class="filter-bar noselect">
<div class="sort">
<router-link
:to="{ params: { range: 'latest', pageNumber: 1 }, query: $route.query }"
:class="{ active: $route.name === 'latest' || range === 'latest' }"
class="range range-button"
>Latest</router-link>
<router-link
:to="{ params: { range: 'upcoming', pageNumber: 1 }, query: $route.query }"
:class="{ active: $route.name === 'upcoming' || range === 'upcoming' }"
class="range-button"
>Upcoming</router-link>
<router-link
:to="{ params: { range: 'new', pageNumber: 1 }, query: $route.query }"
:class="{ active: $route.name === 'new' || range === 'new' }"
class="range-button"
>New</router-link>
</div>
<div class="filters">
<ActorFilter
class="filters-filter"
:filter="filter"
:available-actors="availableActors"
/>
<ChannelFilter
class="filters-filter"
:filter="filter"
:available-channels="availableChannels"
/>
<TagFilter
class="filters-filter"
:filter="filter"
:available-tags="availableTags"
/>
</div>
</div>
</template>
<script>
import { mapState } from 'vuex';
import ActorFilter from './actor-filter.vue';
import ChannelFilter from './channel-filter.vue';
import TagFilter from './tag-filter.vue';
function filter(state) {
return state.ui.filter;
}
function range() {
return this.$route.params.range;
}
function batch(state) {
return state.ui.batch;
}
async function setRange(newRange) {
this.$store.dispatch('setRange', newRange);
await this.fetchReleases();
}
async function setBatch(newBatch) {
this.$store.dispatch('setBatch', newBatch);
await this.fetchReleases();
}
export default {
components: {
ActorFilter,
ChannelFilter,
TagFilter,
},
props: {
fetchReleases: {
type: Function,
default: null,
},
isHome: {
type: Boolean,
default: false,
},
itemsTotal: {
type: Number,
default: 0,
},
itemsPerPage: {
type: Number,
default: 10,
},
availableTags: {
type: Array,
default: () => [],
},
availableChannels: {
type: Array,
default: () => [],
},
availableActors: {
type: Array,
default: () => [],
},
},
computed: {
...mapState({
filter,
range,
batch,
}),
},
methods: {
setRange,
setBatch,
},
};
</script>
<style lang="scss">
@import 'breakpoints';
.filter {
color: var(--shadow);
display: inline-flex;
align-items: center;
.icon {
fill: var(--shadow);
margin: -.1rem 0 0 0;
}
&:hover {
cursor: pointer;
.applied {
color: var(--shadow-strong);
}
.icon {
fill: var(--shadow-strong);
}
}
}
.filter-applied {
flex-grow: 1;
padding: .75rem .5rem;
font-size: 1rem;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
text-align: right;
&.empty {
color: var(--shadow);
}
}
.filter-mode {
width: 100%;
background: none;
padding: .75rem;
margin: 0 0 .5rem 0;
font-size: 1rem;
border: none;
border-bottom: solid 1px var(--shadow-hint);
}
.filter-clear {
display: flex;
align-items: center;
justify-content: space-between;
padding: .5rem 1rem;
color: var(--darken-weak);
text-decoration: none;
cursor: default;
.icon {
fill: var(--darken-hint);
margin: 0 0 0 1rem;
}
&.active {
color: var(--darken);
.icon {
fill: var(--darken-weak);
}
&:hover {
color: var(--text);
background: var(--darken-hint);
cursor: pointer;
.icon {
fill: var(--alert);
}
}
}
}
.filter-items .filter-item {
display: flex;
align-items: center;
&:hover {
background: var(--darken-hint);
cursor: pointer;
}
&.selected {
.filter-include {
.filter-add {
fill: var(--success);
}
&:hover {
.filter-add {
display: none;
}
.filter-remove {
display: inline-block;
}
}
}
}
}
.filter-include {
.icon {
width: 1rem;
height: 1rem;
padding: .5rem 1rem;
fill: var(--darken-hint);
}
.filter-remove {
display: none;
fill: var(--alert);
}
&:hover {
cursor: pointer;
}
}
.filter-name {
min-width: 8rem;
display: flex;
flex-grow: 1;
padding: .5rem .75rem .5rem 1rem;
color: var(--text);
text-decoration: none;
}
.filter-include:hover,
.filter-name:hover {
background: var(--darken-hint);
}
@media(max-width: $breakpoint-small) {
.filter-applied {
display: none;
}
.filters-filter:not(:last-child) .filter {
padding: .5rem;
}
.filters-filter:last-child .filter {
padding: .5rem 0 .5rem .5rem;
}
}
</style>
<style lang="scss" scoped>
@import 'theme';
.filter-bar {
display: flex;
justify-content: space-between;
align-items: center;
padding: .5rem 1rem 0 1rem;
z-index: 1;
background: var(--background-dim);
font-size: 0;
.icon {
margin: 0 .5rem 0 0;
fill: var(--shadow);
}
}
.filters {
flex-shrink: 0;
}
.sort {
display: flex;
align-items: center;
}
.range-button {
color: var(--shadow);
display: inline-block;
padding: .8rem 1rem;
border: none;
position: relative;
font-size: .8rem;
font-weight: bold;
text-decoration: none;
border: solid 1px transparent;
border-bottom: none;
&:hover:not(.active) {
color: var(--shadow-strong);
cursor: pointer;
}
&.active {
color: var(--primary);
background: var(--background-soft);
border-color: var(--crease);
&::after {
/* hide grey border for tab effect, negative margin shows grey crease on mobile */
content: '';
width: 100%;
height: 2px;
background: var(--background-soft);
position: absolute;
left: 0;
bottom: -2px;
}
}
}
.filters-filter {
display: inline-block;
flex-shrink: 0;
&:not(:last-child) {
margin: 0 1rem 0 0;
}
}
</style>

View File

@@ -1,105 +0,0 @@
<template>
<v-popover class="filter-container">
<div class="filter">
<Icon icon="price-tag4" />
<div
v-if="selectedTags.length > 0"
class="filter-applied"
>{{ selectedTags.length }} {{ selectedTags.length > 1 ? 'tags' : 'tag' }}</div>
<div
v-else
class="filter-applied empty"
>Tags</div>
</div>
<div slot="popover">
<select
v-model="mode"
class="filter-mode"
@change="$router.push({ query: { ...$route.query, mode }, params: { pageNumber: 1 } })"
>
<option value="all">match all selected</option>
<option value="any">match any selected</option>
</select>
<router-link
class="filter-clear"
:to="{ query: { ...$route.query, tags: undefined, mode: undefined } }"
:class="{ active: selectedTags.length > 0 }"
>clear all<Icon icon="cross2" /></router-link>
<ul class="filter-items nolist">
<li
v-for="tag in availableTags"
:key="`tag-${tag.id}`"
class="filter-item"
:class="{ selected: selectedTags.includes(tag.slug) }"
>
<router-link
:to="{ query: { ...$route.query, tags: tag.slug, mode }, params: { pageNumber: 1 } }"
class="filter-name"
>{{ tag.name }}</router-link>
<router-link
:to="{ query: { ...$route.query, ...getNewRange(tag.slug), mode }, params: { pageNumber: 1 } }"
class="filter-include"
>
<Icon
icon="checkmark"
class="filter-add"
/>
<Icon
icon="cross2"
class="filter-remove"
/>
</router-link>
</li>
</ul>
</div>
</v-popover>
</template>
<script>
function getNewRange(tag) {
if (this.selectedTags.includes(tag)) {
return { tags: this.selectedTags.filter(selectedTag => selectedTag !== tag).join(',') || undefined };
}
return { tags: this.selectedTags.concat(tag).join(',') };
}
function selectedTags() {
return this.$route.query.tags ? this.$route.query.tags.split(',') : [];
}
export default {
props: {
filter: {
type: Array,
default: () => [],
},
compact: {
type: Boolean,
default: false,
},
availableTags: {
type: Array,
default: () => [],
},
},
data() {
return {
mode: this.$route.query.mode || 'all',
};
},
computed: {
selectedTags,
},
methods: {
getNewRange,
},
};
</script>

View File

@@ -1,36 +0,0 @@
<template>
<footer class="footer">
<span class="segment">© traxxx</span>
<router-link
:to="{ name: 'stats' }"
class="segment footer-link nolink"
>stats</router-link>
</footer>
</template>
<style lang="scss" scoped>
.footer {
background: var(--background-dim);
color: var(--shadow);
font-size: .8rem;
font-weight: bold;
text-align: center;
}
.segment {
padding: .5rem;
&:not(:last-child) {
border-right: solid 1px var(--shadow-hint);
}
}
.footer-link {
text-decoration: underline;
&:hover {
color: var(--primary);
}
}
</style>

View File

@@ -1,390 +0,0 @@
<template>
<header class="header">
<div class="header-nav">
<router-link
to="/"
class="logo-link"
><h1 class="header-logo">
<div
class="logo"
v-html="logo"
/>
</h1></router-link>
<nav class="nav">
<ul class="nav-list nolist">
<li class="nav-item">
<router-link
v-slot="{ href, isActive, navigate }"
to="/actors"
>
<a
class="nav-link"
:href="href"
:class="{ active: isActive }"
@click="navigate"
>Actors</a>
</router-link>
</li>
<li class="nav-item">
<router-link
v-slot="{ href, isActive, navigate }"
to="/networks"
>
<a
class="nav-link"
:href="href"
:class="{ active: isActive }"
@click="navigate"
>Channels</a>
</router-link>
</li>
<li class="nav-item">
<router-link
v-slot="{ href, isActive, navigate }"
to="/tags"
>
<a
class="nav-link"
:href="href"
:class="{ active: isActive }"
@click="navigate"
>Tags</a>
</router-link>
</li>
<li class="nav-item">
<router-link
v-slot="{ href, isActive, navigate }"
to="/movies"
>
<a
class="nav-link"
:href="href"
:class="{ active: isActive }"
@click="navigate"
>Movies</a>
</router-link>
</li>
</ul>
</nav>
</div>
<div class="header-section">
<div
class="sidebar-toggle noselect"
@click.stop="toggleSidebar"
><Icon icon="menu" /></div>
<div class="header-toggles">
<Icon
v-show="!sfw"
v-tooltip="'Hit S to enable safe mode'"
icon="flower"
class="toggle noselect"
@click.native="setSfw(true)"
/>
<Icon
v-show="sfw"
v-tooltip="'Hit N to disable safe mode'"
icon="fire"
class="toggle noselect"
@click.native="setSfw(false)"
/>
<Icon
v-show="theme === 'light'"
v-tooltip="'Hit D to use dark theme'"
icon="moon"
class="toggle noselect"
@click.native="setTheme('dark')"
/>
<Icon
v-show="theme === 'dark'"
v-tooltip="'Hit L to use light theme'"
icon="sun"
class="toggle noselect"
@click.native="setTheme('light')"
/>
</div>
<Search class="search-full" />
<v-popover
class="search-compact"
:open="searching"
@show="searching = true"
@hide="searching = false"
>
<button
type="button"
class="search-button"
><Icon
icon="search"
/></button>
<Search
slot="popover"
:searching="searching"
class="compact"
@search="searching = false"
/>
</v-popover>
</div>
</header>
</template>
<script>
import { mapState } from 'vuex';
import Search from './search.vue';
import logo from '../../img/logo.svg';
function sfw(state) {
return state.ui.sfw;
}
function theme(state) {
return state.ui.theme;
}
function setTheme(newTheme) {
this.$store.dispatch('setTheme', newTheme);
}
function setSfw(enabled) {
this.$store.dispatch('setSfw', enabled);
}
export default {
components: {
Search,
},
props: {
toggleSidebar: {
type: Function,
default: null,
},
},
data() {
return {
logo,
searching: false,
};
},
computed: {
...mapState({
sfw,
theme,
}),
},
methods: {
setSfw,
setTheme,
},
};
</script>
<style lang="scss" scoped>
@import 'breakpoints';
.header {
height: 3rem;
display: flex;
align-items: center;
z-index: 2;
justify-content: space-between;
background: var(--background);
color: var(--primary);
box-shadow: 0 0 3px var(--darken-weak);
font-size: 0;
}
.header-nav {
display: flex;
align-items: center;
height: 100%;
overflow: hidden;
}
.header-section {
height: 100%;
align-items: center;
display: flex;
flex-direction: row;
}
.sidebar-toggle {
display: none;
align-items: center;
height: 100%;
.icon {
display: inline-block;
fill: var(--shadow-modest);
padding: 0 1rem;
width: 1.5rem;
height: 100%;
}
&:hover {
cursor: pointer;
.icon {
fill: var(--primary);
}
}
}
.logo-link {
height: 100%;
display: inline-block;
text-decoration: none;
margin: -.25rem 1rem 0 0;
}
.header-logo {
height: 100%;
display: flex;
align-items: center;
padding: 0 0 0 1rem;
fill: var(--primary);
}
.logo {
width: 6rem;
display: flex;
}
.nav,
.nav-list {
display: inline-block;
height: 100%;
}
.nav-item {
height: 100%;
}
.nav-link {
height: 100%;
display: flex;
align-items: center;
justify-content: center;
padding: 0 1rem;
color: var(--shadow);
text-decoration: none;
font-size: .9rem;
font-weight: bold;
cursor: pointer;
&.active {
color: var(--primary);
.icon {
fill: var(--primary);
}
}
&:hover:not(.active) {
color: var(--primary);
.icon {
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);
}
}
}
.search-compact {
display: none;
height: 100%;
}
.search-button {
height: 100%;
padding: .25rem 1rem 0 1rem;
background: none;
border: none;
outline: none;
.icon {
fill: var(--shadow);
}
&:hover {
cursor: pointer;
.icon {
fill: var(--shadow-strong);
}
}
}
@media(max-width: $breakpoint-kilo) {
.search-full {
display: none;
}
.search-compact {
display: flex;
}
.header-toggles {
margin: 0;
}
}
@media(max-width: $breakpoint-small) {
.sidebar-toggle {
display: flex;
}
.logo-link {
margin: -.25rem .75rem 0 0;
}
.nav-link {
padding: 0 .75rem;
}
.search-compact {
display: none;
}
.header-toggles {
display: none;
}
}
@media(max-width: $breakpoint-micro) {
}
@media(max-width: $breakpoint-nano) {
.header-toggles {
display: none;
}
}
</style>

View File

@@ -1,148 +0,0 @@
<template>
<form
class="search"
@submit.prevent="search"
>
<input
ref="search"
v-model="query"
type="search"
class="search-input"
placeholder="Search..."
>
<button
type="submit"
class="search-button"
><Icon
icon="search"
/></button>
</form>
</template>
<script>
async function search() {
this.$router.push({ name: 'search', query: { q: this.query } });
this.$emit('search');
}
function searching(to) {
if (to) {
setTimeout(() => {
// nextTick does not seem to work
this.$refs.search.focus();
}, 20);
}
}
function route(to) {
if (to.name !== 'search') {
this.query = null;
}
}
export default {
props: {
searching: {
type: Boolean,
default: false,
},
},
data() {
return {
query: this.$route.query ? this.$route.query.q : null,
};
},
watch: {
$route: route,
searching,
},
methods: {
search,
},
};
</script>
<style lang="scss" scoped>
@import 'theme';
.search {
height: 100%;
max-width: 20rem;
display: flex;
flex-grow: 1;
align-items: center;
justify-content: flex-end;
padding: 0 1rem 0 0;
border-left: solid 1px var(--shadow-hint);
&.compact {
padding: 0;
border: none;
.search-input {
border: solid 1px var(--shadow-hint);
}
.search-button {
padding: 0 .5rem 0 1rem;
margin: 0;
}
}
}
.search-input {
height: 100%;
width: 100%;
padding: .5rem 0 .5rem .5rem;
border: none;
color: var(--text);
background: var(--background);
outline: none;
font-size: 1rem;
outline: none;
&::placeholder {
color: var(--shadow);
}
&::-webkit-search-cancel-button {
-webkit-appearance: none;
padding: .5rem;
position: relative;
right: 0;
color: var(--text);
background: url('/img/cancel-circle2.svg');
opacity: .25;
&:hover {
opacity: .5;
cursor: pointer;
}
}
&:focus::placeholder {
color: var(--shadow-weak);
}
}
.search-button {
height: 100%;
padding: 0 1rem;
background: none;
border: none;
margin: .3rem 0 0 0;
outline: none;
.icon {
fill: var(--shadow-weak);
}
&:hover {
cursor: pointer;
.icon {
fill: var(--shadow);
}
}
}
</style>

View File

@@ -1,89 +0,0 @@
<template>
<div class="home">
<div
ref="content"
class="content-inner"
>
<FilterBar
:fetch-releases="fetchReleases"
:is-home="true"
:items-total="totalCount"
:items-per-page="limit"
:content="$refs.content"
/>
<Releases :releases="releases" />
<Pagination
v-if="totalCount > 0"
:items-total="totalCount"
:items-per-page="limit"
class="pagination-bottom"
/>
</div>
<Footer />
</div>
</template>
<script>
import FilterBar from '../filters/filter-bar.vue';
import Releases from '../releases/releases.vue';
import Pagination from '../pagination/pagination.vue';
async function fetchReleases() {
const { releases, totalCount } = await this.$store.dispatch('fetchReleases', {
limit: this.limit,
range: this.$route.params.range,
pageNumber: Number(this.$route.params.pageNumber) || 1,
});
this.totalCount = totalCount;
this.releases = releases;
this.$refs.content.scrollTop = 0;
}
async function route() {
await this.fetchReleases();
}
async function mounted() {
this.pageTitle = '';
await this.fetchReleases();
}
export default {
components: {
FilterBar,
Releases,
Pagination,
},
data() {
return {
releases: [],
networks: [],
pageTitle: null,
limit: 20,
totalCount: 0,
from: null,
};
},
watch: {
$route: route,
},
mounted,
methods: {
fetchReleases,
},
};
</script>
<style lang="scss" scoped>
.home {
display: flex;
flex-direction: column;
flex-grow: 1;
}
</style>

View File

@@ -1,60 +0,0 @@
<template>
<div
:class="{ active }"
class="icon"
v-html="svg"
/>
</template>
<script>
export default {
props: {
icon: {
type: String,
default: null,
},
title: {
type: String,
default: null,
},
active: {
type: Boolean,
default: false,
},
},
data() {
return {
svg: null,
};
},
beforeMount() {
this.svg = require(`../../img/icons/${this.icon}.svg`).default;
},
};
</script>
<style lang="scss">
@import '../../css/theme';
.icon {
fill: var(--text);
display: inline-block;
flex-shrink: 0;
width: 1rem;
height: 1rem;
svg {
width: 100%;
height: 100%;
}
&.active {
fill: var(--shadow);
&:hover {
fill: var(--text);
cursor: pointer;
}
}
}
</style>

View File

@@ -1,160 +0,0 @@
<template>
<div class="networks">
<form
class="search"
@submit.prevent="searchEntities"
>
<input
v-model="query"
:placeholder="`Find ${channelCount} channels in ${entities.length} networks`"
class="query"
@input="searchEntities"
>
<button
type="submit"
class="search-button"
><Icon icon="search" /></button>
</form>
<div
v-if="query.length > 0"
class="entity-tiles"
>
<Entity
v-for="entity in searchResults"
:key="`${entity.type}-tile-${entity.slug}`"
:entity="entity"
/>
<span v-if="searchResults.length === 0">No results for "{{ query }}"</span>
</div>
<div
v-else
class="entity-tiles"
>
<Entity
v-for="entity in entities"
:key="`entity-tile-${entity.slug}`"
:entity="entity"
/>
</div>
<Footer />
</div>
</template>
<script>
import Entity from '../entities/tile.vue';
async function searchEntities() {
this.searchResults = await this.$store.dispatch('searchEntities', {
query: this.query,
limit: 50,
});
}
async function mounted() {
this.entities = await this.$store.dispatch('fetchEntities', {
type: 'network',
entitySlugs: [],
});
this.pageTitle = 'Networks';
}
function channelCount() {
return this.entities.reduce((acc, entity) => acc + entity.childrenTotal, 0);
}
export default {
components: {
Entity,
},
data() {
return {
query: '',
pageTitle: null,
entities: [],
searchResults: [],
};
},
computed: {
channelCount,
},
mounted,
methods: {
searchEntities,
},
};
</script>
<style lang="scss" scoped>
@import 'theme';
.networks {
padding: 0 1rem;
}
.search {
display: flex;
width: 100%;
max-width: 40rem;
}
.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 var(--darken-weak);
margin: 1rem 0;
font-size: 1rem;
outline: none;
&:focus {
box-shadow: 0 0 3px var(--primary);
}
}
.search-button {
padding: 1rem;
background: none;
border: none;
.icon {
fill: var(--shadow);
}
&:hover {
cursor: pointer;
.icon {
fill: var(--primary);
}
}
}
.entity-tiles {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
grid-gap: 1rem;
padding: 1rem 0;
}
@media(max-width: $breakpoint2) {
.entity-tiles {
grid-gap: .5rem;
}
}
@media(max-width: $breakpoint0) {
.entity-tiles {
grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr));
}
}
</style>

View File

@@ -1,189 +0,0 @@
<template>
<div
v-if="itemsTotal > 0 || !hideEmpty"
class="pagination"
>
<span
v-show="pageNumber > 1"
class="cursors"
>
<router-link
class="pagination-button cursor"
:to="{ params: { pageNumber: 1 }, query: $route.query }"
><Icon icon="first2" /></router-link>
<router-link
class="pagination-button cursor"
:to="{ params: { pageNumber: pageNumber - 1 }, query: $route.query }"
><Icon icon="arrow-left" /></router-link>
</span>
<span
v-show="pageNumber === 1"
class="cursors"
>
<span class="pagination-button cursor disabled"><Icon icon="first2" /></span>
<span class="pagination-button cursor disabled"><Icon icon="arrow-left" /></span>
</span>
<span class="pages pages-before">
<router-link
v-for="pageX in pageNumber - 1"
:key="`page-${pageX}`"
:to="{ params: { pageNumber: pageNumber - pageX }, query: $route.query }"
class="pagination-button page"
> {{ pageNumber - pageX }} </router-link>
</span>
<router-link
:key="`page-${pageNumber}`"
:to="{ params: { pageNumber }, query: $route.query }"
class="pagination-button page active"
> {{ pageNumber }} </router-link>
<span class="pages pages-after">
<router-link
v-for="pageX in (pageCount - pageNumber)"
:key="`page-${pageX + pageNumber}`"
:to="{ params: { pageNumber: pageX + pageNumber }, query: $route.query }"
class="pagination-button page"
> {{ pageX + pageNumber }} </router-link>
</span>
<span
v-show="pageNumber < pageCount"
class="cursors"
>
<router-link
class="pagination-button cursor"
:to="{ params: { pageNumber: pageNumber + 1 }, query: $route.query }"
><Icon icon="arrow-right" /></router-link>
<router-link
class="pagination-button cursor"
:to="{ params: { pageNumber: pageCount }, query: $route.query }"
><Icon icon="last2" /></router-link>
</span>
<span
v-show="pageNumber === pageCount"
class="cursors"
>
<span class="pagination-button cursor disabled"><Icon icon="arrow-right" /></span>
<span class="pagination-button cursor disabled"><Icon icon="last2" /></span>
</span>
</div>
</template>
<script>
function pageNumber() {
return Number(this.$route.params.pageNumber) || 1;
}
function pageCount() {
const count = Math.max(Math.ceil(this.itemsTotal / this.itemsPerPage), 1);
return count;
}
export default {
props: {
itemsTotal: {
type: Number,
default: 0,
},
itemsPerPage: {
type: Number,
default: 10,
},
hideEmpty: {
type: Boolean,
default: true,
},
},
computed: {
pageNumber,
pageCount,
},
};
</script>
<style lang="scss" scoped>
.pagination {
display: flex;
justify-content: center;
flex-shrink: 0;
overflow: hidden;
height: 3rem;
}
.pagination-top {
margin: 0 0 1rem 0;
}
.pagination-bottom {
margin: .5rem 0 1rem 0;
}
.pagination-button {
width: 2.5rem;
height: 2.5rem;
display: inline-flex;
flex-shrink: 0;
align-items: center;
justify-content: center;
margin: .1rem 0 2rem 0;
background: var(--background);
color: var(--shadow);
font-size: 1rem;
font-weight: bold;
text-decoration: none;
box-shadow: 0 0 3px var(--shadow-hint);
.icon {
width: .8rem;
height: .8rem;
margin: 0 0 .125rem 0;
fill: var(--shadow);
}
&:hover:not(.active):not(.disabled) {
color: var(--shadow-strong);
.icon {
fill: var(--shadow-strong);
}
}
&.active {
color: var(--primary);
}
&.disabled {
color: var(--shadow-weak);
.icon {
fill: var(--shadow-weak);
}
}
}
.pages {
max-width: 10rem;
display: inline-flex;
flex-wrap: wrap;
}
.pages-before {
flex-direction: row-reverse;
}
.cursors {
flex-shrink: 0;
}
.cursors {
margin: 0 .75rem;
font-size: 0;
}
</style>

View File

@@ -1,126 +0,0 @@
<template>
<ul class="clips nolist">
<li
v-for="clip in clips"
:key="`clip-${clip.id}`"
class="clip"
>
<div class="clip-poster-container">
<a
v-if="clip.poster"
:href="`/media/${clip.poster.path}`"
target="_blank"
rel="noopener noreferrer"
>
<img
:src="`/media/${clip.poster.thumbnail}`"
class="clip-poster"
>
</a>
<span
v-if="clip.duration"
class="clip-duration"
>{{ formatDuration(clip.duration) }}</span>
</div>
<div class="clip-info">
<h3
v-if="clip.title"
class="clip-row clip-title"
:title="clip.title"
>{{ clip.title }}</h3>
<p class="clip-row clip-description">{{ clip.description }}</p>
<Tags
:tags="clip.tags"
class="clip-row clip-tags"
/>
</div>
</li>
</ul>
</template>
<script>
import Tags from './tags.vue';
export default {
components: {
Tags,
},
props: {
clips: {
type: Array,
default: () => [],
},
},
};
</script>
<style lang="scss" scoped>
@import 'breakpoints';
.clips {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
grid-gap: 1rem;
}
.clip {
background: var(--background);
box-shadow: 0 0 3px var(--shadow-weak);
margin: 0 0 .5rem 0;
}
.clip-poster-container {
position: relative;
margin: 0 0 1rem 0;
}
.clip-poster {
width: 100%;
height: 10rem;
object-fit: cover;
object-position: center;
}
.clip-duration {
background: var(--darken);
color: var(--text-light);
display: block;
position: absolute;
top: 0;
right: 0;
padding: .25rem .5rem;
font-size: .9rem;
font-weight: bold;
text-shadow: 0 0 2px var(--darken-strong);
}
.clip-info {
padding: 0 1rem;
}
.clip-row {
margin: 0 0 .75rem 0;
}
.clip-title {
padding: 0;
font-size: 1rem;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.clip-description {
line-height: 1.5;
}
@media(max-width: $breakpoint-micro) {
.clips {
grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
}
}
</style>

View File

@@ -1,222 +0,0 @@
<template>
<div class="details">
<div class="column">
<div class="tidbits">
<a
:title="release.url && `View scene on ${release.entity.name}`"
:href="release.url"
:class="{ link: release.url }"
target="_blank"
rel="noopener noreferrer"
class="tidbit date nolink"
>
<span class="date-compact">{{ release.date ? formatDate(release.date, 'MMM D, YYYY', release.datePrecision) : 'Date N/A' }}</span>
<span class="date-full">{{ release.date ? formatDate(release.date, 'MMMM D, YYYY', release.datePrecision) : 'Date unknown' }}</span>
<Icon
v-if="release.url"
icon="share2"
/>
</a>
</div>
<div class="site">
<template v-if="release.entity.type === 'channel' && release.entity.parent && !release.entity.independent">
<a
v-if="release.entity.parent.hasLogo"
:href="`/network/${release.entity.parent.slug}`"
class="logo-link"
>
<img
:src="`/img/logos/${release.entity.parent.slug}/thumbs/network.png`"
:title="release.entity.parent.name"
:alt="release.entity.parent.name"
class="logo logo-parent"
>
</a>
<a
v-else
:href="`/network/${release.entity.parent.slug}`"
class="logo-link logo-name"
>{{ release.entity.parent.name }}</a>
<span class="chain">presents</span>
<a
v-if="release.entity.hasLogo"
:href="`/${release.entity.type}/${release.entity.slug}`"
class="logo-link"
>
<img
v-if="release.entity.type === 'network'"
:src="`/img/logos/${release.entity.slug}/thumbs/network.png`"
:title="release.entity.name"
class="logo logo-site"
>
<img
v-else
:src="`/img/logos/${release.entity.parent.slug}/thumbs/${release.entity.slug}.png`"
:title="release.entity.name"
class="logo logo-site"
>
</a>
<a
v-else
:href="`/${release.entity.type}/${release.entity.slug}`"
class="logo-link logo-name"
>{{ release.entity.name }}</a>
</template>
<a
v-else
:href="`/${release.entity.type}/${release.entity.slug}`"
>
<img
:src="`/img/logos/${release.entity.slug}/thumbs/network.png`"
:title="release.entity.name"
class="logo logo-site"
>
</a>
</div>
</div>
</div>
</template>
<script>
export default {
props: {
release: {
type: Object,
default: null,
},
},
};
</script>
<style lang="scss" scoped>
@import 'breakpoints';
.details {
background: var(--profile);
color: var(--text-light);
box-shadow: 0 0 3px var(--shadow-weak);
cursor: default;
.column {
height: 100%;
display: flex;
justify-content: space-between;
align-items: center;
padding: 0 1rem;
}
.link {
color: var(--text-light);
.icon {
fill: var(--lighten);
}
&:hover {
color: var(--text-light);
.icon {
fill: var(--text-light);
}
}
}
}
.tidbits {
flex-shrink: 0;
height: 100%;
}
.tidbit {
display: inline-flex;
align-items: center;
height: 100%;
&.date {
flex-shrink: 0;
font-weight: bold;
.icon {
fill: var(--lighten);
margin: -.2rem 0 0 .75rem;
}
}
}
.site {
display: inline-flex;
align-items: center;
padding: .25rem 0;
font-size: 0;
}
.logo {
display: inline-block;
}
.logo-link {
text-decoration: none;
}
.logo-site {
height: 2.5rem;
max-width: 15rem;
margin: .25rem 0;
object-fit: contain;
object-position: 100% 50%;
}
.logo-parent {
height: 1.5rem;
max-width: 10rem;
object-fit: contain;
object-position: 100% 50%;
}
.logo-name {
padding: .5rem 0;
color: var(--text-light);
font-size: 1.25rem;
font-weight: bold;
}
.chain {
color: var(--lighten);
padding: 0 .5rem;
font-weight: bold;
font-size: .8rem;
}
.date-compact {
display: none;
}
@media(max-width: $breakpoint-mega) {
.logo-parent,
.chain {
display: none;
}
.logo-site {
width: 100%;
}
}
@media(max-width: $breakpoint) {
.date-full {
display: none;
}
.date-compact {
display: inline-block;
}
}
</style>

View File

@@ -1,287 +0,0 @@
<template>
<div
v-lazy-container
class="media"
>
<div
v-if="release.trailer || release.teaser"
class="trailer-container"
>
<video
v-if="release.trailer"
:src="`/media/${release.trailer.path}`"
:poster="release.poster && (sfw ? `/img/${release.poster.sfw.thumbnail}` : `/media/${release.poster.thumbnail}`)"
:alt="release.title"
:class="{ sfw: sfw && paused }"
class="item trailer"
controls
@playing="playing = true; paused = false;"
@pause="playing = false; paused = true;"
>Sorry, the tailer cannot be played in your browser</video>
<video
v-else-if="release.teaser && /^video\//.test(release.teaser.mime)"
:src="`/media/${release.teaser.path}`"
:poster="release.poster && (sfw ? `/img/${release.poster.sfw.thumbnail}` : `/media/${release.poster.thumbnail}`)"
:alt="release.title"
:class="{ sfw: sfw && paused }"
class="item trailer"
controls
@playing="playing = true; paused = false;"
@pause="playing = false; paused = true;"
>Sorry, the tailer cannot be played in your browser</video>
<img
v-else-if="release.teaser && /^image\//.test(release.teaser.mime)"
:data-src="sfw ? `/img/${release.teaser.sfw.thumbnail}` : `/media/${release.teaser.path}`"
:alt="release.title"
class="item trailer"
>
<a
v-if="release.poster"
v-tooltip="'View poster'"
:href="`/media/${release.poster.path}`"
:class="{ playing }"
target="_blank"
rel="noopener noreferrer"
class="poster-link"
><Icon icon="image" /></a>
<span
v-if="sfw && !playing"
class="warning"
>
<Icon icon="warning2" />NSFW
</span>
</div>
<template v-if="release.covers && release.covers.length > 0">
<a
v-for="cover in release.covers"
:key="`cover-${cover.id}`"
:href="`/media/${cover.path}`"
target="_blank"
rel="noopener noreferrer"
>
<img
:data-src="`/media/${cover.thumbnail}`"
:data-loading="`/media/${cover.lazy}`"
class="item cover"
@load="$parent.$emit('load')"
>
</a>
</template>
<div
v-for="photo in photos"
:key="`media-${photo.id}`"
class="item-container"
>
<a
:href="`/media/${photo.path}`"
:class="{ sfw }"
class="item-link"
target="_blank"
rel="noopener noreferrer"
>
<img
:data-src="sfw ? `/img/${photo.sfw.thumbnail}` : `/media/${photo.thumbnail}`"
:data-loading="sfw ? `/img/${photo.sfw.lazy}` : `/media/${photo.lazy}`"
:alt="`Photo ${photo.index + 1}`"
class="item"
@load="$parent.$emit('load')"
>
<span
v-if="sfw"
class="warning"
>
<Icon icon="warning2" />NSFW
</span>
</a>
</div>
</div>
</template>
<script>
function sfw() {
return this.$store.state.ui.sfw;
}
function photos() {
const clips = this.release.clips || [];
const clipPostersById = clips.reduce((acc, clip) => ({ ...acc, [clip.poster.id]: clip.poster }), {});
const uniqueClipPosters = Array.from(new Set(clips.map(clip => clip.poster.id) || [])).map(posterId => clipPostersById[posterId]);
const photosWithClipPosters = (this.release.photos || []).concat(uniqueClipPosters);
if (this.release.trailer || this.release.teaser) {
// poster will be on trailer video
return photosWithClipPosters;
}
if (this.release.poster) {
// no trailer, add poster to photos
return [this.release.poster].concat(photosWithClipPosters);
}
// no poster available
return photosWithClipPosters;
}
export default {
props: {
release: {
type: Object,
default: null,
},
expanded: {
type: Boolean,
default: false,
},
},
data() {
return {
playing: false,
paused: false,
};
},
computed: {
photos,
sfw,
},
};
</script>
<style lang="scss" scoped>
@import 'theme';
.media {
flex-shrink: 0;
white-space: nowrap;
overflow-x: auto;
scrollbar-width: none;
scroll-behavior: smooth;
font-size: 0;
&::-webkit-scrollbar {
display: none;
}
&.expanded {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(32rem, 1fr));
grid-gap: 1rem;
justify-content: center;
margin: 0 0 1rem 0;
}
}
.poster-link {
position: absolute;
top: .5rem;
right: .5rem;
transition: opacity .1s ease;
.icon {
width: 1.5rem;
height: 1.5rem;
fill: var(--lighten-strong);
filter: drop-shadow(0 0 1px var(--darken-weak));
}
&.playing {
opacity: 0;
}
&:hover {
cursor: pointer;
opacity: 1;
.icon {
fill: var(--text-light);
}
}
}
.item-container,
.trailer-container {
max-width: 100%;
position: relative;
display: inline-flex;
align-items: center;
justify-content: center;
flex-shrink: 0;
.warning {
display: none;
width: 100%;
height: 100%;
flex-direction: column;
align-items: center;
justify-content: center;
position: absolute;
background: var(--darken-weak);
color: var(--text-light);
font-size: 1.2rem;
font-weight: bold;
text-shadow: 0 0 3px var(--darken-strong);
pointer-events: none;
animation: alert .5s ease infinite .1s;
.icon {
display: block;
fill: var(--text-light);
width: 3rem;
height: 3rem;
margin: 0 0 .25rem 0;
filter: drop-shadow(0 0 3px var(--darken));
animation: alert .5s ease infinite .1s;
}
}
&:hover .warning {
display: inline-flex;
}
}
.item {
height: 18rem;
max-width: 100%;
box-shadow: 0 0 3px var(--shadow-weak);
}
.trailer-container {
height: 18rem;
width: 32rem;
max-width: 100%;
}
.trailer {
width: 100%;
max-height: 100%;
object-fit: cover;
&.sfw {
filter: blur(2rem);
}
}
@keyframes alert {
0% {
color: var(--text-light);
fill: var(--text-light);
}
50% {
color: var(--alert);
fill: var(--alert);
}
}
@media(max-width: $breakpoint0) {
.media:not(.expanded) .item,
.trailer-container {
height: 56vw; /* 16:9 ratio for full-width video */
}
}
</style>

View File

@@ -1,171 +0,0 @@
<template>
<div class="tile">
<div class="movie">
<router-link
:to="{ name: 'movie', params: { releaseId: movie.id, releaseSlug: movie.slug } }"
class="cover"
>
<img
v-if="movie.covers[0]"
:src="`/media/${movie.covers[0].thumbnail}`"
>
</router-link>
<div class="info">
<router-link
:to="{ name: 'movie', params: { releaseId: movie.id, releaseSlug: movie.slug } }"
class="title-link"
>
<h3 class="title">{{ movie.title }}</h3>
</router-link>
<ul
class="actors nolist"
:title="movie.actors.map(actor => actor.name).join(', ')"
>
<li
v-for="actor in movie.actors"
:key="`tag-${movie.id}-${actor.id}`"
class="actor"
><router-link
:to="`/actor/${actor.id}/${actor.slug}`"
class="actor-link"
>{{ actor.name }}</router-link></li>
</ul>
<ul
class="tags nolist"
:title="movie.tags.map(tag => tag.name).join(', ')"
>
<li
v-for="tag in movie.tags"
:key="`tag-${movie.id}-${tag.id}`"
class="tag"
><router-link
:to="`/tag/${tag.slug}`"
class="tag-link"
>{{ tag.name }}</router-link></li>
</ul>
</div>
</div>
<Details :release="movie" />
</div>
</template>
<script>
import Details from './tile-details.vue';
export default {
components: {
Details,
},
props: {
movie: {
type: Object,
default: null,
},
},
};
</script>
<style lang="scss" scoped>
@import 'breakpoints';
.tile {
display: flex;
flex-direction: column;
background: var(--background);
box-shadow: 0 0 3px var(--darken-weak);
font-size: 0;
}
.movie {
display: flex;
}
.title-link {
color: var(--text);
text-decoration: none;
}
.cover {
height: 16rem;
box-shadow: 0 0 3px var(--darken-weak);
img {
height: 100%;
max-width: 12rem;
object-fit: cover;
object-position: center ;
}
}
.info {
flex-grow: 1;
overflow: hidden;
}
.title {
box-sizing: border-box;
padding: 1rem;
margin: 0;
font-size: 1rem;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.actors {
padding: 0 1rem;
margin: 0 0 1rem 0;
line-height: 1.5;
}
.actor:not(:last-child)::after {
content: ',';
margin: 0 .25rem 0 0;
font-size: 1rem;
}
.actor-link {
font-size: 1rem;
color: var(--link);
text-decoration: none;
&:hover {
color: var(--primary);
}
}
.tags {
padding: .2rem 1rem 0 1rem;
height: 1.75rem;
line-height: 2;
overflow: hidden;
}
.tag {
margin: 0 0 .5rem 0;
}
.tag-link {
background: var(--background);
font-size: .75rem;
padding: .25rem .5rem;
color: var(--shadow);
font-weight: bold;
text-decoration: none;
box-shadow: 0 0 3px var(--shadow-weak);
&:hover {
color: var(--primary);
}
}
@media(max-width: $breakpoint) {
.cover {
height: 12rem;
}
}
</style>

View File

@@ -1,64 +0,0 @@
<template>
<div class="movies">
<div class="content-inner">
<div class="tiles">
<MovieTile
v-for="movie in movies"
:key="`movie-${movie.id}`"
:movie="movie"
/>
</div>
</div>
<Footer />
</div>
</template>
<script>
import MovieTile from './movie-tile.vue';
async function mounted() {
const { movies, totalCount } = await this.$store.dispatch('fetchMovies', {
limit: 30,
});
this.movies = movies;
this.totalCount = totalCount;
}
export default {
components: {
MovieTile,
},
data() {
return {
movies: [],
totalCount: 0,
};
},
mounted,
};
</script>
<style lang="scss" scoped>
@import 'breakpoints';
.movies {
display: flex;
flex-direction: column;
flex-grow: 1;
}
.tiles {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(25rem, 1fr));
grid-gap: 1rem;
padding: 1rem;
}
@media(max-width: $breakpoint) {
.tiles {
grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
}
}
</style>

View File

@@ -1,408 +0,0 @@
<template>
<div
v-if="release"
class="content"
>
<Expand
v-if="expanded"
class="expand"
:expanded="expanded"
@expand="(state) => expanded = state"
/>
<Scroll
class="scroll-light"
:expandable="false"
>
<Media
:release="release"
:class="{ expanded }"
/>
</Scroll>
<Details :release="release" />
<Expand
v-if="release.photos && release.photos.length > 0"
class="expand-bottom"
:expanded="expanded"
@expand="(state) => expanded = state"
/>
<div class="info column">
<div class="row">
<h2
v-if="release.title"
class="title"
>{{ release.title }}</h2>
<h2
v-else-if="release.actors.length > 0"
class="title title-composed"
>
{{ release.actors.map(actor => actor.name).join(', ') }} for {{ release.entity.name }}
<Icon
v-tooltip="`This scene has no known official title`"
icon="question2"
/>
</h2>
</div>
<div
v-if="release.tags.length > 0"
class="row"
>
<Tags :tags="release.tags" />
</div>
<div class="row associations">
<ul
v-lazy-container="{ selector: '.lazy' }"
class="actors nolist"
>
<li
v-for="actor in release.actors"
:key="actor.id"
>
<Actor :actor="actor" />
</li>
</ul>
</div>
<div
v-if="release.movies && release.movies.length > 0"
class="row"
>
<span class="row-label">Part of</span>
<div class="movies">
<router-link
v-for="movie in release.movies"
:key="`movie-${movie.id}`"
:to="{ name: 'movie', params: { releaseId: movie.id, releaseSlug: movie.slug } }"
class="movie"
>
<span class="movie-title">{{ movie.title }}</span>
<img
:src="`/media/${movie.covers[0].thumbnail}`"
class="movie-cover"
>
</router-link>
</div>
</div>
<Releases
v-if="release.scenes && release.scenes.length > 0"
:releases="release.scenes"
/>
<div
v-if="release.description"
class="row"
>
<span class="row-label">Description</span>
<p class="description">{{ release.description }}</p>
</div>
<div class="row row-tidbits">
<div
v-if="release.duration"
class="row-tidbit"
>
<span class="row-label">Duration</span>
<div class="duration">{{ formatDuration(release.duration) }}</div>
</div>
<div
v-if="release.shootId"
class="row-tidbit"
>
<span class="row-label">Shoot #</span>
{{ release.shootId }}
</div>
<div
v-if="release.studio"
class="row-tidbit"
>
<span class="row-label">Studio</span>
<router-link
:to="`/studio/${release.studio.slug}`"
class="link studio"
>{{ release.studio.name }}</router-link>
</div>
<div
v-if="release.productionDate"
class="row-tidbit"
>
<span class="row-label">Shoot date</span>
{{ formatDate(release.productionDate, 'MMMM D, YYYY') }}
</div>
<div
v-if="release.productionLocation"
class="row-tidbit"
>
<span class="row-label">Location</span>
<span class="location">
<span
v-if="release.productionLocation.city"
class="location-segment"
>{{ release.productionLocation.city }}, </span>
<span
v-if="release.productionLocation.state"
class="location-segment"
>{{ release.productionLocation.state }}, </span>
<span
v-if="release.productionLocation.country"
class="location-segment"
>{{ release.productionLocation.country.alias || release.productionLocation.country.name }}
<img
class="flag"
:src="`/img/flags/${release.productionLocation.country.alpha2.toLowerCase()}.svg`"
>
</span>
</span>
</div>
</div>
<div
v-if="release.clips && release.clips.length > 0"
class="row nolist"
>
<span class="row-label">Clips</span>
<Clips :clips="release.clips" />
</div>
<div
v-if="release.comment"
class="row"
>
<span class="row-label">Comment</span>
<span>{{ release.comment }}</span>
</div>
<div class="row">
<span class="row-label">Added</span>
<router-link
:to="`/added/${formatDate(release.createdAt, 'YYYY/MM/DD')}`"
:title="`Added on ${formatDate(release.createdAt, 'MMMM D, YYYY HH:mm')}`"
class="link added"
>{{ release.createdBatchId }}: {{ formatDate(release.createdAt, 'MMMM D, YYYY HH:mm') }}</router-link>
</div>
</div>
</div>
</template>
<script>
import Media from './media.vue';
import Details from './details.vue';
import Tags from './tags.vue';
import Clips from './clips.vue';
import Actor from '../actors/tile.vue';
import Releases from './releases.vue';
import Scroll from '../scroll/scroll.vue';
import Expand from '../expand/expand.vue';
async function fetchRelease() {
if (this.$route.name === 'scene') {
this.release = await this.$store.dispatch('fetchReleaseById', this.$route.params.releaseId);
}
if (this.$route.name === 'movie') {
this.release = await this.$store.dispatch('fetchMovieById', this.$route.params.releaseId);
}
}
function pageTitle() {
return this.release
&& (this.release.title
|| (this.release.actors.length > 0 ? `${this.release.actors.map(actor => actor.name).join(', ')} for ${this.release.entity.name}` : null));
}
export default {
components: {
Actor,
Details,
Media,
Scroll,
Expand,
Releases,
Clips,
Tags,
},
data() {
return {
release: null,
expanded: false,
};
},
computed: {
pageTitle,
},
watch: {
$route: fetchRelease,
},
mounted: fetchRelease,
methods: {
fetchRelease,
},
};
</script>
<style lang="scss" scoped>
@import 'breakpoints';
.expand-bottom {
border-bottom: solid 1px var(--shadow-hint);
}
.info {
padding: 1rem;
border-left: solid 1px var(--shadow-hint);
border-right: solid 1px var(--shadow-hint);
flex-grow: 1;
}
.row {
margin: 0 0 1.5rem 0;
&.associations {
align-items: start;
}
}
.row-label {
display: block;
margin: 0 0 .5rem 0;
color: var(--shadow);
font-weight: bold;
.icon {
margin: 0 .5rem 0 0;
fill: var(--shadow);
}
}
.row-tidbit {
display: inline-block;
margin: 0 2rem 0 0;
}
.title {
display: inline-block;
margin: 0;
.icon {
fill: var(--shadow);
padding: .25rem;
&:hover {
fill: var(--primary);
cursor: pointer;
}
}
}
.title-composed {
color: var(--shadow);
}
.title-shoot {
margin: 0 0 0 .5rem;
color: var(--shadow);
font-size: .9rem;
font-weight: bold;
}
.description {
line-height: 1.5;
margin: -.25rem 0 0 0;
}
.actors {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
grid-gap: .5rem;
flex-grow: 1;
flex-wrap: wrap;
}
.movies {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(10rem, 1fr));
grid-gap: .5rem;
flex-grow: 1;
flex-wrap: wrap;
}
.movie {
display: flex;
flex-direction: column;
background: var(--background);
box-shadow: 0 0 3px var(--shadow-weak);
color: var(--text);
text-decoration: none;
&:hover .movie-title {
color: var(--primary);
}
}
.movie-cover {
width: 100%;
}
.movie-title {
padding: .5rem;
font-weight: bold;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
.flag {
height: 1rem;
margin: 0 0 -.15rem .1rem;
}
.link {
display: inline-flex;
color: var(--link);
text-decoration: none;
&:hover {
color: var(--primary);
.icon {
fill: var(--primary);
}
}
}
.showable {
display: none;
}
@media(max-width: $breakpoint) {
.hideable {
display: none;
}
.row .showable {
display: block;
}
.tidbit .showable {
display: inline-block;
}
.actors {
grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
}
}
</style>

View File

@@ -1,126 +0,0 @@
<template>
<div class="releases">
<h3
v-if="context"
class="heading"
><span class="range">{{ range }}</span> releases for '{{ context }}'</h3>
<ul
v-if="releases.length > 0"
:key="sfw"
v-lazy-container="{ selector: '.thumbnail' }"
class="nolist tiles"
>
<li
v-for="(release, index) in releases"
:key="`release-${release.id}`"
>
<SceneTile
:release="release"
:referer="referer"
:index="index"
/>
</li>
</ul>
<span
v-if="releases.length === 0 && range !== 'all'"
class="empty"
>No {{ range }} releases</span>
<span
v-else-if="releases.length === 0"
class="empty"
>No recent or upcoming releases</span>
</div>
</template>
<script>
import SceneTile from './scene-tile.vue';
function range() {
return this.$route.params.range;
}
function sfw() {
return this.$store.state.ui.sfw;
}
export default {
components: {
SceneTile,
},
props: {
releases: {
type: Array,
default: () => [],
},
context: {
type: String,
default: null,
},
referer: {
type: String,
default: null,
},
},
computed: {
range,
sfw,
},
};
</script>
<style lang="scss" scoped>
@import 'theme';
.heading {
padding: 0;
margin: 0 0 1rem 0;
.range {
text-transform: capitalize;
}
}
.releases {
flex-grow: 1;
border-top: solid 1px var(--crease);
&.embedded {
border: none;
.tiles {
padding: 0;
}
}
}
.tiles {
width: 100%;
display: grid;
grid-template-columns: repeat(auto-fill, minmax(22rem, 1fr));
grid-gap: 1rem;
box-sizing: border-box;
padding: 1rem;
}
.empty {
display: inline-block;
padding: 1rem;
color: var(--shadow-strong);
font-weight: bold;
}
@media(max-width: $breakpoint3) {
.tiles {
grid-template-columns: repeat(auto-fill, minmax(20rem, 1fr));
}
}
@media(max-width: $breakpoint2) {
.tiles {
grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr));
}
}
</style>

View File

@@ -1,299 +0,0 @@
<template>
<div
:id="`${release.type}-${release.id}`"
:class="{ new: release.isNew }"
class="tile"
>
<span class="poster">
<a
:href="`/scene/${release.id}/${release.slug || ''}`"
target="_blank"
rel="noopener noreferrer"
class="link"
>
<img
v-if="release.poster"
:data-src="sfw ? `/img/${release.poster.sfw.thumbnail}` : `/media/${release.poster.thumbnail}`"
:data-loading="sfw ? `/img/${release.poster.sfw.lazy}` : `/media/${release.poster.lazy}`"
:alt="release.title"
class="thumbnail"
>
<span
v-else-if="release.covers && release.covers.length > 0"
class="covers"
>
<img
v-for="cover in release.covers"
:key="cover.id"
:data-src="sfw ? `/img/${cover.sfw.thumbnail}` : `/media/${cover.thumbnail}`"
:data-loading="sfw ? `/img/${cover.sfw.lazy}` : `/media/${cover.lazy}`"
:alt="release.title"
class="thumbnail cover"
>
</span>
<div
v-else
:title="release.title"
class="thumbnail"
>No thumbnail available</div>
</a>
<Details :release="release" />
</span>
<div class="info">
<a
:href="`/scene/${release.id}/${release.slug || ''}`"
target="_blank"
rel="noopener noreferrer"
class="row link"
>
<h3
v-if="release.title"
v-tooltip.bottom="release.title"
:title="release.title"
class="title"
>{{ release.title }}</h3>
<h3
v-else-if="release.actors.length > 0"
class="title title-composed"
>{{ release.actors[0].name }} for {{ release.entity.name }}</h3>
<h3
v-else
class="title title-empty"
>{{ release.entity.name }}</h3>
</a>
<span class="row">
<ul
class="actors nolist"
:title="release.actors.map(actor => actor.name).join(', ')"
>
<li
v-for="actor in release.actors"
:key="actor.id"
class="actor"
>
<router-link
:to="{ name: 'actor', params: { actorId: actor.id, actorSlug: actor.slug } }"
class="actor-link"
>{{ actor.name }}</router-link>
</li>
</ul>
</span>
<div class="labels">
<router-link
v-if="release.shootId && release.studio"
:to="{ name: 'studio', params: { entitySlug: release.studio.slug } }"
:title="release.studio && release.studio.name"
class="shoot nolink"
>{{ release.shootId }}</router-link>
<span
v-else-if="release.shootId"
:title="release.studio && release.studio.name"
class="shoot nolink"
>{{ release.shootId }}</span>
<ul
v-if="release.tags.length > 0"
:title="release.tags.map(tag => tag.name).join(', ')"
class="tags nolist"
>
<li
v-for="tag in release.tags"
:key="`tag-${tag.slug}`"
class="tag"
>
<router-link
:to="`/tag/${tag.slug}`"
class="tag-link"
>{{ tag.name }}</router-link>
</li>
</ul>
</div>
</div>
</div>
</template>
<script>
import Details from './tile-details.vue';
function sfw() {
return this.$store.state.ui.sfw;
}
export default {
components: {
Details,
},
props: {
release: {
type: Object,
default: null,
},
},
computed: {
sfw,
},
};
</script>
<style lang="scss" scoped>
@import 'theme';
.tile {
background: var(--background);
display: flex;
flex-direction: column;
box-sizing: border-box;
overflow: hidden;
box-shadow: 0 0 3px var(--darken-weak);
height: 100%;
&.new .poster::after {
content: 'new';
position: absolute;
top: 0;
right: 0;
padding: .15rem .25rem .15rem .35rem;
border-radius: 0 0 0 .5rem;
color: var(--text-light);
background: var(--primary);
font-size: .8rem;
font-weight: bold;
}
}
.poster {
position: relative;
margin: 0 0 .6rem 0;
}
.covers {
background: var(--profile);
display: flex;
.cover {
width: 50%;
}
}
.thumbnail {
width: 100%;
height: 14rem;
display: flex;
justify-content: center;
align-items: center;
object-fit: cover;
background-position: center;
background-size: cover;
background-color: var(--shadow-hint);
color: var(--shadow);
text-shadow: 1px 1px 0 var(--highlight);
}
.row {
display: flex;
justify-content: space-between;
align-items: center;
box-sizing: border-box;
padding: 0 .5rem;
margin: 0 0 .25rem 0;
}
.info {
display: flex;
flex-direction: column;
flex-grow: 1;
}
.link {
text-decoration: none;
}
.title {
margin: 0;
color: var(--text);
font-size: 1rem;
line-height: 1.5;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.title-composed,
.title-empty {
color: var(--shadow);
}
.actors {
word-wrap: break-word;
overflow: hidden;
max-height: 1.5rem;
line-height: 1.5rem;
margin: 0 0 .25rem 0;
}
.actor:not(:last-of-type)::after {
content: ",";
margin: 0 .25rem 0 0;
}
.actor-link {
color: var(--link);
text-decoration: none;
&:hover {
color: var(--primary);
}
}
.labels {
padding: .1rem .5rem 1.5rem .5rem;
max-height: .5rem;
overflow-y: hidden;
font-size: 0;
line-height: 2;
}
.shoot {
display: inline;
padding: .25rem .5rem;
background: var(--primary);
color: var(--text-light);
font-size: 0.75rem;
font-weight: bold;
box-shadow: inset 0 0 3px var(--shadow-weak);
}
.tags {
display: inline;
word-wrap: break-word;
}
.tag {
margin: 0 0 1rem 0;
}
.tag-link {
background: var(--background);
color: var(--shadow);
display: inline-block;
padding: .25rem .5rem;
font-size: .75rem;
font-weight: bold;
text-decoration: none;
line-height: 1;
box-shadow: 0 0 3px var(--shadow-weak);
&:hover {
color: var(--primary);
}
}
</style>

View File

@@ -1,42 +0,0 @@
<template>
<ul class="tags nolist">
<li
v-for="tag in tags"
:key="`tag-${tag.slug}`"
class="tag"
>
<a
:href="`/tag/${tag.slug}`"
class="link"
>{{ tag.name }}</a>
</li>
</ul>
</template>
<script>
export default {
props: {
tags: {
type: Array,
default: () => [],
},
},
};
</script>
<style lang="scss" scoped>
.tag .link {
color: var(--link);
background: var(--background);
display: inline-block;
padding: .5rem;
margin: 0 .25rem .25rem 0;
box-shadow: 0 0 2px var(--shadow-weak);
text-decoration: none;
text-transform: capitalize;
&:hover {
color: var(--primary);
}
}
</style>

View File

@@ -1,124 +0,0 @@
<template>
<span
class="details"
:class="{ new: release.isNew }"
>
<span
v-if="release.entity.type !== 'network' && !release.entity.independent && release.entity.parent"
class="site"
>
<router-link
v-tooltip.bottom="`Part of ${release.entity.parent.name}`"
:title="`Part of ${release.entity.parent.name}`"
:to="`/${release.entity.parent.type}/${release.entity.parent.slug}`"
class="site-link"
><img
:src="`/img/logos/${release.entity.parent.slug}/favicon.png`"
class="favicon"
></router-link>
<router-link
v-tooltip.bottom="`More from ${release.entity.name}`"
:title="`More from ${release.entity.name}`"
:to="`/${release.entity.type}/${release.entity.slug}`"
class="site-link"
>{{ release.entity.name }}</router-link>
</span>
<router-link
v-else
:to="`/${release.entity.type}/${release.entity.slug}`"
class="site site-link"
><img
:src="`/img/logos/${release.entity.slug}/favicon.png`"
class="favicon"
>{{ release.entity.name }}</router-link>
<a
v-if="release.date"
v-tooltip.bottom="release.url && `View release on ${release.entity.name}`"
:title="release.url && `View release on ${release.entity.name}`"
:href="release.url"
:class="{ upcoming: isAfter(release.date, new Date()) }"
target="_blank"
rel="noopener noreferrer"
class="date"
><Icon icon="share2" />{{ formatDate(release.date, 'MMMM D, YYYY', release.datePrecision) }}</a>
<a
v-else
:href="release.url"
:class="{ upcoming: isAfter(release.date, new Date()), new: release.isNew }"
title="Scene date N/A, showing date added"
target="_blank"
rel="noopener noreferrer"
class="date"
>{{ `(${formatDate(release.dateAdded, 'MMMM D, YYYY')})` }}</a>
</span>
</template>
<script>
export default {
props: {
release: {
type: Object,
default: null,
},
},
};
</script>
<style lang="scss" scoped>
.details {
width: 100%;
display: flex;
justify-content: space-between;
white-space: nowrap;
background: var(--profile);
font-size: 0;
font-weight: bold;
box-shadow: 0 0 3px var(--darken);
.favicon {
width: 1rem;
margin: 0 .25rem 0 0;
}
/*
&.new .date::before {
content: '';
width: .5rem;
height: .5rem;
border-radius: 50%;
margin: 0 .25rem 0 0;
background: var(--primary);
}
*/
}
.site,
.date {
display: flex;
align-items: center;
position: relative;
font-size: .8rem;
padding: .5rem;
color: var(--text-light);
text-decoration: none;
.icon {
fill: var(--lighten-weak);
margin: 0 .25rem 0 0;
}
&:hover .icon {
fill: var(--text-light);
}
}
.site-link {
display: flex;
color: var(--text-light);
text-decoration: none;
}
</style>

View File

@@ -1,257 +0,0 @@
<template>
<div class="scroll">
<Expand
v-if="expanded"
:expanded="expanded"
class="expand-dark"
@expand="(state) => $emit('expand', state)"
/>
<div class="scrollable">
<Expand
v-if="expanded"
:expanded="expanded"
class="expand-light"
@expand="(state) => $emit('expand', state)"
/>
<div
v-show="enabled && !expanded"
class="scroll-button scroll-left noselect"
:class="{ 'scroll-start': scrollAtStart }"
@click="scroll('left')"
><Icon icon="arrow-left3" /></div>
<slot />
<div
v-show="enabled && !expanded"
class="scroll-button scroll-right noselect"
:class="{ 'scroll-end': scrollAtEnd }"
@click="scroll('right')"
><Icon icon="arrow-right3" /></div>
</div>
<Expand
v-if="expanded || (expandable && scrollable)"
:expanded="expanded"
class="expand-dark"
@expand="(state) => $emit('expand', state)"
/>
<Expand
v-if="expanded || (expandable && scrollable)"
:expanded="expanded"
class="expand-light"
@expand="(state) => $emit('expand', state)"
/>
</div>
</template>
<script>
import Expand from '../expand/expand.vue';
function updateScroll() {
this.scrollable = this.target.scrollWidth > this.target.clientWidth;
this.scrollAtStart = this.target.scrollLeft === 0;
this.scrollAtEnd = this.target.scrollWidth - this.target.clientWidth === this.target.scrollLeft;
}
function scroll(direction) {
if (direction === 'right') {
this.target.scrollLeft = this.target.scrollLeft + this.target.clientWidth - 100;
}
if (direction === 'left') {
this.target.scrollLeft = this.target.scrollLeft - this.target.clientWidth + 100;
}
}
function mounted() {
this.target = this.$slots.default[0].elm;
this.target.addEventListener('scroll', () => this.updateScroll());
window.addEventListener('resize', this.updateScroll);
// typically triggered by slotted component when an image loads, affecting scrollWidth
this.$on('load', () => this.updateScroll());
this.updateScroll();
}
function beforeDestroy() {
this.target.removeEventListener('scroll', this.updateScroll);
window.removeEventListener('resize', this.updateScroll);
}
function updated() {
this.updateScroll();
}
export default {
components: {
Expand,
},
props: {
enabled: {
type: Boolean,
default: true,
},
expandable: {
type: Boolean,
default: true,
},
expanded: {
type: Boolean,
default: false,
},
},
data() {
return {
target: null,
scrollable: true,
scrollAtStart: true,
scrollAtEnd: false,
};
},
mounted,
updated,
beforeDestroy,
methods: {
scroll,
updateScroll,
},
};
</script>
<style lang="scss" scoped>
@import 'theme';
.scroll {
background: var(--profile);
&.expanded {
padding: 0;
.scroll {
display: none;
}
}
}
.scrollable {
position: relative;
}
.expand-light {
display: none;
}
.scroll-light {
background: var(--background-dim);
.scroll-button {
.icon {
fill: var(--darken);
}
&.scroll-start .icon,
&.scroll-end .icon {
fill: var(--darken-weak);
}
&:hover:not(.scroll-start):not(.scroll-end) .icon {
fill: var(--text-dark);
}
}
.scroll-left {
background: linear-gradient(to right, var(--background-dim) 50%, transparent);
}
.scroll-right {
background: linear-gradient(to left, var(--background-dim) 50%, transparent);
}
.expand-dark {
display: none;
}
.expand-light {
display: block;
}
}
.scroll-dark {
background: var(--profile);
.scroll-button {
.icon {
fill: var(--lighten);
}
&.scroll-start .icon,
&.scroll-end .icon {
fill: var(--darken-weak);
}
&:hover:not(.scroll-start):not(.scroll-end) .icon {
fill: var(--text-light);
}
}
.scroll-left {
background: linear-gradient(to right, var(--profile) 50%, transparent);
}
.scroll-right {
background: linear-gradient(to left, var(--profile) 50%, transparent);
}
.expand-light {
display: none;
}
.expand-dark {
display: block;
}
}
.scroll-button {
height: 100%;
display: flex;
align-items: center;
box-sizing: border-box;
position: absolute;
top: 0;
bottom: 0;
z-index: 10;
&.scroll-start,
&.scroll-end {
/* use over v-show so button stays visible while still hovered */
display: none;
}
&:hover {
display: flex;
cursor: pointer;
}
}
.scroll-left {
left: 0;
padding: 1rem 2rem 1rem .5rem;
}
.scroll-right {
right: 0;
padding: 1rem .5rem 1rem 2rem;
}
@media(max-width: $breakpoint) {
.scroll-button {
display: none;
}
}
</style>

View File

@@ -1,121 +0,0 @@
<template>
<div class="content-inner">
<span
v-if="loading"
class="summary"
>Searching...</span>
<span
v-if="!loading"
class="summary"
>Found {{ actors.length }} actors for '{{ query }}'</span>
<div
v-if="!loading && actors.length > 0"
v-lazy-container="{ selector: '.lazy' }"
class="tiles"
>
<Actor
v-for="actor in actors"
:key="`actor-${actor.id}`"
:actor="actor.aliasFor || actor"
:alias="actor.aliasFor && actor"
/>
</div>
<span
v-if="!loading"
class="summary"
>Found {{ releases.length }} releases for '{{ query }}'</span>
<Releases
v-if="!loading && releases.length > 0"
class="embedded"
:releases="releases"
/>
</div>
</template>
<script>
import Actor from '../actors/tile.vue';
import Releases from '../releases/releases.vue';
async function search() {
const results = await this.$store.dispatch('search', {
query: this.query,
limit: 100,
});
this.loading = false;
if (results) {
this.actors = results.actors;
this.releases = results.releases;
}
}
function query() {
return this.$route.query.query || this.$route.query.q;
}
async function mounted() {
await this.search();
}
async function watchQuery() {
await this.search();
}
export default {
components: {
Actor,
Releases,
},
data() {
return {
loading: true,
actors: [],
releases: [],
};
},
computed: {
query,
},
watch: {
query: watchQuery,
},
mounted,
methods: {
search,
},
};
</script>
<style lang="scss" scoped>
@import 'theme';
.content-inner {
padding: 1rem;
}
.summary {
display: block;
margin: 0 0 1rem 0;
color: var(--shadow);
font-weight: bold;
}
.tiles {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(11rem, 1fr));
grid-gap: 0 .5rem;
flex-grow: 1;
margin: 0 0 1rem 0;
}
@media(max-width: $breakpoint0) {
.tiles {
grid-template-columns: repeat(auto-fill, minmax(8rem, 1fr));
}
}
</style>

View File

@@ -1,333 +0,0 @@
<template>
<div
class="sidebar-container"
@click="$emit('toggle', false)"
>
<div
class="sidebar"
@click.stop
>
<div class="sidebar-section">
<div class="sidebar-header">
<router-link
to="/updates"
class="logo-link"
@click.native="$emit('toggle', false)"
>
<h1 class="sidebar-logo">
<div
class="logo"
v-html="logo"
/>
</h1>
</router-link>
<Icon
icon="cross2"
class="sidebar-close noselect"
@click.native="$emit('toggle', false)"
/>
</div>
<Search
class="search"
@search="$emit('toggle', false)"
/>
<nav class="nav">
<ul class="nolist">
<li class="nav-item">
<router-link
v-slot="{ href, isActive, navigate }"
to="/updates"
@click.native="$emit('toggle', false)"
>
<a
class="nav-link"
:href="href"
:class="{ active: isActive }"
@click="navigate"
>Home</a>
</router-link>
</li>
<li class="nav-item">
<router-link
v-slot="{ href, isActive, navigate }"
to="/actors"
@click.native="$emit('toggle', false)"
>
<a
class="nav-link"
:href="href"
:class="{ active: isActive }"
@click="navigate"
>Actors</a>
</router-link>
</li>
<li class="nav-item">
<router-link
v-slot="{ href, isActive, navigate }"
to="/networks"
@click.native="$emit('toggle', false)"
>
<a
class="nav-link"
:href="href"
:class="{ active: isActive }"
@click="navigate"
>Channels</a>
</router-link>
</li>
<li class="nav-item">
<router-link
v-slot="{ href, isActive, navigate }"
to="/movies"
@click.native="$emit('toggle', false)"
>
<a
class="nav-link"
:href="href"
:class="{ active: isActive }"
@click="navigate"
>Movies</a>
</router-link>
</li>
<li class="nav-item">
<router-link
v-slot="{ href, isActive, navigate }"
to="/tags"
@click.native="$emit('toggle', false)"
>
<a
class="nav-link"
:href="href"
:class="{ active: isActive }"
@click="navigate"
>Tags</a>
</router-link>
</li>
</ul>
</nav>
</div>
<div class="sidebar-section toggles noselect">
<label
v-show="sfw"
class="toggle"
@click="setSfw(false)"
><Icon icon="fire" />Disable safe mode</label>
<label
v-show="!sfw"
class="toggle"
@click="setSfw(true)"
><Icon icon="flower" />Enable safe mode</label>
<label
v-show="theme === 'dark'"
class="toggle"
@click="setTheme('light')"
><Icon icon="sun" />Use light theme</label>
<label
v-show="theme === 'light'"
class="toggle"
@click="setTheme('dark')"
><Icon icon="moon" />Use dark theme</label>
</div>
</div>
</div>
</template>
<script>
import { mapState } from 'vuex';
import Search from '../header/search.vue';
import logo from '../../img/logo.svg';
function sfw(state) {
return state.ui.sfw;
}
function theme(state) {
return state.ui.theme;
}
function setTheme(newTheme) {
this.$store.dispatch('setTheme', newTheme);
}
function setSfw(enabled) {
this.$store.dispatch('setSfw', enabled);
}
export default {
components: {
Search,
},
data() {
return {
logo,
};
},
computed: {
...mapState({
sfw,
theme,
}),
},
methods: {
setTheme,
setSfw,
},
};
</script>
<style lang="scss" scoped>
.sidebar-container {
height: 100%;
width: 100%;
position: absolute;
z-index: 10;
background: var(--darken-weak);
}
.sidebar {
display: flex;
flex-direction: column;
justify-content: space-between;
width: 15rem;
height: 100%;
margin: 0 0 0 auto;
color: var(--text);
background: var(--background);
box-shadow: 0 0 3px var(--darken-weak);
}
.sidebar-header {
display: flex;
justify-content: space-between;
height: 3rem;
border-bottom: solid 1px var(--shadow-hint);
}
.sidebar-close {
width: 1.25rem;
height: 100%;
padding: 0 1.125rem;
fill: var(--shadow-modest);
&:hover {
fill: var(--primary);
cursor: pointer;
}
}
.sidebar-logo {
height: 100%;
display: flex;
align-items: center;
margin: 0;
}
.logo-link {
display: block;
height: 100%;
padding: 0 1rem;
}
.logo {
width: 6rem;
display: flex;
align-items: center;
margin: 0;
fill: var(--primary);
}
::v-deep .search {
height: 3rem;
border-bottom: solid 1px var(--shadow-hint);
padding: 0;
margin: 0 0 .5rem 0;
.search-input {
padding: .5rem 0 .5rem 1rem;
}
}
.nav-item {
display: block;
}
.nav-link {
color: var(--shadow);
display: block;
padding: 1rem;
text-decoration: none;
font-weight: bold;
&:hover {
color: var(--shadow-strong);
}
&.active {
color: var(--primary);
}
}
.toggles {
border-top: solid 1px var(--shadow-hint);
margin: .5rem 0 0 0;
}
.toggle {
display: flex;
align-self: flex-end;
padding: 1rem;
color: var(--shadow);
font-weight: bold;
.icon {
fill: var(--shadow);
margin: 0 1rem 0 0;
}
&.active .icon {
fill: var(--primary);
}
&:hover {
cursor: pointer;
color: var(--shadow-strong);
&:not(.active) .icon {
fill: var(--shadow-strong);
}
}
}
.dark .sidebar {
background: var(--profile);
.nav-link {
color: var(--shadow);
&.active {
color: var(--text-light);
}
}
.sidebar-close {
fill: var(--lighten);
&:hover {
fill: var(--text-light);
}
}
}
</style>

View File

@@ -1,99 +0,0 @@
<template>
<div class="stats">
<div class="content-inner">
<h1 class="heading">Stats</h1>
<span class="version">traxxx {{ version }}</span>
<dl class="stat-table">
<div class="stat-row">
<dt class="stat-label">Networks</dt>
<dd class="stat-value">{{ totalNetworks }}</dd>
</div>
<div class="stat-row">
<dt class="stat-label">Channels</dt>
<dd class="stat-value">{{ totalChannels }}</dd>
</div>
<div class="stat-row">
<dt class="stat-label">Scenes</dt>
<dd class="stat-value">{{ totalScenes }}</dd>
</div>
<div class="stat-row">
<dt class="stat-label">Movies</dt>
<dd class="stat-value">{{ totalMovies }}</dd>
</div>
<div class="stat-row">
<dt class="stat-label">Actors</dt>
<dd class="stat-value">{{ totalActors }}</dd>
</div>
</dl>
</div>
<Footer />
</div>
</template>
<script>
async function mounted() {
const stats = await this.$store.dispatch('fetchStats');
this.totalScenes = stats.totalScenes;
this.totalMovies = stats.totalMovies;
this.totalActors = stats.totalActors;
this.totalNetworks = stats.totalNetworks;
this.totalChannels = stats.totalChannels;
this.version = VERSION; // eslint-disable-line no-undef
}
export default {
data() {
return {
totalScenes: 0,
totalMovies: 0,
totalActors: 0,
totalNetworks: 0,
totalChannels: 0,
};
},
mounted,
};
</script>
<style lang="scss" scoped>
.stats {
display: flex;
flex-direction: column;
flex-grow: 1;
}
.content-inner {
padding: 1rem;
}
.stat-row {
width: 20rem;
max-width: 100%;
display: flex;
padding: .5rem 0;
justify-content: space-between;
&:not(:last-child) {
border-bottom: solid 1px var(--shadow-hint);
}
}
.stat-label {
display: inline-block;
font-weight: bold;
color: var(--shadow-strong);
}
.stat-value {
display: inline-block;
}
</style>

View File

@@ -1,148 +0,0 @@
<template>
<div class="photos">
<a
v-if="tag.poster"
:href="`/img/${poster.path}`"
:title="poster.comment"
target="_blank"
rel="noopener noreferrer"
class="photo-link"
>
<img
:src="`/img/${poster.thumbnail}`"
:alt="tag.poster.comment"
class="poster"
@load="$parent.$emit('load')"
>
<span
v-if="poster.comment"
class="photo-comment"
>{{ poster.comment }}</span>
</a>
<a
v-for="photo in photos"
:key="`photo-${photo.id}`"
:title="photo.comment"
:href="`/img/${photo.path}`"
target="_blank"
rel="noopener noreferrer"
class="photo-link"
>
<img
:src="`/img/${photo.thumbnail}`"
:alt="photo.comment"
class="photo"
@load="$parent.$emit('load')"
>
<span
v-if="photo.comment"
class="photo-comment"
>{{ photo.comment }}</span>
</a>
</div>
</template>
<script>
function poster() {
if (this.$store.state.ui.sfw) {
return this.tag.poster.sfw;
}
return this.tag.poster;
}
function photos() {
if (this.$store.state.ui.sfw) {
return this.tag.photos.map(photo => photo.sfw);
}
return this.tag.photos;
}
export default {
props: {
tag: {
type: Object,
default: null,
},
},
computed: {
poster,
photos,
},
};
</script>
<style lang="scss" scoped>
.photos {
width: 100%;
padding: .5rem 1rem 0 .5rem;
box-sizing: border-box;
overflow-x: auto;
white-space: nowrap;
scrollbar-width: none;
scroll-behavior: smooth;
font-size: 0;
&::-webkit-scrollbar {
display: none;
}
&.expanded {
display: flex;
justify-content: center;
flex-wrap: wrap;
padding: 0 0 0 1rem;
.photo-link {
margin: 0 .5rem .5rem 0;
}
.poster,
.photo {
max-height: 18rem;
}
}
}
.photo-link {
display: inline-block;
position: relative;
overflow: hidden;
&:not(:last-child) {
margin: 0 .5rem 0 0;
}
&:hover .photo-comment {
transform: translateY(0);
}
}
.poster,
.photo {
max-height: 15rem;
max-width: 100%;
box-shadow: 0 0 3px var(--shadow-weak);
}
.photo-comment {
width: 100%;
position: absolute;
bottom: 0;
left: 0;
box-sizing: border-box;
padding: .5rem;
color: var(--text-light);
background: var(--shadow);
font-size: .9rem;
text-shadow: 0 0 3px var(--shadow);
white-space: normal;
line-height: 1.25;
transform: translateY(100%);
transition: transform .25s ease;
}
</style>

View File

@@ -1,162 +0,0 @@
<template>
<div
v-if="tag"
class="tag content"
>
<div class="header">
<h2 class="title">
<Icon icon="price-tag4" />
{{ tag.name }}
</h2>
</div>
<div class="content-inner">
<div
v-if="description"
class="description header-description"
v-html="description"
/>
<Scroll
v-if="hasMedia"
:expanded="expanded"
class="scroll-light"
@expand="(state) => expanded = state"
>
<Photos
:tag="tag"
:class="{ expanded }"
/>
</Scroll>
<FilterBar :fetch-releases="fetchReleases" />
<Releases :releases="releases" />
<Pagination
:items-total="totalCount"
:items-per-page="limit"
class="pagination-bottom"
/>
<Footer />
</div>
</div>
</template>
<script>
/* eslint-disable no-v-html */
import { Converter } from 'showdown';
import escapeHtml from '../../../src/utils/escape-html';
import FilterBar from '../filters/filter-bar.vue';
import Photos from './photos.vue';
import Releases from '../releases/releases.vue';
import Pagination from '../pagination/pagination.vue';
import Scroll from '../scroll/scroll.vue';
const converter = new Converter();
async function fetchReleases() {
const { tag, releases, totalCount } = await this.$store.dispatch('fetchTagBySlug', {
tagSlug: this.$route.params.tagSlug,
pageNumber: Number(this.$route.params.pageNumber),
limit: this.limit,
range: this.$route.params.range,
});
this.tag = tag;
this.releases = releases;
this.totalCount = totalCount;
this.hasMedia = this.tag.poster || this.tag.photos.length > 0;
this.description = this.tag.description && converter.makeHtml(escapeHtml(this.tag.description));
}
async function route() {
await this.fetchReleases();
}
async function mounted() {
await this.fetchReleases();
this.pageTitle = this.tag.name;
}
export default {
components: {
FilterBar,
Releases,
Photos,
Pagination,
Scroll,
},
data() {
return {
tag: null,
description: null,
releases: null,
totalCount: 0,
limit: 15,
pageTitle: null,
hasMedia: false,
expanded: false,
};
},
watch: {
$route: route,
},
mounted,
methods: {
fetchReleases,
},
};
</script>
<style lang="scss">
@import 'theme';
.description a {
color: var(--link);
text-decoration: inherit;
&:hover {
color: var(--primary);
}
}
.description,
.description p {
padding: 0;
margin: 0;
}
</style>
<style lang="scss" scoped>
@import 'theme';
.header {
background: var(--profile);
color: var(--text-light);
justify-content: space-between;
}
.title {
padding: .5rem 1rem;
margin: 0;
flex-shrink: 0;
text-transform: capitalize;
.icon {
fill: var(--text-light);
width: 1.25rem;
height: 1.25rem;
}
}
.description {
padding: 0 1rem .5rem 1rem;
line-height: 1.5;
color: var(--text-light);
background: var(--profile);
}
</style>

View File

@@ -1,214 +0,0 @@
<template>
<div class="tags">
<div
v-for="(tags, category) in categories"
:key="category"
class="category"
>
<h3 class="heading">{{ category }}</h3>
<div
:key="sfw"
v-lazy-container
class="tiles"
>
<Tag
v-for="tag in tags"
:key="`tag-${tag.id}`"
:tag="tag"
:lazy="true"
/>
</div>
</div>
<Footer />
</div>
</template>
<script>
import Tag from './tile.vue';
function sfw() {
return this.$store.state.ui.sfw;
}
async function mounted() {
const tagSlugsByCategory = {
popular: [
'anal',
'lesbian',
'interracial',
'mff',
'mfm',
'teen',
'milf',
'blowjob',
'dp',
'gangbang',
'facial',
'creampie',
'squirting',
],
appearance: [
'asian',
'ebony',
'latina',
'caucasian',
'natural-boobs',
'fake-boobs',
'blonde',
'brunette',
'redhead',
'tattoos',
'piercings',
],
oral: [
'blowjob',
'pussy-eating',
'ass-eating',
'69',
'double-blowjob',
'deepthroat',
'facefucking',
'atm',
],
manual: [
'handjob',
'fingering',
'anal-fingering',
'titty-fucking',
'fisting',
'anal-fisting',
],
group: [
'mfm',
'mff',
'orgy',
'gangbang',
'blowbang',
],
cumshot: [
'facial',
'creampie',
'cum-in-mouth',
'cum-on-boobs',
'cum-on-butt',
'cum-on-pussy',
'anal-creampie',
'oral-creampie',
'bukkake',
'fake-cum',
],
toys: [
'toy-anal',
'toy-dp',
'double-dildo',
'double-dildo-blowjob',
'double-dildo-kiss',
'double-dildo-anal',
'double-dildo-dp',
],
roleplay: [
'family',
'parody',
'schoolgirl',
'nurse',
'maid',
],
fetish: [
'bdsm',
'femdom',
'bondage',
'blindfold',
],
extreme: [
'dp',
'airtight',
'dap',
'dvp',
'da-tp',
'dv-tp',
'tap',
],
misc: [
'gaping',
'squirting',
'oil',
'bts',
],
};
const tags = await this.$store.dispatch('fetchTags', {
slugs: Object.values(tagSlugsByCategory).flat(),
});
const tagsBySlug = tags.reduce((acc, tag) => ({ ...acc, [tag.slug]: tag }), {});
this.categories = Object.entries(tagSlugsByCategory).reduce((acc, [category, tagSlugs]) => ({
...acc,
[category]: tagSlugs.map(tagSlug => tagsBySlug[tagSlug]),
}), {});
this.pageTitle = 'Tags';
}
export default {
components: {
Tag,
},
data() {
return {
categories: {},
pageTitle: null,
};
},
computed: {
sfw,
},
mounted,
};
</script>
<style lang="scss" scoped>
@import 'theme';
.tags {
padding: 1rem 1rem 0 1rem;
}
.tiles {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(20rem, .33fr));
grid-gap: 1rem;
margin: 0 0 1.5rem 0;
}
.heading {
text-transform: capitalize;
padding: 0 0 0 .5rem;
margin: 2rem 0 1rem 0;
}
.category:first-child .heading {
margin: .5rem 0 1rem 0;
}
@media(max-width: $breakpoint3) {
.tiles {
grid-template-columns: repeat(auto-fill, minmax(18rem, .5fr));
}
}
@media(max-width: $breakpoint) {
.tiles {
grid-template-columns: repeat(auto-fill, minmax(15rem, 1fr));
grid-gap: .5rem;
}
}
@media(max-width: $breakpoint0) {
.tiles {
grid-template-columns: repeat(auto-fill, minmax(12rem, 1fr));
}
}
</style>

View File

@@ -1,120 +0,0 @@
<template>
<div
v-if="tag.poster"
class="tile"
>
<router-link
:to="`/tag/${tag.slug}`"
:title="tag.name"
class="poster-link"
>
<img
v-if="!lazy && !sfw"
:src="`/img/${tag.poster.thumbnail}`"
:title="tag.poster.comment"
:alt="tag.name"
class="poster"
>
<img
v-if="!lazy && sfw"
:src="`/img/${tag.poster.sfw.thumbnail}`"
:title="tag.poster.sfw.comment"
:alt="tag.name"
class="poster"
>
<img
v-if="lazy && !sfw"
:data-src="`/img/${tag.poster.thumbnail}`"
:data-loading="`/img/${tag.poster.lazy}`"
:title="tag.poster.comment"
:alt="tag.name"
class="poster"
>
<img
v-if="lazy && sfw"
:data-src="`/img/${tag.poster.sfw.thumbnail}`"
:data-loading="`/img/${tag.poster.sfw.lazy}`"
:title="tag.poster.sfw.comment"
:alt="tag.name"
class="poster"
>
</router-link>
<router-link
class="title"
:to="`/tag/${tag.slug}`"
:title="tag.name"
>{{ tag.name }}</router-link>
</div>
<span
v-else
class="title"
>{{ tag.name }}</span>
</template>
<script>
function sfw() {
return this.$store.state.ui.sfw;
}
export default {
props: {
tag: {
type: Object,
default: null,
},
lazy: {
type: Boolean,
default: false,
},
},
computed: {
sfw,
},
};
</script>
<style lang="scss" scoped>
@import 'theme';
.tile {
box-sizing: border-box;
position: relative;
text-decoration: none;
font-size: 0;
&:hover {
.poster {
box-shadow: 0 0 3px var(--darken);
}
.title {
background: var(--primary);
}
}
}
.poster {
width: 100%;
box-shadow: 0 0 3px var(--darken-weak);
}
.title {
display: block;
box-sizing: border-box;
padding: .5rem 1rem;
overflow: hidden;
white-space: nowrap;
color: var(--text-light);
background: var(--profile);
text-decoration: none;
font-size: .9rem;
font-weight: bold;
text-transform: capitalize;
text-overflow: ellipsis;
}
</style>

View File

@@ -1,7 +0,0 @@
$breakpoint-nano: 320px;
$breakpoint-micro: 540px;
$breakpoint-small: 620px;
$breakpoint: 720px;
$breakpoint-kilo: 900px;
$breakpoint-mega: 1200px;
$breakpoint-giga: 1500px;

View File

@@ -1,8 +0,0 @@
.select {
color: var(--shadow-strong);
background: var(--background);
padding: .5rem;
font-size: 1rem;
border: solid 1px var(--shadow-weak);
cursor: pointer;
}

View File

@@ -1,33 +0,0 @@
.noselect {
user-select: none;
-webkit-user-select: none;
-moz-user-select: none;
-ms-user-select: none;
-webkit-tap-highlight-color: transparent;
}
.nolist {
list-style: none;
padding: 0;
margin: 0;
li {
display: inline-block;
padding: 0;
margin: 0;
}
}
.nolink {
display: inline-block;
color: inherit;
text-decoration: none;
}
:focus {
outline: none;
}
::-moz-focus-inner {
border: 0;
}

View File

@@ -1,97 +0,0 @@
$breakpoint0: 540px;
$breakpoint: 720px;
$breakpoint2: 900px;
$breakpoint3: 1200px;
$breakpoint4: 1500px;
:root {
/* --primary: #ff886c; */
--primary: #ff6c88;
--text-dark: #222;
--text-light: #fff;
--darken: rgba(0, 0, 0, .5);
--darken-strong: rgba(0, 0, 0, .7);
--darken-extreme: rgba(0, 0, 0, .9);
--darken-weak: rgba(0, 0, 0, .2);
--darken-hint: rgba(0, 0, 0, .1);
--lighten: rgba(255, 255, 255, .5);
--lighten-strong: rgba(255, 255, 255, .7);
--lighten-extreme: rgba(255, 255, 255, .9);
--lighten-weak: rgba(255, 255, 255, .2);
--lighten-hint: rgba(255, 255, 255, .05);
--logo-shadow: drop-shadow(1px 0 0 $shadow-weak) drop-shadow(-1px 0 0 $shadow-weak) drop-shadow(0 1px 0 $shadow-weak) drop-shadow(0 -1px 0 $shadow-weak);
--logo-highlight: drop-shadow(0 0 1px $highlight);
--male: #0af;
--female: #f0a;
--alert: #f00;
--warn: #fa0;
--success: #5c2;
}
.light {
--text: #222;
--text-contrast: #fff;
--background: #fff;
--background-dim: #fafafa;
--background-soft: #fdfdfd;
--profile: #222;
--tile: #2a2a2a;
--link: #dd6688;
--empty: #333;
--crease: #eaeaea;
--shadow: rgba(0, 0, 0, .5);
--shadow-extreme: rgba(0, 0, 0, .9);
--shadow-strong: rgba(0, 0, 0, .7);
--shadow-modest: rgba(0, 0, 0, .3);
--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-modest: rgba(255, 255, 255, .3);
--highlight-weak: rgba(255, 255, 255, .2);
--highlight-hint: rgba(255, 255, 255, .075);
}
.dark {
--text: #fff;
--text-contrast: #222;
--background: #222;
--background-dim: #181818;
--background-soft: #111;
--profile: #222;
--tile: #2a2a2a;
--link: #dd6688;
--empty: #333;
--crease: #222;
--shadow: rgba(255, 255, 255, .5);
--shadow-extreme: rgba(255, 255, 255, .9);
--shadow-strong: rgba(255, 255, 255, .7);
--shadow-modest: rgba(255, 255, 255, .3);
--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-modest: rgba(0, 0, 0, .3);
--highlight-weak: rgba(0, 0, 0, .2);
--highlight-hint: rgba(0, 0, 0, .1);
}

View File

@@ -1,112 +0,0 @@
.tooltip {
display: block !important;
z-index: 10000;
.tooltip-inner {
max-width: 20rem;
background: #222;
color: white;
border-radius: 16px;
}
&:not(.popover) .tooltip-inner {
padding: .5rem 1rem;
}
.tooltip-arrow {
width: 0;
height: 0;
border-style: solid;
position: absolute;
margin: 5px;
border-color: #222;
z-index: 1;
}
&[x-placement^="top"] {
margin-bottom: 5px;
.tooltip-arrow {
border-width: 5px 5px 0 5px;
border-left-color: transparent !important;
border-right-color: transparent !important;
border-bottom-color: transparent !important;
bottom: -5px;
left: calc(50% - 5px);
margin-top: 0;
margin-bottom: 0;
}
}
&[x-placement^="bottom"] {
margin-top: 5px;
.tooltip-arrow {
border-width: 0 5px 5px 5px;
border-left-color: transparent !important;
border-right-color: transparent !important;
border-top-color: transparent !important;
top: -5px;
left: calc(50% - 5px);
margin-top: 0;
margin-bottom: 0;
}
}
&[x-placement^="right"] {
margin-left: 5px;
.tooltip-arrow {
border-width: 5px 5px 5px 0;
border-left-color: transparent !important;
border-top-color: transparent !important;
border-bottom-color: transparent !important;
left: -5px;
top: calc(50% - 5px);
margin-left: 0;
margin-right: 0;
}
}
&[x-placement^="left"] {
margin-right: 5px;
.tooltip-arrow {
border-width: 5px 0 5px 5px;
border-top-color: transparent !important;
border-right-color: transparent !important;
border-bottom-color: transparent !important;
right: -5px;
top: calc(50% - 5px);
margin-left: 0;
margin-right: 0;
}
}
&.popover {
$color: #fff;
.popover-inner {
background: $color;
color: black;
border-radius: 5px;
box-shadow: 0 5px 30px rgba(black, .1);
}
.popover-arrow {
border-color: $color;
}
}
&[aria-hidden='true'] {
visibility: hidden;
opacity: 0;
/* transition: opacity .15s, visibility .15s; */
}
&[aria-hidden='false'] {
visibility: visible;
opacity: 1;
/* transition: opacity .15s; */
}
}

View File

@@ -1,39 +0,0 @@
@import 'theme';
@import 'inputs';
@import 'states';
@import 'tooltip';
html,
body {
height: 100%;
}
body {
margin: 0;
font-family: Arial, Helvetica, sans-serif;
}
.nolist {
list-style: none;
padding: 0;
margin: 0;
li {
display: inline-block;
}
}
.heading {
color: var(--shadow);
padding: 0;
margin: 0 0 1rem 0;
font-size: 1.5rem;
}
.icon.icon-href {
fill: var(--shadow);
:hover {
fill: var(--primary);
}
}

0
assets/img/avatars/Ace Rockwood - outline - hardon.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

0
assets/img/avatars/Ace Rockwood - outline.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

0
assets/img/avatars/Ace Rockwood.jpg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

0
assets/img/avatars/Ace Rockwood.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 62 KiB

0
assets/img/avatars/Athena Rayne.jpg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.8 MiB

After

Width:  |  Height:  |  Size: 1.8 MiB

0
assets/img/avatars/Athena Rayne.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.5 MiB

After

Width:  |  Height:  |  Size: 2.5 MiB

0
assets/img/avatars/Gianna Dior - outline.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

0
assets/img/avatars/Gianna Dior.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 956 KiB

After

Width:  |  Height:  |  Size: 956 KiB

0
assets/img/avatars/Megan Snow - outline.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

0
assets/img/avatars/Megan Snow.jpg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 643 KiB

After

Width:  |  Height:  |  Size: 643 KiB

0
assets/img/avatars/Megan Snow.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 891 KiB

After

Width:  |  Height:  |  Size: 891 KiB

0
assets/img/avatars/Tan.jpg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1016 KiB

After

Width:  |  Height:  |  Size: 1016 KiB

0
assets/img/avatars/avatar_female1.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 33 KiB

After

Width:  |  Height:  |  Size: 33 KiB

0
assets/img/avatars/avatar_female2.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 635 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.3 KiB

View File

@@ -0,0 +1,69 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="26.528891mm"
height="26.528891mm"
viewBox="0 0 26.528891 26.528891"
version="1.1"
id="svg8"
sodipodi:docname="favicon.svg"
inkscape:version="1.0.2 (e86c870879, 2021-01-15)">
<defs
id="defs2" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="3.959798"
inkscape:cx="-25.862887"
inkscape:cy="46.089189"
inkscape:document-units="mm"
inkscape:current-layer="text835"
inkscape:document-rotation="0"
showgrid="false"
inkscape:window-width="1920"
inkscape:window-height="1024"
inkscape:window-x="0"
inkscape:window-y="32"
inkscape:window-maximized="1"
fit-margin-top="0"
fit-margin-left="0"
fit-margin-right="0"
fit-margin-bottom="0" />
<metadata
id="metadata5">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(-41.157469,-57.836902)">
<g
aria-label="t"
id="text835"
style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:35.2778px;line-height:1.25;font-family:Orbitron;-inkscape-font-specification:'Orbitron Heavy';fill:#ff2280;fill-opacity:1;stroke:none;stroke-width:0.264583">
<path
d="m 53.328303,69.30218 v 9.666111 h 7.584722 v 5.3975 h -7.831667 q -1.058333,0 -2.010833,-0.388055 -0.9525,-0.423334 -1.658056,-1.128889 -0.670277,-0.705556 -1.093611,-1.622778 -0.388055,-0.917222 -0.388055,-1.975556 V 57.836902 h 5.3975 v 6.067778 h 7.584722 v 5.3975 z"
style="font-style:normal;font-variant:normal;font-weight:900;font-stretch:normal;font-size:35.2778px;font-family:Orbitron;-inkscape-font-specification:'Orbitron Heavy';fill:#ff2280;fill-opacity:1;stroke-width:0.264583"
id="path858" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.6 KiB

0
assets/img/favicon/border/android-chrome-192x192.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 6.4 KiB

After

Width:  |  Height:  |  Size: 6.4 KiB

0
assets/img/favicon/border/android-chrome-512x512.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

0
assets/img/favicon/border/apple-touch-icon.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.9 KiB

After

Width:  |  Height:  |  Size: 1.9 KiB

0
assets/img/favicon/border/browserconfig.xml Normal file → Executable file
View File

0
assets/img/favicon/border/favicon-16x16.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 850 B

After

Width:  |  Height:  |  Size: 850 B

0
assets/img/favicon/border/favicon-32x32.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

0
assets/img/favicon/border/favicon.ico Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

0
assets/img/favicon/border/mstile-150x150.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.5 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

0
assets/img/favicon/border/safari-pinned-tab.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.6 KiB

After

Width:  |  Height:  |  Size: 1.6 KiB

0
assets/img/favicon/border/site.webmanifest Normal file → Executable file
View File

0
assets/img/favicon/favicon.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 41 KiB

After

Width:  |  Height:  |  Size: 41 KiB

0
assets/img/favicon/favicon.svg Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

0
assets/img/favicon/favicon_border.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 14 KiB

0
assets/img/favicon/old/favicon-16x16.ico Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 1.1 KiB

0
assets/img/favicon/old/favicon-32x32.ico Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.2 KiB

0
assets/img/favicon/old/favicon-64x64.ico Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

0
assets/img/favicon/old/favicon-64x64.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

0
assets/img/favicon/old/favicon-dark-16x16.ico Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

0
assets/img/favicon/old/favicon-dark-32x32.ico Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

0
assets/img/favicon/old/favicon-dark-64x64.ico Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

0
assets/img/favicon/old/favicon.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

0
assets/img/flags/png/ao.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 428 B

After

Width:  |  Height:  |  Size: 428 B

0
assets/img/flags/png/catalonia.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 398 B

After

Width:  |  Height:  |  Size: 398 B

0
assets/img/flags/png/cd.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 528 B

After

Width:  |  Height:  |  Size: 528 B

0
assets/img/flags/png/europeanunion.png Normal file → Executable file
View File

Before

Width:  |  Height:  |  Size: 479 B

After

Width:  |  Height:  |  Size: 479 B

Some files were not shown because too many files have changed in this diff Show More