2019-11-06 01:47:10 +00:00
const upsert = require ( '../src/utils/upsert' ) ;
2020-02-13 02:44:04 +00:00
const slugify = require ( '../src/utils/slugify' ) ;
2019-11-06 01:47:10 +00:00
const groups = [
2020-05-18 02:28:38 +00:00
{
slug : 'age' ,
name : 'Age' ,
} ,
{
slug : 'body' ,
name : 'Body' ,
} ,
{
slug : 'clothing' ,
name : 'Clothing' ,
} ,
{
slug : 'ethnicity' ,
name : 'Ethnicity' ,
} ,
{
slug : 'finish' ,
name : 'Finish' ,
} ,
{
slug : 'group' ,
name : 'Group sex' ,
} ,
{
slug : 'hair' ,
name : 'Hair' ,
} ,
{
slug : 'location' ,
name : 'Location' ,
} ,
{
slug : 'oral' ,
name : 'Oral' ,
} ,
{
slug : 'orientation' ,
name : 'Orientation' ,
} ,
{
slug : 'penetration' ,
name : 'Penetration' ,
} ,
{
slug : 'position' ,
name : 'Position' ,
} ,
{
slug : 'roleplay' ,
name : 'Roleplay' ,
} ,
2019-11-06 01:47:10 +00:00
] ;
2020-02-13 02:44:04 +00:00
const tags = [
2021-02-04 00:13:02 +00:00
{
name : '180°' ,
slug : '180' ,
} ,
{
name : '60 FPS' ,
slug : '60fps' ,
} ,
2020-08-20 02:57:38 +00:00
{
2020-08-20 17:52:02 +00:00
name : '3D' ,
2020-08-20 02:57:38 +00:00
slug : '3d' ,
description : 'Available in 3D.' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : '4K' ,
slug : '4k' ,
description : 'Available in high quality 4K resolution.' ,
} ,
2020-07-14 02:36:14 +00:00
{
name : '5K' ,
slug : '5k' ,
description : 'Available in very high quality 5K resolution.' ,
} ,
2021-02-04 00:13:02 +00:00
{
name : '7K' ,
slug : '7k' ,
description : 'Available in super high quality 7K resolution.' ,
} ,
{
name : '8K' ,
slug : '8k' ,
description : 'Available in extremely high quality 8K resolution.' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : '69' ,
slug : '69' ,
group : 'position' ,
} ,
{
name : 'airtight' ,
slug : 'airtight' ,
2021-03-17 04:11:17 +00:00
description : 'Stuffing one cock in your ass, one in your pussy, and one in your mouth, filling up all of your penetrable holes and getting sealed airtight like a figurative balloon. In other words, simultaneously getting [double penetrated](/tag/dp), and giving a [blowjob](/tag/blowjob) or getting [facefucked](/tag/facefucking). Being airtight implies being [gangbanged](/tag/gangbang).' , /* eslint-disable-line max-len */
2020-05-18 02:28:38 +00:00
group : 'penetration' ,
} ,
{
name : 'amateur' ,
slug : 'amateur' ,
} ,
{
name : 'anal creampie' ,
slug : 'anal-creampie' ,
description : 'Ejaculating into the asshole.' ,
group : 'finish' ,
} ,
{
name : 'anal' ,
slug : 'anal' ,
2021-06-28 00:50:06 +00:00
description : 'Getting your asshole fucked. Generally considered naughtier, you may or may not find it a pleasurable alternative to vaginal sex.' ,
2020-05-18 02:28:38 +00:00
group : 'penetration' ,
} ,
{
2020-09-21 03:11:24 +00:00
name : 'anal fingering' ,
slug : 'anal-fingering' ,
2021-03-18 03:01:35 +00:00
description : 'Inserting one or multiple fingers into your asshole. If you use your entire hand beyond the knuckles, you are [anal fisting](/tag/anal-fisting).' ,
2020-05-18 02:28:38 +00:00
} ,
{
name : 'anal fisting' ,
slug : 'anal-fisting' ,
2021-03-18 03:01:35 +00:00
description : 'Shoving an entire hand into your asshole.' ,
2020-05-18 02:28:38 +00:00
} ,
{
name : 'anal prolapse' ,
slug : 'anal-prolapse' ,
} ,
{
name : 'animated' ,
slug : 'animated' ,
} ,
{
name : 'asian' ,
slug : 'asian' ,
group : 'ethnicity' ,
} ,
{
name : 'athletic' ,
slug : 'athletic' ,
group : 'body' ,
} ,
{
name : 'ass to mouth' ,
2020-05-26 02:11:29 +00:00
slug : 'atm' ,
2020-05-24 03:13:50 +00:00
description : 'Sucking off a cock right after it fucked your ass. If it has been in someone else\'s ass, it may be called [ATOGM](/tag/atogm).' ,
group : 'oral' ,
} ,
{
name : 'ass to other girl\'s mouth' ,
slug : 'atogm' ,
2020-05-26 02:11:29 +00:00
description : '[Ass to mouth](/tag/atm) with a cock that has been in someone else\'s ass. ATOGM may also be the gay variation "ass to other guy\'s mouth".' ,
2020-05-18 02:28:38 +00:00
group : 'oral' ,
} ,
{
name : 'ass eating' ,
slug : 'ass-eating' ,
group : 'oral' ,
} ,
2021-03-15 03:59:08 +00:00
{
name : 'ass worship' ,
slug : 'ass-worship' ,
} ,
2022-10-25 21:13:24 +00:00
{
name : 'babe' ,
slug : 'babe' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'ball licking' ,
slug : 'ball-licking' ,
group : 'oral' ,
} ,
{
name : 'ballerina' ,
slug : 'ballerina' ,
group : 'roleplay' ,
} ,
{
name : 'bathroom' ,
slug : 'bathroom' ,
group : 'location' ,
} ,
{
name : 'BDSM' ,
slug : 'bdsm' ,
} ,
{
name : 'BBC' ,
slug : 'bbc' ,
group : 'body' ,
} ,
{
name : 'behind the scenes' ,
2020-09-03 20:22:12 +00:00
slug : 'bts' ,
2020-05-18 02:28:38 +00:00
} ,
{
name : 'big dick' ,
slug : 'big-dick' ,
group : 'body' ,
} ,
{
name : 'big butt' ,
slug : 'big-butt' ,
group : 'body' ,
} ,
{
name : 'big boobs' ,
slug : 'big-boobs' ,
group : 'body' ,
} ,
{
name : 'bisexual' ,
slug : 'bisexual' ,
} ,
2021-06-27 22:05:24 +00:00
{
name : 'black cock' ,
slug : 'black-cock' ,
group : 'body' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'black hair' ,
slug : 'black-hair' ,
group : 'hair' ,
} ,
2020-09-21 03:11:24 +00:00
{
name : 'blindfold' ,
slug : 'blindfold' ,
group : 'clothing' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'blonde' ,
slug : 'blonde' ,
group : 'hair' ,
} ,
{
name : 'blowjob' ,
slug : 'blowjob' ,
2021-03-17 04:11:17 +00:00
description : 'Taking a dick in your mouth, sucking, licking and kissing it, often while giving a [handjob](/tag/handjob). You may slide it all the way [down your throat](/tag/deepthroat), or let them [fuck your face](/tag/facefucking).' ,
2020-05-18 02:28:38 +00:00
group : 'oral' ,
} ,
{
name : 'blowbang' ,
slug : 'blowbang' ,
2021-03-17 04:11:17 +00:00
description : 'Pleasuring a gang of three or more cocks by sucking and jerking off as many cocks as you can, often getting [facefucked](/tag/facefucking), groped and rubbed out, and followed by a [bukkake](/tag/bukkake). If you are also getting fucked, it is a [gangbang](/tag/gangbang).' ,
2020-05-18 02:28:38 +00:00
group : 'group' ,
} ,
2022-10-25 21:13:24 +00:00
{
name : 'blue eyes' ,
slug : 'blue-eyes' ,
group : 'body' ,
} ,
{
name : 'brown eyes' ,
slug : 'brown-eyes' ,
group : 'body' ,
} ,
{
name : 'green eyes' ,
slug : 'green-eyes' ,
group : 'body' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'bondage' ,
slug : 'bondage' ,
} ,
2020-07-23 02:29:46 +00:00
{
name : 'braces' ,
slug : 'braces' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'brunette' ,
slug : 'brunette' ,
group : 'hair' ,
} ,
{
name : 'bukkake' ,
slug : 'bukkake' ,
description : 'Getting ejaculated on the face by a group of three or more men, often following a [blowbang](/tag/blowbang) or [gangbang](/tag/gangbang).' ,
group : 'finish' ,
} ,
{
name : 'casting' ,
slug : 'casting' ,
} ,
{
name : 'cheerleader' ,
slug : 'cheerleader' ,
group : 'roleplay' ,
} ,
{
name : 'choking' ,
slug : 'choking' ,
} ,
{
name : 'corporal punishment' ,
slug : 'corporal-punishment' ,
} ,
{
name : 'couples' ,
slug : 'couples' ,
} ,
{
name : 'cowgirl' ,
slug : 'cowgirl' ,
} ,
{
name : 'creampie' ,
slug : 'creampie' ,
description : 'Ejaculalating into her pussy, often shown visibly dripping out afterwards.' ,
group : 'finish' ,
} ,
{
name : 'cuckold' ,
slug : 'cuckold' ,
} ,
2020-10-07 01:40:19 +00:00
{
name : 'cum drunk' ,
slug : 'cum-drunk' ,
description : 'Feeling intoxicated after getting filled or covered by a large amount of semen, or literally getting "fucked silly" during intense sex.' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'cum licking' ,
slug : 'cum-licking' ,
} ,
{
name : 'cum on butt' ,
slug : 'cum-on-butt' ,
} ,
{
name : 'cum on boobs' ,
slug : 'cum-on-boobs' ,
} ,
2020-10-07 01:40:19 +00:00
{
name : 'cum on pussy' ,
slug : 'cum-on-pussy' ,
} ,
2022-10-25 21:13:24 +00:00
{
name : 'cum on feet' ,
slug : 'cum-on-feet' ,
} ,
{
name : 'cum feet licking' ,
slug : 'cum-feet-licking' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'cum swapping' ,
slug : 'cum-swapping' ,
} ,
{
name : 'cumshot' ,
slug : 'cumshot' ,
} ,
{
name : 'curvy' ,
slug : 'curvy' ,
} ,
2021-09-17 01:30:49 +00:00
{
name : 'doctor' ,
slug : 'doctor' ,
group : 'roleplay' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'double anal' ,
2020-07-02 02:04:28 +00:00
slug : 'dap' ,
2021-03-18 03:01:35 +00:00
description : 'Two cocks filling up your ass at the same time. If there\'s a third cock in your pussy, it is [double anal triple penetration](/tag/da-tp).' ,
2020-05-18 02:28:38 +00:00
group : 'penetration' ,
} ,
{
name : 'double dildo' ,
slug : 'double-dildo' ,
2020-10-30 16:37:10 +00:00
description : 'Two girls fucking eachother using either end of a double-sided dildo. They can suck it for a [double dildo blowjob](/tag/double-dildo-blowjob), deepthroat it for a [double dildo kiss](/tag/double-dildo-kiss), or put it up their ass for [double dildo anal](/tag/double-dildo-anal).' ,
2020-05-18 02:28:38 +00:00
} ,
{
name : 'double dildo anal' ,
slug : 'double-dildo-anal' ,
description : 'Two people ass-fucking eachother with either end of a [double-sided dildo](/tag/double-dildo), "ass to ass".' ,
} ,
{
name : 'double dildo DP' ,
slug : 'double-dildo-dp' ,
2020-11-02 03:49:16 +00:00
description : 'Using a [double-sided dildo](/tag/double-dildo) on your ass and pussy [at the same time](/tag/dp).' ,
2020-05-18 02:28:38 +00:00
} ,
{
name : 'double dildo blowjob' ,
slug : 'double-dildo-blowjob' ,
description : 'Two people sucking and gagging on either end of a [double-sided dildo](/tag/double-dildo). They may deepthroat the dildo for a [double dildo kiss](/tag/double-dildo-kiss).' ,
} ,
{
name : 'double dildo kiss' ,
slug : 'double-dildo-kiss' ,
2020-11-03 02:36:34 +00:00
description : 'Deepthroating a [double-sided dildo](/tag/double-dildo) during a [double dildo blowjob](/tag/double-dildo-blowjob), all the way until you can kiss eachother\'s lips.' ,
2020-05-18 02:28:38 +00:00
} ,
{
name : 'triple anal' ,
2020-07-02 02:04:28 +00:00
slug : 'tap' ,
2020-05-18 02:28:38 +00:00
description : 'Getting fucked in the ass by not one, two, but *three* cocks at the same time.' ,
group : 'penetration' ,
} ,
2021-08-21 22:40:22 +00:00
{
name : 'triple vaginal' ,
slug : 'tvp' ,
description : 'Getting fucked in the pussy by *three* cocks at the same time.' ,
group : 'penetration' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'deepthroat' ,
slug : 'deepthroat' ,
2021-03-18 03:01:35 +00:00
description : 'Shoving a cock down your throat during a [blowjob](/tag/blowjob) or [facefuck](/tag/facefucking), giving them a tight sensation while showing off your skills. Without practice, a cock hitting the back of your mouth will likely make you [gag](/tag/gagging).' ,
2020-05-18 02:28:38 +00:00
group : 'oral' ,
} ,
{
name : 'double penetration' ,
2020-07-02 02:04:28 +00:00
slug : 'dp' ,
2021-03-17 04:11:17 +00:00
description : 'Getting your [ass](/tag/anal) and pussy fucked at the same time. If you take another cock in your mouth, you are [airtight](/tag/airtight).' ,
2020-05-18 02:28:38 +00:00
group : 'penetration' ,
} ,
{
name : 'dungeon' ,
slug : 'dungeon' ,
} ,
{
name : 'double vaginal' ,
2020-07-02 02:04:28 +00:00
slug : 'dvp' ,
2021-03-18 03:01:35 +00:00
description : 'Getting fucked with two cocks in your pussy at the same time. If there\'s a third cock in your asshole, it is [double vaginal triple penetration](/tag/dv-tp).' ,
2020-05-18 02:28:38 +00:00
group : 'penetration' ,
} ,
2020-11-19 01:01:13 +00:00
{
name : 'double barrel blowjob' ,
slug : 'double-barrel-blowjob' ,
group : 'oral' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'double blowjob' ,
slug : 'double-blowjob' ,
group : 'oral' ,
} ,
{
name : 'doggy style' ,
slug : 'doggy-style' ,
group : 'position' ,
} ,
{
name : 'dress' ,
slug : 'dress' ,
group : 'clothing' ,
} ,
{
2021-01-12 23:52:05 +00:00
name : 'black' ,
slug : 'black' ,
2020-05-18 02:28:38 +00:00
group : 'ethnicity' ,
} ,
{
name : 'electric shock' ,
slug : 'electric-shock' ,
} ,
{
2021-03-09 23:00:50 +00:00
name : 'enhanced boobs' ,
slug : 'enhanced-boobs' ,
2020-05-18 02:28:38 +00:00
} ,
2021-02-26 03:31:08 +00:00
{
2021-03-09 23:00:50 +00:00
name : 'enhanced butt' ,
slug : 'enhanced-butt' ,
2021-02-26 03:31:08 +00:00
} ,
2020-05-18 02:28:38 +00:00
{
name : 'facefucking' ,
slug : 'facefucking' ,
2021-03-17 04:11:17 +00:00
description : 'A [blowjob](/tag/blowjob) where you give up control, and let them fuck your mouth and [throat](/tag/deepthroat) as if it\'s your pussy.' ,
2020-05-18 02:28:38 +00:00
group : 'oral' ,
} ,
{
name : 'facesitting' ,
slug : 'facesitting' ,
group : 'position' ,
} ,
{
name : 'facial' ,
slug : 'facial' ,
group : 'finish' ,
} ,
{
2020-09-21 03:11:24 +00:00
name : 'family' ,
2020-05-18 02:28:38 +00:00
slug : 'family' ,
} ,
{
name : 'feet' ,
slug : 'feet' ,
} ,
2022-10-25 21:13:24 +00:00
{
name : 'foot worship' ,
slug : 'foot-worship' ,
} ,
{
name : 'sole worship' ,
slug : 'sole-worship' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'femdom' ,
slug : 'femdom' ,
} ,
{
name : 'fingering' ,
slug : 'fingering' ,
} ,
{
name : 'fisting' ,
slug : 'fisting' ,
} ,
2021-01-19 14:58:27 +00:00
{
name : 'fisting DP' ,
slug : 'fisting-dp' ,
} ,
2021-03-17 04:11:17 +00:00
{
name : 'flexible' ,
slug : 'flexible' ,
} ,
2022-10-25 21:13:24 +00:00
{
name : 'flip-flops' ,
slug : 'flip-flops' ,
} ,
{
name : 'footjob' ,
slug : 'footjob' ,
} ,
{
name : 'footjob handjob combo' ,
slug : 'footjob-handjob-combo' ,
} ,
{
name : 'footjob blowjob combo' ,
slug : 'footjob-blowjob-combo' ,
} ,
{
name : 'foot gagging' ,
slug : 'foot-gagging' ,
} ,
{
name : 'foot licking' ,
slug : 'foot-licking' ,
} ,
{
name : 'foot massage' ,
slug : 'foot-massage' ,
} ,
{
name : 'foot sex' ,
slug : 'foot-sex' ,
} ,
2021-09-28 18:45:22 +00:00
{
name : 'free use' ,
slug : 'free-use' ,
2022-01-06 00:41:26 +00:00
description : 'The fantasy of giving universal consent, and making yourself available for any sexual activity, anywhere, anytime, and possibly anyone, in a society that usually considers your role as a passive sex slave perfectly ordinary. As long as you are accommodating, you may carry on with your regular activities, and pay no attention to how you are being used.' ,
2021-09-28 18:45:22 +00:00
} ,
2020-05-18 02:28:38 +00:00
{
name : 'MFF threesome' ,
slug : 'mff' ,
description : 'A threesome with two women and one guy, in which the women have sex with eachother.' ,
group : 'group' ,
} ,
{
name : 'gag' ,
slug : 'gag' ,
} ,
2021-03-15 03:59:08 +00:00
{
name : 'gagging' ,
slug : 'gagging' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'gangbang' ,
slug : 'gangbang' ,
2021-01-17 20:24:20 +00:00
description : 'Getting fucked by three or more cocks, at least two at the same time, often but not necessarily involving a [blowbang](/tag/blowbang), [spitroast](/tag/mfm), [double penetration](/tag/dp) and [airtight](/tag/airtight). If you get fucked by one guy at a time, it might be considered a [trainbang](/tag/trainbang). In a reverse gangbang, multiple women fuck one man.' , /* eslint-disable-line max-len */
2020-05-18 02:28:38 +00:00
group : 'group' ,
} ,
2021-09-17 01:30:49 +00:00
{
name : 'older men' ,
slug : 'older-men' ,
group : 'age' ,
} ,
2020-07-13 01:51:17 +00:00
{
name : 'glamcore' ,
slug : 'glamcore' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'glasses' ,
slug : 'glasses' ,
group : 'clothing' ,
} ,
2022-10-02 20:49:38 +00:00
{
name : 'hentai' ,
slug : 'hentai' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'fake cum' ,
slug : 'fake-cum' ,
group : 'finish' ,
} ,
{
name : 'trainbang' ,
slug : 'trainbang' ,
2021-01-17 20:24:20 +00:00
description : 'Getting fucked by a group of three or more guys taking turns in a [gangbang](/tag/gangbang), one cock after the other, and never more than one at a time.' ,
2020-05-18 02:28:38 +00:00
group : 'group' ,
} ,
{
name : 'gaping' ,
slug : 'gaping' ,
} ,
{
name : 'gay' ,
slug : 'gay' ,
} ,
{
name : 'gloryhole' ,
slug : 'gloryhole' ,
} ,
{
name : 'gonzo' ,
slug : 'gonzo' ,
} ,
2021-09-17 01:30:49 +00:00
{
name : 'gym' ,
slug : 'gym' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'hairy' ,
slug : 'hairy' ,
group : 'body' ,
} ,
{
name : 'handjob' ,
slug : 'handjob' ,
} ,
{
name : 'hardcore' ,
slug : 'hardcore' ,
} ,
{
name : 'high heels' ,
slug : 'high-heels' ,
group : 'clothing' ,
} ,
{
name : 'humiliation' ,
slug : 'humiliation' ,
} ,
2020-07-17 01:39:13 +00:00
{
2021-08-25 23:14:54 +00:00
name : 'desi' ,
slug : 'desi' ,
2020-07-17 01:39:13 +00:00
} ,
2020-05-18 02:28:38 +00:00
{
name : 'innie pussy' ,
slug : 'innie-pussy' ,
} ,
{
name : 'interracial' ,
slug : 'interracial' ,
group : 'ethnicity' ,
} ,
2022-10-25 21:13:24 +00:00
{
name : 'JOI' ,
slug : 'joi' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'kissing' ,
slug : 'kissing' ,
} ,
{
name : 'latex' ,
slug : 'latex' ,
} ,
{
name : 'Latina' ,
slug : 'latina' ,
group : 'ethnicity' ,
} ,
{
name : 'leather' ,
slug : 'leather' ,
} ,
{
name : 'lesbian' ,
slug : 'lesbian' ,
} ,
{
name : 'machine dildo' ,
slug : 'machine-dildo' ,
} ,
{
name : 'lingerie' ,
slug : 'lingerie' ,
group : 'clothing' ,
} ,
{
name : 'live' ,
slug : 'live' ,
} ,
{
name : 'maid' ,
slug : 'maid' ,
group : 'roleplay' ,
} ,
{
name : 'massage' ,
slug : 'massage' ,
} ,
{
name : 'male focus' ,
slug : 'male-focus' ,
description : 'Straight porn highlighting the male talent.' ,
} ,
{
name : 'masturbation' ,
slug : 'masturbation' ,
} ,
{
name : 'MILF' ,
slug : 'milf' ,
group : 'age' ,
} ,
{
name : 'MFM threesome' ,
slug : 'mfm' ,
2020-11-01 01:58:21 +00:00
description : 'Two men fucking one woman, but not eachother. Typically involves a \'spitroast\', where one guy gets a blowjob and the other fucks her pussy or ass.' ,
2020-05-18 02:28:38 +00:00
group : 'group' ,
} ,
2021-08-25 23:14:54 +00:00
{
name : 'milk' ,
slug : 'milk' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'miniskirt' ,
slug : 'miniskirt' ,
group : 'clothing' ,
} ,
{
name : 'missionary' ,
slug : 'missionary' ,
group : 'position' ,
} ,
{
name : 'natural boobs' ,
slug : 'natural-boobs' ,
group : 'body' ,
} ,
{
name : 'nipple clamps' ,
slug : 'nipple-clamps' ,
} ,
2020-11-29 02:59:47 +00:00
{
name : 'nun' ,
slug : 'nun' ,
group : 'roleplay' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'oil' ,
slug : 'oil' ,
} ,
2022-10-25 21:13:24 +00:00
{
name : 'nail polish' ,
slug : 'nail-polish' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'nurse' ,
slug : 'nurse' ,
group : 'roleplay' ,
} ,
{
name : 'cum in mouth' ,
slug : 'cum-in-mouth' ,
2020-05-24 03:13:50 +00:00
description : 'A guy ejaculating in someone\'s mouth. If they keep their lips wrapped around his cock, it is an [oral creampie](/tag/oral-creampie). They may not be able to resist [swallowing](/tag/swallowing) the cum.' ,
group : 'finish' ,
} ,
{
name : 'oral creampie' ,
slug : 'oral-creampie' ,
description : 'A guy pumping his semen in someone\'s *closed* [mouth](/tag/cum-in-mouth), a variation of [cum in mouth](/tag/cum-in-mouth). His cock can be [deepthroated](/tag/deepthroat) for a [throatpie](/tag/throatpie)' ,
2020-05-18 02:28:38 +00:00
group : 'finish' ,
} ,
{
name : 'orgy' ,
slug : 'orgy' ,
description : 'A group of (at least four) people having sex with eachother. If only one person is getting fucked, it is probably a [gangbang](/tag/gangbang).' ,
group : 'group' ,
} ,
{
name : 'outdoors' ,
slug : 'outdoors' ,
group : 'location' ,
} ,
{
name : 'outie pussy' ,
slug : 'outie-pussy' ,
} ,
{
name : 'pain' ,
slug : 'pain' ,
} ,
{
name : 'parody' ,
slug : 'parody' ,
} ,
{
name : 'pegging' ,
slug : 'pegging' ,
} ,
{
name : 'petite' ,
slug : 'petite' ,
} ,
{
name : 'piercings' ,
slug : 'piercings' ,
} ,
2020-07-02 23:28:22 +00:00
{
name : 'piss drinking' ,
slug : 'piss-drinking' ,
} ,
{
name : 'pissing' ,
slug : 'pissing' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'POV' ,
slug : 'pov' ,
} ,
{
name : 'pussy eating' ,
slug : 'pussy-eating' ,
group : 'oral' ,
} ,
2020-09-25 19:21:26 +00:00
{
name : 'pussy to mouth' ,
slug : 'pussy-to-mouth' ,
description : 'Sucking off a cock right fresh out of your pussy.' ,
group : 'oral' ,
} ,
2020-07-02 02:04:28 +00:00
{
name : 'pyjamas' ,
slug : 'pyjamas' ,
group : 'clothing' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'redhead' ,
slug : 'redhead' ,
group : 'hair' ,
} ,
2021-08-09 08:31:12 +00:00
{
name : 'reverse blowjob' ,
slug : 'reverse-blowjob' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'reverse cowgirl' ,
slug : 'reverse-cowgirl' ,
} ,
{
name : 'roleplay' ,
slug : 'roleplay' ,
} ,
{
name : 'rough' ,
slug : 'rough' ,
} ,
{
name : 'saliva' ,
slug : 'saliva' ,
} ,
{
name : 'schoolgirl' ,
slug : 'schoolgirl' ,
group : 'roleplay' ,
} ,
2021-03-15 03:59:08 +00:00
{
name : 'sex' ,
slug : 'sex' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'shaved' ,
slug : 'shaved' ,
} ,
{
name : 'shoes on' ,
slug : 'shoes-on' ,
group : 'clothing' ,
} ,
{
name : 'short hair' ,
slug : 'short-hair' ,
group : 'hair' ,
} ,
2021-02-27 20:59:33 +00:00
{
name : 'sideways' ,
slug : 'sideways' ,
group : 'position' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'skirt' ,
slug : 'skirt' ,
group : 'clothing' ,
} ,
{
name : 'slapping' ,
slug : 'slapping' ,
} ,
{
name : 'sloppy blowjob' ,
slug : 'sloppy-blowjob' ,
} ,
{
name : 'socks' ,
slug : 'socks' ,
group : 'clothing' ,
} ,
{
name : 'solo' ,
slug : 'solo' ,
} ,
2022-10-25 21:13:24 +00:00
{
name : 'skinny' ,
slug : 'skinny' ,
group : 'body' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'spanking' ,
slug : 'spanking' ,
} ,
{
name : 'spooning' ,
slug : 'spooning' ,
group : 'position' ,
} ,
{
name : 'strapon' ,
slug : 'strapon' ,
} ,
2022-10-25 21:13:24 +00:00
{
name : 'slippers' ,
slug : 'slippers' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'small boobs' ,
slug : 'small-boobs' ,
2022-10-25 21:13:24 +00:00
group : 'body' ,
2020-05-18 02:28:38 +00:00
} ,
{
name : 'small butt' ,
slug : 'small-butt' ,
} ,
{
name : 'speculum' ,
slug : 'speculum' ,
} ,
{
name : 'squirting' ,
slug : 'squirting' ,
} ,
{
name : 'standing doggy style' ,
slug : 'standing-doggy-style' ,
} ,
{
name : 'stockings' ,
slug : 'stockings' ,
group : 'clothing' ,
} ,
{
name : 'strap-on dildo' ,
slug : 'strap-on-dildo' ,
} ,
2021-09-12 23:29:39 +00:00
{
name : 'stripper' ,
slug : 'stripper' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'suspension' ,
slug : 'suspension' ,
} ,
{
name : 'swallowing' ,
slug : 'swallowing' ,
group : 'finish' ,
} ,
2020-11-24 03:29:44 +00:00
{
name : 'swinging' ,
slug : 'swinging' ,
group : 'group' ,
} ,
2020-05-18 02:28:38 +00:00
{
2020-05-20 01:00:46 +00:00
name : 'tattoos' ,
slug : 'tattoos' ,
2020-05-18 02:28:38 +00:00
group : 'body' ,
} ,
{
name : 'teacher' ,
slug : 'teacher' ,
group : 'roleplay' ,
} ,
2022-10-25 21:13:24 +00:00
{
name : 'teasing' ,
slug : 'teasing' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'threesome' ,
slug : 'threesome' ,
group : 'group' ,
} ,
2020-05-24 03:13:50 +00:00
{
name : 'throatpie' ,
slug : 'throatpie' ,
description : 'An [oral creampie](/tag/oral-creampie) with his cock shoved all the way down the throat.' ,
group : 'finish' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'teen' ,
slug : 'teen' ,
group : 'age' ,
2021-07-04 22:06:18 +00:00
description : 'New starlets aged between roughly 18 and 21, but often stretched to well into their 20s.' ,
2020-05-18 02:28:38 +00:00
} ,
{
2020-09-21 03:11:24 +00:00
name : 'titty fucking' ,
slug : 'titty-fucking' ,
2020-05-18 02:28:38 +00:00
} ,
2022-10-25 21:13:24 +00:00
{
name : 'toe sucking' ,
slug : 'toe-sucking' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'toys' ,
slug : 'toys' ,
} ,
2020-09-21 03:11:24 +00:00
{
name : 'toy anal' ,
slug : 'toy-anal' ,
description : 'Stuffing a toy, such as a dildo or buttplug, into the ass' ,
} ,
{
name : 'toy DP' ,
slug : 'toy-dp' ,
2020-11-02 03:49:16 +00:00
description : 'Getting [double penetrated](/tag/dp) with dildos, strap-ons or buttplugs. You can use both ends of a [double dildo](/tag/double-dildo) for a [double dildo DP](/tag/double-dildo-dp).' ,
2020-09-21 03:11:24 +00:00
} ,
2020-05-18 02:28:38 +00:00
{
name : 'transsexual' ,
slug : 'transsexual' ,
} ,
{
name : 'DA triple penetration' ,
slug : 'da-tp' ,
2021-08-22 01:14:02 +00:00
description : '[Triple penetration](/tag/triple-penetration) with [two cocks in your ass](/tag/dap), and one in your pussy. Also see [double vaginal triple penetration](/tag/dv-tp).' ,
2020-05-18 02:28:38 +00:00
group : 'penetration' ,
} ,
{
name : 'DV triple penetration' ,
slug : 'dv-tp' ,
2021-08-22 01:14:02 +00:00
description : '[Triple penetration](/tag/triple-penetration) with [two cocks in your pussy](/tag/dvp), and one in [your ass](/tag/anal). Also see [double anal triple penetration](/tag/da-tp).' ,
2020-05-18 02:28:38 +00:00
group : 'penetration' ,
} ,
{
name : 'triple penetration' ,
slug : 'triple-penetration' ,
description : 'Three cocks fucking her from behind at the same time. This can be either [double anal TP](/tag/da-tp), or [double vaginal TP](/tag/dv-tp).' ,
} ,
{
name : 'trimmed' ,
slug : 'trimmed' ,
} ,
{
name : 'uniform' ,
slug : 'uniform' ,
} ,
2020-07-13 01:51:17 +00:00
{
name : 'van' ,
slug : 'van' ,
group : 'location' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'vibrator' ,
slug : 'vibrator' ,
} ,
{
name : 'voyeur' ,
slug : 'voyeur' ,
} ,
{
name : 'virtual reality' ,
2021-02-03 01:59:39 +00:00
slug : 'vr' ,
2020-05-18 02:28:38 +00:00
} ,
2020-07-23 02:29:46 +00:00
{
name : 'quarantine' ,
slug : 'quarantine' ,
description : 'The 2019 Coronavirus outbreak (COVID-19) forced sensible people to quarantine at home, spawning a new porn theme featuring self-isolation and masks.' ,
} ,
2020-07-07 02:37:12 +00:00
{
name : 'Russian' ,
slug : 'russian' ,
group : 'ethnicity' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'wet' ,
slug : 'wet' ,
} ,
{
2021-01-12 23:52:05 +00:00
name : 'white' ,
slug : 'white' ,
2020-05-18 02:28:38 +00:00
group : 'ethnicity' ,
} ,
2021-06-27 22:05:24 +00:00
{
name : 'white cock' ,
slug : 'white-cock' ,
group : 'body' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'wife' ,
slug : 'wife' ,
} ,
{
name : 'office' ,
slug : 'office' ,
group : 'location' ,
} ,
2020-02-13 02:44:04 +00:00
] ;
2019-11-06 01:47:10 +00:00
2020-02-13 02:44:04 +00:00
const aliases = [
2020-05-18 02:28:38 +00:00
{
name : '2on1' ,
for : 'threesome' ,
} ,
2022-01-29 00:21:41 +00:00
{
name : '3some' ,
for : 'threesome' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : '2-on-1' ,
for : 'threesome' ,
} ,
{
name : '2 on 1' ,
for : 'threesome' ,
} ,
{
name : '3+ on 1' ,
for : 'gangbang' ,
} ,
{
name : 'anal sex' ,
for : 'anal' ,
} ,
2021-08-09 08:31:12 +00:00
{
name : 'anal drill' ,
for : 'anal' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'anal gape' ,
for : 'gaping' ,
} ,
{
name : 'anilingus' ,
for : 'ass-eating' ,
} ,
{
name : 'analingus' ,
for : 'ass-eating' ,
} ,
{
name : 'analingus male' ,
for : 'ass-eating' ,
} ,
{
name : 'asians' ,
for : 'asian' ,
} ,
{
name : 'asian female' ,
for : 'asian' ,
} ,
{
2020-09-21 03:11:24 +00:00
name : 'ass fingering' ,
for : 'anal-fingering' ,
} ,
{
name : 'anal toys' ,
for : 'toy-anal' ,
2020-05-18 02:28:38 +00:00
} ,
{
name : 'ass licking' ,
for : 'ass-eating' ,
} ,
{
name : 'asslicking' ,
for : 'ass-eating' ,
} ,
{
name : 'ass fucking' ,
for : 'anal' ,
} ,
2020-09-21 03:11:24 +00:00
{
name : 'ass to ass' ,
for : 'double-dildo-anal' ,
secondary : true ,
} ,
2020-05-24 03:13:50 +00:00
{
2021-08-24 00:54:40 +00:00
name : 'ATOGM' ,
2020-05-24 03:13:50 +00:00
for : 'atogm' ,
} ,
{
name : 'ass to other girls mouth' ,
for : 'atogm' ,
} ,
{
name : 'ass to other mouth' ,
for : 'atogm' ,
} ,
{
name : 'ass to other mouth' ,
for : 'atom' ,
} ,
2020-08-12 01:30:20 +00:00
{
name : 'atm' ,
for : 'atm' ,
secondary : true ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'a2m' ,
2020-05-26 02:11:29 +00:00
for : 'atm' ,
2020-05-18 02:28:38 +00:00
secondary : true ,
} ,
{
name : 'bald pussy' ,
for : 'shaved' ,
} ,
{
name : 'ball gag' ,
for : 'gag' ,
} ,
{
name : 'ball lick' ,
for : 'ball-licking' ,
} ,
{
name : 'ball suck' ,
for : 'ball-licking' ,
} ,
{
name : 'ball sucking' ,
for : 'ball-licking' ,
} ,
{
name : 'boob fucking' ,
2020-09-21 03:11:24 +00:00
for : 'titty-fucking' ,
2020-05-18 02:28:38 +00:00
} ,
{
2021-01-14 00:37:50 +00:00
name : 'bts' ,
2020-09-03 20:22:12 +00:00
for : 'bts' ,
2020-05-18 02:28:38 +00:00
secondary : true ,
} ,
2020-11-23 03:32:56 +00:00
{
name : 'behind the scene' ,
for : 'bts' ,
} ,
2020-09-21 03:11:24 +00:00
{
name : 'blindfolded' ,
for : 'blindfold' ,
secondary : true ,
} ,
2020-09-16 02:55:30 +00:00
{
name : 'making of' ,
for : 'bts' ,
secondary : true ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'mfm' ,
for : 'mmf' ,
} ,
{
name : 'fmf' ,
for : 'mff' ,
} ,
{
name : 'mff' ,
for : 'mff' ,
} ,
{
name : 'ffm' ,
for : 'mff' ,
} ,
{
name : 'bgb' ,
for : 'mfm' ,
} ,
{
name : 'big ass' ,
for : 'big-butt' ,
} ,
{
name : 'big black cock' ,
for : 'bbc' ,
} ,
{
name : 'big black cocks' ,
for : 'bbc' ,
} ,
{
name : 'big cocks' ,
for : 'big-dick' ,
} ,
{
name : 'big cock' ,
for : 'big-dick' ,
} ,
{
name : 'big booty' ,
for : 'big-butt' ,
} ,
{
name : 'big butts' ,
for : 'big-butt' ,
} ,
{
name : 'big tits' ,
for : 'big-boobs' ,
} ,
{
name : 'busty - big boobs' ,
for : 'big-boobs' ,
} ,
{
name : 'busty: big beautiful breast' ,
for : 'big-boobs' ,
} ,
2021-08-09 08:31:12 +00:00
{
name : 'buttrose' ,
for : 'anal-prolapse' ,
} ,
{
name : 'butt rose' ,
for : 'anal-prolapse' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'bi' ,
for : 'bisexual' ,
} ,
{
2021-01-12 23:52:05 +00:00
name : 'ebony' ,
for : 'black' ,
2020-05-18 02:28:38 +00:00
} ,
{
name : 'blonde hair' ,
for : 'blonde' ,
} ,
{
name : 'blonde female' ,
for : 'blonde' ,
} ,
{
name : 'blondes' ,
for : 'blonde' ,
} ,
{
name : 'blow job' ,
for : 'blowjob' ,
} ,
{
name : 'blowjobs' ,
for : 'blowjob' ,
} ,
{
name : 'blowjob pov' ,
for : 'blowjob' ,
} ,
{
name : 'blowjob (double)' ,
for : 'double-blowjob' ,
} ,
{
name : 'blowjob - double' ,
for : 'double-blowjob' ,
} ,
{
name : 'blowjob (pov)' ,
for : 'blowjob' ,
} ,
{
name : 'blowjob - pov' ,
for : 'blowjob' ,
} ,
2021-03-09 23:00:50 +00:00
{
name : 'fake boobs' ,
for : 'enhanced-boobs' ,
secondary : true ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'boob job' ,
2021-03-09 23:00:50 +00:00
for : 'titty-fucking' ,
2020-05-18 02:28:38 +00:00
} ,
{
name : 'boobjob' ,
2021-03-09 23:00:50 +00:00
for : 'enhanced-boobs' ,
2020-05-18 02:28:38 +00:00
} ,
{
name : 'brown hair' ,
for : 'brunette' ,
} ,
{
name : 'brunettes' ,
for : 'brunette' ,
} ,
{
name : 'buttplug' ,
for : 'anal-toys' ,
secondary : true ,
} ,
{
name : 'butt plug' ,
for : 'anal-toys' ,
} ,
2020-07-02 23:28:22 +00:00
{
name : 'butt plugs' ,
for : 'anal-toys' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'caning' ,
for : 'corporal-punishment' ,
} ,
{
name : 'cattle prod' ,
for : 'electric-shock' ,
} ,
{
name : 'cheer leader' ,
for : 'cheerleader' ,
} ,
{
name : 'clover clamps' ,
for : 'nipple-clamps' ,
} ,
{
name : 'couples fantasies' ,
for : 'couples' ,
} ,
2020-11-23 03:32:56 +00:00
{
name : 'couple sex' ,
for : 'couples' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'creampies' ,
for : 'creampie' ,
} ,
{
name : 'creampie - anal' ,
for : 'anal-creampie' ,
} ,
{
name : 'crop' , // a type of whip, not [sic] short for corporal
for : 'corporal-punishment' ,
} ,
{
name : 'cum cleaning' ,
for : 'cum-licking' ,
} ,
{
name : 'cuck' ,
for : 'cuckold' ,
} ,
{
name : 'oral creampie' ,
for : 'cum-in-mouth' ,
secondary : true ,
} ,
{
name : 'cum on ass' ,
for : 'cum-on-butt' ,
} ,
{
name : 'cum on tits' ,
for : 'cum-on-boobs' ,
} ,
2020-09-25 19:21:26 +00:00
{
name : 'cum swallow' ,
for : 'swallowing' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'cum swallowing' ,
for : 'swallowing' ,
} ,
{
name : 'cum shot' ,
for : 'cumshot' ,
} ,
{
name : 'cunnilingus' ,
for : 'pussy-eating' ,
} ,
2020-09-08 01:26:34 +00:00
{
name : 'cunilingus' ,
for : 'pussy-eating' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'pussy licking' ,
for : 'pussy-eating' ,
} ,
{
name : 'deep throat' ,
for : 'deepthroat' ,
secondary : true ,
} ,
{
name : 'deepthroating' ,
for : 'deepthroat' ,
} ,
{
name : 'dildo' ,
for : 'toys' ,
} ,
{
name : 'doggystyle' ,
for : 'doggy-style' ,
secondary : true ,
} ,
{
name : 'doggy style - pov' ,
for : 'doggy-style' ,
} ,
{
name : 'doggie style' ,
for : 'doggy-style' ,
} ,
{
name : 'doggystyle (standing)' ,
for : 'standing-doggy-style' ,
} ,
{
name : 'doggystyle - standing' ,
for : 'standing-doggy-style' ,
} ,
{
name : 'doggystyle regular' ,
for : 'doggy-style' ,
} ,
{
name : 'dom' ,
for : 'bdsm' ,
} ,
{
name : 'domination' ,
for : 'bdsm' ,
} ,
{
name : 'dominatrix' ,
for : 'femdom' ,
secondary : true ,
} ,
2020-07-17 21:27:59 +00:00
{
name : 'dp' ,
for : 'dp' ,
2021-02-25 01:52:45 +00:00
secondary : true ,
2020-07-17 21:27:59 +00:00
} ,
2020-10-30 16:37:10 +00:00
{
name : 'double dildo deepthroat' ,
for : 'double-dildo-kiss' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'double penetration (dp)' ,
2020-07-02 02:04:28 +00:00
for : 'dp' ,
2020-05-18 02:28:38 +00:00
} ,
{
name : 'double penetration - dp' ,
2020-07-02 02:04:28 +00:00
for : 'dp' ,
2020-05-18 02:28:38 +00:00
} ,
{
name : 'double anal (dap)' ,
2020-07-02 02:04:28 +00:00
for : 'dap' ,
2020-05-18 02:28:38 +00:00
} ,
2022-07-09 23:57:24 +00:00
{
name : 'double anal penetration' ,
for : 'dap' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'double anal penetration (dap)' ,
2020-07-02 02:04:28 +00:00
for : 'dap' ,
2020-05-18 02:28:38 +00:00
} ,
{
name : 'dpp' ,
2020-07-02 02:04:28 +00:00
for : 'dvp' ,
2020-05-18 02:28:38 +00:00
secondary : true ,
} ,
2021-08-21 22:40:22 +00:00
{
name : 'tpp' ,
for : 'tvp' ,
secondary : true ,
} ,
2022-08-15 21:51:51 +00:00
{
name : 'double vag' ,
for : 'dvp' ,
} ,
2022-07-09 23:57:24 +00:00
{
name : 'double vaginal penetration' ,
for : 'dvp' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'double vaginal (dvp)' ,
2020-07-02 02:04:28 +00:00
for : 'dvp' ,
2020-05-18 02:28:38 +00:00
} ,
{
name : 'double vaginal penetration (dvp)' ,
2020-07-02 02:04:28 +00:00
for : 'dvp' ,
2020-05-18 02:28:38 +00:00
} ,
{
name : 'double vaginal (dpp)' ,
2020-07-02 02:04:28 +00:00
for : 'dvp' ,
2020-05-18 02:28:38 +00:00
} ,
{
name : 'double pussy penetration' ,
2020-07-02 02:04:28 +00:00
for : 'dvp' ,
2020-05-18 02:28:38 +00:00
} ,
{
name : 'double pussy penetration (dpp)' ,
2020-07-02 02:04:28 +00:00
for : 'dvp' ,
2020-05-18 02:28:38 +00:00
} ,
{
name : 'drool' ,
for : 'saliva' ,
} ,
{
name : 'enhanced' ,
2021-03-09 23:00:50 +00:00
for : 'enhanced-boobs' ,
2020-05-18 02:28:38 +00:00
} ,
{
name : 'enhanced tits' ,
2021-03-09 23:00:50 +00:00
for : 'enhanced-boobs' ,
2020-05-18 02:28:38 +00:00
} ,
2020-07-13 01:51:17 +00:00
{
2021-03-09 23:00:50 +00:00
name : 'fake butt' ,
for : 'enhanced-butt' ,
2021-02-26 03:31:08 +00:00
} ,
{
name : 'enhanced ass' ,
2021-03-09 23:00:50 +00:00
for : 'enhanced-butt' ,
2021-02-26 03:31:08 +00:00
} ,
{
name : 'fake ass' ,
2021-03-09 23:00:50 +00:00
for : 'enhanced-butt' ,
2021-02-26 03:31:08 +00:00
secondary : true ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'facefuck' ,
for : 'facefucking' ,
} ,
{
name : 'face fuck' ,
for : 'facefucking' ,
} ,
{
name : 'face fucking' ,
for : 'facefucking' ,
} ,
{
name : 'face sitting' ,
for : 'facesitting' ,
} ,
{
name : 'facial cumshot' ,
for : 'facial' ,
} ,
{
name : 'facials' ,
for : 'facial' ,
} ,
{
name : 'facial - multiple' ,
for : 'facial' ,
} ,
{
name : 'fake tits' ,
2021-03-09 23:00:50 +00:00
for : 'enhanced-boobs' ,
2020-05-18 02:28:38 +00:00
secondary : true ,
} ,
2022-10-25 21:13:24 +00:00
{
name : 'feet sex' ,
for : 'foot-sex' ,
} ,
{
name : 'foot porn' ,
for : 'feet' ,
} ,
2020-05-18 02:28:38 +00:00
{
2020-07-13 01:51:17 +00:00
name : 'flagellation' ,
for : 'corporal-punishment' ,
2020-05-18 02:28:38 +00:00
} ,
2022-10-25 21:13:24 +00:00
{
name : 'flip-flop' ,
for : 'flip-flops' ,
} ,
{
name : 'flip flops' ,
for : 'flip-flops' ,
} ,
{
name : 'flipflops' ,
for : 'flip-flops' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'flogging' ,
for : 'corporal-punishment' ,
} ,
{
name : 'foot fetish' ,
for : 'feet' ,
} ,
2021-09-28 18:45:22 +00:00
{
name : 'freeuse' ,
for : 'free-use' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'french kissing' ,
for : 'kissing' ,
} ,
2022-08-15 21:51:51 +00:00
{
name : 'gang bang' ,
for : 'gangbang' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'gape' ,
for : 'gaping' ,
secondary : true ,
} ,
{
name : 'gapes' ,
for : 'gaping' ,
secondary : true ,
} ,
{
name : 'gapes (gaping asshole)' ,
for : 'gaping' ,
} ,
2021-09-17 01:30:49 +00:00
{
name : 'gilf' ,
for : 'older-men' ,
} ,
2022-10-25 21:13:24 +00:00
{
name : 'girl girl' ,
for : 'lesbian' ,
} ,
{
name : 'girl-girl' ,
for : 'lesbian' ,
} ,
{
name : 'girl/girl' ,
for : 'lesbian' ,
} ,
2020-07-13 01:51:17 +00:00
{
name : 'glam' ,
for : 'glamcore' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'glory hole' ,
for : 'gloryhole' ,
} ,
{
name : 'group sex' ,
for : 'orgy' ,
} ,
{
name : 'huge tits' ,
for : 'big-boobs' ,
} ,
{
name : 'huge toys' ,
for : 'toys' ,
} ,
{
name : 'incest' ,
for : 'family' ,
secondary : true ,
} ,
{
name : 'incest fantasy' ,
for : 'family' ,
} ,
2021-08-25 23:14:54 +00:00
{
name : 'indian' ,
for : 'desi' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'innie' ,
for : 'innie-pussy' ,
} ,
2022-10-25 21:13:24 +00:00
{
name : 'jerk off instructions' ,
for : 'joi' ,
} ,
{
name : 'jerk-off instructions' ,
for : 'joi' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'lashing' ,
for : 'corporal-punishment' ,
} ,
{
name : 'lezdom' ,
for : 'lesbian' ,
} ,
{
name : 'mini-skirt' ,
for : 'miniskirt' ,
} ,
{
name : 'mmf' ,
for : 'mfm' ,
} ,
{
name : 'mature & milf' ,
for : 'milf' ,
} ,
2020-05-26 02:11:29 +00:00
{
name : 'milfs' ,
for : 'milf' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'natural' ,
for : 'natural-boobs' ,
} ,
{
name : 'natural tits' ,
for : 'natural-boobs' ,
} ,
2020-08-12 01:30:20 +00:00
{
name : 'oiled' ,
for : 'oil' ,
} ,
2021-09-17 01:30:49 +00:00
{
name : 'old & young' ,
for : 'older-men' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'oral' ,
for : 'blowjob' ,
} ,
2021-08-09 08:31:12 +00:00
{
name : 'oral sex' ,
for : 'blowjob' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'outie' ,
for : 'outie-pussy' ,
} ,
{
name : 'piercing' ,
for : 'piercings' ,
} ,
{
name : 'pierced' ,
for : 'piercings' ,
} ,
2020-07-02 23:28:22 +00:00
{
name : 'piss' ,
for : 'pissing' ,
} ,
{
name : 'pee' ,
for : 'pissing' ,
} ,
{
name : 'peeing' ,
for : 'pissing' ,
} ,
2022-10-25 21:13:24 +00:00
{
name : 'point of view' ,
for : 'pov' ,
} ,
{
name : 'point-of-view' ,
for : 'pov' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'prolapse' ,
for : 'anal-prolapse' ,
} ,
{
name : 'prolapsing' ,
for : 'anal-prolapse' ,
} ,
2021-03-15 03:59:08 +00:00
{
name : 'pussy fingering' ,
for : 'fingering' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'raven' ,
for : 'black-hair' ,
} ,
{
name : 'raven hair' ,
for : 'black-hair' ,
} ,
{
name : 'red hair' ,
for : 'redhead' ,
} ,
{
name : 'red head' ,
for : 'redhead' ,
} ,
2021-02-26 23:37:22 +00:00
{
name : 'riding' ,
for : 'cowgirl' ,
} ,
2020-07-19 01:52:36 +00:00
{
name : 'ginger' ,
for : 'redhead' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'redhead babes' ,
for : 'redhead' ,
} ,
{
name : 'rimming' ,
for : 'ass-eating' ,
secondary : true ,
} ,
{
name : 'rimjob' ,
for : 'ass-eating' ,
secondary : true ,
} ,
{
name : 'role play' ,
for : 'roleplay' ,
} ,
{
name : 'rope bondage' ,
for : 'bondage' ,
} ,
{
name : 'rough sex' ,
for : 'rough' ,
} ,
2020-07-13 01:51:17 +00:00
{
name : 'russian pornstar' ,
for : 'russian' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'school girl' ,
for : 'schoolgirl' ,
} ,
{
name : 'sadomasochism' ,
for : 'bdsm' ,
} ,
{
name : 'sadism' ,
for : 'bdsm' ,
} ,
{
name : 'scissoring' ,
for : 'lesbian' ,
} ,
{
name : 'sex toys' ,
for : 'toys' ,
} ,
{
name : 'shaved pussy' ,
for : 'shaved' ,
} ,
{
name : 'shoes' ,
for : 'shoes-on' ,
} ,
2021-02-27 20:59:33 +00:00
{
name : 'side fuck' ,
for : 'sideways' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'slave' ,
for : 'bdsm' ,
} ,
{
name : 'small ass' ,
for : 'small-butt' ,
} ,
{
name : 'small tits' ,
for : 'small-boobs' ,
} ,
{
name : 'spit' ,
for : 'saliva' ,
} ,
{
name : 'spitroast' ,
for : 'mfm' ,
secondary : true ,
} ,
2021-03-15 03:59:08 +00:00
{
name : 'spoon' ,
for : 'spooning' ,
secondary : true ,
} ,
2021-09-17 01:30:49 +00:00
{
name : 'sport' ,
for : 'gym' ,
} ,
{
name : 'sports' ,
for : 'gym' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'sex toy' ,
for : 'toys' ,
} ,
{
name : 'standing doggystyle' ,
for : 'standing-doggy-style' ,
} ,
{
name : 'swallow' ,
for : 'swallowing' ,
} ,
2020-11-24 03:29:44 +00:00
{
name : 'swingers' ,
for : 'swinging' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'strap-on' ,
for : 'strap-on-dildo' ,
} ,
{
name : 'strap on' ,
for : 'strap-on-dildo' ,
} ,
{
name : 'strap on dildo' ,
for : 'strap-on-dildo' ,
} ,
{
name : 'sub' ,
for : 'bdsm' ,
} ,
{
name : 'submission' ,
for : 'bdsm' ,
} ,
2020-07-02 02:04:28 +00:00
{
name : 'squirt' ,
for : 'squirting' ,
} ,
2022-02-24 23:00:18 +00:00
{
name : 'tap' ,
for : 'tap' ,
} ,
2022-10-25 21:13:24 +00:00
{
name : 'tease' ,
for : 'teasing' ,
} ,
2020-05-18 02:28:38 +00:00
{
2020-05-20 01:00:46 +00:00
name : 'tattoo' ,
for : 'tattoos' ,
2020-05-18 02:28:38 +00:00
secondary : true ,
} ,
{
name : 'teens' ,
for : 'teen' ,
} ,
{
name : 'throat fucking' ,
for : 'facefucking' ,
} ,
{
name : 'tiny boobs' ,
for : 'small-boobs' ,
} ,
{
name : 'tiny tits' ,
for : 'small-boobs' ,
} ,
{
name : 'tittyfuck' ,
2020-09-21 03:11:24 +00:00
for : 'titty-fucking' ,
2020-05-18 02:28:38 +00:00
secondary : true ,
} ,
{
name : 'tp' ,
for : 'triple-penetration' ,
} ,
{
name : 'trans' ,
for : 'transsexual' ,
} ,
{
name : 'transgender' ,
for : 'transsexual' ,
secondary : true ,
} ,
2022-02-24 23:00:18 +00:00
{
name : 'triple anal (tap)' ,
for : 'tap' ,
} ,
2022-02-07 23:19:34 +00:00
{
name : 'shemale' ,
for : 'transsexual' ,
} ,
{
name : 'tranny' ,
for : 'transsexual' ,
} ,
2020-05-18 02:28:38 +00:00
{
2020-09-03 20:22:12 +00:00
name : 'ts' ,
for : 'transsexual' ,
2020-05-18 02:28:38 +00:00
} ,
{
2020-09-03 20:22:12 +00:00
name : 'ts cock' ,
2020-05-18 02:28:38 +00:00
for : 'transsexual' ,
} ,
2020-09-03 20:22:12 +00:00
{
name : 'trimmed pussy' ,
for : 'trimmed' ,
} ,
2021-08-09 08:31:12 +00:00
{
name : 'upside down blowjob' ,
for : 'reverse-blowjob' ,
} ,
2020-05-18 02:28:38 +00:00
{
name : 'vr' ,
2021-02-03 01:59:39 +00:00
for : 'vr' ,
2020-05-18 02:28:38 +00:00
} ,
{
name : 'whipping' ,
for : 'corporal-punishment' ,
} ,
{
2021-01-12 23:52:05 +00:00
name : 'caucasian' ,
for : 'white' ,
2020-05-18 02:28:38 +00:00
} ,
{
name : 'work' ,
for : 'office' ,
} ,
{
name : 'workplace' ,
for : 'office' ,
} ,
{
name : 'zapper' ,
for : 'electric-shock' ,
} ,
2020-02-13 02:44:04 +00:00
] ;
2019-11-06 01:47:10 +00:00
2022-08-15 21:51:51 +00:00
const priorities = [ // higher index is higher priority
[ 'double-dildo' , 'double-dildo-blowjob' , 'double-dildo-kiss' , 'double-dildo-anal' , 'double-dildo-dp' ] ,
[ 'toys' , 'toy-anal' , 'toy-dp' , 'piss-drinking' ] ,
[ 'family' ] ,
[ 'blowjob' , 'deepthroat' ] ,
[ 'asian' , 'black' , 'latina' , 'white' , 'interracial' ] ,
[ 'bdsm' , 'bts' ] ,
[ 'facefucking' , 'gaping' , 'atm' , 'atogm' , 'pussy-to-mouth' , 'ass-eating' ] ,
[ 'facial' , 'swallowing' , 'creampie' , 'anal-creampie' , 'oral-creampie' , 'cum-in-mouth' , 'throatpie' ] ,
[ 'lesbian' , 'rough' , 'milf' , 'male-focus' ] ,
[ 'threesome' , 'mfm' , 'mff' , 'trainbang' , 'pissing' ] ,
[ 'anal' , 'bukkake' ] ,
[ 'dp' , 'dap' , 'tap' , 'dvp' , 'tvp' , 'airtight' ] ,
[ 'gangbang' , 'blowbang' , 'orgy' ] ,
2022-10-02 20:49:38 +00:00
[ 'gay' , 'transsexual' , 'bisexual' , 'hentai' ] ,
2022-08-15 21:51:51 +00:00
] . reduce ( ( acc , slugs , index ) => {
slugs . forEach ( ( slug ) => { acc [ slug ] = index ; } ) ;
return acc ;
} , { } ) ;
2021-11-20 23:19:10 +00:00
exports . seed = ( knex ) => Promise . resolve ( )
2020-05-18 02:28:38 +00:00
. then ( async ( ) => upsert ( 'tags_groups' , groups , 'slug' , knex ) )
. then ( async ( ) => {
const groupEntries = await knex ( 'tags_groups' ) . select ( '*' ) ;
const groupsMap = groupEntries . reduce ( ( acc , { id , slug } ) => ( { ... acc , [ slug ] : id } ) , { } ) ;
2019-09-08 01:53:09 +00:00
2022-10-25 21:13:24 +00:00
const uniqueTags = new Set ( ) ;
const tagsWithGroups = tags . map ( ( tag ) => {
if ( uniqueTags . has ( tag . slug ) ) {
// database error doesn't reveal conflict details, so pre-check for more insight
throw new Error ( ` Duplicate tag: ${ tag . slug } ` ) ;
}
uniqueTags . add ( tag . slug ) ;
return {
name : tag . name ,
slug : tag . slug || slugify ( tag . name ) ,
description : tag . description ,
// priority: tag.priority || 0,
priority : typeof priorities [ tag . slug ] === 'undefined' ? - 1 : priorities [ tag . slug ] ,
group _id : tag . group ? groupsMap [ tag . group ] : null ,
alias _for : null ,
} ;
} ) ;
2019-11-06 01:47:10 +00:00
2020-05-18 02:28:38 +00:00
return upsert ( 'tags' , tagsWithGroups , 'slug' ) ;
} )
. then ( async ( ) => {
const tagEntries = await knex ( 'tags' ) . select ( '*' ) . where ( { alias _for : null } ) ;
const tagsMap = tagEntries . reduce ( ( acc , { id , slug } ) => ( { ... acc , [ slug ] : id } ) , { } ) ;
2019-09-08 01:53:09 +00:00
2021-11-20 23:19:10 +00:00
const tagAliases = aliases . map ( ( alias ) => ( {
2020-05-18 02:28:38 +00:00
name : alias . name ,
alias _for : tagsMap [ alias . for ] ,
secondary : ! ! alias . secondary ,
} ) ) ;
2019-11-06 01:47:10 +00:00
2020-05-18 02:28:38 +00:00
return upsert ( 'tags' , tagAliases , 'name' ) ;
} ) ;