사용자:하늘/moveCategory.js: 두 판 사이의 차이

잔글 (Chirho님이 사용자:Cerulean/moveCategory.js 문서를 넘겨주기를 만들지 않고 사용자:하늘/moveCategory.js 문서로 이동했습니다: "Cerulean" 사용자의 이름을 "하늘"(으)로 바꿀 때 문서를 자동으로 이동했습니다)
편집 요약 없음
1번째 줄: 1번째 줄:
var toCategoryName = prompt("새 분류 이름을 입력하세요.")
var toCategoryName = prompt("새 분류 이름을 입력하세요.");
var originCategoryName = mw.config.get().wgPageName
var originCategoryName = mw.config.get().wgPageName;
var originCategoryTitle = mw.config.get().wgTitle
var originCategoryTitle = mw.config.get().wgTitle;
 
//mw.loader.load('/index.php?title=사용자:하늘/page.js&action=raw&ctype=text/javascript');


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


         var replaced = revision.content.replace(pattern, "[[분류:" + toCategoryName +
         var replaced = revision.content.replace(pattern, "[[분류:" + toCategoryName +
29번째 줄: 31번째 줄:
         };
         };
       }).then(function(data) {
       }).then(function(data) {
       console.log(data)
       console.log(data);
     }).fail(function(data) {
     }).fail(function(data) {
       console.log(data)
       console.log(data);
     })
     })
   });
   });
});
});

2022년 5월 13일 (금) 15:35 판

var toCategoryName = prompt("새 분류 이름을 입력하세요.");
var originCategoryName = mw.config.get().wgPageName;
var originCategoryTitle = mw.config.get().wgTitle;

//mw.loader.load('/index.php?title=사용자:하늘/page.js&action=raw&ctype=text/javascript');

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);
    })
  });
});