{"release_id":"01a1998d-9802-0000-b0f7-33a23307f4ed","chunk_id":"01a1998d-98f7-79e0-9212-7e8b9fab23e7","file":"BihX7r2j.mjs","mappings":"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","names":["desc","what","n","ALBUM_HUBS","SIZE_ORDER","ALBUM_HUBS_BY_SIZE","a","b","rank","h","i","albumHubBySlug","slug","albumHubForNiche","nicheSlug","albumHubPath","hub"],"sources":["../../../../../../src/lib/album-hubs.ts"],"sourcesContent":["import type { AlbumTag } from '$lib/types/album-tags';\nimport type { PageRateSubject } from '$lib/rate-subjects';\n\n/**\n * Album hubs (RAT-602, RAT-611): one indexable page per album tag people\n * search for, listing the real albums carrying it. Search asks for the\n * pictures (\"uncut cock\" 6.6K a month, \"hairy dick\" 5.4K, US), not for\n * \"albums\", so each hub is named in those words; the albums keep the tag the\n * creator (or the AI) picked. Volumes are Semrush US, 2026-10-16.\n *\n * `niche` is the community page about the same thing (RAT-608): the two link\n * to each other, and the hub says what the niche doesn't (paid sets, prices),\n * after Google filed /albums/bbc as a copy of /n/bbc.\n */\nexport type AlbumHub = {\n\tslug: string;\n\ttag: AlbumTag;\n\t/** Short name for links between hubs. */\n\tname: string;\n\th1: string;\n\ttitle: (albums: number) => string;\n\tdescription: (albums: number) => string;\n\tintro: string;\n\t/** slug of the /n/ community about the same thing */\n\tniche?: string;\n\t/** 'videos': every album with a clip in it, tagged or not (RAT-621) */\n\tmedia?: 'videos';\n\t/** Epic R: the AI rater for the same pictures, linked from the hub */\n\trater?: PageRateSubject;\n};\n\nconst desc = (what: string) => (n: number) =>\n\t`${n} ${what} from real creators. Free previews, one price per album, unlock the full set. 18+.`;\n\nexport const ALBUM_HUBS: AlbumHub[] = [\n\t{\n\t\t// dick pics 60.5K, male nudes 4.4K, cock pics 3.6K, guy nudes 1.6K\n\t\tslug: 'dick-pics',\n\t\ttag: 'guys',\n\t\tname: 'dick pics',\n\t\th1: 'dick pics & male nudes',\n\t\ttitle: (n) => `Dick Pics & Male Nudes — ${n} Albums from Real Guys | RateMyD`,\n\t\tdescription: (n) =>\n\t\t\t`${n} photo and video albums of real guys: dick pics, cock pics and male nudes, priced by the creator. Free previews, unlock the full set. 18+.`,\n\t\tintro:\n\t\t\t'real guys selling their own dick pics, in full photo and video sets. every album shows a cover and free previews; the rest unlocks for the price its creator set. no subscription, one album at a time.',\n\t\tniche: 'cockcompare'\n\t},\n\t{\n\t\t// uncut cock 6.6K, uncut dick pics 170\n\t\tslug: 'uncut-cock',\n\t\ttag: 'uncut',\n\t\tname: 'uncut cock',\n\t\th1: 'uncut cock pics',\n\t\ttitle: (n) => `Uncut Cock Pics — ${n} Albums from Real Creators | RateMyD`,\n\t\tdescription: (n) =>\n\t\t\t`${n} albums of uncut cocks from real creators: foreskin, soft and hard, photos and clips. Free previews, unlock the full set. 18+.`,\n\t\tintro:\n\t\t\t'uncut, foreskin and all: sets from creators who tagged their album uncut. soft and hard, close-ups and full body, photos and clips. look at the cover and the free previews before you unlock anything.',\n\t\tniche: 'uncut'\n\t},\n\t{\n\t\t// hairy dick 5.4K, hairy cock 1.9K\n\t\tslug: 'hairy-dick',\n\t\ttag: 'hairy',\n\t\tname: 'hairy dick',\n\t\th1: 'hairy dick pics',\n\t\ttitle: (n) => `Hairy Dick Pics — ${n} Albums of Hairy Cocks | RateMyD`,\n\t\tdescription: (n) =>\n\t\t\t`${n} albums of hairy dicks and hairy cocks from real guys, natural and untrimmed. Free previews, unlock the full set. 18+.`,\n\t\tintro:\n\t\t\t'natural, untrimmed, full bush: albums tagged hairy by the guys who made them. covers and previews are free to look at; the full set unlocks for the price the creator picked.',\n\t\tniche: 'hairy-man-cock'\n\t},\n\t{\n\t\t// big dick pics 8.1K\n\t\tslug: 'big-dick',\n\t\ttag: 'big',\n\t\tname: 'big dick',\n\t\th1: 'big dick pics',\n\t\ttitle: (n) => `Big Dick Pics — ${n} Albums of Big Cocks | RateMyD`,\n\t\tdescription: (n) =>\n\t\t\t`${n} albums of big dicks from real creators: big cock pics and clips, priced by the creator. Free previews, unlock the full set. 18+.`,\n\t\tintro:\n\t\t\t'albums the creators themselves tagged big: photos and clips, soft and hard. want a number instead of a tag? the penis size calculator shows where a size sits among 15,521 measured men.',\n\t\tniche: 'hung'\n\t},\n\t{\n\t\t// thick cock 4.4K\n\t\tslug: 'thick-cock',\n\t\ttag: 'thick',\n\t\tname: 'thick cock',\n\t\th1: 'thick cock pics',\n\t\ttitle: (n) => `Thick Cock Pics — ${n} Albums of Thick Dicks | RateMyD`,\n\t\tdescription: (n) =>\n\t\t\t`${n} albums of thick cocks and thick dicks from real creators. Free previews, unlock the full set. 18+.`,\n\t\tintro:\n\t\t\t'girth over length: sets tagged thick by the guys who made them. browse the covers and free previews first, then unlock the albums you want in full.',\n\t\tniche: 'girth'\n\t},\n\t{\n\t\t// hard dick pics 480\n\t\tslug: 'hard-dick',\n\t\ttag: 'hard',\n\t\tname: 'hard dick',\n\t\th1: 'hard dick pics',\n\t\ttitle: (n) => `Hard Dick Pics — ${n} Albums of Hard Cocks | RateMyD`,\n\t\tdescription: (n) =>\n\t\t\t`${n} albums of hard dicks from real guys: erect, close-up and full body. Free previews, unlock the full set. 18+.`,\n\t\tintro:\n\t\t\t'erect, ready and shot on purpose: albums tagged hard. browse the covers and free previews, then unlock the sets you want to see in full.'\n\t},\n\t{\n\t\t// bbc pics 1.9K. Named for what the hub is (paid albums), not \"BBC Pics\",\n\t\t// so it no longer reads as the /n/bbc community's twin (RAT-608).\n\t\tslug: 'bbc',\n\t\ttag: 'bbc',\n\t\tname: 'BBC',\n\t\th1: 'BBC albums',\n\t\ttitle: (n) => `BBC Albums — ${n} Paid Photo Sets of Big Black Cocks | RateMyD`,\n\t\tdescription: (n) =>\n\t\t\t`${n} paid albums of big black cocks: BBC pics and clips, each set priced by its creator. Free previews, unlock the full set. 18+.`,\n\t\tintro:\n\t\t\t'paid photo and video sets of big black cock, each one priced and tagged by the creator who made it. this is the shop: covers and previews are free, the full album unlocks once and stays yours. the BBC community, where members post and rate for free, is linked below.',\n\t\tniche: 'bbc'\n\t},\n\t// RAT-611: every other tag with 8+ listable albums (2026-10-16), named the\n\t// way the pictures are searched.\n\t{\n\t\tslug: 'amateur-nudes',\n\t\trater: 'nudes',\n\t\ttag: 'girls',\n\t\tname: 'amateur nudes',\n\t\th1: 'amateur nudes',\n\t\ttitle: (n) => `Amateur Nudes — ${n} Albums from Real Creators | RateMyD`,\n\t\tdescription: desc('photo and video albums of amateur nudes'),\n\t\tintro:\n\t\t\t'amateur nudes from girls who shot and priced their own sets: photos and clips, posed or candid. look at the cover and the free previews first, then unlock the albums you want in full.'\n\t},\n\t{\n\t\tslug: 'ass-pics',\n\t\trater: 'ass',\n\t\ttag: 'ass',\n\t\tname: 'ass pics',\n\t\th1: 'ass pics',\n\t\ttitle: (n) => `Ass Pics — ${n} Albums from Real Creators | RateMyD`,\n\t\tdescription: desc('albums of ass pics and clips'),\n\t\tintro:\n\t\t\t'ass, front and center: albums tagged ass by the creators who made them, girls and guys alike. covers and previews are free; the full set unlocks at the creator’s price.',\n\t\tniche: 'ass'\n\t},\n\t{\n\t\tslug: 'tits-pics',\n\t\trater: 'boobs',\n\t\ttag: 'tits',\n\t\tname: 'tits pics',\n\t\th1: 'tits pics',\n\t\ttitle: (n) => `Tits Pics — ${n} Nude Albums from Real Creators | RateMyD`,\n\t\tdescription: desc('topless and nude albums'),\n\t\tintro:\n\t\t\t'topless and nude sets, tagged tits by the creators themselves. browse the covers and the free previews, then unlock the albums you like.'\n\t},\n\t{\n\t\tslug: 'pussy-pics',\n\t\ttag: 'pussy',\n\t\tname: 'pussy pics',\n\t\th1: 'pussy pics',\n\t\ttitle: (n) => `Pussy Pics — ${n} Nude Albums from Real Creators | RateMyD`,\n\t\tdescription: desc('explicit nude albums'),\n\t\tintro:\n\t\t\t'explicit nude sets tagged pussy by the creators who made them. free previews first; one unlock opens the whole album.',\n\t\tniche: 'pussy'\n\t},\n\t{\n\t\tslug: 'cumshot-pics',\n\t\ttag: 'cumshot',\n\t\tname: 'cumshot',\n\t\th1: 'cumshot pics & clips',\n\t\ttitle: (n) => `Cumshot Pics & Clips — ${n} Albums | RateMyD`,\n\t\tdescription: desc('albums of cumshot pics and clips'),\n\t\tintro:\n\t\t\t'the finish, in photos and clips: albums tagged cumshot by their creators. look at the cover and the previews, then unlock the full set.',\n\t\tniche: 'cum'\n\t},\n\t{\n\t\tslug: 'lingerie-pics',\n\t\trater: 'nudes',\n\t\ttag: 'lingerie',\n\t\tname: 'lingerie',\n\t\th1: 'lingerie pics',\n\t\ttitle: (n) => `Lingerie Pics — ${n} Albums from Real Creators | RateMyD`,\n\t\tdescription: desc('lingerie photo and video albums'),\n\t\tintro:\n\t\t\t'lingerie, teasing and stripping down: sets tagged lingerie by the creators who shot them. free previews, one price per album.'\n\t},\n\t{\n\t\tslug: 'sex-toy-pics',\n\t\ttag: 'toys',\n\t\tname: 'sex toys',\n\t\th1: 'sex toy pics & clips',\n\t\ttitle: (n) => `Sex Toy Pics & Clips — ${n} Albums | RateMyD`,\n\t\tdescription: desc('albums with sex toys, photos and clips,'),\n\t\tintro:\n\t\t\t'albums with toys in play, in photos and clips, tagged by the creators who made them. browse the previews before you unlock.'\n\t},\n\t{\n\t\tslug: 'curvy-nudes',\n\t\trater: 'nudes',\n\t\ttag: 'curvy',\n\t\tname: 'curvy nudes',\n\t\th1: 'curvy nudes',\n\t\ttitle: (n) => `Curvy Nudes — ${n} Albums from Real Creators | RateMyD`,\n\t\tdescription: desc('curvy nude albums'),\n\t\tintro:\n\t\t\t'curves on show: nude sets tagged curvy by the creators who made them. covers and previews are free; unlock the full album at its price.'\n\t},\n\t{\n\t\tslug: 'couple-nudes',\n\t\ttag: 'couples',\n\t\tname: 'couple nudes',\n\t\th1: 'couple nudes',\n\t\ttitle: (n) => `Couple Nudes — ${n} Albums from Real Couples | RateMyD`,\n\t\tdescription: desc('albums of couples, photos and clips,'),\n\t\tintro:\n\t\t\t'couples selling their own photo sets and clips together. look at the previews, then unlock the albums you want.'\n\t},\n\t{\n\t\tslug: 'trans-nudes',\n\t\ttag: 'trans',\n\t\tname: 'trans nudes',\n\t\th1: 'trans nudes',\n\t\ttitle: (n) => `Trans Nudes — ${n} Albums from Real Creators | RateMyD`,\n\t\tdescription: desc('trans nude albums'),\n\t\tintro:\n\t\t\t'trans creators selling their own nude sets and clips, at their own price. free previews first, then unlock the full album.',\n\t\tniche: 'trans'\n\t},\n\t{\n\t\tslug: 'shaved-nudes',\n\t\ttag: 'shaved',\n\t\tname: 'shaved',\n\t\th1: 'shaved nudes',\n\t\ttitle: (n) => `Shaved Nudes — ${n} Albums from Real Creators | RateMyD`,\n\t\tdescription: desc('shaved nude albums'),\n\t\tintro:\n\t\t\t'smooth and shaved: albums tagged shaved by their creators, guys and girls. covers and previews first, then unlock what you want.'\n\t},\n\t{\n\t\tslug: 'feet-pics',\n\t\ttag: 'feet',\n\t\tname: 'feet pics',\n\t\th1: 'feet pics',\n\t\ttitle: (n) => `Feet Pics — ${n} Albums from Real Creators | RateMyD`,\n\t\tdescription: desc('albums of feet pics'),\n\t\tintro:\n\t\t\t'feet, soles and toes: sets tagged feet by the creators who sell them. free previews, one price per album.'\n\t},\n\t{\n\t\tslug: 'cosplay-nudes',\n\t\ttag: 'cosplay',\n\t\tname: 'cosplay',\n\t\th1: 'cosplay nudes',\n\t\ttitle: (n) => `Cosplay Nudes — ${n} Albums from Real Creators | RateMyD`,\n\t\tdescription: desc('cosplay nude albums'),\n\t\tintro:\n\t\t\t'costumes on, then off: cosplay sets from creators who shot and priced them themselves. look at the previews before you unlock.'\n\t},\n\t{\n\t\tslug: 'nude-videos',\n\t\ttag: 'video',\n\t\tmedia: 'videos',\n\t\tname: 'nude videos',\n\t\th1: 'nude videos',\n\t\ttitle: (n) => `Nude Videos — ${n} Clip Albums from Real Creators | RateMyD`,\n\t\tdescription: desc('albums of nude video clips'),\n\t\tintro:\n\t\t\t'every album with video clips in it, from the creators who filmed and priced them. a free preview shows the vibe; unlock to watch the whole set.'\n\t},\n\t{\n\t\tslug: 'blowjob-pics',\n\t\ttag: 'blowjob',\n\t\tname: 'blowjob',\n\t\th1: 'blowjob pics & clips',\n\t\ttitle: (n) => `Blowjob Pics & Clips — ${n} Albums | RateMyD`,\n\t\tdescription: desc('albums of blowjob pics and clips'),\n\t\tintro:\n\t\t\t'oral, in photos and clips: albums tagged blowjob by the creators who made them. previews first, then unlock.'\n\t},\n\t{\n\t\tslug: 'anal-pics',\n\t\ttag: 'anal',\n\t\tname: 'anal',\n\t\th1: 'anal pics & clips',\n\t\ttitle: (n) => `Anal Pics & Clips — ${n} Albums | RateMyD`,\n\t\tdescription: desc('albums of anal pics and clips'),\n\t\tintro:\n\t\t\t'albums tagged anal by their creators, in photos and clips. free previews, one price per album.'\n\t},\n\t{\n\t\tslug: 'tattooed-nudes',\n\t\trater: 'nudes',\n\t\ttag: 'tattoos',\n\t\tname: 'tattooed',\n\t\th1: 'tattooed nudes',\n\t\ttitle: (n) => `Tattooed Nudes — ${n} Albums from Real Creators | RateMyD`,\n\t\tdescription: desc('tattooed nude albums'),\n\t\tintro:\n\t\t\t'inked and nude: sets from creators who tagged their album tattoos. covers and previews are free to look at.'\n\t},\n\t{\n\t\tslug: 'outdoor-nudes',\n\t\trater: 'nudes',\n\t\ttag: 'outdoor',\n\t\tname: 'outdoor',\n\t\th1: 'outdoor nudes',\n\t\ttitle: (n) => `Outdoor Nudes — ${n} Albums from Real Creators | RateMyD`,\n\t\tdescription: desc('outdoor nude albums'),\n\t\tintro:\n\t\t\t'shot outside: nude sets tagged outdoor by the creators who took them. free previews, then unlock the full album.'\n\t},\n\t{\n\t\tslug: 'kinky-pics',\n\t\ttag: 'kinky',\n\t\tname: 'kinky',\n\t\th1: 'kinky pics',\n\t\ttitle: (n) => `Kinky Pics — ${n} Albums from Real Creators | RateMyD`,\n\t\tdescription: desc('kinky photo and video albums'),\n\t\tintro:\n\t\t\t'kink, fetish and everything a little further: albums tagged kinky by the creators who made them. previews first.'\n\t},\n\t{\n\t\tslug: 'soft-dick-pics',\n\t\ttag: 'soft',\n\t\tname: 'soft dick',\n\t\th1: 'soft dick pics',\n\t\ttitle: (n) => `Soft Dick Pics — ${n} Albums of Flaccid Cocks | RateMyD`,\n\t\tdescription: desc('albums of soft, flaccid dicks'),\n\t\tintro:\n\t\t\t'soft, flaccid and unhurried: albums tagged soft by the guys who made them. covers and previews first, then unlock.',\n\t\tniche: 'soft'\n\t},\n\t{\n\t\t// 182 albums on 2026-10-22, at most 11 of its top 36 on any other hub\n\t\tslug: 'close-up-pics',\n\t\ttag: 'closeup',\n\t\tname: 'close-up',\n\t\th1: 'close-up pics',\n\t\ttitle: (n) => `Close-Up Pics — ${n} Albums of Close-Up Nudes | RateMyD`,\n\t\tdescription: (n) =>\n\t\t\t`${n} close-up nude albums from real creators: dicks and pussies shot up close. Free previews, one price per album, unlock the full set. 18+.`,\n\t\tintro:\n\t\t\t'up close and in detail: albums tagged close-up by the creators who shot them, guys and girls both. free previews, one price per album.'\n\t}\n];\n\n/** A hub with fewer albums than this is too thin to ask search to index. */\nexport const ALBUM_HUB_MIN_ALBUMS = 8;\n\n/** Hubs by album count on 2026-10-22, biggest first; nude-videos placed by\n *  its count once it listed every album with a clip (317, 2026-10-25). */\nconst SIZE_ORDER = [\n\t'dick-pics',\n\t'hard-dick',\n\t'nude-videos',\n\t'uncut-cock',\n\t'hairy-dick',\n\t'close-up-pics',\n\t'amateur-nudes',\n\t'ass-pics',\n\t'big-dick',\n\t'thick-cock',\n\t'cumshot-pics',\n\t'tits-pics',\n\t'lingerie-pics',\n\t'sex-toy-pics',\n\t'pussy-pics',\n\t'curvy-nudes',\n\t'bbc',\n\t'couple-nudes',\n\t'shaved-nudes',\n\t'soft-dick-pics',\n\t'blowjob-pics',\n\t'trans-nudes',\n\t'anal-pics',\n\t'tattooed-nudes',\n\t'feet-pics',\n\t'cosplay-nudes',\n\t'outdoor-nudes',\n\t'kinky-pics'\n];\n\n/** The hubs biggest first, for chip rows that show only the first few. */\nexport const ALBUM_HUBS_BY_SIZE: AlbumHub[] = [...ALBUM_HUBS].sort((a, b) => {\n\tconst rank = (h: AlbumHub) => {\n\t\tconst i = SIZE_ORDER.indexOf(h.slug);\n\t\treturn i === -1 ? SIZE_ORDER.length : i;\n\t};\n\treturn rank(a) - rank(b);\n});\n\nexport function albumHubBySlug(slug: string): AlbumHub | undefined {\n\treturn ALBUM_HUBS.find((h) => h.slug === slug);\n}\n\n/** The hub that sells what a /n/ community posts about, if there is one. */\nexport function albumHubForNiche(nicheSlug: string): AlbumHub | undefined {\n\treturn ALBUM_HUBS.find((h) => h.niche === nicheSlug);\n}\n\nexport const albumHubPath = (hub: AlbumHub) => `/albums/${hub.slug}`;\n"],"version":3}