aRockyBot / load_rock.py
aashraychegu's picture
Update load_rock.py
bf55c22
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)))