Topic: Tag-sidebar Reorder Script

Posted under e621 Tools and Applications

I made a script that can reorder any group of tags. Reordered tags will be moved to the top, and sorted by their assigned ordinal number. Plus color bars on left. (I just recoloring wiki question marks, the links are still work.)

Screenshot: http://i.imgur.com/C5n4JrC.png

(Tested on Firefox.)

Optional Features:

  • tagHighlighter: Highlight specific tags that can help you quickly spot them.
  • tagHider: Hide specific tags that are unimportant to you.
  • newCategory: Insert new category rows into sidebar.
  • nullifyReorder: (wip)
  • missingTags: (wip)
  • ratingChecker: (wip)

Script:

Version 0.1 beta
// ==UserScript==
// @name         e621 Tag Reorder
// @namespace    ZaSigma4
// @description  Reorder a post's tags.
// @version      0.1 beta
// @match        https://e621.net/post/show/*
// @match        http://e621.net/post/show/*
// @match        https://e926.net/post/show/*
// @match        http://e926.net/post/show/*
// @require      http://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js
// @grant        none
// ==/UserScript==
 
this.$ = this.jQuery = jQuery.noConflict(true);
 
//////////////////////////////////////////////////
// Tag Group Database    (Sort by: ordinal, groupName, color, tags...)
 
var index1 = [
  ["1100", "character_count", "Pink", "zero_pictured", "solo", "duo", "group"],
  ["1110", "optics_1", "Pink", "solo_focus", "duo_focus"],
  // ["1120", "group_types", "Pink", "audience", "crowd", "absolutely_everyone"],
  
  ["1200", "body_types_1", "#00E6FF", "ambiguous_form", "anthro", "feral"],
  ["1201", "body_types_sub", "#00E6FF", "semi-anthro", "busty_feral"],
  ["1210", "body_types_change", "#00E6FF", "anthrofied", "feralized", "pokémorph", "digimorph"],
  ["1220", "species_change", "#00E6FF", "alternate_species", "humanized", "humanoidized", "furrification", "ponification", "dragonification", "personification"],
  
  ["1240", "body_types_interaction", "Blue", "feral_on_feral", "human_on_anthro", "human_on_human", "human_on_humanoid", "humanoid_on_anthro", "humanoid_on_humanoid", "anthro_on_taur", "human_on_taur", "humanoid_on_taur", "taur_on_taur"],
  ["1241", "bestiality_main", "DarkBlue", "bestiality"],
  ["1242", "bestiality_types", "DarkBlue", "anthro_on_feral", "human_on_feral", "humanoid_on_feral", "feral_on_taur"],
  ["1243", "bestiality_genders", "DarkBlue", "male_on_feral", "female_on_feral", "intersex_on_feral", "cuntboy_on_feral", "dickgirl_on_feral", "herm_on_feral", "maleherm_on_feral"],
  
  ["1300", "genders", "#FFFF50", "ambiguous_gender", "male", "female", "intersex", "cuntboy", "dickgirl", "herm", "maleherm"],
  // ["1301", "genders_sub", "#FFFF50", "crossgender", "manly", "girly", "tomboy"],
  ["1310", "sexual_interaction", "DarkOrange", "male%2Ffemale", "male%2Fmale", "female%2Ffemale", "intersex%2Fmale", "cuntboy%2Fmale", "dickgirl%2Fmale", "herm%2Fmale", "maleherm%2Fmale", "intersex%2Ffemale", "cuntboy%2Ffemale", "dickgirl%2Ffemale", "herm%2Ffemale", "maleherm%2Ffemale", "intersex%2Fintersex", "cuntboy%2Fcuntboy", "dickgirl%2Fcuntboy", "dickgirl%2Fdickgirl", "dickgirl%2Fherm", "herm%2Fcuntboy", "herm%2Fherm", "maleherm%2Fcuntboy", "maleherm%2Fdickgirl", "maleherm%2Fherm", "maleherm%2Fmaleherm", "ambiguous%2Fambiguous", "male%2Fambiguous", "female%2Fambiguous", "intersex%2Fambiguous", "cuntboy%2Fambiguous", "dickgirl%2Fambiguous", "herm%2Fambiguous", "maleherm%2Fambiguous"],
  ["1311", "bisexual", "DarkOrange", "bisexual", "bisexual_sandwich"],
  
  ["1400", "sex_positions", "DarkRed", "1691", "69_position", "amazon_position", "anvil_position", "arch_position", "ass_to_ass", "chair_position", "cowgirl_position", "daisy_chain", "deck_chair_position", "doggystyle", "from_behind_position", "leg_glider_position", "lotus_position", "mastery_position", "missionary_position", "mounting", "piledriver_position", "polesitting", "prison_guard_position", "reverse_cowgirl_position", "reverse_piledriver_position", "reverse_missionary_position", "sandwich_position", "speed_bump_position", "spitroast", "spoon_position", "stand_and_carry_position", "table_lotus_position", "train_position", "triangle_position", "unusual_position", "wheelbarrow_position"],
  
  // ["2000", "sexual_acts", "", "anal", "oral", "vaginal", "urethral"],
  // ["2100", "sex_acts", "", "sex"],
  // ["2110", "group_sex", "", "group_sex"],
  // ["2200", "masturbation_acts", "", "masturbation"],
  
  // ["3000", "genitals/sex_characteristics", "", ""],
  // ["5000", "nudity", "", "nude", "clothed"],
  // ["9000", "background", "", "simple_background", "detailed_background"],
  
  // ["10100", "misc_1", "", "story", "story_in_description", "story_at_source"],
  // ["10110", "misc_2", "", "what", "humor", "lol_comments", "tag_panic"],
  
  // ["20010", "year", "", "2016"],
  // ["20020", "image_size", "", "low_res", "hi_res", "absurd_res", "superabsurd_res", "wallpaper"],
  // ["20030", "image_type", "", "animated", "animated_png", "flash"],
  // ["20100", "art_info", "", "digital_media_(artwork)", "not_furry"],
  
  // ["", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", ""],
  
  ["10900", "requests", "White", "tagme", "translation_request", "source_request", "uncensor_request"]
];
 
