steam-recsys / func.py
deppfellow's picture
end commit. To restart the spaces
23ea55b
raw
history blame
2.12 kB
import pandas as pd
import streamlit as st
import requests
from io import BytesIO
from PIL import Image
data_titles = pd.read_pickle("data/dict_of_all_titles.pkl")
data_ids = pd.read_pickle("data/dict_of_all_ids.pkl")
def ids_to_titles(ids_list):
return [data_ids[title] for title in ids_list]
def titles_to_ids(titles_list):
return [data_titles[id] for id in titles_list]
def generate_app_gamebox(titles):
"""
Placeholder
"""
titles_id = titles_to_ids(titles)
for id in titles_id:
url = f"https://cdn.cloudflare.steamstatic.com/steam/apps/{id}/header.jpg"
resp = requests.get(url)
if resp.status_code == 200:
container = st.container()
img_col, pref_col = container.columns([3, 2])
img_col.image(BytesIO(resp.content))
pref_col.selectbox(
"Your rating:",
options=["Positive", "Negative"],
key=id,
)
return titles_id
def generate_res_gamebox(ids):
"""
Placeholder
"""
for id in ids:
url_page = f"https://store.steampowered.com/app/{id}/"
url_img = f"https://cdn.cloudflare.steamstatic.com/steam/apps/{id}/header.jpg"
resp = requests.get(url_img)
if resp.status_code == 200:
with st.container():
st.image(BytesIO(resp.content))
# st.caption(data_ids[id])
st.caption(f"[{data_ids[id]}]({url_page})")
st.divider()
def combine_hybrid_result(res_ease, res_cbf):
try:
df = pd.concat([res_ease, res_cbf], axis=0)
res_final = df.groupby("app_id").sum().sort_values(
["predicted_score"], ascending=False)
# return res_final.head(10).index.tolist()
return res_final
except:
st.error("Recommendation failed. Please select with at least 2 games title.")
# for title in titles_list:
# # url = f"https://store.steampowered.com/app/"
# with st.container():