plex-bot.js aktualisiert
This commit is contained in:
parent
a7b41933a9
commit
b1cecc7baf
681
plex-bot.js
681
plex-bot.js
|
@ -989,104 +989,116 @@ loadSubscribers();
|
||||||
|
|
||||||
// Profilbefehl
|
// Profilbefehl
|
||||||
bot.onText(/\/profil/, (msg) => {
|
bot.onText(/\/profil/, (msg) => {
|
||||||
const chatId = msg.chat.id;
|
const chatId = msg.chat.id;
|
||||||
|
|
||||||
const userFilePath = path.join(__dirname, 'user.yml');
|
const userFilePath = path.join(__dirname, 'user.yml');
|
||||||
const subscribersFilePath = path.join(__dirname, 'subscribers.json');
|
const subscribersFilePath = path.join(__dirname, 'subscribers.json');
|
||||||
const wishesFilePath = path.join(__dirname, 'wunsch', `wishes_${chatId}.json`);
|
const wishesFilePath = path.join(__dirname, 'wunsch', `wishes_${chatId}.json`);
|
||||||
const feedbackFilePath = path.join(__dirname, 'feedback.log');
|
const feedbackFilePath = path.join(__dirname, 'feedback.log');
|
||||||
|
|
||||||
// Schritt 1: Benutzerinformationen aus user.yml lesen
|
// Schritt 1: Benutzerinformationen aus user.yml lesen
|
||||||
fs.readFile(userFilePath, 'utf8', (err, userData) => {
|
fs.readFile(userFilePath, 'utf8', (err, userData) => {
|
||||||
if (err) {
|
|
||||||
console.error(`Fehler beim Lesen der Datei ${userFilePath}: ${err}`);
|
|
||||||
bot.sendMessage(chatId, 'Fehler beim Laden der Benutzerinformationen.')
|
|
||||||
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const users = load(userData);
|
|
||||||
const user = users[chatId] || {}; // Benutzerdaten für den aktuellen Benutzer
|
|
||||||
|
|
||||||
// Initialisiere Benutzerinformationen
|
|
||||||
const userName = escapeMarkdownV2(user.username || 'Unbekannt');
|
|
||||||
const userId = chatId;
|
|
||||||
const firstUsedDate = escapeMarkdownV2(formatDate(user.firstUsed || new Date().toISOString())); // Aktuelles Datum verwenden, falls nicht vorhanden
|
|
||||||
|
|
||||||
// Benutzerlevel initialisieren
|
|
||||||
const commandCount = user.commandCount || 0; // Anzahl der Befehle aus den Benutzerdaten
|
|
||||||
const wishesCount = user.wishesCount || 0; // Anzahl der Wünsche aus Benutzerdaten
|
|
||||||
const userLevel = getUserLevel(commandCount, wishesCount); // Benutzerlevel ermitteln
|
|
||||||
|
|
||||||
// Lieblingsgenre aus user.yml ermitteln
|
|
||||||
const favoriteGenre = user.favoriteGenre || "Nicht festgelegt"; // Lieblingsgenre aus user.yml oder Standardwert
|
|
||||||
|
|
||||||
// Admin und Dev IDs aus .env auslesen
|
|
||||||
const adminIds = [process.env.USER1_ID, process.env.USER2_ID];
|
|
||||||
const devId = process.env.DEV_CHAT_ID;
|
|
||||||
|
|
||||||
// Bestimme die Rolle basierend auf der ID
|
|
||||||
let roles = [];
|
|
||||||
if (adminIds.includes(String(chatId))) {
|
|
||||||
roles.push('Admin');
|
|
||||||
}
|
|
||||||
if (String(chatId) === devId) {
|
|
||||||
roles.push('DEV');
|
|
||||||
}
|
|
||||||
const role = roles.length > 0 ? roles.join(', ') : 'Benutzer';
|
|
||||||
|
|
||||||
fs.readFile(subscribersFilePath, 'utf8', (err, subsData) => {
|
|
||||||
if (err) {
|
if (err) {
|
||||||
console.error(`Fehler beim Lesen der Datei ${subscribersFilePath}: ${err}`);
|
console.error(`Fehler beim Lesen der Datei ${userFilePath}: ${err}`);
|
||||||
bot.sendMessage(chatId, 'Fehler beim Laden des Newsletter-Status.')
|
bot.sendMessage(chatId, 'Fehler beim Laden der Benutzerinformationen.')
|
||||||
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let subscribers;
|
const users = load(userData);
|
||||||
try {
|
const user = users[chatId] || {}; // Benutzerdaten für den aktuellen Benutzer
|
||||||
subscribers = JSON.parse(subsData); // JSON sicher parsen
|
|
||||||
} catch (parseErr) {
|
// Initialisiere Benutzerinformationen
|
||||||
console.error('Fehler beim Parsen der subscribers.json:', parseErr);
|
const userName = escapeMarkdownV2(user.username || 'Unbekannt');
|
||||||
bot.sendMessage(chatId, 'Fehler beim Verarbeiten der Abonnentendaten.')
|
const userId = chatId;
|
||||||
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
const firstUsedDate = escapeMarkdownV2(formatDate(user.firstUsed || new Date().toISOString())); // Aktuelles Datum verwenden, falls nicht vorhanden
|
||||||
return;
|
|
||||||
|
// Benutzerlevel initialisieren
|
||||||
|
const commandCount = user.commandCount || 0; // Anzahl der Befehle aus den Benutzerdaten
|
||||||
|
const wishesCount = user.wishesCount || 0; // Anzahl der Wünsche aus Benutzerdaten
|
||||||
|
const userLevel = getUserLevel(commandCount, wishesCount); // Benutzerlevel ermitteln
|
||||||
|
|
||||||
|
// Admin und Dev IDs aus .env auslesen
|
||||||
|
const adminIds = [process.env.USER1_ID, process.env.USER2_ID];
|
||||||
|
const devId = process.env.DEV_CHAT_ID;
|
||||||
|
|
||||||
|
// Bestimme die Rolle basierend auf der ID
|
||||||
|
let roles = [];
|
||||||
|
if (adminIds.includes(String(chatId))) {
|
||||||
|
roles.push('Admin');
|
||||||
}
|
}
|
||||||
|
if (String(chatId) === devId) {
|
||||||
|
roles.push('DEV');
|
||||||
|
}
|
||||||
|
const role = roles.length > 0 ? roles.join(', ') : 'Benutzer';
|
||||||
|
|
||||||
// Status prüfen, ob der Benutzer abonniert ist
|
fs.readFile(subscribersFilePath, 'utf8', (err, subsData) => {
|
||||||
const isSubscribed = subscribers.some(subscriber => subscriber.chatId === chatId);
|
if (err) {
|
||||||
const newsletterStatus = isSubscribed ? 'Ja' : 'Nein';
|
console.error(`Fehler beim Lesen der Datei ${subscribersFilePath}: ${err}`);
|
||||||
|
bot.sendMessage(chatId, 'Fehler beim Laden des Newsletter-Status.')
|
||||||
// Schritt 3: Wünsche aus wishes_${chatId}.json lesen
|
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
||||||
fs.readFile(wishesFilePath, 'utf8', (err, wishesData) => {
|
return;
|
||||||
let wishesCount = 0; // Initialisierung der Wünsche
|
|
||||||
let notificationStatus = user.notifications ? 'Ja' : 'Nein';
|
|
||||||
|
|
||||||
if (!err) {
|
|
||||||
try {
|
|
||||||
const userWishes = JSON.parse(wishesData);
|
|
||||||
wishesCount = userWishes.length;
|
|
||||||
} catch (parseErr) {
|
|
||||||
console.error('Fehler beim Parsen der wishes-Datei:', parseErr);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Schritt 4: Anzahl der Feedbacks zählen
|
let subscribers;
|
||||||
fs.stat(feedbackFilePath, (err) => {
|
try {
|
||||||
let feedbackCount = 0; // Standardwert für Feedbacks
|
subscribers = JSON.parse(subsData); // JSON sicher parsen
|
||||||
|
} catch (parseErr) {
|
||||||
|
console.error('Fehler beim Parsen der subscribers.json:', parseErr);
|
||||||
|
bot.sendMessage(chatId, 'Fehler beim Verarbeiten der Abonnentendaten.')
|
||||||
|
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (!err) { // Datei existiert
|
// Status prüfen, ob der Benutzer abonniert ist
|
||||||
fs.readFile(feedbackFilePath, 'utf8', (err, feedbackData) => {
|
const isSubscribed = subscribers.some(subscriber => subscriber.chatId === chatId);
|
||||||
if (!err) {
|
const newsletterStatus = isSubscribed ? 'Ja' : 'Nein';
|
||||||
const feedbackLines = feedbackData.split('\n');
|
|
||||||
feedbackCount = feedbackLines.filter(line => line.includes(`chatId ${chatId}`)).length; // Zähle nur die Feedbacks des aktuellen Benutzers
|
|
||||||
}
|
|
||||||
|
|
||||||
// Benutzerlevel aktualisieren basierend auf den aktuellen Wünschen
|
// Schritt 3: Wünsche aus wishes_${chatId}.json lesen
|
||||||
const updatedUserLevel = getUserLevel(commandCount, wishesCount);
|
fs.readFile(wishesFilePath, 'utf8', (err, wishesData) => {
|
||||||
|
let wishesCount = 0; // Initialisierung der Wünsche
|
||||||
|
let notificationStatus = user.notifications ? 'Ja' : 'Nein';
|
||||||
|
|
||||||
// Schritt 5: Nachricht formatieren und senden
|
if (!err) {
|
||||||
const profileMessage = `
|
try {
|
||||||
|
const userWishes = JSON.parse(wishesData);
|
||||||
|
wishesCount = userWishes.length;
|
||||||
|
} catch (parseErr) {
|
||||||
|
console.error('Fehler beim Parsen der wishes-Datei:', parseErr);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Schritt 4: Anzahl der Feedbacks zählen
|
||||||
|
fs.stat(feedbackFilePath, (err) => {
|
||||||
|
let feedbackCount = 0; // Standardwert für Feedbacks
|
||||||
|
|
||||||
|
if (!err) { // Datei existiert
|
||||||
|
fs.readFile(feedbackFilePath, 'utf8', (err, feedbackData) => {
|
||||||
|
if (!err) {
|
||||||
|
const feedbackLines = feedbackData.split('\n');
|
||||||
|
feedbackCount = feedbackLines.filter(line => line.includes(`chatId ${chatId}`)).length; // Zähle nur die Feedbacks des aktuellen Benutzers
|
||||||
|
}
|
||||||
|
|
||||||
|
// Benutzerlevel aktualisieren basierend auf den aktuellen Wünschen
|
||||||
|
const updatedUserLevel = getUserLevel(commandCount, wishesCount);
|
||||||
|
|
||||||
|
// Schritt 5: Nachricht formatieren und senden
|
||||||
|
const favoriteGenres = user.favoriteGenres && user.favoriteGenres.length > 0
|
||||||
|
? user.favoriteGenres.join(', ') // Genres als kommagetrennte Liste
|
||||||
|
: 'Nicht festgelegt'; // Standardwert, wenn keine Genres ausgewählt sind
|
||||||
|
|
||||||
|
// Nachtmodus-Anzeige
|
||||||
|
let nightModeText;
|
||||||
|
if (user.nightModes && user.nightModes.length > 0) {
|
||||||
|
const nightMode = user.nightModes[0]; // Nimm den ersten Nachtmodus
|
||||||
|
const startTime = nightMode.startTime;
|
||||||
|
const endTime = nightMode.endTime;
|
||||||
|
nightModeText = `🌙 Nachtmodus: ${startTime} \\- ${endTime}`; // Escape des Minuszeichens
|
||||||
|
} else {
|
||||||
|
nightModeText = '🌙 Nachtmodus: Nicht aktiv';
|
||||||
|
}
|
||||||
|
|
||||||
|
const profileMessage = `
|
||||||
📝 *Profil Informationen:*\n\n
|
📝 *Profil Informationen:*\n\n
|
||||||
👤 *Name:* @${userName}\n
|
👤 *Name:* @${userName}\n
|
||||||
🔑 *ID:* ${userId}\n
|
🔑 *ID:* ${userId}\n
|
||||||
|
@ -1097,9 +1109,45 @@ bot.onText(/\/profil/, (msg) => {
|
||||||
📋 *Anzahl der Wünsche:* ${wishesCount}\n
|
📋 *Anzahl der Wünsche:* ${wishesCount}\n
|
||||||
📬 *Anzahl der Feedbacks:* ${feedbackCount}\n
|
📬 *Anzahl der Feedbacks:* ${feedbackCount}\n
|
||||||
🔔 *Benachrichtigung:* ${notificationStatus}\n
|
🔔 *Benachrichtigung:* ${notificationStatus}\n
|
||||||
|
${nightModeText}\n
|
||||||
|
🎭 *Lieblingsgenre:* ${favoriteGenres}\n
|
||||||
|
`.trim(); // Whitespace entfernen
|
||||||
|
|
||||||
|
// Sende Profilinformationen und zeige Button an
|
||||||
|
bot.sendMessage(chatId, profileMessage, {
|
||||||
|
parse_mode: 'MarkdownV2',
|
||||||
|
reply_markup: {
|
||||||
|
inline_keyboard: [
|
||||||
|
[{ text: 'Profil Bearbeiten', callback_data: 'edit_profile' }]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}).catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// Datei existiert nicht, einfach die Nachricht senden
|
||||||
|
const favoriteGenres = user.favoriteGenres && user.favoriteGenres.length > 0
|
||||||
|
? user.favoriteGenres.join(', ') // Genres als kommagetrennte Liste
|
||||||
|
: 'Nicht festgelegt'; // Standardwert, wenn keine Genres ausgewählt sind
|
||||||
|
|
||||||
|
const nightModeText = user.nightModes && user.nightModes.length > 0
|
||||||
|
? `🌙 Nachtmodus: ${user.nightModes[0].startTime} \\- ${user.nightModes[0].endTime}`
|
||||||
|
: '🌙 Nachtmodus: Nicht aktiv';
|
||||||
|
|
||||||
|
const profileMessage = `
|
||||||
|
📝 *Profil Informationen:*\n\n
|
||||||
|
👤 *Name:* @${userName}\n
|
||||||
|
🔑 *ID:* ${userId}\n
|
||||||
|
👤 *Nutzerrolle:* ${role}\n
|
||||||
|
🌟 *Benutzerlevel:* ${updatedUserLevel}\n
|
||||||
|
📅 *Registrierung:* ${firstUsedDate}\n
|
||||||
|
📰 *Newsletter:* ${newsletterStatus}\n
|
||||||
|
📋 *Anzahl der Wünsche:* ${wishesCount}\n
|
||||||
|
📬 *Anzahl der Feedbacks:* 0\n
|
||||||
|
🔔 *Benachrichtigung:* ${notificationStatus}\n
|
||||||
|
${nightModeText}\n
|
||||||
|
🎭 *Lieblingsgenre:* ${favoriteGenres}\n
|
||||||
`.trim(); // Whitespace entfernen
|
`.trim(); // Whitespace entfernen
|
||||||
|
|
||||||
// Sende Profilinformationen und zeige Button an
|
|
||||||
bot.sendMessage(chatId, profileMessage, {
|
bot.sendMessage(chatId, profileMessage, {
|
||||||
parse_mode: 'MarkdownV2',
|
parse_mode: 'MarkdownV2',
|
||||||
reply_markup: {
|
reply_markup: {
|
||||||
|
@ -1108,116 +1156,80 @@ bot.onText(/\/profil/, (msg) => {
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
}).catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
}).catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
||||||
});
|
}
|
||||||
} else {
|
});
|
||||||
// Datei existiert nicht, einfach die Nachricht senden
|
|
||||||
const profileMessage = `
|
|
||||||
📝 *Profil Informationen:*\n\n
|
|
||||||
👤 *Name:* @${userName}\n
|
|
||||||
🔑 *ID:* ${userId}\n
|
|
||||||
👤 *Nutzerrolle:* ${role}\n
|
|
||||||
🌟 *Benutzerlevel:* ${userLevel}\n
|
|
||||||
📅 *Registrierung:* ${firstUsedDate}\n
|
|
||||||
📰 *Newsletter:* ${newsletterStatus}\n
|
|
||||||
📋 *Anzahl der Wünsche:* ${wishesCount}\n
|
|
||||||
📬 *Anzahl der Feedbacks:* 0\n
|
|
||||||
🔔 *Benachrichtigung:* ${notificationStatus}\n
|
|
||||||
`.trim(); // Whitespace entfernen
|
|
||||||
|
|
||||||
bot.sendMessage(chatId, profileMessage, {
|
|
||||||
parse_mode: 'MarkdownV2',
|
|
||||||
reply_markup: {
|
|
||||||
inline_keyboard: [
|
|
||||||
[{ text: 'Profil Bearbeiten', callback_data: 'edit_profile' }]
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}).catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
});
|
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
// Callback query handler for profile editing
|
// Callback query handler for profile editing
|
||||||
bot.on('callback_query', (callbackQuery) => {
|
bot.on('callback_query', (callbackQuery) => {
|
||||||
const action = callbackQuery.data;
|
const action = callbackQuery.data;
|
||||||
const chatId = callbackQuery.message.chat.id;
|
const chatId = callbackQuery.message.chat.id;
|
||||||
|
|
||||||
if (action === 'edit_profile') {
|
if (action === 'edit_profile') {
|
||||||
// Zeige Bearbeitungsoptionen an, wenn der Benutzer "Profil Bearbeiten" drückt
|
// Zeige Bearbeitungsoptionen an, wenn der Benutzer "Profil Bearbeiten" drückt
|
||||||
bot.sendMessage(chatId, '🔍 Was möchten Sie tun? Wählen Sie eine der folgenden Optionen:', {
|
bot.sendMessage(chatId, '🔍 Was möchten Sie tun? Wählen Sie eine der folgenden Optionen:', {
|
||||||
reply_markup: {
|
reply_markup: {
|
||||||
inline_keyboard: [
|
inline_keyboard: [
|
||||||
[
|
[
|
||||||
{ text: 'Lieblingsgenre setzen', callback_data: 'set_favorite_genre' },
|
{ text: 'Genre bearbeiten', callback_data: 'edit_genres' },
|
||||||
{ text: 'Profil zurücksetzen', callback_data: 'reset_profile' }
|
{ text: 'Punkte löschen', callback_data: 'delete_points' },
|
||||||
],
|
{ text: 'Profil zurücksetzen', callback_data: 'reset_profile' }
|
||||||
[
|
],
|
||||||
{ text: 'Punkte löschen', callback_data: 'delete_points' },
|
[
|
||||||
{ text: 'Profil löschen', callback_data: 'delete_profile' }
|
{ text: 'Profil löschen', callback_data: 'delete_profile' }
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
});
|
|
||||||
} else if (action === 'set_favorite_genre') {
|
|
||||||
bot.sendMessage(chatId, 'Bitte geben Sie Ihre Lieblingsgenres ein, getrennt durch Kommas. Verfügbare Genres sind: \n\nAction, Abenteuer, Anime, Dokumentation, Drama, Familie, Fantasy, Horror, Katastrophen, Kinderfilme, Komödie, Krimi, Mystery, Syfy, Thriller, Western.');
|
|
||||||
|
|
||||||
// Hier fangen wir die Nachricht des Benutzers ab
|
|
||||||
bot.once('message', (msg) => {
|
|
||||||
const newFavoriteGenre = msg.text;
|
|
||||||
|
|
||||||
// Debugging: Logge das neue Lieblingsgenre
|
|
||||||
console.log(`Neues Lieblingsgenre: ${newFavoriteGenre} für Benutzer ${chatId}`);
|
|
||||||
|
|
||||||
// Update the favorite genre in user.yml
|
|
||||||
fs.readFile(USER_YML_PATH, 'utf8', (err, userData) => {
|
|
||||||
if (err) {
|
|
||||||
console.error(`Fehler beim Lesen der Datei ${USER_YML_PATH}: ${err}`);
|
|
||||||
bot.sendMessage(chatId, 'Fehler beim Aktualisieren des Lieblingsgenres.')
|
|
||||||
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const users = load(userData);
|
|
||||||
|
|
||||||
// Überprüfen, ob der Benutzer bereits existiert
|
|
||||||
if (users[chatId]) {
|
|
||||||
// Setze das Lieblingsgenre
|
|
||||||
users[chatId].favoriteGenre = newFavoriteGenre; // Aktualisiere das Lieblingsgenre
|
|
||||||
} else {
|
|
||||||
// Benutzer initialisieren, falls nicht vorhanden
|
|
||||||
users[chatId] = {
|
|
||||||
userId: chatId,
|
|
||||||
username: msg.from.username,
|
|
||||||
firstUsed: new Date().toISOString(),
|
|
||||||
notifications: true, // Standardwert, falls nicht gesetzt
|
|
||||||
commandCount: 0, // Standardwert für Befehlsanzahl
|
|
||||||
userLevel: 'Neuling', // Standardbenutzerlevel
|
|
||||||
favoriteGenre: newFavoriteGenre // Setze das Lieblingsgenre
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
// Schreibe die aktualisierten Benutzerinformationen zurück in die Datei
|
|
||||||
fs.writeFile(USER_YML_PATH, dump(users), 'utf8', (err) => {
|
|
||||||
if (err) {
|
|
||||||
console.error(`Fehler beim Schreiben in die Datei ${USER_YML_PATH}: ${err}`);
|
|
||||||
bot.sendMessage(chatId, 'Fehler beim Aktualisieren des Lieblingsgenres.')
|
|
||||||
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
|
||||||
} else {
|
|
||||||
bot.sendMessage(chatId, `✅ Ihr Lieblingsgenre wurde auf "${newFavoriteGenre}" gesetzt.`)
|
|
||||||
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
} else if (action === 'delete_points') {
|
} else if (action === 'edit_genres') {
|
||||||
// Punkte auf 0 setzen
|
// Genre-Auswahl anzeigen
|
||||||
|
bot.sendMessage(chatId, '🎬 Wählen Sie Ihre Lieblingsgenres aus:', {
|
||||||
|
reply_markup: {
|
||||||
|
inline_keyboard: [
|
||||||
|
[
|
||||||
|
{ text: 'Action', callback_data: 'select_genre_Action' },
|
||||||
|
{ text: 'Drama', callback_data: 'select_genre_Drama' },
|
||||||
|
{ text: 'Komödie', callback_data: 'select_genre_Comedy' }
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ text: 'Syfy', callback_data: 'select_genre_Syfy' },
|
||||||
|
{ text: 'Romantik', callback_data: 'select_genre_Romance' },
|
||||||
|
{ text: 'Thriller', callback_data: 'select_genre_Thriller' }
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ text: 'Fantasy', callback_data: 'select_genre_Fantasy' },
|
||||||
|
{ text: 'Family', callback_data: 'select_genre_Family' },
|
||||||
|
{ text: 'Zeichentrick', callback_data: 'select_genre_Animation' }
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ text: 'Anime', callback_data: 'select_genre_Anime' },
|
||||||
|
{ text: 'Horror', callback_data: 'select_genre_Horror' },
|
||||||
|
{ text: 'Katastrophen', callback_data: 'select_genre_Katastrophen' }
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ text: 'Krimi', callback_data: 'select_genre_Krimi' },
|
||||||
|
{ text: 'Mystery', callback_data: 'select_genre_Mystery' },
|
||||||
|
{ text: 'Western', callback_data: 'select_genre_Western' }
|
||||||
|
],
|
||||||
|
[
|
||||||
|
{ text: 'Abenteuer', callback_data: 'select_genre_Abenteuer' },
|
||||||
|
{ text: 'Dokumentation', callback_data: 'select_genre_Dokumentation' }
|
||||||
|
]
|
||||||
|
]
|
||||||
|
}
|
||||||
|
});
|
||||||
|
} else if (action.startsWith('select_genre_')) {
|
||||||
|
// Logik zum Hinzufügen/Entfernen des Genres vom Benutzerprofil
|
||||||
|
const selectedGenre = action.split('_')[2];
|
||||||
|
|
||||||
|
// Hier wird die Logik zum Speichern des Genres ins Profil hinzugefügt
|
||||||
fs.readFile(USER_YML_PATH, 'utf8', (err, userData) => {
|
fs.readFile(USER_YML_PATH, 'utf8', (err, userData) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.error(`Fehler beim Lesen der Datei ${USER_YML_PATH}: ${err}`);
|
console.error(`Fehler beim Lesen der Datei ${USER_YML_PATH}: ${err}`);
|
||||||
bot.sendMessage(chatId, 'Fehler beim Zurücksetzen der Punkte.')
|
bot.sendMessage(chatId, 'Fehler beim Aktualisieren des Profils.')
|
||||||
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -1226,16 +1238,25 @@ bot.on('callback_query', (callbackQuery) => {
|
||||||
|
|
||||||
// Überprüfen, ob der Benutzer existiert
|
// Überprüfen, ob der Benutzer existiert
|
||||||
if (users[chatId]) {
|
if (users[chatId]) {
|
||||||
users[chatId].commandCount = 0; // Setze die Punkte auf 0
|
// Genre zur Liste der Lieblingsgenres hinzufügen oder entfernen
|
||||||
|
if (!users[chatId].favoriteGenres) {
|
||||||
|
users[chatId].favoriteGenres = [];
|
||||||
|
}
|
||||||
|
|
||||||
|
const genreIndex = users[chatId].favoriteGenres.indexOf(selectedGenre);
|
||||||
|
if (genreIndex === -1) {
|
||||||
|
users[chatId].favoriteGenres.push(selectedGenre);
|
||||||
|
bot.sendMessage(chatId, `✅ ${selectedGenre} wurde zu Ihren Lieblingsgenres hinzugefügt.`);
|
||||||
|
} else {
|
||||||
|
users[chatId].favoriteGenres.splice(genreIndex, 1);
|
||||||
|
bot.sendMessage(chatId, `❌ ${selectedGenre} wurde aus Ihren Lieblingsgenres entfernt.`);
|
||||||
|
}
|
||||||
|
|
||||||
// Schreibe die aktualisierten Benutzerinformationen zurück in die Datei
|
// Schreibe die aktualisierten Benutzerinformationen zurück in die Datei
|
||||||
fs.writeFile(USER_YML_PATH, dump(users), 'utf8', (err) => {
|
fs.writeFile(USER_YML_PATH, dump(users), 'utf8', (err) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.error(`Fehler beim Schreiben in die Datei ${USER_YML_PATH}: ${err}`);
|
console.error(`Fehler beim Schreiben in die Datei ${USER_YML_PATH}: ${err}`);
|
||||||
bot.sendMessage(chatId, 'Fehler beim Zurücksetzen der Punkte.')
|
bot.sendMessage(chatId, 'Fehler beim Aktualisieren des Profils.')
|
||||||
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
|
||||||
} else {
|
|
||||||
bot.sendMessage(chatId, '✅ Ihre Punkte wurden erfolgreich auf 0 gesetzt.')
|
|
||||||
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
@ -1286,121 +1307,88 @@ bot.on('callback_query', (callbackQuery) => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
} else if (action === 'delete_profile') {
|
} else if (action === 'delete_profile') {
|
||||||
// Profil löschen
|
// Profil löschen
|
||||||
fs.readFile(USER_YML_PATH, 'utf8', (err, userData) => {
|
fs.readFile(USER_YML_PATH, 'utf8', (err, userData) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.error(`Fehler beim Lesen der Datei ${USER_YML_PATH}: ${err}`);
|
console.error(`Fehler beim Lesen der Datei ${USER_YML_PATH}: ${err}`);
|
||||||
bot.sendMessage(chatId, 'Fehler beim Löschen des Profils.')
|
bot.sendMessage(chatId, 'Fehler beim Löschen des Profils.')
|
||||||
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
const users = load(userData);
|
const users = load(userData);
|
||||||
|
|
||||||
// Überprüfen, ob der Benutzer existiert
|
// Überprüfen, ob der Benutzer existiert
|
||||||
if (users[chatId]) {
|
if (users[chatId]) {
|
||||||
// Benutzer aus user.yml entfernen
|
// Benutzer aus user.yml entfernen
|
||||||
delete users[chatId];
|
delete users[chatId];
|
||||||
|
|
||||||
// Schreibe die aktualisierten Benutzerinformationen zurück in die Datei
|
// Schreibe die aktualisierten Benutzerinformationen zurück in die Datei
|
||||||
fs.writeFile(USER_YML_PATH, dump(users), 'utf8', (err) => {
|
fs.writeFile(USER_YML_PATH, dump(users), 'utf8', (err) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.error(`Fehler beim Schreiben in die Datei ${USER_YML_PATH}: ${err}`);
|
console.error(`Fehler beim Schreiben in die Datei ${USER_YML_PATH}: ${err}`);
|
||||||
bot.sendMessage(chatId, 'Fehler beim Löschen des Profils.')
|
bot.sendMessage(chatId, 'Fehler beim Löschen des Profils.')
|
||||||
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Lösche zugehörige Einträge in w_offen.json
|
// Lösche zugehörige Einträge in w_offen.json
|
||||||
const wOffenFilePath = path.join(__dirname, 'w_offen.json'); // Pfad zur w_offen.json-Datei
|
const wOffenFilePath = path.join(__dirname, 'w_offen.json'); // Pfad zur w_offen.json-Datei
|
||||||
fs.readFile(wOffenFilePath, 'utf8', (err, wOffenData) => {
|
fs.readFile(wOffenFilePath, 'utf8', (err, wOffenData) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.error(`Fehler beim Lesen der Datei ${wOffenFilePath}: ${err}`);
|
console.error(`Fehler beim Lesen der Datei ${wOffenFilePath}: ${err}`);
|
||||||
bot.sendMessage(chatId, 'Fehler beim Löschen des Profils.')
|
bot.sendMessage(chatId, 'Fehler beim Löschen des Profils.')
|
||||||
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
let wOffen;
|
let wOffen;
|
||||||
try {
|
try {
|
||||||
wOffen = JSON.parse(wOffenData); // Sicheres Parsen der JSON-Daten
|
wOffen = JSON.parse(wOffenData); // Sicheres Parsen der JSON-Daten
|
||||||
} catch (parseErr) {
|
} catch (parseErr) {
|
||||||
console.error(`Fehler beim Parsen der w_offen.json: ${parseErr}`);
|
console.error(`Fehler beim Parsen der w_offen.json: ${parseErr}`);
|
||||||
bot.sendMessage(chatId, 'Fehler beim Löschen des Profils.')
|
bot.sendMessage(chatId, 'Fehler beim Löschen des Profils.')
|
||||||
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Entferne alle Wünsche des Benutzers
|
// Entferne alle Wünsche des Benutzers
|
||||||
wOffen = wOffen.filter(wish => wish.userId !== chatId);
|
wOffen = wOffen.filter(wish => wish.userId !== chatId);
|
||||||
|
|
||||||
// Schreibe die aktualisierten Wünsche zurück in die w_offen.json
|
// Schreibe die aktualisierten Wünsche zurück in die w_offen.json
|
||||||
fs.writeFile(wOffenFilePath, JSON.stringify(wOffen, null, 2), 'utf8', (err) => {
|
fs.writeFile(wOffenFilePath, JSON.stringify(wOffen, null, 2), 'utf8', (err) => {
|
||||||
if (err) {
|
if (err) {
|
||||||
console.error(`Fehler beim Schreiben in die Datei ${wOffenFilePath}: ${err}`);
|
console.error(`Fehler beim Schreiben in die Datei ${wOffenFilePath}: ${err}`);
|
||||||
bot.sendMessage(chatId, 'Fehler beim Löschen des Profils.')
|
bot.sendMessage(chatId, 'Fehler beim Löschen des Profils.')
|
||||||
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Lösche die Datei im Wunsch-Ordner
|
// Lösche die Datei im Wunsch-Ordner
|
||||||
const wunschFolderPath = path.join(__dirname, 'wunsch');
|
const wunschFolderPath = path.join(__dirname, 'wunsch');
|
||||||
const userFilePath = path.join(wunschFolderPath, `wishes_${chatId}.json`); // Stelle sicher, dass der Dateiname korrekt ist
|
const userFilePath = path.join(wunschFolderPath, `wishes_${chatId}.json`); // Stelle sicher, dass der Dateiname korrekt ist
|
||||||
fs.unlink(userFilePath, (err) => {
|
fs.unlink(userFilePath, (err) => {
|
||||||
if (err && err.code !== 'ENOENT') { // ENOENT bedeutet, die Datei existiert nicht
|
if (err) {
|
||||||
console.error(`Fehler beim Löschen der Datei ${userFilePath}: ${err}`);
|
console.error(`Fehler beim Löschen der Datei ${userFilePath}: ${err}`);
|
||||||
bot.sendMessage(chatId, 'Fehler beim Löschen des Profils.')
|
bot.sendMessage(chatId, 'Fehler beim Löschen des Profils.')
|
||||||
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
||||||
return;
|
} else {
|
||||||
}
|
bot.sendMessage(chatId, '✅ Ihr Profil wurde erfolgreich gelöscht.')
|
||||||
|
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
||||||
// Lösche den Benutzer aus subscribers.json
|
}
|
||||||
const subscribersFilePath = path.join(__dirname, 'subscribers.json');
|
});
|
||||||
fs.readFile(subscribersFilePath, 'utf8', (err, subscribersData) => {
|
});
|
||||||
if (err) {
|
});
|
||||||
console.error(`Fehler beim Lesen der Datei ${subscribersFilePath}: ${err}`);
|
});
|
||||||
bot.sendMessage(chatId, 'Fehler beim Löschen des Profils.')
|
} else {
|
||||||
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
bot.sendMessage(chatId, '❌ Benutzer nicht gefunden.')
|
||||||
return;
|
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
||||||
}
|
}
|
||||||
|
});
|
||||||
let subscribers;
|
|
||||||
try {
|
|
||||||
subscribers = JSON.parse(subscribersData);
|
|
||||||
} catch (parseErr) {
|
|
||||||
console.error(`Fehler beim Parsen der subscribers.json: ${parseErr}`);
|
|
||||||
bot.sendMessage(chatId, 'Fehler beim Löschen des Profils.')
|
|
||||||
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Entferne den Benutzer aus der Liste
|
|
||||||
const updatedSubscribers = subscribers.filter(subscriber => subscriber.chatId !== chatId);
|
|
||||||
|
|
||||||
// Schreibe die aktualisierten Abonnenten zurück in die Datei
|
|
||||||
fs.writeFile(subscribersFilePath, JSON.stringify(updatedSubscribers, null, 2), 'utf8', (err) => {
|
|
||||||
if (err) {
|
|
||||||
console.error(`Fehler beim Schreiben in die Datei ${subscribersFilePath}: ${err}`);
|
|
||||||
bot.sendMessage(chatId, 'Fehler beim Löschen des Profils.')
|
|
||||||
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
|
||||||
} else {
|
|
||||||
bot.sendMessage(chatId, '✅ Ihr Profil wurde erfolgreich gelöscht.')
|
|
||||||
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
bot.sendMessage(chatId, '❌ Benutzer nicht gefunden.')
|
|
||||||
.catch(error => console.error(`Fehler bei der Nachricht: ${error.message}`));
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
const { load, dump } = require('js-yaml'); // Stelle sicher, dass js-yaml installiert ist
|
const { load, dump } = require('js-yaml'); // Stelle sicher, dass js-yaml installiert ist
|
||||||
|
|
||||||
// Funktion zum Escapen von Markdown V2-Sonderzeichen
|
// Funktion zum Escapen von Markdown V2-Sonderzeichen
|
||||||
|
@ -1496,24 +1484,6 @@ bot.on('message', (msg) => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Befehl zum Sichern der Dateien
|
// Befehl zum Sichern der Dateien
|
||||||
bot.onText(/\/backup/, (msg) => {
|
bot.onText(/\/backup/, (msg) => {
|
||||||
const chatId = msg.chat.id;
|
const chatId = msg.chat.id;
|
||||||
|
@ -1884,29 +1854,15 @@ bot.onText(/\/night/, (msg) => {
|
||||||
// Logik für den Befehl...
|
// Logik für den Befehl...
|
||||||
});
|
});
|
||||||
|
|
||||||
bot.onText(/\/n_off/, (msg) => {
|
|
||||||
logCommand('/n_off', msg.from.username);
|
|
||||||
// Logik für den Befehl...
|
|
||||||
});
|
|
||||||
|
|
||||||
bot.onText(/\/passwd/, (msg) => {
|
bot.onText(/\/passwd/, (msg) => {
|
||||||
logCommand('/passwd', msg.from.username);
|
logCommand('/passwd', msg.from.username);
|
||||||
// Logik für den Befehl...
|
// Logik für den Befehl...
|
||||||
});
|
});
|
||||||
|
|
||||||
|
bot.onText(/\/key/, (msg) => {
|
||||||
|
logCommand('/key', msg.from.username);
|
||||||
|
// Logik für den Befehl...
|
||||||
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
const userId1 = Number(process.env.USER1_ID); // USER1_ID aus .env laden und in Zahl umwandeln
|
const userId1 = Number(process.env.USER1_ID); // USER1_ID aus .env laden und in Zahl umwandeln
|
||||||
|
@ -4449,6 +4405,7 @@ function createHelpMessage() {
|
||||||
`🎬 /trailer - Fordere einen Trailer für einen bestimmten Film an. \n\n` +
|
`🎬 /trailer - Fordere einen Trailer für einen bestimmten Film an. \n\n` +
|
||||||
`🔝 /empfehlung - Film Empfehlung des Tages.\n\n` +
|
`🔝 /empfehlung - Film Empfehlung des Tages.\n\n` +
|
||||||
`📰 /newsletter - zeigt die Newsletter Funktion an\n\n` +
|
`📰 /newsletter - zeigt die Newsletter Funktion an\n\n` +
|
||||||
|
`🌙 /night - Schaltet den Nachtmodus ein oder aus.\n\n` + // Hinzugefügter Befehl
|
||||||
`❓ /help - Zeigt diese Hilfennachricht an.\n\n`;
|
`❓ /help - Zeigt diese Hilfennachricht an.\n\n`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4464,6 +4421,7 @@ function createMoreHelpMessage() {
|
||||||
`🤖 /bot - Bot-Informationen.\n\n`;
|
`🤖 /bot - Bot-Informationen.\n\n`;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Funktion zum Erstellen der Admin-Hilfennachricht
|
// Funktion zum Erstellen der Admin-Hilfennachricht
|
||||||
function createAdminHelpMessage() {
|
function createAdminHelpMessage() {
|
||||||
return `*👨💻 Admin Befehle* \n\n` +
|
return `*👨💻 Admin Befehle* \n\n` +
|
||||||
|
@ -5078,6 +5036,14 @@ app.get('/api/feedback', (req, res) => {
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Endpunkt /api/users, um die user.yml-Datei zu lesen und die Daten im JSON-Format zurückzugeben
|
// Endpunkt /api/users, um die user.yml-Datei zu lesen und die Daten im JSON-Format zurückzugeben
|
||||||
app.get('/api/users', (req, res) => {
|
app.get('/api/users', (req, res) => {
|
||||||
try {
|
try {
|
||||||
|
@ -5091,16 +5057,28 @@ app.get('/api/users', (req, res) => {
|
||||||
const data = yaml.parse(file); // 'parse' Funktion verwenden
|
const data = yaml.parse(file); // 'parse' Funktion verwenden
|
||||||
|
|
||||||
// Benutzerobjekte in ein Array umwandeln
|
// Benutzerobjekte in ein Array umwandeln
|
||||||
const usersArray = Object.values(data).map(user => ({
|
const usersArray = Object.values(data).map(user => {
|
||||||
userId: user.userId,
|
// Überprüfen, ob nightModes vorhanden sind und Werte abrufen
|
||||||
username: user.username,
|
const nightMode = user.nightModes && user.nightModes.length > 0 ? user.nightModes[0] : null;
|
||||||
notifications: user.notifications,
|
|
||||||
firstUsed: user.firstUsed,
|
// Wenn kein Nachtmodus vorhanden ist, dann "Deaktiviert" anzeigen
|
||||||
favoriteGenre: user.favoriteGenre,
|
const nightModeDisplay = nightMode
|
||||||
commandCount: user.commandCount || 0, // Default auf 0, wenn nicht vorhanden
|
? `${nightMode.startTime} - ${nightMode.endTime}`
|
||||||
userLevel: user.userLevel || 'Nicht festgelegt', // Default-Wert
|
: 'Deaktiviert'; // Hier den gewünschten Text verwenden
|
||||||
nightMode: user.nightMode || {} // Optionales Feld
|
|
||||||
}));
|
return {
|
||||||
|
userId: user.userId,
|
||||||
|
username: user.username,
|
||||||
|
notifications: user.notifications,
|
||||||
|
firstUsed: user.firstUsed,
|
||||||
|
favoriteGenres: user.favoriteGenres && user.favoriteGenres.length > 0
|
||||||
|
? user.favoriteGenres.join(', ') // Falls favoriteGenres existiert, kommagetrenntes Format
|
||||||
|
: (user.favoriteGenre || 'Nicht festgelegt'), // Fallback auf favoriteGenre oder Standardwert
|
||||||
|
commandCount: user.commandCount || 0, // Standard auf 0, wenn nicht vorhanden
|
||||||
|
userLevel: user.userLevel || 'Nicht festgelegt', // Standard-Wert
|
||||||
|
nightMode: nightModeDisplay // Verwendung der neuen Logik für die Nachtmodus-Anzeige
|
||||||
|
};
|
||||||
|
});
|
||||||
|
|
||||||
// JSON-Daten zurückgeben
|
// JSON-Daten zurückgeben
|
||||||
res.json(usersArray);
|
res.json(usersArray);
|
||||||
|
@ -5110,37 +5088,6 @@ app.get('/api/users', (req, res) => {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
// Endpunkt zum Löschen eines Benutzers
|
|
||||||
app.delete('/api/users/:userId', (req, res) => {
|
|
||||||
const userId = req.params.userId;
|
|
||||||
|
|
||||||
try {
|
|
||||||
// Pfad zur user.yml-Datei
|
|
||||||
const filePath = path.join(__dirname, 'user.yml');
|
|
||||||
|
|
||||||
// YAML-Datei laden
|
|
||||||
const file = fs.readFileSync(filePath, 'utf8');
|
|
||||||
const data = yaml.parse(file); // YAML in ein JSON-Objekt konvertieren
|
|
||||||
|
|
||||||
// Überprüfe, ob der Benutzer existiert
|
|
||||||
if (!data[userId]) {
|
|
||||||
return res.status(404).json({ message: 'Benutzer nicht gefunden' });
|
|
||||||
}
|
|
||||||
|
|
||||||
// Benutzer aus den Daten entfernen
|
|
||||||
delete data[userId];
|
|
||||||
|
|
||||||
// Aktualisiere die YAML-Datei mit den neuen Daten
|
|
||||||
fs.writeFileSync(filePath, yaml.stringify(data), 'utf8');
|
|
||||||
|
|
||||||
res.json({ message: 'Benutzer erfolgreich gelöscht' });
|
|
||||||
} catch (err) {
|
|
||||||
console.error('Fehler beim Löschen des Benutzers:', err);
|
|
||||||
res.status(500).json({ message: 'Fehler beim Löschen des Benutzers' });
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
|
|
||||||
let lastRestart = new Date(); // Speichere den aktuellen Zeitpunkt als letzten Neustart
|
let lastRestart = new Date(); // Speichere den aktuellen Zeitpunkt als letzten Neustart
|
||||||
|
|
||||||
// Funktion zum Formatieren des Datums
|
// Funktion zum Formatieren des Datums
|
||||||
|
|
Loading…
Reference in New Issue