Χρήστης:Geraki/talksincat.js

Από τη Βικιπαίδεια, την ελεύθερη εγκυκλοπαίδεια

Μετά την αποθήκευση πρέπει να καθαρίσετε την κρυφή μνήμη (cache) του browser σας για να δείτε τις αλλαγές: Σε Chrome, Firefox, Safari, Internet Explorer και Edge: Κρατήστε πατημένο το Shift και κάντε κλικ στο κουμπί Ανανέωση στην μπάρα εργαλείων.

if (wgNamespaceNumber == 14) { // Make sure we're in Category space
 
// Grab page list elements
 var pages = $("#mw-pages li");
 
// Create page var
 var page;
 
 $.each(pages, function(k, page) {  // Iterate through list elements; each step below runs on each list element 
 
  // Work with the link within each list element from now on
   page = $(page).find('a');
 
  // Clone the link
   var pageClone = page.clone(true);
 
  // If the link isn't a talk page, start constructing the talk page link
   if (page.attr('href').indexOf("συζήτηση:") == -1 && pageClone.attr('href').indexOf("%CE%A3%CF%85%CE%B6%CE%AE%CF%84%CE%B7%CF%83%CE%B7:") == -1){  
 
    // Set talk page link text
     pageClone.text("συζήτηση");
 
    // Do a dumb replace of the original URL and tooltip
     pageClone.attr('title', pageClone.attr('title').replace("Βικιπαίδεια:", "Βικιπαίδεια συζήτηση:"));
     pageClone.attr('title', pageClone.attr('title').replace("Χρήστης:", "Συζήτηση χρήστη:"));
     pageClone.attr('title', pageClone.attr('title').replace("Πρότυπο:", "Συζήτηση προτύπου:"));
     pageClone.attr('title', pageClone.attr('title').replace("Πύλη:", "Συζήτηση πύλης:"));
     pageClone.attr('title', pageClone.attr('title').replace("Κατηγορία:", "Συζήτηση κατηγορίας:"));
     pageClone.attr('title', pageClone.attr('title').replace("MediaWiki:", "MediaWiki talk:"));
     pageClone.attr('title', pageClone.attr('title').replace("Βοήθεια:", "Συζήτηση βοήθειας:"));
     pageClone.attr('title', pageClone.attr('title').replace("Βιβλίο:", "Συζήτηση βιβλίου:"));
     pageClone.attr('href', pageClone.attr('href').replace("Βικιπαίδεια:", "Βικιπαίδεια_συζήτηση:"));
     pageClone.attr('href', pageClone.attr('href').replace("Χρήστης:", "Συζήτηση_χρήστη:"));
     pageClone.attr('href', pageClone.attr('href').replace("Πρότυπο:", "Συζήτηση_προτύπου:"));
     pageClone.attr('href', pageClone.attr('href').replace("Πύλη:", "Συζήτηση_πύλης:"));
     pageClone.attr('href', pageClone.attr('href').replace("Κατηγορία:", "Συζήτηση_κατηγορίας:"));
     pageClone.attr('href', pageClone.attr('href').replace("MediaWiki:", "MediaWiki_συζήτηση:"));
     pageClone.attr('href', pageClone.attr('href').replace("Βοήθεια:", "Συζήτηση_βοήθειας:"));
     pageClone.attr('href', pageClone.attr('href').replace("Βιβλίο:", "Συζήτηση_βιβλίου:"));
 
    // If none of those caught it, it must be an article space link, so add "Talk:" before the page title
     if (pageClone.attr('href').indexOf("συζήτηση:") == -1){
        pageClone.attr('title', "Συζήτηση:" + pageClone.attr('title'));
        pageClone.attr('href', page.attr('href').replace("wiki/", "wiki/Συζήτηση:"));
     }
 
  // If the link IS a talk page, start constructing the main page link
   } else {
 
    // Set main page link text
     pageClone.text("κύρια");
 
    // Do a dumb replace of the original URL and tooltip
     pageClone.attr('title', pageClone.attr('title').replace("%CE%A3%CF%85%CE%B6%CE%AE%CF%84%CE%B7%CF%83%CE%B7:", ""));
     pageClone.attr('title', pageClone.attr('title').replace("Βικιπαίδεια συζήτηση:", "Βικιπαίδεια:"));
     pageClone.attr('title', pageClone.attr('title').replace("Συζήτηση χρήστη:", "Χρήστης:"));
     pageClone.attr('title', pageClone.attr('title').replace("Συζήτηση προτύπου:", "Πρότυπο:"));
     pageClone.attr('title', pageClone.attr('title').replace("Συζήτηση πύλης:", "Πύλη:"));
     pageClone.attr('title', pageClone.attr('title').replace("Συζήτηση κατηγορίας:", "Κατηγορία:"));
     pageClone.attr('title', pageClone.attr('title').replace("MediaWiki συζήτηση:", "MediaWiki:"));
     pageClone.attr('title', pageClone.attr('title').replace("Συζήτηση βοήθειας:", "Βοήθεια:"));
     pageClone.attr('title', pageClone.attr('title').replace("Συζήτηση βιβλίου:", "Βιβλίο:"));
     pageClone.attr('href', pageClone.attr('href').replace("Συζήτηση:", ""));
     pageClone.attr('href', pageClone.attr('href').replace("Βικιπαίδεια_συζήτηση:", "Βικιπαίδεια:"));
     pageClone.attr('href', pageClone.attr('href').replace("Συζήτηση_χρήστη:", "Χρήστης:"));
     pageClone.attr('href', pageClone.attr('href').replace("Συζήτηση_προτύπο:", "Πρότυπο:"));
     pageClone.attr('href', pageClone.attr('href').replace("Συζήτηση_πύλης:", "Πύλη:"));
     pageClone.attr('href', pageClone.attr('href').replace("Συζήτηση_κατηγορίας:", "Κατηγορία:"));
     pageClone.attr('href', pageClone.attr('href').replace("MediaWiki_συζήτηση:", "MediaWiki:"));
     pageClone.attr('href', pageClone.attr('href').replace("Συζήτηση_βοήθειας:", "Βοήθεια:"));
     pageClone.attr('href', pageClone.attr('href').replace("Συζήτηση_βιβλίου:", "Βιβλίο:"));
   }
 
  // Link is done, just need to check if the target exists so we can turn it red if not.
  // Grab link tooltip (as it now conveniently contains the page title alone, which we need for the Ajax query)
   var cloneTitle = pageClone.attr('title');
 
  // Perform Ajax query (using jQuery's awesomely-simple Ajax function) to get target's "title" data from MediaWiki API
   $.ajax({
     url:"http://el.wikipedia.org/w/api.php?action=query&titles=" + encodeURIComponent(cloneTitle) + "&format=xml", 
     dataType: "xml", 
     type: "GET",
     success:parseIt
   });
 
  // If Ajax result shows the target doesn't exist, add "new" class to the link to turn it red
   function parseIt (xml){
       var missing = $(xml).find('page').attr('missing');              // Grab the "missing" attribute from the "page" xml tag that's included in "title" data
       if (typeof missing != "undefined") pageClone.addClass('new');   // The "missing" field is only defined (as empty string) in the API when the page doesn't exist,
   }                                                                   // ...so if "missing" is NOT undefined, the target IS missing. Turn the link red.
 
  // Insert the constructed link after the existing one, along with space and parenthesis
   pageClone.insertAfter(page).before(" (").after(")");
 
 });
 
}