#Qiitaは人のためならず
自分は誰のためでもない、未来の自分のためにQiitaの記事を書いています(つまりすぐ忘れる)。
最初のうちは結構いい感じに機能していましたが、記事が増えるにつれ、マイページから自分の記事を探すのがつらくなってきました。
で、自分の記事一覧を表示するスクリプトを用意しました。
ローカル環境でも動作します。
動作デモ
#やっぱ自分のためなり
実際に使ってみて感じたのですが、自分の記事の一覧を得るためというより、他の人の記事一覧を得るのにとても有用でした。
やっぱり良い記事を書いている人は良い記事を量産していることが多いですね。
タイムラインから「いい記事だな」と思った記事を書いたユーザーIDをコピペして、その人が書いた記事一覧を眺めるのにとても役に立っています。
qiita_index.html?uuid=baby-degu
とか。
#ソースコード
myindex.htmlという空のファイルを作成し、下記の内容をコピペしたらダブルクリックで動作します。
追記:最新ソースコードはこちらです
[myindex.html]
<!DOCTYPE html>
<html>
<head><title>user</title>
<script>
const USER_ID='ELIXIR'; // 自分のuser_idに変えてください
var resArr = [];
function onload(){
document.title=USER_ID;
getUser();
}
function getUserCB(){
getData(Math.floor((this.response["items_count"]+99)/100));
}
function getUser(){
resArr = [];
var req = new XMLHttpRequest();
req.responseType="json";
req.addEventListener("load", getUserCB);
req.open('GET', 'https://qiita.com/api/v2/users/'+USER_ID, true);
req.send();
}
function getDataCB(){
resArr=resArr.concat(this.response);
if(this.page>1){
getData(this.page-1);
}else{
dispData(resArr);
}
}
function getData(_page=1){
var req = new XMLHttpRequest();
req.responseType="json";
req.page=_page;
req.addEventListener("load", getDataCB);
req.open('GET', 'https://qiita.com/api/v2/users/'+USER_ID+'/items?per_page=100&page='+_page, true);
req.send();
}
function dispData(_resArr){
var result = document.getElementById('iResult');
var str="";
for(i=0;i<_resArr.length;++i){
str += '<a href="'+_resArr[i]['url']+'" target="_blank">'+ _resArr[i]['title']+'</a><br/>';
}
result.innerHTML += str;
}
</script>
</head>
<body onload="onload()">
<div id="iResult">
</div>
</body>
</html>
今回はとりあえず記事一覧を表示しています。
次回以降で、タグでフィルタリングしたりできるようにしたいと思います。