View the DQSD CVS repository here:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/dqsd/
Update of /cvsroot/dqsd/dqsd/addons/bookmarks
In directory usw-pr-cvs1:/tmp/cvs-serv30818/addons/bookmarks
Modified Files:
bmmz.xml bmns4.xml bmya.xml bookmarks_lib.js
Log Message:
updated netscape parser to use IE html dom instead of homegrown parser
updated netscape parser to take page url instead of page source
Index: bmmz.xml
===================================================================
RCS file: /cvsroot/dqsd/dqsd/addons/bookmarks/bmmz.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** bmmz.xml 27 Sep 2002 06:27:44 -0000 1.1
--- bmmz.xml 28 Sep 2002 06:14:31 -0000 1.2
***************
*** 58,63 ****
bookmarks_full_path = bookmarks_mozilla_location + "\\" + user_file;
}
! var bookmarks_page = bookmarks_get_file(bookmarks_full_path);
! mozilla_bookmarks_array =
bookmarks_get_bookmarks_array_from_netscape(bookmarks_page);
}
bookmarks_show_menu(mozilla_bookmarks_array);
--- 58,62 ----
bookmarks_full_path = bookmarks_mozilla_location + "\\" + user_file;
}
! mozilla_bookmarks_array =
bookmarks_get_bookmarks_array_from_netscape(bookmarks_full_path);
}
bookmarks_show_menu(mozilla_bookmarks_array);
Index: bmns4.xml
===================================================================
RCS file: /cvsroot/dqsd/dqsd/addons/bookmarks/bmns4.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** bmns4.xml 27 Sep 2002 06:27:44 -0000 1.1
--- bmns4.xml 28 Sep 2002 06:14:31 -0000 1.2
***************
*** 54,59 ****
var bookmarks_full_path = bmk_location+"\\"+bmk_profile+"\\"+bmk_file;
! var bookmarks_page = bookmarks_get_file(bookmarks_full_path);
! netscape4_bookmarks_array =
bookmarks_get_bookmarks_array_from_netscape(bookmarks_page);
}
bookmarks_show_menu(netscape4_bookmarks_array);
--- 54,58 ----
var bookmarks_full_path = bmk_location+"\\"+bmk_profile+"\\"+bmk_file;
! netscape4_bookmarks_array =
bookmarks_get_bookmarks_array_from_netscape(bookmarks_full_path);
}
bookmarks_show_menu(netscape4_bookmarks_array);
Index: bmya.xml
===================================================================
RCS file: /cvsroot/dqsd/dqsd/addons/bookmarks/bmya.xml,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** bmya.xml 27 Sep 2002 06:27:44 -0000 1.1
--- bmya.xml 28 Sep 2002 06:14:31 -0000 1.2
***************
*** 40,50 ****
if (yahoo_bookmarks_array == null) {
var bmk_location = (typeof bookmarks_yahoo_location != "undefined" &&
bookmarks_yahoo_location != "") ? bookmarks_yahoo_location :
"http://e.my.yahoo.com/config/export_bookmark?.commit=1";
! var bookmarks_page = "";
! if (bmk_location.match(/\:\/\//)) {
! bookmarks_page = bookmarks_get_webpage(bmk_location);
! } else {
! bookmarks_page = bookmarks_get_file(bmk_location);
! }
! yahoo_bookmarks_array =
bookmarks_get_bookmarks_array_from_netscape(bookmarks_page);
}
bookmarks_show_menu(yahoo_bookmarks_array);
--- 40,44 ----
if (yahoo_bookmarks_array == null) {
var bmk_location = (typeof bookmarks_yahoo_location != "undefined" &&
bookmarks_yahoo_location != "") ? bookmarks_yahoo_location :
"http://e.my.yahoo.com/config/export_bookmark?.commit=1";
! yahoo_bookmarks_array =
bookmarks_get_bookmarks_array_from_netscape(bmk_location);
}
bookmarks_show_menu(yahoo_bookmarks_array);
Index: bookmarks_lib.js
===================================================================
RCS file: /cvsroot/dqsd/dqsd/addons/bookmarks/bookmarks_lib.js,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** bookmarks_lib.js 27 Sep 2002 06:27:44 -0000 1.1
--- bookmarks_lib.js 28 Sep 2002 06:14:31 -0000 1.2
***************
*** 1,2 ****
--- 1,3 ----
+
function bookmarks_get_webpage(webpage_url, cache_file_name, refresh_time)
{
***************
*** 32,48 ****
var fc, ff;
fc = new Enumerator(folder.SubFolders);
for (; !fc.atEnd(); fc.moveNext()) {
! var arr_item = "";
! for (var j=0; j < level; j++) {
! arr_item += "\t";
! }
! arr_item += "Folder";
! arr_item += "\t";
! arr_item += fso.GetBaseName(fc.item());
! bookmarks_array.push(arr_item);
bookmarks_process_ie_favorites_folder(fso, fc.item(), bookmarks_array,
level+1);
}
ff = new Enumerator(folder.Files);
for (; !ff.atEnd(); ff.moveNext()) {
--- 33,47 ----
var fc, ff;
+ // add folders
fc = new Enumerator(folder.SubFolders);
for (; !fc.atEnd(); fc.moveNext()) {
! var folderName = fso.GetBaseName(fc.item());
!
! bookmarks_array.push(bookmarks_build_arr_item(folderName, 'Folder',
level));
!
bookmarks_process_ie_favorites_folder(fso, fc.item(), bookmarks_array,
level+1);
}
+ // add bookmarks
ff = new Enumerator(folder.Files);
for (; !ff.atEnd(); ff.moveNext()) {
***************
*** 50,78 ****
continue;
}
! var objTextStream = fso.OpenTextFile (ff.item(), fsoForReading);
! var cur_url = ff.item();
while (!objTextStream.AtEndOfStream) {
var line = objTextStream.ReadLine();
var url_results = url_regexp.exec(line);
if (url_results != null) {
! cur_url = url_results[1];
break;
}
}
!
! var arr_item = "";
! for (var j=0; j < level; j++) {
! arr_item += "\t";
! }
! arr_item += cur_url;
! arr_item += "\t";
! arr_item += fso.GetBaseName(ff.item());
! bookmarks_array.push(arr_item);
}
}
!
! function bookmarks_get_bookmarks_array_from_netscape(webpage_source)
{
// tokenize the page
var parsed_items = new Array();
--- 49,76 ----
continue;
}
! var bookmarkName = fso.GetBaseName(ff.item());
! var objTextStream = fso.OpenTextFile(ff.item(), fsoForReading);
! var bookmarkUrl = ff.item();
while (!objTextStream.AtEndOfStream) {
var line = objTextStream.ReadLine();
var url_results = url_regexp.exec(line);
if (url_results != null) {
! bookmarkUrl = url_results[1];
break;
}
}
! bookmarks_array.push(bookmarks_build_arr_item(bookmarkName,
bookmarkUrl, level));
}
}
! function bookmarks_get_bookmarks_array_from_netscape_old(webpage_url)
{
+ var webpage_source = '';
+ if (webpage_url.match(/\:\/\//)) {
+ webpage_source = bookmarks_get_webpage(webpage_url);
+ } else {
+ webpage_source = bookmarks_get_file(webpage_url);
+ }
+
// tokenize the page
var parsed_items = new Array();
***************
*** 180,192 ****
// text
if (state == 1 || state == 2) {
! var arr_item = "";
! for (var j=0; j < level; j++) {
! arr_item += "\t";
! }
! arr_item += cur_href;
! arr_item += "\t";
! arr_item += cur_item.replace("&", "and");
! //alert(""+level+", "+cur_item);
! arr[arr_count++] = arr_item;
}
}
--- 178,182 ----
// text
if (state == 1 || state == 2) {
! arr.push(bookmarks_build_arr_item(cur_item, cur_href,
level));
}
}
***************
*** 199,202 ****
--- 189,287 ----
}
+ function bookmark_netscape_parse_folder(folder_element, bookmarks_array, level)
+ {
+ if (typeof folder_element == "undefined" || folder_element.tagName != "DL") {
+ return;
+ }
+ var i=0;
+ /*
+ // load all folders and bookmarks in the order they're in the file
+ // faster but not as nice as having folders first and then bookmarks
+ for (i=0; i < folder_element.children.length; i++) {
+ var folderChild = folder_element.children[i];
+ if (folderChild.tagName != "DT")
+ continue;
+
+ var folderType = folderChild.children[0];
+ if (folderType.tagName == 'H3') {
+ var folderName = folderType.innerText;
+
+ bookmarks_array.push(bookmarks_build_arr_item(folderName,
+'Folder', level));
+
+ var folderDLNode = folderChild.children[1];
+ bookmark_netscape_parse_folder(folderDLNode, bookmarks_array,
+level+1);
+ } else if (folderType.tagName == 'A') {
+ var bookmarkName = folderType.innerText;
+ var bookmarkHref = folderType.getAttribute("HREF");
+
+ bookmarks_array.push(bookmarks_build_arr_item(bookmarkName,
+bookmarkHref, level));
+ }
+ }
+ */
+ // add folders first and then bookmarks
+ for (i=0; i < folder_element.children.length; i++) {
+ var folderChild = folder_element.children[i];
+ if (folderChild.tagName != "DT")
+ continue;
+ var folderNode = folderChild.children[0];
+ if (folderNode.tagName != "H3")
+ continue;
+
+ var folderName = folderNode.innerText;
+
+ bookmarks_array.push(bookmarks_build_arr_item(folderName, 'Folder',
+level));
+
+ var folderDLNode = folderChild.children[1];
+ bookmark_netscape_parse_folder(folderDLNode, bookmarks_array, level+1);
+ }
+ for (i=0; i < folder_element.children.length; i++) {
+ var folderChild = folder_element.children[i];
+ if (folderChild.tagName != "DT")
+ continue;
+ var bookmarkNode = folderChild.children[0];
+ if (bookmarkNode.tagName != "A")
+ continue;
+
+ var bookmarkName = bookmarkNode.innerText;
+ var bookmarkHref = bookmarkNode.getAttribute("HREF");
+
+ bookmarks_array.push(bookmarks_build_arr_item(bookmarkName,
+bookmarkHref, level));
+ }
+ }
+
+ function bookmarks_build_arr_item(name, href, level)
+ {
+ var arr_item = "";
+ for (var j=0; j < level; j++) {
+ arr_item += "\t";
+ }
+ arr_item += href;
+ arr_item += "\t";
+ arr_item += name.replace("&", "and");
+ return arr_item;
+ }
+
+
+ function bookmarks_get_bookmarks_array_from_netscape(webpage_url)
+ {
+ if (typeof bookmarks_netscape_use_old_method != "undefined" &&
+bookmarks_netscape_use_old_method == true) {
+ return bookmarks_get_bookmarks_array_from_netscape_old(webpage_url);
+ }
+ var ie_obj = new ActiveXObject("InternetExplorer.Application");
+ ie_obj.visible = false;
+ ie_obj.silent = true;
+ ie_obj.navigate(webpage_url);
+ while(ie_obj.busy);
+ var bmkStartFolder = ie_obj.document.documentElement.children[1].children[1];
+// BODY/DL
+ var bookmarks_array = new Array();
+ var level = 0;
+
+ bookmark_netscape_parse_folder(bmkStartFolder, bookmarks_array, level);
+ ie_obj.quit();
+ ie_obj = null;
+ return bookmarks_array;
+ }
+
+
function bookmarks_get_menu(bookmarks_array)
{
***************
*** 245,247 ****
}
! }
\ No newline at end of file
--- 330,332 ----
}
! }
-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
DQSD-CVS mailing list
https://lists.sourceforge.net/lists/listinfo/dqsd-cvs
DQSD CVS repository:
http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/dqsd/