diff --git a/htmlgenerators.py b/htmlgenerators.py
index 5950454..1ddc305 100644
--- a/htmlgenerators.py
+++ b/htmlgenerators.py
@@ -1,6 +1,7 @@
import urllib
from bottle import FormsDict
import datetime
+from malojatime import time_fix, internal_to_uri
def artistLink(name):
@@ -33,6 +34,9 @@ def scrobblesLink(timekeys,amount=None,percent=None,artist=None,track=None,assoc
# necessary because urllib.parse.urlencode doesnt handle multidicts
def keysToUrl(*dicts,exclude=[]):
+ for dict in dicts:
+ for key in dict:
+ dict[key] = internal_to_uri(dict[key])
st = ""
keys = removeIdentical(*dicts)
for k in keys:
@@ -148,17 +152,17 @@ def KeySplit(keys,forceTrack=False,forceArtist=False):
# 2
resultkeys2 = {}
- if "since" in keys: resultkeys2["since"] = keys.get("since")
- elif "from" in keys: resultkeys2["since"] = keys.get("from")
- elif "start" in keys: resultkeys2["since"] = keys.get("start")
+ if "since" in keys: resultkeys2["since"] = time_fix(keys.get("since"))
+ elif "from" in keys: resultkeys2["since"] = time_fix(keys.get("from"))
+ elif "start" in keys: resultkeys2["since"] = time_fix(keys.get("start"))
#
- if "to" in keys: resultkeys2["to"] = keys.get("to")
- elif "until" in keys: resultkeys2["to"] = keys.get("until")
- elif "end" in keys: resultkeys2["to"] = keys.get("end")
+ if "to" in keys: resultkeys2["to"] = time_fix(keys.get("to"))
+ elif "until" in keys: resultkeys2["to"] = time_fix(keys.get("until"))
+ elif "end" in keys: resultkeys2["to"] = time_fix(keys.get("end"))
#
- if "in" in keys: resultkeys2["within"] = keys.get("in")
- elif "within" in keys: resultkeys2["within"] = keys.get("within")
- elif "during" in keys: resultkeys2["within"] = keys.get("during")
+ if "in" in keys: resultkeys2["within"] = time_fix(keys.get("in"))
+ elif "within" in keys: resultkeys2["within"] = time_fix(keys.get("within"))
+ elif "during" in keys: resultkeys2["within"] = time_fix(keys.get("during"))
#3
diff --git a/malojatime.py b/malojatime.py
index 4238c65..6a1e803 100644
--- a/malojatime.py
+++ b/malojatime.py
@@ -22,6 +22,16 @@ def end_of_scrobbling():
+def uri_to_internal(t):
+ return time_fix(t)
+
+def internal_to_uri(t):
+ if isinstance(t,list) or isinstance(t,tuple):
+ return "/".join(str(t))
+
+ return str(t)
+
+
# converts strings and stuff to lists
def time_fix(t):