small changes to new bookmark code...

git-svn-id: https://svn.berlios.de/svnroot/repos/yacy/trunk@7265 6c8d7289-2bf4-0310-a012-ef5d649a1542
pull/1/head
apfelmaennchen 15 years ago
parent 244b56e9d3
commit 9c94ebdee4

@ -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<String> oldSet;
HashSet<String>newSet;
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);

@ -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);

@ -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<String> bookmarks = new TreeSet<String>();
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) {

@ -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<String> urlSet) {
final Iterator<String> 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());

@ -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);
}

Loading…
Cancel
Save