Author: sparky
Date: Tue Dec 15 01:53:39 2009
New Revision: 11044

Modified:
   toys/rsget.pl/README
   toys/rsget.pl/rsget.pl.user.js
Log:
- use containsNode function to check for selected nodes - fixes many problems


Modified: toys/rsget.pl/README
==============================================================================
--- toys/rsget.pl/README        (original)
+++ toys/rsget.pl/README        Tue Dec 15 01:53:39 2009
@@ -11,7 +11,10 @@
 - Fix freezing http server - move to separate thread/process ?
 - Fix bugs in http server, and speed it up.
 - Better file writing methods, to allow downloading from multiple sources.
-- Backoff if captcha fails too many times; lower prio.
+- Backoff if captcha fails too many times; lower uri prio.
+- If multi-download problem appears while checking files force check on
+  another interface/ip.
+- Posibility to mark uri as "cannot continue".
 
 Planned features:
 - Multiuser support (may require major changes in the code).

Modified: toys/rsget.pl/rsget.pl.user.js
==============================================================================
--- toys/rsget.pl/rsget.pl.user.js      (original)
+++ toys/rsget.pl/rsget.pl.user.js      Tue Dec 15 01:53:39 2009
@@ -146,9 +146,12 @@
        }
 }
 
-function crawl_nodes( links, node, end )
+function crawl_nodes( links, node, selection )
 {
-       while ( node != end ) {
+       while ( node ) {
+               if ( selection.containsNode( node, false ) )
+                       push_from_node( links, node );
+
                if ( node.firstChild ) {
                        node = node.firstChild;
                } else if ( node.nextSibling ) {
@@ -156,14 +159,11 @@
                } else {
                        do {
                                node = node.parentNode;
-                               if ( node == end )
+                               if ( ! node )
                                        return;
                        } while ( !node.nextSibling );
                        node = node.nextSibling;
                }
-               if ( node == end )
-                       return;
-               push_from_node( links, node );
        }
 }
 
@@ -174,14 +174,20 @@
        var sel_text;
        try {
                selection = window.getSelection();
-               sel_text = selection.toString()
+               sel_text = selection.toString();
                range = selection.getRangeAt( 0 );
        } catch ( e ) {};
        var links = new Array;
 
 
        if ( !range || range.collapsed ) {
-               crawl_nodes( links, docbody(), document );
+               crawl_nodes( links, docbody(),
+                       {
+                               containsNode: function ( node, flag ) {
+                                       return true;
+                               } 
+                       }
+               );
                if ( selection ) {
                        selection.selectAllChildren( docbody() );
                        sel_text = selection.toString();
@@ -192,14 +198,16 @@
                var end = range.endContainer;
                
                if ( start == end ) {
-                       push_from_text( links, start.nodeValue.substring( 
range.startOffset, range.endOffset ) );
+                       push_from_text( links,
+                               start.nodeValue.substring( range.startOffset, 
range.endOffset )
+                       );
                } else {
                        if ( start.nodeName == 'A' ) {
                                push_a_href( links, start );
                        } else if ( start.nodeName == '#text' && 
start.nodeValue ) {
                                push_from_text( links, start.nodeValue.substr( 
range.startOffset ) );
                        }
-                       crawl_nodes( links, start, end );
+                       crawl_nodes( links, start, selection );
                        if ( end.nodeName == 'A' ) {
                                push_a_href( end );
                        } else if ( end.nodeName == '#text' && end.nodeValue) {
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to