mx-puppet-bridge
Advanced tools
Comparing version 0.0.29 to 0.0.30
@@ -58,2 +58,4 @@ export declare class Config { | ||
blacklist: string[]; | ||
sharedSecret: string; | ||
apiPrefix: string; | ||
} | ||
@@ -60,0 +62,0 @@ declare class PresenceConfig { |
@@ -84,2 +84,3 @@ "use strict"; | ||
this.blacklist = []; | ||
this.apiPrefix = "/_matrix/provision"; | ||
} | ||
@@ -86,0 +87,0 @@ } |
@@ -10,2 +10,3 @@ export * from "./puppetbridge"; | ||
export { ICommand, SendMessageFn } from "./botprovisioner"; | ||
export { IAuthedRequest } from "./provisioningapi"; | ||
export { IStringFormatterVars } from "./structures/stringformatter"; |
@@ -219,3 +219,3 @@ "use strict"; | ||
// tslint:disable-next-line no-any | ||
if (event.content.source === "remote") { | ||
if (event.content.source === this.bridge.protocol.id) { | ||
log.verbose("Dropping event due to de-duping..."); | ||
@@ -268,3 +268,3 @@ return; | ||
// tslint:disable-next-line no-any | ||
if (event.content.source === "remote") { | ||
if (event.content.source === this.bridge.protocol.id) { | ||
log.verbose("Dropping event due to de-duping..."); | ||
@@ -271,0 +271,0 @@ return; |
@@ -17,2 +17,3 @@ /// <reference types="node" /> | ||
import { BotProvisioner, ICommand } from "./botprovisioner"; | ||
import { ProvisioningAPI } from "./provisioningapi"; | ||
import { PresenceHandler, MatrixPresence } from "./presencehandler"; | ||
@@ -58,2 +59,3 @@ import { TypingHandler } from "./typinghandler"; | ||
botProvisioner: BotProvisioner; | ||
provisioningAPI: ProvisioningAPI; | ||
typingHandler: TypingHandler; | ||
@@ -60,0 +62,0 @@ presenceHandler: PresenceHandler; |
@@ -40,2 +40,3 @@ "use strict"; | ||
const botprovisioner_1 = require("./botprovisioner"); | ||
const provisioningapi_1 = require("./provisioningapi"); | ||
const presencehandler_1 = require("./presencehandler"); | ||
@@ -113,2 +114,3 @@ const typinghandler_1 = require("./typinghandler"); | ||
this.botProvisioner = new botprovisioner_1.BotProvisioner(this); | ||
this.provisioningAPI = new provisioningapi_1.ProvisioningAPI(this); | ||
// pipe matrix-bot-sdk logging int ours | ||
@@ -243,2 +245,3 @@ const logMap = new Map(); | ||
this.matrixEventHandler.registerAppserviceEvents(); | ||
this.provisioningAPI.registerProvisioningAPI(); | ||
yield this.appservice.begin(); | ||
@@ -245,0 +248,0 @@ log.info("Application service started!"); |
@@ -54,3 +54,3 @@ "use strict"; | ||
const send = { | ||
"source": "remote", | ||
"source": this.bridge.protocol.id, | ||
"m.relates_to": { | ||
@@ -57,0 +57,0 @@ rel_type: "m.annotation", |
@@ -102,3 +102,3 @@ "use strict"; | ||
}; | ||
send.source = "remote"; // tslint:disable-line no-any | ||
send.source = this.bridge.protocol.id; // tslint:disable-line no-any | ||
if (opts.formattedBody) { | ||
@@ -109,3 +109,3 @@ send.format = "org.matrix.custom.html"; | ||
if (params.externalUrl) { | ||
send.external_url = params.externalUrl; // tslint:disable-line no-any | ||
send.external_url = params.externalUrl; | ||
} | ||
@@ -116,2 +116,4 @@ const matrixEventId = yield client.sendMessage(mxid, send); | ||
} | ||
// aaand stop typing | ||
yield this.bridge.typingHandler.set(yield client.getUserId(), mxid, false); | ||
}); | ||
@@ -144,3 +146,3 @@ } | ||
"body": `* ${opts.body}`, | ||
"source": "remote", | ||
"source": this.bridge.protocol.id, | ||
"m.new_content": { | ||
@@ -174,2 +176,4 @@ body: opts.body, | ||
} | ||
// aaand stop typing | ||
yield this.bridge.typingHandler.set(yield client.getUserId(), mxid, false); | ||
}); | ||
@@ -204,3 +208,3 @@ } | ||
body: opts.body, | ||
source: "remote", | ||
source: this.bridge.protocol.id, | ||
}; // tslint:disable-line no-any | ||
@@ -228,2 +232,4 @@ if (origEvent) { | ||
} | ||
// aaand stop typing | ||
yield this.bridge.typingHandler.set(yield client.getUserId(), mxid, false); | ||
}); | ||
@@ -292,8 +298,8 @@ } | ||
}; | ||
sendData.source = "remote"; // tslint:disable-line no-any | ||
sendData.source = this.bridge.protocol.id; // tslint:disable-line no-any | ||
if (typeof thing === "string") { | ||
sendData.external_url = thing; // tslint:disable-line no-any | ||
sendData.external_url = thing; | ||
} | ||
if (params.externalUrl) { | ||
sendData.external_url = params.externalUrl; // tslint:disable-line no-any | ||
sendData.external_url = params.externalUrl; | ||
} | ||
@@ -304,2 +310,4 @@ const matrixEventId = yield client.sendMessage(mxid, sendData); | ||
} | ||
// aaand stop typing | ||
yield this.bridge.typingHandler.set(yield client.getUserId(), mxid, false); | ||
}); | ||
@@ -306,0 +314,0 @@ } |
@@ -42,4 +42,6 @@ "use strict"; | ||
delete(value) { | ||
this.db.delete(value); | ||
this.scheduleGc(true); | ||
if (this.db.has(value)) { | ||
this.db.delete(value); | ||
this.scheduleGc(true); | ||
} | ||
return this; | ||
@@ -46,0 +48,0 @@ } |
@@ -5,2 +5,3 @@ import { PuppetBridge } from "./puppetbridge"; | ||
private timeout; | ||
private typingUsers; | ||
constructor(bridge: PuppetBridge, timeout: number); | ||
@@ -7,0 +8,0 @@ set(mxid: string, roomId: string, typing: boolean): Promise<void>; |
@@ -25,2 +25,3 @@ "use strict"; | ||
const log_1 = require("./log"); | ||
const expireset_1 = require("./structures/expireset"); | ||
const log = new log_1.Log("TypingHandler"); | ||
@@ -31,2 +32,3 @@ class TypingHandler { | ||
this.timeout = timeout; | ||
this.typingUsers = new expireset_1.ExpireSet(this.timeout); | ||
} | ||
@@ -39,2 +41,13 @@ set(mxid, roomId, typing) { | ||
log.verbose(`Updating typing for ${mxid} in room ${roomId} to ${typing}`); | ||
const key = `${mxid};${roomId}`; | ||
if (typing) { | ||
this.typingUsers.add(key); | ||
} | ||
else { | ||
if (!this.typingUsers.has(key)) { | ||
// we weren't typing anyways | ||
return; | ||
} | ||
this.typingUsers.delete(key); | ||
} | ||
try { | ||
@@ -41,0 +54,0 @@ const intent = this.bridge.AS.getIntentForUserId(mxid); |
{ | ||
"name": "mx-puppet-bridge", | ||
"version": "0.0.29", | ||
"version": "0.0.30", | ||
"description": "Matrix Puppeting Bridge library", | ||
@@ -29,3 +29,3 @@ "repository": { | ||
"markdown-it": "^9.1.0", | ||
"matrix-bot-sdk": "^0.4.1", | ||
"matrix-bot-sdk": "^0.5.2", | ||
"pg-promise": "^8.7.2", | ||
@@ -32,0 +32,0 @@ "request": "^2.88.0", |
@@ -80,2 +80,5 @@ /* | ||
public blacklist: string[] = []; | ||
public sharedSecret: string; | ||
public apiPrefix: string = "/_matrix/provision"; | ||
} | ||
@@ -82,0 +85,0 @@ |
@@ -23,2 +23,3 @@ /* | ||
export { ICommand, SendMessageFn } from "./botprovisioner"; | ||
export { IAuthedRequest } from "./provisioningapi"; | ||
export { IStringFormatterVars } from "./structures/stringformatter"; |
@@ -218,3 +218,3 @@ /* | ||
// tslint:disable-next-line no-any | ||
if ((event.content as any).source === "remote") { | ||
if ((event.content as any).source === this.bridge.protocol.id) { | ||
log.verbose("Dropping event due to de-duping..."); | ||
@@ -269,3 +269,3 @@ return; | ||
// tslint:disable-next-line no-any | ||
if ((event.content as any).source === "remote") { | ||
if ((event.content as any).source === this.bridge.protocol.id) { | ||
log.verbose("Dropping event due to de-duping..."); | ||
@@ -272,0 +272,0 @@ return; |
@@ -43,2 +43,3 @@ /* | ||
import { BotProvisioner, ICommand } from "./botprovisioner"; | ||
import { ProvisioningAPI } from "./provisioningapi"; | ||
import { PresenceHandler, MatrixPresence } from "./presencehandler"; | ||
@@ -99,2 +100,3 @@ import { TypingHandler } from "./typinghandler"; | ||
public botProvisioner: BotProvisioner; | ||
public provisioningAPI: ProvisioningAPI; | ||
public typingHandler: TypingHandler; | ||
@@ -172,2 +174,3 @@ public presenceHandler: PresenceHandler; | ||
this.botProvisioner = new BotProvisioner(this); | ||
this.provisioningAPI = new ProvisioningAPI(this); | ||
@@ -225,3 +228,3 @@ // pipe matrix-bot-sdk logging int ours | ||
} | ||
const reg = { | ||
const reg: IAppserviceRegistration = { | ||
as_token: uuid(), | ||
@@ -245,3 +248,3 @@ hs_token: uuid(), | ||
url: opts.url, | ||
} as IAppserviceRegistration; | ||
}; | ||
fs.writeFileSync(this.registrationPath, yaml.safeDump(reg)); | ||
@@ -315,2 +318,3 @@ } | ||
this.matrixEventHandler.registerAppserviceEvents(); | ||
this.provisioningAPI.registerProvisioningAPI(); | ||
await this.appservice.begin(); | ||
@@ -317,0 +321,0 @@ log.info("Application service started!"); |
@@ -52,3 +52,3 @@ /* | ||
const send = { | ||
"source": "remote", | ||
"source": this.bridge.protocol.id, | ||
"m.relates_to": { | ||
@@ -55,0 +55,0 @@ rel_type: "m.annotation", |
@@ -105,3 +105,3 @@ /* | ||
}; | ||
(send as any).source = "remote"; // tslint:disable-line no-any | ||
(send as any).source = this.bridge.protocol.id; // tslint:disable-line no-any | ||
if (opts.formattedBody) { | ||
@@ -112,3 +112,3 @@ send.format = "org.matrix.custom.html"; | ||
if (params.externalUrl) { | ||
(send as any).external_url = params.externalUrl; // tslint:disable-line no-any | ||
send.external_url = params.externalUrl; | ||
} | ||
@@ -119,2 +119,4 @@ const matrixEventId = await client.sendMessage(mxid, send); | ||
} | ||
// aaand stop typing | ||
await this.bridge.typingHandler.set(await client.getUserId(), mxid, false); | ||
} | ||
@@ -145,3 +147,3 @@ | ||
"body": `* ${opts.body}`, | ||
"source": "remote", | ||
"source": this.bridge.protocol.id, | ||
"m.new_content": { | ||
@@ -174,2 +176,4 @@ body: opts.body, | ||
} | ||
// aaand stop typing | ||
await this.bridge.typingHandler.set(await client.getUserId(), mxid, false); | ||
} | ||
@@ -201,3 +205,3 @@ | ||
body: opts.body, | ||
source: "remote", | ||
source: this.bridge.protocol.id, | ||
} as any; // tslint:disable-line no-any | ||
@@ -224,2 +228,4 @@ if (origEvent) { | ||
} | ||
// aaand stop typing | ||
await this.bridge.typingHandler.set(await client.getUserId(), mxid, false); | ||
} | ||
@@ -287,8 +293,8 @@ | ||
}; | ||
(sendData as any).source = "remote"; // tslint:disable-line no-any | ||
(sendData as any).source = this.bridge.protocol.id; // tslint:disable-line no-any | ||
if (typeof thing === "string") { | ||
(sendData as any).external_url = thing; // tslint:disable-line no-any | ||
sendData.external_url = thing; | ||
} | ||
if (params.externalUrl) { | ||
(sendData as any).external_url = params.externalUrl; // tslint:disable-line no-any | ||
sendData.external_url = params.externalUrl; | ||
} | ||
@@ -299,2 +305,4 @@ const matrixEventId = await client.sendMessage(mxid, sendData); | ||
} | ||
// aaand stop typing | ||
await this.bridge.typingHandler.set(await client.getUserId(), mxid, false); | ||
} | ||
@@ -301,0 +309,0 @@ |
@@ -52,4 +52,6 @@ /* | ||
public delete(value: T) { | ||
this.db.delete(value); | ||
this.scheduleGc(true); | ||
if (this.db.has(value)) { | ||
this.db.delete(value); | ||
this.scheduleGc(true); | ||
} | ||
return this; | ||
@@ -56,0 +58,0 @@ } |
@@ -16,2 +16,3 @@ /* | ||
import { Log } from "./log"; | ||
import { ExpireSet } from "./structures/expireset"; | ||
@@ -21,6 +22,9 @@ const log = new Log("TypingHandler"); | ||
export class TypingHandler { | ||
private typingUsers: ExpireSet<string>; | ||
constructor( | ||
private bridge: PuppetBridge, | ||
private timeout: number, | ||
) { } | ||
) { | ||
this.typingUsers = new ExpireSet(this.timeout); | ||
} | ||
@@ -32,2 +36,12 @@ public async set(mxid: string, roomId: string, typing: boolean) { | ||
log.verbose(`Updating typing for ${mxid} in room ${roomId} to ${typing}`); | ||
const key = `${mxid};${roomId}`; | ||
if (typing) { | ||
this.typingUsers.add(key); | ||
} else { | ||
if (!this.typingUsers.has(key)) { | ||
// we weren't typing anyways | ||
return; | ||
} | ||
this.typingUsers.delete(key); | ||
} | ||
try { | ||
@@ -34,0 +48,0 @@ const intent = this.bridge.AS.getIntentForUserId(mxid); |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
577112
141
14909
+ Addedchalk@4.1.2(transitive)
+ Addeddeepmerge@4.3.1(transitive)
+ Addeddom-serializer@2.0.0(transitive)
+ Addeddomhandler@5.0.3(transitive)
+ Addeddomutils@3.1.0(transitive)
+ Addedentities@4.5.0(transitive)
+ Addedescape-string-regexp@4.0.0(transitive)
+ Addedhe@1.2.0(transitive)
+ Addedhtml-to-text@6.0.0(transitive)
+ Addedhtmlparser2@8.0.2(transitive)
+ Addedis-plain-object@5.0.0(transitive)
+ Addedlru-cache@6.0.0(transitive)
+ Addedmatrix-bot-sdk@0.5.19(transitive)
+ Addedmkdirp@1.0.4(transitive)
+ Addednanoid@3.3.7(transitive)
+ Addedpostcss@8.4.47(transitive)
+ Addedsanitize-html@2.13.0(transitive)
+ Addedsource-map-js@1.2.1(transitive)
+ Addedyallist@4.0.0(transitive)
- Removedchalk@3.0.0(transitive)
- Removedlru-cache@5.1.1(transitive)
- Removedmatrix-bot-sdk@0.4.1(transitive)
- Removedpicocolors@0.2.1(transitive)
- Removedpostcss@7.0.39(transitive)
- Removedsanitize-html@1.27.5(transitive)
- Removedsource-map@0.6.1(transitive)
Updatedmatrix-bot-sdk@^0.5.2