사용자:Senouis/프론트엔드 스크립트: 두 판 사이의 차이

리버티게임(개발), 모두가 만들어가는 자유로운 게임
둘러보기로 이동 검색으로 이동
잔글편집 요약 없음
편집 요약 없음
5번째 줄: 5번째 줄:
async function buildSQLText(result){
async function buildSQLText(result){
for (const value of result.query.categorymembers){
for (const value of result.query.categorymembers){
const fetchResult = await fetch('https://dev.libertygame.work/index.php?action=raw&title=토론:' + value.title);
try {
const fetchResult = await fetch('https://dev.libertygame.work/index.php?action=raw&title=토론:' + value.title);
} catch (e) {
console.log(value + " 게임의 토론 페이지를 가져오는 데 실패했습니다!");
continue;
}
const fetchResult_second = await fetchResult.text();
const fetchResult_second = await fetchResult.text();
const fetchResult_final = await ((result)=>{
const fetchResult_final = await ((result)=>{

2024년 8월 18일 (일) 12:19 판

let targetlist = [];

let ratingslist = [];

async function buildSQLText(result){
	for (const value of result.query.categorymembers){
		try {
			const fetchResult = await fetch('https://dev.libertygame.work/index.php?action=raw&title=토론:' + value.title);
		} catch (e) {
			console.log(value + " 게임의 토론 페이지를 가져오는 데 실패했습니다!");
			continue;
		}
		const fetchResult_second = await fetchResult.text();
		const fetchResult_final = await ((result)=>{
			result = result.split("\n");
			console.log(result);
			let elem = {"1":0, "2":0, "3":0, "4":0, "5":0};
			let point = 6;
			if (!result.includes("== 이 게임 평가하기 ==") && !result.includes("== 평가 ==")&& !result.includes("== 게임 평가하기 ==")){
				console.log("토론 문서에 평가가 없는 게임이 존재합니다.");
				return;
			}
			for (let i = 0 ; i < result.length; i++){
				console.log(result[i]);
				if (result[i] === "=== 죽여준다 (Awesome!) ==="){
					point=5;
				} else if (result[i] === "=== 기대이상 (Cool~) ==="){
					point=4;
				} else if (result[i] === "=== 보통 (Normal) ==="){
					point=3;
				} else if (result[i] === "=== 후지다 (Bad) ==="){
					point=2;
				} else if (result[i] === "=== 국회의원 같다 (Disgusting) ==="){
					point=1;
				} else if (result[i][1] === "=" && result[i][2] !== "=" && point === 1){
					break; // 평가 문단을 벗어남
				} else if (result[i] === "") { // 빈 줄
					continue;
				} else if (point <= 5) {
					splitedline = result[i].split("#");
					if (splitedline.length > 2 && result[i][1] === "#") continue; // 2단계 이상의 문자열로 간주
					else if (splitedline[1] === "" || splitedline[1] === " ") continue; // 빈 평가
					elem[point.toString()] += 1;
				}
			}
			ratingslist.push([value, elem]);
		})(fetchResult_second);
	}
}

function crawlingSectionRatings() {
	let api = new mw.Api();
	api.get({
		action: "query",
		list: "categorymembers",
		cmtitle: "분류:리버티게임",
		cmtype: "page",
		cmnamespace: 0,
		cmlimit: 500
	}).then((result) => {
		buildSQLText(result);
	});
}