Awesome-Python-Scripts/py_based_music_player/py_based_music_player.py
2022-10-05 21:45:58 +05:30

56 lines
1.5 KiB
Python

import os
import json
from mutagen.mp3 import MP3
from mutagen.easyid3 import EasyID3
music_dir = 'assets/music/'
cover_dir = 'assets/cover/'
js_destination_file = 'js/main/music_list.js'
with open(js_destination_file,'w') as js_file:
pass
def work_on_mlist(m_list,m_dir):
out_list = []
for mp3_index,mp3 in enumerate(m_list):
file_path = music_dir + m_dir + '/' + mp3
mp3file = MP3(file_path,ID3=EasyID3)
album = mp3file.get('album')
artist = mp3file.get('artist')
genre = mp3file.get('genre')
title = mp3file.get('title')
d_dict ={
'id': str(mp3_index),
'title': title,
'artist': artist,
'album': album,
'genre': genre,
'f_path':file_path,
'c_path':file_path.replace('.mp3','.jpg').replace('/music/','/cover/')
}
out_list.append(d_dict)
return out_list
def write_in_js_file(py_object, js_var_name):
js_object = json.dumps(py_object,indent = 4)
var = 'const ' + js_var_name + ' = '
out_string = var + js_object + ';'
with open(js_destination_file,'a') as js_file:
js_file.write(out_string +'\n')
all_list = [d.lower() for d in os.listdir(music_dir)]
write_in_js_file(all_list,'music_list')
main_dict = {}
for main_dir in os.listdir(music_dir):
m_list = os.listdir(music_dir+main_dir)
out_list = work_on_mlist(m_list,main_dir)
var = main_dir.lower()
main_dict[var] = out_list
write_in_js_file(main_dict,'main_list')