משתמש: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
*/
var addEnhancedRandomArticlePortletLink, addPortletLink, checkRandomMatch, eRCheckMatches, eRCreateArticleList, enhancedRandomArticle, enhancedRandomArticleBegin, mw;

if (typeof enhancedRandomArticle === "undefined" || enhancedRandomArticle === null) {
  enhancedRandomArticle = {};
}

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

enhancedRandomArticleBegin = function() {
  if (enhancedRandomArticle == null) {
    enhancedRandomArticle = {};
  }
  if (enhancedRandomArticle.patterns == null) {
    enhancedRandomArticle.patterns = [];
  }
  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 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', '#', 'Enhanced random', 't-enhanced-random-article', 'Show a random article, with enhanced settings', '', '#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.enhancedRandomArticle = enhancedRandomArticle;
  unsafeWindow.enhancedRandomArticleBegin = enhancedRandomArticleBegin;
  unsafeWindow.eRCheckMatches = eRCheckMatches;
  unsafeWindow.eRCreateArticleList = eRCreateArticleList;
}