add workflows

This commit is contained in:
Stanislaw
2022-06-15 22:28:18 +02:00
parent ffc034dbdd
commit 089e13b9ff
8 changed files with 102 additions and 43 deletions

19
.github/workflows/deploy.yaml vendored Normal file
View 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
View File

@@ -1,5 +1,4 @@
/node_modules
.env
package-lock.json
/src/badges
/prisma
/src/badges

View File

@@ -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
View File

@@ -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",

View File

@@ -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"
}
}

View File

@@ -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[]
}
@@ -27,10 +28,20 @@ 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[]
user_id String @id(map: "user_pkey")
exp 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")
}

View File

@@ -1,5 +1,3 @@
const { ReactionUserManager } = require("discord.js");
module.exports = {
name: "profile",
async execute(cl, msg, args, connect) {

View File

@@ -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,
},
});
}