본문으로 이동
주 메뉴
주 메뉴
사이드바로 이동
숨기기
둘러보기
대문
최근 바뀜
게임 목록
임의의 게임으로
커뮤니티
리버티게임 본진
리버티게임(개발)
검색
검색
보이기
계정 만들기
로그인
개인 도구
계정 만들기
로그인
이 서버는
리버티게임
의 개발용 베타 서버로, 게임 플레이 용도로 제작된 사이트가 아닙니다.
리버티게임의 자동 인증된 사용자라면 개발에 필요한 관리자 권한을
신청
할 수 있습니다.
틀 및 기능별 소도구를 필요한 문서에만 선택적으로 로딩하는 테스트를 진행하고 있습니다. 작동하지 않는 문서가 있다면
담당자
에게 알려주세요.
사용자:Senouis/프론트엔드 스크립트 문서 원본 보기
사용자 문서
토론
English
읽기
원본 보기
역사 보기
도구
도구
사이드바로 이동
숨기기
동작
읽기
원본 보기
역사 보기
새로 고침
일반
여기를 가리키는 문서
가리키는 글의 최근 바뀜
사용자 기여
기록 목록
사용자 그룹을 보기
특수 문서 목록
문서 정보
축약된 URL 얻기
보이기
사이드바로 이동
숨기기
←
사용자:Senouis/프론트엔드 스크립트
문서 편집 권한이 없습니다. 다음 이유를 확인해주세요:
요청한 명령은 다음 권한을 가진 사용자에게 제한됩니다:
사용자
.
여기에는 다른 사용자의 개인 설정이 포함되어 있기 때문에 이 자바스크립트 문서를 편집할 수 없습니다.
문서의 원본을 보거나 복사할 수 있습니다.
고급
특수 문자
도움말
문단 제목
2단계
3단계
4단계
5단계
형식
넣기
라틴 문자
확장 라틴 문자
IPA 문자
기호
그리스 문자
그리스어 확장
키릴 문자
아랍 문자
아랍어 확장
히브리 문자
뱅골어
타밀어
텔루구어 문자
싱할라 문자
데바나가리어
구자라트 문자
태국어
라오어
크메르어
캐나다 원주민 언어
룬 문자
Á
á
À
à
Â
â
Ä
ä
Ã
ã
Ǎ
ǎ
Ā
ā
Ă
ă
Ą
ą
Å
å
Ć
ć
Ĉ
ĉ
Ç
ç
Č
č
Ċ
ċ
Đ
đ
Ď
ď
É
é
È
è
Ê
ê
Ë
ë
Ě
ě
Ē
ē
Ĕ
ĕ
Ė
ė
Ę
ę
Ĝ
ĝ
Ģ
ģ
Ğ
ğ
Ġ
ġ
Ĥ
ĥ
Ħ
ħ
Í
í
Ì
ì
Î
î
Ï
ï
Ĩ
ĩ
Ǐ
ǐ
Ī
ī
Ĭ
ĭ
İ
ı
Į
į
Ĵ
ĵ
Ķ
ķ
Ĺ
ĺ
Ļ
ļ
Ľ
ľ
Ł
ł
Ń
ń
Ñ
ñ
Ņ
ņ
Ň
ň
Ó
ó
Ò
ò
Ô
ô
Ö
ö
Õ
õ
Ǒ
ǒ
Ō
ō
Ŏ
ŏ
Ǫ
ǫ
Ő
ő
Ŕ
ŕ
Ŗ
ŗ
Ř
ř
Ś
ś
Ŝ
ŝ
Ş
ş
Š
š
Ș
ș
Ț
ț
Ť
ť
Ú
ú
Ù
ù
Û
û
Ü
ü
Ũ
ũ
Ů
ů
Ǔ
ǔ
Ū
ū
ǖ
ǘ
ǚ
ǜ
Ŭ
ŭ
Ų
ų
Ű
ű
Ŵ
ŵ
Ý
ý
Ŷ
ŷ
Ÿ
ÿ
Ȳ
ȳ
Ź
ź
Ž
ž
Ż
ż
Æ
æ
Ǣ
ǣ
Ø
ø
Œ
œ
ß
Ð
ð
Þ
þ
Ə
ə
서식 지정
링크
문단 제목
목록
파일
토론
설명
입력하는 내용
문서에 나오는 결과
기울임꼴
''기울인 글씨''
기울인 글씨
굵게
'''굵은 글씨'''
굵은 글씨
굵은 글씨와 기울인 글씨
'''''굵고 기울인 글씨'''''
굵고 기울인 글씨
let targetlist = []; let ratingslist = []; let sqlList = []; 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])) { for (let c = 0 ; c < e[1][point]; c++){ const voter_id = ratingslist.length * (-1) - 1; const query = `INSERT INTO ${dbname}.Vote(vote_actor, vote_page_id, vote_value) VALUES (${voter_id}, ${e[0].pageid}, ${point});`; sqlList.push(query); } } } } } 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/프론트엔드 스크립트
문서로 돌아갑니다.