< 사용자:낙엽1124 | 스크립트
브라우저에서 페미위키 방문 중 디버그 콘솔창에 붙여넣으면 10월 10일부터 일반 이름공간에 생성된 넘겨주기가 아닌 문서 수를 세어서 콘솔로 출력하는 스크립트입니다. 예를 들어 10월 10일 12시 실행한 결과는 다음과 같습니다.
새로 생긴 문서(10개): - 아달 - 구미식 룸 - 화대 - 성산업 - 쓰리노 - 오너-펫 - 서브미시브 - 펠라치오 - K-래디컬 페미니스트 - 6B 목표일인 2019년 12월 31일까지 81일 남아, 남은 기간 동안 하루에 2.7개의 문서를 만들어야 합니다. 오늘은 10개의 문서를 만들었습니다!
(아래 목표일 어쩌구는 컨텐츠팀 얘기입니다.)
새 문서가 300개가 넘으면 300개까지만 나옵니다.
(async () => {
"use strict";
function kstTextToUtcDate(str) {
return new Date(new Date(str).getTime() - 9 * 60 * 60 * 1000);
}
const localStart = "2019-10-10";
const localEnd = "2019-12-31";
const goal = 230;
const now = new Date();
const today = new Date(now.getFullYear(), now.getMonth(), now.getDate());
const days = (
(new Date(kstTextToUtcDate(localEnd)).getTime() - new Date().getTime()) /
(24 * 60 * 60 * 1000)
).toFixed();
const data = await new mw.Api().get({
action: "query",
format: "json",
list: "recentchanges",
utf8: 1,
rcstart: kstTextToUtcDate(localStart).toISOString(),
rcdir: "newer",
rcnamespace: 0,
rcprop: "title|timestamp|redirect",
rcshow: "!bot",
rclimit: 300,
rctype: "new"
});
const rc = data.query.recentchanges.filter(
rc => Object.keys(rc).indexOf("redirect") == -1
);
const todayNum = data.query.recentchanges.filter(rc => {
return (
Object.keys(rc).indexOf("redirect") == -1 &&
new Date(rc.timestamp).getTime() >= today.getTime()
);
}).length;
const num = rc.length;
console.log(
`새로 생긴 문서(${num}개):\n` + rc.map(rc => `- ${rc.title}`).join("\n")
);
console.log(
`한줄 버전: ` + rc.map(rc => rc.title).join(" / ")
);
console.log(
`목표일인 ${new Date(kstTextToUtcDate(localEnd)).toLocaleDateString("ko", {
dateStyle: "long"
})}까지 ${days}일 남아,`,
`남은 기간 동안 하루에 ${((goal - num) / days).toFixed(
1
)}개의 문서를 만들어야 하며\n` +
`오늘 생긴 문서는 ${todayNum}개 입니다.`
);
})();