AmiAmi filter

Filter for AmiAmi, only for current gallery page of items

当前为 2016-11-12 提交的版本,查看 最新版本

// ==UserScript==
// @name        AmiAmi filter
// @author      Bootresha
// @namespace   https://greasyfork.org/en/users/76021-bootresha
// @description Filter for AmiAmi, only for current gallery page of items
// @include     http://*.amiami.com/*
// @include     http://amiami.com/*
// @version     1.1
// @grant       none
// ==/UserScript==
// <TODO>
// 1. Save selected option
// 2. OPTIONAL. Maybe make it even bigger by preloading more than 200 results
// </TODO>
$(document).ready(function () {
  addFilterButtonDiv();
  reformatOriginalTable();
});
function reformatOriginalTable(){
  var itemArray = [  ];
  var preorderArray = [  ];
  var backorderArray = [  ];
  var outofstockArray = [  ];
  var instockArray = [  ];
  var table = $('.product_table tbody');
  var tableRowLength = table.children().length;
  for (i = 1; i <= tableRowLength; i++) {
    itemArray.push($('.product_table tbody tr:nth-child(' + i + ') td:nth-child(1)'));
    itemArray.push($('.product_table tbody tr:nth-child(' + i + ') td:nth-child(2)'));
  }
  $('.product_table').remove();
  for (i = 0; i < itemArray.length; i++) {
    if (itemArray[i].children('.product_ul').children('.product_icon').children('.icon_preorder').length > 0) {
      preorderArray.push(itemArray[i]);
    } else if (itemArray[i].children('.product_ul').children('.product_icon').children('.icon_backorder').length > 0) {
      backorderArray.push(itemArray[i]);
    } else if (itemArray[i].children('.product_ul').children('.product_day').text() == 'Sold out') {
      outofstockArray.push(itemArray[i]);
    } else {
      instockArray.push(itemArray[i]);
    }
  }
  var newISTable = '<table id="tableInStock"></table>';
  var newPOTable = '<table id="tablePreOrder"></table>';
  var newBOTable = '<table id="tableBackOrder"></table>';
  var newOOSTable = '<table id="tableOutOfStock"></table>';
  $('#search_table').append(newISTable);
  $('#search_table').append(newPOTable);
  $('#search_table').append(newBOTable);
  $('#search_table').append(newOOSTable);
  $('#tableInStock').append('<tr><td>In Stock Section</td></tr>');
  $('#tableInStock').css('background-color', 'LightGreen');
  for (i = 0; i < instockArray.length; i += 2) {
    $('#tableInStock').append('<tr id="ISRow' + i + '"></tr>');
    $('#ISRow' + i + '').append(instockArray[i]);
    $('#ISRow' + i + '').append(instockArray[i + 1]);
  }
  $('#tablePreOrder').append('<tr><td>Pre-Order Section</td></tr>');
  $('#tablePreOrder').css('background-color', 'NavajoWhite');
  for (i = 0; i < preorderArray.length; i += 2) {
    $('#tablePreOrder').append('<tr id="PORow' + i + '"></tr>');
    $('#PORow' + i + '').append(preorderArray[i]);
    $('#PORow' + i + '').append(preorderArray[i + 1]);
  }
  $('#tableBackOrder').append('<tr><td>Back Order Section</td></tr>');
  $('#tableBackOrder').css('background-color', 'Plum');
  for (i = 0; i < backorderArray.length; i += 2) {
    $('#tableBackOrder').append('<tr id="BORow' + i + '"></tr>');
    $('#BORow' + i + '').append(backorderArray[i]);
    $('#BORow' + i + '').append(backorderArray[i + 1]);
  }
  $('#tableOutOfStock').append('<tr><td>Out of Stock Section</td></tr>');
  $('#tableOutOfStock').css('background-color', 'LightCoral');
  for (i = 0; i < outofstockArray.length; i += 2) {
    $('#tableOutOfStock').append('<tr id="OOSRow' + i + '"></tr>');
    $('#OOSRow' + i + '').append(outofstockArray[i]);
    $('#OOSRow' + i + '').append(outofstockArray[i + 1]);
  }
}
function addFilterButtonDiv() {
  var fixedDiv = '<div class="fixedDivArea">Filters: </div>';
  var buttonPreorder = '<br><button class="filterButton" id="buttonPO">Hide pre-order items';
  var buttonBackorder = '<br><button class="filterButton" id="buttonBO">Hide backorder items';
  var buttonOutOfStock = '<br><button class="filterButton" id="buttonOOS">Hide out of stock items';
  $('body').append(fixedDiv);
  $('.fixedDivArea').append(buttonPreorder);
  $('.fixedDivArea').append(buttonBackorder);
  $('.fixedDivArea').append(buttonOutOfStock);
  $('.fixedDivArea').css({
    'position': 'fixed',
    'top': '0',
    'right': '0',
    'width': '200',
    'height': '100',
    'align': 'right',
    'background-color': 'yellow'
  });
  $('#buttonPO').click(function () {
    if ($('#buttonPO').text() == 'Hide pre-order items') {
      $('#tablePreOrder').hide();
      $('#buttonPO').text('Show pre-order items');
    } else {
      $('#tablePreOrder').show();
      $('#buttonPO').text('Hide pre-order items');
    }
  });
  $('#buttonBO').click(function () {
    if ($('#buttonBO').text() == 'Hide backorder items') {
      $('#tableBackOrder').hide();
      $('#buttonBO').text('Show backorder items');
    } else {
      $('#tableBackOrder').show();
      $('#buttonBO').text('Hide backorder items');
    }
  });
  $('#buttonOOS').click(function () {
    if ($('#buttonOOS').text() == 'Hide out of stock items') {
      $('#tableOutOfStock').hide();
      $('#buttonOOS').text('Show out of stock items');
    } else {
      $('#tableOutOfStock').show();
      $('#buttonOOS').text('Hide out of stock items');
    }
  });
}