{"release_id":"01a1c502-4ad1-0000-ec62-adc54d3c69aa","chunk_id":"01a1c502-4cab-7c72-9769-196c82946337","file":"150.BxlNxRVM.mjs","mappings":"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","names":["RATE_DIMENSIONS","msg","RATE_BANDS","RATE_TIPS","RATE_FAQ","rateJsonLd","jsonLdScript","SITE_URL","seoByPath","f","t","RATED_COUNT_LABEL","AVERAGE_SCORE_LABEL","breadcrumbList","$.head","$$anchor","RateUploader","RateSubjectSwitch","span","$.first_child","fragment_3","span_1","$.sibling","text_1","section","root_5","div","h2","dl","div_1","dt","dd","div_2","dt_1","dd_1","div_3","dt_2","dd_2","h2_1","dl_1","d","div_4","root_6","dt_3","dd_3","$.get","p","h2_2","p_1","dl_2","b","div_5","root_7","dt_4","dd_4","a","h2_3","ol","$.each","tip","i","li","root_8","span_2","span_3","h2_4","p_2","a_1","h2_5","p_3","h2_6","p_4","h2_7","div_6","details","root_9","summary","p_5","p_6","a_2","text_33","PRO_MONTHLY_LABEL"],"sources":["../../../../../../src/routes/rate/+page.svelte"],"sourcesContent":["<script lang=\"ts\">\n\timport { t } from '$lib/i18n';\n\timport RateUploader from '$lib/components/rate/RateUploader.svelte';\n\timport RateSubjectSwitch from '$lib/components/rate/RateSubjectSwitch.svelte';\n\timport { PRO_MONTHLY_LABEL } from '$lib/pricing';\n\timport { msg } from '$lib/i18n/mark';\n\timport { AVERAGE_SCORE_LABEL, RATED_COUNT_LABEL } from '$lib/proof';\n\timport { SITE_URL, breadcrumbList, jsonLdScript, seoByPath } from '$lib/seo';\n\n\t// Below the fold (RAT-592). The scale in each line is the one the rater's\n\t// prompt uses (lib/server/ai/prompts.ts); keep the two in step.\n\tconst RATE_DIMENSIONS = [\n\t\t{\n\t\t\tname: msg('proportions'),\n\t\t\ttext: msg(\n\t\t\t\t'size and shape, judged for true size: the AI corrects for camera distance and zoom using your hand and what’s around it, so a close-up buys nothing.'\n\t\t\t)\n\t\t},\n\t\t{ name: msg('aesthetics'), text: msg('shape, symmetry and how good it looks overall.') },\n\t\t{\n\t\t\tname: msg('grooming'),\n\t\t\ttext: msg(\n\t\t\t\t'how tidy it is around the base. when the frame doesn’t show it, you get a neutral 7 instead of a guess.'\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tname: msg('photo quality'),\n\t\t\ttext: msg('sharpness and framing. most phone pics land at 6–7; blurry and grainy ones at 4–5.')\n\t\t},\n\t\t{\n\t\t\tname: msg('lighting'),\n\t\t\ttext: msg('harsh overhead light scores 4–5, a lamp 6–7, good daylight 8–9.')\n\t\t},\n\t\t{\n\t\t\tname: msg('overall vibe'),\n\t\t\ttext: msg('confidence and intent: a rushed, awkward shot scores lower than one taken on purpose.')\n\t\t}\n\t];\n\n\t// RAT-599: the overall score, read off /stats/ai-ratings (93,681 ratings on\n\t// 2026-10-16: 5% under 4, 61% 4–6, 29% 6–8, 5% 8 and up).\n\tconst RATE_BANDS = [\n\t\t{\n\t\t\trange: msg('under 4'),\n\t\t\ttext: msg('about 1 in 20. almost always the photo: too dark, blurry or cropped to judge.')\n\t\t},\n\t\t{\n\t\t\trange: msg('4 to 6'),\n\t\t\ttext: msg('where most land, about 6 in 10. lighting and photo quality pull most of these down.')\n\t\t},\n\t\t{\n\t\t\trange: msg('6 to 8'),\n\t\t\ttext: msg('about 3 in 10. a good-looking dick in a decent photo.')\n\t\t},\n\t\t{\n\t\t\trange: msg('8 and up'),\n\t\t\ttext: msg('about 1 in 20. strong on all six, the photo included.')\n\t\t}\n\t];\n\n\tconst RATE_TIPS = [\n\t\tmsg('light it from a window or a lamp to the side: harsh overhead light scores 4–5 on lighting, good daylight 8–9.'),\n\t\tmsg('hold the phone steady and tap to focus. sharp beats close: the AI corrects for zoom, so a close-up adds nothing.'),\n\t\tmsg('keep your hand or something familiar in the frame. that’s how the AI judges true size.'),\n\t\tmsg('use a plain background and one subject, framed on purpose. clutter costs points on photo quality and vibe.'),\n\t\tmsg('take a few and send the best one. your result shows the potential score a better photo would get.')\n\t];\n\n\tconst RATE_FAQ = [\n\t\t{\n\t\t\tq: msg('is it an AI cock rater, a penis analyzer or a dick rater?'),\n\t\t\ta: msg(\n\t\t\t\t'all three. dick, cock or penis, it’s the same AI and the same six scores. whether you searched for an AI cock rater, an AI penis rater or a penis analyzer, this is that tool, and the first rating is free.'\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tq: msg('who sees my dick pic?'),\n\t\t\ta: msg(\n\t\t\t\t'no person. the AI scores it and the photo is deleted the second the score is done, unless you choose to save it for next time.'\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tq: msg('how accurate is an AI penis rating?'),\n\t\t\ta: msg(\n\t\t\t\t'it’s consistent: every photo is scored on the same criteria, with no mood and no bias. it rates the photo you send, so light and angle matter, and size is judged against your hand and surroundings, not how close the camera was. it’s for fun, not a medical measurement.'\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tq: msg('how do I upload a dick pic from my phone?'),\n\t\t\ta: msg(\n\t\t\t\t'tap the box at the top and pick a photo, or take one. JPEG, PNG and iPhone HEIC photos all work; a HEIC is converted on your phone before it’s sent.'\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tq: msg('roast or hype: which should I pick?'),\n\t\t\ta: msg(\n\t\t\t\t'the same six things get scored either way. roast mode is brutally honest about it; hype mode is the kind version and a little more generous. you pick after you upload.'\n\t\t\t)\n\t\t},\n\t\t{\n\t\t\tq: msg('what’s a good AI dick rating?'),\n\t\t\ta: msg(\n\t\t\t\t'the average across {count} ratings is {avg} out of 10. most points are lost on lighting and photo quality, so a better photo is the fastest way up.'\n\t\t\t)\n\t\t}\n\t];\n\n\t// RAT-623: the AI searches split between this page and the homepage. The\n\t// page says to search engines what it already says to people: it is the AI\n\t// dick rater (and the AI cock rater, the penis analyzer…), with its own\n\t// questions, one step below the homepage. Nothing on screen changes.\n\tconst rateJsonLd = $derived(\n\t\tjsonLdScript({\n\t\t\t'@context': 'https://schema.org',\n\t\t\t'@type': 'WebApplication',\n\t\t\tname: 'AI Dick Rater',\n\t\t\talternateName: ['AI cock rater', 'AI penis rater', 'penis analyzer', 'dick pic rating'],\n\t\t\turl: `${SITE_URL}/rate`,\n\t\t\tdescription: seoByPath['/rate'].description,\n\t\t\tapplicationCategory: 'EntertainmentApplication',\n\t\t\toperatingSystem: 'Any',\n\t\t\toffers: { '@type': 'Offer', price: '0', priceCurrency: 'USD', description: 'The first rating is free.' }\n\t\t}) +\n\t\t\tjsonLdScript({\n\t\t\t\t'@context': 'https://schema.org',\n\t\t\t\t'@type': 'FAQPage',\n\t\t\t\tmainEntity: RATE_FAQ.map((f) => ({\n\t\t\t\t\t'@type': 'Question',\n\t\t\t\t\tname: t(f.q),\n\t\t\t\t\tacceptedAnswer: {\n\t\t\t\t\t\t'@type': 'Answer',\n\t\t\t\t\t\ttext: t(f.a, { count: RATED_COUNT_LABEL, avg: AVERAGE_SCORE_LABEL })\n\t\t\t\t\t}\n\t\t\t\t}))\n\t\t\t}) +\n\t\t\tjsonLdScript(\n\t\t\t\tbreadcrumbList([\n\t\t\t\t\t{ name: 'RateMyD', url: SITE_URL },\n\t\t\t\t\t{ name: 'AI dick rater', url: `${SITE_URL}/rate` }\n\t\t\t\t])\n\t\t\t)\n\t);\n\n\n\tlet { data } = $props();\n</script>\n\n\n<svelte:head>\n\t{@html rateJsonLd}\n</svelte:head>\n\n<RateUploader {data}>\n\t{#snippet top()}\n\t\t<!-- Epic R: one AI rater per subject, each on its own page -->\n\t\t<RateSubjectSwitch active=\"dick\" />\n\t{/snippet}\n\t{#snippet heading()}\n\t\t<!-- RAT-598: the eyebrow is the H1's searchable part: \"AI dick rater\"\n\t\t\t and \"dick pic rating\" are this page's keywords. -->\n\t\t<span class=\"mb-4 block font-display text-[11px] leading-normal font-bold tracking-[0.28em] text-muted uppercase\"\n\t\t\t>{t('AI dick rater · dick pic rating')}</span\n\t\t>\n\t\t{t('drop your')}<br />\n\t\t<span class=\"text-coral\">{t('masterpiece.')}</span>\n\t{/snippet}\n\t{#snippet intro()}\n\t\t{t(\"AI dick pic rating across 6 dimensions. JPEG or PNG. nuked from our servers the second we're done. zero storage, ever.\")}\n\t{/snippet}\n\n<!-- Below the fold, so the dropzone still opens the page: what the AI dick\n\t rater is, for the people who search for one by that name (RAT-552). -->\n<section aria-labelledby=\"ai-rater\" class=\"border-t border-border px-5 pt-14 pb-[calc(100px+env(safe-area-inset-bottom))] md:px-0 md:pt-20 md:pb-24\">\n\t<div class=\"mx-auto max-w-5xl\">\n\t\t<h2 id=\"ai-rater\" class=\"font-display text-3xl font-bold tracking-tighter md:text-5xl\">\n\t\t\t{t('how the AI dick rater works.')}\n\t\t</h2>\n\t\t<dl class=\"mt-8 grid gap-8 md:mt-10 md:grid-cols-3 md:gap-10\">\n\t\t\t<div>\n\t\t\t\t<dt class=\"font-display text-xs font-bold tracking-[0.16em] text-muted uppercase\">{t('what it scores')}</dt>\n\t\t\t\t<dd class=\"mt-2 text-sm leading-relaxed text-text/85 md:text-base\">\n\t\t\t\t\t{t('six things, each from 0 to 10: proportions, aesthetics, grooming, photo quality, lighting and overall vibe, weighted into one honest score. dick, cock or penis: same AI, same scale.')}\n\t\t\t\t</dd>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<dt class=\"font-display text-xs font-bold tracking-[0.16em] text-muted uppercase\">{t('how long')}</dt>\n\t\t\t\t<dd class=\"mt-2 text-sm leading-relaxed text-text/85 md:text-base\">\n\t\t\t\t\t{t('about 10 seconds. after you upload, pick roast mode for brutal honesty or hype mode for the kind version.')}\n\t\t\t\t</dd>\n\t\t\t</div>\n\t\t\t<div>\n\t\t\t\t<dt class=\"font-display text-xs font-bold tracking-[0.16em] text-muted uppercase\">{t('is it free')}</dt>\n\t\t\t\t<dd class=\"mt-2 text-sm leading-relaxed text-text/85 md:text-base\">\n\t\t\t\t\t{t('the first rating is free, no card. after that a rating is 10 tokens, or unlimited with Pro for {price}/mo. unless you choose to keep it, the photo is deleted the second the score is done.', { price: PRO_MONTHLY_LABEL })}\n\t\t\t\t</dd>\n\t\t\t</div>\n\t\t</dl>\n\n\t\t<!-- RAT-592: the AI searches (\"ai dick rater\", \"penis analyzer\", \"ai cock\n\t\t\t rater\"…) split between this page and the homepage at ~11. This is the\n\t\t\t tool they ask for, so it carries the answers: what each score means,\n\t\t\t what a result holds, and the questions asked before uploading. -->\n\t\t<h2 class=\"mt-16 font-display text-2xl font-bold tracking-tighter md:mt-20 md:text-4xl\">\n\t\t\t{t('the six scores, explained.')}\n\t\t</h2>\n\t\t<dl class=\"mt-6 grid gap-x-10 gap-y-6 md:mt-8 md:grid-cols-2\">\n\t\t\t{#each RATE_DIMENSIONS as d (d.name)}\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"font-display text-sm font-bold tracking-tight\">{t(d.name)}</dt>\n\t\t\t\t\t<dd class=\"mt-1 text-sm leading-relaxed text-text/80\">{t(d.text)}</dd>\n\t\t\t\t</div>\n\t\t\t{/each}\n\t\t</dl>\n\t\t<p class=\"mt-8 max-w-3xl text-sm leading-relaxed text-text/85 md:text-base\">\n\t\t\t{t('a rating also shows your potential, the score the same dick would get from a better photo, and tips that say what each fix is worth, like +0.8 to photo quality. the free rating shows your score and the first two dimensions; premium unlocks the full breakdown and the tips.')}\n\t\t</p>\n\n\t\t<!-- RAT-599: the pages ranking for \"dick pic rating\" and \"ai dick rating\"\n\t\t\t run ~1,000–1,400 words; these answer what people ask about a score. -->\n\t\t<h2 class=\"mt-16 font-display text-2xl font-bold tracking-tighter md:mt-20 md:text-4xl\">\n\t\t\t{t('what your AI dick rating means.')}\n\t\t</h2>\n\t\t<p class=\"mt-6 max-w-3xl text-sm leading-relaxed text-text/85 md:mt-8 md:text-base\">\n\t\t\t{t('the overall score is the six scores weighted into one number. across {count} ratings it averages {avg} out of 10, and it spreads like this:', { count: RATED_COUNT_LABEL, avg: AVERAGE_SCORE_LABEL })}\n\t\t</p>\n\t\t<dl class=\"mt-6 grid gap-x-10 gap-y-6 md:grid-cols-2\">\n\t\t\t{#each RATE_BANDS as b (b.range)}\n\t\t\t\t<div>\n\t\t\t\t\t<dt class=\"font-display text-sm font-bold tracking-tight\">{t(b.range)}</dt>\n\t\t\t\t\t<dd class=\"mt-1 text-sm leading-relaxed text-text/80\">{t(b.text)}</dd>\n\t\t\t\t</div>\n\t\t\t{/each}\n\t\t</dl>\n\t\t<a href=\"/stats/ai-ratings\" class=\"mt-6 inline-block text-sm font-semibold text-text no-underline hover:text-coral\"\n\t\t\t>{t('the full distribution and every dimension’s average →')}</a\n\t\t>\n\n\t\t<h2 class=\"mt-16 font-display text-2xl font-bold tracking-tighter md:mt-20 md:text-4xl\">\n\t\t\t{t('how to get a better dick pic rating.')}\n\t\t</h2>\n\t\t<ol class=\"mt-6 max-w-3xl space-y-3 text-sm leading-relaxed text-text/85 md:mt-8 md:text-base\">\n\t\t\t{#each RATE_TIPS as tip, i (tip)}\n\t\t\t\t<li class=\"flex gap-4\">\n\t\t\t\t\t<span class=\"font-display font-bold text-coral tabular-nums\">{String(i + 1).padStart(2, '0')}</span>\n\t\t\t\t\t<span>{t(tip)}</span>\n\t\t\t\t</li>\n\t\t\t{/each}\n\t\t</ol>\n\n\t\t<!-- RAT-623: the searches for an AI dick rater compare raters; this one\n\t\t\t says what sets it apart and hands the full comparison on. -->\n\t\t<h2 class=\"mt-16 font-display text-2xl font-bold tracking-tighter md:mt-20 md:text-4xl\">\n\t\t\t{t('AI dick raters, compared.')}\n\t\t</h2>\n\t\t<p class=\"mt-6 max-w-3xl text-sm leading-relaxed text-text/85 md:mt-8 md:text-base\">\n\t\t\t{t('AI dick raters and penis analyzers all take one photo and give back a score, but they differ in what they score, what it costs and what happens to your photo. this one scores six things with a roast or a hype verdict, the first rating is free, and the photo is deleted once it’s scored.')}\n\t\t</p>\n\t\t<a href=\"/dick-rating-sites\" class=\"mt-4 inline-block text-sm font-semibold text-text no-underline hover:text-coral\"\n\t\t\t>{t('every dick rating site side by side, AI and real raters →')}</a\n\t\t>\n\n\t\t<h2 class=\"mt-16 font-display text-2xl font-bold tracking-tighter md:mt-20 md:text-4xl\">\n\t\t\t{t('the AI or a real rater?')}\n\t\t</h2>\n\t\t<p class=\"mt-6 max-w-3xl text-sm leading-relaxed text-text/85 md:mt-8 md:text-base\">\n\t\t\t{t('the AI is instant, private and consistent: the same six scores for everyone, in about 10 seconds, and no person ever sees the photo. a real rater is a person who answers in their own words, honest, SPH or praise, in a private chat or live, at a price they set. plenty of people do both: the AI score first, then a person for a second opinion.')}\n\t\t</p>\n\n\t\t<h2 class=\"mt-16 font-display text-2xl font-bold tracking-tighter md:mt-20 md:text-4xl\">\n\t\t\t{t('what happens to your photo.')}\n\t\t</h2>\n\t\t<p class=\"mt-6 max-w-3xl text-sm leading-relaxed text-text/85 md:mt-8 md:text-base\">\n\t\t\t{t('it goes over an encrypted connection to the AI, gets scored, and is deleted from our servers the moment the score is done, whether the rating worked or not. the AI provider doesn’t keep it or train on it. nothing stays unless you tick save photo for later, which keeps it on your account to reuse.')}\n\t\t</p>\n\n\t\t<h2 class=\"mt-16 font-display text-2xl font-bold tracking-tighter md:mt-20 md:text-4xl\">\n\t\t\t{t('AI dick rater: questions.')}\n\t\t</h2>\n\t\t<div class=\"mt-6 divide-y divide-border border-y border-border md:mt-8\">\n\t\t\t{#each RATE_FAQ as f (f.q)}\n\t\t\t\t<details class=\"group py-4\">\n\t\t\t\t\t<summary class=\"flex cursor-pointer list-none items-center justify-between gap-4 font-display text-base font-bold tracking-tight md:text-lg\">\n\t\t\t\t\t\t{t(f.q)}\n\t\t\t\t\t\t<span class=\"shrink-0 text-muted transition-transform group-open:rotate-45\" aria-hidden=\"true\">+</span>\n\t\t\t\t\t</summary>\n\t\t\t\t\t<p class=\"mt-2 max-w-3xl text-sm leading-relaxed text-text/80 md:text-base\">\n\t\t\t\t\t\t{t(f.a, { count: RATED_COUNT_LABEL, avg: AVERAGE_SCORE_LABEL })}\n\t\t\t\t\t</p>\n\t\t\t\t</details>\n\t\t\t{/each}\n\t\t</div>\n\n\t\t<p class=\"mt-10 text-sm text-muted\">\n\t\t\t{t('rather have a person judge it?')}\n\t\t\t<a href=\"/r\" class=\"font-semibold text-text no-underline hover:text-coral\">{t('dick rating by real raters →')}</a>\n\t\t</p>\n\t</div>\n</section>\n</RateUploader>\n"],"version":3}