리버티게임:관리자 요청/2019년 2월: 두 판 사이의 차이

리버티게임, 모두가 만들어가는 자유로운 게임
백괴게임>Bd3076
imported>Hsl0
(보존 이름공간으로 통합)
 
(사용자 11명의 중간 판 43개는 보이지 않습니다)
1번째 줄: 1번째 줄:
<noinclude>{{관리자 요청 보존|2019|2}}</noinclude>
#REDIRECT [[보존:관리자 요청/2019년 2월]]
== 비밀5 수정 ==
민수 문서가 너무 커서 수정을 못하고 있습니다. 가장 처음으로 나오는(분리 위에 있는) |22= 부분을 제거해 주세요. -- {{:사용자:Bd3076/서명}} 2019년 2월 1일 (금) 10:52 (KST)
:{{완료}} 문서 바이트 수가 20만 바이트인 거를 보고 놀랐습니다. -- {{사:이의섭/서명}} 2019년 2월 1일 (금) 16:07 (KST)
 
== 백괴게임:발전소/그냥낚시 관련 ==
 
총의로 일단 유지, 규제 생성으로 결론났습니다만, 기간이 지나도 한참 지났는데 처리가 안되고 있습니다. 처리 부탁드립니다. --{{사용자:Regurus/서명}} 2019년 2월 3일 (일) 07:46 (KST)
:{{완료}} by [[사용자:Manymaster|manymaster]] ([[사용자토론:Manymaster|토론]]|[[특수기능:기여/Manymaster|기여]]) 2019년 2월 11일 (월) 01:45 (KST)
 
== 입력 상자 플러그인 커먼자스화 ==
 
혹시 가능한지 여쭙고 싶습니다. 구조상 불가능하다면 어쩔 수 없지만요. -- {{:사용자:Bd3076/서명}} 2019년 2월 4일 (월) 11:35 (KST)
:전 자바스크립트에 대해 아는 것이 거의 없지만, 아마 가능할 것으로 보입니다. 자동저장은 반달로 악용될 수 있으나 입력 상자는 반달 위협이 없고 [[틀:키패드]]보다도 실용적이니 문제는 없어 보입니다만, 다른 관리자 또는 사용자들의 의견도 들어 보는 게 좋을 것 같습니다. -- {{사:이의섭/서명}} 2019년 2월 4일 (월) 12:09 (KST)
:테스트하니 가능합니다. 각 사용자 커먼자스를 지우는 등의 절차가 있어 완료하는데 시간이 좀 걸릴 것 같습니다. by [[사용자:Manymaster|manymaster]] ([[사용자토론:Manymaster|토론]]|[[특수기능:기여/Manymaster|기여]]) 2019년 2월 5일 (화) 08:56 (KST)
::감사합니다. -- {{:사용자:Bd3076/서명}} 2019년 2월 5일 (화) 11:26 (KST)
::{{완료}} by [[사용자:Manymaster|manymaster]] ([[사용자토론:Manymaster|토론]]|[[특수기능:기여/Manymaster|기여]]) 2019년 2월 5일 (화) 11:27 (KST)
 
== Common.js ==
 
[[사용자:Gustmd7410/common.js|제 사용자 커먼자스]]를 [[미디어위키:Common.js]]에 넣어 주세요. --{{사용자:Gustmd7410/서명}} 2019년 2월 5일 (화) 11:56 (KST)
:{{완료}} by [[사용자:Manymaster|manymaster]] ([[사용자토론:Manymaster|토론]]|[[특수기능:기여/Manymaster|기여]]) 2019년 2월 5일 (화) 12:05 (KST)
 
== [[틀:백괴게임 이름 바꾸기]] ==
 
