A copyright violation detector running on Wikimedia Cloud Services https://tools.wmflabs.org/copyvios/
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
12 лет назад
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181
  1. function set_background_potd() {
  2. if (cache_cookie()) return;
  3. var d = new Date();
  4. var callback = "earwigpotd1";
  5. var date = (d.getUTCFullYear()) + "-" + zero_pad(d.getUTCMonth() + 1, 2) + "-" + zero_pad(d.getUTCDate(), 2);
  6. var base = "//commons.wikimedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=json&titles=Template:Potd/";
  7. var url = base + date + "&callback=" + callback;
  8. var script = document.createElement("script");
  9. var head = document.getElementsByTagName("head")[0];
  10. window[callback] = function(data) {
  11. head.removeChild(script);
  12. parse_potd_file_name(data);
  13. };
  14. script.src = url;
  15. head.appendChild(script);
  16. }
  17. function set_background_list() {
  18. if (cache_cookie()) return;
  19. var callback = "earwigpotd1";
  20. var base = "//commons.wikimedia.org/w/api.php?action=query&prop=revisions&rvprop=content&format=json&titles=User:The+Earwig/POTD";
  21. var url = base + "&callback=" + callback;
  22. var script = document.createElement("script");
  23. var head = document.getElementsByTagName("head")[0];
  24. window[callback] = function(data) {
  25. head.removeChild(script);
  26. parse_list_file_name(data);
  27. };
  28. script.src = url;
  29. head.appendChild(script);
  30. }
  31. function cache_cookie() {
  32. var cookie = get_cookie("EarwigBackgroundCache");
  33. if (cookie) {
  34. try {
  35. data = JSON.parse(cookie);
  36. var filename = data.filename;
  37. var url = data.url;
  38. var descurl = data.descurl;
  39. var imgwidth = data.imgwidth;
  40. var imgheight = data.imgheight;
  41. if (filename && url && descurl && imgwidth && imgheight) {
  42. set_background(filename, url, descurl, imgwidth, imgheight);
  43. return true;
  44. }
  45. }
  46. catch (SyntaxError) {}
  47. }
  48. return false;
  49. }
  50. function parse_potd_file_name(data) {
  51. var content = "";
  52. var res = data["query"]["pages"];
  53. for (pageid in res) {
  54. content = res[pageid]["revisions"][0]["*"];
  55. }
  56. var filename = /\{\{Potd filename\|(1=)?(.*?)\|.*?\}\}/.exec(content)[2];
  57. var callback = "earwigpotd2";
  58. var base = "//commons.wikimedia.org/w/api.php?action=query&prop=imageinfo&iiprop=url|size&format=json&titles=File:";
  59. var url = base + escape(filename) + "&callback=" + callback;
  60. var script = document.createElement("script");
  61. var head = document.getElementsByTagName("head")[0];
  62. window[callback] = function(data) {
  63. head.removeChild(script);
  64. parse_file_url(data, escape(filename.replace(/ /g, "_")));
  65. };
  66. script.src = url;
  67. head.appendChild(script);
  68. }
  69. function parse_list_file_name(data) {
  70. var content = "";
  71. var res = data["query"]["pages"];
  72. for (pageid in res) {
  73. content = res[pageid]["revisions"][0]["*"];
  74. }
  75. var filenames = [];
  76. var regexp = /\*\*?\s*\[\[:File:(.*?)\]\]/g;
  77. while ((match = regexp.exec(content)) !== null) {
  78. filenames.push(match[1]);
  79. }
  80. var filename = filenames[Math.floor(Math.random() * filenames.length)];
  81. var callback = "earwigpotd2";
  82. var base = "//commons.wikimedia.org/w/api.php?action=query&prop=imageinfo&iiprop=url|size&format=json&titles=File:";
  83. var url = base + escape(filename) + "&callback=" + callback;
  84. var script = document.createElement("script");
  85. var head = document.getElementsByTagName("head")[0];
  86. window[callback] = function(data) {
  87. head.removeChild(script);
  88. parse_file_url(data, escape(filename.replace(/ /g, "_")));
  89. };
  90. script.src = url;
  91. head.appendChild(script);
  92. }
  93. function parse_file_url(data, filename) {
  94. var url = "";
  95. var descurl = "";
  96. var imgwidth = 1024;
  97. var imgheight = 768;
  98. var res = data["query"]["pages"];
  99. for (pageid in res) {
  100. r = res[pageid]["imageinfo"][0];
  101. url = r["url"];
  102. descurl = r["descriptionurl"];
  103. imgwidth = r["width"];
  104. imgheight = r["height"];
  105. }
  106. set_background(filename, url, descurl, imgwidth, imgheight);
  107. var data = {"filename": filename, "url": url, "descurl": descurl, "imgwidth": imgwidth, "imgheight": imgheight};
  108. var expires = new Date();
  109. expires.setUTCMilliseconds(0);
  110. expires.setUTCSeconds(0);
  111. expires.setUTCMinutes(0);
  112. expires.setUTCHours(0);
  113. expires.setUTCDate(expires.getUTCDate() + 1);
  114. set_cookie_with_date("EarwigBackgroundCache", JSON.stringify(data), expires);
  115. }
  116. function set_background(filename, url, descurl, imgwidth, imgheight) {
  117. var s = get_window_size();
  118. var winwidth = s[0];
  119. var winheight = s[1];
  120. var width = winwidth;
  121. if (imgwidth/imgheight > winwidth/winheight) {
  122. width = Math.round((imgwidth/imgheight) * winheight);
  123. }
  124. if (width >= imgwidth) {
  125. document.body.style.backgroundImage = "url('" + url + "')";
  126. if (width > imgwidth) {
  127. document.body.style.setProperty("background-size", "cover");
  128. }
  129. } else {
  130. url = url.replace(/\/commons\//, "/commons/thumb/") + "/" + width + "px-" + filename;
  131. document.body.style.backgroundImage = "url('" + url + "')";
  132. }
  133. document.getElementById("bg_image_link").href = descurl;
  134. }
  135. function zero_pad(value, length) {
  136. value = String(value);
  137. length = length || 2;
  138. while (value.length < length) {
  139. value = "0" + value;
  140. }
  141. return value;
  142. }
  143. function get_window_size() {
  144. // See http://www.javascripter.net/faq/browserw.htm
  145. if (document.body && document.body.offsetWidth && document.body.offsetHeight) {
  146. return [document.body.offsetWidth, document.body.offsetHeight];
  147. }
  148. if (document.compatMode=="CSS1Compat" && document.documentElement && document.documentElement.offsetWidth && document.documentElement.offsetHeight) {
  149. return [document.documentElement.offsetWidth, document.documentElement.offsetHeight];
  150. }
  151. if (window.innerWidth && window.innerHeight) {
  152. return [window.innerWidth, window.innerHeight];
  153. }
  154. return [1024, 768];
  155. }