TipidPC User Items To Sortable Table

Transforms the User's Items for Sale list to sortable and searchable table

目前为 2025-02-17 提交的版本。查看 最新版本

  1. // ==UserScript==
  2. // @name TipidPC User Items To Sortable Table
  3. // @description Transforms the User's Items for Sale list to sortable and searchable table
  4. // @namespace https://github.com/rainniel/tampermonkey-scripts
  5. // @version 1.0.0
  6. // @author Rainniel
  7. // @license MIT
  8. // @match https://tipidpc.com/useritems.php*
  9. // @icon https://www.google.com/s2/favicons?sz=64&domain=tipidpc.com
  10. // @require https://unpkg.com/datatables.net@2.2.2/js/dataTables.min.js
  11. // @run-at document-start
  12. // @grant GM_addStyle
  13. // ==/UserScript==
  14.  
  15. (function () {
  16. 'use strict';
  17.  
  18. GM_addStyle(`
  19. .item-manager {
  20. display: none !important;
  21. }
  22. `);
  23.  
  24. var $ = unsafeWindow.jQuery;
  25.  
  26. $(document).ready(function () {
  27. var dataTablesCss = document.createElement('link');
  28. dataTablesCss.rel = 'stylesheet';
  29. dataTablesCss.href = 'https://cdn.datatables.net/2.1.3/css/dataTables.dataTables.min.css';
  30. document.head.appendChild(dataTablesCss);
  31.  
  32. var pad10Div = $('.pad10');
  33.  
  34. if (pad10Div.length > 0) {
  35. var window2div = pad10Div.find('.window').eq(1);
  36. var userIfs = window2div.find('#user-ifs');
  37.  
  38. if (userIfs.length > 0) {
  39. var data = [];
  40.  
  41. userIfs.find('li').each(function () {
  42. var $li = $(this);
  43. var nameLink = $li.find('h4 a');
  44. var name = nameLink.text();
  45. var nameUrl = nameLink.attr('href');
  46. var priceText = $li.find('.meta strong').text();
  47. var price = parseFloat(priceText.replace(/[^0-9.-]+/g, ""));
  48. var catalogLink = $li.find('.meta a');
  49. var catalog = catalogLink.text();
  50. var catalogUrl = catalogLink.attr('href');
  51.  
  52. data.push([
  53. `<a href="${nameUrl}" target="_blank">${name}</a>`,
  54. new Intl.NumberFormat('en-US', { minimumFractionDigits: 2, maximumFractionDigits: 2 }).format(price),
  55. `<a href="${catalogUrl}" target="_blank">${catalog}</a>`
  56. ]);
  57. });
  58.  
  59. window2div.find('.winbody').prepend('<div style="padding: 0 12px;"><table id="userItems" class="display"></table></div>');
  60.  
  61. $('#userItems').DataTable({
  62. columns: [
  63. { title: "Name" },
  64. { title: "Price" },
  65. { title: "Catalog" }
  66. ],
  67. data: data,
  68. pageLength: 20,
  69. lengthMenu: [10, 20, 30, 40, 50]
  70. });
  71.  
  72. $('.dt-container').css('clear', 'none');
  73. }
  74. }
  75. });
  76. })();