this repo has no description
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

updates

alice 30b91b74 54a7d855

+20 -21
+9 -9
package.json
··· 15 15 "*": "prettier --ignore-unknown --write" 16 16 }, 17 17 "devDependencies": { 18 - "@eslint/js": "^9.13.0", 18 + "@eslint/js": "^9.14.0", 19 19 "@trivago/prettier-plugin-sort-imports": "^4.3.0", 20 20 "@types/better-sqlite3": "^7.6.11", 21 21 "@types/eslint__js": "^8.42.3", 22 22 "@types/express": "^4.17.21", 23 - "@types/node": "^22.8.4", 24 - "@types/ws": "^8.5.12", 25 - "eslint": "^9.13.0", 23 + "@types/node": "^22.9.0", 24 + "@types/ws": "^8.5.13", 25 + "eslint": "^9.14.0", 26 26 "prettier": "^3.3.3", 27 27 "tsx": "^4.19.2", 28 28 "typescript": "^5.6.3", 29 - "typescript-eslint": "^8.12.2" 29 + "typescript-eslint": "^8.13.0" 30 30 }, 31 31 "dependencies": { 32 - "@atproto/api": "^0.13.14", 33 - "@skyware/bot": "^0.3.6", 32 + "@atproto/api": "^0.13.15", 33 + "@skyware/bot": "^0.3.7", 34 34 "@skyware/jetstream": "^0.2.0", 35 - "@skyware/labeler": "^0.1.11", 35 + "@skyware/labeler": "^0.1.13", 36 36 "dotenv": "^16.4.5", 37 37 "express": "^4.21.1", 38 38 "husky": "^9.1.6", 39 39 "lint-staged": "^15.2.10", 40 40 "pino": "^9.5.0", 41 - "pino-pretty": "^11.3.0", 41 + "pino-pretty": "^12.1.0", 42 42 "prom-client": "^15.1.3" 43 43 } 44 44 }
+11 -12
src/label.ts
··· 1 - import { AppBskyActorDefs, ComAtprotoLabelDefs } from '@atproto/api'; 1 + import { ComAtprotoLabelDefs } from '@atcute/client/lexicons'; 2 2 import { LabelerServer } from '@skyware/labeler'; 3 3 4 4 import { DID, SIGNING_KEY } from './config.js'; ··· 7 7 8 8 export const labelerServer = new LabelerServer({ did: DID, signingKey: SIGNING_KEY }); 9 9 10 - export const label = async (subject: string | AppBskyActorDefs.ProfileView, rkey: string) => { 11 - const did = AppBskyActorDefs.isProfileView(subject) ? subject.did : subject; 10 + export const label = (did: string, rkey: string) => { 12 11 logger.info(`Received rkey: ${rkey} for ${did}`); 13 12 14 13 if (rkey === 'self') { ··· 19 18 const labels = fetchCurrentLabels(did); 20 19 21 20 if (rkey.includes(DELETE)) { 22 - await deleteAllLabels(did, labels); 21 + deleteAllLabels(did, labels); 23 22 } else { 24 - await addOrUpdateLabel(did, rkey, labels); 23 + addOrUpdateLabel(did, rkey, labels); 25 24 } 26 25 } catch (error) { 27 26 logger.error(`Error in \`label\` function: ${error}`); ··· 30 29 31 30 function fetchCurrentLabels(did: string) { 32 31 const query = labelerServer.db 33 - .prepare<unknown[], ComAtprotoLabelDefs.Label>(`SELECT * FROM labels WHERE uri = ?`) 34 - .all(did); 32 + .prepare<string[]>(`SELECT * FROM labels WHERE uri = ?`) 33 + .all(did) as ComAtprotoLabelDefs.Label[]; 35 34 36 35 const labels = query.reduce((set, label) => { 37 36 if (!label.neg) set.add(label.val); ··· 46 45 return labels; 47 46 } 48 47 49 - async function deleteAllLabels(did: string, labels: Set<string>) { 48 + function deleteAllLabels(did: string, labels: Set<string>) { 50 49 const labelsToDelete: string[] = Array.from(labels); 51 50 52 51 if (labelsToDelete.length === 0) { ··· 54 53 } else { 55 54 logger.info(`Labels to delete: ${labelsToDelete.join(', ')}`); 56 55 try { 57 - await labelerServer.createLabels({ uri: did }, { negate: labelsToDelete }); 56 + labelerServer.createLabels({ uri: did }, { negate: labelsToDelete }); 58 57 logger.info('Successfully deleted all labels'); 59 58 } catch (error) { 60 59 logger.error(`Error deleting all labels: ${error}`); ··· 62 61 } 63 62 } 64 63 65 - async function addOrUpdateLabel(did: string, rkey: string, labels: Set<string>) { 64 + function addOrUpdateLabel(did: string, rkey: string, labels: Set<string>) { 66 65 const newLabel = LABELS.find((label) => label.rkey === rkey); 67 66 logger.info(`New label: ${newLabel?.identifier}`); 68 67 69 68 if (labels.size >= LABEL_LIMIT) { 70 69 try { 71 - await labelerServer.createLabels({ uri: did }, { negate: Array.from(labels) }); 70 + labelerServer.createLabels({ uri: did }, { negate: Array.from(labels) }); 72 71 logger.info(`Successfully negated existing labels: ${Array.from(labels).join(', ')}`); 73 72 } catch (error) { 74 73 logger.error(`Error negating existing labels: ${error}`); ··· 76 75 } 77 76 78 77 try { 79 - await labelerServer.createLabel({ uri: did, val: newLabel!.identifier }); 78 + labelerServer.createLabel({ uri: did, val: newLabel!.identifier }); 80 79 logger.info(`Successfully labeled ${did} with ${newLabel?.identifier}`); 81 80 } catch (error) { 82 81 logger.error(`Error adding new label: ${error}`);