|
|
@ -19,14 +19,16 @@ import java.io.InputStream |
|
|
|
import java.net.MalformedURLException |
|
|
|
import java.net.MalformedURLException |
|
|
|
import java.net.URL |
|
|
|
import java.net.URL |
|
|
|
import java.net.URLEncoder |
|
|
|
import java.net.URLEncoder |
|
|
|
import java.text.SimpleDateFormat |
|
|
|
import java.time.LocalDateTime |
|
|
|
|
|
|
|
import java.time.ZoneOffset |
|
|
|
|
|
|
|
import java.time.format.DateTimeFormatter |
|
|
|
|
|
|
|
|
|
|
|
@Suppress("unused", "MemberVisibilityCanBePrivate") |
|
|
|
@Suppress("unused", "MemberVisibilityCanBePrivate") |
|
|
|
open class WebDav(urlStr: String, val authorization: Authorization) { |
|
|
|
open class WebDav(urlStr: String, val authorization: Authorization) { |
|
|
|
companion object { |
|
|
|
companion object { |
|
|
|
|
|
|
|
|
|
|
|
@SuppressLint("SimpleDateFormat") |
|
|
|
@SuppressLint("DateTimeFormatter") |
|
|
|
private val dateFormat = SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss ZZZ") |
|
|
|
private val dateTimeFormatter = DateTimeFormatter.RFC_1123_DATE_TIME |
|
|
|
|
|
|
|
|
|
|
|
// 指定返回哪些属性 |
|
|
|
// 指定返回哪些属性 |
|
|
|
@Language("xml") |
|
|
|
@Language("xml") |
|
|
@ -133,11 +135,11 @@ open class WebDav(urlStr: String, val authorization: Authorization) { |
|
|
|
.firstOrNull()?.text()?.toLong() ?: 0 |
|
|
|
.firstOrNull()?.text()?.toLong() ?: 0 |
|
|
|
}.getOrDefault(0) |
|
|
|
}.getOrDefault(0) |
|
|
|
val lastModify: Long = kotlin.runCatching { |
|
|
|
val lastModify: Long = kotlin.runCatching { |
|
|
|
element.getElementsByTag("d:getcontentlength") |
|
|
|
element.getElementsByTag("d:getlastmodified") |
|
|
|
.firstOrNull()?.text()?.let { |
|
|
|
.firstOrNull()?.text()?.let { |
|
|
|
dateFormat.parse(it) |
|
|
|
LocalDateTime.parse(it, dateTimeFormatter).toInstant(ZoneOffset.of("+8")).toEpochMilli() |
|
|
|
} |
|
|
|
} |
|
|
|
}.getOrNull()?.time ?: 0 |
|
|
|
}.getOrNull() ?: 0 |
|
|
|
webDavFile = WebDavFile( |
|
|
|
webDavFile = WebDavFile( |
|
|
|
baseUrl + fileName, |
|
|
|
baseUrl + fileName, |
|
|
|
authorization, |
|
|
|
authorization, |
|
|
|