לדלג לתוכן

מדיה ויקי:Gadget-CompraWiki.js

מתוך המכלול, האנציקלופדיה היהודית

לתשומת ליבך: לאחר הפרסום, ייתכן שיהיה צורך לנקות את זיכרון המטמון (cache) של הדפדפן כדי להבחין בשינויים.

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
/*גאדג'ט להשואה בין גודל הערך במכלול לבין גודלו בויקיפדיה
הגאדג'ט גם יודע להחליף את שמות הערכים בהם מקובל לשנות במכלול כגון הוספת תארים לרבנים או הוספת מרכאות ל"קדושים" נוצריים
הגאדג'ט יודע גם לזהות אם הדף לא קיים בויקיפדיה
הגאדג'ט נכתב על ידי [[משתמש:גאון הירדן]] בסיוע של [[משתמש:Yosef haftke]]
*/
$(document).ready(function () {
  if (
    mw.config.get("wgNamespaceNumber") === 0 &&
    mw.config.get("wgPageName") != "עמוד_ראשי" &&
    mw.config.get("wgAction") === "view" &&
    location.href.indexOf("&diff") == -1 &&
    mw.config.get("wgCategories").indexOf("ערכים לפתיחה") == -1 &&
    mw.config.get("wgCategories").indexOf("המכלול: ערכים מילוניים") == -1
  ) {
    if (!PageName)
      var PageName = mw.config
        .get("wgPageName")
        .replace(/^רבי_/, "")
        .replace(/^הרב_/, "")
        .replace("_", " ")
        .replace(/ה"קדושה"/g, "הקדושה")
        .replace(/ה"קדוש"/g, "הקדוש")
        .replace(/ה"קדושים"/g, "הקדושים")
        .replace(/אישיות_מהתנ"ך/g, "דמות מקראית");
    var wikisize, michsize, message;
	var btn = document.createElement("button");
	btn.textContent = "השווה גודל הערך מול ויקיפדיה";
	btn.onclick = function(){

    
      var params = {
        action: "query",
        format: "json",
        prop: "info",
        indexpageids: true,
        titles: PageName,
        utf8: 1,
      }
      new mw.ForeignApi(mw.user.options.get("userjs-import-source") === "direct" ? "https://he.wikipedia.org/w/api.php" : "https://import.hamichlol.org.il/", { anonymous: true })
      .get(params)
      .done(function (response) {
      if (response.query.pages["-1"]) {
        if (
          mw.config.get("wgCategories") &&
          mw.config
            .get("wgCategories")
            .indexOf("המכלול: ערכים שנוצרו במכלול") == -1
        ) {
          message = "הדף לא קיים בוויקיפדיה העברית.";
          $("#bodyContent").append(message);
        }
      } else if (mw.config.get("wgArticleId") !== 0) {
        wikisize = response.query.pages[response.query.pageids[0]].length;
        var localpagename = mw.config.get("wgPageName");
        console.log(localpagename);
        var params = {
          action: "query",
          format: "json",
          prop: "info",
          indexpageids: true,
          titles: localpagename,
          utf8: 1,
        };
        $.getJSON("/w/api.php", params, function (data) {
          console.log(data);
          michsize = data.query.pages[data.query.pageids[0]].length;
          var diffsize = wikisize - michsize;
          var el;
          var item = "<div>";
          if (diffsize > 0) {
            el = diffsize > 399 ? "strong" : "span";
            item +=
              '<div class="mw-rtrc-meta">ויקיפדיה: <' +
              el +
              ' class="mw-plusminus mw-plusminus-neg">(+' +
              diffsize.toLocaleString() +
              ")</" +
              el +
              "></div>";
          } else if (diffsize === 0) {
            item +=
              '<div class="mw-rtrc-meta"><span class="mw-plusminus mw-plusminus-null">ויקיפדיה: (0)</span></div>';
          } else {
            el = diffsize < -399 ? "strong" : "span";
            item +=
              '<div class="mw-rtrc-meta">ויקיפדיה: <' +
              el +
              ' class="mw-plusminus mw-plusminus-pos"> (' +
              diffsize.toLocaleString() +
              ")</" +
              el +
              "></div>";
          }
          var corname = mw.config.get("wgPageName").trim().replace(/_/g, " ");
          PageName = PageName.trim().replace(/_/g, " ");
          if (corname != PageName) {
            item += " (" + PageName + ")";
          }
          item += "</div>";

          setTimeout(function () {
          	btn.style.display = "none"
            $("#bodyContent").append(item);
          }, 500);
        });
      }
    });
	}
	$("#bodyContent").append(btn);
  }
});