OCB Steam ProfilBild Bot - Automated profile picture generation
658
Automatisierter Profilbild-Erstellungs-Bot für OCB Steam-Community mit vollständiger Steam-Integration.
steam-bot/
├── config/
│ └── pb-creator.yml # YAML-Konfiguration (editierbar)
├── public/
│ ├── *.png # Hintergrundbilder für Ränge
│ └── play.ttf # Schriftart
├── src/
│ ├── __tests__/ # Test-Suites
│ │ ├── handlers/ # Handler Tests
│ │ ├── managers/ # Manager Tests
│ │ └── services/ # Service Tests
│ ├── config/
│ │ ├── config-loader.ts # YAML Config Loader
│ │ └── env.config.ts # Environment Config
│ ├── handlers/
│ │ └── command.handler.ts # Command Routing
│ ├── managers/
│ │ └── user-state.manager.ts # Session Management
│ ├── services/
│ │ ├── chat-flow.service.ts # Multi-Step Chat Flow
│ │ ├── image.service.ts # Bild-Generierung
│ │ ├── upload.service.ts # Zipline Upload
│ │ └── steam-bot.service.ts # Steam Bot Integration
│ ├── types/
│ │ └── index.ts # TypeScript Interfaces
│ ├── index.ts # Demo Entry Point
│ └── bot.ts # Steam Bot Entry Point
├── .env.example # Beispiel Umgebungsvariablen
├── .gitignore
├── package.json
├── tsconfig.json
├── vitest.config.ts
└── README.md
npm install
Kopiere .env.example zu .env und fülle die Werte:
cp .env.example .env
Bearbeite .env:
# Steam Account Credentials
STEAM_ACCOUNT_NAME=your_steam_username
STEAM_ACCOUNT_PASSWORD=your_steam_password
# Upload Configuration
UPLOAD_URL=https://images.ocb.gg
UPLOAD_JWT=your_upload_jwt_token
# Bot Configuration
BOT_NAME=OCB ProfilBild Bot
BOT_PERSONA_STATE=1
# Environment
NODE_ENV=development
Bearbeite config/pb-creator.yml:
# Nachrichten anpassen
messages:
PB_CREATE:
- "Willkommen im Profilbild-Editor von OCB."
- "..."
# Modi hinzufügen/ändern
PB_edit_mode:
- id: "1"
name: "normal"
label: "Standard Profil Bilder"
# Ränge konfigurieren
PB_ranks:
- # Array für Modus 1
- id: "1"
name: "trial"
label: "Trial Member"
# Canvas-Einstellungen
canvas:
width: 1500
height: 1500
maxTextWidth: 855
defaultFontSize: 180
textPositionY: 1177
fontPath: "public/play.ttf"
fontFamily: "Play"
# Upload-Einstellungen
upload:
enabled: true
url: "https://images.ocb.gg"
endpoint: "/api/upload"
Für lokale Tests ohne Steam-Verbindung:
npm start
Startet den vollständigen Steam Bot:
npm run bot
# Demo-Modus
npm run dev
# Steam Bot
npm run dev:bot
npm run build
npm test
npm run test:watch
npm run test:coverage
Test-Ergebnisse:
pb erstellen1 (wählt Modus)2 (wählt Rang)TestPlayer1231 (bestätigt)pb erstellen - Startet Profilbild-Erstellunghilfe - Zeigt Hilfe-Textabbrechen - Bricht aktuellen Vorgang absrc/config/config-loader.ts)Lädt YAML-Konfiguration mit Singleton-Pattern.
src/config/env.config.ts)Verwaltet Umgebungsvariablen aus .env mit Validierung.
src/services/steam-bot.service.ts)Vollständige Steam-Integration:
src/services/image.service.ts)Generiert Profilbilder mit Canvas:
src/services/upload.service.ts)Lädt Bilder zu Zipline/OCB CDN:
src/managers/user-state.manager.ts)Verwaltet User-Sessions:
src/services/chat-flow.service.ts)Implementiert mehrstufigen Chat-Flow:
src/handlers/command.handler.ts)Routet Befehle:
public/ hinzuconfig/pb-creator.yml:PB_ranks:
- # Dein Modus
- id: "8"
name: "new-rank"
label: "Neuer Rang"
PB_edit_mode:
- id: "4"
name: "special"
label: "Special Edition"
PB_ranks:
- [...] # Modus 1
- [...] # Modus 2
- [...] # Modus 3
- # Modus 4 (neu)
- id: "1"
name: "special-member"
label: "Special Member"
Aktiviere Metriken-Output in image.service.ts (bereits aktiviert):
console.log('=== Text Metriken ===');
console.log('Name:', name);
console.log('Finale Schriftgröße:', fontSize);
// ...
MIT
Content type
Image
Digest
sha256:f92292d25…
Size
133.1 MB
Last updated
9 months ago
docker pull otherscantbeat/pb:v1.0.0