Skip to content

Commit

Permalink
A few small fixes (#536)
Browse files Browse the repository at this point in the history
* better error messages

* fix flaky test
  • Loading branch information
H-Shay authored Oct 4, 2024
1 parent 0afe207 commit 05d1894
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 6 deletions.
14 changes: 11 additions & 3 deletions src/protections/NsfwProtection.ts
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ limitations under the License.
import { Protection } from "./IProtection";
import { Mjolnir } from "../Mjolnir";
import * as nsfw from 'nsfwjs';
import {LogLevel} from "@vector-im/matrix-bot-sdk";
import {LogLevel, LogService} from "@vector-im/matrix-bot-sdk";
import { node } from '@tensorflow/tfjs-node';


Expand Down Expand Up @@ -63,7 +63,15 @@ export class NsfwProtection extends Protection {
// @ts-ignore - see null check immediately above
for (const mxc of mxcs) {
const image = await mjolnir.client.downloadContent(mxc);
const decodedImage = await node.decodeImage(image.data, 3);

let decodedImage;
try {
decodedImage = await node.decodeImage(image.data, 3);
} catch (e) {
LogService.error("NsfwProtection", `There was an error processing an image: ${e}`);
continue;
}

const predictions = await this.model.classify(decodedImage);


Expand All @@ -79,7 +87,7 @@ export class NsfwProtection extends Protection {
let body = `Redacted an image in ${room} ${eventId}`
let formatted_body = `<details>
<summary>Redacted an image in ${room}</summary>
<pre>${eventId}</pre> <pre></pre>${room}</pre>
<pre>${eventId}</pre> <pre>${room}</pre>
</details>`
const msg = {
msgtype: "m.notice",
Expand Down
6 changes: 3 additions & 3 deletions test/integration/banListTest.ts
Original file line number Diff line number Diff line change
Expand Up @@ -270,7 +270,7 @@ describe('Test: ACL updates will batch when rules are added in succession.', fun
acl.denyServer(badServer);
await createPolicyRule(moderator, banListId, RULE_SERVER, badServer, `Rule #${i}`);
// Give them a bit of a spread over time.
await new Promise(resolve => setTimeout(resolve, 5));
await new Promise(resolve => setTimeout(resolve, 10));
}
// We do this because it should force us to wait until all the ACL events have been applied.
// Even if that does mean the last few events will not go through batching...
Expand All @@ -294,8 +294,8 @@ describe('Test: ACL updates will batch when rules are added in succession.', fun
LogService.debug('PolicyListTest', `aclEventCount: ${aclEventCount}`);
// If there's less than two then it means the ACL was updated by this test calling `this.mjolnir!.syncLists()`
// and not the listener that detects changes to ban lists (that we want to test!).
// It used to be 10, but it was too low, 30 seems better for CI.
assert.equal(aclEventCount < 50 && aclEventCount > 2, true, 'We should have sent less than 50 ACL events to each room because they should be batched')
// It used to be 30, but it was too low, 70 seems better for CI.
assert.equal(aclEventCount < 70 && aclEventCount > 2, true, 'We should have sent less than 70 ACL events to each room because they should be batched')
}));
})
})
Expand Down

0 comments on commit 05d1894

Please sign in to comment.