Compare commits

...

453 Commits

Author SHA1 Message Date
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
726 changed files with 13676 additions and 19398 deletions

View File

@ -11,9 +11,12 @@
"no-tabs": "off",
"no-unused-vars": ["error", {"argsIgnorePattern": "^_"}],
"no-console": 0,
"arrow-body-style": 0,
"default-param-last": 0,
"template-curly-spacing": "off",
"max-len": 0,
"func-names": 0,
"space-before-function-paren": 0,
"vue/no-v-html": 0,
"vue/html-indent": ["error", "tab"],
"vue/multiline-html-element-content-newline": 0,

2
.gitignore vendored
View File

@ -9,8 +9,10 @@ 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*

3
.gitmodules vendored Normal file
View File

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

File diff suppressed because it is too large Load Diff

4
assets/img/icons/pencil2.svg Executable file
View File

@ -0,0 +1,4 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
<path d="M11.445 0.055l-8.945 8.945-2.5 7 6.995-2.5 8.95-8.945c0.5-2-2.5-5-4.5-4.5zM4.5 11l-1-1 8.5-8.5 1 1-8.5 8.5z"></path>
</svg>

After

Width:  |  Height:  |  Size: 264 B

4
assets/img/icons/pencil3.svg Executable file
View File

@ -0,0 +1,4 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
<path d="M11.91 0c-0.159 0-0.315 0.018-0.465 0.055l-8.945 8.945-2.5 7 6.995-2.5 8.95-8.945c0.462-1.85-2.069-4.555-4.035-4.555zM6.525 12.025l-2.553-2.553 7.5-7.5 2.555 2.555-7.502 7.498z"></path>
</svg>

After

Width:  |  Height:  |  Size: 333 B

5
assets/img/icons/pencil5.svg Executable file
View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
<path d="M12 8.5v5.5h-10v-10h5.5l2-2h-8c-0.825 0-1.5 0.675-1.5 1.5v11c0 0.825 0.675 1.5 1.5 1.5h11c0.825 0 1.5-0.675 1.5-1.5v-8l-2 2z"></path>
<path d="M13.5 0l-9.5 9.5v2.5h2.5l9.5-9.5c0-1.5-1-2.5-2.5-2.5z"></path>
</svg>

After

Width:  |  Height:  |  Size: 353 B

5
assets/img/icons/pencil7.svg Executable file
View File

@ -0,0 +1,5 @@
<!-- Generated by IcoMoon.io -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 16 16">
<path d="M12 8.5v5.5h-10v-10h5.5l2-2h-8c-0.825 0-1.5 0.675-1.5 1.5v11c0 0.825 0.675 1.5 1.5 1.5h11c0.825 0 1.5-0.675 1.5-1.5v-8l-2 2z"></path>
<path d="M13.5 0l-9.5 9.5v2.5h2.5l9.5-9.5c0-1.5-1-2.5-2.5-2.5zM6.5 10l-0.75-0.75 7.5-7.5 0.75 0.75-7.5 7.5z"></path>
</svg>

After

Width:  |  Height:  |  Size: 398 B

View File

