Fix Yiffstar
[fanfix.git] / src / be / nikiroo / fanfix / supported / YiffStar.java
index ca331e5adac7564d499793dbc793705606507ae2..121f97dc35b449dbf4014a7d19c6d51e0f876cc4 100644 (file)
@@ -4,6 +4,7 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.util.AbstractMap;
 import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
@@ -25,7 +26,6 @@ import be.nikiroo.utils.StringUtils;
  * @author niki
  */
 class YiffStar extends BasicSupport_Deprecated {
-
        @Override
        public String getSourceName() {
                return "YiffStar";
@@ -44,7 +44,7 @@ class YiffStar extends BasicSupport_Deprecated {
                meta.setPublisher(getSourceName());
                meta.setUuid(source.toString());
                meta.setLuid("");
-               meta.setLang("EN");
+               meta.setLang("en");
                meta.setSubject("Furry");
                meta.setType(getType().toString());
                meta.setImageDocument(false);
@@ -79,10 +79,13 @@ class YiffStar extends BasicSupport_Deprecated {
 
                if (login != null && !login.isEmpty() && password != null
                                && !password.isEmpty()) {
+
                        Map<String, String> post = new HashMap<String, String>();
-                       post.put("sfLoginUsername", login);
-                       post.put("sfLoginPassword", password);
+                       post.put("LoginForm[sfLoginUsername]", login);
+                       post.put("LoginForm[sfLoginPassword]", password);
                        post.put("YII_CSRF_TOKEN", "");
+                       post.put("yt1", "Login");
+                       post.put("returnUrl", "/");
 
                        // Cookies will actually be retained by the cache manager once
                        // logged in
@@ -96,8 +99,10 @@ class YiffStar extends BasicSupport_Deprecated {
        public URL getCanonicalUrl(URL source) {
                try {
                        if (source.getPath().startsWith("/view")) {
-                               source = new URL(source.toString() + "/guest");
-                               InputStream in = Instance.getCache().open(source, this, false);
+                               source = guest(source.toString());
+                               // NO CACHE because we don't want the NotLoggedIn message later
+                               InputStream in = Instance.getCache().openNoCache(source, this,
+                                               null, null, null);
                                String line = getLine(in, "/browse/folder/", 0);
                                if (line != null) {
                                        String[] tab = line.split("\"");
@@ -206,24 +211,8 @@ class YiffStar extends BasicSupport_Deprecated {
                                                link = source.getProtocol() + "://" + source.getHost()
                                                                + link;
                                        }
-                                       final URL value = guest(link);
-                                       final String key = StringUtils.unhtml(line).trim();
-                                       urls.add(new Entry<String, URL>() {
-                                               @Override
-                                               public URL setValue(URL value) {
-                                                       return null;
-                                               }
-
-                                               @Override
-                                               public URL getValue() {
-                                                       return value;
-                                               }
-
-                                               @Override
-                                               public String getKey() {
-                                                       return key;
-                                               }
-                                       });
+                                       urls.add(new AbstractMap.SimpleEntry<String, URL>(
+                                                       StringUtils.unhtml(line).trim(), guest(link)));
                                }
                        }
                }