틀의 상태가 맛이 갔습니다. 낚시 게임들에게 특히 피해가 크게 갈 것 같은데 수정해야 하지 않을까요?--{{사:읎앖앖앖/서명}} 2019년 2월 8일 (금) 00:48 (KST)
:{{완료}} 대충 복구 완료. by [[사용자:Manymaster|manymaster]] ([[사용자토론:Manymaster|토론]]|[[특수기능:기여/Manymaster|기여]]) 2019년 2월 8일 (금) 04:55 (KST)
 
== Common.js ==
 
JSON 데이터를 편리하게 수정할 수 있는 플러그인을 만들었습니다...만, 보안상 문제로 가능할진 모르겠네요. 가능하다면 혹시 제 [[사:Bd3076/common.js|commonjs]] 문서를 커먼자스에 추가해 주실 수 있나요? 맨 아래에 추가해 주시면 됩니다. -- {{:사용자:Bd3076/서명}} 2019년 2월 13일 (수) 16:11 (KST)
: 잠시만요. 업데이트 하나만 할게요. -- {{:사용자:Bd3076/서명}} 2019년 2월 13일 (수) 19:56 (KST)
:: 업데이트 완료했습니다. 먼저 BANIP님이 만드신 MediaWikiAPI() 객체를 아래처럼 바꿔주시고,
 
<pre><nowiki>
/*
/** mediawiki api를 통해 간단하게 문서들을 수집, 변경하는 함수.
* 플러그인 코어에서 사용하기 위해 만들었습니다.
* 작성자: [[사용자:BANIP|BANIP]]
* 사용방법
*: var api = MediaWikiAPI(); .changeDocument()
*: api.changeDocument(변경할 문서의 타이틀, 편집 요약, 변경할 문서의 내용) => 문서의 내용을 변경합니다.
*: api.addDocument(변경할 문서의 타이틀, 편집 요약, 추가할 문서의 내용) => 문서에 새로운 내용을 추가합니다.
*: api.getDocument(가져올 문서의 타이틀) => 문서의 모든 텍스트를 읽어옵니다.
*: api.readDocument(가져올 문서의 타이틀) => 문서의 모든 텍스트를 jquery 객체로 읽어옵니다.
* 영 좋지 않은 목적으로 사용 하면 안드로메다 경찰관이 잡아간다!
*/
 
function MediaWikiAPI() {
    var token;
    var getToken = function() {
        if (token !== undefined) return token;
        $.ajax({
            url: "/w/api.php?action=query&meta=tokens",
            success: function(v, i) {
                var datas = JSON.parse($(v).find("pre").text());
                token = datas["query"]["tokens"]["csrftoken"];
            },
            async: false
        });
        return token;
    };
 
    function changeDocument(title, summary, content, isUnReload) {
    mw.loader.using( ['mediawiki.util','mediawiki.Title'] ).then( function () {
    $.ajax({
            url: mw.util.wikiScript("api"),
            data: {
                format: 'json',
                action: 'edit',
                title: title,
                summary: summary,
                text: content,
                token: getToken(),
            },
            dataType: 'json',
            type: 'POST',
            success: function(data) {
                if (data && data.edit && data.edit.result == 'Success') {
                    if (!isUnReload) window.location.reload(); // reload page if edit was successful
                } else if (data && data.error) {
                    alert('Error: API returned error code "' + data.error.code + '": ' + data.error.info);
                } else {
                    alert('Error: Unknown result from API.');
                }
            },
            error: function(xhr) {
                alert('Error: Request failed.');
            }
        });
} );
    }
 
    function addDocument(title, summary, content, isUnReload) {
        originContent = getDocument(title);
        changeDocument(title, summary, originContent + content, isUnReload);
    }
 
    function getDocument(title) {
        function entityDecode(doc) {
            return $('<p></p>').html(doc).text();
        }
 
        var originContent;
        $.ajax({
            url: "/w/index.php?title=" + title + "&action=edit",
            success: function ajaxSucess(data) {
                originContent = $(data).find("textarea").html();
            },
            async: false
        });
        return entityDecode(originContent);
    }
 
    function readDocument(title) {
        var doc;
        $.ajax({
            url: "/wiki/" + title,
            success: function ajaxSucess(data) {
                doc = $(data).find("#mw-content-text");
            },
            async: false
        });
        return doc;
    }
 
 
    return {
        getToken: getToken,
        changeDocument: changeDocument,
        addDocument: addDocument,
        getDocument: getDocument,
        readDocument: readDocument,
    };
}
</nowiki></pre>
 
