@deathnaitsa/wa-api 2.0.29 → 2.1.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +144 -4
- package/dist/WhatsAppClient.cjs +1 -1
- package/dist/WhatsAppClient.js +1 -1
- package/dist/auth/sqliteAuthState.cjs +1 -1
- package/dist/auth/sqliteAuthState.js +1 -1
- package/dist/config-helper.cjs +71 -0
- package/dist/config-helper.js +65 -0
- package/dist/index.cjs +1 -1
- package/dist/index.js +1 -1
- package/dist/wa-api.config.cjs +197 -0
- package/dist/wa-api.config.js +197 -0
- package/examples/config-example.js +41 -0
- package/package.json +1 -1
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Nishi WhatsApp API Configuration
|
|
3
|
+
*
|
|
4
|
+
* Diese Datei wird automatisch erstellt und kann beliebig angepasst werden.
|
|
5
|
+
* Alle Einstellungen können zur Laufzeit über Funktionsparameter überschrieben werden.
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
export const waApiConfig = {
|
|
9
|
+
/**
|
|
10
|
+
* Session-Einstellungen
|
|
11
|
+
*/
|
|
12
|
+
session: {
|
|
13
|
+
// SQL-Auth als Standard verwenden (true = SQLite DB, false = JSON-Files)
|
|
14
|
+
useSqlByDefault: false,
|
|
15
|
+
|
|
16
|
+
// Standard Browser für WhatsApp Web
|
|
17
|
+
browser: ['Chrome', '120.0.0', 'Windows'],
|
|
18
|
+
|
|
19
|
+
// QR-Code im Terminal anzeigen
|
|
20
|
+
printQR: true,
|
|
21
|
+
|
|
22
|
+
// Credentials Verzeichnis
|
|
23
|
+
credentialsDir: './sessions',
|
|
24
|
+
|
|
25
|
+
// Automatisch reconnecten bei Disconnect
|
|
26
|
+
autoReconnect: false,
|
|
27
|
+
|
|
28
|
+
// Logger Level ('trace', 'debug', 'info', 'warn', 'error', 'fatal', 'silent')
|
|
29
|
+
logLevel: 'silent',
|
|
30
|
+
|
|
31
|
+
// Online-Status beim Verbinden
|
|
32
|
+
markOnlineOnConnect: false,
|
|
33
|
+
},
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Auto-Reconnect Einstellungen
|
|
37
|
+
*/
|
|
38
|
+
reconnect: {
|
|
39
|
+
// Maximale Reconnect-Versuche
|
|
40
|
+
maxRetries: 5,
|
|
41
|
+
|
|
42
|
+
// Initiales Delay in ms
|
|
43
|
+
initialDelay: 2000,
|
|
44
|
+
|
|
45
|
+
// Maximales Delay in ms
|
|
46
|
+
maxDelay: 30000,
|
|
47
|
+
|
|
48
|
+
// Delay-Multiplikator für Exponential Backoff
|
|
49
|
+
multiplier: 2,
|
|
50
|
+
},
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Footer/Wasserzeichen für Nachrichten
|
|
54
|
+
*/
|
|
55
|
+
footer: {
|
|
56
|
+
// Footer aktivieren/deaktivieren
|
|
57
|
+
enabled: false,
|
|
58
|
+
|
|
59
|
+
// Footer-Text (z.B. "Powered by Nishi API 🚀")
|
|
60
|
+
text: 'Nishi WhatsApp API',
|
|
61
|
+
|
|
62
|
+
// Nachrichtentypen mit Footer (alle Typen wenn leer)
|
|
63
|
+
applyToTypes: ['text', 'image', 'video', 'audio', 'document', 'sticker'],
|
|
64
|
+
|
|
65
|
+
// Footer nur für ausgehende Nachrichten (nicht bei Antworten)
|
|
66
|
+
onlyOutgoing: true,
|
|
67
|
+
},
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Message Queue & Rate Limiting
|
|
71
|
+
*/
|
|
72
|
+
rateLimit: {
|
|
73
|
+
// Rate Limiting aktivieren
|
|
74
|
+
enabled: false,
|
|
75
|
+
|
|
76
|
+
// Maximale Nachrichten pro Interval
|
|
77
|
+
maxMessages: 20,
|
|
78
|
+
|
|
79
|
+
// Interval in ms
|
|
80
|
+
interval: 60000, // 60 Sekunden
|
|
81
|
+
|
|
82
|
+
// Queue-Verarbeitungs-Interval in ms
|
|
83
|
+
queueInterval: 1000,
|
|
84
|
+
},
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Webhook-Einstellungen
|
|
88
|
+
*/
|
|
89
|
+
webhook: {
|
|
90
|
+
// Standard Webhook URL (optional)
|
|
91
|
+
defaultUrl: null,
|
|
92
|
+
|
|
93
|
+
// Webhook-Timeout in ms
|
|
94
|
+
timeout: 5000,
|
|
95
|
+
|
|
96
|
+
// Retry bei Fehler
|
|
97
|
+
retry: true,
|
|
98
|
+
|
|
99
|
+
// Max Retries
|
|
100
|
+
maxRetries: 3,
|
|
101
|
+
},
|
|
102
|
+
|
|
103
|
+
/**
|
|
104
|
+
* Statistik-Einstellungen
|
|
105
|
+
*/
|
|
106
|
+
stats: {
|
|
107
|
+
// Statistiken speichern
|
|
108
|
+
enabled: true,
|
|
109
|
+
|
|
110
|
+
// Stats-File Pfad
|
|
111
|
+
filePath: './sessions/stats.json',
|
|
112
|
+
|
|
113
|
+
// Auto-Save Interval in ms (0 = nur bei Stop)
|
|
114
|
+
autoSaveInterval: 60000, // Jede Minute
|
|
115
|
+
},
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Message Store Einstellungen
|
|
119
|
+
*/
|
|
120
|
+
messageStore: {
|
|
121
|
+
// Nachrichten im Speicher behalten (für Zitate/Edits)
|
|
122
|
+
enabled: true,
|
|
123
|
+
|
|
124
|
+
// Maximale Nachrichten pro Session
|
|
125
|
+
maxMessages: 1000,
|
|
126
|
+
|
|
127
|
+
// Nachrichten nach X Stunden löschen
|
|
128
|
+
maxAge: 24, // Stunden
|
|
129
|
+
},
|
|
130
|
+
|
|
131
|
+
/**
|
|
132
|
+
* Media-Einstellungen
|
|
133
|
+
*/
|
|
134
|
+
media: {
|
|
135
|
+
// Automatisch Media herunterladen
|
|
136
|
+
autoDownload: false,
|
|
137
|
+
|
|
138
|
+
// Download-Verzeichnis
|
|
139
|
+
downloadDir: './media',
|
|
140
|
+
|
|
141
|
+
// Maximale Dateigröße in MB
|
|
142
|
+
maxFileSize: 100,
|
|
143
|
+
},
|
|
144
|
+
|
|
145
|
+
/**
|
|
146
|
+
* Sticker-Einstellungen
|
|
147
|
+
*/
|
|
148
|
+
sticker: {
|
|
149
|
+
// Standard Pack Name
|
|
150
|
+
packname: 'Nishi API',
|
|
151
|
+
|
|
152
|
+
// Standard Author
|
|
153
|
+
author: 'WhatsApp Bot',
|
|
154
|
+
|
|
155
|
+
// Standard Kategorien
|
|
156
|
+
categories: ['🤖', '🚀'],
|
|
157
|
+
},
|
|
158
|
+
|
|
159
|
+
/**
|
|
160
|
+
* Feature-Flags
|
|
161
|
+
*/
|
|
162
|
+
features: {
|
|
163
|
+
// Gruppen-Management aktivieren
|
|
164
|
+
groupManagement: true,
|
|
165
|
+
|
|
166
|
+
// Status/Stories aktivieren
|
|
167
|
+
stories: true,
|
|
168
|
+
|
|
169
|
+
// Polls aktivieren
|
|
170
|
+
polls: true,
|
|
171
|
+
|
|
172
|
+
// Broadcast Lists aktivieren
|
|
173
|
+
broadcast: true,
|
|
174
|
+
|
|
175
|
+
// Contact Management aktivieren
|
|
176
|
+
contacts: true,
|
|
177
|
+
},
|
|
178
|
+
|
|
179
|
+
/**
|
|
180
|
+
* Entwickler-Optionen
|
|
181
|
+
*/
|
|
182
|
+
developer: {
|
|
183
|
+
// Debug-Modus
|
|
184
|
+
debug: false,
|
|
185
|
+
|
|
186
|
+
// Verbose Logging
|
|
187
|
+
verbose: false,
|
|
188
|
+
|
|
189
|
+
// Error Stack Traces zeigen
|
|
190
|
+
showStackTrace: true,
|
|
191
|
+
},
|
|
192
|
+
};
|
|
193
|
+
|
|
194
|
+
/**
|
|
195
|
+
* Default Config Export (falls keine Config-Datei existiert)
|
|
196
|
+
*/
|
|
197
|
+
export default waApiConfig;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Beispiel: Config-System verwenden
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
import { initConfig, startSession, sendText, onMessage } from '@deathnaitsa/wa-api';
|
|
6
|
+
|
|
7
|
+
// 1. Config erstellen (einmalig)
|
|
8
|
+
console.log('📝 Erstelle Config-Datei...');
|
|
9
|
+
initConfig();
|
|
10
|
+
|
|
11
|
+
console.log('\n💡 Du kannst jetzt wa-api.config.js bearbeiten!');
|
|
12
|
+
console.log(' Zum Beispiel:');
|
|
13
|
+
console.log(' - useSqlByDefault: true (SQLite statt JSON-Files)');
|
|
14
|
+
console.log(' - autoReconnect: true (Automatisch reconnecten)');
|
|
15
|
+
console.log(' - footer.enabled: true (Footer für Nachrichten)');
|
|
16
|
+
console.log(' - footer.text: "Dein Text" (Footer-Text anpassen)\n');
|
|
17
|
+
|
|
18
|
+
// 2. Session starten (verwendet Config-Defaults)
|
|
19
|
+
console.log('🚀 Starte Session mit Config-Defaults...');
|
|
20
|
+
await startSession('demo-bot');
|
|
21
|
+
|
|
22
|
+
// 3. Nachrichten empfangen
|
|
23
|
+
onMessage(async (msg) => {
|
|
24
|
+
if (msg.fromMe) return;
|
|
25
|
+
|
|
26
|
+
console.log(`📨 ${msg.name}: ${msg.message}`);
|
|
27
|
+
|
|
28
|
+
if (msg.message === '!ping') {
|
|
29
|
+
// Wenn footer.enabled = true in Config, wird automatisch Footer angehängt
|
|
30
|
+
await sendText(msg.sessionId, msg.from, 'Pong! 🏓');
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (msg.message === '!config') {
|
|
34
|
+
await sendText(msg.sessionId, msg.from,
|
|
35
|
+
'⚙️ Config-System aktiv!\n' +
|
|
36
|
+
'Alle Einstellungen werden aus wa-api.config.js geladen.'
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
|
|
41
|
+
console.log('✅ Bot läuft! Sende !ping oder !config');
|