use relative urls

and stop using protocol relative urls
relative-links
eric 2019-09-03 15:11:38 -04:00
parent a1af1bcf04
commit 2d2698598c
5 changed files with 18 additions and 26 deletions

View File

@ -464,13 +464,7 @@ class OpenSearch (object):
if self.protocol not in VALID_PROTOCOLS: if self.protocol not in VALID_PROTOCOLS:
self.protocol = 'https' self.protocol = 'https'
self.urlgen = routes.URLGenerator ( self.urlgen = routes.URLGenerator ( cherrypy.routes_mapper, {'HTTP_HOST': self.host})
cherrypy.routes_mapper,
{
'HTTP_HOST': self.host,
'HTTPS': 1 ,
}
)
self.set_format (k.get ('format')) self.set_format (k.get ('format'))
@ -617,13 +611,13 @@ class OpenSearch (object):
self.mobile_search = self.url ('search', format = 'mobile') self.mobile_search = self.url ('search', format = 'mobile')
self.json_search = self.url ('suggest', format = None) self.json_search = self.url ('suggest', format = None)
self.base_url = self.protocol_relative (self.url (host = self.host)) self.base_url = self.url (host = self.file_host)
# for google, fb etc. # for google, fb etc.
self.canonical_url = self.url_carry (host = self.file_host, format = None) self.canonical_url = self.url_carry (host = self.file_host, format = None)
self.desktop_url = self.protocol_relative (self.url_carry (host = self.desktop_host, format = None)) self.desktop_url = self.url_carry (host = self.desktop_host, format = None)
self.mobile_url = self.protocol_relative (self.url_carry (host = self.mobile_host, format = 'mobile')) self.mobile_url = self.url_carry (host = self.mobile_host, format = 'mobile')
self.osd_url = self.qualify ('/catalog/osd-books.xml') self.osd_url = self.qualify ('/catalog/osd-books.xml')
@ -696,14 +690,6 @@ class OpenSearch (object):
return urllib.parse.urljoin (self.base_url, url) return urllib.parse.urljoin (self.base_url, url)
def protocol_relative (self, url):
""" Make absolute url protocol relative. """
offset = url.find ('//')
if offset > -1:
return url[offset:]
return url
def set_format (self, format_): def set_format (self, format_):
""" Sanity check and set the parameter we got from the user. """ Sanity check and set the parameter we got from the user.
Calc format and mediatype to send to the client. """ Calc format and mediatype to send to the client. """
@ -939,9 +925,7 @@ class OpenSearch (object):
def format_thumb_url (self, row): def format_thumb_url (self, row):
""" Generate the thumb url in results. """ """ Generate the thumb url in results. """
if row.coverpages: if row.coverpages:
return urllib.parse.urljoin ('//' + self.file_host, row.coverpages[0]) return row.coverpages[0]
# return self.url ('bibrec', host = self.file_host, id = row.pk,
# format = 'cover.small')
return None return None
def format_icon (self, dummy_row): def format_icon (self, dummy_row):

View File

@ -57,7 +57,7 @@ class BibrecPage (Page.Page):
dc.icon = 'audiobook' dc.icon = 'audiobook'
os.title_icon = dc.icon os.title_icon = dc.icon
os.twit = os.title os.twit = os.title
os.qrcode_url = '//%s/cache/epub/%d/pg%d.qrcode.png' % (os.file_host, os.id, os.id) os.qrcode_url = '/cache/epub/%d/pg%d.qrcode.png' % (os.id, os.id)
os.entries.append (dc) os.entries.append (dc)

View File