::커먼자스 맨 아래에 [[사:Bd3076/common.js]]의 내용을 추가해 주시기 바랍니다. -- {{:사용자:Bd3076/서명}} 2019년 2월 14일 (목) 15:45 (KST)
:::{{완료}} {{사용자:Js091213/서명}} 2019년 2월 14일 (목) 15:52 (KST)
 
보안 문제로 인해 한 번 더 수정 부탁드립니다. [[미디어위키:Common.js]]의 1506번째 줄을
<pre>mw.notify('JSON 데이터가 수정되었습니다.');</pre>
로 바꿔주세요. (1506줄에는 아무것도 없습니다.) -- {{:사용자:Bd3076/서명}} 2019년 2월 15일 (금) 17:44 (KST)
:{{완료}} by [[사용자:Manymaster|manymaster]] ([[사용자토론:Manymaster|토론]]|[[특수기능:기여/Manymaster|기여]]) 2019년 2월 15일 (금) 19:43 (KST)
 
정말 죄송한데 요청 한 번만 더 들어주실 수 있나요? 미처 예상하지 못한 case가 생겼습니다.
 
<pre>mw.notify('JSON 데이터가 수정되었습니다.');</pre>
 
부분을
 
<pre><nowiki>mw.loader.using( ['mediawiki.notify','mediawiki.Title'] ).then( function () {
    mw.notify('JSON 데이터가 수정되었습니다.');
});</nowiki></pre>로 바꿔 주세요. -- {{:사용자:Bd3076/서명}} 2019년 2월 15일 (금) 21:34 (KST)
:{{완료}} -- {{사:이의섭/서명}} 2019년 2월 15일 (금) 23:10 (KST)
 
== 평라선 삭제신청  ==
 
제곧내. 제 게임입니다. --{{사용자:Regurus/서명}} 2019년 2월 17일 (일) 09:33 (KST)
:{{완료}} 삭제 신청 틀을 통해 이미 처리되었습니다. 확인 부탁드립니다. by [[사용자:Manymaster|manymaster]] ([[사용자토론:Manymaster|토론]]|[[특수기능:기여/Manymaster|기여]]) 2019년 2월 17일 (일) 10:05 (KST)
 
== Common.js 수정 요청 ==
 
이의섭님이 게임 데이터 수정을 사소한 편집이 뜨게 해 달라고 요청하셔서 코드를 조금 수정했습니다.
 
먼저 banip님의 MediawikiAPI를 아래와 같이 바꿔 주세요.
 