var index2 = [
  ["910", "disambiguation", "LightSlateGray", "_%28disambiguation%29"]
];
 
var index3 = [
  ["0", "body_types_2", "#00E6FF", "human", "humanoid", "taur", "animal_head", "animate_inanimate", "living_machine", "penis_creature", "tentacle_monster", "waddling_head", "eldritch_horror", "flora_fauna", "food_creature", "glitch", "goo", "monster", "robot", "undead", "boobipede"]
];
 
//////////////////////////////////////////////////
// Variables
 
var sIndex, sGroup, sTag, sCategory,    // "s" means selected
    indexLength, groupLength, categoryLength,
    wikiLink, postLink, currentStyle,
    i, j, k;
 
//////////////////////////////////////////////////
// Control Panel
 
cssSetUp();
tagReorder();
 
tagHighlighter(
  ["character_count", "body_types_1", "body_types_2", "genders"],
  ["Pink", "#00E6FF", "#00E6FF", "#FFFF50"]
);
 
// tagHider(["tag-type-general", "genders"]);
 
newCategory([    // (Sort by: ordinal, categoryName, requiredGroups...)
  // ["", "", "", "", ""],
  ["900", "Disambiguation", "disambiguation"]
]);
 
// nullifyReorder(["", "", ""]);
// missingTags(["", "", ""]);
// ratingChecker();
 
//////////////////////////////////////////////////
// Functions
 
function cssSetUp() {
  $('#tag-sidebar').css({
    "display": "-webkit-box",
    "display": "-moz-box",
    // "display": "box",
    
    "-webkit-box-orient": "vertical",
    "-moz-box-orient": "vertical",
    "box-orient": "vertical",
    
    "-webkit-box-sizing": "border-box",
    "-moz-box-sizing": "border-box",
    "box-sizing": "border-box"
  });
  
  $('#category-general, #category-hidden-general').css({
    "-webkit-box-ordinal-group": "1000",
    "-moz-box-ordinal-group": "1000",
    "box-ordinal-group": "1000"
  });
  
  $('.tag-type-general').css({
    "-webkit-box-ordinal-group": "10000",
    "-moz-box-ordinal-group": "10000",
    "box-ordinal-group": "10000"
  });
}
 
function tagReorder() {
  for (i = 1; i < 4; i++) {    // Select index
    switch (i) {
      case 1: sIndex = index1; break;
      case 2: sIndex = index2; break;
      case 3: sIndex = index3;
    }
    indexLength = sIndex.length;
    
    for (j = 0; j < indexLength; j++) {    // Select group
      sGroup = sIndex[j];
      groupLength = sGroup.length;
      
      for (k = 3; k < groupLength; k++) {    // Select tag
        sTag = sGroup[k];
        
        switch (i) {
          case 1:
          case 3:
            $('#tag-sidebar > li:has(a[href$="=' + sTag + '"])').addClass(sGroup[1]); break;
          case 2:
            $('#tag-sidebar > li:has(a[href*="' + sTag + '"])').addClass(sGroup[1]);
        }
      }
      
      if (i == 1 || i == 2) {    // Reorder tags and add color bars.
        $('li.' + sGroup[1]).css({
          "-webkit-box-ordinal-group": sGroup[0],
          "-moz-box-ordinal-group": sGroup[0],
          "box-ordinal-group": sGroup[0]
        });
        
        wikiLink = 'li.' + sGroup[1] + ' > a[href^="/wiki"]';
        currentStyle = $(wikiLink).attr("style");
        $(wikiLink).attr("style", currentStyle + " color: " + sGroup[2] + " !important;").css({
          "background-color": sGroup[2]
        });
      }
    }
  }
}
 
function tagHighlighter(groupName, groupColor) {
  indexLength = groupName.length;
  
  for (i = 0; i < indexLength; i++) {
    wikiLink = 'li.' + groupName[i] + ' > a[href^="/wiki"]';
    currentStyle = $(wikiLink).attr("style");
    $(wikiLink).attr("style", currentStyle + " color: " + groupColor[i] + " !important;");
    
    postLink = 'li.' + groupName[i] + ' > a[href^="/post"]';
    $(postLink).attr("style", "color: " + groupColor[i] + " !important;").css({
      "font-weight": "bold"
    });
  }
}
 
function tagHider(groupName) {
  indexLength = groupName.length;
  
  for (i = 0; i < indexLength; i++) {
    if (groupName[i].startsWith("tag-type-") == true) {
      $('#tag-sidebar > li[class="' + groupName[i] + '"]').hide();
    } else {
      $('#tag-sidebar > li.' + groupName[i]).hide();
    }
  }
}
 
function newCategory(categoryIndex) {
  indexLength = categoryIndex.length;
  
  for (j = 0; j < indexLength; j++) {
    sCategory = categoryIndex[j];
    categoryLength = sCategory.length;
    
    for (k = 2; k < categoryLength; k++) {
      sGroup = sCategory[k];
      $('#tag-sidebar > li.' + sGroup).addClass("child-" + sCategory[1]);
    }
    
    if ($('#tag-sidebar > li').hasClass("child-" + sCategory[1])) {
      $("#tag-sidebar").append('<li id="category-' + sCategory[1] + '"><b>' + sCategory[1] + '</b></li>');
      $('#category-' + sCategory[1]).css({
        "-webkit-box-ordinal-group": sCategory[0],
        "-moz-box-ordinal-group": sCategory[0],
        "box-ordinal-group": sCategory[0]
      });
    }
  }
}

Note:

  • If you don't know how to install script on your browser ask google.
  • I am not gonna host this script on other site because of porno tags, so just copy-paste that wall of code.
  • crappy buggy laggy & not really helping
  • 1