사용자:Hsl0/연구소: 두 판 사이의 차이

리버티게임, 모두가 만들어가는 자유로운 게임
imported>Hsl0
 
(사용자 2명의 중간 판 38개는 보이지 않습니다)
1번째 줄: 1번째 줄:
{{특수:접두어찾기/사용자:hsl0/연구소/|stripprefix=1}}
{{특수:접두어찾기/사용자:hsl0/연구소/|stripprefix=1}}


= 낙서장 =
== 진행 중인 연구 ==
=== CGI보호 ===
{{처|완료}}?
* [[/1]]
* [[/2.js]]
 
=== 소도구 도우미 ===
{{처|불가}}
* [[/1.css]]
* [[/1.js]]
 
=== LinkTools ===
{{처|진행중}}
* [[/2]]
* [[사:hsl0/LinkTools]]
 
=== 팝업 ===
{{처|보류}}
* [[/4]]
* [[/2.css]]
* [[/3.js]]
 
=== 알림 상자 ===
{{처|완료}}
* [[/7]]
* [[버:연습장#알림 상자]]
 
=== 깊은 수렁 타이머 ===
{{처}}
* [[/5]]
* [[/6]]
* [[/4.js]]
 
=== 게임 메타데이터 & 게임 목록 필터 ===
{{처|진행중}}
* [[버:게임 메타데이터]]
* [[/game.json]]
* [[/8]]: [[틀:게임아이콘]]
* [[/9]]: 게임 목록 필터 디자인 목업
* [[/3.css]]: [[틀:게임아이콘]]
* [[버:연습장#DPL]]: [[리버티게임:게임 목록]]
* [[#낙서장]]: 적용 예시
* [[사용자:hsl0#게임 메타데이터 도입 계획]]
* [[사용자:hsl2/게임 메타데이터]]: 봇
 
=== 숫자야구 live & LiveEngine ===
{{처|진행중}}
* [[/숫자야구 live]]
 
=== 리버티게임 메뉴 ===
{{처|철회}}
* [[버:연습장#리버티게임 메뉴]]
 
=== 게임 별 편집 정책 안내 틀 ===
{{처|진행중}}
* [[/10]]
 
=== 유닛 테스트 ===
{{처|진행중}}
* [[/11]]
 
=== Local CGI ===
{{처|진행중}}
* [[사:hsl0/local CGI]]
* [[모듈:LCGI]]
 
== 끝난 연구 ==
* [[틀:CGI보호]]
* 벡터 레거시 반응형 사용자 메뉴 개선
** 리버티게임에 맞게 디자인 변경
** 사용자 메뉴 숨기기 구현
* [[틀:일방통행링크]]
* [[틀:usernameget]]
** USERNAME 확장 기능이 사용 불가능 할 당시의 대안으로 개발됨
** 링크를 누르면 자바스크립트로 사용자 이름을 urlget의 username 파라미터에 저장
** urlget의 username 파라미터를 활용하여 사용자 이름 불러옴
** USERNAME 확장 기능이 설치된 현재 폐지됨
* [[틀:DB2]]
* [[틀:툴팁]], [[틀:링크경고]], [[틀:주석]]
* [[틀:알림 상자]] (2024 하반기)
 
== 낙서장 ==
* [[/8]]
* [[버:연습장#variable]]
* {{새로고침}}
* {{새로고침}}
* {{#invoke:metadata|icon|사용자:hsl0/연구소}}
* {{/8|사용자:hsl0/연구소}}
<source lang="js">
 
function scrapMetadata(category) {
== 편집필터 (제작자 변경 차단) ==
    $('#gamelist-' + category + ' li').map(function() {
<pre>
        var data = $(this).find('.old-gameicon-status').data();
author_regex := '\n    "author": ("(.+)"|\[(       ".+",?\n)+    \],?\n)';
        data = {
/* 제목이 '/game.json'으로 끝나는 문서 */ page_title rlike '/game\.json$' &
            progress: data.progress === ""? null : data.progress,
/* 편집할 때 */ action == 'edit' &
            openness: data.edit === ""? null : data.edit,
/* 보호된 문서 편집 권한이 있는 사용자 제외 (관리자 등) */ !(user_rights contains 'editprotected') &
            tech: data.tech === ""? null : data.tech,
/* 버려진 게임 제외 */ get_matches('    "abandon": true,?\n')
            rating: data.rating === ""? null : data.rating,
/* 기존 author에 포함된 사용자 제외 */ !(get_matches(author_regex, old_wikitext)[0] contains '"' + user_name +'"') &
            category
/* author가 달라질 때 */ get_matches(author_regex, old_wikitext)[0] != get_matches(author_regex, new_wikitext)[0]
        };
</pre>
        var nameElement = this.querySelector('.old-gameicon-name a');
 
        data.title = decodeURI(new URL(nameElement.href).pathname.slice(6));
== 조회수 Top 20 ==
        data.name = nameElement.innerText;
{{게임카드|{{#dpl:|category=리버티게임|namespace=|ordermethod=counter,firstedit|order=descending|count=20}}}}
        var maker = $(this).find('.old-gameicon-maker');
        data.helper = maker.find('.old-gameicon-helper a').map(function() {
            var url = new URL(this.href);
            if(url.searchParams.has('title')) return url.searchParams.get('title').slice(4).split('/')[0].replace(/_/g, ' ');
            else return decodeURI(url.pathname.slice(6)).slice(4).split('/')[0].replace(/_/g, ' ');
        }).toArray();
        if(!data.helper.length) data.helper = null;
        else if(data.helper.length === 1) data.helper = data.helper[0];
        data.maker = maker.find('a:not(.old-gameicon-helper a)').map(function() {
            var url = new URL(this.href);
            if(url.searchParams.has('title')) return url.searchParams.get('title').slice(4).split('/')[0].replace(/_/g, ' ');
            else return decodeURI(url.pathname.slice(6)).slice(4).split('/')[0].replace(/_/g, ' ');
        }).toArray();
        if(data.maker.length === 1) data.maker = data.maker[0];
        switch(data.openness) {
            case 0: data.openness = false; break;
            case 1: data.openness = "partial"; break;
            case 2: data.openness = true; break;
            case 3:
                data.openness = null;
                data.abandon = true;
                break;
        }
        return data;
    });
}
function mergeMetadata(datas) {
    var datamap = {};
    for(const list of datas) {
        for(const data of list) {
            if(datamap[data.title]) {
                let category = datamap[data.title].category;
                if(typeof category === 'string') category = [category, data.category];
                else category.push(data.category);
                datamap[data.title].category = category;
            } else datamap[data.title] = data;
            delete data.title;
        }
    }
    return datamap;
}
function saveMetadata(map) {
    const api = new mw.Api();
    const tasks = [];
    for(const title in map) {
        tasks.push(api.create(title + '/game.json', {
            summary: "게임 메타데이터 생성",
            bot: true,
            watchlist: "nochange",
            contentformat: "application/json",
            contentmodel: "json"
        }, JSON.stringify(map[title]))).then(console.log);
    }
}
</source>

2024년 11월 18일 (월) 15:51 기준 최신판

진행 중인 연구[편집 | 원본 편집]

CGI보호[편집 | 원본 편집]

상태:    완료

?

소도구 도우미[편집 | 원본 편집]

상태:    실행될 수 없음

LinkTools[편집 | 원본 편집]

상태:    진행중

팝업[편집 | 원본 편집]

상태:    보류

알림 상자[편집 | 원본 편집]

상태:    완료

깊은 수렁 타이머[편집 | 원본 편집]

상태:    진행중

게임 메타데이터 & 게임 목록 필터[편집 | 원본 편집]

상태:    진행중

숫자야구 live & LiveEngine[편집 | 원본 편집]

상태:    진행중

리버티게임 메뉴[편집 | 원본 편집]

상태:    철회됨

게임 별 편집 정책 안내 틀[편집 | 원본 편집]

상태:    진행중

유닛 테스트[편집 | 원본 편집]

상태:    진행중

Local CGI[편집 | 원본 편집]

상태:    진행중

끝난 연구[편집 | 원본 편집]

  • 틀:CGI보호
  • 벡터 레거시 반응형 사용자 메뉴 개선
    • 리버티게임에 맞게 디자인 변경
    • 사용자 메뉴 숨기기 구현
  • 틀:일방통행링크
  • 틀:usernameget
    • USERNAME 확장 기능이 사용 불가능 할 당시의 대안으로 개발됨
    • 링크를 누르면 자바스크립트로 사용자 이름을 urlget의 username 파라미터에 저장
    • urlget의 username 파라미터를 활용하여 사용자 이름 불러옴
    • USERNAME 확장 기능이 설치된 현재 폐지됨
  • 틀:DB2
  • 틀:툴팁, 틀:링크경고, 틀:주석
  • 틀:알림 상자 (2024 하반기)

낙서장[편집 | 원본 편집]

편집필터 (제작자 변경 차단)[편집 | 원본 편집]

author_regex := '\n    "author": ("(.+)"|\[(        ".+",?\n)+    \],?\n)';
/* 제목이 '/game.json'으로 끝나는 문서 */ page_title rlike '/game\.json$' &
/* 편집할 때 */ action == 'edit' &
/* 보호된 문서 편집 권한이 있는 사용자 제외 (관리자 등) */ !(user_rights contains 'editprotected') &
/* 버려진 게임 제외 */ get_matches('    "abandon": true,?\n')
/* 기존 author에 포함된 사용자 제외 */ !(get_matches(author_regex, old_wikitext)[0] contains '"' + user_name +'"') &
/* author가 달라질 때 */ get_matches(author_regex, old_wikitext)[0] != get_matches(author_regex, new_wikitext)[0]

조회수 Top 20[편집 | 원본 편집]

language웹 (무설치)
lock제작자 이외의 편집이 제한됩니다.
signal_cellular_4_bar완성되었지만 추가할 수 있는 게임입니다.
cruelty_free모든 연령이 즐길 수 있습니다.
language웹 (무설치)
lock_open규칙에 따라 일부만 편집할 수 있습니다.
signal_cellular_4_bar완성되었지만 추가할 수 있는 게임입니다.
cruelty_free모든 연령이 즐길 수 있습니다.
실제인 듯 실제 아닌 실제 같은 낚시 게임
위키낚시에 오신것을 환영합니다!
여기는 백괴낚시처럼 게임이 사람을 낚는것이 아니라 사람이 게임을 낚는 진지한 게임입니다.
여기서 직접 삶의 현장을 체험해보십시오.
language웹 (무설치)
lock제작자 이외의 편집이 제한됩니다.
signal_cellular_connected_no_internet_4_bar완성되어 변경하지 말아야 하는 게임입니다.
cruelty_free모든 연령이 즐길 수 있습니다.
language웹 (무설치)
lock_open규칙에 따라 일부만 편집할 수 있습니다.
signal_cellular_4_bar완성되었지만 추가할 수 있는 게임입니다.
15mp15세 미만이 이용시 부모의 지도가 필요합니다.
너는 죽었다. 너가 죽은 게임에 온 것을 환영한다.
너는 죽었다. 여러분은 죽고 나서 하고자 하는 일을 선택해야 합니다.
language웹 (무설치)
lock제작자 이외의 편집이 제한됩니다.
signal_cellular_4_bar완성되었지만 추가할 수 있는 게임입니다.
15mp15세 미만이 이용시 부모의 지도가 필요합니다.
당신은 깊은 수렁에서 살아남을 수 있습니까?
language웹 (무설치)
lock제작자 이외의 편집이 제한됩니다.
signal_cellular_connected_no_internet_4_bar완성되어 변경하지 말아야 하는 게임입니다.
12mp12세 미만이 이용시 부모의 지도가 필요합니다.
백괴복권에 투자하세요!
language웹 (무설치)
lock제작자 이외의 편집이 제한됩니다.
signal_cellular_connected_no_internet_4_bar완성되어 변경하지 말아야 하는 게임입니다.
cruelty_free모든 연령이 즐길 수 있습니다.
서울과 인천 사이를 넘나드는 헬게이트 저속도로
language웹 (무설치)
lock_open규칙에 따라 일부만 편집할 수 있습니다.
signal_cellular_4_bar완성되었지만 추가할 수 있는 게임입니다.
cruelty_free모든 연령이 즐길 수 있습니다.
language웹 (무설치)
lock제작자 이외의 편집이 제한됩니다.
signal_cellular_connected_no_internet_4_bar완성되어 변경하지 말아야 하는 게임입니다.
cruelty_free모든 연령이 즐길 수 있습니다.
흑괴나라를 세우려는 유니폴리를 막아라!
language웹 (무설치)
lock제작자 이외의 편집이 제한됩니다.
signal_cellular_connected_no_internet_4_bar완성되어 변경하지 말아야 하는 게임입니다.
12mp12세 미만이 이용시 부모의 지도가 필요합니다.
여수에서 벌어지는 비밀스러운 납치 탈출기
language웹 (무설치)
lock제작자 이외의 편집이 제한됩니다.
signal_cellular_4_bar완성되었지만 추가할 수 있는 게임입니다.
hourglass_empty등급 판정이 필요한 게임입니다.
language웹 (무설치)
lock제작자 이외의 편집이 제한됩니다.
signal_cellular_4_bar완성되었지만 추가할 수 있는 게임입니다.
cruelty_free모든 연령이 즐길 수 있습니다.
language웹 (무설치)
lock제작자 이외의 편집이 제한됩니다.
signal_cellular_connected_no_internet_4_bar완성되어 변경하지 말아야 하는 게임입니다.
hourglass_top등급 판정중인 게임입니다.
백괴스러운 자판기에서 뽑히는 온갖 기이한 물체들
language웹 (무설치)
lock제작자 이외의 편집이 제한됩니다.
signal_cellular_connected_no_internet_4_bar완성되어 변경하지 말아야 하는 게임입니다.
cruelty_free모든 연령이 즐길 수 있습니다.
너를 낚는 낚시
붉은색을 누르시오.
language웹 (무설치)
lock제작자 이외의 편집이 제한됩니다.
signal_cellular_4_bar완성되었지만 추가할 수 있는 게임입니다.
hourglass_empty등급 판정이 필요한 게임입니다.
language웹 (무설치)
lock제작자 이외의 편집이 제한됩니다.
signal_cellular_connected_no_internet_4_bar완성되어 변경하지 말아야 하는 게임입니다.
hourglass_empty등급 판정이 필요한 게임입니다.
language웹 (무설치)
lock_open_right모두에게 편집이 개방되었습니다.
signal_cellular_2_bar중간 정도 완성된 게임입니다.
cruelty_free모든 연령이 즐길 수 있습니다.
백괴스러운 도시
language웹 (무설치)
lock제작자 이외의 편집이 제한됩니다.
signal_cellular_4_bar완성되었지만 추가할 수 있는 게임입니다.
hourglass_empty등급 판정이 필요한 게임입니다.
평균적으로 보면 이득인 도박? 이제 부자가 될 것 같기도?
language웹 (무설치)
lock_open규칙에 따라 일부만 편집할 수 있습니다.
signal_cellular_4_bar완성되었지만 추가할 수 있는 게임입니다.
cruelty_free모든 연령이 즐길 수 있습니다.
지하철을 타고 상대방을 추격하라!
language웹 (무설치)
lock_open규칙에 따라 일부만 편집할 수 있습니다.
signal_cellular_connected_no_internet_4_bar완성되어 변경하지 말아야 하는 게임입니다.
cruelty_free모든 연령이 즐길 수 있습니다.
국토의 대동맥 경부고속도로, 그런데 상태가 조금 이상하다