Advertisement
Ladies_Man

generate_feed (old)

Aug 19th, 2015
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var img_store = [];
  2.  
  3. function add_images() {
  4.     for (var key in img_store) {
  5.         console.log(key + ', src:' + img_store[key]);
  6.         document.getElementById(key.toString()).src = img_store[key];
  7.         document.getElementById(key.toString()).style.width = "160px";
  8.         document.getElementById(key.toString()).style.marginLeft = "auto";
  9.     }
  10.     console.log('all images has beed added');
  11. }
  12.  
  13. function generate_feed(xml) {
  14.     var items = xml.getElementsByTagName("item");
  15.  
  16.     var doc = document.implementation.createHTMLDocument("New Document");
  17.     var i, el = doc.createElement('html');
  18.     el.innerHTML = "<html><head><title>ES CA</title></head><body></body></html>";
  19.    
  20.     var mark = 0;
  21.     for (i = 0; i < items.length; i++) {
  22.         var div = document.createElement("div");
  23.         div.className = "block";
  24.        
  25.         var inner_cat = document.createElement("div");
  26.         inner_cat.className = "cat";
  27.         inner_cat.innerHTML = $(items[i]).find("category").html();
  28.         div.appendChild(inner_cat);
  29.        
  30.         var inner_date = document.createElement("div");
  31.         inner_date.className = "date";
  32.         var pub_date = $(items[i]).find("pubDate").html();
  33.         var date = new Date(pub_date);
  34.         var months = Array("January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December");
  35.         var string = date.getDate() + " " + months[date.getMonth()];
  36.         inner_date.innerHTML = string;
  37.        
  38.         div.appendChild(inner_date);
  39.        
  40.         var inner_img = document.createElement("img");
  41.         inner_img.className = "prev";
  42.         inner_img.id = $(items[i]).find("enclosure").attr('length');
  43.         inner_img.src = 'images/prev_load2_std.GIF';
  44.         inner_img.style.width = "64px";
  45.         inner_img.style.marginLeft = "148px";
  46.         var img_src = $(items[i]).find("enclosure").attr('url');
  47.        
  48.         var xhr = new XMLHttpRequest();
  49.         xhr.open('GET', img_src, true);
  50.         xhr.responseType = 'blob';
  51.         xhr.send();
  52.         xhr.onload = function(e) {
  53.             if (200 == this.status) {
  54.                 inner_img.src = window.URL.createObjectURL(this.response);
  55.                 console.log("XHR[" + mark + "]" + inner_img.src);
  56.                 img_store[this.getResponseHeader('Content-Length')] = inner_img.src;
  57.                 if (mark >= (items.length - 3)) {
  58.                     console.log('mark:' + mark);
  59.                     add_images();
  60.                 }
  61.                 mark++;
  62.             }
  63.         }
  64.         div.appendChild(inner_img);
  65.        
  66.         var inner_title = document.createElement("div");
  67.         inner_title.className = "tit";
  68.         inner_title.innerHTML = $(items[i]).find("title").html();
  69.         div.appendChild(inner_title);
  70.        
  71.         var inner_descr = document.createElement("div");
  72.         inner_descr.className = "dsc";
  73.         inner_descr.innerHTML = $(items[i]).find("description").html();
  74.         div.appendChild(inner_descr);
  75.        
  76.         var inner_br = document.createElement("br");
  77.         inner_descr.appendChild(inner_br);
  78.        
  79.         var inner_link = document.createElement("a");
  80.         inner_link.className = "lnk";
  81.         inner_link.href = $(items[i]).find("link").html();
  82.         if (-1 != inner_link.href.indexOf("game") || -1 != inner_link.href.indexOf("thrones") || -1 != inner_link.href.indexOf("prestol")) {
  83.             div.style.backgroundColor = "#FF9933";
  84.             inner_img.src = 'images/prev_load2_spec.GIF';
  85.         }
  86.         inner_link.target = "_blank";
  87.         inner_link.innerHTML = "Read more";
  88.         inner_descr.appendChild(inner_link);
  89.        
  90.        
  91.         el.getElementsByTagName('body')[0].appendChild(div);
  92.     }
  93.     console.log("mark:" + mark);
  94.    
  95.    
  96.     string = JSON.stringify(el.getElementsByTagName("body")[0].innerHTML);
  97.     string = string.replace(/<!--\[CDATA\[/g, '').replace(/\]\]-->/g, '');
  98.     console.log('stringified:' + string);
  99.     return string;
  100. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement