// ==UserScript== // @name FA Journal Breakdown (All UI's, Chrome) // @namespace FurAffinity // @version 1.7.0.2 // @description Provides a breakdown of your journal list // @author JaysonHusky // @grant GM_getValue // @grant GM_setValue // @match https://www.furaffinity.net/msg/others/ // @match https://www.furaffinity.net/controls/user-settings/ // @require https://code.jquery.com/jquery-latest.js // @downloadURL none // ==/UserScript== (function() { 'use strict'; // Setup keywords var myKeywords; // Begin loading function FAJBM_Load(){ var user_defined_keywords=GM_getValue('fajbm'); if(user_defined_keywords > ""){ myKeywords=user_defined_keywords.split(","); $('#fajbm_settings').val(user_defined_keywords); } else { return "undefined"; } } // Save settings function FAJBM_SaveSettings(fajbm){ GM_setValue('fajbm',fajbm); } // Load Control Panel var pathx = window.location.pathname; if(~pathx.indexOf("/controls/user-settings/")){ // Update $(document.body).on('click', '#fajbm_saveit', function() { var fajbm_set = $("input[name='fajbm_setting']").val().replace(" ",""); FAJBM_SaveSettings(fajbm_set); $('.faf-update-status').fadeIn('slow'); setTimeout(function(){ $('.faf-update-status').fadeOut('slow'); }, 5000); }); if(STATIC_PATH=="/themes/beta"){ $('.content .section-divider').after(`
Enter keywords here for the addon to identify in journal titles.
Keywords MUST be comma seperated and usernames MUST match the username of the page, NOT the URL.
Singular terms such as "Stream" will match "Streams"
Please do NOT use the terms "posted by" or "hours ago" as they will match every journal
FA Journal Breakdown - Control Panel | ||||||
Journal breakdown by term:'); } else { KeywordTitle=$("#messages-journals h3").first().append(' Journal breakdown by term:'); } // Sort Keywords alphabetically myKeywords = myKeywords.sort(); // Creating the var's var StreamCounter,scx,theStreamCount2,strtouc,CommCounter; // Adapt JQuery :contains to function without case restriction jQuery.expr[':'].icontains=function(a, i, m){ return jQuery(a).text().toUpperCase().indexOf(m[3].toUpperCase()) >= 0; }; // JS equiv of PHPs ucwords() for better presentation (Credit: rickycheers @ Github) String.prototype.ucwords=function(){ strtouc=this.toLowerCase(); return strtouc.replace(/(^([a-zA-Z\p{M}]))|([ -][a-zA-Z\p{M}])/g, function(s){ return s.toUpperCase(); }); }; // Search for custom keywords myKeywords.forEach(function(keyword) { scx=$("#messagecenter-other #messages-journals li:icontains('"+keyword+"')").length; theStreamCount2=' '+keyword+': '+scx+''; // Add custom keywords to Journal header $(KeywordTitle).append(theStreamCount2.ucwords()); // Highlight when clicked (deselect all others) $("."+keyword).click(function(){ if(STATIC_PATH=="/themes/beta"){ $("#messagecenter-other #messages-journals li:icontains('"+keyword+"')").css('background','#535d75'); $("#messagecenter-other #messages-journals li:not(:icontains("+keyword+"))").css('background','transparent'); } else { $("#messagecenter-other #messages-journals li:icontains('"+keyword+"')").css('background','rgba(1,0,0,0.2'); $("#messagecenter-other #messages-journals li:not(:icontains("+keyword+"))").css('background','transparent'); } }); }); })(); |