Advertisement
Ladies_Man

export done

Aug 19th, 2015
178
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. (function() {
  2.     var text = "";
  3.     var saved_file_entry, file_display_path;   
  4.    
  5.     function get_data_as_text() {
  6.         var rss_url = "http://lenta.ru/rss";
  7.         var xhr = new XMLHttpRequest();
  8.         xhr.open("GET", rss_url, true);
  9.         xhr.send(null);
  10.         xhr.onreadystatechange = function() {
  11.             if (4 == xhr.readyState && 200 == xhr.status) {
  12.                 /*var items = xhr.ResponseXML.getElementsByTagName("item");
  13.                 for (var i = 0; i < items.length; i++) {
  14.                     text += $(items[i]).find("title").html() + '\n';
  15.                     text += '\t' + $(items[i]).find("description").html() + '\n';
  16.                     text += '\n';
  17.                 }*/
  18.                 var xml = xhr.responseXML;
  19.                 var items = xml.getElementsByTagName("item");
  20.                 for (var i = 0; i < items.length; i++) {
  21.                     text += $(items[i]).find("title").html() + '\n';
  22.                     text += '\t' + $(items[i]).find("description").html() + '\n';
  23.                     text += '\n';
  24.                     for (j = 0; j < 70; j++) text += "=";
  25.                     text += '\n';
  26.                 }
  27.                
  28.                
  29.                
  30.                 text = text.replace(/<!\[CDATA\[/g, '').replace(/\]\]>/g, '');
  31.                 return true;
  32.                
  33.             }
  34.         }
  35.        
  36.         return true;
  37.     }
  38.    
  39.     function save_to_entry() {
  40.         currentEntry = text;
  41.  
  42.         var blob = new Blob([text], {type: 'text/plain'});
  43.         currentEntry.createWriter(function(writer) {
  44.             writer.onwrite = function() {
  45.                 writer.onwrite = null;
  46.                 writer.write(blob);
  47.             }
  48.             writer.truncate(blob.size);
  49.         });
  50.     }
  51.    
  52.    
  53.    
  54.    
  55.     var savedFileEntry, fileDisplayPath;
  56.    
  57.     function getTodosAsText(callback) {
  58.         //var text = "lorem ipsum dolor sit amet";
  59.         callback(text);
  60.     }
  61.  
  62.     function exportToFileEntry(fileEntry) {
  63.         savedFileEntry = fileEntry;
  64.  
  65.         var status = document.getElementById('status');
  66.  
  67.         // Use this to get a file path appropriate for displaying
  68.         chrome.fileSystem.getDisplayPath(fileEntry, function(path) {
  69.             fileDisplayPath = path;
  70.             status.innerText = 'Exporting to '+path;
  71.         });
  72.  
  73.         getTodosAsText( function(contents) {
  74.  
  75.             fileEntry.createWriter(function(fileWriter) {
  76.  
  77.             var truncated = false;
  78.             var blob = new Blob([contents]);
  79.  
  80.             fileWriter.onwriteend = function(e) {
  81.                 if (!truncated) {
  82.                     truncated = true;
  83.                     // You need to explicitly set the file size to truncate
  84.                     // any content that might have been there before
  85.                     this.truncate(blob.size);
  86.                     return;
  87.                 }
  88.                 status.innerText = 'Export to '+fileDisplayPath+' completed';
  89.             };
  90.  
  91.             fileWriter.onerror = function(e) {
  92.                 status.innerText = 'Export failed: '+e.toString();
  93.             };
  94.  
  95.             fileWriter.write(blob);
  96.  
  97.             });
  98.         });
  99.     }
  100.  
  101.     function doExportToDisk() {
  102.         if (savedFileEntry) {
  103.  
  104.             exportToFileEntry(savedFileEntry);
  105.  
  106.         } else {
  107.  
  108.             chrome.fileSystem.chooseEntry( {
  109.                 type: 'saveFile',
  110.                 suggestedName: 'todos.txt',
  111.                 accepts: [ { description: 'Text files (*.txt)',
  112.                        extensions: ['txt']} ],
  113.                 acceptsAllTypes: true
  114.             }, exportToFileEntry);
  115.  
  116.         }
  117.     }
  118.    
  119.     document.getElementById("export").addEventListener("click", function() {
  120.         if (true == get_data_as_text()) {
  121.             doExportToDisk();
  122.         }
  123.     });
  124.    
  125. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement