Compare commits

..
1 Commits
Author SHA1 Message Date
Dustin Pianalto d9b6663241 Remove GH Actions 2021-10-01 22:15:12 -08:00
32 changed files with 76 additions and 374 deletions
-6
View File
@@ -1,6 +0,0 @@
.git
.github
.gitea
.env
.idea
goff
-135
View File
@@ -1,135 +0,0 @@
name: Build and Push Container
on:
push:
branches:
- master
- main
tags:
- v*
workflow_dispatch:
jobs:
build-and-push:
runs-on: ubuntu-latest
env:
REGISTRY: gitea.wayfinderak.com
IMAGE_NAME: gitea.wayfinderak.com/wayfinderak/goff
container:
options: --dns 172.16.30.10
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Go and Docker CLI if needed
shell: bash
run: |
set -euo pipefail
need_apt=0
need_apk=0
if ! command -v go >/dev/null 2>&1 || ! command -v docker >/dev/null 2>&1; then
if command -v apt-get >/dev/null 2>&1; then
need_apt=1
elif command -v apk >/dev/null 2>&1; then
need_apk=1
else
echo "No supported package manager found" >&2
exit 1
fi
fi
if [ "$need_apt" -eq 1 ]; then
apt-get update
if ! command -v go >/dev/null 2>&1; then
apt-get install -y golang-go
fi
if ! command -v docker >/dev/null 2>&1; then
apt-get install -y docker.io curl dnsutils iputils-ping
fi
fi
if [ "$need_apk" -eq 1 ]; then
if ! command -v go >/dev/null 2>&1; then
apk add --no-cache go
fi
if ! command -v docker >/dev/null 2>&1; then
apk add --no-cache docker-cli curl bind-tools iputils
fi
fi
go version
docker version
- name: Run tests
run: go test ./...
- name: Log in to Gitea Container Registry
shell: bash
run: |
set -euo pipefail
for attempt in 1 2 3; do
echo "docker login attempt $attempt"
if echo "${{ secrets.REGISTRY_PASSWORD }}" | docker login "$REGISTRY" -u "${{ secrets.REGISTRY_USERNAME }}" --password-stdin; then
exit 0
fi
sleep 5
done
echo "docker login failed after 3 attempts" >&2
exit 1
- name: Determine image tags
id: meta
shell: bash
env:
REF: ${{ gitea.ref }}
REF_NAME: ${{ gitea.ref_name }}
SHA: ${{ gitea.sha }}
run: |
set -euo pipefail
tags=()
if [[ "$REF" == refs/tags/* ]]; then
version="$REF_NAME"
tags+=("$IMAGE_NAME:$version")
tags+=("$IMAGE_NAME:latest")
else
branch="$REF_NAME"
branch_safe="$(echo "$branch" | tr '/_' '--')"
sha_short="$(echo "$SHA" | cut -c1-7)"
tags+=("$IMAGE_NAME:$branch_safe")
tags+=("$IMAGE_NAME:$branch_safe-$sha_short")
if [[ "$branch" == "main" || "$branch" == "master" ]]; then
tags+=("$IMAGE_NAME:latest")
fi
fi
printf 'tags<<EOF\n' >> "$GITHUB_OUTPUT"
printf '%s\n' "${tags[@]}" >> "$GITHUB_OUTPUT"
printf 'EOF\n' >> "$GITHUB_OUTPUT"
- name: Build image
shell: bash
run: |
set -euo pipefail
mapfile -t tags <<'EOF'
${{ steps.meta.outputs.tags }}
EOF
build_args=()
for tag in "${tags[@]}"; do
build_args+=(--tag "$tag")
done
docker build "${build_args[@]}" .
- name: Push image
shell: bash
run: |
set -euo pipefail
while IFS= read -r tag; do
[ -n "$tag" ] || continue
docker push "$tag"
done <<'EOF'
${{ steps.meta.outputs.tags }}
EOF
-64
View File
@@ -1,64 +0,0 @@
name: Build and Push Container
on:
push:
branches:
- master
- main
tags:
- v*
workflow_dispatch:
env:
REGISTRY: gitea.wayfinderak.com
IMAGE_NAME: wayfinderak/goff
jobs:
docker:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Set up QEMU
uses: docker/setup-qemu-action@v3
- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3
- name: Log in to Gitea registry
uses: docker/login-action@v3
with:
registry: ${{ env.REGISTRY }}
username: ${{ secrets.REGISTRY_USERNAME }}
password: ${{ secrets.REGISTRY_PASSWORD }}
- name: Prepare image tags
id: prep
shell: bash
run: |
short_sha="${GITHUB_SHA::7}"
tags="${REGISTRY}/${IMAGE_NAME}:sha-${short_sha}"
if [[ "${GITHUB_REF_TYPE}" == "branch" && ("${GITHUB_REF_NAME}" == "master" || "${GITHUB_REF_NAME}" == "main") ]]; then
tags+=$'\n'"${REGISTRY}/${IMAGE_NAME}:latest"
fi
if [[ "${GITHUB_REF_TYPE}" == "tag" ]]; then
version="${GITHUB_REF_NAME#v}"
tags+=$'\n'"${REGISTRY}/${IMAGE_NAME}:${version}"
fi
{
echo 'tags<<EOF'
echo "$tags"
echo 'EOF'
} >> "$GITHUB_OUTPUT"
- name: Build and push image
uses: docker/build-push-action@v6
with:
context: .
push: true
platforms: linux/amd64,linux/arm64
tags: ${{ steps.prep.outputs.tags }}
+12 -10
View File
@@ -1,18 +1,20 @@
FROM golang:1.22-alpine AS builder FROM golang:1.14-alpine as dev
WORKDIR /src WORKDIR /go/src/Goff
RUN apk add --no-cache ca-certificates git tzdata COPY ./go.mod .
COPY ./go.sum .
COPY go.mod go.sum ./
RUN go mod download RUN go mod download
COPY . . COPY . .
ARG TARGETARCH=amd64 RUN go install github.com/dustinpianalto/goff/...
RUN CGO_ENABLED=0 GOOS=linux GOARCH=$TARGETARCH go build -o /out/goff ./cmd/goff
FROM alpine:3.20 CMD [ "go", "run", "cmd/goff/main.go"]
RUN apk add --no-cache ca-certificates tzdata
COPY --from=builder /out/goff /usr/local/bin/goff from alpine
ENTRYPOINT ["/usr/local/bin/goff"] WORKDIR /bin
COPY --from=dev /go/bin/goff ./goff
CMD [ "goff" ]
-26
View File
@@ -1,26 +0,0 @@
# Portainer deployment notes
Generated from the current Kubernetes deployment in namespace `discord-bots`. Secret values are in the local `portainer-*.env` files.
## Kubernetes source
- Deployment: `goff`
- Replicas: `1`
- Rolling update: maxSurge `1`, maxUnavailable `1`
- minReadySeconds: `120`
- Labels/selectors: `app=goff`
- Image pull secrets: `none required for Portainer stack`
## Containers
- `pgbouncer`: image `timoha/pgbouncer:1.15.0`; env: DATABASE_URL, SERVER_TLS_SSLMODE, AUTH_TYPE; ports: 5432; requests: {'cpu': '500m', 'memory': '256Mi'}; limits: {'cpu': '1', 'memory': '512Mi'}
- `goff`: image `gitea.wayfinderak.com/wayfinderak/goff:latest`; env: DATABASE_URL, DISCORDGO_TOKEN, GOFF_EMAIL_USERNAME, GOFF_EMAIL_PASSWORD; ports: none; requests: {'cpu': '1', 'memory': '512Mi'}; limits: {'cpu': '2', 'memory': '1Gi'}
## Portainer files
- `portainer-stack.yml` - Docker Compose stack to paste/use in Portainer.
- `portainer-app.env` - bot runtime secrets/env.
## Portainer database connection
This Portainer stack does not include pgbouncer. `DATABASE_URL` in `portainer-app.env` points directly at the external PostgreSQL service copied from the Kubernetes pgbouncer upstream URL.
Regular → Executable
View File
+8 -9
View File
@@ -4,15 +4,15 @@ import (
"fmt" "fmt"
"log" "log"
"gitea.wayfinderak.com/wayfinderak/goff/internal/exts"
"gitea.wayfinderak.com/wayfinderak/goff/internal/exts/guild_management"
"gitea.wayfinderak.com/wayfinderak/goff/internal/exts/logging"
"gitea.wayfinderak.com/wayfinderak/goff/internal/exts/tasks"
"gitea.wayfinderak.com/wayfinderak/goff/internal/exts/user_management"
"gitea.wayfinderak.com/wayfinderak/goff/internal/postgres"
"gitea.wayfinderak.com/wayfinderak/goff/internal/services"
"gitea.wayfinderak.com/wayfinderak/goff/pkg/email"
"github.com/dustinpianalto/disgoman" "github.com/dustinpianalto/disgoman"
"github.com/dustinpianalto/goff/internal/exts"
"github.com/dustinpianalto/goff/internal/exts/guild_management"
"github.com/dustinpianalto/goff/internal/exts/logging"
"github.com/dustinpianalto/goff/internal/exts/tasks"
"github.com/dustinpianalto/goff/internal/exts/user_management"
"github.com/dustinpianalto/goff/internal/postgres"
"github.com/dustinpianalto/goff/internal/services"
"github.com/dustinpianalto/goff/pkg/email"
//"github.com/MikeModder/anpan" //"github.com/MikeModder/anpan"
"os" "os"
@@ -124,7 +124,6 @@ func getPrefixes(guildID string) []string {
log.Println(err) log.Println(err)
return []string{"Go.", "go."} return []string{"Go.", "go."}
} }
defer rows.Close()
var prefixes []string var prefixes []string
for rows.Next() { for rows.Next() {
var prefix string var prefix string
+1 -37
View File
@@ -2,7 +2,7 @@ apiVersion: apps/v1
kind: Deployment kind: Deployment
metadata: metadata:
name: goff name: goff
namespace: discord-bots namespace: default
labels: labels:
app: goff app: goff
spec: spec:
@@ -21,42 +21,8 @@ spec:
app: goff app: goff
spec: spec:
containers: containers:
- name: pgbouncer
image: timoha/pgbouncer:1.15.0
resources:
requests:
memory: "256Mi"
cpu: "0.5"
limits:
memory: "512Mi"
cpu: "1"
env:
- name: DATABASE_URL
valueFrom:
secretKeyRef:
name: goff
key: pgbouncer_url
- name: SERVER_TLS_SSLMODE
valueFrom:
secretKeyRef:
name: goff
key: pgbouncer_ssl
- name: AUTH_TYPE
valueFrom:
secretKeyRef:
name: goff
key: pgbouncer_auth
ports:
- containerPort: 5432
- name: goff - name: goff
image: <IMAGE> image: <IMAGE>
resources:
requests:
memory: "512Mi"
cpu: "1"
limits:
memory: "1Gi"
cpu: "2"
env: env:
- name: DATABASE_URL - name: DATABASE_URL
valueFrom: valueFrom:
@@ -78,5 +44,3 @@ spec:
secretKeyRef: secretKeyRef:
name: goff name: goff
key: email_password key: email_password
imagePullSecrets:
- name: registry-1
-10
View File
@@ -1,10 +0,0 @@
services:
goff:
image: ${IMAGE:-gitea.wayfinderak.com/wayfinderak/goff:${IMAGE_TAG:-latest}}
container_name: goff
restart: unless-stopped
environment:
DATABASE_URL: ${DATABASE_URL}
DISCORDGO_TOKEN: ${DISCORDGO_TOKEN}
GOFF_EMAIL_USERNAME: ${GOFF_EMAIL_USERNAME}
GOFF_EMAIL_PASSWORD: ${GOFF_EMAIL_PASSWORD}
+1 -1
View File
@@ -1,4 +1,4 @@
module gitea.wayfinderak.com/wayfinderak/goff module github.com/dustinpianalto/goff
go 1.14 go 1.14
+2 -2
View File
@@ -6,8 +6,8 @@ import (
"strings" "strings"
"github.com/dustinpianalto/disgoman" "github.com/dustinpianalto/disgoman"
"gitea.wayfinderak.com/wayfinderak/goff/internal/postgres" "github.com/dustinpianalto/goff/internal/postgres"
"gitea.wayfinderak.com/wayfinderak/goff/internal/services" "github.com/dustinpianalto/goff/internal/services"
) )
// Guild management commands // Guild management commands
@@ -5,7 +5,7 @@ import (
"log" "log"
"github.com/bwmarrin/discordgo" "github.com/bwmarrin/discordgo"
"gitea.wayfinderak.com/wayfinderak/goff/internal/postgres" "github.com/dustinpianalto/goff/internal/postgres"
) )
func OnMessageUpdate(session *discordgo.Session, m *discordgo.MessageUpdate) { func OnMessageUpdate(session *discordgo.Session, m *discordgo.MessageUpdate) {
+8 -8
View File
@@ -2,15 +2,15 @@ package exts
import ( import (
"github.com/dustinpianalto/disgoman" "github.com/dustinpianalto/disgoman"
"gitea.wayfinderak.com/wayfinderak/goff/internal/exts/fun" "github.com/dustinpianalto/goff/internal/exts/fun"
"gitea.wayfinderak.com/wayfinderak/goff/internal/exts/guild_management" "github.com/dustinpianalto/goff/internal/exts/guild_management"
"gitea.wayfinderak.com/wayfinderak/goff/internal/exts/roles" "github.com/dustinpianalto/goff/internal/exts/roles"
"gitea.wayfinderak.com/wayfinderak/goff/internal/exts/tags" "github.com/dustinpianalto/goff/internal/exts/tags"
"gitea.wayfinderak.com/wayfinderak/goff/internal/exts/tasks" "github.com/dustinpianalto/goff/internal/exts/tasks"
"gitea.wayfinderak.com/wayfinderak/goff/internal/exts/user_management" "github.com/dustinpianalto/goff/internal/exts/user_management"
"gitea.wayfinderak.com/wayfinderak/goff/internal/exts/utils" "github.com/dustinpianalto/goff/internal/exts/utils"
"gitea.wayfinderak.com/wayfinderak/goff/internal/exts/p_interpreter" "github.com/dustinpianalto/goff/internal/exts/p_interpreter"
) )
func AddCommandHandlers(h *disgoman.CommandManager) { func AddCommandHandlers(h *disgoman.CommandManager) {
+1 -1
View File
@@ -4,7 +4,7 @@ import (
"fmt" "fmt"
"github.com/bwmarrin/discordgo" "github.com/bwmarrin/discordgo"
"gitea.wayfinderak.com/wayfinderak/goff/internal/postgres" "github.com/dustinpianalto/goff/internal/postgres"
) )
var LoggingChannel = make(chan *LogEvent, 10) var LoggingChannel = make(chan *LogEvent, 10)
+3 -3
View File
@@ -7,9 +7,9 @@ import (
"github.com/bwmarrin/discordgo" "github.com/bwmarrin/discordgo"
"github.com/dustinpianalto/disgoman" "github.com/dustinpianalto/disgoman"
"gitea.wayfinderak.com/wayfinderak/goff" "github.com/dustinpianalto/goff"
"gitea.wayfinderak.com/wayfinderak/goff/internal/postgres" "github.com/dustinpianalto/goff/internal/postgres"
"gitea.wayfinderak.com/wayfinderak/goff/internal/services" "github.com/dustinpianalto/goff/internal/services"
) )
var MakeRoleSelfAssignableCommand = &disgoman.Command{ var MakeRoleSelfAssignableCommand = &disgoman.Command{
+3 -3
View File
@@ -7,9 +7,9 @@ import (
"strings" "strings"
"github.com/dustinpianalto/disgoman" "github.com/dustinpianalto/disgoman"
"gitea.wayfinderak.com/wayfinderak/goff" "github.com/dustinpianalto/goff"
"gitea.wayfinderak.com/wayfinderak/goff/internal/postgres" "github.com/dustinpianalto/goff/internal/postgres"
"gitea.wayfinderak.com/wayfinderak/goff/internal/services" "github.com/dustinpianalto/goff/internal/services"
) )
var AddTagCommand = &disgoman.Command{ var AddTagCommand = &disgoman.Command{
+1 -1
View File
@@ -6,7 +6,7 @@ import (
"time" "time"
"github.com/bwmarrin/discordgo" "github.com/bwmarrin/discordgo"
"gitea.wayfinderak.com/wayfinderak/goff/internal/postgres" "github.com/dustinpianalto/goff/internal/postgres"
) )
type Task struct { type Task struct {
+1 -1
View File
@@ -7,7 +7,7 @@ import (
"time" "time"
"github.com/dustinpianalto/disgoman" "github.com/dustinpianalto/disgoman"
"gitea.wayfinderak.com/wayfinderak/goff/internal/postgres" "github.com/dustinpianalto/goff/internal/postgres"
"github.com/olebedev/when" "github.com/olebedev/when"
"github.com/olebedev/when/rules/common" "github.com/olebedev/when/rules/common"
"github.com/olebedev/when/rules/en" "github.com/olebedev/when/rules/en"
+2 -2
View File
@@ -4,8 +4,8 @@ import (
"log" "log"
"github.com/bwmarrin/discordgo" "github.com/bwmarrin/discordgo"
"gitea.wayfinderak.com/wayfinderak/goff" "github.com/dustinpianalto/goff"
"gitea.wayfinderak.com/wayfinderak/goff/internal/services" "github.com/dustinpianalto/goff/internal/services"
) )
func OnGuildMemberAdd(s *discordgo.Session, member *discordgo.GuildMemberAdd) { func OnGuildMemberAdd(s *discordgo.Session, member *discordgo.GuildMemberAdd) {
@@ -7,8 +7,8 @@ import (
"time" "time"
"github.com/bwmarrin/discordgo" "github.com/bwmarrin/discordgo"
"gitea.wayfinderak.com/wayfinderak/goff/internal/discord_utils" "github.com/dustinpianalto/goff/internal/discord_utils"
"gitea.wayfinderak.com/wayfinderak/goff/internal/postgres" "github.com/dustinpianalto/goff/internal/postgres"
) )
func OnGuildMemberAddLogging(s *discordgo.Session, member *discordgo.GuildMemberAdd) { func OnGuildMemberAddLogging(s *discordgo.Session, member *discordgo.GuildMemberAdd) {
@@ -8,7 +8,7 @@ import (
"github.com/bwmarrin/discordgo" "github.com/bwmarrin/discordgo"
"github.com/dustinpianalto/disgoman" "github.com/dustinpianalto/disgoman"
"gitea.wayfinderak.com/wayfinderak/goff/internal/exts/logging" "github.com/dustinpianalto/goff/internal/exts/logging"
) )
var KickUserCommand = &disgoman.Command{ var KickUserCommand = &disgoman.Command{
+3 -3
View File
@@ -9,7 +9,7 @@ import (
"github.com/bwmarrin/discordgo" "github.com/bwmarrin/discordgo"
"github.com/dustinpianalto/disgoman" "github.com/dustinpianalto/disgoman"
"gitea.wayfinderak.com/wayfinderak/goff/internal/discord_utils" "github.com/dustinpianalto/goff/internal/discord_utils"
) )
var PingCommand = &disgoman.Command{ var PingCommand = &disgoman.Command{
@@ -80,9 +80,9 @@ var GitCommand = &disgoman.Command{
func gitCommandFunc(ctx disgoman.Context, _ []string) { func gitCommandFunc(ctx disgoman.Context, _ []string) {
embed := &discordgo.MessageEmbed{ embed := &discordgo.MessageEmbed{
Title: "Hi there, my code is on Gitea", Title: "Hi there, My code is on Github",
Color: 0, Color: 0,
URL: "https://gitea.wayfinderak.com/wayfinderak/goff", URL: "https://github.com/dustinpianalto/Goff",
} }
_, err := ctx.Session.ChannelMessageSendEmbed(ctx.Channel.ID, embed) _, err := ctx.Session.ChannelMessageSendEmbed(ctx.Channel.ID, embed)
if err != nil { if err != nil {
+19 -26
View File
@@ -4,7 +4,6 @@ import (
"database/sql" "database/sql"
"fmt" "fmt"
"log" "log"
"time"
_ "github.com/lib/pq" _ "github.com/lib/pq"
) )
@@ -17,23 +16,17 @@ func ConnectDatabase(dbConnString string) {
db, err := sql.Open("postgres", dbConnString) db, err := sql.Open("postgres", dbConnString)
if err != nil { if err != nil {
panic(fmt.Sprintf("Can't connect to the database. %v", err)) panic(fmt.Sprintf("Can't connect to the database. %v", err))
} } else {
db.SetMaxOpenConns(5)
db.SetMaxIdleConns(2)
db.SetConnMaxLifetime(30 * time.Minute)
db.SetConnMaxIdleTime(5 * time.Minute)
if err = db.Ping(); err != nil {
panic(fmt.Sprintf("Can't ping the database. %v", err))
}
fmt.Println("Database Connected.") fmt.Println("Database Connected.")
}
db.SetMaxOpenConns(75) // The RDS instance has a max of 75 open connections
db.SetMaxIdleConns(5)
db.SetConnMaxLifetime(300)
DB = db DB = db
} }
func InitializeDatabase() { func InitializeDatabase() {
_, err := DB.Exec("CREATE TABLE IF NOT EXISTS users(" + _, err := DB.Query("CREATE TABLE IF NOT EXISTS users(" +
"id varchar(30) primary key," + "id varchar(30) primary key," +
"banned bool not null default false," + "banned bool not null default false," +
"logging bool not null default true," + "logging bool not null default true," +
@@ -45,7 +38,7 @@ func InitializeDatabase() {
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
} }
_, err = DB.Exec("CREATE TABLE IF NOT EXISTS guilds(" + _, err = DB.Query("CREATE TABLE IF NOT EXISTS guilds(" +
"id varchar(30) primary key," + "id varchar(30) primary key," +
"welcome_message varchar(1000) NOT NULL DEFAULT ''," + "welcome_message varchar(1000) NOT NULL DEFAULT ''," +
"goodbye_message varchar(1000) NOT NULL DEFAULT ''," + "goodbye_message varchar(1000) NOT NULL DEFAULT ''," +
@@ -55,14 +48,14 @@ func InitializeDatabase() {
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
} }
_, err = DB.Exec("CREATE TABLE IF NOT EXISTS prefixes(" + _, err = DB.Query("CREATE TABLE IF NOT EXISTS prefixes(" +
"id serial primary key," + "id serial primary key," +
"prefix varchar(10) not null unique default 'Go.'" + "prefix varchar(10) not null unique default 'Go.'" +
")") ")")
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
} }
_, err = DB.Exec("CREATE TABLE IF NOT EXISTS tags(" + _, err = DB.Query("CREATE TABLE IF NOT EXISTS tags(" +
"id serial primary key," + "id serial primary key," +
"tag varchar(100) not null unique," + "tag varchar(100) not null unique," +
"content varchar(1000) not null," + "content varchar(1000) not null," +
@@ -73,21 +66,21 @@ func InitializeDatabase() {
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
} }
_, err = DB.Exec("CREATE TABLE IF NOT EXISTS x_users_guilds(" + _, err = DB.Query("CREATE TABLE IF NOT EXISTS x_users_guilds(" +
"guild_id varchar(30) not null references guilds(id)," + "guild_id varchar(30) not null references guilds(id)," +
"user_id varchar(30) not null references users(id)" + "user_id varchar(30) not null references users(id)" +
")") ")")
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
} }
_, err = DB.Exec("CREATE TABLE IF NOT EXISTS x_guilds_prefixes(" + _, err = DB.Query("CREATE TABLE IF NOT EXISTS x_guilds_prefixes(" +
"guild_id varchar(30) not null references guilds(id)," + "guild_id varchar(30) not null references guilds(id)," +
"prefix_id int not null references prefixes(id)" + "prefix_id int not null references prefixes(id)" +
")") ")")
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
} }
_, err = DB.Exec("CREATE TABLE IF NOT EXISTS tasks(" + _, err = DB.Query("CREATE TABLE IF NOT EXISTS tasks(" +
"id serial primary key," + "id serial primary key," +
"type varchar(10) not null," + "type varchar(10) not null," +
"content text not null," + "content text not null," +
@@ -101,7 +94,7 @@ func InitializeDatabase() {
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
} }
_, err = DB.Exec(`CREATE TABLE IF NOT EXISTS postfixes( _, err = DB.Query(`CREATE TABLE IF NOT EXISTS postfixes(
id serial primary key, id serial primary key,
name varchar(100) not null, name varchar(100) not null,
time timestamp not null default NOW())`) time timestamp not null default NOW())`)
@@ -126,37 +119,37 @@ func InitializeDatabase() {
} }
func LoadTestData() { func LoadTestData() {
_, err := DB.Exec("INSERT INTO users (id, banned, logging, steam_id, is_active, is_staff, is_admin) values " + _, err := DB.Query("INSERT INTO users (id, banned, logging, steam_id, is_active, is_staff, is_admin) values " +
"('351794468870946827', false, true, '76561198024193239', true, true, true)," + "('351794468870946827', false, true, '76561198024193239', true, true, true)," +
"('692908139506434065', false, true, '', true, false, false)," + "('692908139506434065', false, true, '', true, false, false)," +
"('396588996706304010', false, true, '', true, true, false)") "('396588996706304010', false, true, '', true, true, false)")
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
} }
_, err = DB.Exec("INSERT INTO guilds (id, welcome_message, goodbye_message) VALUES " + _, err = DB.Query("INSERT INTO guilds (id, welcome_message, goodbye_message) VALUES " +
"('265828729970753537', 'Hey there is someone new here.', 'Well fine then... Just leave without saying goodbye')") "('265828729970753537', 'Hey there is someone new here.', 'Well fine then... Just leave without saying goodbye')")
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
} }
_, err = DB.Exec("INSERT INTO prefixes (prefix) VALUES ('Godev.'), ('godev.'), ('godev,')") _, err = DB.Query("INSERT INTO prefixes (prefix) VALUES ('Godev.'), ('godev.'), ('godev,')")
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
} }
_, err = DB.Exec("INSERT INTO x_users_guilds (guild_id, user_id) VALUES " + _, err = DB.Query("INSERT INTO x_users_guilds (guild_id, user_id) VALUES " +
"('265828729970753537', '351794468870946827')," + "('265828729970753537', '351794468870946827')," +
"('265828729970753537', '692908139506434065')," + "('265828729970753537', '692908139506434065')," +
"('265828729970753537', '396588996706304010')") "('265828729970753537', '396588996706304010')")
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
} }
_, err = DB.Exec("INSERT INTO x_guilds_prefixes (guild_id, prefix_id) VALUES " + _, err = DB.Query("INSERT INTO x_guilds_prefixes (guild_id, prefix_id) VALUES " +
"('265828729970753537', 1)," + "('265828729970753537', 1)," +
"('265828729970753537', 2)," + "('265828729970753537', 2)," +
"('265828729970753537', 3)") "('265828729970753537', 3)")
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
} }
_, err = DB.Exec("INSERT INTO tags (tag, content, creator, guild_id) VALUES " + _, err = DB.Query("INSERT INTO tags (tag, content, creator, guild_id) VALUES " +
"('test', 'This is a test of the tag system', '351794468870946827', '265828729970753537')") "('test', 'This is a test of the tag system', '351794468870946827', '265828729970753537')")
if err != nil { if err != nil {
fmt.Println(err) fmt.Println(err)
+1 -1
View File
@@ -4,7 +4,7 @@ import (
"database/sql" "database/sql"
"log" "log"
"gitea.wayfinderak.com/wayfinderak/goff" "github.com/dustinpianalto/goff"
) )
type GuildService struct { type GuildService struct {
-2
View File
@@ -47,10 +47,8 @@ func RunPostfixes() {
continue continue
} }
if rows.Next() { if rows.Next() {
rows.Close()
continue continue
} else { } else {
rows.Close()
err := postfix.Invoke(false) err := postfix.Invoke(false)
if err != nil { if err != nil {
continue continue
+1 -1
View File
@@ -4,7 +4,7 @@ import (
"database/sql" "database/sql"
"log" "log"
"gitea.wayfinderak.com/wayfinderak/goff" "github.com/dustinpianalto/goff"
) )
type RoleService struct { type RoleService struct {
+1 -1
View File
@@ -3,7 +3,7 @@ package postgres
import ( import (
"database/sql" "database/sql"
"gitea.wayfinderak.com/wayfinderak/goff" "github.com/dustinpianalto/goff"
) )
type UserService struct { type UserService struct {
+1 -1
View File
@@ -1,6 +1,6 @@
package services package services
import "gitea.wayfinderak.com/wayfinderak/goff" import "github.com/dustinpianalto/goff"
var UserService goff.UserService var UserService goff.UserService
var GuildService goff.GuildService var GuildService goff.GuildService
+1 -1
View File
@@ -9,7 +9,7 @@ import (
"time" "time"
"github.com/bwmarrin/discordgo" "github.com/bwmarrin/discordgo"
"gitea.wayfinderak.com/wayfinderak/goff/pkg/puzzles" "github.com/dustinpianalto/goff/pkg/puzzles"
imap "github.com/emersion/go-imap" imap "github.com/emersion/go-imap"
"github.com/emersion/go-imap/client" "github.com/emersion/go-imap/client"
"github.com/emersion/go-message/mail" "github.com/emersion/go-message/mail"
+2 -2
View File
@@ -8,8 +8,8 @@ import (
"time" "time"
"github.com/bwmarrin/discordgo" "github.com/bwmarrin/discordgo"
"gitea.wayfinderak.com/wayfinderak/goff" "github.com/dustinpianalto/goff"
"gitea.wayfinderak.com/wayfinderak/goff/internal/postgres" "github.com/dustinpianalto/goff/internal/postgres"
"github.com/emersion/go-message/mail" "github.com/emersion/go-message/mail"
) )
-4
View File
@@ -1,4 +0,0 @@
DATABASE_URL=postgresql://goff:DCkTm6Nns9hi8j@10.0.0.202:5432/goff
DISCORDGO_TOKEN=NjkyOTA4MTM5NTA2NDM0MDY1.Xn1W_g.SKCxfilgBc2PFCYvK2pXhqme_fc
GOFF_EMAIL_USERNAME=goff@djpianalto.com
GOFF_EMAIL_PASSWORD=1MzV9VU8u4J2
-9
View File
@@ -1,9 +0,0 @@
services:
goff:
image: gitea.wayfinderak.com/wayfinderak/goff:latest
container_name: goff
restart: unless-stopped
env_file:
- ./portainer-app.env
mem_limit: 1g
cpus: "2.0"