add workflows
This commit is contained in:
19
.github/workflows/deploy.yaml
vendored
Normal file
19
.github/workflows/deploy.yaml
vendored
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
name: Deploy
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: ["canary"]
|
||||||
|
workflow_dispatch:
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
runs-on: self-hosted
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v3
|
||||||
|
- name: Build image
|
||||||
|
run: docker build -t ${{ github.repository }} .
|
||||||
|
- name: Deploy image
|
||||||
|
run: |
|
||||||
|
docker stop ${{ github.event.repository.name }} || true
|
||||||
|
docker rm ${{ github.event.repository.name }} || true
|
||||||
|
docker run -d -e "DISCORD_TOKEN=${{ secrets.DISCORD_TOKEN }}" -e "DATABASE_URL=${{ secrets.DATABASE_URL }}" --restart always --name ${{ github.event.repository.name }} ${{ github.repository }}
|
||||||
3
.gitignore
vendored
3
.gitignore
vendored
@@ -1,5 +1,4 @@
|
|||||||
/node_modules
|
/node_modules
|
||||||
.env
|
.env
|
||||||
package-lock.json
|
package-lock.json
|
||||||
/src/badges
|
/src/badges
|
||||||
/prisma
|
|
||||||
4
index.js
4
index.js
@@ -54,12 +54,12 @@ cl.on("messageCreate", async (msg) => {
|
|||||||
|
|
||||||
//exp
|
//exp
|
||||||
if (!msg.content.startsWith(cl.cfg.prefix)) {
|
if (!msg.content.startsWith(cl.cfg.prefix)) {
|
||||||
client.messageCount(msg.author.id);
|
client.messageCount(msg.author.id, msg.channel.id);
|
||||||
if (await redis.expCheck(msg.author.id, redisConnection)) {
|
if (await redis.expCheck(msg.author.id, redisConnection)) {
|
||||||
client.addExp(msg.author.id, 10, 25);
|
client.addExp(msg.author.id, 10, 25);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
client.messageCount(msg.author.id);
|
//client.messageCount(msg.author.id);
|
||||||
}
|
}
|
||||||
|
|
||||||
const args = msg.content.slice(cl.cfg.prefix.length).trim().split(/ +/);
|
const args = msg.content.slice(cl.cfg.prefix.length).trim().split(/ +/);
|
||||||
|
|||||||
56
package-lock.json
generated
56
package-lock.json
generated
@@ -15,8 +15,8 @@
|
|||||||
"daemon": "^1.1.0",
|
"daemon": "^1.1.0",
|
||||||
"discord.js": "^13.6.0",
|
"discord.js": "^13.6.0",
|
||||||
"dotenv": "^10.0.0",
|
"dotenv": "^10.0.0",
|
||||||
"nodemon": "^2.0.15",
|
"nodemon": "^2.0.16",
|
||||||
"prisma": "^3.12.0",
|
"prisma": "^3.13.0",
|
||||||
"redis": "^4.0.4"
|
"redis": "^4.0.4"
|
||||||
},
|
},
|
||||||
"engines": {
|
"engines": {
|
||||||
@@ -187,9 +187,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/@prisma/engines": {
|
"node_modules/@prisma/engines": {
|
||||||
"version": "3.12.0-37.22b822189f46ef0dc5c5b503368d1bee01213980",
|
"version": "3.13.0-17.efdf9b1183dddfd4258cd181a72125755215ab7b",
|
||||||
"resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-3.12.0-37.22b822189f46ef0dc5c5b503368d1bee01213980.tgz",
|
"resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-3.13.0-17.efdf9b1183dddfd4258cd181a72125755215ab7b.tgz",
|
||||||
"integrity": "sha512-zULjkN8yhzS7B3yeEz4aIym4E2w1ChrV12i14pht3ePFufvsAvBSoZ+tuXMvfSoNTgBS5E4bolRzLbMmbwkkMQ==",
|
"integrity": "sha512-Ip9CcCeUocH61eXu4BUGpvl5KleQyhcUVLpWCv+0ZmDv44bFaDpREqjGHHdRupvPN/ugB6gTlD9b9ewdj02yVA==",
|
||||||
"hasInstallScript": true
|
"hasInstallScript": true
|
||||||
},
|
},
|
||||||
"node_modules/@prisma/engines-version": {
|
"node_modules/@prisma/engines-version": {
|
||||||
@@ -1355,9 +1355,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/nodemon": {
|
"node_modules/nodemon": {
|
||||||
"version": "2.0.15",
|
"version": "2.0.16",
|
||||||
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz",
|
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz",
|
||||||
"integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==",
|
"integrity": "sha512-zsrcaOfTWRuUzBn3P44RDliLlp263Z/76FPoHFr3cFFkOz0lTPAcIw8dCzfdVIx/t3AtDYCZRCDkoCojJqaG3w==",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"chokidar": "^3.5.2",
|
"chokidar": "^3.5.2",
|
||||||
@@ -1497,12 +1497,13 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/prisma": {
|
"node_modules/prisma": {
|
||||||
"version": "3.12.0",
|
"version": "3.13.0",
|
||||||
"resolved": "https://registry.npmjs.org/prisma/-/prisma-3.12.0.tgz",
|
"resolved": "https://registry.npmjs.org/prisma/-/prisma-3.13.0.tgz",
|
||||||
"integrity": "sha512-ltCMZAx1i0i9xuPM692Srj8McC665h6E5RqJom999sjtVSccHSD8Z+HSdBN2183h9PJKvC5dapkn78dd0NWMBg==",
|
"integrity": "sha512-oO1auBnBtieGdiN+57IgsA9Vr7Sy4HkILi1KSaUG4mpKfEbnkTGnLOxAqjLed+K2nsG/GtE1tJBtB7JxN1a78Q==",
|
||||||
"hasInstallScript": true,
|
"hasInstallScript": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@prisma/engines": "3.12.0-37.22b822189f46ef0dc5c5b503368d1bee01213980"
|
"@prisma/engines": "3.13.0-17.efdf9b1183dddfd4258cd181a72125755215ab7b",
|
||||||
|
"ts-pattern": "^4.0.1"
|
||||||
},
|
},
|
||||||
"bin": {
|
"bin": {
|
||||||
"prisma": "build/index.js",
|
"prisma": "build/index.js",
|
||||||
@@ -1843,6 +1844,11 @@
|
|||||||
"resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.1.tgz",
|
||||||
"integrity": "sha512-hvE+ZYXuINrx6Ei6D6hz+PTim0Uf++dYbK9FFifLNwQj+RwKquhQpn868yZsCtJYiclZF1u8l6WZxxKi+vv7Rg=="
|
"integrity": "sha512-hvE+ZYXuINrx6Ei6D6hz+PTim0Uf++dYbK9FFifLNwQj+RwKquhQpn868yZsCtJYiclZF1u8l6WZxxKi+vv7Rg=="
|
||||||
},
|
},
|
||||||
|
"node_modules/ts-pattern": {
|
||||||
|
"version": "4.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/ts-pattern/-/ts-pattern-4.0.2.tgz",
|
||||||
|
"integrity": "sha512-eHqR/7A6fcw05vCOfnL6RwgGJbVi9G/YHTdYdjYmElhDdJ1SMn7pWs+6+YuxygaFwQS/g+cIDlu+UD8IVpur1A=="
|
||||||
|
},
|
||||||
"node_modules/tslib": {
|
"node_modules/tslib": {
|
||||||
"version": "2.3.1",
|
"version": "2.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
|
||||||
@@ -2150,9 +2156,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"@prisma/engines": {
|
"@prisma/engines": {
|
||||||
"version": "3.12.0-37.22b822189f46ef0dc5c5b503368d1bee01213980",
|
"version": "3.13.0-17.efdf9b1183dddfd4258cd181a72125755215ab7b",
|
||||||
"resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-3.12.0-37.22b822189f46ef0dc5c5b503368d1bee01213980.tgz",
|
"resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-3.13.0-17.efdf9b1183dddfd4258cd181a72125755215ab7b.tgz",
|
||||||
"integrity": "sha512-zULjkN8yhzS7B3yeEz4aIym4E2w1ChrV12i14pht3ePFufvsAvBSoZ+tuXMvfSoNTgBS5E4bolRzLbMmbwkkMQ=="
|
"integrity": "sha512-Ip9CcCeUocH61eXu4BUGpvl5KleQyhcUVLpWCv+0ZmDv44bFaDpREqjGHHdRupvPN/ugB6gTlD9b9ewdj02yVA=="
|
||||||
},
|
},
|
||||||
"@prisma/engines-version": {
|
"@prisma/engines-version": {
|
||||||
"version": "3.12.0-37.22b822189f46ef0dc5c5b503368d1bee01213980",
|
"version": "3.12.0-37.22b822189f46ef0dc5c5b503368d1bee01213980",
|
||||||
@@ -3016,9 +3022,9 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nodemon": {
|
"nodemon": {
|
||||||
"version": "2.0.15",
|
"version": "2.0.16",
|
||||||
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz",
|
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz",
|
||||||
"integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==",
|
"integrity": "sha512-zsrcaOfTWRuUzBn3P44RDliLlp263Z/76FPoHFr3cFFkOz0lTPAcIw8dCzfdVIx/t3AtDYCZRCDkoCojJqaG3w==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"chokidar": "^3.5.2",
|
"chokidar": "^3.5.2",
|
||||||
"debug": "^3.2.7",
|
"debug": "^3.2.7",
|
||||||
@@ -3113,11 +3119,12 @@
|
|||||||
"integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc="
|
"integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc="
|
||||||
},
|
},
|
||||||
"prisma": {
|
"prisma": {
|
||||||
"version": "3.12.0",
|
"version": "3.13.0",
|
||||||
"resolved": "https://registry.npmjs.org/prisma/-/prisma-3.12.0.tgz",
|
"resolved": "https://registry.npmjs.org/prisma/-/prisma-3.13.0.tgz",
|
||||||
"integrity": "sha512-ltCMZAx1i0i9xuPM692Srj8McC665h6E5RqJom999sjtVSccHSD8Z+HSdBN2183h9PJKvC5dapkn78dd0NWMBg==",
|
"integrity": "sha512-oO1auBnBtieGdiN+57IgsA9Vr7Sy4HkILi1KSaUG4mpKfEbnkTGnLOxAqjLed+K2nsG/GtE1tJBtB7JxN1a78Q==",
|
||||||
"requires": {
|
"requires": {
|
||||||
"@prisma/engines": "3.12.0-37.22b822189f46ef0dc5c5b503368d1bee01213980"
|
"@prisma/engines": "3.13.0-17.efdf9b1183dddfd4258cd181a72125755215ab7b",
|
||||||
|
"ts-pattern": "^4.0.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"pstree.remy": {
|
"pstree.remy": {
|
||||||
@@ -3374,6 +3381,11 @@
|
|||||||
"resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.1.tgz",
|
||||||
"integrity": "sha512-hvE+ZYXuINrx6Ei6D6hz+PTim0Uf++dYbK9FFifLNwQj+RwKquhQpn868yZsCtJYiclZF1u8l6WZxxKi+vv7Rg=="
|
"integrity": "sha512-hvE+ZYXuINrx6Ei6D6hz+PTim0Uf++dYbK9FFifLNwQj+RwKquhQpn868yZsCtJYiclZF1u8l6WZxxKi+vv7Rg=="
|
||||||
},
|
},
|
||||||
|
"ts-pattern": {
|
||||||
|
"version": "4.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/ts-pattern/-/ts-pattern-4.0.2.tgz",
|
||||||
|
"integrity": "sha512-eHqR/7A6fcw05vCOfnL6RwgGJbVi9G/YHTdYdjYmElhDdJ1SMn7pWs+6+YuxygaFwQS/g+cIDlu+UD8IVpur1A=="
|
||||||
|
},
|
||||||
"tslib": {
|
"tslib": {
|
||||||
"version": "2.3.1",
|
"version": "2.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
|
||||||
|
|||||||
@@ -27,8 +27,8 @@
|
|||||||
"daemon": "^1.1.0",
|
"daemon": "^1.1.0",
|
||||||
"discord.js": "^13.6.0",
|
"discord.js": "^13.6.0",
|
||||||
"dotenv": "^10.0.0",
|
"dotenv": "^10.0.0",
|
||||||
"nodemon": "^2.0.15",
|
"nodemon": "^2.0.16",
|
||||||
"prisma": "^3.12.0",
|
"prisma": "^3.13.0",
|
||||||
"redis": "^4.0.4"
|
"redis": "^4.0.4"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ model badges {
|
|||||||
badge_id Int @id
|
badge_id Int @id
|
||||||
badge_name String
|
badge_name String
|
||||||
badge_description String
|
badge_description String
|
||||||
|
badge_visibility Boolean @default(true)
|
||||||
badge_type Int @default(0)
|
badge_type Int @default(0)
|
||||||
givenbadges givenbadges[]
|
givenbadges givenbadges[]
|
||||||
}
|
}
|
||||||
@@ -27,10 +28,20 @@ model givenbadges {
|
|||||||
}
|
}
|
||||||
|
|
||||||
model users {
|
model users {
|
||||||
user_id String @id(map: "user_pkey")
|
user_id String @id(map: "user_pkey")
|
||||||
exp Int @default(0)
|
exp Int @default(0)
|
||||||
msg_count Int @default(0)
|
voice_time Int @default(0)
|
||||||
voice_time Int @default(0)
|
lvl Int @default(0)
|
||||||
lvl Int @default(0)
|
givenbadges givenbadges[]
|
||||||
givenbadges givenbadges[]
|
sendmessages sendmessages[]
|
||||||
|
}
|
||||||
|
|
||||||
|
model sendmessages {
|
||||||
|
id Int @id @default(autoincrement())
|
||||||
|
user_id String
|
||||||
|
date DateTime @db.Date
|
||||||
|
channel String
|
||||||
|
msg_count Int
|
||||||
|
users users @relation(fields: [user_id], references: [user_id], onDelete: NoAction, onUpdate: NoAction, map: "user_id")
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,5 +1,3 @@
|
|||||||
const { ReactionUserManager } = require("discord.js");
|
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
name: "profile",
|
name: "profile",
|
||||||
async execute(cl, msg, args, connect) {
|
async execute(cl, msg, args, connect) {
|
||||||
|
|||||||
@@ -26,17 +26,22 @@ class Postgres {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async msg_state(userID) {
|
||||||
|
return await this.client.users.findUnique({
|
||||||
|
where: {
|
||||||
|
user_id: userID,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
async addExp(userID, min, max) {
|
async addExp(userID, min, max) {
|
||||||
await this.#ifExist(userID).then(async () => {
|
await this.#ifUserExist(userID).then(async () => {
|
||||||
const rExp = randomExp(min, max);
|
const rExp = randomExp(min, max);
|
||||||
return await this.client.users.update({
|
return await this.client.users.update({
|
||||||
where: {
|
where: {
|
||||||
user_id: userID,
|
user_id: userID,
|
||||||
},
|
},
|
||||||
data: {
|
data: {
|
||||||
msg_count: {
|
|
||||||
increment: 1,
|
|
||||||
},
|
|
||||||
exp: {
|
exp: {
|
||||||
increment: rExp,
|
increment: rExp,
|
||||||
},
|
},
|
||||||
@@ -56,13 +61,28 @@ class Postgres {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
async #ifExist(userID) {
|
|
||||||
if ((await !this.profile(userID)) == null) {
|
async #ifUserExist(userID) {
|
||||||
|
if ((await this.profile(userID)) == null) {
|
||||||
|
console.log("Account");
|
||||||
await this.client.users.create({
|
await this.client.users.create({
|
||||||
data: {
|
data: {
|
||||||
user_id: userID,
|
user_id: userID,
|
||||||
msg_count: 0,
|
|
||||||
lvl: 0,
|
lvl: 0,
|
||||||
|
exp: 0,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async #ifMsgsExist(userID, channelID) {
|
||||||
|
if ((await this.profile(userID)) == null) {
|
||||||
|
console.log("Account");
|
||||||
|
await this.client.users.create({
|
||||||
|
data: {
|
||||||
|
user_id: userID,
|
||||||
|
lvl: 0,
|
||||||
|
exp: 0,
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user