<pre>
function MediaWikiAPI() {
    var token;
    var getToken = function() {
        if (token !== undefined) return token;
        $.ajax({
            url: "/w/api.php?action=query&meta=tokens",
            success: function(v, i) {
                var datas = JSON.parse($(v).find("pre").text());
                token = datas["query"]["tokens"]["csrftoken"];
            },
            async: false
        });
        return token;
    };
 
    function changeDocument(title, summary, content, isUnReload, minor) {
    mw.loader.using( ['mediawiki.util','mediawiki.Title'] ).then( function () {
    $.ajax({
            url: mw.util.wikiScript("api"),
            data: {
                format: 'json',
                action: 'edit',
                title: title,
                summary: summary,
                text: content,
                minor: minor,
                token: getToken(),
            },
            dataType: 'json',
            type: 'POST',
            success: function(data) {
                if (data && data.edit && data.edit.result == 'Success') {
                    if (!isUnReload) window.location.reload(); // reload page if edit was successful
                } else if (data && data.error) {
                    alert('Error: API returned error code "' + data.error.code + '": ' + data.error.info);
                } else {
                    alert('Error: Unknown result from API.');
                }
            },
            error: function(xhr) {
                alert('Error: Request failed.');
            }
        });
} );
    }
 
    function addDocument(title, summary, content, isUnReload, minor) {
        originContent = getDocument(title);
        changeDocument(title, summary, originContent + content, isUnReload, minor);
    }
 
    function getDocument(title) {
        function entityDecode(doc) {
            return $('<p></p>').html(doc).text();
        }
 
        var originContent;
        $.ajax({
            url: "/w/index.php?title=" + title + "&action=edit",
            success: function ajaxSucess(data) {
                originContent = $(data).find("textarea").html();
            },
            async: false
        });
        return entityDecode(originContent);
    }
 
    function readDocument(title) {
        var doc;
        $.ajax({
            url: "/wiki/" + title,
            success: function ajaxSucess(data) {
                doc = $(data).find("#mw-content-text");
            },
            async: false
        });
        return doc;
    }
 
 
    return {
        getToken: getToken,
        changeDocument: changeDocument,
        addDocument: addDocument,
        getDocument: getDocument,
        readDocument: readDocument,
    };
}
 
/* DB 기능 초기화 끝 */
</pre>
 
그리고 제 json수정 코드는
 
<pre>
/** JSON 편집을 편리하게 해 주는 기능.
*  [[틀:JSON수정]]을 위한 플러그인입니다.
*  작성자: [[사:Bd3076|Bd3076]]
*/
 
function uncy_jsonEdit(){
var mp = new Map();
var api = MediaWikiAPI();
$('.uncy-jsonedit').each(function() {
    var jsonDoc = $(this).attr("data-title");
    var jsonData;
    if(mp.get(jsonDoc) === undefined){
    jsonData = JSON.parse(api.getDocument(jsonDoc));
    }
    else{
    jsonData = JSON.parse(mp.get(jsonDoc));
    }
    var variable = $(this).attr("data-var");
    var value = $(this).attr("data-val");
   
    jsonData[variable] = value;
   
    mp.set(jsonDoc, JSON.stringify(jsonData));
});
mp.forEach(function(value, key) {
if(key === undefined){
console.log("error: document name is undefined");
return;
}
if(value === undefined){
console.log("error: variable or value is wrong");
return;
}
api.changeDocument(key, "JSON 데이터 수정", value, 1, 1);
mw.loader.using( ['mediawiki.notify','mediawiki.Title'] ).then( function () {
    mw.notify('JSON 데이터가 수정되었습니다.');
});
});
}
$(uncy_jsonEdit());
</pre>
 
와 같이 바꿔주세요. --{{사용자:Bd3076/서명}} 2019년 2월 20일 (수) 18:49 (KST)
:{{완료}} {{사용자:Js091213/서명}} 2019년 2월 20일 (수) 19:55 (KST)
 
== Common.js 수정 요청 ==
 
커먼자스 맨 아래에
 
<pre><nowiki>
function enoughEdit(){
function compareEditCount(number, id1, id2){
var editCount = mw.config.get('wgUserEditCount');
console.log(number + ', ' + id1 + ', ' + id2 + ', ' + editCount);
if(editCount < number){
document.getElementById(id2).innerHTML = "";
}
else{
document.getElementById(id1).innerHTML = "";
}
}
$('.editCompare').each(function(){
console.log(1);
var num = $(this).attr("data-num");
var enough = $(this).attr("data-id1");
var nenough = $(this).attr("data-id2");
compareEditCount(num, enough, nenough);
});
}
$(enoughEdit());
</nowiki></pre>
 
를 추가해 주세요.
 
요청을 너무 많이 해서 죄송합니다. -- {{:사용자:Bd3076/서명}} 2019년 2월 21일 (목) 14:48 (KST)

2022년 9월 26일 (월) 00:07 기준 최신판