사용자:Senouis/프론트엔드 스크립트 문서 원본 보기
←
사용자:Senouis/프론트엔드 스크립트
둘러보기로 이동
검색으로 이동
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
여기에는 다른 사용자의 개인 설정이 포함되어 있기 때문에 이 자바스크립트 문서를 편집할 수 없습니다.
문서의 원본을 보거나 복사할 수 있습니다.
let targetlist = []; let ratingslist = []; let sqlList = []; let finalresult = ""; let dbname=""; async function extractRatings(result){ let resultingArray = []; 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.title + " 게임의 토론 페이지를 가져오는 데 실패했습니다!"); continue; } } for (let e of ratingslist){ if (e[0].ns === 0) { for (let point of Object.keys(e[1])) { let id_counter = -1; for (let c = 0 ; c < e[1][point]; c++){ const voter_id = id_counter; const query = `INSERT INTO ${dbname}.Vote(vote_actor, vote_page_id, vote_value) VALUES (${voter_id}, ${e[0].pageid}, ${point});`; sqlList.push(query); id_counter -= 1; } } } } finalResult = sqlList.join("\n"); } function crawlingSectionRatings() { let api = new mw.Api(); api.get({ action: "query", list: "categorymembers", cmtitle: "분류:리버티게임", cmtype: "page", cmnamespace: 0, cmlimit: 500 }).then((result) => { console.log(extractRatings(result)); }); }
사용자:Senouis/프론트엔드 스크립트
문서로 돌아갑니다.
둘러보기 메뉴
개인 도구
계정 만들기
로그인
어두운 모드
이름공간
사용자 문서
토론
English
보기
읽기
원본 보기
역사 보기
더 보기
새로 고침
검색
둘러보기
대문
최근 바뀜
게임 목록
임의의 게임으로
커뮤니티
리버티게임 본진
도구
여기를 가리키는 문서
가리키는 글의 최근 바뀜
사용자 기여
기록 목록
사용자 그룹을 보기
특수 문서 목록
문서 정보
축약된 URL 얻기