Шаблон:RandomSong: различия между версиями
Admin (обсуждение | вклад) (Admin изменил модель содержимого страницы Шаблон:RandomSong с «JavaScript» на «вики-текст») Метка: изменение модели содержимого |
Admin (обсуждение | вклад) мНет описания правки |
||
(не показано 18 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
<div id="randomSong"></div> | {{#ifeq: {{#vardefine:category|{{urlencode:Песни}}}}{{#vardefineecho:api_url|https://bard-wiki.net/w/api.php}}{{#vardefineecho:get_all_pages|{{#get_web_data: {{#var:api_url}}|action=query&list=categorymembers&cmtitle=Category:{{#var:category}}&cmlimit=max&format=json}}}}{{#vardefine:total_num_pages|{{#var: get_all_pages|totalhits}}}}|{{#expr: {{#var:total_num_pages}} > 0 }} | ||
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> | |{{#vardefine:get_random_page|{{#get_web_data: {{#var:api_url}}|action=query&list=categorymembers&cmtitle=Category:{{#var:category}}&cmlimit=max&cmtype=page&format=json}}}}{{#vardefine:chosen_num_page|{{#expr: {{#var:get_random_page|totalhits}} - 1 }} }} {{#var:get_random_page|jsondata|["query"]["categorymembers",{{#var:chosen_num_page}},"title"]|urlencode}} | ||
<script> $(document).ready(function() { | |Категория "Песни" не содержит ни одной страницы. | ||
// задаем параметры API запроса | }} | ||
var apiUrl = "https://bard-wiki.net/api.php?action=query&list=categorymembers&cmtitle=Категория:Песни&format=json&cmlimit=500"; | |||
// делаем запрос к API MediaWiki | Ссылка на АPI{{#var:api_url}} | ||
$.getJSON(apiUrl, function(data) { | |||
// получаем список страниц из указанной категории | Категория {{#var:category}} | ||
var songs = data.query.categorymembers; | |||
// выбираем случайную страницу | get_web_data | ||
var randomSong = songs[Math.floor(Math.random()*songs.length)]; | {{#get_web_data: {{#var:api_url}}|action=query&list=categorymembers&cmtitle=Category:{{#var:category}}&cmlimit=max&cmtype=page&format=json}} | ||
// получаем заголовок случайной страницы | |||
var songTitle = randomSong.title; | get_web_data2 | ||
// формируем ссылку на случайную страницу | {{#get_web_data: url=https://bard-wiki.net/api.php?action=query&list=categorymembers&cmtitle=Category:%D0%9F%D0%B5%D1%81%D0%BD%D0%B8&format=json|format=json}} | ||
var songLink = "https://bard-wiki.net/" + songTitle; | |||
// выводим результат на страницу | |||
$('#randomSong').html("Случайная песня: <a href=\"" + songLink + "\">" + songTitle + "</a>"); | https://bard-wiki.net/api.php?action=query&list=categorymembers&cmtitle=Category:%D0%9F%D0%B5%D1%81%D0%BD%D0%B8 | ||
}); | |||
{{#vardefine:get_random_page|{{#get_web_data: {{#var:api_url}}|action=query&list=categorymembers&cmtitle=Category:{{#var:category}}&cmlimit=max&cmtype=page&format=json}}}} | |||
}); | |||
</script> | get_random_page {{#var:get_random_page}} | ||
{{#vardefine:chosen_num_page|{{#expr: {{#var:get_random_page|totalhits}} - 1 }} }} | |||
{{#var:chosen_num_page}} | |||
{{#var:get_random_page|jsondata|["query"]["categorymembers",{{#var:chosen_num_page}},"title"]|urlencode}} | |||
chosen_num_page {{#var:chosen_num_page}} | |||
<!--{{#ifeq: {{#vardefine:category|{{urlencode:Песни}}}}{{#vardefineecho:api_url|https://bard-wiki.net/w/api.php}}{{#vardefineecho:get_all_pages|{{#get_web_data: {{#var:api_url}}|action=query&list=categorymembers&cmtitle=Category:{{#var:category}}&cmlimit=max&format=json}}}}{{#vardefine:total_num_pages|{{#var: get_all_pages|totalhits}}}}|{{#expr: {{#var:total_num_pages}} > 0 }} | |||
| {{#vardefine:get_random_page|{{#get_web_data: {{#var:api_url}}|action=query&list=categorymembers&cmtitle=Category:{{#var:category}}&cmlimit=max&cmtype=page&format=json}}}}{{#vardefine:chosen_num_page|{{#expr: {{#var:get_random_page|totalhits}} - 1 }} }} {{#var:get_random_page|jsondata|["query"]["categorymembers",{{#var:chosen_num_page}},"title"]|urlencode}} | |||
| Категория "Песни" не содержит ни одной страницы. | |||
}}--> | |||
<!--<div id="randomSong"></div> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> <script> $(document).ready(function() { // задаем параметры API запроса var apiUrl = "https://bard-wiki.net/api.php?action=query&list=categorymembers&cmtitle=Категория:Песни&format=json&cmlimit=500"; // делаем запрос к API MediaWiki $.getJSON(apiUrl, function(data) { // получаем список страниц из указанной категории var songs = data.query.categorymembers; // выбираем случайную страницу var randomSong = songs[Math.floor(Math.random()*songs.length)]; // получаем заголовок случайной страницы var songTitle = randomSong.title; // формируем ссылку на случайную страницу var songLink = "https://bard-wiki.net/" + songTitle; // выводим результат на страницу $('#randomSong').html("Случайная песня: <a href=\"" + songLink + "\">" + songTitle + "</a>"); }); }); </script>--> |
Текущая версия от 09:57, 23 июня 2023
Категория "Песни" не содержит ни одной страницы.
Ссылка на АPIhttps://bard-wiki.net/w/api.php
Категория %D0%9F%D0%B5%D1%81%D0%BD%D0%B8
get_web_data Не удалось получить URL https://bard-wiki.net/w/api.php после 3 попыток.
get_web_data2
get_random_page Не удалось получить URL https://bard-wiki.net/w/api.php после 3 попыток.
Ошибка выражения: неожидаемый оператор <
Не удалось получить URL https://bard-wiki.net/w/api.php после 3 попыток.
chosen_num_page Ошибка выражения: неожидаемый оператор <