משתמש:Noambarsh/common.js

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

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

  • פיירפוקס / ספארי: להחזיק את המקש Shift בעת לחיצה על טעינה מחדש (Reload) או ללחוץ על צירוף המקשים Ctrl-F5 או Ctrl-R (במחשב מק: ⌘-R).
  • גוגל כרום: ללחוץ על צירוף המקשים Ctrl-Shift-R (במחשב מק: ⌘-Shift-R).
  • אדג': להחזיק את המקש Ctrl בעת לחיצה על רענן (Refresh) או ללחוץ על צירוף המקשים Ctrl-F5.
/*
	Credit to ENHANCED RANDOM ARTICLE from the English Wikipedia (Wikipedia:Enhanced Random Article) By User:Gary!
    Hebrew version by User:Noambarsh
*/
var addEnhancedRandomArticlePortletLink, addPortletLink, checkRandomMatch, eRCheckMatches, eRCreateArticleList, enhancedRandomArticle, enhancedRandomArticleBegin, mw;

if (typeof unsafeWindow !== 'undefined') {
  addPortletLink = unsafeWindow.addPortletLink;
  mw = unsafeWindow.mw;
}

enhancedRandomArticleBegin = function() {
  return $.get(mw.config.get('wgScriptPath') + '/api.php', {
    action: 'query',
    list: 'random',
    rnnamespace: 0,
    format: 'json',
    rnlimit: 10
  }, eRCreateArticleList);
};

eRCreateArticleList = function(obj) {
  var article, articles, articlesArray, _i, _len;
  articles = obj.query.random;
  articlesArray = [];
  for (_i = 0, _len = articles.length; _i < _len; _i++) {
    article = articles[_i];
    articlesArray.push(article.title);
  }
  return $.get(mw.config.get('wgScriptPath') + '/api.php', {
    action: 'query',
    prop: 'revisions',
    rvdir: 'older',
    rvprop: 'content',
    titles: articlesArray.join('|'),
    format: 'json'
  }, eRCheckMatches);
};

checkRandomMatch = function(title, content) {
  var disambiguationMatches, matched;
  matched = false;
  if (content.match("{{קצרמר") || content.match("{{שכתוב") || content.match("{{לשכתב") || content.match("{{עריכה") || content.match("{{לערוך") || content.match("{{מקורות") || content.match("{{להשלים")) {
    matched = true;
  }
  return matched;
};

eRCheckMatches = function(obj) {
  var article, articles, content, matched, page, title, value, _i, _len, _ref;
  articles = [];
  _ref = obj.query.pages;
  for (page in _ref) {
    value = _ref[page];
    articles.push(value);
  }
  for (_i = 0, _len = articles.length; _i < _len; _i++) {
    article = articles[_i];
    content = article['revisions'][0]['*'];
    title = article['title'];
    matched = checkRandomMatch(title, content);
    if (matched) {
      window.location = '/wiki/' + title;
      return;
    }
  }
  return alert("ערך לא נמצא אחרי 10 נסיונות - כל הכבוד לוויקיפדים החרוצים! לחצו שוב כדי לנסות עוד 10 פעמים");
};

addEnhancedRandomArticlePortletLink = function() {
  var node, nodeLink, randomPageLink;
  if ($('#p-navigation').length) {
    mw.util.addPortletLink('p-navigation', '#', 'ערך אקראי לטיפול', 't-enhanced-random-article', 'ערך אקראי לטיפול לדוגמא קצרמרים וערכים לשכתוב', '', '#n-randompage');
    $('#t-enhanced-random-article').on('click', function(event) {
      event.preventDefault();
      return enhancedRandomArticleBegin();
    });
    if ($('#n-randompage').length) {
      randomPageLink = $('#n-randompage').children().eq(0);
      randomPageLink.attr('accesskey', null);
    }
    node = $('#t-enhanced-random-article');
    nodeLink = node.children().eq(0);
    nodeLink.attr('accesskey', 'x');
    return nodeLink.attr('title', nodeLink.attr('title') + ' [ctrl-x]');
  }
};

$(addEnhancedRandomArticlePortletLink);

if (typeof unsafeWindow !== 'undefined') {
  unsafeWindow.checkRandomMatch = checkRandomMatch;
  unsafeWindow.enhancedRandomArticleBegin = enhancedRandomArticleBegin;
  unsafeWindow.eRCheckMatches = eRCheckMatches;
  unsafeWindow.eRCreateArticleList = eRCreateArticleList;
}