Example #1
0
 def get_games_from_filters(self):
     service_name = self.filters.get("service")
     self.tabs_box.hide()
     if service_name in services.get_services():
         if service_name == "lutris":
             self.tabs_box.show(
             )  # Only the lutris service has the ability to search through all games.
             if self.website_button.props.active:
                 return self.get_api_games()
         if self.service.online and not self.service.is_authenticated():
             self.show_label(
                 _("Connect your %s account to access your games") %
                 self.service.name)
             return []
         return self.get_service_games(service_name)
     dynamic_categories = {
         "recent": self.get_recent_games,
         "running": self.get_running_games,
     }
     if self.filters.get("dynamic_category") in dynamic_categories:
         return dynamic_categories[self.filters["dynamic_category"]]()
     if self.filters.get("category") and self.filters["category"] != "all":
         game_ids = categories_db.get_game_ids_for_category(
             self.filters["category"])
         return games_db.get_games_by_ids(game_ids)
     searches, filters, excludes = self.get_sql_filters()
     return games_db.get_games(searches=searches,
                               filters=filters,
                               excludes=excludes,
                               sorts=self.sort_params)
Example #2
0
 def get_games_from_filters(self):
     service_name = self.filters.get("service")
     if service_name in services.get_services():
         self.set_service(service_name)
         service_games = ServiceGameCollection.get_for_service(service_name)
         if service_games:
             return [
                 game
                 for game in sorted(service_games,
                                    key=lambda game: game.get(
                                        self.view_sorting) or game["name"],
                                    reverse=not self.view_sorting_ascending)
                 if self.game_matches(game)
             ]
         if self.service.online and not self.service.is_connected():
             self.show_label(
                 _("Connect your %s account to access your games") %
                 self.service.name)
         return
     self.unset_service()
     dynamic_categories = {
         "running": self.get_running_games,
         "installed": self.get_installed_games
     }
     if self.filters.get("dynamic_category") in dynamic_categories:
         return dynamic_categories[self.filters["dynamic_category"]]()
     if self.filters.get("category"):
         game_ids = categories_db.get_game_ids_for_category(
             self.filters["category"])
         return games_db.get_games_by_ids(game_ids)
     searches, filters, excludes = self.get_sql_filters()
     return games_db.get_games(searches=searches,
                               filters=filters,
                               excludes=excludes,
                               sorts=self.sort_params)
Example #3
0
    def get_games_from_filters(self):
        if self.filters.get("service"):
            service_name = self.filters["service"]
            if service_name in services.get_services():
                self.service = services.get_services()[service_name]()
                if self.service.online:
                    self.service.connect("service-login",
                                         self.on_service_games_updated)
                    self.service.connect("service-logout",
                                         self.on_service_logout)
                self.service.connect("service-games-loaded",
                                     self.on_service_games_updated)

                service_games = ServiceGameCollection.get_for_service(
                    service_name)
                if service_games:
                    return [
                        game for game in sorted(
                            service_games,
                            key=lambda game: game.get(self.view_sorting) or
                            game["name"],
                            reverse=not self.view_sorting_ascending,
                        ) if self.game_matches(game)
                    ]

                if not self.service.online or self.service.is_connected():
                    AsyncCall(self.service.load, None)
                    spinner = Gtk.Spinner(visible=True)
                    spinner.start()
                    self.blank_overlay.add(spinner)
                else:
                    self.blank_overlay.add(
                        Gtk.Label(
                            _("Connect your %s account to access your games") %
                            self.service.name,
                            visible=True,
                        ))
                self.blank_overlay.props.visible = True
                return
            self.unset_service()
        dynamic_categories = {
            "running": self.get_running_games,
            "installed": self.get_installed_games,
        }
        if self.filters.get("dynamic_category") in dynamic_categories:
            return dynamic_categories[self.filters["dynamic_category"]]()
        self.unset_service()
        if self.filters.get("category"):
            game_ids = categories_db.get_game_ids_for_category(
                self.filters["category"])
            return games_db.get_games_by_ids(game_ids)

        searches, filters, excludes = self.get_sql_filters()
        return games_db.get_games(
            searches=searches,
            filters=filters,
            excludes=excludes,
            sorts=self.sort_params,
        )
Example #4
0
 def get_games_from_filters(self):
     service_name = self.filters.get("service")
     if service_name in services.get_services():
         return self.switch_to_service(service_name)
     self.unset_service()
     dynamic_categories = {
         "recent": self.get_recent_games,
         "running": self.get_running_games,
     }
     if self.filters.get("dynamic_category") in dynamic_categories:
         return dynamic_categories[self.filters["dynamic_category"]]()
     if self.filters.get("category") and self.filters["category"] != "all":
         game_ids = categories_db.get_game_ids_for_category(
             self.filters["category"])
         return games_db.get_games_by_ids(game_ids)
     searches, filters, excludes = self.get_sql_filters()
     return games_db.get_games(searches=searches,
                               filters=filters,
                               excludes=excludes,
                               sorts=self.sort_params)
Example #5
0
 def get_running_games(self):
     """Return a list of currently running games"""
     return games_db.get_games_by_ids(
         [game.id for game in self.application.running_games])