スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

雑記:FC2ブログをSSL化してもつかえるRSS

折角作ったので公開してみます
コードが雑なのは大目にみてください
* FC2ブログ以外のRSSも読めるように修正しました(2017/12/14 21:00)
* RSS1.0 と RSS2.0 が混在している時にソートが正常に働かない問題を修正しました (2017/12/15 18:00)
* アクセス数の上限を修正しました (2017/12/17 13:30)

************************************
れあどめ

1. 下記をコピペ

2. >RSSを読みたいサイトの「RSSへのurl」、「サイトurl 」、「サイト名」を記述
というところを自分のブログに合わせて変更

注意事項

A. 1日10万アクセスのブログだと動かない(2,000アクセス/時 が上限)

B. キャッシュの関係で最新のRSSが取得できない(最長1日くらいラグがあるかも)

C. ちょっと重いかも

D. IE8以前だと動かない

E. デザインは自分でCSSを編集する必要あり

参考ページ:
>https://qiita.com/nyatto/items/94c3f7cac14e8e8ef50f
>https://qiita.com/kaz-h/items/15b8a661feaa90134c75
************************************


<div id="feed">
<ul></ul>
</div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script>
<script type="text/javascript">
$(function() {

//rssを読みたいサイトの「RSSへのurl」、「サイトurl 」、「サイト名」を記述
var sitexmls = ['http://fuyutuki703.blog.fc2.com/?xml', 'http://saijoss.com/feed', 'http://www.loudist.jp/?feed=rss2'];
var siteurls = ['http://fuyutuki703.blog.fc2.com', 'http://saijoss.com', 'http://www.loudist.jp']
var sitenames = ['チラシの裏の読書感想文', '最上のSS感想', '青い鳥捕獲部'];

//rss取得数
var rssnum = 30;

//1サイトの表示上限
var limit = 5;

var out = [];
var xmls = '(';
for(var i = 0; i < sitexmls.length; i++) {
xmls = xmls + "'" + sitexmls[i] + "'";
if (i < sitexmls.length - 1) {
xmls = xmls + ',';
}
}
xmls = xmls + ')';

$.getJSON("https://query.yahooapis.com/v1/public/yql?callback=?", {
q: `select * from rss(${rssnum}) where url in ${xmls}`,
format: "json"
}, function (json) {

var count = new Array(siteurls.length);
for (var i = 0; i < count.length; i++) {
count[i] = 0;
}

for(var i in json.query.results.item){
var entry = json.query.results.item[i];
var link = entry.link;
var title = entry.title;

var pos = siteurls.indexOf(link.slice(0, link.indexOf('/', 7)));
var name = sitenames[pos];

count[pos]++;
if(count[pos] < limit) {

//RSS1.0と2.0の違いを吸収
if(entry.pubDate) {
var date = new Date(entry.pubDate);
} else {
var date = new Date(entry.date);
}

//日付取り出し
var mm = ('0' + (date.getMonth() + 1)).slice(-2);
var dd = ('0' + date.getDate()).slice(-2);
var hh = ('0' + date.getHours()).slice(-2);
var mi = ('0' + date.getMinutes()).slice(-2);
var dispDate = mm + '/' + dd + ' ' + hh + ':' + mi;

// newDate:NEW 扱いにする日数
var newDate = 1;
var dateNow = new Date();
var checkDate =(dateNow - date) / (1000 * 24 * 3600);
var dispNew = '';
if(checkDate <= newDate) {
dispNew = '<strong>NEW!!</strong>';
}

var dispElm = '<li><a href="' + link + '" target="_blank">' + name + ' / '+ title + '</a>(' + dispDate + ')' + dispNew + '</li>';
out.push([dispElm, date]);
}
}

out = out.sort(function(a,b){return(a[1] < b[1] ? 1 : -1);});
for (var i = 0; i < out.length; i++) {
$("#feed ul").append(out[i][0]);
}
});
});
</script>


************************************
スポンサーサイト
プロフィール

ごみ

Author:ごみ
ラノベ、二次創作が大好き
アニメはほとんど見ません

なにか気になることが
ありましたらご気軽に
コメントください
なるべく対応します

→Twitterはじめました

最新記事
最新コメント
カテゴリ
アクセスカウンター
RSS
    検索フォーム
    RSSリンクの表示
    リンク
    上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。