Pronouns labels on Bluesky

merge PRONOUNS and URIs

Changed files
+225 -174
src
+220 -167
src/constants.ts
···
import "dotenv/config";
-
export const PRONOUNS: Record<string, string> = {
-
"she/her": "she",
-
"he/him": "he",
-
"they/them": "they",
-
"it/its": "it",
-
"any/all": "any",
-
ask: "ask",
-
avoid: "avoid",
-
"look at bio": "bio",
-
"fae/faer": "fae",
-
"bun/buns": "bun",
-
"xe/xir": "xe",
-
"drae/draer": "drae",
-
"e/em/eir": "e",
-
"sier/siehn/siere": "sier",
-
"ey/em/eir": "ey",
-
"shey/sheir/sher": "shey",
-
"voi/void": "voi",
-
"mew/mews": "mew",
-
"paw/paws": "paw",
-
"kit/kits": "kit",
-
"zie/zir": "zie",
-
"ae/aer": "ae",
-
"prince/princes/princeself": "prince",
-
"ze/hir": "ze",
-
"dey/deren": "dey",
-
none: "none",
-
"e/em/er": "e-em-er",
-
"xier/xies": "xier",
-
"sier/sies": "sier-sies",
-
"ens/ens": "ens",
-
"squee/squir": "squee",
-
"vi/vix": "vi",
-
"ne/nem/nir": "ne-nem-nir",
-
"ze/zim": "ze-zim",
-
"pup/pups/pupself": "pup-pups-pupself",
-
"zi/zir": "zi-zir",
-
"he/haw": "he-haw",
-
"hee/haw": "hee-haw",
-
"zhi/zhr": "zhi-zhr",
-
"ve/ver": "ve-ver",
-
"sí/hir": "si-hir",
-
"she/we": "she-we",
-
"he/we": "he-we",
-
"they/we": "they-we",
-
"xe/xem": "xe-xem",
-
"sun/suns": "sun-suns",
-
"leaf/leafs": "leaf-leafs",
-
"shiv/ver": "shiv-ver",
-
"drüsshe/drayr": "drusshe-drayr",
-
"frog/frogs": "frog-frogs",
-
"rat/rats": "rat-rats",
-
"shark/sharks": "shark-sharks",
-
"name/proper nouns": "proper-nouns",
-
};
-
-
export const URIs: Record<string, string> = {
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwsqucto3j2a":
-
"Like this post to delete your labels",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwss4ldkwd2j":
-
"they/them",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwss4fmiow2n":
-
"it/its",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwss4bzqlw2k":
-
"he/him",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwss45mxrh2j":
-
"she/her",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwst2tn2342f":
-
"look at bio",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwsslg3gqk2t":
-
"avoid",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwssldhzme27":
-
"ask",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwss4vc4cw2x":
-
"any/all",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwu55hxj4b2a":
-
"fae/faer",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwu5d6rq352v":
-
"bun/buns",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwu5s4lt6f2k":
-
"xe/xir",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwu5sjyg4m2f":
-
"drae/draer",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwu5stootb2q":
-
"e/em/eir",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwu5taglmr2q":
-
"sier/siehn/siere",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwu6b3cnd52k":
-
"ey/em/eir",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwu7n26cgm2m":
-
"shey/sheir/sher",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwue4lqwjb2q":
-
"voi/void",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwueewr2p22j":
-
"mew/mews",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwukwwz4nt2j":
-
"paw/paws",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwuv4vxgwu2n":
-
"kit/kits",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwuv56n4jv2g":
-
"zie/zir",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwuvaelsru2m":
-
"ae/aer",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwv2d6oguw2n":
-
"prince/princes/princeself",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwvcc736wg2n":
-
"ze/hir",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwwwvsvcnz2h":
-
"dey/deren",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwxljuxooh2r":
-
"none",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwzimwll6j2q":
-
"e/em/er",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwzmcaue3e22":
-
"xier/xies",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwzmclqnud2t":
-
"sier/sies",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kx22bkmnco2t":
-
"ens/ens",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kx45q2fq372f":
-
"squee/squir",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kx4puqpu5q2j":
-
"vi/vix",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kxntgh45yy2j":
-
"ne/nem/nir",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kxqmnktb532k":
-
"ze/zim",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kxsppngl4e2a":
-
"pup/pups/pupself",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kxvjiundpz2r":
-
"zi/zir",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kxvjixhmhh2g":
-
"he/haw",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kxwujilwty2m":
-
"hee/haw",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kxy7b27dke2w":
-
"zhi/zhr",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3ky7xcoqkza2q":
-
"ve/ver",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kygr2mke2t2z":
-
"sí/hir",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kyikdvmeff2g":
-
"she/we",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kyikdz4eau2a":
-
"he/we",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kyike4fibu2k":
-
"they/we",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kyilq67fyv2a":
-
"xe/xem",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kzfbgd3jpz2k":
-
"sun/suns",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kzfbgi7is225":
-
"leaf/leafs",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kzftskynd32l":
-
"shiv/ver",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3l2jb2koecj27":
-
"ferret/ferrets/ferretself",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3l2kx6qwefk2h":
-
"drüsshe/drayr",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3l2xlzk6lrx2r":
-
"frog/frogs",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3l2xlzt6v5z2x":
-
"rat/rats",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3l2zv7xcpq62u":
-
"shark/sharks",
-
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3l32xb7nvgh2x":
-
"name/proper nouns",
};
export const DID = process.env.DID ?? "";
···
import "dotenv/config";
+
export const PRONOUNS: Record<string, { post: string; id?: string }> = {
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwsqucto3j2a": {
+
post: "Like this post to delete your labels",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwss4ldkwd2j": {
+
post: "they/them",
+
id: "they",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwss4fmiow2n": {
+
post: "it/its",
+
id: "it",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwss4bzqlw2k": {
+
post: "he/him",
+
id: "he",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwss45mxrh2j": {
+
post: "she/her",
+
id: "she",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwst2tn2342f": {
+
post: "look at bio",
+
id: "bio",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwsslg3gqk2t": {
+
post: "avoid",
+
id: "avoid",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwssldhzme27": {
+
post: "ask",
+
id: "ask",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwss4vc4cw2x": {
+
post: "any/all",
+
id: "any",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwu55hxj4b2a": {
+
post: "fae/faer",
+
id: "fae",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwu5d6rq352v": {
+
post: "bun/buns",
+
id: "bun",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwu5s4lt6f2k": {
+
post: "xe/xir",
+
id: "xe",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwu5sjyg4m2f": {
+
post: "drae/draer",
+
id: "drae",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwu5stootb2q": {
+
post: "e/em/eir",
+
id: "e",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwu5taglmr2q": {
+
post: "sier/siehn/siere",
+
id: "sier",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwu6b3cnd52k": {
+
post: "ey/em/eir",
+
id: "ey",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwu7n26cgm2m": {
+
post: "shey/sheir/sher",
+
id: "shey",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwue4lqwjb2q": {
+
post: "voi/void",
+
id: "voi",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwueewr2p22j": {
+
post: "mew/mews",
+
id: "mew",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwukwwz4nt2j": {
+
post: "paw/paws",
+
id: "paw",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwuv4vxgwu2n": {
+
post: "kit/kits",
+
id: "kit",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwuv56n4jv2g": {
+
post: "zie/zir",
+
id: "zie",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwuvaelsru2m": {
+
post: "ae/aer",
+
id: "ae",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwv2d6oguw2n": {
+
post: "prince/princes/princeself",
+
id: "prince",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwvcc736wg2n": {
+
post: "ze/hir",
+
id: "ze",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwwwvsvcnz2h": {
+
post: "dey/deren",
+
id: "dey",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwxljuxooh2r": {
+
post: "none",
+
id: "none",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwzimwll6j2q": {
+
post: "e/em/er",
+
id: "e-em-er",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwzmcaue3e22": {
+
post: "xier/xies",
+
id: "xier",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kwzmclqnud2t": {
+
post: "sier/sies",
+
id: "sier-sies",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kx22bkmnco2t": {
+
post: "ens/ens",
+
id: "ens",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kx45q2fq372f": {
+
post: "squee/squir",
+
id: "squee",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kx4puqpu5q2j": {
+
post: "vi/vix",
+
id: "vi",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kxntgh45yy2j": {
+
post: "ne/nem/nir",
+
id: "ne-nem-nir",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kxqmnktb532k": {
+
post: "ze/zim",
+
id: "ze-zim",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kxsppngl4e2a": {
+
post: "pup/pups/pupself",
+
id: "pup-pups-pupself",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kxvjiundpz2r": {
+
post: "zi/zir",
+
id: "zi-zir",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kxvjixhmhh2g": {
+
post: "he/haw",
+
id: "he-haw",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kxwujilwty2m": {
+
post: "hee/haw",
+
id: "hee-haw",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kxy7b27dke2w": {
+
post: "zhi/zhr",
+
id: "zhi-zhr",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3ky7xcoqkza2q": {
+
post: "ve/ver",
+
id: "ve-ver",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kygr2mke2t2z": {
+
post: "sí/hir",
+
id: "si-hir",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kyikdvmeff2g": {
+
post: "she/we",
+
id: "she-we",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kyikdz4eau2a": {
+
post: "he/we",
+
id: "he-we",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kyike4fibu2k": {
+
post: "they/we",
+
id: "they-we",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kyilq67fyv2a": {
+
post: "xe/xem",
+
id: "xe-xem",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kzfbgd3jpz2k": {
+
post: "sun/suns",
+
id: "sun-suns",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kzfbgi7is225": {
+
post: "leaf/leafs",
+
id: "leaf-leafs",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3kzftskynd32l": {
+
post: "shiv/ver",
+
id: "shiv-ver",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3l2jb2koecj27": {
+
post: "ferret/ferrets/ferretself",
+
id: "ferret-ferrets",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3l2kx6qwefk2h": {
+
post: "drüsshe/drayr",
+
id: "drusshe-drayr",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3l2xlzk6lrx2r": {
+
post: "frog/frogs",
+
id: "frog-frogs",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3l2xlzt6v5z2x": {
+
post: "rat/rats",
+
id: "rat-rats",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3l2zv7xcpq62u": {
+
post: "shark/sharks",
+
id: "shark-sharks",
+
},
+
"at://did:plc:wkoofae5uytcm7bjncmev6n6/app.bsky.feed.post/3l32xb7nvgh2x": {
+
post: "name/proper nouns",
+
id: "proper-nouns",
+
},
};
export const DID = process.env.DID ?? "";
+5 -7
src/label.ts
···
import { AppBskyActorDefs, ComAtprotoLabelDefs } from "@atproto/api";
-
import { DID, PRONOUNS, SIGNING_KEY, URIs } from "./constants.js";
import { LabelerServer } from "@skyware/labeler";
const server = new LabelerServer({ did: DID, signingKey: SIGNING_KEY });
···
return set;
}, new Set<string>());
-
const post = URIs[uri];
-
-
if (post?.includes("Like this post to delete")) {
await server
.createLabels({ uri: did }, { negate: [...labels] })
.catch((err) => {
console.log(err);
})
.then(() => console.log(`Deleted labels for ${did}`));
-
} else if (labels.size < 4 && PRONOUNS[post]) {
await server
.createLabel({
src: server.did,
uri: did,
-
val: PRONOUNS[post],
cts: new Date().toISOString(),
})
.catch((err) => {
console.log(err);
})
-
.then(() => console.log(`Labeled ${did} with ${post}`));
}
};
···
import { AppBskyActorDefs, ComAtprotoLabelDefs } from "@atproto/api";
+
import { DID, PRONOUNS, SIGNING_KEY } from "./constants.js";
import { LabelerServer } from "@skyware/labeler";
const server = new LabelerServer({ did: DID, signingKey: SIGNING_KEY });
···
return set;
}, new Set<string>());
+
if (PRONOUNS[uri].post.includes("Like this post to delete")) {
await server
.createLabels({ uri: did }, { negate: [...labels] })
.catch((err) => {
console.log(err);
})
.then(() => console.log(`Deleted labels for ${did}`));
+
} else if (labels.size < 4 && PRONOUNS[uri]) {
await server
.createLabel({
src: server.did,
uri: did,
+
val: PRONOUNS[uri].id!,
cts: new Date().toISOString(),
})
.catch((err) => {
console.log(err);
})
+
.then(() => console.log(`Labeled ${did} with ${PRONOUNS[uri].post}`));
}
};