changeset 392:a72d6d7b3568

anime_info: don't need to wait on the thread, just disconnect eventually, we can cancel any outgoing requests, but it's kind of unnecessary
author Paper <paper@tflc.us>
date Fri, 07 Nov 2025 07:10:32 -0500
parents c3f717b7321b
children 963047512d34
files src/core/anime_db.cc src/gui/widgets/anime_info.cc src/services/kitsu.cc src/services/services.cc
diffstat 4 files changed, 11 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/src/core/anime_db.cc	Fri Nov 07 07:09:31 2025 -0500
+++ b/src/core/anime_db.cc	Fri Nov 07 07:10:32 2025 -0500
@@ -385,7 +385,10 @@
 QImage Database::GetAnimePoster(int id)
 {
 	/* Creates an anime poster and then saves it to disk
-	 * Sorry this is kind of spaghetti... */
+	 * Sorry this is kind of spaghetti...
+	 *
+	 * TODO need to do spring cleaning here. For example, we can
+	 * delete posters that haven't been accessed in over a week. */
 	QImage res;
 	QString posterfile;
 
--- a/src/gui/widgets/anime_info.cc	Fri Nov 07 07:09:31 2025 -0500
+++ b/src/gui/widgets/anime_info.cc	Fri Nov 07 07:10:32 2025 -0500
@@ -87,7 +87,6 @@
 AnimeInfoWidget::~AnimeInfoWidget()
 {
 	disconnect(&get_metadata_thread, nullptr, this, nullptr);
-	get_metadata_thread.wait();
 }
 
 void AnimeInfoWidget::SetAnime(const Anime::Anime &anime)
--- a/src/services/kitsu.cc	Fri Nov 07 07:09:31 2025 -0500
+++ b/src/services/kitsu.cc	Fri Nov 07 07:10:32 2025 -0500
@@ -515,7 +515,7 @@
 {
 	/* TODO: the genres should *probably* be a std::optional */
 	Anime::Anime &anime = Anime::db.items[id];
-	if (anime.GetGenres().size() > 0 && anime.GetProducers().size())
+	if (anime.GetGenres().size() > 0 && anime.GetProducers().size() > 0)
 		return false;
 
 	std::optional<std::string> service_id = anime.GetServiceId(Anime::Service::Kitsu);
--- a/src/services/services.cc	Fri Nov 07 07:09:31 2025 -0500
+++ b/src/services/services.cc	Fri Nov 07 07:10:32 2025 -0500
@@ -21,6 +21,12 @@
 	}
 }
 
+/* This is specific to Kitsu; by default they don't provide genre
+ * nor producer info so we grab it only when we need it (i.e. when
+ * the anime info list is open).
+ *
+ * The backend should automatically detect whether this is unnecessary
+ * and simply return false if it is. */
 bool RetrieveAnimeMetadata(int id)
 {
 	switch (session.config.service) {