this repo has no description
0
fork

Configure Feed

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

Cleanup

alice 1dc04a39 44470dc2

+19 -19
+6 -14
src/label.ts
··· 1 1 import { AppBskyActorDefs, ComAtprotoLabelDefs } from '@atproto/api'; 2 2 import { LabelerServer } from '@skyware/labeler'; 3 3 4 - import { DID, PORT, SIGNING_KEY } from './config.js'; 4 + import { DID, SIGNING_KEY } from './config.js'; 5 5 import { DELETE, SIGNS } from './constants.js'; 6 6 import logger from './logger.js'; 7 7 import { CATEGORY_PREFIXES } from './types.js'; 8 8 import type { Category } from './types.js'; 9 9 10 - const server = new LabelerServer({ did: DID, signingKey: SIGNING_KEY }); 11 - 12 - server.start(PORT, (error, address) => { 13 - if (error) { 14 - logger.error('Error starting server:', error); 15 - } else { 16 - logger.info(`Labeler server listening on ${address}`); 17 - } 18 - }); 10 + export const labelerServer = new LabelerServer({ did: DID, signingKey: SIGNING_KEY }); 19 11 20 12 export const label = async (subject: string | AppBskyActorDefs.ProfileView, rkey: string) => { 21 13 const did = AppBskyActorDefs.isProfileView(subject) ? subject.did : subject; ··· 57 49 category === 'sun' ? 'aaa-' 58 50 : category === 'moon' ? 'bbb-' 59 51 : 'ccc-'; 60 - const query = server.db 52 + const query = labelerServer.db 61 53 .prepare< 62 54 unknown[], 63 55 ComAtprotoLabelDefs.Label ··· 89 81 } else { 90 82 logger.info('Labels to delete:', labelsToDelete); 91 83 try { 92 - await server.createLabels({ uri: did }, { negate: labelsToDelete }); 84 + await labelerServer.createLabels({ uri: did }, { negate: labelsToDelete }); 93 85 logger.info('Successfully deleted all labels'); 94 86 } catch (error) { 95 87 logger.error('Error deleting all labels:', error); ··· 119 111 if (existingLabels.size > 0) { 120 112 logger.info('>>> Negating existing labels'); 121 113 try { 122 - await server.createLabels({ uri: did }, { negate: Array.from(existingLabels) }); 114 + await labelerServer.createLabels({ uri: did }, { negate: Array.from(existingLabels) }); 123 115 logger.info('Successfully negated existing labels'); 124 116 } catch (error) { 125 117 logger.error('Error negating existing labels:', error); ··· 130 122 131 123 logger.info('>>> Adding new label'); 132 124 try { 133 - await server.createLabel({ uri: did, val: newLabel.label }); 125 + await labelerServer.createLabel({ uri: did, val: newLabel.label }); 134 126 logger.info('Successfully labeled'); 135 127 labelCategories[category] = new Set([newLabel.label]); 136 128 } catch (error) {
+13 -5
src/main.ts
··· 1 1 import { CommitCreateEvent, Jetstream } from '@skyware/jetstream'; 2 2 import fs from 'node:fs'; 3 3 4 - import { DID, FIREHOSE_URL, METRICS_PORT, WANTED_COLLECTION } from './config.js'; 5 - import { label } from './label.js'; 4 + import { DID, FIREHOSE_URL, METRICS_PORT, PORT, WANTED_COLLECTION } from './config.js'; 5 + import { label, labelerServer } from './label.js'; 6 6 import logger from './logger.js'; 7 7 import { startMetricsServer } from './metrics.js'; 8 8 9 9 let cursor = 0; 10 - 11 10 let cursorUpdateInterval: NodeJS.Timeout; 12 11 let cursorFile: string; 13 12 ··· 58 57 } 59 58 }); 60 59 60 + const metricsServer = startMetricsServer(METRICS_PORT); 61 + 62 + labelerServer.start(PORT, (error, address) => { 63 + if (error) { 64 + logger.error('Error starting server:', error); 65 + } else { 66 + logger.info(`Labeler server listening on ${address}`); 67 + } 68 + }); 69 + 61 70 jetstream.start(); 62 - 63 - const metricsServer = startMetricsServer(METRICS_PORT); 64 71 65 72 function shutdown() { 66 73 setTimeout(() => { ··· 70 77 71 78 logger.info('Shutting down gracefully...'); 72 79 jetstream.close(); 80 + labelerServer.stop(); 73 81 metricsServer.close(); 74 82 clearInterval(cursorUpdateInterval); 75 83 fs.writeFileSync('cursor.txt', cursor.toString(), 'utf8');