x
This commit is contained in:
@@ -0,0 +1,547 @@
|
||||
"use strict";
|
||||
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
var desc = Object.getOwnPropertyDescriptor(m, k);
|
||||
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
||||
desc = { enumerable: true, get: function() { return m[k]; } };
|
||||
}
|
||||
Object.defineProperty(o, k2, desc);
|
||||
}) : (function(o, m, k, k2) {
|
||||
if (k2 === undefined) k2 = k;
|
||||
o[k2] = m[k];
|
||||
}));
|
||||
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
||||
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
||||
}) : function(o, v) {
|
||||
o["default"] = v;
|
||||
});
|
||||
var __importStar = (this && this.__importStar) || function (mod) {
|
||||
if (mod && mod.__esModule) return mod;
|
||||
var result = {};
|
||||
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
||||
__setModuleDefault(result, mod);
|
||||
return result;
|
||||
};
|
||||
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
||||
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
||||
return new (P || (P = Promise))(function (resolve, reject) {
|
||||
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
||||
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
||||
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
||||
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
||||
});
|
||||
};
|
||||
var _a, _b;
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
exports.sleep = exports.sender = exports.Bucket = exports.Adapter = void 0;
|
||||
const srpc_1 = require("./srpc");
|
||||
const grpc_1 = __importStar(require("@grpc/grpc-js"));
|
||||
let client = new srpc_1.srpc.SillyGirlServiceClient("localhost:50051", grpc_1.credentials.createInsecure());
|
||||
class Sender {
|
||||
constructor(uuid) {
|
||||
this.uuid = uuid;
|
||||
}
|
||||
getUserId() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return new Promise((resolve, reject) => {
|
||||
client.SenderGetUserId(new srpc_1.srpc.SenderRequest({
|
||||
uuid: this.uuid,
|
||||
}), (err, resp) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else {
|
||||
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
getUserName() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return new Promise((resolve, reject) => {
|
||||
client.SenderGetUserName(new srpc_1.srpc.SenderRequest({
|
||||
uuid: this.uuid,
|
||||
}), (err, resp) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else {
|
||||
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
getChatId() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return new Promise((resolve, reject) => {
|
||||
client.SenderGetChatId(new srpc_1.srpc.SenderRequest({
|
||||
uuid: this.uuid,
|
||||
}), (err, resp) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else {
|
||||
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
getChatName() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return new Promise((resolve, reject) => {
|
||||
client.SenderGetChatName(new srpc_1.srpc.SenderRequest({
|
||||
uuid: this.uuid,
|
||||
}), (err, resp) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else {
|
||||
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
getMessageId() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return new Promise((resolve, reject) => {
|
||||
client.SenderGetMessageId(new srpc_1.srpc.SenderRequest({
|
||||
uuid: this.uuid,
|
||||
}), (err, resp) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else {
|
||||
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
getPlatform() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return new Promise((resolve, reject) => {
|
||||
client.SenderGetPlatform(new srpc_1.srpc.SenderRequest({
|
||||
uuid: this.uuid,
|
||||
}), (err, resp) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else {
|
||||
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
getBotId() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return new Promise((resolve, reject) => {
|
||||
client.SenderGetBotId(new srpc_1.srpc.SenderRequest({
|
||||
uuid: this.uuid,
|
||||
}), (err, resp) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else {
|
||||
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
getContent() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return new Promise((resolve, reject) => {
|
||||
client.SenderGetContent(new srpc_1.srpc.SenderRequest({
|
||||
uuid: this.uuid,
|
||||
}), (err, resp) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else {
|
||||
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
setContent(content) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return new Promise((resolve, reject) => {
|
||||
client.SenderSetContent(new srpc_1.srpc.SenderContentRequest({
|
||||
uuid: this.uuid,
|
||||
content,
|
||||
}), (err, resp) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else {
|
||||
resolve(undefined);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
continue() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return new Promise((resolve, reject) => {
|
||||
client.SenderContinue(new srpc_1.srpc.SenderRequest({
|
||||
uuid: this.uuid,
|
||||
}), (err, resp) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else {
|
||||
resolve(undefined);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
getAdapter() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return new Adapter({
|
||||
bot_id: yield this.getBotId(),
|
||||
platform: yield this.getPlatform(),
|
||||
});
|
||||
});
|
||||
}
|
||||
listen(options) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return new Promise((resolve, reject) => {
|
||||
let params = {
|
||||
uuid: this.uuid,
|
||||
rules: options === null || options === void 0 ? void 0 : options.rules,
|
||||
timeout: options === null || options === void 0 ? void 0 : options.timeout,
|
||||
listen_private: options === null || options === void 0 ? void 0 : options.listen_private,
|
||||
listen_group: options === null || options === void 0 ? void 0 : options.listen_group,
|
||||
allow_platforms: options === null || options === void 0 ? void 0 : options.allow_platforms,
|
||||
prohibit_platforms: options === null || options === void 0 ? void 0 : options.prohibit_platforms,
|
||||
allow_groups: options === null || options === void 0 ? void 0 : options.allow_groups,
|
||||
prohibit_groups: options === null || options === void 0 ? void 0 : options.prohibit_groups,
|
||||
allow_users: options === null || options === void 0 ? void 0 : options.allow_users,
|
||||
prohibit_users: options === null || options === void 0 ? void 0 : options.prohibit_users,
|
||||
};
|
||||
client.SenderListen(new srpc_1.srpc.SenderListenRequest(params), (err, resp) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else {
|
||||
if (resp === null || resp === void 0 ? void 0 : resp.value) {
|
||||
resolve(new Sender(resp.value));
|
||||
}
|
||||
else {
|
||||
reject(new Error("timeout"));
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
reply(content) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return new Promise((resolve, reject) => {
|
||||
client.SenderReply(new srpc_1.srpc.ReplyRequest({
|
||||
uuid: this.uuid,
|
||||
content,
|
||||
}), (err, resp) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else {
|
||||
resolve(resp === null || resp === void 0 ? void 0 : resp.value);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
action(options) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return;
|
||||
});
|
||||
}
|
||||
event() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return;
|
||||
});
|
||||
}
|
||||
}
|
||||
class Bucket {
|
||||
constructor(name) {
|
||||
this.name = name;
|
||||
}
|
||||
transform(v) {
|
||||
if (!v) {
|
||||
return undefined;
|
||||
}
|
||||
let result;
|
||||
if (v.startsWith("f:")) {
|
||||
result = parseFloat(v.replace("f:", ""));
|
||||
return result;
|
||||
}
|
||||
if (v.startsWith("d:")) {
|
||||
result = parseInt(v.replace("d:", ""));
|
||||
return result;
|
||||
}
|
||||
if (v.startsWith("b:")) {
|
||||
result = v.replace("b:", "") === "true";
|
||||
return result;
|
||||
}
|
||||
if (v.startsWith("o:")) {
|
||||
result = JSON.parse(v.replace("o:", ""));
|
||||
return result;
|
||||
}
|
||||
return v;
|
||||
}
|
||||
reverseTransform(value) {
|
||||
if (typeof value === "number" || typeof value === "boolean") {
|
||||
return value.toString();
|
||||
}
|
||||
if (typeof value === "object" && value !== null) {
|
||||
return "o:" + JSON.stringify(value);
|
||||
}
|
||||
if (value === undefined || value === null) {
|
||||
return "";
|
||||
}
|
||||
if (typeof value === "string") {
|
||||
if (!value) {
|
||||
return undefined;
|
||||
}
|
||||
if (!isNaN(parseFloat(value))) {
|
||||
return "f:" + parseFloat(value);
|
||||
}
|
||||
if (!isNaN(parseInt(value))) {
|
||||
return "d:" + parseInt(value);
|
||||
}
|
||||
if (value === "true" || value === "false") {
|
||||
return "b:" + (value === "true");
|
||||
}
|
||||
}
|
||||
return value;
|
||||
}
|
||||
get(key, defaultValue = undefined) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return new Promise((resolve, reject) => {
|
||||
client.BucketGet(new srpc_1.srpc.BucketKeyRequest({ name: this.name, key }), (err, resp) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else {
|
||||
resolve(this.transform(resp === null || resp === void 0 ? void 0 : resp.value) || defaultValue);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
set(key, value) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return new Promise((resolve, reject) => {
|
||||
client.BucketSet(new srpc_1.srpc.BucketSetRequest({
|
||||
name: this.name,
|
||||
key,
|
||||
value: this.reverseTransform(value),
|
||||
}), (err, resp) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else {
|
||||
resolve({
|
||||
message: resp === null || resp === void 0 ? void 0 : resp.message,
|
||||
changed: resp === null || resp === void 0 ? void 0 : resp.changed,
|
||||
});
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
getAll() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return new Promise((resolve, reject) => {
|
||||
client.BucketGetAll(new srpc_1.srpc.BucketRequest({ name: this.name }), (err, resp) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else {
|
||||
let values = {};
|
||||
if (resp === null || resp === void 0 ? void 0 : resp.value) {
|
||||
values = JSON.parse(resp === null || resp === void 0 ? void 0 : resp.value);
|
||||
for (let key in values) {
|
||||
values[key] = this.transform(values[key]);
|
||||
}
|
||||
}
|
||||
resolve(values);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
delete() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return new Promise((resolve, reject) => {
|
||||
client.BucketDelete(new srpc_1.srpc.BucketRequest({ name: this.name }), (err, resp) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else {
|
||||
resolve(undefined);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
keys() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return new Promise((resolve, reject) => {
|
||||
client.BucketKeys(new srpc_1.srpc.BucketRequest({ name: this.name }), (err, resp) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else {
|
||||
resolve(resp === null || resp === void 0 ? void 0 : resp.keys);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
len() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return new Promise((resolve, reject) => {
|
||||
client.BucketLen(new srpc_1.srpc.BucketRequest({ name: this.name }), (err, resp) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else {
|
||||
resolve(resp === null || resp === void 0 ? void 0 : resp.length);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
buckets() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return new Promise((resolve, reject) => {
|
||||
client.BucketBuckets(new srpc_1.srpc.Empty(), (err, resp) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else {
|
||||
resolve(resp === null || resp === void 0 ? void 0 : resp.buckets);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
_name() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return this.name;
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.Bucket = Bucket;
|
||||
class Adapter {
|
||||
constructor(options) {
|
||||
this.platform = options.platform;
|
||||
this.bot_id = options.bot_id;
|
||||
const call = client.AdapterRegist();
|
||||
if (options.replyHandler) {
|
||||
let callback = options.replyHandler;
|
||||
call.on("data", (response) => {
|
||||
let message = JSON.parse(response.value);
|
||||
const { echo, __type__ } = message;
|
||||
delete (message.__type__);
|
||||
delete (message.echo);
|
||||
if (__type__ == "reply") {
|
||||
call.write(new srpc_1.srpc.AdapterRegistRequest({
|
||||
bot_id: echo,
|
||||
platform: callback(message),
|
||||
}));
|
||||
}
|
||||
});
|
||||
call.on("error", (err) => {
|
||||
// console.error(err);
|
||||
});
|
||||
call.write(new srpc_1.srpc.AdapterRegistRequest({
|
||||
bot_id: options.bot_id,
|
||||
platform: options.platform,
|
||||
}));
|
||||
this.call = call;
|
||||
}
|
||||
}
|
||||
setActionHandler(func) {
|
||||
// 将从服务端不断接收action消息,并处理
|
||||
// 事件处理巨饼
|
||||
}
|
||||
receive(message) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
//投递消息
|
||||
return new Promise((resolve, reject) => {
|
||||
client.AdapterReceive(new srpc_1.srpc.AdapterRequest({
|
||||
platform: this.platform,
|
||||
bot_id: this.bot_id,
|
||||
value: JSON.stringify(message),
|
||||
}), (err, resp) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else if (resp === null || resp === void 0 ? void 0 : resp.value) {
|
||||
resolve(new Sender(resp.value));
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
push(message) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
//推送消息
|
||||
return new Promise((resolve, reject) => {
|
||||
client.AdapterPush(new srpc_1.srpc.AdapterRequest({
|
||||
platform: this.platform,
|
||||
bot_id: this.bot_id,
|
||||
value: JSON.stringify(message),
|
||||
}), (err, resp) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else if (resp === null || resp === void 0 ? void 0 : resp.value) {
|
||||
resolve(resp.value);
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
destroy() {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
this.call.cancel();
|
||||
});
|
||||
}
|
||||
sender(options) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return new Promise((resolve, reject) => {
|
||||
client.AdapterSender(new srpc_1.srpc.AdapterRequest({
|
||||
platform: this.platform,
|
||||
bot_id: this.bot_id,
|
||||
}), (err, resp) => {
|
||||
if (err) {
|
||||
reject(err);
|
||||
}
|
||||
else if (resp === null || resp === void 0 ? void 0 : resp.value) {
|
||||
resolve(new Sender(resp.value));
|
||||
}
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
exports.Adapter = Adapter;
|
||||
let sender = new Sender((_b = (_a = process.env) === null || _a === void 0 ? void 0 : _a.SENDER_ID) !== null && _b !== void 0 ? _b : "4d6371a8-2778-11ee-a3c2-821680fbbf6b");
|
||||
exports.sender = sender;
|
||||
function sleep(ms) {
|
||||
return __awaiter(this, void 0, void 0, function* () {
|
||||
return new Promise((resolve) => setTimeout(resolve, ms));
|
||||
});
|
||||
}
|
||||
exports.sleep = sleep;
|
||||
Reference in New Issue
Block a user