0.1.19 • Published 2 years ago
hibot v0.1.19
hibot
Just a bot.
Installation
Simple install as a dependency using npm:
npm install -g hibot
Usage
import { createServer } from "hibot";
type TaskResponse<T = any> = {
id: TaskId;
response: T;
cost: number;
start: number;
ended: boolean;
};
let server = createServer({
port: 30000,
onConnection(nodeId) {
console.log(`node[${nodeId}] is online.`);
server.boot(task);
},
onHeartbeat(clientId, stats: ClientStats) {},
onClose(nodeId) {
console.log(`node[${nodeId}] is offline.`);
},
onResponse(nodeId, taskResponse: TaskReponse) {},
});
You can also use a custom ws server.
import { createServer } from "hibot";
import { WebSocketServer } from "ws";
let server = createServer({
onConnection(nodeId) {
console.log(`node[${nodeId}] is online.`);
server.boot(task);
},
onHeartbeat(clientId, tasks) {},
onClose(nodeId) {
console.log(`node[${nodeId}] is offline.`);
},
onResponse(nodeId, taskResponse: TaskReponse) {},
});
const wss = new WebSocketServer({ port: 30000 });
wss.on("connection", (ws) => {
server.createClient(ws);
});
CLI
Server CLI
hibot server start | stop | status
Options:
-p, --port server port, default 30000
-t, --token token
-ap,--api_server_port api server port,default 30001
-d, --daemon run in deamon
Client CLI
hibot client start | stop | status
Options:
-id,--id client id
-t, --token token
-pf,--platform vendor, default 'pptr'
-d, --daemon run in deamon
API
/{api}?token={token}
method | api | body | response | |
---|---|---|---|---|
boot task | PUT | /tasks | Task | |
stop task | GET | /task/{task_id}/stop | ||
task screenshot | GET | /task/{task_id}/screenshot?type={jpeg/png/webp/mjpeg} | ||
clients | GET | /clients | Response<Array\<ClientStats>> | |
client | GET | /client/{client_id} | Response\<ClientStats> |
type Response<T> = { code: number; data: T };
enum TRIGGER_TYPE {
TIMER = "timer",
LOOP = "loop",
}
type PPTROptions = {
windowSize?: string;
proxyServer?: string;
cookies?: string;
userAgent?: string;
};
type Task = {
id: string;
clientId: string;
triggerType?: TRIGGER_TYPE;
// cron expression for timer
// time expression(e.g. 1h2m3s) for timer
triggerVal?: string;
remoteApi?: string;
script: string;
// The task remains after the bot is completed.
keepalive?: boolean;
options?: PPTROptions | Record<string, any>;
};
enum TASK_STATE {
CLOSED = 1,
RUNNING = 2,
}
type ClientStats = {
id: string;
tasks: Array<{ id: string; state: TASK_STATE }>;
usage: {
cpu: number; //percentage (from 0 to 100*vcore)
memory: number; //bytes
elapsed: number; //ms since the start of the process
timestamp: number; //ms since epoch
};
};
License
MIT
Copyright (c) 2020-present, Reruin
0.1.19
2 years ago
0.1.18
2 years ago
0.1.15
2 years ago
0.1.16
2 years ago
0.1.17
2 years ago
0.1.14
2 years ago
0.1.12
2 years ago
0.1.13
2 years ago
0.1.11
2 years ago
0.1.10
2 years ago
0.1.9
2 years ago
0.1.8
2 years ago
0.1.7
2 years ago
0.1.6
2 years ago
0.1.5
2 years ago
0.1.2
2 years ago
0.1.1
2 years ago
0.1.3
2 years ago
0.1.0
2 years ago