Spaces:
Sleeping
Sleeping
| const mongoose = require('mongoose'); | |
| const Subtitle = require('./models/Subtitle'); | |
| // MongoDB connection | |
| const MONGODB_URI = process.env.MONGODB_URI || 'mongodb://localhost:27017/transcreation-sandbox'; | |
| // Nike video subtitle data | |
| const subtitleData = [ | |
| { segmentId: 1, startTime: '00:00:00,640', endTime: '00:00:02,400', duration: '1s 760ms', englishText: 'Am I a bad person?' }, | |
| { segmentId: 2, startTime: '00:00:06,320', endTime: '00:00:07,860', duration: '1s 540ms', englishText: 'Tell me. Am I?' }, | |
| { segmentId: 3, startTime: '00:00:08,480', endTime: '00:00:09,740', duration: '1s 260ms', englishText: 'I\'m single minded.' }, | |
| { segmentId: 4, startTime: '00:00:10,570', endTime: '00:00:11,780', duration: '1s 210ms', englishText: 'I\'m deceptive.' }, | |
| { segmentId: 5, startTime: '00:00:12,050', endTime: '00:00:13,490', duration: '1s 440ms', englishText: 'I\'m obsessive.' }, | |
| { segmentId: 6, startTime: '00:00:13,780', endTime: '00:00:14,910', duration: '1s 130ms', englishText: 'I\'m selfish.' }, | |
| { segmentId: 7, startTime: '00:00:15,120', endTime: '00:00:17,200', duration: '2s 80ms', englishText: 'Does that make me a bad person?' }, | |
| { segmentId: 8, startTime: '00:00:18,010', endTime: '00:00:19,660', duration: '1s 650ms', englishText: 'Am I a bad person?' }, | |
| { segmentId: 9, startTime: '00:00:20,870', endTime: '00:00:21,870', duration: '1s 0ms', englishText: 'Am I?' }, | |
| { segmentId: 10, startTime: '00:00:23,120', endTime: '00:00:24,390', duration: '1s 270ms', englishText: 'I have no empathy.' }, | |
| { segmentId: 11, startTime: '00:00:25,540', endTime: '00:00:27,170', duration: '1s 630ms', englishText: 'I don\'t respect you.' }, | |
| { segmentId: 12, startTime: '00:00:28,550', endTime: '00:00:29,880', duration: '1s 330ms', englishText: 'I\'m never satisfied.' }, | |
| { segmentId: 13, startTime: '00:00:30,440', endTime: '00:00:33,180', duration: '2s 740ms', englishText: 'I have an obsession with power.' }, | |
| { segmentId: 14, startTime: '00:00:37,850', endTime: '00:00:38,950', duration: '1s 100ms', englishText: 'I\'m irrational.' }, | |
| { segmentId: 15, startTime: '00:00:39,930', endTime: '00:00:41,520', duration: '1s 590ms', englishText: 'I have zero remorse.' }, | |
| { segmentId: 16, startTime: '00:00:41,770', endTime: '00:00:43,900', duration: '2s 130ms', englishText: 'I have no sense of compassion.' }, | |
| { segmentId: 17, startTime: '00:00:44,480', endTime: '00:00:46,650', duration: '2s 170ms', englishText: 'I\'m delusional. I\'m maniacal.' }, | |
| { segmentId: 18, startTime: '00:00:46,960', endTime: '00:00:48,980', duration: '2s 20ms', englishText: 'You think I\'m a bad person?' }, | |
| { segmentId: 19, startTime: '00:00:49,320', endTime: '00:00:52,700', duration: '3s 380ms', englishText: 'Tell me. Tell me. Tell me.\nTell me. Am I?' }, | |
| { segmentId: 20, startTime: '00:00:52,990', endTime: '00:00:55,136', duration: '2s 146ms', englishText: 'I think I\'m better than everyone else.' }, | |
| { segmentId: 21, startTime: '00:00:55,170', endTime: '00:00:57,820', duration: '2s 650ms', englishText: 'I want to take what\'s yours\nand never give it back.' }, | |
| { segmentId: 22, startTime: '00:00:57,840', endTime: '00:01:00,640', duration: '2s 800ms', englishText: 'What\'s mine is mine\nand what\'s yours is mine.' }, | |
| { segmentId: 23, startTime: '00:01:06,920', endTime: '00:01:08,290', duration: '1s 370ms', englishText: 'Am I a bad person?' }, | |
| { segmentId: 24, startTime: '00:01:08,840', endTime: '00:01:10,420', duration: '1s 580ms', englishText: 'Tell me. Am I?' }, | |
| { segmentId: 25, startTime: '00:01:21,500', endTime: '00:01:23,650', duration: '2s 150ms', englishText: 'Does that make me a bad person?' }, | |
| { segmentId: 26, startTime: '00:01:25,060', endTime: '00:01:26,900', duration: '1s 840ms', englishText: 'Tell me. Does it?' } | |
| ]; | |
| async function seedSubtitles() { | |
| try { | |
| console.log('π Connecting to MongoDB...'); | |
| await mongoose.connect(MONGODB_URI); | |
| console.log('β Connected to MongoDB'); | |
| // Clear existing subtitles | |
| console.log('ποΈ Clearing existing subtitle data...'); | |
| await Subtitle.deleteMany({}); | |
| console.log('β Cleared existing subtitle data'); | |
| // Insert new subtitle data | |
| console.log('π Inserting subtitle data...'); | |
| const result = await Subtitle.insertMany(subtitleData); | |
| console.log(`β Successfully inserted ${result.length} subtitle segments`); | |
| // Verify the data | |
| console.log('π Verifying data...'); | |
| const count = await Subtitle.countDocuments(); | |
| console.log(`π Total subtitle segments in database: ${count}`); | |
| // Show sample data | |
| const sample = await Subtitle.findOne().sort({ segmentId: 1 }); | |
| console.log('π Sample subtitle data:'); | |
| console.log(JSON.stringify(sample, null, 2)); | |
| console.log('π Subtitle seeding completed successfully!'); | |
| } catch (error) { | |
| console.error('β Error seeding subtitles:', error); | |
| } finally { | |
| await mongoose.disconnect(); | |
| console.log('π Disconnected from MongoDB'); | |
| } | |
| } | |
| // Run the seeding function | |
| if (require.main === module) { | |
| seedSubtitles(); | |
| } | |
| module.exports = { seedSubtitles, subtitleData }; |