1
0
mirror of https://github.com/fabianonline/telegram_backup.git synced 2024-11-22 08:46:15 +00:00

Began implementing requery.

This commit is contained in:
Fabian Schlenz 2017-12-13 06:10:41 +01:00
parent bb180f95be
commit 65ec528a99
2 changed files with 52 additions and 2 deletions

View File

@ -5,6 +5,7 @@ mainClassName= 'de.fabianonline.telegram_backup.CommandLineRunnerKt'
repositories {
mavenCentral()
jcenter()
maven {
url "https://jitpack.io"
}
@ -23,11 +24,15 @@ buildscript {
}
apply plugin: 'kotlin'
apply plugin: 'kotlin-kapt'
compileKotlin {
kotlinOptions.apiVersion = "1.0"
kotlinOptions.apiVersion = "1.2"
}
kapt {
generateStubs = true
}
dependencies {
compile('com.github.badoualy:kotlogram:666a81ef9d6707f117a3fecc2d21c91d51c7d075') {
@ -39,6 +44,10 @@ dependencies {
compile 'ch.qos.logback:logback-classic:1.1.7'
compile 'com.google.code.gson:gson:2.5'
compile 'io.requery:requery:1.4.1'
compile 'io.requery:requery-kotlin:1.4.1'
kapt 'io.requery:requery-processor:1.4.1'
testCompile 'junit:junit:4.12'
}

View File

@ -21,6 +21,8 @@ import com.github.badoualy.telegram.tl.core.TLVector
import com.github.badoualy.telegram.api.TelegramClient
import org.slf4j.LoggerFactory
import org.slf4j.Logger
import io.requery.*
import org.sqlite.SQLiteDataSource
import java.sql.Connection
import java.sql.DriverManager
@ -47,6 +49,39 @@ import java.text.SimpleDateFormat
import de.fabianonline.telegram_backup.mediafilemanager.AbstractMediaFileManager
import de.fabianonline.telegram_backup.mediafilemanager.FileManagerFactory
@Table(name = "messages")
@Entity
interface Message: Persistable {
@get:Key
@get:Generated
var id: Int
@get:Index("unique_messages")
@get:Column(unique = true)
var message_id: Int
var message_type: String
@get:Index("unique_messages")
@get:Column(unique = true)
var source_type: String
@get:Index("unique_messages")
@get:Column(unique = true)
var source_id: Int
var sender_id: Int
var fwd_from_id: Int
var text: String
var time: Int
var has_media: Boolean
var media_type: String
var media_file: String
var media_size: Int
var media_json: String
var markup_json: String
var data: Array<Byte>
var api_layer: Int
}
class Database private constructor(var client: TelegramClient) {
private var conn: Connection? = null
private var stmt: Statement? = null
@ -217,6 +252,12 @@ class Database private constructor(var client: TelegramClient) {
// Run updates
val updates = DatabaseUpdates(conn!!, this)
updates.doUpdates()
logger.trace("Setting up requery")
val ds = SQLiteDataSource()
ds.setDatabaseName(path)
val config = KotlinConfiguration(dataSource=ds, model=Models.DEFAULT)
val foobarbaz
System.out.println("Database is ready.")
}