Просмотр исходного кода

Merge remote-tracking branch 'origin/master'

gedoor 4 лет назад
Родитель
Сommit
0da90112b9
1 измененных файлов с 15 добавлено и 1 удалено
  1. 15 1
      app/src/main/java/io/legado/app/utils/NetworkUtils.kt

+ 15 - 1
app/src/main/java/io/legado/app/utils/NetworkUtils.kt

@@ -144,10 +144,24 @@ object NetworkUtils {
         } else url.substring(0, index)
         } else url.substring(0, index)
     }
     }
 
 
+    /**
+     * 获取二级域名,供cookie保存和读取
+     * 
+     * 1.2.3.4 => 1.2.3.4
+     * www.example.com =>  example.com
+     * www.example.com.cn => example.com.cn
+     * 未实现www.content.example.com => example.com
+     */
     fun getSubDomain(url: String?): String {
     fun getSubDomain(url: String?): String {
         val baseUrl = getBaseUrl(url) ?: return ""
         val baseUrl = getBaseUrl(url) ?: return ""
+        //baseUrl为IPv4时,直接返回
+        //IPv6暂时不考虑支持
+        if (isIPv4Address(baseUrl)) {
+            return baseUrl
+        }
+        //td do:利用https://github.com/publicsuffix/list,https://github.com/Kevin-Sangeelee/PublicSuffixList实现二级域名返回
         return if (baseUrl.indexOf(".") == baseUrl.lastIndexOf(".")) {
         return if (baseUrl.indexOf(".") == baseUrl.lastIndexOf(".")) {
-            baseUrl.substring(baseUrl.lastIndexOf("/") + 1)
+            baseUrl
         } else baseUrl.substring(baseUrl.indexOf(".") + 1)
         } else baseUrl.substring(baseUrl.indexOf(".") + 1)
     }
     }