randchar: a fun start
This commit is contained in:
parent
4d6fad59c9
commit
ccceccbb25
4 changed files with 262 additions and 3 deletions
|
@ -431,7 +431,6 @@ export const string_split_once = (
|
|||
return [str.slice(0, idx), str.slice(idx + on.length)];
|
||||
};
|
||||
|
||||
// TODO: not stringly-typed style
|
||||
export const HomestuckSpan = ({
|
||||
children,
|
||||
color,
|
||||
|
|
259
html/random-character.tsx
Normal file
259
html/random-character.tsx
Normal file
|
@ -0,0 +1,259 @@
|
|||
import { JSX } from "preact/jsx-runtime";
|
||||
import { render_and_copy } from "./common.tsx";
|
||||
|
||||
// let's do 100 first and last names OKAY
|
||||
//
|
||||
// cat ~/Documents/dictionary.txt | grep -e '^.\{6,7\}$' | shuf | head -n 100
|
||||
// okay let's be a bit more selective yikes
|
||||
// cat ~/Documents/dictionary.txt | grep -E '^....$' | shuf | head -n 100 | awk 'BEGIN {print("[")} {print(" \"" $1 "\",")} END {print("]")}' | xsel -ib
|
||||
// cat ~/Documents/dictionary.txt | grep -E '^[^n][^i][^g]....?$' | shuf | head -n 100 | awk 'BEGIN {print("[")} {print(" \"" $1 "\",")} END {print("]")}' | xsel -ib
|
||||
// that is a COMPREHENSIVE dictionary D:
|
||||
|
||||
const FIRST_NAMES = [
|
||||
"tree",
|
||||
"saka",
|
||||
"pass",
|
||||
"kexy",
|
||||
"pici",
|
||||
"kurd",
|
||||
"xxii",
|
||||
"lide",
|
||||
"huke",
|
||||
"palm",
|
||||
"levi",
|
||||
"dago",
|
||||
"they",
|
||||
"smut",
|
||||
"filt",
|
||||
"cump",
|
||||
"upgo",
|
||||
"zoid",
|
||||
"army",
|
||||
"anta",
|
||||
"arbs",
|
||||
"ferv",
|
||||
"stan",
|
||||
"wabe",
|
||||
"jami",
|
||||
"purs",
|
||||
"deys",
|
||||
"vamp",
|
||||
"mese",
|
||||
"migs",
|
||||
"pile",
|
||||
"susu",
|
||||
"olio",
|
||||
"ipse",
|
||||
"gelt",
|
||||
"idem",
|
||||
"eden",
|
||||
"pont",
|
||||
"vica",
|
||||
"corv",
|
||||
"kell",
|
||||
"elul",
|
||||
"ecod",
|
||||
"maid",
|
||||
"kays",
|
||||
"fine",
|
||||
"taws",
|
||||
"coul",
|
||||
"shag",
|
||||
"aren",
|
||||
"ruse",
|
||||
"anre",
|
||||
"spex",
|
||||
"perp",
|
||||
"koff",
|
||||
"west",
|
||||
"sild",
|
||||
"vina",
|
||||
"itch",
|
||||
"neal",
|
||||
"jhow",
|
||||
"cozy",
|
||||
"moun",
|
||||
"copy",
|
||||
"fict",
|
||||
"gulp",
|
||||
"slon",
|
||||
"tuny",
|
||||
"tolt",
|
||||
"erns",
|
||||
"eyas",
|
||||
"thro",
|
||||
"reno",
|
||||
"warm",
|
||||
"lone",
|
||||
"erst",
|
||||
"koel",
|
||||
"vila",
|
||||
"rump",
|
||||
"kmet",
|
||||
"drow",
|
||||
"polt",
|
||||
"orts",
|
||||
"hlqn",
|
||||
"adib",
|
||||
"dabb",
|
||||
"dhak",
|
||||
"tyke",
|
||||
"arni",
|
||||
"bagh",
|
||||
"holt",
|
||||
"wart",
|
||||
"bull",
|
||||
"mayo",
|
||||
"tiam",
|
||||
"dose",
|
||||
"dogs",
|
||||
"dine",
|
||||
"wych",
|
||||
"poet",
|
||||
"meh",
|
||||
].map(name => name[0].toUpperCase() + name.slice(1));
|
||||
|
||||
const LAST_NAMES = [
|
||||
"paragon",
|
||||
"phossy",
|
||||
"burghal",
|
||||
"templum",
|
||||
"osteome",
|
||||
"deicide",
|
||||
"lockrum",
|
||||
"inhale",
|
||||
"celoms",
|
||||
"outsit",
|
||||
"plaints",
|
||||
"stubby",
|
||||
"flabrum",
|
||||
"elcaja",
|
||||
"thrang",
|
||||
"caretta",
|
||||
"retune",
|
||||
"unplace",
|
||||
"adlumin",
|
||||
"garcon",
|
||||
"brainy",
|
||||
"slyest",
|
||||
"tsktsks",
|
||||
"bodock",
|
||||
"crummer",
|
||||
"actions",
|
||||
"wrapped",
|
||||
"emeril",
|
||||
"traneen",
|
||||
"wrought",
|
||||
"detinue",
|
||||
"ascarid",
|
||||
"swimbel",
|
||||
"leaped",
|
||||
"ericoid",
|
||||
"solano",
|
||||
"barware",
|
||||
"infarce",
|
||||
"bullets",
|
||||
"frankly",
|
||||
"euboean",
|
||||
"jymold",
|
||||
"besugo",
|
||||
"smaragd",
|
||||
"suiting",
|
||||
"muconic",
|
||||
"goujay",
|
||||
"caynard",
|
||||
"pupped",
|
||||
"verdict",
|
||||
"brangle",
|
||||
"potions",
|
||||
"touart",
|
||||
"fraena",
|
||||
"peising",
|
||||
"replial",
|
||||
"unbaste",
|
||||
"sandbug",
|
||||
"roosed",
|
||||
"refind",
|
||||
"illipe",
|
||||
"runner",
|
||||
"implate",
|
||||
"atoxyl",
|
||||
"favous",
|
||||
"opcode",
|
||||
"fuegian",
|
||||
"cadging",
|
||||
"soapbox",
|
||||
"fessed",
|
||||
"deworm",
|
||||
"browzer",
|
||||
"uncurl",
|
||||
"toelike",
|
||||
"posnet",
|
||||
"mortem",
|
||||
"whippa",
|
||||
"invests",
|
||||
"aphagia",
|
||||
"attent",
|
||||
"esopgi",
|
||||
"resorb",
|
||||
"succula",
|
||||
"levulic",
|
||||
"enlace",
|
||||
"busbars",
|
||||
"rocket",
|
||||
"sexuous",
|
||||
"provers",
|
||||
"condole",
|
||||
"caveman",
|
||||
"cattily",
|
||||
"buddie",
|
||||
"trikaya",
|
||||
"ladlers",
|
||||
"gorbet",
|
||||
"tarkani",
|
||||
"acquit",
|
||||
"shohjis",
|
||||
"shilloo",
|
||||
"bark",
|
||||
].map(name => name[0].toUpperCase() + name.slice(1));
|
||||
|
||||
// has some defaults
|
||||
export const Prngnoun = ({
|
||||
prns,
|
||||
style = {},
|
||||
}: {
|
||||
prns: string[];
|
||||
style?: JSX.CSSProperties;
|
||||
}) => (
|
||||
<img
|
||||
src={`https://pyrope.net/prngnouns?p=${prns.join("&p=")}`}
|
||||
style={{
|
||||
display: "inline",
|
||||
height: "0.9rem",
|
||||
...style,
|
||||
}}
|
||||
/>
|
||||
);
|
||||
|
||||
// what is gained from having this on cohost... hm
|
||||
// export const InlineRandImage
|
||||
// because the randomly generated parts are so nicely integrated (if you have courier)
|
||||
// i'm thinking i'll frame it like "your guy is ..." instead of "you are ..."
|
||||
// idk
|
||||
|
||||
render_and_copy(
|
||||
<p
|
||||
style={{
|
||||
lineHeight: "1rem",
|
||||
fontFamily: "courier-std, courier, monospace",
|
||||
fontWeight: "bold",
|
||||
}}
|
||||
>
|
||||
Your name is <Prngnoun prns={FIRST_NAMES} />{" "}
|
||||
<Prngnoun prns={LAST_NAMES} />. You are{" "}
|
||||
<Prngnoun
|
||||
prns={Array.from({ length: 200 }).map((_, i) => i.toString())}
|
||||
/>{" "}
|
||||
years old. Cool!
|
||||
</p>
|
||||
);
|
|
@ -62,7 +62,7 @@ async function get_pronoun_image(prn: string): Promise<Uint8Array> {
|
|||
const MAX_PRN_LENGTH = 32;
|
||||
const MAX_PRN_CACHE = 64;
|
||||
// shouldn't really be a problem
|
||||
const MAX_PRN_CHOICES = 128;
|
||||
const MAX_PRN_CHOICES = 256;
|
||||
|
||||
function clean_up() {
|
||||
if (images.size <= MAX_PRN_CACHE) {
|
||||
|
|
|
@ -153,7 +153,8 @@ const secret_messages = [
|
|||
"it would be cool if floppies were actually reliable",
|
||||
"epic win! this message has a 1% chance of appearing! share with your friends",
|
||||
"you should try curling terezi.pyrope.net",
|
||||
"caltrop.dev has a ton of cool stuff; the caltrop.dev/meta/map helps",
|
||||
"Stubborn tiny lights vs. clustering darkness forever ok?",
|
||||
// "caltrop.dev has a ton of cool stuff; the caltrop.dev/meta/map helps",
|
||||
"i used a typescript type error to track my progress to one hundred messages",
|
||||
"haskell...",
|
||||
"lean4...",
|
||||
|
|
Loading…
Reference in a new issue