Skip to content

Commit 0e562ee

Browse files
committed
Optimize conf
1 parent bc61ab3 commit 0e562ee

4 files changed

Lines changed: 34 additions & 42 deletions

File tree

app/src/main/kotlin/org/vestifeed/api/miniflux/MinifluxSync.kt

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -117,12 +117,7 @@ class MinifluxSync(val db: Database, val api: Miniflux) {
117117
syncStarredEntries()
118118
syncUnreadEntries()
119119
withContext(Dispatchers.IO) {
120-
db.conf.update {
121-
it.copy(
122-
minifluxInitialSyncCompleted = true,
123-
minifluxIncrementalSyncTimestamp = startedAt,
124-
)
125-
}
120+
db.conf.update { it.copy(minifluxIncrementalSyncTimestamp = startedAt) }
126121
}
127122
} else {
128123
val unsyncedEntries =
@@ -207,7 +202,8 @@ class MinifluxSync(val db: Database, val api: Miniflux) {
207202
message = "Syncing changed entries",
208203
)
209204
)
210-
var changedAfter = OffsetDateTime.parse(db.conf.select().minifluxIncrementalSyncTimestamp)
205+
var changedAfter =
206+
OffsetDateTime.parse(db.conf.select().minifluxIncrementalSyncTimestamp)
211207
db.log.insert(
212208
LogTable.InsertArgs(
213209
level = "info",

app/src/main/kotlin/org/vestifeed/db/table/ConfTable.kt

Lines changed: 30 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,6 @@ class ConfTable(private val conn: SQLiteConnection) {
1414
backend TEXT,
1515
miniflux_url TEXT,
1616
miniflux_token TEXT,
17-
miniflux_initial_sync_completed INTEGER NOT NULL,
1817
minifluxIncrementalSyncTimestamp TEXT,
1918
show_read_entries INTEGER NOT NULL,
2019
show_preview_images INTEGER NOT NULL,
@@ -33,7 +32,6 @@ class ConfTable(private val conn: SQLiteConnection) {
3332
backend = null,
3433
minifluxUrl = null,
3534
minifluxToken = null,
36-
minifluxInitialSyncCompleted = false,
3735
minifluxIncrementalSyncTimestamp = null,
3836
showReadEntries = false,
3937
showPreviewImages = true,
@@ -54,10 +52,14 @@ class ConfTable(private val conn: SQLiteConnection) {
5452
}
5553

5654
data class Conf(
55+
// miniflux or embedded
5756
val backend: Backend?,
57+
// https://miniflux.app/docs/api.html
5858
val minifluxUrl: String?,
59+
// Per-application API keys (since version 2.0.21) -> preferred method
5960
val minifluxToken: String?,
60-
val minifluxInitialSyncCompleted: Boolean,
61+
// if null, should fetch read + starred and set to
62+
// current timestamp to fetch future updates
6163
val minifluxIncrementalSyncTimestamp: String?,
6264
val showReadEntries: Boolean,
6365
val showPreviewImages: Boolean,
@@ -75,50 +77,48 @@ class ConfTable(private val conn: SQLiteConnection) {
7577
backend = getBackendOrNull(0),
7678
minifluxUrl = getTextOrNull(1),
7779
minifluxToken = getTextOrNull(2),
78-
minifluxInitialSyncCompleted = getInt(3) == 1,
79-
minifluxIncrementalSyncTimestamp = getTextOrNull(4),
80-
showReadEntries = getInt(5) == 1,
81-
showPreviewImages = getInt(6) == 1,
82-
cropPreviewImages = getInt(7) == 1,
83-
markScrolledEntriesAsRead = getInt(8) == 1,
84-
syncOnStartup = getInt(9) == 1,
85-
syncInBackground = getInt(10) == 1,
86-
backgroundSyncIntervalMillis = getLong(11),
87-
useBuiltInBrowser = getInt(12) == 1,
88-
showPreviewText = getInt(13) == 1,
89-
syncedOnStartup = getInt(14) == 1,
80+
minifluxIncrementalSyncTimestamp = getTextOrNull(3),
81+
showReadEntries = getInt(4) == 1,
82+
showPreviewImages = getInt(5) == 1,
83+
cropPreviewImages = getInt(6) == 1,
84+
markScrolledEntriesAsRead = getInt(7) == 1,
85+
syncOnStartup = getInt(8) == 1,
86+
syncInBackground = getInt(9) == 1,
87+
backgroundSyncIntervalMillis = getLong(10),
88+
useBuiltInBrowser = getInt(11) == 1,
89+
showPreviewText = getInt(12) == 1,
90+
syncedOnStartup = getInt(13) == 1,
9091
)
9192

9293
fun insert(conf: Conf) {
9394
conn.prepare(
9495
"""
95-
INSERT OR REPLACE INTO conf (backend, miniflux_url, miniflux_token, miniflux_initial_sync_completed, minifluxIncrementalSyncTimestamp, show_read_entries, show_preview_images, crop_preview_images, mark_scrolled_entries_as_read, sync_on_startup, sync_in_background, background_sync_interval_millis, use_built_in_browser, show_preview_text, synced_on_startup)
96-
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);
96+
INSERT OR REPLACE INTO conf (backend, miniflux_url, miniflux_token, minifluxIncrementalSyncTimestamp, show_read_entries, show_preview_images, crop_preview_images, mark_scrolled_entries_as_read, sync_on_startup, sync_in_background, background_sync_interval_millis, use_built_in_browser, show_preview_text, synced_on_startup)
97+
VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?);
9798
"""
9899
).use { stmt ->
99100
stmt.bindTextOrNull(1, conf.backend?.name?.lowercase())
100101
stmt.bindTextOrNull(2, conf.minifluxUrl)
101102
stmt.bindTextOrNull(3, conf.minifluxToken)
102-
stmt.bindInt(4, if (conf.minifluxInitialSyncCompleted) 1 else 0)
103-
stmt.bindTextOrNull(5, conf.minifluxIncrementalSyncTimestamp)
104-
stmt.bindInt(6, if (conf.showReadEntries) 1 else 0)
105-
stmt.bindInt(7, if (conf.showPreviewImages) 1 else 0)
106-
stmt.bindInt(8, if (conf.cropPreviewImages) 1 else 0)
107-
stmt.bindInt(9, if (conf.markScrolledEntriesAsRead) 1 else 0)
108-
stmt.bindInt(10, if (conf.syncOnStartup) 1 else 0)
109-
stmt.bindInt(11, if (conf.syncInBackground) 1 else 0)
110-
stmt.bindLong(12, conf.backgroundSyncIntervalMillis)
111-
stmt.bindInt(13, if (conf.useBuiltInBrowser) 1 else 0)
112-
stmt.bindInt(14, if (conf.showPreviewText) 1 else 0)
113-
stmt.bindInt(15, if (conf.syncedOnStartup) 1 else 0)
103+
stmt.bindTextOrNull(4, conf.minifluxIncrementalSyncTimestamp)
104+
stmt.bindInt(5, if (conf.showReadEntries) 1 else 0)
105+
stmt.bindInt(6, if (conf.showPreviewImages) 1 else 0)
106+
stmt.bindInt(7, if (conf.cropPreviewImages) 1 else 0)
107+
stmt.bindInt(8, if (conf.markScrolledEntriesAsRead) 1 else 0)
108+
stmt.bindInt(9, if (conf.syncOnStartup) 1 else 0)
109+
stmt.bindInt(10, if (conf.syncInBackground) 1 else 0)
110+
stmt.bindLong(11, conf.backgroundSyncIntervalMillis)
111+
stmt.bindInt(12, if (conf.useBuiltInBrowser) 1 else 0)
112+
stmt.bindInt(13, if (conf.showPreviewText) 1 else 0)
113+
stmt.bindInt(14, if (conf.syncedOnStartup) 1 else 0)
114114
stmt.step()
115115
}
116116
}
117117

118118
fun select(): Conf {
119119
conn.prepare(
120120
"""
121-
SELECT backend, miniflux_url, miniflux_token, miniflux_initial_sync_completed, minifluxIncrementalSyncTimestamp, show_read_entries, show_preview_images, crop_preview_images, mark_scrolled_entries_as_read, sync_on_startup, sync_in_background, background_sync_interval_millis, use_built_in_browser, show_preview_text, synced_on_startup
121+
SELECT backend, miniflux_url, miniflux_token, minifluxIncrementalSyncTimestamp, show_read_entries, show_preview_images, crop_preview_images, mark_scrolled_entries_as_read, sync_on_startup, sync_in_background, background_sync_interval_millis, use_built_in_browser, show_preview_text, synced_on_startup
122122
FROM conf
123123
"""
124124
).use { stmt ->

app/src/main/kotlin/org/vestifeed/sync/Sync.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ class Sync(
5656
)
5757
val sync = MinifluxSync(db, api)
5858
sync.syncFeeds()
59-
sync.syncEntries(initial = !conf.minifluxInitialSyncCompleted)
59+
sync.syncEntries(initial = conf.minifluxIncrementalSyncTimestamp == null)
6060
}
6161

6262
ConfTable.Backend.Embedded -> {

app/src/test/kotlin/org/vestifeed/db/table/ConfTest.kt

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@ class ConfTest {
3838
assertEquals(null, defaultConf.backend)
3939
assertEquals(null, defaultConf.minifluxUrl)
4040
assertEquals(null, defaultConf.minifluxToken)
41-
assertFalse(defaultConf.minifluxInitialSyncCompleted)
4241
assertEquals(null, defaultConf.minifluxIncrementalSyncTimestamp)
4342
assertFalse(defaultConf.showReadEntries)
4443
assertTrue(defaultConf.showPreviewImages)
@@ -69,7 +68,6 @@ class ConfTest {
6968
assertEquals(conf.backend, result.backend)
7069
assertEquals(conf.minifluxUrl, result.minifluxUrl)
7170
assertEquals(conf.minifluxToken, result.minifluxToken)
72-
assertEquals(conf.minifluxInitialSyncCompleted, result.minifluxInitialSyncCompleted)
7371
assertEquals(conf.minifluxIncrementalSyncTimestamp, result.minifluxIncrementalSyncTimestamp)
7472
assertEquals(conf.showReadEntries, result.showReadEntries)
7573
assertEquals(conf.showPreviewImages, result.showPreviewImages)
@@ -136,7 +134,6 @@ class ConfTest {
136134
backend: ConfTable.Backend = ConfTable.Backend.Embedded,
137135
minifluxUrl: String = "https://miniflux.example.com",
138136
minifluxToken: String = "miniflux-token",
139-
minifluxInitialSyncCompleted: Boolean = true,
140137
minifluxIncrementalSyncTimestamp: String? = "2024-01-01T00:00:00Z",
141138
showReadEntries: Boolean = true,
142139
showPreviewImages: Boolean = true,
@@ -152,7 +149,6 @@ class ConfTest {
152149
backend = backend,
153150
minifluxUrl = minifluxUrl,
154151
minifluxToken = minifluxToken,
155-
minifluxInitialSyncCompleted = minifluxInitialSyncCompleted,
156152
minifluxIncrementalSyncTimestamp = minifluxIncrementalSyncTimestamp,
157153
showReadEntries = showReadEntries,
158154
showPreviewImages = showPreviewImages,

0 commit comments

Comments
 (0)