$def with (page, opts) $code: prices = opts.get('prices') isbn = opts.get('isbn', '') asin = opts.get('asin', '') bwb = { 'key': 'betterworldbooks', 'analytics_key': 'BetterWorldBooks', 'name': _('Better World Books'), 'link': 'https://www.betterworldbooks.com/%s' % ( ('-id-%s.aspx' % isbn) if isbn else ('search/results?q=' + page.title.replace(' ','%20')) ), 'price_note': _(' - includes shipping') } amazon = { 'key': 'amazon', 'analytics_key': 'Amazon', 'name': _('Amazon'), 'link': 'https://www.amazon.com/dp/%s/?tag=%s' % (asin or isbn, affiliate_id('amazon')), } if (asin or isbn) else None bookshop = { 'key': 'bookshop-org', 'analytics_key': 'BookshopOrg', 'name': _('Bookshop.org'), 'link': 'https://bookshop.org/a/%s/%s' % (affiliate_id('bookshop-org'), isbn), } if isbn else None # Fetch price data if not is_bot() and prices and isbn: bwb_metadata = get_betterworldbooks_metadata(isbn) bwb['price'] = bwb_metadata and bwb_metadata.get('price') if amazon: amazon['price'] = bwb_metadata and bwb_metadata.get('market_price') if amazon and not amazon['price']: amz_metadata = get_amazon_metadata(isbn, resources='prices') amazon['price'] = amz_metadata and amz_metadata.get('price') primary_stores = [store for store in [bwb, amazon] if store] more_stores = [store for store in [bookshop] if store] $def affiliate_link(key, analytics_key, name, link, price='', price_note=''):
  • $name $if price:
    $price$price_note