Fixed download of images and added missing minifigs

This commit is contained in:
FrederikBaerentsen 2024-04-17 22:42:48 +02:00
parent 397cb560a5
commit 481e579b59

88
app.py
View File

@ -131,6 +131,7 @@ def create():
# Get minifigs
print('Savings minifigs')
tmp_set_num = set_num
response = json.loads(rebrick.lego.get_set_minifigs(set_num).read())
count+=1
print(response)
@ -142,25 +143,28 @@ def create():
set_num = i['set_num']
print('Saving set image:',end='')
res = requests.get(set_img_url, stream = True)
count+=1
if res.status_code == 200:
with open("./static/minifigs/"+set_num+".jpg",'wb') as f:
shutil.copyfileobj(res.raw, f)
print(' OK')
else:
print('Image Couldn\'t be retrieved for set ' + set_num)
logging.error('set_img_url: ' + set_num)
print(' ERROR')
if not Path("./static/minifigs/"+set_num+".jpg").is_file():
res = requests.get(set_img_url, stream = True)
count+=1
if res.status_code == 200:
with open("./static/minifigs/"+set_num+".jpg",'wb') as f:
shutil.copyfileobj(res.raw, f)
print(' OK')
else:
print('Image Couldn\'t be retrieved for set ' + set_num)
logging.error('set_img_url: ' + set_num)
print(' ERROR')
else:
print(set_img_url + '.jpg exists!')
cursor.execute('''INSERT INTO minifigures (
fig_num,
set_num,
name,
quantity,
set_img_url,
u_id
) VALUES (?, ?, ?, ?, ?) ''', (i['set_num'], i['set_name'], i['quantity'],i['set_img_url'],unique_set_id))
) VALUES (?, ?, ?, ?, ?, ?) ''', (i['set_num'],tmp_set_num, i['set_name'], i['quantity'],i['set_img_url'],unique_set_id))
conn.commit()
@ -169,21 +173,56 @@ def create():
count+=1
for i in response_minifigs['results']:
# Get part image. Saved under ./static/parts/xxxx.jpg
part_img_url = i['part']['part_img_url']
part_img_url_id = 'nil'
try:
pattern = r'/([^/]+)\.(?:png|jpg)$'
match = re.search(pattern, part_img_url)
if match:
part_img_url_id = match.group(1)
print("Part number:", part_img_url_id)
if not Path("./static/parts/"+part_img_url_id+".jpg").is_file():
print('Saving part image:',end='')
res = requests.get(part_img_url, stream = True)
count+=1
if res.status_code == 200:
with open("./static/parts/"+part_img_url_id+".jpg",'wb') as f:
shutil.copyfileobj(res.raw, f)
print(' OK')
else:
print('Image Couldn\'t be retrieved for set ' + part_img_url_id)
logging.error('part_img_url: ' + part_img_url_id)
print(' ERROR')
else:
print(part_img_url_id + '.jpg exists!')
except Exception as e:
print("Part number not found in the URL.")
print(">>> " + str(part_img_url))
print(str(e))
cursor.execute('''INSERT INTO inventory (
set_num,
id,
part_num,
name,
part_img_url,
part_img_url_id,
color_id,
color_name,
quantity,
is_spare,
element_id,
u_id
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)''', (i['set_num'], i['id'], i['part']['part_num'],i['part']['name'],i['part']['part_img_url'],i['color']['id'],i['color']['name'],i['quantity'],i['is_spare'],i['element_id'],unique_set_id))
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)''', (i['set_num'], i['id'], i['part']['part_num'],i['part']['name'],i['part']['part_img_url'],part_img_url_id,i['color']['id'],i['color']['name'],i['quantity'],i['is_spare'],i['element_id'],unique_set_id))
conn.commit()
conn.close()
print('Count: ' + str(count))
@ -232,24 +271,37 @@ def inventory(tmp,u_id):
cursor = conn.cursor()
# Get set info
cursor.execute("SELECT * from sets where set_num == '" + tmp + "' and u_id == '" + u_id + "';")
cursor.execute("SELECT * from sets where set_num = '" + tmp + "' and u_id = '" + u_id + "';")
results = cursor.fetchall()
set_list = [list(i) for i in results]
# Get inventory
cursor.execute("SELECT * from inventory where set_num == '" + tmp + "' and u_id == '" + u_id + "';")
cursor.execute("SELECT * from inventory where set_num = '" + tmp + "' and u_id = '" + u_id + "';")
results = cursor.fetchall()
inventory_list = [list(i) for i in results]
# Get missing parts
cursor.execute("SELECT * from missing where set_num == '" + tmp + "' and u_id == '" + u_id + "';")
cursor.execute("SELECT * from missing where u_id = '" + u_id + "';")
results = cursor.fetchall()
missing_list = [list(i) for i in results]
# Get minifigures
cursor.execute("SELECT * from minifigures where set_num = '" + tmp + "' and u_id = '" + u_id + "';")
results = cursor.fetchall()
minifig_list = [list(i) for i in results]
minifig_inventory_list = []
for i in minifig_list:
cursor.execute("SELECT * from inventory where set_num = '" + i[0] + "' and u_id = '" + u_id + "';")
results = cursor.fetchall()
tmp_inv = [list(i) for i in results]
minifig_inventory_list.append(tmp_inv)
cursor.close()
conn.close()
return render_template('table.html', tmp=tmp,title=set_list[0][1],set_list=set_list,inventory_list=inventory_list,missing_list=missing_list)
return render_template('table.html', tmp=tmp,title=set_list[0][1],set_list=set_list,inventory_list=inventory_list,missing_list=missing_list,minifig_list=minifig_list,minifig_inventory_list=minifig_inventory_list)
if request.method == 'POST':