mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-09 03:04:10 -04:00
Content server: Remove special characters from filenames in download links to accomodate broken browsers like the one in the Kindle
This commit is contained in:
parent
98954896e0
commit
cf0f7def1c
@ -54,7 +54,7 @@ function render_book(book) {
|
|||||||
formats = book.attr("formats").split(",");
|
formats = book.attr("formats").split(",");
|
||||||
if (formats.length > 0) {
|
if (formats.length > 0) {
|
||||||
for (i=0; i < formats.length; i++) {
|
for (i=0; i < formats.length; i++) {
|
||||||
title += '<a title="Download in '+formats[i]+' format" class="format" href="'+format_url(formats[i], id, book.attr("title"))+'">'+formats[i]+'</a>, ';
|
title += '<a title="Download in '+formats[i]+' format" class="format" href="'+format_url(formats[i], id, book.attr("safe_title"))+'">'+formats[i]+'</a>, ';
|
||||||
}
|
}
|
||||||
title = title.slice(0, title.length-2);
|
title = title.slice(0, title.length-2);
|
||||||
title += ' ({0} MB) '.format(size);
|
title += ' ({0} MB) '.format(size);
|
||||||
|
@ -18,6 +18,7 @@ from calibre.ebooks.metadata import fmt_sidx
|
|||||||
from calibre.constants import __appname__
|
from calibre.constants import __appname__
|
||||||
from calibre import human_readable
|
from calibre import human_readable
|
||||||
from calibre.utils.date import utcfromtimestamp, format_date
|
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
|
def CLASS(*args, **kwargs): # class is a reserved word in Python
|
||||||
kwargs['class'] = ' '.join(args)
|
kwargs['class'] = ' '.join(args)
|
||||||
@ -110,11 +111,13 @@ def build_index(books, num, search, sort, order, start, total, url_base, CKEYS):
|
|||||||
data = TD()
|
data = TD()
|
||||||
last = None
|
last = None
|
||||||
for fmt in book['formats'].split(','):
|
for fmt in book['formats'].split(','):
|
||||||
|
a = ascii_filename(book['authors'])
|
||||||
|
t = ascii_filename(book['title'])
|
||||||
s = SPAN(
|
s = SPAN(
|
||||||
A(
|
A(
|
||||||
fmt.lower(),
|
fmt.lower(),
|
||||||
href='/get/%s/%s-%s_%d.%s' % (fmt, book['authors'],
|
href='/get/%s/%s-%s_%d.%s' % (fmt, a, t,
|
||||||
book['title'], book['id'], fmt)
|
book['id'], fmt)
|
||||||
),
|
),
|
||||||
CLASS('button'))
|
CLASS('button'))
|
||||||
s.tail = u'\u202f' #
|
s.tail = u'\u202f' #
|
||||||
|
@ -16,6 +16,7 @@ from calibre.ebooks.metadata import fmt_sidx
|
|||||||
from calibre.constants import preferred_encoding
|
from calibre.constants import preferred_encoding
|
||||||
from calibre import isbytestring
|
from calibre import isbytestring
|
||||||
from calibre.utils.date import format_date
|
from calibre.utils.date import format_date
|
||||||
|
from calibre.utils.filenames import ascii_filename
|
||||||
|
|
||||||
E = ElementMaker()
|
E = ElementMaker()
|
||||||
|
|
||||||
@ -88,6 +89,8 @@ class XMLServer(object):
|
|||||||
y = format_tag_string(y, ',')
|
y = format_tag_string(y, ',')
|
||||||
kwargs[x] = serialize(y) if y else ''
|
kwargs[x] = serialize(y) if y else ''
|
||||||
|
|
||||||
|
kwargs['safe_title'] = ascii_filename(kwargs['title'])
|
||||||
|
|
||||||
c = kwargs.pop('comments')
|
c = kwargs.pop('comments')
|
||||||
|
|
||||||
CFM = self.db.field_metadata
|
CFM = self.db.field_metadata
|
||||||
|
Loading…
x
Reference in New Issue
Block a user