This commit is contained in:
theluyuan 2022-06-02 15:45:35 +08:00
parent 10aebe67e7
commit 9bfa5a9b9c
9 changed files with 182 additions and 11 deletions

11
.vscode/launch.json vendored
View File

@ -1,15 +1,12 @@
{
// 使 IntelliSense
//
// 访: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "pwa-chrome",
"type": "node-terminal",
"name": "Run Script: start",
"request": "launch",
"name": "Launch Chrome against localhost",
"url": "http://localhost:8080",
"webRoot": "${workspaceFolder}"
"command": "yarn run start",
"cwd": "${workspaceFolder}"
}
]
}

View File

@ -14,11 +14,11 @@ ws.on('GUILD_MEMBERS', (data) => {
console.log('[GUILD_MEMBERS] 事件接收 :', data);
});
ws.on('GUILD_MESSAGES', (data) => {
// console.log('[GUILD_MESSAGES] 事件接收 :', JSON.stringify(data));
console.log('[GUILD_MESSAGES] 事件接收 :', JSON.stringify(data));
if(data.eventType == "MESSAGE_CREATE"){
messageCreate(data.msg)
messageCreate(data)
}else if(data.eventType == "MESSAGE_DELETE"){
messageDelete(data.msg)
messageDelete(data)
}
});
ws.on('GUILD_MESSAGE_REACTIONS', (data) => {

View File

@ -0,0 +1,6 @@
import { client } from "./base.js";
export async function getRole(guildId){
let { data } = await client.roleApi.roles(guildId);
return data
}

31
bin/mysql/base.js Normal file
View File

@ -0,0 +1,31 @@
import mysql from "mysql"
import { mysqlConfig } from "../../config/index.js";
function connection(){
return new Promise((res,rej)=>{
const c = mysql.createConnection(mysqlConfig);
c.connect(function (err) {
if (err) {
throw new Error("connect mysql error",err)
}
res(c)
});
})
}
export function query(sql){
return new Promise(async (res)=>{
const c = await connection()
c.query(sql,(err,data)=>{
if(err){
throw new Error("select error")
}else {
c.destroy()
res(data)
}
})
})
}

24
bin/mysql/index.js Normal file
View File

@ -0,0 +1,24 @@
import { mysqlConfig } from "../../config/index.js"
import { query } from "./base.js"
const dataname = mysqlConfig.database
/**
* 判断数据表是否存在
* @param {String} name 数据表名
* @return {Boolend} true 存在 false 不存在
*/
export async function isTable(name){
const list = await query("show tables")
for(const i in list){
console.log(list[i]["Tables_in_" + dataname])
if(name == list[i]["Tables_in_" + dataname]){
return true
}
}
return false
}
console.log(await isTable("aaa"))

7
config/index.js Normal file
View File

@ -0,0 +1,7 @@
export const mysqlConfig = {
host: "localhost",
port: 3306,
database: "qqbot",
user: "root",
password: "root"
}

View File

@ -4,7 +4,10 @@
"main": "index.js",
"license": "MIT",
"dependencies": {
"dayjs": "^1.11.2",
"memory-cache": "^0.2.0",
"mitt": "^3.0.0",
"mysql": "^2.18.1",
"qq-guild-bot": "^2.9.4"
},
"scripts": {

View File

@ -1,10 +1,33 @@
import dayjs from "dayjs"
import { getRole } from "../../bin/channel-core/tools.js"
import { onMessageCreate } from "../../bin/message/index.js"
function init(){
}
async function updateActive(member,author,guildId){
const jointime = dayjs(member.joined_at)
// console.log(time.format('YYYY-MM-DD HH:mm:ss'))
const nickname = member.nick
const roles = []
const avatar = author.avatar
const id = author.id
const bot = author.bot
const username = author.username
const roleList = await getRole(guildId)
console.log(roleList)
}
/**
* 收到消息处理函数
* @param {Object} msg 消息对象
*/
function createMessage(msg){
function createMessage({msg}){
console.log("收到消息",msg)
updateActive(msg.member,msg.author,msg.guild_id)
}
onMessageCreate(createMessage)

View File

@ -15,6 +15,11 @@ axios@>=0.21.1:
follow-redirects "^1.14.9"
form-data "^4.0.0"
bignumber.js@9.0.0:
version "9.0.0"
resolved "https://registry.npmmirror.com/bignumber.js/-/bignumber.js-9.0.0.tgz#805880f84a329b5eac6e7cb6f8274b6d82bdf075"
integrity sha512-t/OYhhJ2SD+YGBQcjY8GzzDHEk9f3nerxjtfa6tlMXfe7frs/WozhvCNoGvpM0P3bNf3Gq5ZRMlGr5f3r4/N8A==
combined-stream@^1.0.8:
version "1.0.8"
resolved "https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f"
@ -22,6 +27,16 @@ combined-stream@^1.0.8:
dependencies:
delayed-stream "~1.0.0"
core-util-is@~1.0.0:
version "1.0.3"
resolved "https://registry.npmmirror.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==
dayjs@^1.11.2:
version "1.11.2"
resolved "https://registry.npmmirror.com/dayjs/-/dayjs-1.11.2.tgz#fa0f5223ef0d6724b3d8327134890cfe3d72fbe5"
integrity sha512-F4LXf1OeU9hrSYRPTTj/6FbO4HTjPKXvEIC1P2kcnFurViINCVk3ZV0xAS3XVx9MkMsXbbqlK6hjseaYbgKEHw==
delayed-stream@~1.0.0:
version "1.0.0"
resolved "https://registry.npmmirror.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619"
@ -41,11 +56,26 @@ form-data@^4.0.0:
combined-stream "^1.0.8"
mime-types "^2.1.12"
inherits@~2.0.3:
version "2.0.4"
resolved "https://registry.npmmirror.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
isarray@~1.0.0:
version "1.0.0"
resolved "https://registry.npmmirror.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11"
integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==
loglevel@^1.8.0:
version "1.8.0"
resolved "https://registry.npmmirror.com/loglevel/-/loglevel-1.8.0.tgz#e7ec73a57e1e7b419cb6c6ac06bf050b67356114"
integrity sha512-G6A/nJLRgWOuuwdNuA6koovfEV1YpqqAG4pRUlFaz3jj2QNZ8M4vBqnVA+HBTmU/AMNUtlOsMmSpF6NyOjztbA==
memory-cache@^0.2.0:
version "0.2.0"
resolved "https://registry.npmmirror.com/memory-cache/-/memory-cache-0.2.0.tgz#7890b01d52c00c8ebc9d533e1f8eb17e3034871a"
integrity sha512-OcjA+jzjOYzKmKS6IQVALHLVz+rNTMPoJvCztFaZxwG14wtAW7VRZjwTQu06vKCYOxh4jVnik7ya0SXTB0W+xA==
mime-db@1.52.0:
version "1.52.0"
resolved "https://registry.npmmirror.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70"
@ -63,6 +93,21 @@ mitt@^3.0.0:
resolved "https://registry.npmmirror.com/mitt/-/mitt-3.0.0.tgz#69ef9bd5c80ff6f57473e8d89326d01c414be0bd"
integrity sha512-7dX2/10ITVyqh4aOSVI9gdape+t9l2/8QxHrFmUXu4EEUpdlxl6RudZUPZoc+zuY2hk1j7XxVroIVIan/pD/SQ==
mysql@^2.18.1:
version "2.18.1"
resolved "https://registry.npmmirror.com/mysql/-/mysql-2.18.1.tgz#2254143855c5a8c73825e4522baf2ea021766717"
integrity sha512-Bca+gk2YWmqp2Uf6k5NFEurwY/0td0cpebAucFpY/3jhrwrVGuxU2uQFCHjU19SJfje0yQvi+rVWdq78hR5lig==
dependencies:
bignumber.js "9.0.0"
readable-stream "2.3.7"
safe-buffer "5.1.2"
sqlstring "2.3.1"
process-nextick-args@~2.0.0:
version "2.0.1"
resolved "https://registry.npmmirror.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==
qq-guild-bot@^2.9.4:
version "2.9.4"
resolved "https://registry.npmmirror.com/qq-guild-bot/-/qq-guild-bot-2.9.4.tgz#5c697746fa9402a3c4537dd983571444ba497b1d"
@ -72,6 +117,19 @@ qq-guild-bot@^2.9.4:
resty-client "0.0.5"
ws "^7.4.4"
readable-stream@2.3.7:
version "2.3.7"
resolved "https://registry.npmmirror.com/readable-stream/-/readable-stream-2.3.7.tgz#1eca1cf711aef814c04f62252a36a62f6cb23b57"
integrity sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==
dependencies:
core-util-is "~1.0.0"
inherits "~2.0.3"
isarray "~1.0.0"
process-nextick-args "~2.0.0"
safe-buffer "~5.1.1"
string_decoder "~1.1.1"
util-deprecate "~1.0.1"
resty-client@0.0.5:
version "0.0.5"
resolved "https://registry.npmmirror.com/resty-client/-/resty-client-0.0.5.tgz#f98e143fd824e5844d46c47e11c81567e58fac07"
@ -79,6 +137,28 @@ resty-client@0.0.5:
dependencies:
axios ">=0.21.1"
safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1:
version "5.1.2"
resolved "https://registry.npmmirror.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d"
integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==
sqlstring@2.3.1:
version "2.3.1"
resolved "https://registry.npmmirror.com/sqlstring/-/sqlstring-2.3.1.tgz#475393ff9e91479aea62dcaf0ca3d14983a7fb40"
integrity sha512-ooAzh/7dxIG5+uDik1z/Rd1vli0+38izZhGzSa34FwR7IbelPWCCKSNIl8jlL/F7ERvy8CB2jNeM1E9i9mXMAQ==
string_decoder@~1.1.1:
version "1.1.1"
resolved "https://registry.npmmirror.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8"
integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==
dependencies:
safe-buffer "~5.1.0"
util-deprecate@~1.0.1:
version "1.0.2"
resolved "https://registry.npmmirror.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf"
integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==
ws@^7.4.4:
version "7.5.8"
resolved "https://registry.npmmirror.com/ws/-/ws-7.5.8.tgz#ac2729881ab9e7cbaf8787fe3469a48c5c7f636a"