사용자:하늘/moveCategory.js

< 사용자:하늘
Chirho (토론 | 기여)님의 2022년 5월 11일 (수) 10:30 판 (Chirho님이 사용자:Cerulean/moveCategory.js 문서를 넘겨주기를 만들지 않고 사용자:하늘/moveCategory.js 문서로 이동했습니다: "Cerulean" 사용자의 이름을 "하늘"(으)로 바꿀 때 문서를 자동으로 이동했습니다)

참고: 설정을 저장한 후에 바뀐 점을 확인하기 위해서는 브라우저의 캐시를 새로 고쳐야 합니다.

  • 파이어폭스 / 사파리: Shift 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5 또는 Ctrl-R을 입력 (Mac에서는 ⌘-R)
  • 구글 크롬: Ctrl-Shift-R키를 입력 (Mac에서는 ⌘-Shift-R)
  • 인터넷 익스플로러 / 엣지: Ctrl 키를 누르면서 새로 고침을 클릭하거나, Ctrl-F5를 입력.
  • 오페라: Ctrl-F5를 입력.
var toCategoryName = prompt("새 분류 이름을 입력하세요.")
var originCategoryName = mw.config.get().wgPageName
var originCategoryTitle = mw.config.get().wgTitle

new mw.Api().get({
  action: 'query',
  list: 'categorymembers',
  cmtitle: originCategoryName,
  cmlimit: 'max',
  format: 'json',
  cmtype: 'page'
}).then(function(json) {
  json["query"]["categorymembers"].forEach(function(data) {
    console.log(data.title + "\n" + originCategoryName + " -> 분류:" + toCategoryName);
    new mw.Api().edit(
      data.title,
      function(revision) {
        var pattern = new RegExp("\[\[[ ]*분류[ ]*:[ ]*" + originCategoryTitle + "[ ]*\]\]")
        var pattern2 = new RegExp("\[\[[ ]*분류[ ]*:[ ]*" +
          originCategoryTitle.charAt(0).toLowerCase() + originCategoryTitle.slice(1) +
          "[ ]*\]\]")

        var replaced = revision.content.replace(pattern, "[[분류:" + toCategoryName +
        "]]").replace(pattern2, "[[분류:" + toCategoryName +
        "]]");

        return {
          text: replaced
        };
      }).then(function(data) {
      console.log(data)
    }).fail(function(data) {
      console.log(data)
    })
  });
});