diff --git a/resources/content_server/gui.js b/resources/content_server/gui.js index d0fb49cc8e..9ee61b1866 100644 --- a/resources/content_server/gui.js +++ b/resources/content_server/gui.js @@ -54,7 +54,7 @@ function render_book(book) { formats = book.attr("formats").split(","); if (formats.length > 0) { for (i=0; i < formats.length; i++) { - title += ''+formats[i]+', '; + title += ''+formats[i]+', '; } title = title.slice(0, title.length-2); title += ' ({0} MB) '.format(size); diff --git a/src/calibre/library/server/mobile.py b/src/calibre/library/server/mobile.py index 229e0c21c4..cde245431f 100644 --- a/src/calibre/library/server/mobile.py +++ b/src/calibre/library/server/mobile.py @@ -18,6 +18,7 @@ from calibre.ebooks.metadata import fmt_sidx from calibre.constants import __appname__ from calibre import human_readable from calibre.utils.date import utcfromtimestamp, format_date +from calibre.utils.filenames import ascii_filename def CLASS(*args, **kwargs): # class is a reserved word in Python kwargs['class'] = ' '.join(args) @@ -110,11 +111,13 @@ def build_index(books, num, search, sort, order, start, total, url_base, CKEYS): data = TD() last = None for fmt in book['formats'].split(','): + a = ascii_filename(book['authors']) + t = ascii_filename(book['title']) s = SPAN( A( fmt.lower(), - href='/get/%s/%s-%s_%d.%s' % (fmt, book['authors'], - book['title'], book['id'], fmt) + href='/get/%s/%s-%s_%d.%s' % (fmt, a, t, + book['id'], fmt) ), CLASS('button')) s.tail = u'\u202f' #   diff --git a/src/calibre/library/server/xml.py b/src/calibre/library/server/xml.py index ed8479980e..41fcfd8a93 100644 --- a/src/calibre/library/server/xml.py +++ b/src/calibre/library/server/xml.py @@ -16,6 +16,7 @@ from calibre.ebooks.metadata import fmt_sidx from calibre.constants import preferred_encoding from calibre import isbytestring from calibre.utils.date import format_date +from calibre.utils.filenames import ascii_filename E = ElementMaker() @@ -88,6 +89,8 @@ class XMLServer(object): y = format_tag_string(y, ',') kwargs[x] = serialize(y) if y else '' + kwargs['safe_title'] = ascii_filename(kwargs['title']) + c = kwargs.pop('comments') CFM = self.db.field_metadata