Social Extension — AthenaBot Plugin

Dashboard & Accounts

Accounts anlegen, Kanal und Rollen-Ping wählen, Emojis und Embeds konfigurieren.

Dashboard & Accounts

Die gesamte Konfiguration läuft über die Social-Seite im Dashboard.

Allgemein

EinstellungBedeutung
Social aktivierenHauptschalter für das ganze Plugin
Prüf-Intervall (Min.)Wie oft jeder Account auf neue Posts geprüft wird
Max. Posts / PrüfungObergrenze pro Account und Prüfung (gegen Flut)
Standard-Embed-FarbeHex ohne # (z. B. 2B2D31) oder Farbname
Ping über EmbedRollen-Ping in eigener Zeile über dem Embed
Statistiken zeigenLikes/Reposts/Kommentare anzeigen, wenn verfügbar

API-Zugangsdaten

Hier kommt das Twitter/X Bearer Token rein. Instagram-Tokens werden pro Account gesetzt.

Gespeicherte Tokens werden aus Sicherheitsgründen nie zurück angezeigt. Lässt du das Feld beim Speichern leer, bleibt der vorhandene Token erhalten.

Custom-Emojis

Für jedes Label (X-Logo, Instagram-Logo, Verifiziert-Badge, Likes, Reposts, Kommentare, Views, Link) wählst du den Index eines Custom-Emojis deiner Application. Es werden ausschließlich Custom-Emojis verwendet.

Account hinzufügen

Klick auf Account hinzufügen und fülle aus:

FeldBeschreibung
PlattformTwitter/X oder Instagram
BenutzernameHandle ohne @
KanalZiel-Kanal für neue Posts
Rolle pingenRolle, die gepingt wird (optional)
@everyone pingenStatt Rolle alle pingen
FormatEmbed (reiche Karte) oder Text (schlichte Nachricht; Discord zeigt die Link-Vorschau)
RSS feed URLOptional: einen RSS/Atom-Feed crawlen statt der API (z. B. RSS.app) — keine API-Keys nötig
Nachricht über dem PostOptionaler Text, Platzhalter %username% und %url%
Embed-FarbeOptionale Farbe nur für diesen Account (nur bei Format Embed)

Quelle: Ist eine RSS feed URL gesetzt, wird der Feed gecrawlt — sonst die API. Nur Twitter/X (ohne RSS): Antworten einbeziehen, Reposts einbeziehen. Nur Instagram (ohne RSS): Instagram-Account-ID und Access-Token.

Mit Verbindung testen prüfst du, ob die Zugangsdaten passen und der neueste Post abrufbar ist — ohne etwas in den Kanal zu senden. Speichere den Account vorher, der Test nutzt die gespeicherten Zugangsdaten.

Beispiel-Konfiguration

Wer lieber direkt die Datei bearbeitet: Die gespeicherte Konfiguration liegt unter configuration/social-extension.json5 (Vorgaben & Kommentare in plugins/social-extension/data/configs/en-social-extension.json5). Sie spiegelt exakt die Dashboard-Felder wider.

config: {
  global: {
    enabled: true,
    poll_interval_minutes: 5,   // Prüf-Intervall in Minuten
    max_posts_per_check: 3,     // Obergrenze pro Account & Prüfung
    mention_above_embed: true,
    show_statistics: true,
    embed_color: "2B2D31",      // Hex ohne # oder Farbname
  },
  credentials: {
    twitter_bearer_token: "DEIN_X_BEARER_TOKEN",
  },
  // Index eines Custom-Emojis deiner Application pro Label
  emojis: { twitter: 0, instagram: 1, verified: 2, like: 3, repost: 4, comment: 5, view: 6, link: 7 },
  // Liste (Array) von Accounts — jeder mit einer eindeutigen "id"
  accounts: [
    // Twitter / X — nutzt das globale Bearer Token oben
    {
      id: "discord_x",
      enabled: true,
      platform: "twitter",
      username: "discord",                  // Handle ohne @
      channel_id: "123456789012345678",     // Ziel-Kanal
      mention_role_id: "234567890123456789", // Rolle pingen ("" = aus)
      mention_everyone: false,
      format: "embed",                       // "embed" oder "text"
      custom_message: "Neuer Post von %username%!", // %username%, %url%
      embed_color: "1D9BF0",
      include_replies: false,
      include_retweets: true,
    },
    // Instagram per RSS — keine API-Keys nötig (z. B. RSS.app-Feed)
    {
      id: "natgeo_ig",
      enabled: true,
      platform: "instagram",
      username: "natgeo",
      channel_id: "345678901234567890",
      mention_role_id: "",
      mention_everyone: false,
      format: "text",                        // schlicht als Text + Link-Vorschau
      rss_url: "https://rss.app/feeds/dein-instagram.xml", // gesetzt -> Feed statt API
      custom_message: "",
      embed_color: "E1306C",
      // ig_user_id / access_token nur nötig, wenn KEIN rss_url genutzt wird
    },
  ],
}
Geheimnisse (twitter_bearer_token, access_token) werden im Dashboard nie zurück angezeigt. Beim Bearbeiten über das Dashboard ein leeres Feld = vorhandener Wert bleibt erhalten.

Verhalten

  • Beim ersten Check eines neuen Accounts werden vorhandene Posts nur stillschweigend gemerkt — der Kanal wird also nicht mit dem Verlauf geflutet. Erst danach veröffentlichte Posts werden angekündigt.
  • Bereits gesendete Posts werden in configuration/social-state.json gemerkt (pro Installation, nicht im Repository).
Befehle und Fehlersuche findest du unter Befehle & FAQ.
Copyright © 2026