init
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
|
||||
// Function to load the appropriate language file
|
||||
function getLanguageFile(language) {
|
||||
const filePath = path.join(__dirname, `../locales/card/${language}.json`);
|
||||
return JSON.parse(fs.readFileSync(filePath, 'utf8'));
|
||||
}
|
||||
|
||||
// Route for the card, with language support
|
||||
router.get('/:lang', (req, res) => {
|
||||
const lang = req.params.lang || 'en'; // Default to English
|
||||
let languageData;
|
||||
|
||||
// Try to load the correct language file, fall back to English
|
||||
try {
|
||||
languageData = getLanguageFile(lang);
|
||||
} catch (err) {
|
||||
languageData = getLanguageFile('en');
|
||||
}
|
||||
|
||||
res.render('card', { langData: languageData});
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
@@ -0,0 +1,27 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
|
||||
// Function to load the appropriate language file
|
||||
function getLanguageFile(language) {
|
||||
const filePath = path.join(__dirname, `../locales/countdown/${language}.json`);
|
||||
return JSON.parse(fs.readFileSync(filePath, 'utf8'));
|
||||
}
|
||||
|
||||
// Route for the card, with language support
|
||||
router.get('/:lang', (req, res) => {
|
||||
const lang = req.params.lang || 'en'; // Default to English
|
||||
let languageData;
|
||||
|
||||
// Try to load the correct language file, fall back to English
|
||||
try {
|
||||
languageData = getLanguageFile(lang);
|
||||
} catch (err) {
|
||||
languageData = getLanguageFile('en');
|
||||
}
|
||||
|
||||
res.render('countdown', { langData: languageData});
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
@@ -0,0 +1,71 @@
|
||||
const express = require('express');
|
||||
const router = express.Router();
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
const multer = require('multer');
|
||||
const crypto = require('crypto');
|
||||
|
||||
// Configure multer storage to create unique filenames
|
||||
const storage = multer.diskStorage({
|
||||
destination: 'public/upload',
|
||||
filename: (req, file, cb) => {
|
||||
const originalName = path.parse(file.originalname);
|
||||
const uniqueSuffix = Date.now() + '-' + crypto.randomBytes(4).toString('hex'); // Generate a unique suffix
|
||||
const newFilename = `${originalName.name}-${uniqueSuffix}${originalName.ext}`; // Create new filename
|
||||
cb(null, newFilename); // Save the file with the new name
|
||||
}
|
||||
});
|
||||
|
||||
const upload = multer({ storage }); // Use the custom storage configuration
|
||||
const messagesFilePath = path.join(__dirname, '../messages.json');
|
||||
|
||||
// Function to load the appropriate language file
|
||||
function getLanguageFile(language) {
|
||||
const filePath = path.join(__dirname, `../locales/guestbook/${language}.json`);
|
||||
return JSON.parse(fs.readFileSync(filePath, 'utf8'));
|
||||
}
|
||||
|
||||
// Load previous messages from a JSON file
|
||||
let messages = [];
|
||||
if (fs.existsSync(messagesFilePath)) {
|
||||
messages = JSON.parse(fs.readFileSync(messagesFilePath, 'utf8'));
|
||||
}
|
||||
|
||||
// Route for the guestbook, with language support
|
||||
router.get('/:lang', (req, res) => {
|
||||
const lang = req.params.lang || 'en'; // Default to English
|
||||
let languageData;
|
||||
|
||||
// Try to load the correct language file, fall back to English
|
||||
try {
|
||||
languageData = getLanguageFile(lang);
|
||||
} catch (err) {
|
||||
languageData = getLanguageFile('en');
|
||||
}
|
||||
|
||||
// Render the guestbook with messages
|
||||
res.render('guestbook', { langData: languageData, messages });
|
||||
});
|
||||
|
||||
// Endpoint to handle guestbook form submission
|
||||
router.post('/new_comment', upload.single('file'), (req, res) => {
|
||||
const lang = req.params.lang || 'en'; // Get the language from the URL
|
||||
const comment = req.body.comment;
|
||||
const name = req.body.name;
|
||||
const imagePath = req.file ? path.join('/upload', req.file.filename) : null;
|
||||
const originalFilename = req.file ? req.file.originalname : null; // Get the original filename
|
||||
|
||||
// Add the new message to the messages array
|
||||
messages.push({ name, comment, imagePath, originalFilename });
|
||||
|
||||
// Save messages to a JSON file
|
||||
try {
|
||||
fs.writeFileSync(messagesFilePath, JSON.stringify(messages, null, 2)); // Indent for readability
|
||||
} catch (error) {
|
||||
console.error('Error writing to messages.json:', error);
|
||||
}
|
||||
|
||||
res.redirect(`/guestbook/${lang}`); // Redirect to the guestbook page with language
|
||||
});
|
||||
|
||||
module.exports = router;
|
||||
Reference in New Issue
Block a user