mirror of
https://github.com/matrix-org/mjolnir.git
synced 2024-10-01 01:36:06 -04:00
1d29b50f37
This reverts commit e05616b327
.
We are reverting the since command for multiple reasons.
1. The roomMemberTest that this commit brings has an `it` block ("RoomMemberManager counts correctly when we actually join/leave/get banned from the room")
that now fails in an infinite loop and we struggle to understand how it ever passed.
> essentially they assert that Mjolnir is in the room here https://github.com/matrix-org/mjolnir/blob/main/test/integration/roomMembersTest.ts#L303
Which is great, but they've never joined it or have been invited.
https://github.com/matrix-org/mjolnir/blob/main/test/integration/roomMembersTest.ts#L302 but then we also assert that there's only one person in the room, but this can't be Mjolnir because Mjolnir didn't
create these rooms https://github.com/matrix-org/mjolnir/blob/main/test/integration/roomMembersTest.ts#L273, yet they're checking that Mjolnir is indeed there.
The loop in question is also over complicated and hard to read https://github.com/matrix-org/mjolnir/pull/225/files#diff-67e09dce96f975b2df641d3c600f60f48aeeb9e54a472b612bce90535b4aa0e4R285-R295
Should have been written like this.
```
while(!roomIds.each(roomId => this.mjolnir.protectedRooms[roomId])) {
await new Promise(resolve => setTimeout(resolve, 1_000));
}
```
2. The RoomMemberManager is broken even after fixing the test (fixing so that it fails "normally" without getting caught in the loop by changing the setup code) and we have decided is not worth fixing yet.
This is because it is complex & the manager only knows about joins that have happened since Mjolnir has started syncing, this has proven un-initiative to Mjolnir users already.
Possible solutions are using the planned the full rolling room member/state cache (https://github.com/matrix-org/mjolnir/issues/273) or using `/messages` with a filter for member events for the `!since` command, since `/messages` is "chronologically" ordered.
50 lines
1.8 KiB
JSON
50 lines
1.8 KiB
JSON
{
|
|
"name": "mjolnir",
|
|
"version": "1.4.1",
|
|
"description": "A moderation tool for Matrix",
|
|
"main": "lib/index.js",
|
|
"repository": "git@github.com:matrix-org/mjolnir.git",
|
|
"author": "The Matrix.org Foundation C.I.C.",
|
|
"license": "Apache-2.0",
|
|
"private": true,
|
|
"scripts": {
|
|
"build": "tsc",
|
|
"postbuild": "rm -rf lib/test/ && cp -r lib/src/* lib/ && rm -rf lib/src/",
|
|
"lint": "tslint --project ./tsconfig.json -t stylish",
|
|
"start:dev": "yarn build && node --async-stack-traces lib/index.js",
|
|
"test": "ts-mocha --project ./tsconfig.json test/commands/**/*.ts",
|
|
"test:integration": "NODE_ENV=harness ts-mocha --async-stack-traces --require test/integration/fixtures.ts --project ./tsconfig.json \"test/integration/**/*Test.ts\"",
|
|
"test:manual": "NODE_ENV=harness ts-node test/integration/manualLaunchScript.ts",
|
|
"version": "sed -i '/# version automated/s/[0-9][0-9]*\\.[0-9][0-9]*\\.[0-9][0-9]*/'$npm_package_version'/' synapse_antispam/setup.py && git add synapse_antispam/setup.py && cat synapse_antispam/setup.py"
|
|
},
|
|
"devDependencies": {
|
|
"@types/config": "0.0.41",
|
|
"@types/crypto-js": "^4.0.2",
|
|
"@types/html-to-text": "^8.0.1",
|
|
"@types/jsdom": "^16.2.11",
|
|
"@types/mocha": "^9.0.0",
|
|
"@types/node": "^16.7.10",
|
|
"crypto-js": "^4.1.1",
|
|
"eslint": "^7.32",
|
|
"expect": "^27.0.6",
|
|
"mocha": "^9.0.1",
|
|
"ts-mocha": "^8.0.0",
|
|
"tslint": "^6.1.3",
|
|
"typescript": "^4.3.5",
|
|
"typescript-formatter": "^7.2"
|
|
},
|
|
"dependencies": {
|
|
"config": "^3.3.6",
|
|
"express": "^4.17",
|
|
"html-to-text": "^8.0.0",
|
|
"humanize-duration-ts": "^2.1.1",
|
|
"js-yaml": "^4.1.0",
|
|
"jsdom": "^16.6.0",
|
|
"matrix-bot-sdk": "^0.5.19",
|
|
"parse-duration": "^1.0.2"
|
|
},
|
|
"engines": {
|
|
"node": ">=14.0.0"
|
|
}
|
|
}
|