potential crash on inforeader
[nikiroo-utils.git] / supported / InfoReader.java
index 15a4f5c4e7bc1234e45d157411fb6279eb7b9ac5..405b28fb4197be856192e3b8ad31a219f4636cc5 100644 (file)
@@ -9,8 +9,6 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Scanner;
 
-import org.jsoup.nodes.Document;
-
 import be.nikiroo.fanfix.Instance;
 import be.nikiroo.fanfix.bundles.Config;
 import be.nikiroo.fanfix.data.MetaData;
@@ -36,6 +34,13 @@ public class InfoReader {
                                MetaData meta = createMeta(infoFile.toURI().toURL(), in,
                                                withCover);
 
+                               // Some old .info files were using UUID for URL...
+                               if (!hasIt(meta.getUrl()) && meta.getUuid() != null
+                                               && (meta.getUuid().startsWith("http://")
+                                                               || meta.getUuid().startsWith("https://"))) {
+                                       meta.setUrl(meta.getUuid());
+                               }
+
                                // Some old .info files don't have those now required fields...
                                // So we check if we can find the info in another way (many
                                // formats have a copy of the original text file)
@@ -254,11 +259,21 @@ public class InfoReader {
                        String value = getLine(in, key, 0);
                        if (value != null && !value.isEmpty()) {
                                value = value.trim().substring(key.length() - 1).trim();
-                               if (value.startsWith("'") && value.endsWith("'")
-                                               || value.startsWith("\"") && value.endsWith("\"")) {
+                               if (value.length() > 1 && //
+                                               (value.startsWith("'") && value.endsWith("'")
+                                                               || value.startsWith("\"")
+                                                                               && value.endsWith("\""))) {
                                        value = value.substring(1, value.length() - 1).trim();
                                }
 
+                               // Some old files ended up with TITLE="'xxxxx'"
+                               if ("^TITLE=".equals(key)) {
+                                       if (value.startsWith("'") && value.endsWith("'")
+                                                       && value.length() > 1) {
+                                               value = value.substring(1, value.length() - 1).trim();
+                                       }
+                               }
+
                                return value;
                        }
                }