Merge remote-tracking branch 'origin/master' into desirepath

# Conflicts:
#	app/src/main/java/io/legado/app/data/dao/BookDao.kt
pull/30/head
Invinciblelee 6 years ago
commit d5f8457918
  1. 2
      app/src/main/java/io/legado/app/data/dao/BookDao.kt
  2. 18
      app/src/main/java/io/legado/app/data/entities/Book.kt
  3. 4
      app/src/main/java/io/legado/app/data/entities/Chapter.kt
  4. 27
      app/src/main/java/io/legado/app/data/entities/Source.kt

@ -13,7 +13,7 @@ interface BookDao {
@Query("SELECT * FROM books WHERE `group` = :group") @Query("SELECT * FROM books WHERE `group` = :group")
fun observeByGroup(group: Int): DataSource.Factory<Int, Book> fun observeByGroup(group: Int): DataSource.Factory<Int, Book>
@Query("SELECT tocUrl FROM books WHERE `group` = :group") @Query("SELECT descUrl FROM books WHERE `group` = :group")
fun observeUrlsByGroup(group: Int): LiveData<List<String>> fun observeUrlsByGroup(group: Int): LiveData<List<String>>
} }

@ -13,23 +13,23 @@ data class Book(@PrimaryKey
var author: String? = null, // 作者名称(允许用户修改,适用于本地书籍) var author: String? = null, // 作者名称(允许用户修改,适用于本地书籍)
var tag: String? = null, // 分类信息(允许用户修改,适用于本地书籍) var tag: String? = null, // 分类信息(允许用户修改,适用于本地书籍)
var coverUrl: String? = null, // 封面Url var coverUrl: String? = null, // 封面Url
var customCoverUrl: String? = null, // 自定义封面Url var customCoverUrl: String? = null, // 自定义封面Url(允许用户修改,适用于网络和本地书籍)
var description: String? = null, // 简介内容 var description: String? = null, // 简介内容(允许用户修改,适用于网络和本地书籍)
var charset: String? = null, // 自定义字符集名称(仅适用于本地书籍) var charset: String? = null, // 自定义字符集名称(仅适用于本地书籍)
var type: Int = 0, // 0: 文本读物, 1: 有声读物 var type: Int = 0, // 0: 文本读物, 1: 有声读物
var group: Int = 0, // 自定义分组索引号 var group: Int = 0, // 自定义分组索引号
var tocUrl: String = "", // 目录页Url (toc=table of Contents) var tocUrl: String = "", // 目录页Url (toc=table of Contents)
var latestChapterName: String? = null, // 最新章节 var latestChapterName: String? = null, // 最新章节
var lastCheckTime: Long? = null, // 最近一次更新书籍信息的时间 var lastCheckTime: Long? = null, // 最近一次更新书籍信息的时间
var hasNewChapter: Boolean = false, // 最近一次更新书籍信息时是否发现新章节
var latestChapterTime: Long? = null, // 最近一次发现新章节的时间 var latestChapterTime: Long? = null, // 最近一次发现新章节的时间
var lastUpdateChapters: Int = 0, // 最近一次发现新章节的数量 var latestCheckCount: Int = 0, // 最近一次发现新章节的数量
var durChapterName: String = "", // 当前阅读的章节名称
var durChapterIndex: Int = 0, // 当前阅读的章节分页索引
var durChapterPage: Int = 0, // 当前阅读的章节总分页数
var durChapterTime: Long = 0, // 最后一次阅读书籍的时间(打开正文的时间)
var totalChapterNum: Int = 0, // 书籍目录总数 var totalChapterNum: Int = 0, // 书籍目录总数
var hasNewChapter: Boolean = false, // 是否在最后一次更新书籍信息时找到新章节 var durChapterName: String = "", // 当前章节名称
var allowUpdate: Boolean = true, // 是否允许阅读自动管理更新书籍信息 var durChapterIndex: Int = 0, // 当前章节索引
var durChapterMark: Int = 0, // 当前阅读的进度(首行字符的索引位置)
var durChapterTime: Long = 0, // 最近一次阅读书籍的时间(打开正文的时间)
var canUpdate: Boolean = true, // 刷新书架时更新书籍信息
var variable: String? = null // 自定义书籍变量信息(用于书源规则检索书籍信息) var variable: String? = null // 自定义书籍变量信息(用于书源规则检索书籍信息)
) : Parcelable { ) : Parcelable {

@ -2,6 +2,7 @@ package io.legado.app.data.entities
import android.os.Parcelable import android.os.Parcelable
import androidx.room.Entity import androidx.room.Entity
import androidx.room.ForeignKey
import androidx.room.Index import androidx.room.Index
import androidx.room.PrimaryKey import androidx.room.PrimaryKey
import kotlinx.android.parcel.Parcelize import kotlinx.android.parcel.Parcelize
@ -9,9 +10,8 @@ import kotlinx.android.parcel.Parcelize
@Parcelize @Parcelize
@Entity(tableName = "chapters", @Entity(tableName = "chapters",
indices = [(Index(value = ["url"]))]) indices = [(Index(value = ["feedId", "feedLink"], unique = true))])
data class Chapter(@PrimaryKey data class Chapter(@PrimaryKey
var url: String = "",
var name: String = "", var name: String = "",
var bookUrl: String = "", var bookUrl: String = "",
var index: Int = 0, var index: Int = 0,

@ -1,2 +1,29 @@
package io.legado.app.data.entities package io.legado.app.data.entities
import android.os.Parcelable
import androidx.room.Entity
import androidx.room.Index
import androidx.room.PrimaryKey
import kotlinx.android.parcel.Parcelize
@Parcelize
@Entity(tableName = "sources",
indices = [(Index(value = ["id"]))])
data class Source(@PrimaryKey
var id: Int = 0, // 编号
var host: String = "", // 地址,包括 http/https
var name: String = "", // 名称
var type: Int = 0, // 类型,0 文本,1 音频
var group: String? = null, // 分组
var header: String? = null, // header
var loginUrl: String? = null, // 登录地址
var isEnabled: Boolean = true, // 是否启用
var lastUpdateTime: Long = 0, // 最后更新时间,用于排序
var serialNumber: Int = 0, // 手动排序编号
var weight: Int = 0, // 智能排序的权重
var exploreRule: String? = null, // 发现规则
var searchRule: String? = null, // 搜索规则
var bookInfoRule: String? = null, // 书籍信息页规则
var tocRule: String? = null, // 目录页规则
var contentRule: String? = null // 正文页规则
) : Parcelable
Loading…
Cancel
Save