Spaces:
Runtime error
Runtime error
| from app_vars import * | |
| from bs4 import BeautifulSoup as bs | |
| import random as r | |
| import requests | |
| from PIL import Image | |
| from io import BytesIO | |
| import binascii | |
| headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3', | |
| "Accept" : "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7", | |
| "Accept-Encoding": "gzip, deflate, br", | |
| "Accept-Language": "en-US,en;q=0.9", | |
| "Cache-Control": "max-age=0", | |
| "Cookie": """mindat=n5e0bck7vvnn6e0o9tkb49fs75; cf_clearance=PMEAfGmJF_UGxZYgB2jsRx5KsiZyNf2plDbXs4HoN5I-1703800389-0-2-d8c97f25.71e5db39.8fc820c5-0.2.1703800389""", | |
| "Dnt": """1""", | |
| "If-Modified-Since": """Sat, 17 Apr 2021 18:41:12 GMT""", | |
| "If-None-Match": "607b2bc8-956c4", | |
| "Prefer": "safe", | |
| "Sec-Ch-Ua": r'"Not_A Brand";v="8", "Chromium";v="120", "Microsoft Edge";v="120"', | |
| "Sec-Ch-Ua-Mobile": "?0", | |
| "Sec-Ch-Ua-Platform": '"Windows"', | |
| "Sec-Fetch-Dest": "document", | |
| "Sec-Fetch-Mode": "navigate", | |
| "Sec-Fetch-Site": "none", | |
| "Sec-Fetch-User": "?1", | |
| "Upgrade-Insecure-Requests": "1",} | |
| def get_gallery_image_list_from_rock_id(chosen_rock_id): | |
| system( | |
| f'{curl_invoker} -A "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion" -o "{rs}/app_data/html/index.html" https://www.mindat.org/gm/{chosen_rock_id}' | |
| ) | |
| with open(f"{rs}\\app_data\\html\\index.html", "rb") as f: | |
| soup = bs(f, "html.parser") | |
| image_list = [] | |
| for i in soup.find_all("img"): | |
| image_list.append("https://www.mindat.org" + i.get("src")) | |
| return image_list | |
| rl = load(open(f"{rs}/app_data/rock_urls_list.json")) | |
| rl_keys = list(rl.keys()) | |
| def rand_rock_key(): | |
| return r.choice(rl_keys) | |
| def url_of_rock(rock_name): | |
| return r.choice(rl[rock_name]) | |
| def get_rock_name_url(): | |
| name = rand_rock_key() | |
| url = url_of_rock(name) | |
| # system(f'{curl_invoker} -A "Mozilla/5.0 (platform; rv:geckoversion) Gecko/geckotrail Firefox/firefoxversion" {url}') | |
| img = requests.get(url,headers = headers).content | |
| print(img.decode("ascii")) | |
| return name, Image.open(BytesIO(binascii.unhexlify(img))) | |