|
|
|
@ -4,7 +4,14 @@ import android.app.Application |
|
|
|
|
import io.legado.app.App |
|
|
|
|
import io.legado.app.base.BaseViewModel |
|
|
|
|
import io.legado.app.constant.Bus |
|
|
|
|
import io.legado.app.data.api.IHttpGetApi |
|
|
|
|
import io.legado.app.data.entities.RssSource |
|
|
|
|
import io.legado.app.help.http.HttpHelper |
|
|
|
|
import io.legado.app.help.storage.Restore |
|
|
|
|
import io.legado.app.model.WebBook |
|
|
|
|
import io.legado.app.utils.GSON |
|
|
|
|
import io.legado.app.utils.NetworkUtils |
|
|
|
|
import io.legado.app.utils.fromJsonObject |
|
|
|
|
import io.legado.app.utils.postEvent |
|
|
|
|
import kotlinx.coroutines.Dispatchers.IO |
|
|
|
|
import kotlinx.coroutines.delay |
|
|
|
@ -48,4 +55,23 @@ class MainViewModel(application: Application) : BaseViewModel(application) { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
fun initRss() { |
|
|
|
|
execute { |
|
|
|
|
val url = "https://gitee.com/alanskycn/yuedu/raw/master/JS/RSS/rssSource" |
|
|
|
|
NetworkUtils.getBaseUrl(url)?.let { |
|
|
|
|
val response = HttpHelper.getApiService<IHttpGetApi>(it).get(url, mapOf()).execute() |
|
|
|
|
response.body()?.let { body -> |
|
|
|
|
val sources = mutableListOf<RssSource>() |
|
|
|
|
val items: List<Map<String, Any>> = Restore.jsonPath.parse(body).read("$") |
|
|
|
|
for (item in items) { |
|
|
|
|
val jsonItem = Restore.jsonPath.parse(item) |
|
|
|
|
GSON.fromJsonObject<RssSource>(jsonItem.jsonString())?.let { source -> |
|
|
|
|
sources.add(source) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
App.db.rssSourceDao().insert(*sources.toTypedArray()) |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |