사용자 페이지에 LGTM 상단 기사를 표시하는 사용자 스크립트
// ==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(しない)整形もっとがんばる
})
})();
디자인을 기억할 수 없다.
Reference
이 문제에 관하여(사용자 페이지에 LGTM 상단 기사를 표시하는 사용자 스크립트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/khsk/items/169b9e1c573151542a53텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)