Compare commits
3 Commits
master
...
kt-version
Author | SHA1 | Date |
---|---|---|
Andrew Ferrazzutti | c908f0eb50 | |
Andrew Ferrazzutti | 73809ba087 | |
Andrew Ferrazzutti | 79a5e74fde |
|
@ -424,10 +424,10 @@ class User(DBUser, BaseUser):
|
||||||
state_event=BridgeStateEvent.UNKNOWN_ERROR,
|
state_event=BridgeStateEvent.UNKNOWN_ERROR,
|
||||||
error_code="kt-reconnection-error",
|
error_code="kt-reconnection-error",
|
||||||
)
|
)
|
||||||
except Exception:
|
except Exception as e:
|
||||||
self.log.exception("Error connecting to KakaoTalk")
|
self.log.exception("Error connecting to KakaoTalk")
|
||||||
await self.send_bridge_notice(
|
await self.send_bridge_notice(
|
||||||
"Failed to connect to KakaoTalk: unknown error (see logs for more details)",
|
f"Failed to connect to KakaoTalk: {e.message}",
|
||||||
edit=event_id,
|
edit=event_id,
|
||||||
state_event=BridgeStateEvent.UNKNOWN_ERROR,
|
state_event=BridgeStateEvent.UNKNOWN_ERROR,
|
||||||
error_code="kt-reconnection-error",
|
error_code="kt-reconnection-error",
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"arg": "^4.1.3",
|
"arg": "^4.1.3",
|
||||||
|
"hash-wasm": "^4.8.0",
|
||||||
"node-kakao": "4.5.0",
|
"node-kakao": "4.5.0",
|
||||||
"systemd-daemon": "^1.1.2"
|
"systemd-daemon": "^1.1.2"
|
||||||
},
|
},
|
||||||
|
|
|
@ -40,6 +40,7 @@ const { OpenChannelUserPerm } = openlink
|
||||||
import chat from "node-kakao/chat"
|
import chat from "node-kakao/chat"
|
||||||
const { KnownChatType } = chat
|
const { KnownChatType } = chat
|
||||||
|
|
||||||
|
import * as modutil from "./modutil.js"
|
||||||
import { emitLines, promisify } from "./util.js"
|
import { emitLines, promisify } from "./util.js"
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -581,7 +582,7 @@ export default class PeerClient {
|
||||||
* @param {string} uuid
|
* @param {string} uuid
|
||||||
*/
|
*/
|
||||||
async #createAuthClient(uuid) {
|
async #createAuthClient(uuid) {
|
||||||
return await AuthApiClient.create(this.deviceName, uuid)
|
return await AuthApiClient.create(this.deviceName, uuid, {}, modutil.ModXVCProvider)
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO Wrapper for per-user commands
|
// TODO Wrapper for per-user commands
|
||||||
|
|
|
@ -22,11 +22,6 @@ import sd from "systemd-daemon"
|
||||||
import ClientManager from "./clientmanager.js"
|
import ClientManager from "./clientmanager.js"
|
||||||
|
|
||||||
|
|
||||||
throw Error(
|
|
||||||
"Using this bridge may currently cause your KakaoTalk to be BANNED! " +
|
|
||||||
"If you wish to use it anyways, please remove this error from source code first."
|
|
||||||
)
|
|
||||||
|
|
||||||
const args = arg({
|
const args = arg({
|
||||||
"--config": String,
|
"--config": String,
|
||||||
"-c": "--config",
|
"-c": "--config",
|
||||||
|
|
|
@ -0,0 +1,30 @@
|
||||||
|
// matrix-appservice-kakaotalk - A Matrix-KakaoTalk puppeting bridge.
|
||||||
|
// Copyright (C) 2022 Tulir Asokan, Andrew Ferrazzutti
|
||||||
|
//
|
||||||
|
// This program is free software: you can redistribute it and/or modify
|
||||||
|
// it under the terms of the GNU Affero General Public License as published by
|
||||||
|
// the Free Software Foundation, either version 3 of the License, or
|
||||||
|
// (at your option) any later version.
|
||||||
|
//
|
||||||
|
// This program is distributed in the hope that it will be useful,
|
||||||
|
// but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
// GNU Affero General Public License for more details.
|
||||||
|
//
|
||||||
|
// You should have received a copy of the GNU Affero General Public License
|
||||||
|
// along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
|
import { sha512 } from "hash-wasm"
|
||||||
|
|
||||||
|
import kakao from "node-kakao"
|
||||||
|
const { DefaultConfiguration } = kakao
|
||||||
|
|
||||||
|
|
||||||
|
DefaultConfiguration.version = "3.4.2"
|
||||||
|
DefaultConfiguration.appVersion = "3.4.2.3187"
|
||||||
|
|
||||||
|
export const ModXVCProvider = {
|
||||||
|
toFullXVCKey(deviceUUID, userAgent, email) {
|
||||||
|
const source = `WINTER|${userAgent}|ARTHUR|${email}|${deviceUUID}`
|
||||||
|
return sha512(source)
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue