사용자:Senouis/프론트엔드 스크립트: 두 판 사이의 차이
둘러보기로 이동
검색으로 이동
편집 요약 없음 |
잔글편집 요약 없음 |
||
7번째 줄: | 7번째 줄: | ||
try { | try { | ||
const fetchResult = await fetch('https://dev.libertygame.work/index.php?action=raw&title=토론:' + value.title); | const fetchResult = await fetch('https://dev.libertygame.work/index.php?action=raw&title=토론:' + value.title); | ||
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); | |||
} catch (e) { | } catch (e) { | ||
console.log(value + " 게임의 토론 페이지를 가져오는 데 실패했습니다!"); | console.log(value + " 게임의 토론 페이지를 가져오는 데 실패했습니다!"); | ||
continue; | continue; | ||
} | } | ||
} | } | ||
} | } |
2024년 8월 18일 (일) 12:20 판
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);
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);
} catch (e) {
console.log(value + " 게임의 토론 페이지를 가져오는 데 실패했습니다!");
continue;
}
}
}
function crawlingSectionRatings() {
let api = new mw.Api();
api.get({
action: "query",
list: "categorymembers",
cmtitle: "분류:리버티게임",
cmtype: "page",
cmnamespace: 0,
cmlimit: 500
}).then((result) => {
buildSQLText(result);
});
}