# Traxxx **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: `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/`. ### 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: `npm run migrate` `npm run seed` You can also use `npm run flush` to run both steps at once, and wipe the database completely later. #### Networks and channels To scrape the networks and channels available in the database, you can configure `include` and `exclude` lists. To include all available channels and only use the `exclude` list, leave the `include` parameter unconfigured. The `exclude` lists will exclude channels and child networks from networks on the `include` lists, but not vice versa. That is, if the `include` list includes a network and the `exclude` list excludes one of that network's channels, the channel will not be scraped. However, if the `include` list includes a channel, and the `exclude` list includes its parent network, the channel will be scraped. This configuration will scrape Evil Angel and all XEmpire channels, except for LesbianX. ``` include: { networks: [ 'xempire', ], channels: [ 'evilangel', ], }, exclude: { channels: [ 'lesbianx', ], } ``` This configuration will scrape all channels, except for BAM Visions, and except all channels part of the Vixen network. ``` exclude: { channels: [ 'bamvisions', ], networks: [ 'vixen' ], }, ``` ### Building To build traxxx, run the following command: `npm run build` To generate the thumbnails for logos and tag photos, run: `npm run logos-thumbs` `npm run tags-thumbs` ### Run `./traxxx --option value` or `npm start -- --option value` * `--server`: Run the web server * `--all`: Fetch updates from the channels and networks in the configuration file. * `--channel [slug] [slug]`: Fetch updates from specific channels. The slug is the channel's name in lowercase and without cases or special characters. For example, Teens Like It Big is teenslikeitbig. * `--network [slug] [slug]`: Fetch updates from all sites of a specific network. The network slug is composed similarly to the channel slug. * `--after "[time]"`: Do not fetch scenes older than this period or date. Example values are: `"1 month"`, `"3 years"`, `"2019-01-01"`. * `--scene [URL]`: Try to retrieve scene details from its official channel or network URL. * `--deep`: Follow each release link found running `--channel` or `--network` and scrape it for more details. Enabled by default ; use `--no-deep` to only save information found on the overview pages. #### Actors * `--actors "[name]" "[name]"`: Fetch actor profiles. When no names are specified, actors without existing profiles are scraped * `--actors-file [filepath]`: Fetch all scenes for the actors specified in a file using a newline delimiter. * `--actors-sources [slug] [slug]`: Scrapers to use for actor profiles. Defaults to config. * `--actors-update [time]`: Update actors that don't have any profiles newer than period ("1 month") or date (2020-08-01). Using this argument without a value will default to 1900-01-01, practically updating all actors. * `--actors-scenes`: Fetch all scenes for scraped actors. Use with caution, as an actor may have many scenes. * `--scene-actors`: Fetch profiles for actors associated with scraped scenes. Use with caution, as scenes may have many actors, each with many profiles. #### Developers * `--no-save`: Do not store retrieved information in local database, forcing re-fetch. * `--level`: Change log level to `silly`, `verbose`, `info`, `warn` or `error`. ## Supported networks & sites 896 channels on 64 networks, continuously expanding! * 21Naturals * 21Sextreme * 21Sextury * Adult Time * Amateur Allure * Assylum * Aziani * Babes * Bang! * Bang Bros * Blowpass * Brazzers * Burning Angel * Cherry Pimps * DDF Network * Digital Playground * Dogfart Network * Evil Angel * Fake Hub * Fame Digital * Fantasy Massage * Full Porn Network * Girlsway * Hush Pass * Hussie Pass * Insex * Interracial Pass * JayRock Productions * Jules Jordan * Kelly Madison Media (Teen Fidelity) * Kink * LegalPorno * Men * Metro HD * Mike Adriano * Mile High Media * MOFOS * Naughty America * New Sensations * Nubiles * Perfect Gonzo * Perv City * Pimp.XXX * Porn Pros * Private * Pure Taboo * Reality Kings * SCORE * Sexy Hub * Team Skeet * Teen Core Club * Twistys * Vivid * Vixen * VogoV * Whale Member (Holed, POVD) * Wicked * XEmpire