From b8f5c87e823d0b68d5e30f8de453ba90dcadc241 Mon Sep 17 00:00:00 2001 From: Jules Laplace Date: Tue, 2 Apr 2019 14:38:27 +0200 Subject: sidebar from spreadsheet --- megapixels/app/site/loader.py | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) (limited to 'megapixels/app/site/loader.py') diff --git a/megapixels/app/site/loader.py b/megapixels/app/site/loader.py index 779f68ba..701c78b2 100644 --- a/megapixels/app/site/loader.py +++ b/megapixels/app/site/loader.py @@ -5,6 +5,9 @@ import glob import app.settings.app_cfg as cfg from app.utils.file_utils import load_json +import app.utils.sheet_utils as sheet + +sidebar = sheet.fetch_google_lookup("sidebar", item_key="key") def read_metadata(fn): """ @@ -20,6 +23,12 @@ def read_metadata(fn): sections = data.split("\n\n") return parse_metadata(fn, sections) +def domainFromUrl(url): + domain = url.split('/')[2].split('.') + if len(domain) > 2 and len(domain[-2]) == 2: + return ".".join(domain[-3:]) + return ".".join(domain[-2:]) + default_metadata = { 'status': 'published', @@ -33,6 +42,18 @@ default_metadata = { 'tagline': '', } +sidebar_order = [ + { 'key': 'published', 'title': 'Published' }, + { 'key': 'images', 'title': 'Images' }, + { 'key': 'videos', 'title': 'Videos' }, + { 'key': 'identities', 'title': 'Identities' }, + { 'key': 'purpose', 'title': 'Purpose' }, + { 'key': 'created_by', 'title': 'Created by' }, + { 'key': 'funded_by_short', 'title': 'Funded by' }, + { 'key': 'size_gb', 'title': 'Download Size' }, + { 'key': 'website', 'title': 'Website' }, +] + def parse_metadata(fn, sections): """ parse the metadata headers in a markdown file @@ -87,8 +108,25 @@ def parse_metadata(fn, sections): print("Bad metadata? {}".format(dataset_path)) elif 'datasets' in fn: print("/!\\ {} does not exist!".format(dataset_path)) + + if metadata['slug'] in sidebar: + sidebar_row = sidebar[metadata['slug']] + if sidebar_row: + metadata['sidebar'] = [] + for item in sidebar_order: + key = item['key'] + value = sidebar_row[key] + if value: + value = value.replace(' - ', ' – ') + if key == 'size_gb': + value += ' GB' + if key == 'website': + value = "" + domainFromUrl(value) + "" + metadata['sidebar'].append({ 'value': value, 'title': item['title'], }) + if 'meta' not in metadata or not metadata['meta']: # dude metadata['meta'] = {} + metadata['sidebar'] = [] return metadata, valid_sections -- cgit v1.2.3-70-g09d2