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 }}
|
||||
1
.gitignore
vendored
1
.gitignore
vendored
@@ -2,4 +2,3 @@
|
||||
.env
|
||||
package-lock.json
|
||||
/src/badges
|
||||
/prisma
|
||||
4
index.js
4
index.js
@@ -54,12 +54,12 @@ cl.on("messageCreate", async (msg) => {
|
||||
|
||||
//exp
|
||||
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)) {
|
||||
client.addExp(msg.author.id, 10, 25);
|
||||
}
|
||||
} else {
|
||||
client.messageCount(msg.author.id);
|
||||
//client.messageCount(msg.author.id);
|
||||
}
|
||||
|
||||
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",
|
||||
"discord.js": "^13.6.0",
|
||||
"dotenv": "^10.0.0",
|
||||
"nodemon": "^2.0.15",
|
||||
"prisma": "^3.12.0",
|
||||
"nodemon": "^2.0.16",
|
||||
"prisma": "^3.13.0",
|
||||
"redis": "^4.0.4"
|
||||
},
|
||||
"engines": {
|
||||
@@ -187,9 +187,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@prisma/engines": {
|
||||
"version": "3.12.0-37.22b822189f46ef0dc5c5b503368d1bee01213980",
|
||||
"resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-3.12.0-37.22b822189f46ef0dc5c5b503368d1bee01213980.tgz",
|
||||
"integrity": "sha512-zULjkN8yhzS7B3yeEz4aIym4E2w1ChrV12i14pht3ePFufvsAvBSoZ+tuXMvfSoNTgBS5E4bolRzLbMmbwkkMQ==",
|
||||
"version": "3.13.0-17.efdf9b1183dddfd4258cd181a72125755215ab7b",
|
||||
"resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-3.13.0-17.efdf9b1183dddfd4258cd181a72125755215ab7b.tgz",
|
||||
"integrity": "sha512-Ip9CcCeUocH61eXu4BUGpvl5KleQyhcUVLpWCv+0ZmDv44bFaDpREqjGHHdRupvPN/ugB6gTlD9b9ewdj02yVA==",
|
||||
"hasInstallScript": true
|
||||
},
|
||||
"node_modules/@prisma/engines-version": {
|
||||
@@ -1355,9 +1355,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/nodemon": {
|
||||
"version": "2.0.15",
|
||||
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz",
|
||||
"integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==",
|
||||
"version": "2.0.16",
|
||||
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz",
|
||||
"integrity": "sha512-zsrcaOfTWRuUzBn3P44RDliLlp263Z/76FPoHFr3cFFkOz0lTPAcIw8dCzfdVIx/t3AtDYCZRCDkoCojJqaG3w==",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"chokidar": "^3.5.2",
|
||||
@@ -1497,12 +1497,13 @@
|
||||
}
|
||||
},
|
||||
"node_modules/prisma": {
|
||||
"version": "3.12.0",
|
||||
"resolved": "https://registry.npmjs.org/prisma/-/prisma-3.12.0.tgz",
|
||||
"integrity": "sha512-ltCMZAx1i0i9xuPM692Srj8McC665h6E5RqJom999sjtVSccHSD8Z+HSdBN2183h9PJKvC5dapkn78dd0NWMBg==",
|
||||
"version": "3.13.0",
|
||||
"resolved": "https://registry.npmjs.org/prisma/-/prisma-3.13.0.tgz",
|
||||
"integrity": "sha512-oO1auBnBtieGdiN+57IgsA9Vr7Sy4HkILi1KSaUG4mpKfEbnkTGnLOxAqjLed+K2nsG/GtE1tJBtB7JxN1a78Q==",
|
||||
"hasInstallScript": true,
|
||||
"dependencies": {
|
||||
"@prisma/engines": "3.12.0-37.22b822189f46ef0dc5c5b503368d1bee01213980"
|
||||
"@prisma/engines": "3.13.0-17.efdf9b1183dddfd4258cd181a72125755215ab7b",
|
||||
"ts-pattern": "^4.0.1"
|
||||
},
|
||||
"bin": {
|
||||
"prisma": "build/index.js",
|
||||
@@ -1843,6 +1844,11 @@
|
||||
"resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.1.tgz",
|
||||
"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": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
|
||||
@@ -2150,9 +2156,9 @@
|
||||
}
|
||||
},
|
||||
"@prisma/engines": {
|
||||
"version": "3.12.0-37.22b822189f46ef0dc5c5b503368d1bee01213980",
|
||||
"resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-3.12.0-37.22b822189f46ef0dc5c5b503368d1bee01213980.tgz",
|
||||
"integrity": "sha512-zULjkN8yhzS7B3yeEz4aIym4E2w1ChrV12i14pht3ePFufvsAvBSoZ+tuXMvfSoNTgBS5E4bolRzLbMmbwkkMQ=="
|
||||
"version": "3.13.0-17.efdf9b1183dddfd4258cd181a72125755215ab7b",
|
||||
"resolved": "https://registry.npmjs.org/@prisma/engines/-/engines-3.13.0-17.efdf9b1183dddfd4258cd181a72125755215ab7b.tgz",
|
||||
"integrity": "sha512-Ip9CcCeUocH61eXu4BUGpvl5KleQyhcUVLpWCv+0ZmDv44bFaDpREqjGHHdRupvPN/ugB6gTlD9b9ewdj02yVA=="
|
||||
},
|
||||
"@prisma/engines-version": {
|
||||
"version": "3.12.0-37.22b822189f46ef0dc5c5b503368d1bee01213980",
|
||||
@@ -3016,9 +3022,9 @@
|
||||
}
|
||||
},
|
||||
"nodemon": {
|
||||
"version": "2.0.15",
|
||||
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.15.tgz",
|
||||
"integrity": "sha512-gdHMNx47Gw7b3kWxJV64NI+Q5nfl0y5DgDbiVtShiwa7Z0IZ07Ll4RLFo6AjrhzMtoEZn5PDE3/c2AbVsiCkpA==",
|
||||
"version": "2.0.16",
|
||||
"resolved": "https://registry.npmjs.org/nodemon/-/nodemon-2.0.16.tgz",
|
||||
"integrity": "sha512-zsrcaOfTWRuUzBn3P44RDliLlp263Z/76FPoHFr3cFFkOz0lTPAcIw8dCzfdVIx/t3AtDYCZRCDkoCojJqaG3w==",
|
||||
"requires": {
|
||||
"chokidar": "^3.5.2",
|
||||
"debug": "^3.2.7",
|
||||
@@ -3113,11 +3119,12 @@
|
||||
"integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc="
|
||||
},
|
||||
"prisma": {
|
||||
"version": "3.12.0",
|
||||
"resolved": "https://registry.npmjs.org/prisma/-/prisma-3.12.0.tgz",
|
||||
"integrity": "sha512-ltCMZAx1i0i9xuPM692Srj8McC665h6E5RqJom999sjtVSccHSD8Z+HSdBN2183h9PJKvC5dapkn78dd0NWMBg==",
|
||||
"version": "3.13.0",
|
||||
"resolved": "https://registry.npmjs.org/prisma/-/prisma-3.13.0.tgz",
|
||||
"integrity": "sha512-oO1auBnBtieGdiN+57IgsA9Vr7Sy4HkILi1KSaUG4mpKfEbnkTGnLOxAqjLed+K2nsG/GtE1tJBtB7JxN1a78Q==",
|
||||
"requires": {
|
||||
"@prisma/engines": "3.12.0-37.22b822189f46ef0dc5c5b503368d1bee01213980"
|
||||
"@prisma/engines": "3.13.0-17.efdf9b1183dddfd4258cd181a72125755215ab7b",
|
||||
"ts-pattern": "^4.0.1"
|
||||
}
|
||||
},
|
||||
"pstree.remy": {
|
||||
@@ -3374,6 +3381,11 @@
|
||||
"resolved": "https://registry.npmjs.org/ts-mixer/-/ts-mixer-6.0.1.tgz",
|
||||
"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": {
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.3.1.tgz",
|
||||
|
||||
@@ -27,8 +27,8 @@
|
||||
"daemon": "^1.1.0",
|
||||
"discord.js": "^13.6.0",
|
||||
"dotenv": "^10.0.0",
|
||||
"nodemon": "^2.0.15",
|
||||
"prisma": "^3.12.0",
|
||||
"nodemon": "^2.0.16",
|
||||
"prisma": "^3.13.0",
|
||||
"redis": "^4.0.4"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -11,6 +11,7 @@ model badges {
|
||||
badge_id Int @id
|
||||
badge_name String
|
||||
badge_description String
|
||||
badge_visibility Boolean @default(true)
|
||||
badge_type Int @default(0)
|
||||
givenbadges givenbadges[]
|
||||
}
|
||||
@@ -29,8 +30,18 @@ model givenbadges {
|
||||
model users {
|
||||
user_id String @id(map: "user_pkey")
|
||||
exp Int @default(0)
|
||||
msg_count Int @default(0)
|
||||
voice_time Int @default(0)
|
||||
lvl Int @default(0)
|
||||
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 = {
|
||||
name: "profile",
|
||||
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) {
|
||||
await this.#ifExist(userID).then(async () => {
|
||||
await this.#ifUserExist(userID).then(async () => {
|
||||
const rExp = randomExp(min, max);
|
||||
return await this.client.users.update({
|
||||
where: {
|
||||
user_id: userID,
|
||||
},
|
||||
data: {
|
||||
msg_count: {
|
||||
increment: 1,
|
||||
},
|
||||
exp: {
|
||||
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({
|
||||
data: {
|
||||
user_id: userID,
|
||||
msg_count: 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