diff options
Diffstat (limited to 'python/fatcat_web')
| -rw-r--r-- | python/fatcat_web/hacks.py | 12 | ||||
| -rw-r--r-- | python/fatcat_web/routes.py | 13 | ||||
| -rw-r--r-- | python/fatcat_web/templates/entity_macros.html | 14 | ||||
| -rw-r--r-- | python/fatcat_web/templates/release_view.html | 4 | ||||
| -rw-r--r-- | python/fatcat_web/templates/webcapture_view.html | 18 | 
5 files changed, 40 insertions, 21 deletions
| diff --git a/python/fatcat_web/hacks.py b/python/fatcat_web/hacks.py index 51b97142..9e6f6ab5 100644 --- a/python/fatcat_web/hacks.py +++ b/python/fatcat_web/hacks.py @@ -13,3 +13,15 @@ def test_strip_extlink_xml():      assert strip_extlink_xml("""LOCKSS (2014) Available: <ext-link xmlns:xlink="http://www.w3.org/1999/xlink" ext-link-type="uri" xlink:href="http://lockss.org/" xlink:type="simple">http://lockss.org/</ext-link>. Accessed: 2014 November 1.""") == \      """LOCKSS (2014) Available: http://lockss.org/. Accessed: 2014 November 1.""" +def wayback_suffix(entity): +    """ +    Takes a webcapture entity and returns a suffix to be appended to wayback URLs +    """ +    ret = "" +    if entity.original_url: +        if entity.timestamp: +            ret = entity.timestamp.strftime("%Y%m%d%H%M%S/") +        else: +            ret = "*/" +        ret += entity.original_url +    return ret diff --git a/python/fatcat_web/routes.py b/python/fatcat_web/routes.py index eb53c2ef..f7f10f44 100644 --- a/python/fatcat_web/routes.py +++ b/python/fatcat_web/routes.py @@ -13,7 +13,7 @@ from fatcat_web import app, api, auth_api, priv_api  from fatcat_web.auth import handle_token_login, handle_logout, load_user, handle_ia_xauth  from fatcat_web.cors import crossdomain  from fatcat_web.search import * -from fatcat_web.hacks import strip_extlink_xml +from fatcat_web.hacks import strip_extlink_xml, wayback_suffix  ### Views ################################################################### @@ -232,6 +232,8 @@ def webcapture_view(ident):                  entity.releases.append(api.get_release(r))          except ApiException as ae:              abort(ae.status) +    entity.wayback_suffix = wayback_suffix(entity) +    print("SUFFIX: {}".format(entity.wayback_suffix))      return render_template('webcapture_view.html', webcapture=entity)  @app.route('/release/lookup', methods=['GET']) @@ -267,8 +269,6 @@ def release_history(ident):  def release_view(ident):      try:          entity = api.get_release(ident, expand="container,files,filesets,webcaptures") -        container = entity.container -        filesets = entity.filesets      except ApiException as ae:          abort(ae.status)      if entity.state == "redirect": @@ -279,8 +279,10 @@ def release_view(ident):          entity.container.es = container_to_elasticsearch(entity.container, force_bool=False)      if entity.state == "active":          entity.es = release_to_elasticsearch(entity, force_bool=False) -    for fs in filesets: +    for fs in entity.filesets:          fs.total_size = sum([f.size for f in fs.manifest]) +    for wc in entity.webcaptures: +        wc.wayback_suffix = wayback_suffix(wc)      for ref in entity.refs:          # this is a UI hack to get rid of XML crud in unstructured refs like:          # LOCKSS (2014) Available: <ext-link @@ -290,11 +292,10 @@ def release_view(ident):          # November 1.          if ref.extra and ref.extra.get('unstructured'):              ref.extra['unstructured'] = strip_extlink_xml(ref.extra['unstructured']) -    entity.filesets = filesets      authors = [c for c in entity.contribs if c.role in ('author', None)]      authors = sorted(authors, key=lambda c: c.index or 99999999)      return render_template('release_view.html', release=entity, -        authors=authors, container=container) +        authors=authors, container=entity.container)  @app.route('/work/<ident>/history', methods=['GET'])  def work_history(ident): diff --git a/python/fatcat_web/templates/entity_macros.html b/python/fatcat_web/templates/entity_macros.html index 6d9ceed0..813a419e 100644 --- a/python/fatcat_web/templates/entity_macros.html +++ b/python/fatcat_web/templates/entity_macros.html @@ -74,16 +74,22 @@  {%- endmacro %} -{% macro url_list(urls) -%} +{% macro url_list(urls, wayback_suffix="") -%}  <table class="ui very basic compact single line fixed table">  <tbody>    {% for url in urls %} +    {% if url.rel == "wayback" %} +      {% set suffix = wayback_suffix %} +    {% else %} +      {% set suffix = "" %} +    {% endif %} +    {% set entity = release %}      <tr><td class="two wide right aligned">{{ url.rel }} -        <td class="eight wide"><small><code><a href="{{ url.url }}"> +        <td class="eight wide"><small><code><a href="{{ url.url }}{{ suffix }}">          {% if url.url.count('/') >= 3 and url.rel != "dweb" %} -          {{ '/'.join(url.url.split('/')[0:2]) }}/<b>{{ ''.join(url.url.split('/')[2]) }}</b>/{{ '/'.join(url.url.split('/')[3:]) }} +          {{ '/'.join(url.url.split('/')[0:2]) }}/<b>{{ ''.join(url.url.split('/')[2]) }}</b>/{{ '/'.join(url.url.split('/')[3:]) }}{{ suffix }}          {% else %} -          {{ url.url }} +          {{ url.url }}{{ suffix }}          {% endif %}          </a></code></small>    {% endfor %} diff --git a/python/fatcat_web/templates/release_view.html b/python/fatcat_web/templates/release_view.html index ff044c49..2a4f2e1b 100644 --- a/python/fatcat_web/templates/release_view.html +++ b/python/fatcat_web/templates/release_view.html @@ -266,7 +266,7 @@        <br><small><code><a href="/webcapture/{{ webcapture.ident }}">webcapture:{{ webcapture.ident }}</a></code></small>        <td class="single line">          {% for url in webcapture.archive_urls[:5] %} -          <a href="{{ url.url }}{% if url.rel == "wayback" %}*/{{ webcapture.original_url }}{% endif %}">{{ url.url.split('/')[2] }}</a> ({{ url.rel }})<br> +          <a href="{{ url.url }}{% if url.rel == "wayback" %}{{ webcapture.wayback_suffix }}{% endif %}">{{ url.url.split('/')[2] }}</a> ({{ url.rel }})<br>          {% endfor %}          {% if webcapture.urls|length > 5 %}            + {{ file.urls|length - 5 }} more URLs @@ -317,7 +317,7 @@  {% if entity.files != [] and entity.files[0].urls != [] %}  <a href="{{ entity.files[0].urls[0].url }}" class="ui top attached fluid huge green button"><i class="file pdf outline icon"></i>Download Full Text</a>  {% elif entity.webcaptures != [] and entity.webcaptures[0].archive_urls != [] and entity.webcaptures[0].archive_urls[0].rel == "wayback" %} -<a href="{{ entity.webcaptures[0].archive_urls[0].url }}*/{{ entity.webcaptures[0].original_url }}" class="ui top attached fluid huge green button"><i class="file archive outline icon"></i>View Web Archive</a> +<a href="{{ entity.webcaptures[0].archive_urls[0].url }}{{ entity.webcaptures[0].wayback_suffix }}" class="ui top attached fluid huge green button"><i class="file archive outline icon"></i>View Web Archive</a>  {% else %}  <span class="ui top attached fluid huge grey button"><i class="file cross icon"></i>No Full Text Available</span>  {% endif %} diff --git a/python/fatcat_web/templates/webcapture_view.html b/python/fatcat_web/templates/webcapture_view.html index 921d5d48..ee28cdf9 100644 --- a/python/fatcat_web/templates/webcapture_view.html +++ b/python/fatcat_web/templates/webcapture_view.html @@ -32,6 +32,14 @@    This Web Capture is not associated with any fatcat release.  {% endif %} +<br> +<h3>Archive URLs</h3> +{% if webcapture.archive_urls != None %} +  {{ entity_macros.url_list(webcapture.archive_urls, webcapture.wayback_suffix) }} +{% else %} +No known public archive for this webcapture. +{% endif %} +  <h3>CDX Rows ({{ webcapture.cdx|count }})</h3>  {% if webcapture.cdx %} @@ -56,15 +64,7 @@      {% endfor %}    </div>  {% else %} -This File Set is empty (contains no files). -{% endif %} - -<br> -<h3>Archive URLs</h3> -{% if webcapture.archive_urls != None %} -  {{ entity_macros.url_list(webcapture.archive_urls) }} -{% else %} -No known public archive for this webcapture. +This web capture is empty (contains no resources).  {% endif %}  </div> | 
