Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name TopArticlesExpander
- // @description Allows to expand list of top/latest articles.
- // @namespace Violentmonkey Scripts
- // @grant none
- // @include *.e-sim.org/index.html*
- // @include *.e-sim.org/
- // ==/UserScript==
- /**
- * Init
- *
- */
- $(document).ready(function() {
- var aObj = getTopArticles();
- modifyArticlesTabs(aObj);
- });
- /**
- * Event handlers
- *
- */
- $(document).ready(function() {
- $('#showLinkTab1').click(function() {
- $('#showLinkTab1').fadeOut('fast', function() {
- $('#hideLinkTab1').fadeIn('fast');
- $('#tab1menu').fadeIn('fast');
- });
- return false;
- });
- $('#hideLinkTab1').click(function() {
- $('#hideLinkTab1').fadeOut('fast', function() {
- $('#showLinkTab1').fadeIn('fast');
- $('#tab1menu').fadeOut('fast');
- });
- return false;
- });
- $('#showLinkTab2').click(function() {
- $('#showLinkTab2').fadeOut('fast', function() {
- $('#hideLinkTab2').fadeIn('fast');
- $('#tab2menu').fadeIn('fast');
- });
- return false;
- });
- $('#hideLinkTab2').click(function() {
- $('#hideLinkTab2').fadeOut('fast', function() {
- $('#showLinkTab2').fadeIn('fast');
- $('#tab2menu').fadeOut('fast');
- });
- return false;
- });
- $('#showLinkTab3').click(function() {
- $('#showLinkTab3').fadeOut('fast', function() {
- $('#hideLinkTab3').fadeIn('fast');
- $('#tab3menu').fadeIn('fast');
- });
- return false;
- });
- $('#hideLinkTab3').click(function() {
- $('#hideLinkTab3').fadeOut('fast', function() {
- $('#showLinkTab3').fadeIn('fast');
- $('#tab3menu').fadeOut('fast');
- });
- return false;
- });
- $('#showLinkTab13').click(function() {
- $('#showLinkTab13').fadeOut('fast', function() {
- $('#hideLinkTab13').fadeIn('fast');
- $('#tab13menu').fadeIn('fast');
- });
- return false;
- });
- $('#hideLinkTab13').click(function() {
- $('#hideLinkTab13').fadeOut('fast', function() {
- $('#showLinkTab13').fadeIn('fast');
- $('#tab13menu').fadeOut('fast');
- });
- return false;
- });
- });
- /**
- * Get JSON Object of top/latest articles.
- * @return {JSON Object} aResult.
- *
- */
- function getTopArticles() {
- var sHtml;
- var nPlayerId = $("[class='button foundation-style'][href*='profile']").attr('href').replace(/[^0-9]/g, '');
- var aResult = [];
- var nCitizenshipId;
- $.ajax({
- type: "GET",
- dataType: "json",
- async: false,
- url: '/apiCitizenById.html?id=' + nPlayerId,
- success: function(data) {
- nCitizenshipId = data['citizenshipId'];
- }
- });
- var sUrl = ['/news.html?newsType=TOP_ARTICLES&country=0', '/news.html?newsType=LATEST_ARTICLES&country=' + nCitizenshipId, '/news.html?newsType=TOP_ARTICLES&country=1'];
- var sHydepark = $('[href="#tabs-13"]').html();
- for (var l = 0; l < 2; l++) {
- aResult[l] = [];
- $.ajax({
- type: "GET",
- dataType: "html",
- async: false,
- url: sUrl[l],
- success: function(html) {
- sHtml = html;
- }
- });
- var aHtmlDOM = $.parseHTML(sHtml);
- var aTopArticlesTab = $('[class*="dataTable"]', aHtmlDOM)[0];
- var aRows = $("tr", aTopArticlesTab);
- aRows = aRows.slice(1, aRows.length);
- var k = 0;
- for (var i = 0; i < aRows.length; i++) {
- var aCell = $("td", aRows[i]);
- var nVotes = parseInt($("[class='bigArticleTab']", aCell[0]).html());
- var sTitle = $("[class='articleTitle']", aCell[0]).html();
- var sArticleLink = $("[class='articleTitle']", aCell[0]).attr('href');
- var sPublishDate = $("div", aCell[0])[1];
- var sArticleType;
- var sNewspaperName = $("[href*='newspaper.html?id=']", aCell[0])[0].innerText;
- var sNewspaperLink = $("[href*='newspaper.html?id=']", aCell[0]).attr('href');
- var sNewspaperAvatar = $("[href*='newspaper.html?id=']", aCell[0])[1];
- sNewspaperAvatar = $('img', sNewspaperAvatar).attr('src');
- $('a', sPublishDate).remove();
- sPublishDate = sPublishDate.innerText;
- sArticleType = sPublishDate.split('\n')[4].trim();
- sPublishDate = sPublishDate.split('\n')[2];
- sPublishDate = sPublishDate.split(/(\d+)/g);
- sArticleType = sArticleType.split(":")[1].trim();
- for (var j = 0; j < sPublishDate.length; j++)
- sPublishDate[j] = sPublishDate[j].trim();
- sPublishDate = sPublishDate[0] + " " + sPublishDate[1] + " " + sPublishDate[2];
- if (sArticleType != sHydepark) {
- aResult[l][k] = {};
- aResult[l][k]['nVotes'] = nVotes;
- aResult[l][k]['sTitle'] = sTitle;
- aResult[l][k]['sArticleLink'] = sArticleLink;
- aResult[l][k]['sPublishDate'] = sPublishDate;
- aResult[l][k]['sNewspaperName'] = sNewspaperName;
- aResult[l][k]['sNewspaperAvatar'] = sNewspaperAvatar;
- aResult[l][k]['sNewspaperLink'] = sNewspaperLink;
- aResult[l][k]['sArticleType'] = sArticleType;
- k++;
- }
- }
- }
- return aResult;
- }
- /**
- * Modify article's table
- * @param {JSON Object} aObj JSON Object of top/latest articles.
- *
- */
- function modifyArticlesTabs(aObj) {
- var aArtTabs = $('#newsTabs');
- var aTab1 = $('#tabs-1', aArtTabs);
- var aTab2 = $('#tabs-2', aArtTabs);
- var aTab3 = $('#tabs-3', aArtTabs);
- aTab1.append('<div id=\"tab1menu\" class="ui-tabs-panel ui-widget-content ui-corner-bottom" style=\"padding: 0px; display: none;\"></div><div id="showMoreTab1" align="center"><a style=\"font-size: 12px; display: inline;\" href=\"\" id=\"showLinkTab1\"><b>Expand list</b></a><a style=\"font-size: 12px; display: none;\" href=\"\" id=\"hideLinkTab1\"><b>Collapse list</b></a></div>');
- aTab2.append('<div id=\"tab2menu\" class="ui-tabs-panel ui-widget-content ui-corner-bottom" style=\"padding: 0px; display: none;\"></div><div id="showMoreTab2" align="center"><a style=\"font-size: 12px; display: inline;\" href=\"\" id=\"showLinkTab2\"><b>Expand list</b></a><a style=\"font-size: 12px; display: none;\" href=\"\" id=\"hideLinkTab2\"><b>Collapse list</b></a></div>');
- // aTab3.append('<div id=\"tab3menu\" class="ui-tabs-panel ui-widget-content ui-corner-bottom" style=\"padding: 0px; display: none;\"></div><div id="showMoreTab3" align="center"><a style=\"font-size: 12px; display: inline;\" href=\"\" id=\"showLinkTab3\"><b>Expand list</b></a><a style=\"font-size: 12px; display: none;\" href=\"\" id=\"hideLinkTab3\"><b>Collapse list</b></a></div>');
- for (var j = 0; j < 2; j++) {
- aObj[j] = aObj[j].slice($('[class="smallArticleTab"]', $('#tabs-' + (j + 1))).length, aObj[j].length);
- for (var i = 0; i < aObj[j].length; i++) {
- $('#tab' + (j + 1) + 'menu').append('<div class="smallArticleTab" style="margin-bottom:2px;">' + aObj[j][i]['nVotes'] + '</div>\n<a href="' + aObj[j][i]['sArticleLink'] + '" class="articleTitle">' + aObj[j][i]['sTitle'] + ' (' + aObj[j][i]['sArticleType'] + ')</a></br>\n' + aObj[j][i]['sPublishDate'] + ': \n<img align="absmiddle" class="smallAvatar" src="' + aObj[j][i]['sNewspaperAvatar'] + '"></img>\n<a href="' + aObj[j][i]['sNewspaperLink'] + '">' + aObj[j][i]['sNewspaperName'] + '</a>\n<hr class="foundation-divider-light">');
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment