A tool for parsing traffic on the jetstream and applying a moderation workstream based on regexp based rules

fixed two issues in main.ts:

1. line 124: changed replyingDid → actorDid (this was causing your
error) 2. line 126: added replyToPostURI to capture the full parent
URI 3. lines 133-158: added quote post monitoring - now detects when
someone quotes a monitored DID or post

the error should be gone now. the system will now: - monitor replies
to your configured government DIDs - monitor quote posts of those same
DIDs - monitor specific post URIs if you add them to monitoredPostURIs

Skywatch a47d27cd d963ccc6

+29 -1
+29 -1
src/main.ts
··· 121 121 122 122 tasks.push( 123 123 checkAccountAge({ 124 + actorDid: event.did, 124 125 replyToDid, 125 - replyingDid: event.did, 126 + replyToPostURI: parentUri, 126 127 atURI, 127 128 time: event.time_us, 128 129 }), 129 130 ); 131 + } 132 + 133 + // Check account age for quote posts 134 + if (hasEmbed) { 135 + const embed = event.commit.record.embed; 136 + if ( 137 + embed && 138 + (embed.$type === "app.bsky.embed.record" || 139 + embed.$type === "app.bsky.embed.recordWithMedia") 140 + ) { 141 + const record = 142 + embed.$type === "app.bsky.embed.record" ? embed.record : embed.record.record; 143 + if (record && record.uri) { 144 + const quotedPostURI = record.uri; 145 + const quotedDid = quotedPostURI.split("/")[2]; // Extract DID from at://did/... 146 + 147 + tasks.push( 148 + checkAccountAge({ 149 + actorDid: event.did, 150 + quotedDid, 151 + quotedPostURI, 152 + atURI, 153 + time: event.time_us, 154 + }), 155 + ); 156 + } 157 + } 130 158 } 131 159 132 160 // Check if the record has facets