Mercurial > ambnews-firefox
diff ambnews/content/blank.js @ 1:44bcb4975ead
Added more files.
| author | Atul Varma <varmaa@toolness.com> |
|---|---|
| date | Thu, 21 Aug 2008 15:39:57 -0700 |
| parents | |
| children | ec86d1e59d44 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/ambnews/content/blank.js Thu Aug 21 15:39:57 2008 -0700 @@ -0,0 +1,79 @@ +function loadNews() { + var Cc = Components.classes; + var Ci = Components.interfaces; + var historyService = Cc["@mozilla.org/browser/nav-history-service;1"] + .getService(Ci.nsINavHistoryService); + + // no query parameters will get all history + // XXX default sorting is... ? + var options = historyService.getNewQueryOptions(); + + options.resultType = options.RESULTS_AS_URI; + options.sortingMode = options.SORT_BY_VISITCOUNT_DESCENDING; + + // no query parameters will return everything + var query = historyService.getNewQuery(); + query.annotation = "AmbNews/feed"; + + // execute the query + var result = historyService.executeQuery(query, options); + + var root = result.root; + root.containerOpen = true; + + var childNum = 0; + var childrenShown = 0; + var maxChildrenToShow = 20; + var shownFeeds = {}; + + function getNextFeed() { + if (childrenShown == maxChildrenToShow || + childNum == root.childCount) { + root.containerOpen = false; + } else { + var annSvc = AmbNews.__getAnnSvc(); + var child = root.getChild(childNum); + var feedUri = annSvc.getPageAnnotation(AmbNews.url(child.uri), + "AmbNews/feed"); + childNum++; + if (feedUri in shownFeeds) { + getNextFeed(); + } else { + shownFeeds[feedUri] = true; + childrenShown++; + AmbNews.getFeed(feedUri, onFeed); + } + } + } + + function onFeed(feed) { + var text = ""; + if (feed) { + var entriesToShow = 4; + if (feed.entries.length < entriesToShow) + entriesToShow = feed.entries.length; + var feedLink = feed.link ? feed.link.spec : ""; + text += ('<div class="feed"><div class="feed-title"><a ' + + 'href="' + feedLink + '">' + + feed.title.text + '</a></div><ul>'); + for (var i = 0; i < entriesToShow; i++) { + var entryTitle = feed.entries[i].title.text; + if (entryTitle.length > 100) { + entryTitle = entryTitle.slice(0, 100) + '\u2026'; + } + text += ('<li class="feed-entry"> \u00b7 <a href="' + + feed.entries[i].link.spec + + '">' + + entryTitle + '</a></li>'); + } + text += '</ul></div>'; + } else + text = "An error occurred."; + //$("#content").append(text); + $(text).hide().fadeIn("slow", getNextFeed).appendTo("#content"); + } + + getNextFeed(); +} + +$(window).ready(loadNews);
