Advertisement
Guest User

Internet Archive directory listing searcher 1.0

a guest
Sep 11th, 2023
13
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
JavaScript 1.84 KB | Source Code | 0 0
  1. /* Internet Archive directory listing searcher */
  2.  
  3. if(document.location.pathname.search("/download/") == 0) /* if directory listing viewed */ {
  4.     var listing = document.getElementsByClassName("download-directory-listing")[0];
  5.  
  6.     // create search bar in memory before inserting
  7.     var search_input = document.createElement("input");
  8.     search_input.placeholder="search files";
  9.     search_input.onkeyup=search_list;
  10.     search_input.style.marginRight="1em";
  11.  
  12.     // create search result counter in memory before inserting
  13.     var result_counter = document.createElement("span");   
  14.  
  15.     var listing_hr = listing.getElementsByTagName("hr")[0];
  16.     listing.insertBefore(search_input, listing_hr); // insert search bar into page
  17.     listing.insertBefore(result_counter, listing_hr); // insert result counter into page
  18.  
  19.     var list_items = document.getElementsByTagName("tr");
  20.     var count = 0; // initialize counter for "for" loops
  21.     var result_count = 0; // initialize result counter
  22.  
  23. }
  24.  
  25. function search_list() {
  26.     result_count = 0; // reset result counter
  27.     search_input.setAttribute("value",search_input.value); // compatibility
  28.     for (count=2 /* skip "go to parent directory" */; count < list_items.length; count++) {
  29.         // convert to case-insensitive
  30.         var content_case_insensitive=list_items[count].innerHTML.toLowerCase();
  31.         var search_case_insensitive = search_input.value.toLowerCase();
  32.  
  33.         // perform search
  34.         if (content_case_insensitive.search(search_case_insensitive)<0) /* if no match */ {
  35.             list_items[count].style.display="none"; /* hide */
  36.         } else {
  37.             list_items[count].style.display=""; // fall back to original CSS by resetting to undefined
  38.             result_count++; // count results
  39.             }
  40.     }
  41.     result_counter.innerHTML = result_count;
  42.     if (result_count == 1) result_counter.innerHTML += " result"; // singular
  43.         else result_counter.innerHTML += " results"; // plural
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement