ユーザーページにLGTMトップの記事を表示するユーザースクリプト
6782 ワード
// ==UserScript==
// @name Qiita top items
// @namespace http://tampermonkey.net/
// @version 0.1
// @description なんか名前が変わったやつをたくさんあつめたのを表示する
// @author khsk
// @match https://qiita.com/*
// @exclude https://qiita.com/
// @exclude https://qiita.com/timeline*
// @exclude https://qiita.com/tag-feed*
// @exclude https://qiita.com/notifications*
// @grant none
// ==/UserScript==
(async function() {
'use strict';
// APIで取得しようと思ったけどソートしないといけないし100投稿ごとにタイムラグが大きくなるのでもう検索結果を雑に流し込むことにした
//ユーザーページ判定とid取得を雑に新ページ対応
const userMain = document.querySelector('[class^="UserMain"]')
if (!userMain) {
return
}
// ページが変わったからまたID取得が怪しいかも @削除
const id = document.querySelector('[class^="AccountBaseInfo__UrlName"]').textContent.substr(1)
const response = await fetch('https://qiita.com/search?&sort=like&q=user%3A' + id)
if (response.ok == false || response.status != 200) {
console.error('fetch error', id , response)
return
}
const dummyDOM = document.createElement('div')
dummyDOM.innerHTML = await response.text()
// ちょっとnth-of-typeの挙動を意図通りにできない。クラスでなくtag名(div)にかかるのでresult以外のdivひとつ分増やしている
const topItems = dummyDOM.querySelectorAll('.searchResultContainer_main > div.searchResult:nth-of-type(-n+6)')
const sideBar = document.querySelector('[class^="UserSidebar"]')
topItems.forEach ((topItem)=> {
// アイコン画像がでっかく表示されちゃうから雑に消す
let tmp = topItem.querySelector('.searchResult_left')
tmp.parentElement.removeChild(tmp)
// 概要も不要
tmp = topItem.querySelector('.searchResult_snippet')
tmp.parentElement.removeChild(tmp)
sideBar.innerHTML += topItem.outerHTML
// TODO(しない)整形もっとがんばる
})
})();
デザイン思い出せない
Author And Source
この問題について(ユーザーページにLGTMトップの記事を表示するユーザースクリプト), 我々は、より多くの情報をここで見つけました https://qiita.com/khsk/items/169b9e1c573151542a53著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .