aping-plugin-rss
Version:
RSS plugin for apiNG
8 lines • 2.57 kB
JavaScript
/**
@name: aping-plugin-rss
@version: 0.8.1 (14-09-2018)
@author: Jonathan Hornung
@url: https://github.com/JohnnyTheTank/apiNG-plugin-rss#readme
@license: MIT
*/
;angular.module("jtt_aping_rss",[]).directive("apingRss",["apingRssHelper","apingUtilityHelper","jsonloaderFactory",function(a,b,c){return{require:"?aping",restrict:"A",replace:"false",link:function(d,e,f,g){var h=g.getAppSettings(),i=b.parseJsonFromAttributes(f.apingRss,a.getThisPlatformString(),h);i.forEach(function(b){var d={model:h.model};angular.isDefined(h.getNativeData)?d.getNativeData=h.getNativeData:d.getNativeData=!1,"false"===b.parseImage||b.parseImage===!1?d.parseImage=!1:d.parseImage=!0;var e={};return angular.isDefined(b.items)?d.items=b.items:d.items=h.items,0!==d.items&&"0"!==d.items&&("http"===b.protocol||"https"===b.protocol?e.protocol=b.protocol+"://":"http"===h.protocol||"https"===h.protocol?e.protocol=h.protocol+"://":e.protocol="//",b.path&&(e.path=e.protocol+"api.rss2json.com/v1/api.json?rss_url="+b.path),(e.num<0||isNaN(e.num))&&(e.num=void 0),void c.getJsonData(e).then(function(b){b&&g.concatToResults(a.getObjectByJsonData(b,d))}))})}}}]),angular.module("jtt_aping_rss").service("apingRssHelper",["apingModels","apingTimeHelper","apingUtilityHelper",function(a,b,c){this.getThisPlatformString=function(){return"rss"},this.getObjectByJsonData=function(a,b){var c=[];if(a&&a.data&&a.data.items){var d,e=this;angular.forEach(a.data.items,function(f,g){("undefined"==typeof b.items||c.length<b.items)&&(b.getNativeData===!0||"true"===b.getNativeData?d=f:(f.blog_link=a.data.feed.link||a.data.feed.feedUrl||void 0,f.blog_author=a.data.feed.author||a.data.feed.title||void 0,d=e.getItemByJsonData(f,b)),d&&c.push(d))})}return c},this.getItemByJsonData=function(a,b){var c={};if(a&&b.model)switch(b.model){case"social":c=this.getSocialItemByJsonData(a,b);break;case"native":case"rss":c=a;break;default:return!1}return c},this.getSocialItemByJsonData=function(b,d){var e=a.getNew("social",this.getThisPlatformString());if(angular.extend(e,{blog_name:b.blog_author||void 0,blog_link:b.blog_link||void 0,post_url:b.link||void 0,source:b.categories&&b.categories.length>0?b.categories:void 0}),b.content?(e.text=c.getTextFromHtml(b.content),e.caption=b.title||void 0):e.text=b.title||void 0,b.content&&d.parseImage){var f=c.getFirstImageFromHtml(b.content);f&&f.length>1&&(e.img_url=f[1],e.thumb_url=f[1],e.native_url=f[1])}return e.date_time=b.pubDate?new Date(b.pubDate):void 0,e.timestamp=e.date_time?e.date_time.getTime():void 0,e}}]);