Advertisement
Guest User

Untitled

a guest
Jan 31st, 2015
214
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var scrollStream = Rx.Observable.fromEvent(document, 'scroll').startWith(0).throttle(1000);
  2. var timerStream = Rx.Observable.interval(4000).startWith(0).map(function (ev) {
  3.   var parent = document.querySelector('#ozfeed');
  4.   var parentOffset = parent.offsetTop;
  5.   while(parent.offsetParent) {
  6.     parent = parent.offsetParent;
  7.   }
  8.   var positions = Immutable.Seq(Array.prototype.slice.call(document.querySelectorAll('li.feed-update')))
  9.     .map(function ($el) {
  10.       return {
  11.         top: parentOffset + $el.offsetTop,
  12.         height: $el.clientHeight,
  13.         html: $el.innerHTML
  14.       };
  15.     });
  16.   return positions;
  17. });
  18. var combinedStream = scrollStream.combineLatest(timerStream, function (a, b) {
  19.   var filterCB = function (el) {
  20.     var top = window.pageYOffset - window.innerHeight * 0.2;
  21.     var height = window.innerHeight + window.innerHeight * 0.4;
  22.     return (el.top > top) && (el.top + el.height < top + height);
  23.   };
  24.   return b.filter(filterCB).map(function (a) {return a.html;}).toArray();
  25. }).distinct();
  26. combinedStream.subscribe(function (a) {
  27.   chrome.runtime.sendMessage({
  28.     type: 'xhr',
  29.     data: a
  30.   });
  31. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement