improvemnts:

- ordering of bookmarks
- limitation of bookmarks on index page
- date for bookmarks that did not have a date before the transition
This commit is contained in:
2025-08-06 01:55:59 +02:00
parent 6f1fdc1f95
commit a450ef97b8
6 changed files with 35 additions and 20 deletions

View File

@@ -3,8 +3,7 @@ package de.srsoftware.umbrella.tags;
import static de.srsoftware.tools.Optionals.is0;
import static de.srsoftware.tools.Optionals.isSet;
import static de.srsoftware.tools.jdbc.Condition.equal;
import static de.srsoftware.tools.jdbc.Condition.isNull;
import static de.srsoftware.tools.jdbc.Condition.*;
import static de.srsoftware.tools.jdbc.Query.*;
import static de.srsoftware.tools.jdbc.Query.Dialect.SQLITE;
import static de.srsoftware.tools.jdbc.Query.SelectQuery.ALL;
@@ -17,6 +16,7 @@ import static java.lang.System.Logger.Level.*;
import static java.text.MessageFormat.format;
import static java.time.ZoneOffset.UTC;
import de.srsoftware.tools.jdbc.Condition;
import de.srsoftware.tools.jdbc.Query;
import de.srsoftware.umbrella.bookmarks.BookmarkDb;
import de.srsoftware.umbrella.core.BaseDb;
@@ -28,10 +28,8 @@ import java.util.*;
import java.util.regex.Pattern;
public class SqliteDb extends BaseDb implements TagDB{
private static final System.Logger LOG = System.getLogger("TagDB");
private final BookmarkDb bookmarks;
public SqliteDb(Connection tagDb, Connection bmDb) {
super(tagDb);
bookmarks = new de.srsoftware.umbrella.bookmarks.SqliteDb(bmDb);
@@ -54,13 +52,19 @@ public class SqliteDb extends BaseDb implements TagDB{
dropOldTables();
renameNewTagTable();
}
return setCurrentVersion(2);
version = setCurrentVersion(2);
LOG.log(INFO,"Updated db to version {0}",version);
return version;
}
private void splitContentToBookmarks() {
var pattern = Pattern.compile("/([^/]+)/(\\d+)/view");
try {
LocalDateTime earliestDate = LocalDateTime.of(2000,1,1,0,0);
var rs = select(ALL).from(TABLE_URLS).leftJoin(HASH,TABLE_URL_COMMENTS,URL_HASH).leftJoin(COMMENT_HASH,TABLE_COMMENTS,HASH).where(TIMESTAMP,moreThan(0)).limit(1).exec(db);
if (rs.next()) earliestDate = LocalDateTime.ofEpochSecond(rs.getLong(1),0,UTC);
rs.close();
var sql = "CREATE TABLE IF NOT EXISTS tags_new (TAG)";
db.prepareStatement(sql).execute();
// IMPORT BOOKMARKS
@@ -75,7 +79,7 @@ public class SqliteDb extends BaseDb implements TagDB{
var timestamp = commentedURLS.getLong(TIMESTAMP);
var comment = commentedURLS.getString(COMMENT);
if (!isSet(comment)) comment = "";
var dt = is0(timestamp) ? LocalDateTime.now() : LocalDateTime.ofEpochSecond(timestamp,0,UTC);
var dt = is0(timestamp) ? earliestDate : LocalDateTime.ofEpochSecond(timestamp,0,UTC);
var bm = bookmarks.save(url,comment,List.of(userId),dt.withNano(0));
String module = null;
@@ -245,11 +249,6 @@ CREATE TABLE IF NOT EXISTS {0} (
}
}
private void init(){
var version = createTables();
LOG.log(INFO,"Updated task db to version {0}",version);
}
@Override
public Set<String> list(long userId, String module, long entityId) {
try {