(Feat): New Features
This commit is contained in:
24
.dockerignore
Normal file
24
.dockerignore
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# Git
|
||||||
|
.git
|
||||||
|
.gitignore
|
||||||
|
|
||||||
|
# IDE
|
||||||
|
.vscode
|
||||||
|
.idea
|
||||||
|
.qodo
|
||||||
|
|
||||||
|
# Documentation
|
||||||
|
*.md
|
||||||
|
!README.md
|
||||||
|
|
||||||
|
# Local data (will be mounted as volumes)
|
||||||
|
data/
|
||||||
|
logs/
|
||||||
|
|
||||||
|
# Environment files (will be passed via docker-compose)
|
||||||
|
.env
|
||||||
|
.env.*
|
||||||
|
!.env.example
|
||||||
|
|
||||||
|
# Misc
|
||||||
|
GEM/
|
||||||
4
.gitignore
vendored
4
.gitignore
vendored
@@ -36,6 +36,6 @@ build/
|
|||||||
config.toml
|
config.toml
|
||||||
PORTING_DOCUMENTATION.md
|
PORTING_DOCUMENTATION.md
|
||||||
|
|
||||||
pikanetwork.js
|
pikanetwork.js/
|
||||||
GEM
|
GEM/
|
||||||
.qodo
|
.qodo
|
||||||
29
Dockerfile
Normal file
29
Dockerfile
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
# Elly Discord Bot Dockerfile
|
||||||
|
# ============================
|
||||||
|
|
||||||
|
FROM denoland/deno:2.1.4
|
||||||
|
|
||||||
|
# Set working directory
|
||||||
|
WORKDIR /app
|
||||||
|
|
||||||
|
# Copy dependency files first for better caching
|
||||||
|
COPY deno.json deno.lock ./
|
||||||
|
|
||||||
|
# Cache dependencies
|
||||||
|
RUN deno cache --reload npm:discord.js@^14.14.1 npm:@discordjs/rest@^2.2.0 npm:@toml-tools/parser@^1.0.0
|
||||||
|
|
||||||
|
# Copy source code
|
||||||
|
COPY src/ ./src/
|
||||||
|
COPY pikanetwork.js/ ./pikanetwork.js/
|
||||||
|
|
||||||
|
# Copy config (will be overridden by volume mount in production)
|
||||||
|
COPY config.example.toml ./config.example.toml
|
||||||
|
|
||||||
|
# Create data and logs directories
|
||||||
|
RUN mkdir -p /app/data /app/logs
|
||||||
|
|
||||||
|
# Cache the main application
|
||||||
|
RUN deno cache --unstable-ffi src/index.ts
|
||||||
|
|
||||||
|
# Run the bot
|
||||||
|
CMD ["deno", "run", "--allow-net", "--allow-read", "--allow-write", "--allow-env", "--allow-ffi", "--unstable-ffi", "src/index.ts"]
|
||||||
@@ -0,0 +1,89 @@
|
|||||||
|
# Elly Discord Bot Configuration
|
||||||
|
# ================================
|
||||||
|
|
||||||
|
[bot]
|
||||||
|
name = "<your bot name>"
|
||||||
|
prefix = "<your prefix>"
|
||||||
|
status = "<your status>"
|
||||||
|
activity_type = "watching" # playing, streaming, listening, watching, competing
|
||||||
|
|
||||||
|
[bot.owners]
|
||||||
|
ids = [
|
||||||
|
"<your owner id>",
|
||||||
|
"<your owner id>",
|
||||||
|
"<your owner id>",
|
||||||
|
"<your owner id>"
|
||||||
|
]
|
||||||
|
|
||||||
|
[database]
|
||||||
|
path = "./data/elly.db"
|
||||||
|
|
||||||
|
[api]
|
||||||
|
pika_cache_ttl = 3600000 # 1 hour in ms
|
||||||
|
pika_request_timeout = 10000 # 10 seconds
|
||||||
|
|
||||||
|
[guild]
|
||||||
|
id = "<your guild id>"
|
||||||
|
name = "<your guild name>"
|
||||||
|
|
||||||
|
[channels]
|
||||||
|
applications = "applications"
|
||||||
|
application_logs = "reviewed-applications"
|
||||||
|
suggestions = "suggestions"
|
||||||
|
suggestion_logs = "reviewed-suggestions"
|
||||||
|
guild_updates = "guild-updates"
|
||||||
|
discord_changelog = "discord-changelog"
|
||||||
|
inactivity = "inactivity-notices"
|
||||||
|
development_logs = "development-logs"
|
||||||
|
donations = "donations"
|
||||||
|
reminders = "reminders"
|
||||||
|
|
||||||
|
[roles]
|
||||||
|
admin = "Admin"
|
||||||
|
leader = "Leader"
|
||||||
|
officer = "Officer"
|
||||||
|
developer = "Developer"
|
||||||
|
guild_member = "Guild Member"
|
||||||
|
champion = "Champion"
|
||||||
|
away = "Away"
|
||||||
|
applications_blacklisted = "Applications blacklisted"
|
||||||
|
suggestions_blacklisted = "Suggestions Blacklisted"
|
||||||
|
|
||||||
|
[roles.manageable]
|
||||||
|
ids = [
|
||||||
|
"<your role id>",
|
||||||
|
"<your role id>",
|
||||||
|
"<your role id>",
|
||||||
|
"<your role id>",
|
||||||
|
"<your role id>"
|
||||||
|
]
|
||||||
|
|
||||||
|
[features]
|
||||||
|
applications = true
|
||||||
|
suggestions = true
|
||||||
|
statistics = true
|
||||||
|
family = true
|
||||||
|
qotd = true
|
||||||
|
reminders = true
|
||||||
|
staff_simulator = true
|
||||||
|
channel_filtering = true
|
||||||
|
auto_moderation = false
|
||||||
|
welcome_system = false
|
||||||
|
level_system = false
|
||||||
|
|
||||||
|
[limits]
|
||||||
|
champion_max_days = 366
|
||||||
|
away_max_days = 355
|
||||||
|
purge_max_messages = 100
|
||||||
|
reminder_max_duration_days = 365
|
||||||
|
|
||||||
|
[colors]
|
||||||
|
primary = 0x5865F2
|
||||||
|
success = 0x57F287
|
||||||
|
warning = 0xFEE75C
|
||||||
|
error = 0xED4245
|
||||||
|
info = 0x5865F2
|
||||||
|
|
||||||
|
[logging]
|
||||||
|
level = "info" # debug, info, warn, error
|
||||||
|
file = "./logs/elly.log"
|
||||||
|
|||||||
21
docker-compose.yml
Normal file
21
docker-compose.yml
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
# Elly Discord Bot - Docker Compose
|
||||||
|
# ===================================
|
||||||
|
|
||||||
|
services:
|
||||||
|
elly-bot:
|
||||||
|
build:
|
||||||
|
context: .
|
||||||
|
dockerfile: Dockerfile
|
||||||
|
container_name: elly-discord-bot
|
||||||
|
restart: unless-stopped
|
||||||
|
env_file:
|
||||||
|
- .env
|
||||||
|
volumes:
|
||||||
|
# Persist database and logs
|
||||||
|
- ./data:/app/data
|
||||||
|
- ./logs:/app/logs
|
||||||
|
# Mount config file (create config.toml from config.example.toml)
|
||||||
|
- ./config.toml:/app/config.toml:ro
|
||||||
|
# Optional: Set timezone
|
||||||
|
environment:
|
||||||
|
- TZ=UTC
|
||||||
@@ -103,7 +103,7 @@ export const blacklistCommand: Command = {
|
|||||||
switch (subcommand) {
|
switch (subcommand) {
|
||||||
case 'add':
|
case 'add':
|
||||||
await handleAdd(interaction, client);
|
await handleAdd(interaction, client);
|
||||||
break;
|
break;https://www.ccavenue.com/https://www.ccavenue.com/
|
||||||
case 'remove':
|
case 'remove':
|
||||||
await handleRemove(interaction, client);
|
await handleRemove(interaction, client);
|
||||||
break;
|
break;
|
||||||
|
|||||||
Reference in New Issue
Block a user