1
Fork 0

Import newly released charts

This commit is contained in:
prescientmoon 2024-10-04 17:42:17 +02:00
parent 2ac13510f2
commit 238d81f3bd
Signed by: prescientmoon
SSH key fingerprint: SHA256:WFp/cO76nbarETAoQcQXuV+0h7XJsEsOCI0UsyPIy6U
10 changed files with 28 additions and 13 deletions

View file

@ -17,8 +17,8 @@ mkdir -p $dir_path
cd $dir_path cd $dir_path
http GET "$url" > temp http GET "$url" > temp
convert ./temp ./base.jpg magick ./temp ./base.jpg
convert ./base.jpg -resize 256x256 ./base_256.jpg magick ./base.jpg -resize 256x256 ./base_256.jpg
rm temp rm temp
img2sixel ./base.jpg img2sixel ./base.jpg

View file

@ -1,5 +1,5 @@
#!/usr/bin/env bash #!/usr/bin/env bash
dir_path=$SHIMMERING_DATA_DIR/songs dir_path=$SHIMMERING_ASSETS_DIR/songs/raw
# Find all files in the directory and its subdirectories # Find all files in the directory and its subdirectories
find "$dir_path" -type f | while read -r file; do find "$dir_path" -type f | while read -r file; do

View file

@ -629,3 +629,7 @@ Vulcānus,"Team Grimoire
vs. Aoi",Rotaeno,Volution,PST 5,5.5,968,Volution CCCLX,PRS 8,8.4,"1,234",Volution IV,FTR 10+,10.9,"1,542",N/A,,,,Light,212,5.10.0,24/8/29,N/A,,✓ vs. Aoi",Rotaeno,Volution,PST 5,5.5,968,Volution CCCLX,PRS 8,8.4,"1,234",Volution IV,FTR 10+,10.9,"1,542",N/A,,,,Light,212,5.10.0,24/8/29,N/A,,✓
epitaxy,Camellia,World Extend 3: Illusions,Dec18,PST 3,3.0,826,Dec18,PRS 6,6.0,939,Dec18,FTR 8,8.6,"1,177",Dec18,ETR 9,9.6,"1,410",Light,183,5.10.0,24/8/29,5.10.0,24/8/29, epitaxy,Camellia,World Extend 3: Illusions,Dec18,PST 3,3.0,826,Dec18,PRS 6,6.0,939,Dec18,FTR 8,8.6,"1,177",Dec18,ETR 9,9.6,"1,410",Light,183,5.10.0,24/8/29,5.10.0,24/8/29,
"Rain of Conflict in a Radiant Abyss",ak+q,Memory Archive: Partner,"Nitro ""v20170309""",PST 5,5.0,831,"Nitro ""v20170309""",PRS 7+,7.8,934,"Nitro ""v20170309""",FTR 9,9.5,"1,174","Nitro meets Toaster ""v20170309""",ETR 10,10.5,"1,247",Conflict,195,5.10.2,24/9/12,5.10.2,24/9/12,✓ "Rain of Conflict in a Radiant Abyss",ak+q,Memory Archive: Partner,"Nitro ""v20170309""",PST 5,5.0,831,"Nitro ""v20170309""",PRS 7+,7.8,934,"Nitro ""v20170309""",FTR 9,9.5,"1,174","Nitro meets Toaster ""v20170309""",ETR 10,10.5,"1,247",Conflict,195,5.10.2,24/9/12,5.10.2,24/9/12,✓
Saint or Sinner,crayvxn,Adverse Prelude,小終点,PST 3,3.0,447,小終点,PRS 6,6.0,563,小終点,FTR 8+,8.8,906,N/A,,,,Conflict,164,5.10.4,24/9/26,N/A,,✓
FURETE-MITAI,みきとP,World Extend 3: Illusions,nora::neko,PST 2,2.5,447,nora::neko,PRS 6,6.0,523,nora::neko,FTR 8,8.4,763,nora::neko,ETR 9,9.4,841,Light,155,5.10.4,24/9/26,5.10.4,24/9/26,
Hailstone,Kazki Misora,World Extend 3: Illusions,raycast,PST 3,3.5,534,raycast,PRS 7,7.0,651,raycast,FTR 9+,9.7,"1,002",N/A,,,,Light,180,5.10.4,24/9/26,N/A,,
Gensou no Satellite,豚乙女,Memory Archive: Pop/Recommended,Luxance,PST 2,2.5,721,Luxance,PRS 6,6.5,783,Luxance,FTR 8+,8.7,992,Luxance,ETR 10,10.1,"1,139",Conflict,230,5.10.4,24/9/26,5.10.4,24/9/26,

