Dc12d13

(function () {

   document.addEventListener('DOMContentLoaded', function () {
       function showLoot(monster) {
           var lootList = document.getElementById('loot-list');
           lootList.innerHTML = ; // Clear existing content
           var apiUrl = mw.util.wikiScript('api') + '?action=parse&page=' + encodeURIComponent(monster) + '&prop=wikitext&format=json&origin=*';
           fetch(apiUrl)
               .then(function (response) {
                   if (!response.ok) {
                       throw new Error('Network response was not ok: ' + response.statusText);
                   }
                   return response.json();
               })
               .then(function (data) {
                   var wikitext = data.parse.wikitext['*'];
                   console.log(wikitext);
                   // Handle redirects
                   if (wikitext.startsWith('#Redirect')) {
                       var targetPageMatch = wikitext.match(/\[\[([^\]]+)\]\]/);
                       if (targetPageMatch) {
                           var targetPage = targetPageMatch[1];
                           var redirectUrl = mw.util.wikiScript('api') + '?action=parse&page=' + encodeURIComponent(targetPage) + '&prop=wikitext&format=json&origin=*';
                           return fetch(redirectUrl)
                               .then(function (response) {
                                   if (!response.ok) {
                                       throw new Error('Redirect Network response was not ok: ' + response.statusText);
                                   }
                                   return response.json();
                               });
                       }
                   }
                   return data;
               })
               .then(function (data) {
                   var wikitext = data.parse.wikitext['*'];
                   var weapondropsMatch = wikitext.match(/\|Weapondrops\s*=\s*([^\n|]*)/);
                   if (weapondropsMatch) {
                       var weapondrops = weapondropsMatch[1].trim();
                       var lootItems = weapondrops.split('::');
                       lootItems.forEach(function (item) {
                           if (item.trim()) {
                               var li = document.createElement('li');
                               li.textContent = item.trim();
                               lootList.appendChild(li);
                           }
                       });
                   } else {
                       var li = document.createElement('li');
                       li.textContent = 'No weapon drops found';
                       lootList.appendChild(li);
                   }
               })
               .catch(function (error) {
                   var lootList = document.getElementById('loot-list');
                   if (lootList) {
                       var li = document.createElement('li');
                       li.textContent = 'Error fetching loot: ' + error.message;
                       lootList.appendChild(li);
                   } else {
                       console.error('Element with ID "loot-list" not found.');
                   }
                   console.error('Error:', error);
               });
       }
       var items = document.querySelectorAll('#monster-list li');
       items.forEach(function (item) {
           item.addEventListener('click', function () {
               showLoot(item.getAttribute('data-monster'));
           });
       });
   });

})();