steam-recsys / func.py
deppfellow's picture
end commit. To restart the spaces
23ea55b
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():