Added new scrobble generation for testing

This commit is contained in:
krateng 2021-11-14 18:08:09 +01:00
parent 504bfb405e
commit 817d98e467
4 changed files with 75 additions and 23 deletions

View File

@ -1194,24 +1194,3 @@ def scrobbles_in_range(start,end,reverse=False):
if stamp < start: continue
if stamp > end: return
yield SCROBBLESDICT[stamp]
# for performance testing
def generateStuff(num=0,pertrack=0,mult=0):
import random
for _ in range(num):
track = random.choice(TRACKS)
t = get_track_dict(track)
time = random.randint(STAMPS[0],STAMPS[-1])
createScrobble(t["artists"],t["title"],time,volatile=True)
for track in TRACKS:
t = get_track_dict(track)
for _ in range(pertrack):
time = random.randint(STAMPS[0],STAMPS[-1])
createScrobble(t["artists"],t["title"],time,volatile=True)
for scrobble in SCROBBLES:
s = get_scrobble_dict(scrobble)
for i in range(mult):
createScrobble(s["artists"],s["title"],s["time"] - i*500,volatile=True)

View File

@ -71,7 +71,6 @@ def direct():
from .. import server
@mainfunction({"l":"level"},shield=True)
def main(action,*args,**kwargs):
actions = {
@ -84,7 +83,8 @@ def main(action,*args,**kwargs):
"import":tasks.loadlastfm,
"backup":tasks.backuphere,
# "update":update,
"fix":tasks.fixdb
"fix":tasks.fixdb,
"generate":tasks.generate_scrobbles
}
if action in actions: actions[action](*args,**kwargs)
else: print("Valid commands: " + " ".join(a for a in actions))

View File

@ -34,3 +34,9 @@ def update():
def fixdb():
from .fixexisting import fix
fix()
def generate_scrobbles():
targetfile = data_dir['scrobbles']("randomgenerated.tsv")
from .generate import generate
generate(targetfile)

View File

@ -0,0 +1,67 @@
import random
import datetime
artists = [
"Chou Tzuyu","Jennie Kim","Kim Seolhyun","Nancy McDonie","Park Junghwa","Hirai Momo","Rosé Park","Laura Brehm","HyunA",
"Jeremy Soule","Jerry Goldsmith","Howard Shore","Tilman Sillescu","James Newton Howard","Bear McCreary","David Newman",
"Approaching Nirvana","7 Minutes Dead","Tut Tut Child","Mr FijiWiji","Tut Tut Child"
]
adjectives = [
"Black","Pink","Yellow","Scarlet","Purple","Burgundy","Orange","Golden","Green","Vermilion",
"Misty","Foggy","Cloudy","Hazy","Cold","Hot","Warm","Dark","Bright",
"Long","Short","Last","First","Final","Huge","Tiny","Important"
]
nouns = [
"Ship","Princess","Castle","Monastery","Sword","War","Battle","Temple","Army",
"Valley","River","Waterfall","Mountain","Tree","Forest","Sea","Desert","Montains","Clouds","Glacier",
"Penguin","Tiger","Phoenix","Qilin","Dragon","Tortoise","Bird","Toucan"
]
prepositions = ["in","of","over","under","about","across","inside","toward","on","within","with"]
verbs = ["Lifting","Stealing","Dancing","Running","Jumping","Singing"]
patterns = [
"{n1} {p1} the {a1} {n2}",
"The {a1} {n1}",
"{p1} the {a1} {n1}",
"{a1} {n1} {p1} the {a2} {n2}",
"{v1} the {a1} {n1}",
"{v1} {p1} the {a1} {n1}",
"{v1} and {v2}",
"{a1} {n1} {p1} the {n2} {n3}",
"{a1} {n1} and the {n2} {n3}"
]
def generate_track():
title = random.choice(patterns).format(
n1=random.choice(nouns),
n2=random.choice(nouns),
n3=random.choice(nouns),
a1=random.choice(adjectives),
a2=random.choice(adjectives),
p1=random.choice(prepositions),
p2=random.choice(prepositions),
v1=random.choice(verbs),
v2=random.choice(verbs)
)
title = "".join([title[0].upper(),title[1:]])
trackartists = [random.choice(artists) for _ in range(random.randint(1, 3))]
return {
"artists":trackartists,
"title":title
}
def generate(targetfile):
with open(targetfile,"a") as fd:
for _ in range(200):
track = generate_track()
for _ in range(random.randint(1, 50)):
timestamp = random.randint(1, int(datetime.datetime.now().timestamp()))
entry = "\t".join([str(timestamp),"".join(track['artists']),track['title'],"-"])
fd.write(entry)
fd.write("\n")