mirror of
https://github.com/krateng/maloja.git
synced 2023-08-10 21:12:55 +03:00
67 lines
1.5 KiB
Python
67 lines
1.5 KiB
Python
import sys, os, datetime, re, cleanup
|
|
from cleanup import *
|
|
from utilities import *
|
|
|
|
|
|
log = open(sys.argv[1])
|
|
outputlog = open(sys.argv[2],"w")
|
|
checksumfile = open(sys.argv[2] + ".rulestate","w") #this file stores an identifier for all rules that were in place when the corresponding file was created
|
|
|
|
|
|
c = CleanerAgent()
|
|
stamps = [99999999999999]
|
|
|
|
for l in log:
|
|
l = l.replace("\n","")
|
|
data = l.split(",")
|
|
|
|
artist = data[0]
|
|
album = data[1]
|
|
title = data[2]
|
|
time = data[3]
|
|
|
|
|
|
(artists,title) = c.fullclean(artist,title)
|
|
|
|
artistsstr = "␟".join(artists)
|
|
|
|
|
|
timeparts = time.split(" ")
|
|
(h,m) = timeparts[3].split(":")
|
|
|
|
months = {"Jan":1,"Feb":2,"Mar":3,"Apr":4,"May":5,"Jun":6,"Jul":7,"Aug":8,"Sep":9,"Oct":10,"Nov":11,"Dec":12}
|
|
|
|
timestamp = int(datetime.datetime(int(timeparts[2]),months[timeparts[1]],int(timeparts[0]),int(h),int(m)).timestamp())
|
|
|
|
|
|
## We prevent double timestamps in the database creation, so we technically don't need them in the files
|
|
## however since the conversion from lastfm to maloja is a one-time thing, we should take any effort to make the file as good as possible
|
|
if (timestamp < stamps[-1]):
|
|
pass
|
|
elif (timestamp == stamps[-1]):
|
|
timestamp -= 1
|
|
else:
|
|
while(timestamp in stamps):
|
|
timestamp -= 1
|
|
|
|
if (timestamp < stamps[-1]):
|
|
stamps.append(timestamp)
|
|
else:
|
|
stamps.insert(0,timestamp)
|
|
|
|
|
|
entry = "\t".join([str(timestamp),artistsstr,title,album])
|
|
|
|
|
|
outputlog.write(entry)
|
|
outputlog.write("\n")
|
|
|
|
checksumfile.write(c.checksums)
|
|
|
|
log.close()
|
|
outputlog.close()
|
|
checksumfile.close()
|
|
|
|
|
|
|