1 Song Artist Pack Note Design Level CC Notes Note Design Level CC Notes Note Design Level CC Notes Note Design Level CC Notes Side BPM Version Date Version Date Original
629
630
631
632
633
634
635

View file

@ -240,7 +240,7 @@ pub struct Chart {
#[derive(Debug, Clone)] #[derive(Debug, Clone)]
pub struct CachedSong { pub struct CachedSong {
pub song: Song, pub song: Song,
chart_ids: [Option<NonZeroU16>; 5], chart_ids: [Option<NonZeroU16>; Difficulty::DIFFICULTIES.len()],
} }
impl CachedSong { impl CachedSong {
@ -253,8 +253,11 @@ impl CachedSong {
} }
#[inline] #[inline]
pub fn charts(&self) -> impl Iterator<Item = u32> { pub fn charts(&self) -> impl Iterator<Item = (Difficulty, u32)> {
self.chart_ids.into_iter().flatten().map(|i| i.get() as u32) self.chart_ids
.into_iter()
.enumerate()
.filter_map(|(i, id)| id.map(|id| (Difficulty::DIFFICULTIES[i], id.get() as u32)))
} }
} }
// }}} // }}}

View file

@ -158,7 +158,7 @@ impl JacketCache {
bitmap, bitmap,
}); });
} else { } else {
for chart_id in song_cache.lookup_song(song_id)?.charts() { for (_, chart_id) in song_cache.lookup_song(song_id)?.charts() {
let chart = song_cache.lookup_chart_mut(chart_id)?; let chart = song_cache.lookup_chart_mut(chart_id)?;
if chart.jacket_source.is_none() { if chart.jacket_source.is_none() {
chart.cached_jacket = Some(Jacket { chart.cached_jacket = Some(Jacket {

View file

@ -13,7 +13,7 @@ use super::discord::MessageContext;
// }}} // }}}
// {{{ Top command // {{{ Top command
/// Compute different things /// Compute various things
#[poise::command( #[poise::command(
prefix_command, prefix_command,
slash_command, slash_command,

View file

@ -24,7 +24,7 @@ use super::discord::{CreateReplyExtra, MessageContext};
// }}} // }}}
// {{{ Top command // {{{ Top command
/// Chart-related stats /// Chart-related utilities.
#[poise::command( #[poise::command(
prefix_command, prefix_command,
slash_command, slash_command,

View file

@ -323,7 +323,7 @@ mod show_tests {
} }
// }}} // }}}
// {{{ Discord wrapper // {{{ Discord wrapper
/// Show scores given their ides /// Show scores given their IDs.
#[poise::command(prefix_command, slash_command)] #[poise::command(prefix_command, slash_command)]
pub async fn show( pub async fn show(
mut ctx: Context<'_>, mut ctx: Context<'_>,

View file

@ -26,7 +26,7 @@ use super::discord::MessageContext;
// }}} // }}}
// {{{ Stats // {{{ Stats
/// Stats display /// Query various stats.
#[poise::command( #[poise::command(
prefix_command, prefix_command,
slash_command, slash_command,

View file

@ -80,8 +80,16 @@ pub fn guess_chart_name<'a>(
let plausible_difficulty = match difficulty { let plausible_difficulty = match difficulty {
Some(difficulty) => difficulty == chart.difficulty, Some(difficulty) => difficulty == chart.difficulty,
None => { None => {
let chart_count = cached_song.charts().count(); let has_ftr = cached_song.charts().any(|(d, _)| d == Difficulty::FTR);
chart_count == 1 || chart.difficulty == Difficulty::FTR let main_diff = if has_ftr {
Difficulty::FTR
} else {
let (max_diff, _) =
cached_song.charts().max_by_key(|(d, _)| *d).unwrap();
max_diff
};
chart.difficulty == main_diff
} }
}; };