Buy button logic

main
Bob Mottram 2023-01-13 15:30:15 +00:00
parent 9d844e641b
commit 78bc0937e2
1 changed files with 17 additions and 11 deletions

View File

@ -2118,23 +2118,29 @@ def get_buy_links(post_json_object: str, translate: {}, buy_sites: {}) -> {}:
if 'html' not in item['mediaType']: if 'html' not in item['mediaType']:
continue continue
item_name = item['name'] item_name = item['name']
# The name should not be excessively long
if len(item_name) > 32:
continue
# there should be no html in the name # there should be no html in the name
if remove_html(item_name) != item_name: if remove_html(item_name) != item_name:
continue continue
# there should be no html in the link # there should be no html in the link
if '<' in item['href'] or \ if '<' in item['href'] or \
'://' not in item['href']: '://' not in item['href'] or \
' ' in item['href']:
continue continue
# does the name indicate buying? if buy_sites:
for buy_str in buy_strings: # limited to an allowlist of buying sites
if buy_str in item_name.lower(): for site, buy_domain in buy_sites.items():
links[item_name] = item['href'] if buy_domain in item['href']:
continue links[site.title()] = item['href']
# is the link on an allowlist of sites? continue
for site, keyword in buy_sites.items(): else:
if keyword in item['href']: # The name only needs to indicate that this is a buy link
links[site.title()] = item['href'] for buy_str in buy_strings:
continue if buy_str in item_name.lower():
links[item_name] = item['href']
continue
return links return links