riddhiman commited on
Commit
4061cfd
·
verified ·
1 Parent(s): 1d0e024

Update server.js

Browse files
Files changed (1) hide show
  1. server.js +19 -3
server.js CHANGED
@@ -1,4 +1,6 @@
1
  const express = require('express');
 
 
2
  const fs = require('fs');
3
  const path = require('path');
4
 
@@ -8,12 +10,26 @@ const PORT = process.env.PORT || 7860;
8
  app.use(express.static('public'));
9
  app.use('/music', express.static('music'));
10
 
11
- app.get('/tracks', (req, res) => {
12
- fs.readdir('music', (err, files) => {
13
  if (err) {
 
14
  return res.sendStatus(500);
15
  }
16
- res.json(files.filter(file => file.endsWith('.mp3')));
 
 
 
 
 
 
 
 
 
 
 
 
 
17
  });
18
  });
19
 
 
1
  const express = require('express');
2
+ const mm = require('music-metadata');
3
+ const util = require('util');
4
  const fs = require('fs');
5
  const path = require('path');
6
 
 
10
  app.use(express.static('public'));
11
  app.use('/music', express.static('music'));
12
 
13
+ app.get('/tracks', async (req, res) => {
14
+ fs.readdir('music', async (err, files) => {
15
  if (err) {
16
+ console.error('Error reading music directory', err);
17
  return res.sendStatus(500);
18
  }
19
+
20
+ const trackDetails = [];
21
+ for (const file of files.filter(file => file.endsWith('.mp3'))) {
22
+ const filePath = path.join(__dirname, 'music', file);
23
+ try {
24
+ const metadata = await mm.parseFile(filePath, { native: true });
25
+ const artwork = metadata.common.picture && metadata.common.picture[0] ? `data:${metadata.common.picture[0].format};base64,${metadata.common.picture[0].data.toString('base64')}` : '';
26
+ trackDetails.push({filename: file, artwork});
27
+ } catch (error) {
28
+ console.error(`Error reading metadata for file: ${file}`, error);
29
+ }
30
+ }
31
+
32
+ res.json(trackDetails);
33
  });
34
  });
35