Show open source and free to play games directly in the client

This commit is contained in:
Mathieu Comandon 2019-02-01 06:35:54 -08:00
parent 7a53ac953a
commit 6c33d8c957
2 changed files with 14 additions and 5 deletions

View file

@ -151,15 +151,23 @@ def get_api_games(game_slugs=None, page="1", query_type="games"):
def search_games(query):
query = query.lower().strip()[:32]
url = settings.SITE_URL + "/api/games?%s" % urllib.parse.urlencode({"search": query})
response = http.Request(url, headers={"Content-Type": "application/json"})
if query == "open source games":
url = "/api/bundles/open-source"
elif query == "free to play games":
url = "/api/bundles/free-to-play"
else:
url = "/api/games?%s" % urllib.parse.urlencode({"search": query})
response = http.Request(settings.SITE_URL + url, headers={"Content-Type": "application/json"})
try:
response.get()
except http.HTTPError as ex:
logger.error("Unable to get games from API: %s", ex)
return None
response_data = response.json
api_games = response_data.get("results", [])
if "bundles" in url:
api_games = response_data.get("games", [])
else:
api_games = response_data.get("results", [])
for index, game in enumerate(api_games, 1):
game["id"] = index * -1
game["installed"] = 1

View file

@ -152,13 +152,14 @@ class GenericPanel(Gtk.Fixed):
return user_box
def get_lutris_links(self):
search_entry = Gtk.SearchEntry(visible=True)
box = Gtk.VBox(spacing=6, visible=True)
floss_button = get_link_button("Browse Open Source games")
floss_button.connect("clicked", lambda *x: open_uri(LINKS["floss"]))
floss_button.connect("clicked", lambda *x: search_entry.set_text("open source games"))
box.add(floss_button)
f2p_button = get_link_button("Browse Free to Play games")
f2p_button.connect("clicked", lambda *x: open_uri(LINKS["f2p"]))
f2p_button.connect("clicked", lambda *x: search_entry.set_text("free to play games"))
box.add(f2p_button)
donate_button = get_link_button("Support the project")