diff --git a/htroot/api/ymarks/add_ymark.java b/htroot/api/ymarks/add_ymark.java index 304840ef6..9b201cdc5 100644 --- a/htroot/api/ymarks/add_ymark.java +++ b/htroot/api/ymarks/add_ymark.java @@ -28,17 +28,21 @@ public class add_ymark { final boolean isAuthUser = user!= null && user.hasRight(userDB.Entry.BOOKMARK_RIGHT); if(isAdmin || isAuthUser) { - final String bmk_table = (isAuthUser ? user.getUserName() : YMarkTables.TABLE_BOOKMARKS_USER_ADMIN)+YMarkTables.TABLE_BOOKMARKS_BASENAME; - final String tag_table = (isAuthUser ? user.getUserName() : YMarkTables.TABLE_BOOKMARKS_USER_ADMIN)+YMarkTables.TABLE_TAGS_BASENAME; - final String folder_table = (isAuthUser ? user.getUserName() : YMarkTables.TABLE_BOOKMARKS_USER_ADMIN)+YMarkTables.TABLE_FOLDERS_BASENAME; + final String bmk_table = (isAuthUser ? user.getUserName() : YMarkTables.TABLE_BOOKMARKS_USER_ADMIN)+YMarkTables.TABLES.BOOKMARKS.basename(); + final String tag_table = (isAuthUser ? user.getUserName() : YMarkTables.TABLE_BOOKMARKS_USER_ADMIN)+YMarkTables.TABLES.TAGS.basename(); + final String folder_table = (isAuthUser ? user.getUserName() : YMarkTables.TABLE_BOOKMARKS_USER_ADMIN)+YMarkTables.TABLES.FOLDERS.basename(); byte[] urlHash = null; String url =""; - if(post.containsKey(YMarkTables.TABLE_BOOKMARKS_COL_URL)) { + if(post.containsKey(YMarkTables.BOOKMARK.URL.key())) { try { - url = post.get(YMarkTables.TABLE_BOOKMARKS_COL_URL,YMarkTables.TABLE_BOOKMARKS_COL_DEFAULT); - if (!url.toLowerCase().startsWith(YMarkTables.TABLE_BOOKMARKS_URL_PROTOCOL_HTTP) && !url.toLowerCase().startsWith(YMarkTables.TABLE_BOOKMARKS_URL_PROTOCOL_HTTPS)) { - url=YMarkTables.TABLE_BOOKMARKS_URL_PROTOCOL_HTTP+url; + url = post.get(YMarkTables.BOOKMARK.URL.key(),YMarkTables.BOOKMARK.URL.deflt()); + boolean hasProtocol = false; + for (YMarkTables.PROTOCOL p : YMarkTables.PROTOCOL.values()) { + hasProtocol = url.toLowerCase().startsWith(p.protocol()); + } + if (!hasProtocol) { + url=YMarkTables.PROTOCOL.HTTP.protocol(url); } urlHash = YMarkTables.getBookmarkId(url); } catch (MalformedURLException e) { @@ -68,19 +72,19 @@ public class add_ymark { if (bmk_row == null) { // create and insert new entry Data data = new Data(); - final String tagsString = YMarkTables.cleanTagsString(post.get(YMarkTables.TABLE_BOOKMARKS_COL_TAGS,YMarkTables.TABLE_BOOKMARKS_COL_DEFAULT)); - final String foldersString = YMarkTables.cleanFoldersString(post.get(YMarkTables.TABLE_BOOKMARKS_COL_FOLDERS,YMarkTables.TABLE_FOLDERS_UNSORTED)); + final String tagsString = YMarkTables.cleanTagsString(post.get(YMarkTables.BOOKMARK.TAGS.key(),YMarkTables.BOOKMARK.TAGS.deflt())); + final String foldersString = YMarkTables.cleanFoldersString(post.get(YMarkTables.BOOKMARK.FOLDERS.key(),YMarkTables.TABLE_FOLDERS_UNSORTED)); - data.put(YMarkTables.TABLE_BOOKMARKS_COL_URL, url.getBytes()); - data.put(YMarkTables.TABLE_BOOKMARKS_COL_TITLE, post.get(YMarkTables.TABLE_BOOKMARKS_COL_TITLE,YMarkTables.TABLE_BOOKMARKS_COL_DEFAULT).getBytes()); - data.put(YMarkTables.TABLE_BOOKMARKS_COL_DESC, post.get(YMarkTables.TABLE_BOOKMARKS_COL_DESC,YMarkTables.TABLE_BOOKMARKS_COL_DEFAULT).getBytes()); - data.put(YMarkTables.TABLE_BOOKMARKS_COL_PUBLIC, post.get(YMarkTables.TABLE_BOOKMARKS_COL_PUBLIC,YMarkTables.TABLE_BOOKMARKS_COL_PUBLIC_FALSE).getBytes()); - data.put(YMarkTables.TABLE_BOOKMARKS_COL_TAGS, tagsString.getBytes()); - data.put(YMarkTables.TABLE_BOOKMARKS_COL_VISITS, YMarkTables.TABLE_BOOKMARKS_COL_VISITS_ZERO.getBytes()); - data.put(YMarkTables.TABLE_BOOKMARKS_COL_FOLDERS, foldersString.getBytes()); - data.put(YMarkTables.TABLE_BOOKMARKS_COL_DATE_ADDED, date); - data.put(YMarkTables.TABLE_BOOKMARKS_COL_DATE_MODIFIED, date); - data.put(YMarkTables.TABLE_BOOKMARKS_COL_DATE_VISITED, date); + data.put(YMarkTables.BOOKMARK.URL.key(), url.getBytes()); + data.put(YMarkTables.BOOKMARK.TITLE.key(), post.get(YMarkTables.BOOKMARK.TITLE.key(),YMarkTables.BOOKMARK.TITLE.deflt())); + data.put(YMarkTables.BOOKMARK.DESC.key(), post.get(YMarkTables.BOOKMARK.DESC.key(),YMarkTables.BOOKMARK.DESC.deflt())); + data.put(YMarkTables.BOOKMARK.PUBLIC.key(), post.get(YMarkTables.BOOKMARK.PUBLIC.key(),YMarkTables.BOOKMARK.PUBLIC.deflt())); + data.put(YMarkTables.BOOKMARK.TAGS.key(), tagsString.getBytes()); + data.put(YMarkTables.BOOKMARK.VISITS.key(), YMarkTables.BOOKMARK.VISITS.b_deflt()); + data.put(YMarkTables.BOOKMARK.FOLDERS.key(), foldersString.getBytes()); + data.put(YMarkTables.BOOKMARK.DATE_ADDED.key(), date); + data.put(YMarkTables.BOOKMARK.DATE_MODIFIED.key(), date); + data.put(YMarkTables.BOOKMARK.DATE_VISITED.key(), date); sb.tables.insert(bmk_table, urlHash, data); final String[] folderArray = foldersString.split(YMarkTables.TABLE_TAGS_SEPARATOR); @@ -96,27 +100,27 @@ public class add_ymark { } else { // modify and update existing entry - bmk_row.put(YMarkTables.TABLE_BOOKMARKS_COL_TITLE, post.get(YMarkTables.TABLE_BOOKMARKS_COL_TITLE,bmk_row.get(YMarkTables.TABLE_BOOKMARKS_COL_TITLE,YMarkTables.TABLE_BOOKMARKS_COL_DEFAULT)).getBytes()); - bmk_row.put(YMarkTables.TABLE_BOOKMARKS_COL_DESC, post.get(YMarkTables.TABLE_BOOKMARKS_COL_DESC,bmk_row.get(YMarkTables.TABLE_BOOKMARKS_COL_DESC,YMarkTables.TABLE_BOOKMARKS_COL_DEFAULT)).getBytes()); - bmk_row.put(YMarkTables.TABLE_BOOKMARKS_COL_PUBLIC, post.get(YMarkTables.TABLE_BOOKMARKS_COL_PUBLIC,bmk_row.get(YMarkTables.TABLE_BOOKMARKS_COL_PUBLIC,YMarkTables.TABLE_BOOKMARKS_COL_PUBLIC_FALSE)).getBytes()); + bmk_row.put(YMarkTables.BOOKMARK.TITLE.key(), post.get(YMarkTables.BOOKMARK.TITLE.key(),bmk_row.get(YMarkTables.BOOKMARK.TITLE.key(),YMarkTables.BOOKMARK.TITLE.deflt())).getBytes()); + bmk_row.put(YMarkTables.BOOKMARK.DESC.key(), post.get(YMarkTables.BOOKMARK.DESC.key(),bmk_row.get(YMarkTables.BOOKMARK.DESC.key(),YMarkTables.BOOKMARK.DESC.deflt())).getBytes()); + bmk_row.put(YMarkTables.BOOKMARK.PUBLIC.key(), post.get(YMarkTables.BOOKMARK.PUBLIC.key(),bmk_row.get(YMarkTables.BOOKMARK.PUBLIC.key(),YMarkTables.BOOKMARK.PUBLIC.deflt())).getBytes()); HashSet oldSet; HashSetnewSet; - final String foldersString = post.get(YMarkTables.TABLE_BOOKMARKS_COL_FOLDERS,bmk_row.get(YMarkTables.TABLE_BOOKMARKS_COL_FOLDERS,YMarkTables.TABLE_FOLDERS_UNSORTED)); - oldSet = YMarkTables.keysStringToSet(bmk_row.get(YMarkTables.TABLE_BOOKMARKS_COL_FOLDERS,YMarkTables.TABLE_FOLDERS_UNSORTED)); + final String foldersString = post.get(YMarkTables.BOOKMARK.FOLDERS.key(),bmk_row.get(YMarkTables.BOOKMARK.FOLDERS.key(),YMarkTables.BOOKMARK.FOLDERS.deflt())); + oldSet = YMarkTables.keysStringToSet(bmk_row.get(YMarkTables.BOOKMARK.FOLDERS.key(),YMarkTables.BOOKMARK.FOLDERS.deflt())); newSet = YMarkTables.keysStringToSet(foldersString); updateIndex(folder_table, urlHash, oldSet, newSet); - bmk_row.put(YMarkTables.TABLE_BOOKMARKS_COL_FOLDERS, foldersString.getBytes()); + bmk_row.put(YMarkTables.BOOKMARK.FOLDERS.key(), foldersString.getBytes()); - final String tagsString = YMarkTables.cleanTagsString(post.get(YMarkTables.TABLE_BOOKMARKS_COL_TAGS,YMarkTables.TABLE_BOOKMARKS_COL_DEFAULT)); - oldSet = YMarkTables.keysStringToSet(bmk_row.get(YMarkTables.TABLE_BOOKMARKS_COL_TAGS,YMarkTables.TABLE_BOOKMARKS_COL_DEFAULT)); + final String tagsString = YMarkTables.cleanTagsString(post.get(YMarkTables.BOOKMARK.TAGS.key(),YMarkTables.BOOKMARK.TAGS.deflt())); + oldSet = YMarkTables.keysStringToSet(bmk_row.get(YMarkTables.BOOKMARK.TAGS.key(),YMarkTables.BOOKMARK.TAGS.deflt())); newSet = YMarkTables.keysStringToSet(tagsString); updateIndex(tag_table, urlHash, oldSet, newSet); - bmk_row.put(YMarkTables.TABLE_BOOKMARKS_COL_TAGS, tagsString.getBytes()); + bmk_row.put(YMarkTables.BOOKMARK.TAGS.key(), tagsString.getBytes()); // modify date attribute - bmk_row.put(YMarkTables.TABLE_BOOKMARKS_COL_DATE_MODIFIED, date); + bmk_row.put(YMarkTables.BOOKMARK.DATE_MODIFIED.key(), date); // update bmk_table sb.tables.update(bmk_table, bmk_row); diff --git a/htroot/api/ymarks/delete_ymark.java b/htroot/api/ymarks/delete_ymark.java index a1c9a879d..e04cc1d3a 100644 --- a/htroot/api/ymarks/delete_ymark.java +++ b/htroot/api/ymarks/delete_ymark.java @@ -23,18 +23,18 @@ public class delete_ymark { final boolean isAdmin = (sb.verifyAuthentication(header, true)); final boolean isAuthUser = user!= null && user.hasRight(userDB.Entry.BOOKMARK_RIGHT); - if(isAdmin || isAuthUser) { - final String bmk_table = (isAuthUser ? user.getUserName() : YMarkTables.TABLE_BOOKMARKS_USER_ADMIN)+YMarkTables.TABLE_BOOKMARKS_BASENAME; - final String tag_table = (isAuthUser ? user.getUserName() : YMarkTables.TABLE_BOOKMARKS_USER_ADMIN)+YMarkTables.TABLE_TAGS_BASENAME; - final String folder_table = (isAuthUser ? user.getUserName() : YMarkTables.TABLE_BOOKMARKS_USER_ADMIN)+YMarkTables.TABLE_FOLDERS_BASENAME; + if(isAdmin || isAuthUser) { + final String bmk_table = (isAuthUser ? user.getUserName() : YMarkTables.TABLE_BOOKMARKS_USER_ADMIN)+YMarkTables.TABLES.BOOKMARKS.basename(); + final String tag_table = (isAuthUser ? user.getUserName() : YMarkTables.TABLE_BOOKMARKS_USER_ADMIN)+YMarkTables.TABLES.TAGS.basename(); + final String folder_table = (isAuthUser ? user.getUserName() : YMarkTables.TABLE_BOOKMARKS_USER_ADMIN)+YMarkTables.TABLES.FOLDERS.basename(); byte[] urlHash = null; try { if(post.containsKey(YMarkTables.TABLE_BOOKMARKS_COL_ID)) { urlHash = post.get(YMarkTables.TABLE_BOOKMARKS_COL_ID).getBytes(); - } else if(post.containsKey(YMarkTables.TABLE_BOOKMARKS_COL_URL)) { - urlHash = YMarkTables.getBookmarkId(post.get(YMarkTables.TABLE_BOOKMARKS_COL_URL)); + } else if(post.containsKey(YMarkTables.BOOKMARK.URL.key())) { + urlHash = YMarkTables.getBookmarkId(post.get(YMarkTables.BOOKMARK.URL.key())); } else { prop.put("result", "0"); return prop; @@ -42,9 +42,9 @@ public class delete_ymark { Tables.Row bmk_row = null; bmk_row = sb.tables.select(bmk_table, urlHash); if(bmk_row != null) { - final String tagsString = bmk_row.get(YMarkTables.TABLE_BOOKMARKS_COL_TAGS,YMarkTables.TABLE_BOOKMARKS_COL_DEFAULT); + final String tagsString = bmk_row.get(YMarkTables.BOOKMARK.TAGS.key(),YMarkTables.BOOKMARK.TAGS.deflt()); removeIndexEntry(tag_table, tagsString, urlHash); - final String foldersString = bmk_row.get(YMarkTables.TABLE_BOOKMARKS_COL_FOLDERS,YMarkTables.TABLE_FOLDERS_ROOT); + final String foldersString = bmk_row.get(YMarkTables.BOOKMARK.FOLDERS.key(),YMarkTables.TABLE_FOLDERS_ROOT); removeIndexEntry(folder_table, foldersString, urlHash); } sb.tables.delete(bmk_table,urlHash); diff --git a/htroot/api/ymarks/get_ymark.java b/htroot/api/ymarks/get_ymark.java index 72258d12d..982e82699 100644 --- a/htroot/api/ymarks/get_ymark.java +++ b/htroot/api/ymarks/get_ymark.java @@ -22,18 +22,21 @@ public class get_ymark { sb = (Switchboard) env; prop = new serverObjects(); + boolean tags = false; + final userDB.Entry user = sb.userDB.getUser(header); final boolean isAdmin = (sb.verifyAuthentication(header, true)); final boolean isAuthUser = user!= null && user.hasRight(userDB.Entry.BOOKMARK_RIGHT); final TreeSet bookmarks = new TreeSet(); if(isAdmin || isAuthUser) { - final String bmk_table = (isAuthUser ? user.getUserName() : YMarkTables.TABLE_BOOKMARKS_USER_ADMIN)+YMarkTables.TABLE_BOOKMARKS_BASENAME; - final String tag_table = (isAuthUser ? user.getUserName() : YMarkTables.TABLE_BOOKMARKS_USER_ADMIN)+YMarkTables.TABLE_TAGS_BASENAME; - final String folder_table = (isAuthUser ? user.getUserName() : YMarkTables.TABLE_BOOKMARKS_USER_ADMIN)+YMarkTables.TABLE_FOLDERS_BASENAME; - - if(post.containsKey(YMarkTables.TABLE_BOOKMARKS_COL_TAGS)) { - final String[] tagArray = YMarkTables.cleanTagsString(post.get(YMarkTables.TABLE_BOOKMARKS_COL_TAGS)).split(YMarkTables.TABLE_TAGS_SEPARATOR); + final String bmk_table = (isAuthUser ? user.getUserName() : YMarkTables.TABLE_BOOKMARKS_USER_ADMIN)+YMarkTables.TABLES.BOOKMARKS.basename(); + final String tag_table = (isAuthUser ? user.getUserName() : YMarkTables.TABLE_BOOKMARKS_USER_ADMIN)+YMarkTables.TABLES.TAGS.basename(); + final String folder_table = (isAuthUser ? user.getUserName() : YMarkTables.TABLE_BOOKMARKS_USER_ADMIN)+YMarkTables.TABLES.FOLDERS.basename(); + + if(post.containsKey(YMarkTables.BOOKMARK.TAGS.key())) { + tags = true; + final String[] tagArray = YMarkTables.cleanTagsString(post.get(YMarkTables.BOOKMARK.TAGS.key())).split(YMarkTables.TABLE_TAGS_SEPARATOR); try { bookmarks.addAll(sb.tables.bookmarks.getBookmarks(tag_table, tagArray)); } catch (IOException e) { @@ -41,10 +44,13 @@ public class get_ymark { } catch (RowSpaceExceededException e) { Log.logException(e); } - } else if(post.containsKey(YMarkTables.TABLE_BOOKMARKS_COL_FOLDERS)) { - final String[] folderArray = YMarkTables.cleanFoldersString(post.get(YMarkTables.TABLE_BOOKMARKS_COL_FOLDERS)).split(YMarkTables.TABLE_TAGS_SEPARATOR); - try { - bookmarks.retainAll(sb.tables.bookmarks.getBookmarks(folder_table, folderArray)); + } else if(post.containsKey(YMarkTables.BOOKMARK.FOLDERS.key())) { + final String[] folderArray = YMarkTables.cleanFoldersString(post.get(YMarkTables.BOOKMARK.FOLDERS.key())).split(YMarkTables.TABLE_TAGS_SEPARATOR); + try { + if(tags) + bookmarks.retainAll(sb.tables.bookmarks.getBookmarks(folder_table, folderArray)); + else + bookmarks.addAll(sb.tables.bookmarks.getBookmarks(folder_table, folderArray)); } catch (IOException e) { Log.logException(e); } catch (RowSpaceExceededException e) { @@ -70,15 +76,10 @@ public class get_ymark { try { bmk_row = sb.tables.select(bmk_table, urlHash); if (bmk_row != null) { - prop.putXML("bookmarks_"+count+"_id", new String(urlHash)); - prop.putXML("bookmarks_"+count+"_url", new String(bmk_row.get(YMarkTables.TABLE_BOOKMARKS_COL_URL,YMarkTables.TABLE_BOOKMARKS_COL_DEFAULT))); - prop.putXML("bookmarks_"+count+"_title", new String(bmk_row.get(YMarkTables.TABLE_BOOKMARKS_COL_TITLE,YMarkTables.TABLE_BOOKMARKS_COL_DEFAULT))); - prop.putXML("bookmarks_"+count+"_desc", new String(bmk_row.get(YMarkTables.TABLE_BOOKMARKS_COL_DESC,YMarkTables.TABLE_BOOKMARKS_COL_DEFAULT))); - prop.putXML("bookmarks_"+count+"_added", new String(bmk_row.get(YMarkTables.TABLE_BOOKMARKS_COL_DATE_ADDED,YMarkTables.TABLE_BOOKMARKS_COL_DEFAULT))); - prop.putXML("bookmarks_"+count+"_modified", new String(bmk_row.get(YMarkTables.TABLE_BOOKMARKS_COL_DATE_MODIFIED,YMarkTables.TABLE_BOOKMARKS_COL_DEFAULT))); - prop.putXML("bookmarks_"+count+"_visited", new String(bmk_row.get(YMarkTables.TABLE_BOOKMARKS_COL_DATE_VISITED,YMarkTables.TABLE_BOOKMARKS_COL_DEFAULT))); - prop.putXML("bookmarks_"+count+"_public", new String(bmk_row.get(YMarkTables.TABLE_BOOKMARKS_COL_PUBLIC,YMarkTables.TABLE_BOOKMARKS_COL_PUBLIC_FALSE))); - prop.putXML("bookmarks_"+count+"_tags", new String(bmk_row.get(YMarkTables.TABLE_BOOKMARKS_COL_TAGS,YMarkTables.TABLE_BOOKMARKS_COL_DEFAULT))); + prop.putXML("bookmarks_"+count+"_id", new String(urlHash)); + for (YMarkTables.BOOKMARK bmk : YMarkTables.BOOKMARK.values()) { + prop.putXML("bookmarks_"+count+"_"+bmk.key(), new String(bmk_row.get(bmk.key(),bmk.deflt()))); + } count++; } } catch (IOException e) { diff --git a/source/de/anomic/data/YMarkTables.java b/source/de/anomic/data/YMarkTables.java index 1fc17bf40..b721bab3c 100644 --- a/source/de/anomic/data/YMarkTables.java +++ b/source/de/anomic/data/YMarkTables.java @@ -13,34 +13,79 @@ import net.yacy.kelondro.index.RowSpaceExceededException; import net.yacy.kelondro.logging.Log; public class YMarkTables { + + public static enum TABLES { + BOOKMARKS ("_bookmarks"), + TAGS ("_tags"), + FOLDERS ("_folders"); + + private String basename; + + private TABLES(String b) { + this.basename = b; + } + public String basename() { + return this.basename; + } + public String tablename(String user) { + return user+this.basename; + } + } - public final static String TABLE_BOOKMARKS_BASENAME = "_bookmarks"; + public static enum PROTOCOL { + HTTP ("http://"), + HTTPS ("https://"); + + private String protocol; + + private PROTOCOL(String s) { + this.protocol = s; + } + public String protocol() { + return this.protocol; + } + public String protocol(String s) { + return this.protocol+s; + } + } + + public static enum BOOKMARK { + URL ("url", ""), + TITLE ("title", ""), + DESC ("desc", ""), + DATE_ADDED ("date_added", ""), + DATE_MODIFIED ("date_modified", ""), + DATE_VISITED ("date_visited", ""), + PUBLIC ("public", "flase"), + TAGS ("tags", "unsorted"), + VISITS ("visits", "0"), + FOLDERS ("folders", "/unsorted"); + + private String key; + private String dflt; + + private BOOKMARK(String k, String s) { + this.key = k; + this.dflt = s; + } + public String key() { + return this.key; + } + public String deflt() { + return this.dflt; + } + public byte[] b_deflt() { + return dflt.getBytes(); + } + } + public final static String TABLE_BOOKMARKS_LOG = "BOOKMARKS"; + public final static String TABLE_BOOKMARKS_COL_ID = "id"; public final static String TABLE_BOOKMARKS_USER_ADMIN = "admin"; public final static String TABLE_BOOKMARKS_USER_AUTHENTICATE = "AUTHENTICATE"; public final static String TABLE_BOOKMARKS_USER_AUTHENTICATE_MSG = "Authentication required!"; - public final static String TABLE_BOOKMARKS_URL_PROTOCOL_HTTP = "http://"; - public final static String TABLE_BOOKMARKS_URL_PROTOCOL_HTTPS = "https://"; - - public final static String TABLE_BOOKMARKS_COL_ID = "id"; - public final static String TABLE_BOOKMARKS_COL_URL = "url"; - public final static String TABLE_BOOKMARKS_COL_TITLE = "title"; - public final static String TABLE_BOOKMARKS_COL_DESC = "desc"; - public final static String TABLE_BOOKMARKS_COL_DATE_ADDED = "added"; - public final static String TABLE_BOOKMARKS_COL_DATE_MODIFIED = "modified"; - public final static String TABLE_BOOKMARKS_COL_DATE_VISITED = "visited"; - public final static String TABLE_BOOKMARKS_COL_PUBLIC = "public"; - public final static String TABLE_BOOKMARKS_COL_TAGS = "tags"; - public final static String TABLE_BOOKMARKS_COL_VISITS = "visits"; - public final static String TABLE_BOOKMARKS_COL_FOLDERS = "folders"; - public final static String TABLE_BOOKMARKS_COL_DEFAULT = ""; - public final static String TABLE_BOOKMARKS_COL_PUBLIC_TRUE = "true"; - public final static String TABLE_BOOKMARKS_COL_PUBLIC_FALSE = "false"; - public final static String TABLE_BOOKMARKS_COL_VISITS_ZERO = "0"; - - public final static String TABLE_TAGS_BASENAME = "_tags"; public final static String TABLE_TAGS_SEPARATOR = ","; public final static String TABLE_INDEX_COL_ID = "id"; @@ -49,8 +94,7 @@ public class YMarkTables { public final static String TABLE_INDEX_COL_URLS = "urls"; public final static short TABLE_INDEX_ACTION_ADD = 1; public final static short TABLE_INDEX_ACTION_REMOVE = 2; - - public final static String TABLE_FOLDERS_BASENAME = "_folders"; + public final static String TABLE_FOLDERS_SEPARATOR = "/"; public final static String TABLE_FOLDERS_ROOT = "/"; public final static String TABLE_FOLDERS_UNSORTED = "/unsorted"; @@ -75,7 +119,7 @@ public class YMarkTables { public final static byte[] keySetToBytes(final HashSet urlSet) { final Iterator urlIter = urlSet.iterator(); final - StringBuilder urls = new StringBuilder(); + StringBuilder urls = new StringBuilder(urlSet.size()*20); while(urlIter.hasNext()) { urls.append(TABLE_TAGS_SEPARATOR); urls.append(urlIter.next()); diff --git a/source/de/anomic/data/YMarksHTMLImporter.java b/source/de/anomic/data/YMarksHTMLImporter.java index 0f9dcbd31..df1d5428a 100644 --- a/source/de/anomic/data/YMarksHTMLImporter.java +++ b/source/de/anomic/data/YMarksHTMLImporter.java @@ -41,9 +41,9 @@ public class YMarksHTMLImporter extends HTMLEditorKit.ParserCallback { } public YMarksHTMLImporter(final WorkTables worktables, final String user, final String folder, final String tagsString) { - this.bmk_table = user + YMarkTables.TABLE_BOOKMARKS_BASENAME; - this.tag_table = user + YMarkTables.TABLE_TAGS_BASENAME; - this.folder_table = user + YMarkTables.TABLE_FOLDERS_BASENAME; + this.bmk_table = YMarkTables.TABLES.BOOKMARKS.tablename(user); + this.tag_table = YMarkTables.TABLES.TAGS.tablename(user); + this.folder_table = YMarkTables.TABLES.FOLDERS.tablename(user); this.worktables = worktables; if(folder.contains(YMarkTables.TABLE_TAGS_SEPARATOR)) @@ -71,19 +71,19 @@ public class YMarksHTMLImporter extends HTMLEditorKit.ParserCallback { if(!worktables.has(this.bmk_table, urlHash)) { // create and insert new entry final Data bmk = new Data(); - bmk.put(YMarkTables.TABLE_BOOKMARKS_COL_URL, this.href.getBytes()); - bmk.put(YMarkTables.TABLE_BOOKMARKS_COL_TITLE, (new String(data)).getBytes()); - bmk.put(YMarkTables.TABLE_BOOKMARKS_COL_DESC, YMarkTables.TABLE_BOOKMARKS_COL_DEFAULT.getBytes()); - bmk.put(YMarkTables.TABLE_BOOKMARKS_COL_PUBLIC, YMarkTables.TABLE_BOOKMARKS_COL_PUBLIC_FALSE.getBytes()); - bmk.put(YMarkTables.TABLE_BOOKMARKS_COL_VISITS, YMarkTables.TABLE_BOOKMARKS_COL_VISITS_ZERO.getBytes()); - bmk.put(YMarkTables.TABLE_BOOKMARKS_COL_DATE_ADDED, this.date_added.getBytes()); - bmk.put(YMarkTables.TABLE_BOOKMARKS_COL_DATE_MODIFIED, this.date_modified.getBytes()); - bmk.put(YMarkTables.TABLE_BOOKMARKS_COL_DATE_VISITED, this.date_visited.getBytes()); - bmk.put(YMarkTables.TABLE_BOOKMARKS_COL_FOLDERS, this.folder.getBytes()); + bmk.put(YMarkTables.BOOKMARK.URL.key(), this.href.getBytes()); + bmk.put(YMarkTables.BOOKMARK.TITLE.key(), (new String(data)).getBytes()); + bmk.put(YMarkTables.BOOKMARK.DESC.key(), YMarkTables.BOOKMARK.DESC.b_deflt()); + bmk.put(YMarkTables.BOOKMARK.PUBLIC.key(), YMarkTables.BOOKMARK.PUBLIC.b_deflt()); + bmk.put(YMarkTables.BOOKMARK.VISITS.key(), YMarkTables.BOOKMARK.VISITS.b_deflt()); + bmk.put(YMarkTables.BOOKMARK.DATE_ADDED.key(), this.date_added.getBytes()); + bmk.put(YMarkTables.BOOKMARK.DATE_MODIFIED.key(), this.date_modified.getBytes()); + bmk.put(YMarkTables.BOOKMARK.DATE_VISITED.key(), this.date_visited.getBytes()); + bmk.put(YMarkTables.BOOKMARK.FOLDERS.key(), this.folder.getBytes()); this.worktables.bookmarks.updateIndexTable(this.folder_table, this.folder, urlHash, YMarkTables.TABLE_INDEX_ACTION_ADD); Log.logInfo(YMarkTables.TABLE_BOOKMARKS_LOG, "YMarksHTMLImporter - folder: "+this.folder); if (this.tagsString != null) { - bmk.put(YMarkTables.TABLE_BOOKMARKS_COL_TAGS, this.tagsString.getBytes()); + bmk.put(YMarkTables.BOOKMARK.TAGS.key(), this.tagsString.getBytes()); for (final String tag : tagArray) { this.worktables.bookmarks.updateIndexTable(this.tag_table, tag, urlHash, YMarkTables.TABLE_INDEX_ACTION_ADD); }