@ -39,7 +39,7 @@ function initReleasesActions(store, router) {
before,
orderBy,
exclude: store.state.ui.tagFilter,
batchShowcased: range === 'new' ? true : [true, false],
batchShowcased: true,
});
return {

1
common Submodule

@ -0,0 +1 @@
Subproject commit ec4b15ce33a3a6306ee5024935ed2966502d3019

View File

@ -73,6 +73,9 @@ module.exports = {
},
exclude: {
channels: [
// aylo
'pornhub',
'spicevids',
// 21sextreme, no longer updated
'mightymistress',
'dominatedgirls',
@ -125,12 +128,64 @@ module.exports = {
'ncversocinema',
'pussybabes',
'uksinners',
// mindgeek
'pornhub',
// insex
'paintoy',
'aganmedon',
'sensualpain',
// porn world
'1byday',
'bustylover',
'ddfbusty',
'ddfnetworkvr',
'eurogirlsongirls',
'euroteenerotica',
'fuckinhd',
'handsonhardcore',
'hotlegsandfeet',
'houseoftaboo',
'onlyblowjob',
// letsdoeit
'xchimera',
'scamangels',
'bitchesabroad',
'pornoacademie',
'bumsbus',
'kinkyinlaws',
// killergram, no longer available on new Aylo site
'analrehab',
'bitchfunkers',
'bootypackers',
'brownsugar',
'burlesquexxx',
'chainsmokers',
'clubbabes',
'collegebabes',
'creammycunt',
'cumpartysluts',
'doggingmissions',
'fetishsexclinic',
'getshafted',
'girlyriders',
'gloryholegirls',
'hardfisex',
'killergramcuts',
'killergramplatinum',
'kinkycouples',
'letsgetslippy',
'nyloncumsluts',
'officeantics',
'pornostatic',
'pornstarsutd',
'rockchicks',
'ru4hire',
'spacehoppers',
'streetwalkers',
'tattooedsluts',
'thehandyman',
'theladypimp',
'voyeurcams',
'wifesluts',
'wishescumtrue',
],
networks: [
// dummy network for testing
@ -138,6 +193,8 @@ module.exports = {
// porn doe
'forbondage',
'score',
// porncz
'porncz',
],
},
profiles: [
@ -189,12 +246,9 @@ module.exports = {
'hotcrazymess',
'thatsitcomshow',
],
[
// Adult DVD Empire
'elegantangel',
'westcoastproductions',
],
'21sextury',
'dogfartnetwork',
'adultempire',
'julesjordan',
'dorcelclub',
'bang',
@ -211,6 +265,7 @@ module.exports = {
'vrcosplayx',
'teamskeet',
'mylf',
'spermmania',
[
'letsdoeit',
'mamacitaz',
@ -250,13 +305,15 @@ module.exports = {
'topwebmodels',
'pascalssubsluts',
'kellymadison',
'5kporn',
'private',
'ddfnetwork',
'bangbros',
'hitzefrei',
'porncz',
'czechav',
'angelogodshackoriginal',
'littlecapricedreams',
'missyx',
'gangbangcreampie',
'gloryholesecrets',
'aziani',
@ -268,7 +325,10 @@ module.exports = {
'silverstonedvd',
'silviasaint',
],
'legalporno',
[
'analvids',
'pornworld',
],
'pierrewoodman',
'score',
'boobpedia',
@ -284,55 +344,7 @@ module.exports = {
enable: false,
host: '',
port: 8888,
hostnames: [
'www.vixen.com',
'www.blacked.com',
'www.blackedraw.com',
'www.tushy.com',
'www.tushyraw.com',
'www.deeper.com',
'www.slayed.com',
'www.milfy.com',
'sthw-trailer-vixen.ssl-cdn.com',
'sthw-trailer-tushy.ssl-cdn.com',
'sthw-trailer-tushyraw.ssl-cdn.com',
'sthw-trailer-blacked.ssl-cdn.com',
'sthw-trailer-blackedraw.ssl-cdn.com',
'sthw-trailer-deeper.ssl-cdn.com',
'sthw-trailer-milfy.ssl-cdn.com',
'streamhw-trailer-vixen.ssl-cdn.com',
'streamhw-trailer-tushy.ssl-cdn.com',
'streamhw-trailer-tushyraw.ssl-cdn.com',
'streamhw-trailer-blacked.ssl-cdn.com',
'streamhw-trailer-blackedraw.ssl-cdn.com',
'streamhw-trailer-deeper.ssl-cdn.com',
'streamhw-trailer-milfy.ssl-cdn.com',
'cdn.vixen.com',
'cdn.tushy.com',
'cdn.blacked.com',
'cdn.deeper.com',
'cdn.blackedraw.com',
'cdn.tushyraw.com',
'cdn.slayed.com',
'cdn.milfy.com',
'www.vogov.com',
'www.vogov.com',
'www.nubiles.net',
'www.brattysis.com',
'www.deeplush.com',
'www.detentiongirls.com',
'www.daddyslilangel.com',
'www.myfamilypies.com',
'www.bountyhunterporn.com',
'www.anilos.com',
'www.thatsitcomshow.com',
'www.nubileset.com',
'www.nubilesunscripted.com',
'www.nubilefilms.com',
'www.badteenspunished.com',
'www.cumlouder.com',
'im0.imgcm.com',
],
hostnames: [],
},
bypass: {
browser: {
@ -357,22 +369,22 @@ module.exports = {
interval: 50,
concurrency: 20,
},
'www.deeper.com': {
enable: false, // can be omitted to enable
interval: 1000,
concurrency: 1,
browser: {
interval: 20,
concurrency: 5,
},
'westcoastproductions.com': {
interval: 100,
concurrency: 1,
},
'images.mylfcdn.net': {
media: {
interval: 50,
concurrency: 1,
concurrency: 20,
},
},
apiKeys: {
kellyCash: null,
fiveKCash: null,
},
fetchAfter: [1, 'week'],
missingDateLimit: 3,
upcomingMissingDateLimit: 20,
memorySampling: {
enabled: false,
sampleDuration: 300000, // 5 minutes
@ -390,11 +402,13 @@ module.exports = {
thumbnailQuality: 100,
lazySize: 90,
lazyQuality: 90,
trailerQuality: [540, 720, 480, 360, 960, 1080, 320, 1440, 1600, 1920, 2160, 270, 240, 180],
trailerQuality: [540, 720, 960, 480, 1080, 360, 320, 1440, 1600, 1920, 2160, 270, 240, 180],
limit: 25, // max number of photos per release
attempts: 2,
fetchStreams: true,
streamConcurrency: 2, // max number of video streams (m3u8 etc.) to fetch and process at once
flushOrphaned: true,
flushWindow: 1000,
},
titleSlugLength: 50,
};

File diff suppressed because it is too large Load Diff

View File

@ -18,17 +18,25 @@ const scenesFields = `
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
stashed int,
dupe_index int
`;
const moviesFields = `
@ -53,7 +61,8 @@ const moviesFields = `
effective_date timestamp,
stashed int,
stashed_scenes int,
stashed_total int
stashed_total int,
dupe_index int
`;
const actorsFields = `
@ -74,39 +83,41 @@ const actorsFields = `
scenes int
`;
exports.up = async (knex) => {
exports.up = async () => {
try {
await utilsApi.sql(`create table scenes (${scenesFields})`);
await utilsApi.sql(`create table if not exists scenes (${scenesFields})`);
await utilsApi.sql(`create table scenes_stashed (
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 movies (${moviesFields})`);
await utilsApi.sql(`create table if not exists movies (${moviesFields})`);
await utilsApi.sql(`create table movies_stashed (
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 actors (${actorsFields})`);
await utilsApi.sql(`create table if not exists actors (${actorsFields}) min_prefix_len='3'`);
await utilsApi.sql(`create table actors_stashed (
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);
}

View File

@ -16,6 +16,16 @@ exports.up = async (knex) => {
.notNullable()
.defaultTo(true);
});
await knex.raw(`
UPDATE alerts
SET
all_actors = false,
all_entities = false,
all_tags = false,
all_matches= false
WHERE alerts.all = false;
`);
};
exports.down = async (knex) => {

View File

@ -0,0 +1,65 @@
const config = require('config');
exports.up = async (knex) => {
await knex.schema.alterTable('entities', (table) => {
// internal options, as opposed to parameters for scraper options
table.json('options');
});
await knex.schema.alterTable('releases', (table) => {
table.dropForeign('entity_id');
table.foreign('entity_id')
.references('id')
.inTable('entities')
.onDelete('cascade');
});
await knex.schema.alterTable('releases_caps', (table) => {
table.unique(['release_id', 'media_id']);
});
await knex.schema.createTable('movies_tags', (table) => {
table.integer('tag_id')
.references('id')
.inTable('tags');
table.integer('movie_id')
.notNullable()
.references('id')
.inTable('movies')
.onDelete('cascade');
table.text('original_tag');
table.text('source')
.defaultTo('scraper');
table.unique(['tag_id', 'movie_id']);
});
await knex.raw('GRANT ALL ON ALL TABLES IN SCHEMA public TO :visitor;', {
visitor: knex.raw(config.database.query.user),
});
};
exports.down = async (knex) => {
await knex.schema.alterTable('entities', (table) => {
table.dropColumn('options');
});
await knex.schema.alterTable('releases', (table) => {
table.dropForeign('entity_id');
table.foreign('entity_id')
.references('id')
.inTable('entities')
.onDelete('no action');
});
await knex.schema.alterTable('releases_caps', (table) => {
table.dropUnique(['release_id', 'media_id']);
});
await knex.schema.dropTable('movies_tags');
};

View File

@ -0,0 +1,31 @@
exports.up = async (knex) => {
await knex.schema.alterTable('entities_tags', (table) => {
table.dropForeign('tag_id');
table.dropForeign('entity_id');
table.foreign('tag_id')
.references('id')
.inTable('tags')
.onDelete('cascade');
table.foreign('entity_id')
.references('id')
.inTable('entities')
.onDelete('cascade');
});
};
exports.down = async (knex) => {
await knex.schema.alterTable('entities_tags', (table) => {
table.dropForeign('tag_id');
table.dropForeign('entity_id');
table.foreign('tag_id')
.references('id')
.inTable('tags');
table.foreign('entity_id')
.references('id')
.inTable('entities');
});
};

View File

@ -0,0 +1,25 @@
exports.up = async (knex) => {
await knex.schema.createTable('users_templates', (table) => {
table.increments('id');
table.integer('user_id')
.notNullable()
.references('id')
.inTable('users');
table.string('name')
.notNullable();
table.text('template')
.notNullable();
table.unique(['user_id', 'name']);
table.datetime('created_at')
.defaultTo(knex.fn.now());
});
};
exports.down = async (knex) => {
await knex.schema.dropTable('users_templates');
};

View File

@ -0,0 +1,28 @@
exports.up = async (knex) => {
await knex.schema.createTable('users_keys', (table) => {
table.increments('id');
table.integer('user_id')
.notNullable()
.references('id')
.inTable('users');
table.text('key')
.notNullable();
table.string('identifier');
table.unique(['user_id', 'identifier']);
table.datetime('last_used_at');
table.specificType('last_used_ip', 'inet');
table.datetime('created_at')
.notNullable()
.defaultTo(knex.fn.now());
});
};
exports.down = async (knex) => {
await knex.schema.dropTable('users_keys');
};

View File

@ -0,0 +1,87 @@
exports.up = async (knex) => {
await knex.schema.createTable('scenes_revisions', (table) => {
table.increments('id');
table.integer('scene_id')
.notNullable()
.references('id')
.inTable('releases')
.onDelete('set null');
table.integer('user_id')
.references('id')
.inTable('users')
.onDelete('set null');
table.json('base')
.notNullable();
table.json('deltas')
.notNullable();
table.text('hash')
.notNullable();
table.text('comment');
table.boolean('approved');
table.integer('reviewed_by')
.references('id')
.inTable('users')
.onDelete('set null');
table.datetime('reviewed_at');
table.text('feedback');
table.datetime('applied_at');
table.datetime('created_at')
.notNullable()
.defaultTo(knex.fn.now());
});
await knex.schema.createTable('bans', (table) => {
table.increments('id');
table.integer('user_id')
.references('id')
.inTable('users')
.onDelete('set null');
table.string('username');
table.specificType('ip', 'cidr');
table.boolean('match_all')
.notNullable()
.defaultTo(false);
table.string('scope');
table.boolean('shadow');
table.integer('banned_by')
.references('id')
.inTable('users')
.onDelete('set null');
table.datetime('expires_at')
.notNullable();
table.datetime('created_at')
.notNullable()
.defaultTo(knex.fn.now());
});
await knex.schema.alterTable('users', (table) => {
table.specificType('last_ip', 'cidr');
});
};
exports.down = async (knex) => {
await knex.schema.dropTable('scenes_revisions');
await knex.schema.dropTable('bans');
await knex.schema.alterTable('users', (table) => {
table.dropColumn('last_ip');
});
};

View File

@ -0,0 +1,35 @@
exports.up = async (knex) => {
await knex.schema.alterTable('actors', (table) => {
table.integer('leg');
table.integer('foot');
table.integer('thigh');
});
await knex.schema.alterTable('actors_profiles', (table) => {
table.integer('leg');
table.integer('foot');
table.integer('thigh');
});
await knex.schema.alterTable('releases', (table) => {
table.integer('video_count');
});
};
exports.down = async (knex) => {
await knex.schema.alterTable('actors', (table) => {
table.dropColumn('leg');
table.dropColumn('foot');
table.dropColumn('thigh');
});
await knex.schema.alterTable('actors_profiles', (table) => {
table.dropColumn('leg');
table.dropColumn('foot');
table.dropColumn('thigh');
});
await knex.schema.alterTable('releases', (table) => {
table.dropColumn('video_count');
});
};

View File

@ -0,0 +1,15 @@
exports.up = async (knex) => {
await knex.schema.alterTable('scenes_revisions', (table) => {
table.integer('scene_id')
.nullable()
.alter();
});
};
exports.down = async (knex) => {
await knex.schema.alterTable('scenes_revisions', (table) => {
table.integer('scene_id')
.notNullable()
.alter();
});
};

View File

@ -0,0 +1,119 @@
exports.up = async (knex) => {
await knex.raw('CREATE UNIQUE INDEX unique_main_profiles ON actors_profiles (actor_id) WHERE (entity_id IS NULL);');
await knex.schema.createTable('actors_revisions', (table) => {
table.increments('id');
table.integer('actor_id')
.references('id')
.inTable('actors')
.onDelete('set null');
table.integer('profile_id')
.references('id')
.inTable('actors_profiles')
.onDelete('set null');
table.integer('user_id')
.references('id')
.inTable('users')
.onDelete('set null');
table.json('base')
.notNullable();
table.json('deltas')
.notNullable();
table.text('hash')
.notNullable();
table.text('comment');
table.boolean('approved');
table.integer('reviewed_by')
.references('id')
.inTable('users')
.onDelete('set null');
table.datetime('reviewed_at');
table.text('feedback');
table.datetime('applied_at');
table.datetime('created_at')
.notNullable()
.defaultTo(knex.fn.now());
});
await knex.schema.alterTable('actors', (table) => {
table.integer('boobs_volume');
table.enum('boobs_implant', ['saline', 'silicone', 'gummy', 'fat']);
table.enum('boobs_placement', ['over', 'under']);
table.string('boobs_surgeon');
table.boolean('natural_butt');
table.integer('butt_volume');
table.enum('butt_implant', ['bbl', 'lift', 'silicone', 'lipo', 'filler', 'mms']);
table.boolean('natural_lips');
table.integer('lips_volume');
table.string('agency');
});
await knex.schema.alterTable('actors_profiles', (table) => {
table.integer('boobs_volume');
table.enum('boobs_implant', ['saline', 'silicone', 'gummy', 'fat']);
table.enum('boobs_placement', ['over', 'under']);
table.string('boobs_surgeon');
table.boolean('natural_butt');
table.integer('butt_volume');
table.enum('butt_implant', ['bbl', 'lift', 'silicone', 'lipo', 'filler', 'mms']);
table.boolean('natural_lips');
table.integer('lips_volume');
table.string('agency');
});
};
exports.down = async (knex) => {
await knex.raw('DROP INDEX unique_main_profiles;');
await knex.schema.dropTable('actors_revisions');
await knex.schema.alterTable('actors', (table) => {
table.dropColumn('boobs_volume');
table.dropColumn('boobs_implant');
table.dropColumn('boobs_placement');
table.dropColumn('boobs_surgeon');
table.dropColumn('natural_butt');
table.dropColumn('butt_volume');
table.dropColumn('butt_implant');
table.dropColumn('natural_lips');
table.dropColumn('lips_volume');
table.dropColumn('agency');
});
await knex.schema.alterTable('actors_profiles', (table) => {
table.dropColumn('boobs_volume');
table.dropColumn('boobs_implant');
table.dropColumn('boobs_placement');
table.dropColumn('boobs_surgeon');
table.dropColumn('natural_butt');
table.dropColumn('butt_volume');
table.dropColumn('butt_implant');
table.dropColumn('natural_lips');
table.dropColumn('lips_volume');
table.dropColumn('agency');
});
};

View File

@ -0,0 +1,19 @@
function createColumns(table) {
table.enum('boobs_incision', ['mammary', 'areolar', 'crescent', 'lollipop', 'anchor', 'axillary', 'umbilical']);
table.boolean('natural_labia');
}
exports.up = async (knex) => {
await knex.schema.alterTable('actors', createColumns);
await knex.schema.alterTable('actors_profiles', createColumns);
};
function dropColumns(table) {
table.dropColumn('boobs_incision');
table.dropColumn('natural_labia');
}
exports.down = async (knex) => {
await knex.schema.alterTable('actors', dropColumns);
await knex.schema.alterTable('actors_profiles', dropColumns);
};

View File

@ -0,0 +1,75 @@
exports.up = async function(knex) {
// restore avatars in table in case of rollback and rerun
const avatars = await knex('actors_avatars')
.select('actors_avatars.*', 'actors_profiles.actor_id')
.leftJoin('actors_profiles', 'actors_profiles.id', 'actors_avatars.profile_id');
await knex('actors_avatars').delete();
await knex.schema.alterTable('actors_avatars', (table) => {
table.integer('profile_id')
.nullable()
.alter();
table.integer('actor_id')
.notNullable()
.references('id')
.inTable('actors');
table.datetime('created_at')
.notNullable()
.defaultTo(knex.fn.now());
table.dropUnique('profile_id');
table.unique(['profile_id', 'media_id']);
});
await knex.schema.alterTable('media', (table) => {
// actor avatars often retain the same URL when updated, handle URL-deduping in app code
table.dropUnique('source');
table.string('source_version'); // usually etag
});
await knex.raw('CREATE UNIQUE INDEX unique_main_avatars ON actors_avatars (actor_id) WHERE (profile_id IS NULL);');
if (avatars.length > 0) {
await knex('actors_avatars').insert(avatars);
}
const profiles = await knex('actors_profiles')
.select('id', 'actor_id', 'avatar_media_id')
.whereNotNull('avatar_media_id');
await knex('actors_avatars')
.insert(profiles.map((profile) => ({
actor_id: profile.actor_id,
profile_id: profile.id,
media_id: profile.avatar_media_id,
})))
.onConflict()
.ignore();
};
exports.down = async function(knex) {
// no need to delete all entries, only the ones incompatible with the old scheme
await knex('actors_avatars')
.whereNull('profile_id')
.delete();
await knex.schema.alterTable('actors_avatars', (table) => {
table.integer('profile_id')
.notNullable()
.alter();
table.dropColumn('actor_id');
table.dropColumn('created_at');
table.unique('profile_id');
table.dropUnique(['profile_id', 'media_id']);
});
await knex.schema.alterTable('media', (table) => {
table.dropColumn('source_version');
table.unique('source');
});
};

View File

@ -0,0 +1,46 @@
exports.up = async (knex) => {
await knex.schema.alterTable('actors_social', (table) => {
table.dropUnique(['url', 'actor_id', 'profile_id']);
table.dropColumn('profile_id');
table.string('handle');
table.boolean('is_broken')
.notNullable()
.defaultTo(false);
table.datetime('pinged_at');
table.datetime('verified_at');
table.unique(['actor_id', 'platform', 'handle']);
table.unique(['actor_id', 'url']);
});
await knex.raw('ALTER TABLE actors_social ADD CONSTRAINT socials_url_or_handle CHECK (num_nulls(handle, url) = 1);');
await knex.raw('ALTER TABLE actors_social ADD CONSTRAINT socials_handle_and_platform CHECK (num_nulls(platform, handle) = 2 or num_nulls(platform, handle) = 0);');
await knex.schema.renameTable('actors_social', 'actors_socials');
};
exports.down = async (knex) => {
await knex.raw('ALTER TABLE actors_socials DROP CONSTRAINT socials_url_or_handle;');
await knex.raw('ALTER TABLE actors_socials DROP CONSTRAINT socials_handle_and_platform;');
await knex.schema.renameTable('actors_socials', 'actors_social');
await knex.schema.alterTable('actors_social', (table) => {
table.dropUnique(['actor_id', 'platform', 'handle']);
table.dropUnique(['actor_id', 'url']);
table.integer('profile_id')
.references('id')
.inTable('actors_profiles');
table.dropColumn('handle');
table.dropColumn('verified_at');
table.dropColumn('pinged_at');
table.dropColumn('is_broken');
table.unique(['url', 'actor_id', 'profile_id']);
});
};

View File

@ -0,0 +1,53 @@
exports.up = async (knex) => {
await knex.schema.alterTable('media', (table) => table.index('sfw_media_id'));
await knex.schema.alterTable('actors_profiles', (table) => table.index('avatar_media_id'));
await knex.schema.alterTable('actors_avatars', (table) => table.index('media_id'));
await knex.schema.alterTable('actors_photos', (table) => table.index('media_id'));
await knex.schema.alterTable('chapters_photos', (table) => table.index('media_id'));
await knex.schema.alterTable('chapters_posters', (table) => table.index('media_id'));
await knex.schema.alterTable('movies_covers', (table) => table.index('media_id'));
await knex.schema.alterTable('movies_photos', (table) => table.index('media_id'));
await knex.schema.alterTable('movies_posters', (table) => table.index('media_id'));
await knex.schema.alterTable('movies_teasers', (table) => table.index('media_id'));
await knex.schema.alterTable('movies_trailers', (table) => table.index('media_id'));
await knex.schema.alterTable('releases_caps', (table) => table.index('media_id'));
await knex.schema.alterTable('releases_covers', (table) => table.index('media_id'));
await knex.schema.alterTable('releases_posters', (table) => table.index('media_id'));
await knex.schema.alterTable('releases_photos', (table) => table.index('media_id'));
await knex.schema.alterTable('releases_teasers', (table) => table.index('media_id'));
await knex.schema.alterTable('releases_trailers', (table) => table.index('media_id'));
await knex.schema.alterTable('series_covers', (table) => table.index('media_id'));
await knex.schema.alterTable('series_photos', (table) => table.index('media_id'));
await knex.schema.alterTable('series_posters', (table) => table.index('media_id'));
await knex.schema.alterTable('series_teasers', (table) => table.index('media_id'));
await knex.schema.alterTable('series_trailers', (table) => table.index('media_id'));
await knex.schema.alterTable('tags_photos', (table) => table.index('media_id'));
await knex.schema.alterTable('tags_posters', (table) => table.index('media_id'));
};
exports.down = async (knex) => {
await knex.schema.alterTable('media', (table) => table.dropIndex('sfw_media_id'));
await knex.schema.alterTable('actors_profiles', (table) => table.dropIndex('avatar_media_id'));
await knex.schema.alterTable('actors_avatars', (table) => table.dropIndex('media_id'));
await knex.schema.alterTable('actors_photos', (table) => table.dropIndex('media_id'));
await knex.schema.alterTable('chapters_photos', (table) => table.dropIndex('media_id'));
await knex.schema.alterTable('chapters_posters', (table) => table.dropIndex('media_id'));
await knex.schema.alterTable('movies_covers', (table) => table.dropIndex('media_id'));
await knex.schema.alterTable('movies_photos', (table) => table.dropIndex('media_id'));
await knex.schema.alterTable('movies_posters', (table) => table.dropIndex('media_id'));
await knex.schema.alterTable('movies_teasers', (table) => table.dropIndex('media_id'));
await knex.schema.alterTable('movies_trailers', (table) => table.dropIndex('media_id'));
await knex.schema.alterTable('releases_caps', (table) => table.dropIndex('media_id'));
await knex.schema.alterTable('releases_covers', (table) => table.dropIndex('media_id'));
await knex.schema.alterTable('releases_posters', (table) => table.dropIndex('media_id'));
await knex.schema.alterTable('releases_photos', (table) => table.dropIndex('media_id'));
await knex.schema.alterTable('releases_teasers', (table) => table.dropIndex('media_id'));
await knex.schema.alterTable('releases_trailers', (table) => table.dropIndex('media_id'));
await knex.schema.alterTable('series_covers', (table) => table.dropIndex('media_id'));
await knex.schema.alterTable('series_photos', (table) => table.dropIndex('media_id'));
await knex.schema.alterTable('series_posters', (table) => table.dropIndex('media_id'));
await knex.schema.alterTable('series_teasers', (table) => table.dropIndex('media_id'));
await knex.schema.alterTable('series_trailers', (table) => table.dropIndex('media_id'));
await knex.schema.alterTable('tags_photos', (table) => table.dropIndex('media_id'));
await knex.schema.alterTable('tags_posters', (table) => table.dropIndex('media_id'));
};

View File

@ -0,0 +1,102 @@
const config = require('config');
exports.up = async (knex) => {
await knex.schema.alterTable('alerts', (table) => {
table.boolean('from_preset')
.notNullable()
.defaultTo(false);
table.text('comment');
});
await knex.schema.createMaterializedView('alerts_users_actors', (view) => {
view.columns('user_id', 'actor_id', 'alert_ids');
view.as(
knex('alerts_actors')
.select(
'alerts.user_id',
'alerts_actors.actor_id',
knex.raw('array_agg(distinct alerts.id) as alert_ids'),
knex.raw('(alerts_tags.id is null and alerts_entities.id is null and alerts_matches.id is null and related_actors.id is null) as is_only'),
)
.leftJoin('alerts', 'alerts.id', 'alerts_actors.alert_id')
.leftJoin('alerts_entities', 'alerts_entities.alert_id', 'alerts_actors.alert_id')
.leftJoin('alerts_tags', 'alerts_tags.alert_id', 'alerts_actors.alert_id')
.leftJoin('alerts_matches', 'alerts_matches.alert_id', 'alerts_actors.alert_id')
.leftJoin('alerts_actors as related_actors', (joinBuilder) => {
joinBuilder
.on('related_actors.alert_id', 'alerts_actors.alert_id')
.on('related_actors.actor_id', '!=', 'alerts_actors.actor_id');
})
.groupBy(['user_id', 'alerts_actors.actor_id', 'is_only']),
);
});
await knex.schema.createMaterializedView('alerts_users_tags', (view) => {
view.columns('user_id', 'tag_id', 'alert_ids');
view.as(
knex('alerts_tags')
.select(
'alerts.user_id',
'alerts_tags.tag_id',
knex.raw('array_agg(distinct alerts.id) as alert_ids'),
knex.raw('(alerts_actors.id is null and alerts_entities.id is null and alerts_matches.id is null and related_tags.id is null) as is_only'),
)
.leftJoin('alerts', 'alerts.id', 'alerts_tags.alert_id')
.leftJoin('alerts_entities', 'alerts_entities.alert_id', 'alerts_tags.alert_id')
.leftJoin('alerts_actors', 'alerts_actors.alert_id', 'alerts_tags.alert_id')
.leftJoin('alerts_matches', 'alerts_matches.alert_id', 'alerts_tags.alert_id')
.leftJoin('alerts_tags as related_tags', (joinBuilder) => {
joinBuilder
.on('related_tags.alert_id', 'alerts_tags.alert_id')
.on('related_tags.tag_id', '!=', 'alerts_tags.tag_id');
})
.groupBy(['user_id', 'alerts_tags.tag_id', 'is_only']),
);
});
await knex.schema.createMaterializedView('alerts_users_entities', (view) => {
view.columns('user_id', 'entity_id', 'alert_ids');
view.as(
knex('alerts_entities')
.select(
'alerts.user_id',
'alerts_entities.entity_id',
knex.raw('array_agg(distinct alerts.id) as alert_ids'),
knex.raw('(alerts_actors.id is null and alerts_tags.id is null and alerts_matches.id is null and related_entities.id is null) as is_only'),
)
.leftJoin('alerts', 'alerts.id', 'alerts_entities.alert_id')
.leftJoin('alerts_tags', 'alerts_tags.alert_id', 'alerts_entities.alert_id')
.leftJoin('alerts_actors', 'alerts_actors.alert_id', 'alerts_entities.alert_id')
.leftJoin('alerts_matches', 'alerts_matches.alert_id', 'alerts_entities.alert_id')
.leftJoin('alerts_entities as related_entities', (joinBuilder) => {
joinBuilder
.on('related_entities.alert_id', 'alerts_entities.alert_id')
.on('related_entities.entity_id', '!=', 'alerts_entities.entity_id');
})
.groupBy(['user_id', 'alerts_entities.entity_id', 'is_only']),
);
});
await knex.raw(`
GRANT SELECT ON alerts_users_actors TO :visitor;
GRANT SELECT ON alerts_users_entities TO :visitor;
GRANT SELECT ON alerts_users_tags TO :visitor;
`, {
visitor: knex.raw(config.database.query.user),
});
};
exports.down = async (knex) => {
await knex.schema.alterTable('alerts', (table) => {
table.dropColumn('from_preset');
table.dropColumn('comment');
});
await knex.schema.dropMaterializedView('alerts_users_actors');
await knex.schema.dropMaterializedView('alerts_users_tags');
await knex.schema.dropMaterializedView('alerts_users_entities');
};

View File

@ -0,0 +1,21 @@
exports.up = async function(knex) {
await knex.schema.alterTable('alerts', (table) => {
table.json('meta');
});
await knex.schema.alterTable('stashes', (table) => {
table.text('comment');
table.json('meta');
});
};
exports.down = async function(knex) {
await knex.schema.alterTable('alerts', (table) => {
table.dropColumn('meta');
});
await knex.schema.alterTable('stashes', (table) => {
table.dropColumn('comment');
table.dropColumn('meta');
});
};

3652
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,6 +1,6 @@
{
"name": "traxxx",
"version": "1.237.11",
"version": "1.245.26",
"description": "All the latest porn releases in one place",
"main": "src/app.js",
"scripts": {
@ -93,6 +93,7 @@
"connect-session-knex": "^4.0.0",
"convert": "^4.14.0",
"cookie": "^0.6.0",
"csv-parse": "^6.1.0",
"csv-stringify": "^6.4.4",
"date-fns": "^2.30.0",
"dayjs": "^1.11.10",
@ -106,12 +107,13 @@
"express-session": "^1.17.3",
"face-api.js": "^0.22.2",
"file-type": "^18.7.0",
"fluent-ffmpeg": "^2.1.2",
"fluent-ffmpeg": "^2.1.3",
"fs-extra": "^11.1.1",
"graphile-build": "^4.14.0",
"graphile-utils": "^4.14.0",
"graphql": "^15.8.0",
"html-entities": "^2.4.0",
"https-proxy-agent": "^7.0.5",
"iconv-lite": "^0.6.3",
"inquirer": "^8.2.6",
"inspector-api": "^1.4.8",
@ -127,14 +129,17 @@
"mysql": "^2.18.1",
"nanoid": "^3.3.7",
"node-fetch": "^3.3.2",
"npm": "^11.7.0",
"object-merge-advanced": "^12.1.0",
"object.omit": "^3.0.0",
"pg": "^8.11.3",
"playwright": "^1.57.0",
"playwright-core": "^1.57.0",
"postgraphile": "^4.14.0",
"postgraphile-plugin-connection-filter": "^2.3.0",
"promise-task-queue": "^1.2.0",
"prop-types": "^15.8.1",
"puppeteer": "^21.5.2",
"puppeteer": "^24.4.0",
"puppeteer-extra": "^3.3.6",
"puppeteer-extra-plugin-stealth": "^2.11.2",
"redis": "^4.6.11",
@ -147,7 +152,7 @@
"tunnel": "0.0.6",
"ua-parser-js": "^1.0.37",
"undici": "^5.28.1",
"unprint": "^0.10.11",
"unprint": "^0.18.7",
"url-pattern": "^1.0.3",
"v-tooltip": "^2.1.3",
"video.js": "^8.6.1",

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 105 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 71 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 67 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 64 KiB

View File

@ -1 +0,0 @@
<iframe style="background-color: white;" width="300" height="100" scrolling="no" frameborder="0" allowtransparency="true" marginheight="0" marginwidth="0" name="spot_id_10002480" src="//a.adtng.com/get/10002480?ata=DebaucheryLibrarian"></iframe>

View File

@ -1 +0,0 @@
<iframe style="background-color: white;" width="300" height="250" scrolling="no" frameborder="0" allowtransparency="true" marginheight="0" marginwidth="0" name="spot_id_10001807" src="//a.adtng.com/get/10001807?ata=DebaucheryLibrarian"></iframe>

View File

@ -1 +0,0 @@
<iframe style="background-color: white;" width="315" height="300" scrolling="no" frameborder="0" allowtransparency="true" marginheight="0" marginwidth="0" name="spot_id_10002484" src="//a.adtng.com/get/10002484?ata=DebaucheryLibrarian"></iframe>

View File

@ -1 +0,0 @@
<iframe style="background-color: white;" width="728" height="90" scrolling="no" frameborder="0" allowtransparency="true" marginheight="0" marginwidth="0" name="spot_id_10002481" src="//a.adtng.com/get/10002481?ata=DebaucheryLibrarian"></iframe>

View File

@ -1 +0,0 @@
<iframe style="background-color: white;" width="728" height="90" scrolling="no" frameborder="0" allowtransparency="true" marginheight="0" marginwidth="0" name="spot_id_10002466" src="//a.adtng.com/get/10002466?ata=DebaucheryLibrarian"></iframe>

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 190 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 92 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 85 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 87 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 83 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 90 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 81 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 146 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 498 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 145 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 191 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 73 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 69 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 72 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 676 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 55 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 54 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 48 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 100 KiB

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