fix self game invite

fixes #6
This commit is contained in:
Robin Appelman 2020-12-25 22:49:44 +01:00
commit 18d411e324
4 changed files with 19 additions and 20 deletions

View file

@ -22,7 +22,7 @@ RUN apk add --no-cache \
COPY package.json package-lock.json ./ COPY package.json package-lock.json ./
RUN chown -R node:node /opt/mx-puppet-steam RUN chown -R node:node /opt/mx-puppet-steam
USER node USER node
RUN npm install RUN npm ci
COPY tsconfig.json ./ COPY tsconfig.json ./
COPY src/ ./src/ COPY src/ ./src/

22
package-lock.json generated
View file

@ -263,9 +263,9 @@
"integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q==" "integrity": "sha512-Jus9s4CDbqwocc5pOAnh8ShfrnMcPHuJYzVcSUU7lrh8Ni5HuIqX3oilL86p3dlTrk0LzHRCgA/GQ7uNCw6l2Q=="
}, },
"@types/node": { "@types/node": {
"version": "14.14.10", "version": "14.14.16",
"resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.10.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-14.14.16.tgz",
"integrity": "sha512-J32dgx2hw8vXrSbu4ZlVhn1Nm3GbeCFNw2FWL8S5QKucHGY0cyNwjdQdO+KMBZ4wpmC7KhLCiNsdk1RFRIYUQQ==" "integrity": "sha512-naXYePhweTi+BMv11TgioE2/FXU4fSl29HAH1ffxVciNsH3rYXjNP2yM8wqmSm7jS20gM8TIklKiTen+1iVncw=="
}, },
"@types/qs": { "@types/qs": {
"version": "6.9.5", "version": "6.9.5",
@ -1693,9 +1693,9 @@
"integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
}, },
"js-yaml": { "js-yaml": {
"version": "3.14.0", "version": "3.14.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz",
"integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==",
"requires": { "requires": {
"argparse": "^1.0.7", "argparse": "^1.0.7",
"esprima": "^4.0.0" "esprima": "^4.0.0"
@ -3106,8 +3106,8 @@
"integrity": "sha512-d+tjnr3wwDkbrKFxjYZ0uK4CSF09oJwCmlGH8SdOlTDkbtBPuNhPKY0XzZxQVltZF6/JkEYj+uz+kBr6UrY7BQ==" "integrity": "sha512-d+tjnr3wwDkbrKFxjYZ0uK4CSF09oJwCmlGH8SdOlTDkbtBPuNhPKY0XzZxQVltZF6/JkEYj+uz+kBr6UrY7BQ=="
}, },
"steam-user": { "steam-user": {
"version": "github:icewind1991/node-steam-user#f20f6a042279b606edd6d13f16605984772d83c3", "version": "github:icewind1991/node-steam-user#60c6728fdf06d728f3a44ab03e106fc3fb096fb4",
"from": "github:icewind1991/node-steam-user#bbcode-sticker", "from": "github:icewind1991/node-steam-user#60c6728",
"requires": { "requires": {
"@bbob/parser": "^2.2.0", "@bbob/parser": "^2.2.0",
"@doctormckay/stdlib": "^1.11.1", "@doctormckay/stdlib": "^1.11.1",
@ -3381,9 +3381,9 @@
} }
}, },
"typescript": { "typescript": {
"version": "4.1.2", "version": "4.1.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.2.tgz", "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.1.3.tgz",
"integrity": "sha512-thGloWsGH3SOxv1SoY7QojKi0tc+8FnOmiarEGMbd/lar7QOEd3hvlx3Fp5y6FlDUGl9L+pd4n2e+oToGMmhRQ==", "integrity": "sha512-B3ZIOf1IKeH2ixgHhj6la6xdwR9QrLC5d1VKeCSY4tvkqhF2eqd9O7txNlS0PO3GrBAFIdr3L1ndNwteUbZLYg==",
"dev": true "dev": true
}, },
"typical": { "typical": {

View file

@ -15,10 +15,10 @@
"command-line-args": "^5.1.1", "command-line-args": "^5.1.1",
"command-line-usage": "^6.1.1", "command-line-usage": "^6.1.1",
"gif-encoder": "^0.7.2", "gif-encoder": "^0.7.2",
"js-yaml": "^3.14.0", "js-yaml": "^3.14.1",
"mx-puppet-bridge": "0.1.0-1", "mx-puppet-bridge": "0.1.0-1",
"node-steam-user": "0.0.3", "node-steam-user": "0.0.3",
"steam-user": "icewind1991/node-steam-user#bbcode-sticker", "steam-user": "github:icewind1991/node-steam-user#60c6728",
"steamcommunity": "3.42.0", "steamcommunity": "3.42.0",
"steamid": "1.1.3", "steamid": "1.1.3",
"stream-buffers": "^3.0.2", "stream-buffers": "^3.0.2",
@ -26,8 +26,8 @@
}, },
"devDependencies": { "devDependencies": {
"@types/gif-encoder": "^0.7.0", "@types/gif-encoder": "^0.7.0",
"@types/node": "^14.14.10", "@types/node": "^14.14.16",
"@types/steamid": "^1.1.0", "@types/steamid": "^1.1.0",
"typescript": "^4.1.2" "typescript": "^4.1.3"
} }
} }

View file

@ -46,7 +46,7 @@ async function apngToGif(sourceUrl: string): Promise<Buffer> {
return output.getContents(); return output.getContents();
} }
async function formatBBCode(steam: Steam, puppetId: number, node: BBCodeNode, fromSteamId?: SteamID): Promise<ImageMessage | TextMessage> { async function formatBBCode(steam: Steam, puppetId: number, node: BBCodeNode, message: IIncomingFriendMessage | IIncomingChatMessage): Promise<ImageMessage | TextMessage> {
if (node.tag === 'img') { if (node.tag === 'img') {
return { return {
kind: "image", kind: "image",
@ -72,7 +72,7 @@ async function formatBBCode(steam: Steam, puppetId: number, node: BBCodeNode, fr
} else if (node.tag === 'gameinvite') { } else if (node.tag === 'gameinvite') {
let game = await steam.getProduct(puppetId, node.attrs['appid']); let game = await steam.getProduct(puppetId, node.attrs['appid']);
if (steam.getSteamId(puppetId) === fromSteamId) { if (message['local_echo']) {
return { return {
kind: "text", kind: "text",
body: "", body: "",
@ -92,12 +92,11 @@ export async function exportMessageForSending(
steam: Steam, steam: Steam,
puppetId: number, puppetId: number,
message: IIncomingFriendMessage | IIncomingChatMessage, message: IIncomingFriendMessage | IIncomingChatMessage,
fromSteamId?: SteamID
): Promise<(TextMessage | ImageMessage)[]> { ): Promise<(TextMessage | ImageMessage)[]> {
if (message.message_bbcode_parsed) { if (message.message_bbcode_parsed) {
let parts = await Promise.all(message.message_bbcode_parsed.map(node => { let parts = await Promise.all(message.message_bbcode_parsed.map(node => {
if (isBBCode(node)) { if (isBBCode(node)) {
return formatBBCode(steam, puppetId, node, message['steamid_friend']); return formatBBCode(steam, puppetId, node, message);
} else { } else {
return {kind: "text", body: node} as TextMessage; return {kind: "text", body: node} as TextMessage;
} }