From 595dfa7a6a1dc8041b3a5a4fe7ee2fae89029a69 Mon Sep 17 00:00:00 2001 From: Niki Roo Date: Thu, 16 Feb 2017 19:31:56 +0100 Subject: [PATCH] Fix some perf/space problems, add a cover for e621 --- ...es.jar => nikiroo-utils-0.9.7-sources.jar} | Bin 39430 -> 39700 bytes src/be/nikiroo/fanfix/Cache.java | 23 +++++++++--------- .../fanfix/supported/BasicSupport.java | 5 ++-- src/be/nikiroo/fanfix/supported/E621.java | 18 +++++++++++++- src/be/nikiroo/fanfix/supported/Epub.java | 4 +-- src/be/nikiroo/fanfix/supported/MangaFox.java | 3 ++- 6 files changed, 33 insertions(+), 20 deletions(-) rename libs/{nikiroo-utils-0.9.6-sources.jar => nikiroo-utils-0.9.7-sources.jar} (71%) diff --git a/libs/nikiroo-utils-0.9.6-sources.jar b/libs/nikiroo-utils-0.9.7-sources.jar similarity index 71% rename from libs/nikiroo-utils-0.9.6-sources.jar rename to libs/nikiroo-utils-0.9.7-sources.jar index 42d2774f3505998f1b129f265c13509ee36188f7..dbccbca122182540b78a387abd863fae900e38b2 100644 GIT binary patch delta 10293 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