@ -58,6 +58,7 @@ class XMLishFormatter (BaseFormatter.BaseFormatter):
super (XMLishFormatter, self).fix_dc (dc, os) super (XMLishFormatter, self).fix_dc (dc, os)
# generated_files always [] AFAICT -esh
for file_ in dc.generated_files: for file_ in dc.generated_files:
file_.help_topic = file_.hr_filetype file_.help_topic = file_.hr_filetype
file_.compression = 'none' file_.compression = 'none'
@ -78,6 +79,13 @@ class XMLishFormatter (BaseFormatter.BaseFormatter):
file_.url = file_.url + '?' + urllib.parse.urlencode ( file_.url = file_.url + '?' + urllib.parse.urlencode (
{ 'session_id': str (cherrypy.session.id) } ) { 'session_id': str (cherrypy.session.id) } )
# these are used as relative links
if file_.generated and not file_.filetype.startswith ('cover.'):
file_.filename = "ebooks/%d.%s" % (file_.id, file_.filetype)
if m in HANDOVER_TYPES:
file_.filename = file_.filename + '?' + urllib.parse.urlencode (
{ 'session_id': str (cherrypy.session.id) } )
for file_ in dc.files: for file_ in dc.files:
file_.honeypot_url = os.url ( file_.honeypot_url = os.url (
'honeypot_send', id = dc.project_gutenberg_id, filetype = file_.filetype) 'honeypot_send', id = dc.project_gutenberg_id, filetype = file_.filetype)

View File

@ -320,7 +320,7 @@ Gutenberg metadata much faster than by scraping.
<td><span class="icon icon_${e.icon}" /></td> <td><span class="icon icon_${e.icon}" /></td>
<td property="dcterms:format" content="${file_.mediatypes[-1]}" datatype="dcterms:IMT" <td property="dcterms:format" content="${file_.mediatypes[-1]}" datatype="dcterms:IMT"
class="unpadded icon_save" class="unpadded icon_save"
><a href="${file_.url}" type="${file_.mediatypes[-1]}" charset="${file_.encoding}" ><a href="/${file_.filename}" type="${file_.mediatypes[-1]}" charset="${file_.encoding}"
class="link" class="link"
title="Download">${file_.hr_filetype}</a></td> title="Download">${file_.hr_filetype}</a></td>
<td class="noscreen">${file_.url}</td> <td class="noscreen">${file_.url}</td>
@ -352,7 +352,7 @@ Gutenberg metadata much faster than by scraping.
<td><span class="icon icon_folder" /></td> <td><span class="icon icon_folder" /></td>
<td class="unpadded icon_file"><a href="${e.base_dir}" class="link" <td class="unpadded icon_file"><a href="${e.base_dir}" class="link"
i18n:comment="Link to the directory containing all files.">More Files…</a></td> i18n:comment="Link to the directory containing all files.">More Files…</a></td>
<td class="noscreen">https:${os.qualify (e.base_dir)}</td> <td class="noscreen">e.base_dir</td>
<td/> <td/>
<td class="noprint"><!--! dropbox column --></td> <td class="noprint"><!--! dropbox column --></td>
<td class="noprint"><!--! gdrive column --></td> <td class="noprint"><!--! gdrive column --></td>

View File

@ -118,7 +118,7 @@
<div id="fb-root" /> <div id="fb-root" />
<div id="print-head" class="noscreen"> <div id="print-head" class="noscreen">
<div class="center">https:${os.desktop_url}<br/><br/>${os.tagline}</div> <div class="center">${os.desktop_url}<br/><br/>${os.tagline}</div>
</div> </div>
<div id="screen-head" class="noprint"> <div id="screen-head" class="noprint">
@ -244,7 +244,7 @@
<input xml:lang="en" type="hidden" name="cmd" value="_s-xclick" /> <input xml:lang="en" type="hidden" name="cmd" value="_s-xclick" />
<input xml:lang="en" type="hidden" name="hosted_button_id" value="XKAL6BZL3YPSN" /> <input xml:lang="en" type="hidden" name="hosted_button_id" value="XKAL6BZL3YPSN" />
<input type="image" name="submit" <input type="image" name="submit"
src="//${cherrypy.config['file_host']}/pics/paypal/${os.paypal_lang}.gif" src="/pics/paypal/${os.paypal_lang}.gif"
title="Send us money through PayPal." /> title="Send us money through PayPal." />
</div> </div>
</form> </form>