1
Fork 0

Import new Rotaeno charts

This commit is contained in:
prescientmoon 2024-09-04 00:53:14 +02:00
parent ec5a8c8a6e
commit c4a0698b87
Signed by: prescientmoon
SSH key fingerprint: SHA256:WFp/cO76nbarETAoQcQXuV+0h7XJsEsOCI0UsyPIy6U
3 changed files with 460 additions and 442 deletions

View file

@ -4,12 +4,10 @@
import csv import csv
import os import os
import sqlite3 import sqlite3
import sys
data_dir = os.environ.get("SHIMMERING_DATA_DIR") data_dir = os.environ.get("SHIMMERING_DATA_DIR")
config_dir = os.environ.get("SHIMMERING_CONFIG_DIR")
db_path = data_dir + "/db.sqlite" db_path = data_dir + "/db.sqlite"
# if not os.path.exists(db_path):
# run(f"cat ./schema.sql | sqlite3 {db_path}")
conn = sqlite3.connect(db_path) conn = sqlite3.connect(db_path)
@ -19,12 +17,11 @@ def import_charts_from_csv():
song_count = 0 song_count = 0
shorthand_count = 0 shorthand_count = 0
with open(data_dir + "/charts.csv", mode="r") as file: with open(config_dir + "/charts.csv", mode="r") as file:
for i, row in enumerate(csv.reader(file)): for i, row in enumerate(csv.reader(file)):
if i == 0 or len(row) == 0: if i == 0 or len(row) == 0:
continue continue
song_count += 1
[ [
title, title,
artist, artist,
@ -39,6 +36,22 @@ def import_charts_from_csv():
original, original,
] = map(lambda v: v.strip().replace("\n", " "), row) ] = map(lambda v: v.strip().replace("\n", " "), row)
existing_count = conn.execute(
"""
SELECT count()
FROM songs
WHERE title=?
AND artist=?
""",
(title, artist),
).fetchone()[0]
if existing_count > 0:
continue
song_count += 1
print(f'Importing "{title}" by "{artist}"')
song_id = conn.execute( song_id = conn.execute(
""" """
INSERT INTO songs(title,artist,pack,side,bpm) INSERT INTO songs(title,artist,pack,side,bpm)
@ -71,7 +84,7 @@ def import_charts_from_csv():
), ),
) )
with open(data_dir + "/shorthands.csv", mode="r") as file: with open(config_dir + "/shorthands.csv", mode="r") as file:
for i, row in enumerate(csv.reader(file)): for i, row in enumerate(csv.reader(file)):
if i == 0 or len(row) == 0: if i == 0 or len(row) == 0:
continue continue
@ -107,10 +120,4 @@ def import_charts_from_csv():
# }}} # }}}
command = sys.argv[1] import_charts_from_csv()
subcommand = sys.argv[2]
if command == "import" and subcommand == "charts":
import_charts_from_csv()
if command == "export" and subcommand == "jackets":
import_charts_from_csv()

View file

@ -1,4 +1,6 @@
#!/usr/bin/env bash #!/usr/bin/env nix-shell
#!nix-shell -p libsixel
#!nix-shell -i bash
if [ "$#" != 2 ]; then if [ "$#" != 2 ]; then
echo "Usage: $0 <name> <url>" echo "Usage: $0 <name> <url>"
@ -10,7 +12,7 @@ url=$2
curr=$(pwd) curr=$(pwd)
dir_path=$SHIMMERING_DATA_DIR/songs/$name dir_path=$SHIMMERING_ASSET_DIR/songs/$name
mkdir $dir_path mkdir $dir_path
cd $dir_path cd $dir_path
@ -18,5 +20,6 @@ http GET "$url" > temp
convert ./temp ./base.jpg convert ./temp ./base.jpg
convert ./base.jpg -resize 256x256 ./base_256.jpg convert ./base.jpg -resize 256x256 ./base_256.jpg
rm temp rm temp
img2sixel ./base.jpg
cd $curr cd $curr

File diff suppressed because it is too large Load diff