Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/kasper9n/ferrum. Music library app for Mac, Linux and Windows ferrum.kasper.space
electron linux macos music music-library music-player napi windows
Something went wrong. Try again.
2.5 kB · 93 lines
Rust
at master
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394#![allow(unused)]
// NOTE: This code only runs in debug mode. So you need to// run `npm run dev` at some point before you run `npm run example-100k`
use crate::library_types::Library;use crate::library_types::Track;use fake::Fake;use fake::faker::{lorem::en::Words, name::en::Name};use std::env;use std::path::PathBuf;
pub fn generate_test_data() { generate_library_100k();}
fn words(range: std::ops::RangeInclusive<usize>) -> String { let range = *range.start()..(*range.end() + 1); let words: Vec<String> = Words(range).fake(); words.join(" ")}
fn generate_library_100k() { let path = PathBuf::from(env!("CARGO_MANIFEST_DIR")) .join("src-native/appdata/Library100k/Library.json"); std::fs::create_dir_all(path.parent().unwrap()).unwrap(); let mut library = Library::new();
for id in 0..100_000 { let title = words(1..=5); let artist = words(1..=3); library.try_insert_track( id, Track { id, size: (1_000_000..10_000_000).fake(), duration: (60.0..600.0).fake(), bitrate: (128.0..320.0).fake(), sampleRate: [44_100, 48_000, 96_000][(0..3).fake::<usize>()], file: format!("{artist} - {title}.mp3"), dateModified: (1_500_000_000_000..1_700_000_000_000).fake(), dateAdded: (1_500_000_000_000..1_700_000_000_000).fake(), name: title, importedFrom: None, originalId: None, artist: artist.clone(), composer: Name().fake(), sortName: None, sortArtist: None, sortComposer: None, genre: None, rating: None, year: Some((1980..2026).fake()), bpm: Some((60.0..200.0).fake()), comments: None, grouping: None, liked: None, disliked: None, disabled: None, compilation: None, albumName: Some(words(1..=3)), albumArtist: Some(artist), sortAlbumName: None, sortAlbumArtist: None, trackNum: None, trackCount: None, discNum: None, discCount: None, dateImported: None, playCount: None, plays: None, playsImported: None, skipCount: None, skips: None, skipsImported: None, volume: None, }, ); }
std::fs::write(path, simd_json::to_vec(&library.to_file()).unwrap()).unwrap();}
pub fn load_100k_library() -> Library { use crate::migrate::LibraryFile; use std::fs;
let path = PathBuf::from(env!("CARGO_MANIFEST_DIR")) .join("src-native/appdata/Library100k/Library.json"); let mut data = fs::read(&path).unwrap(); let file: LibraryFile = simd_json::from_slice(&mut data).unwrap(); Library::init_library(file.latest_unwrap())}