// ==UserScript==
// @name HenterVerse Clutter One-Click Seller
// @namespace hvcluttersell
// @version 0.1.6
// @description Sell all the clutter in The Market with one single click!
// @author Retr#000
// @match https://*hentaiverse.org/*?s=Bazaar&ss=mk*
// @icon data:image/png;base64,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
// @grant GM_setValue
// @grant GM_getValue
// @license CC BY-NC 3.0
// ==/UserScript==
(function () {
'use strict';
// ##### Config ######
const HVCConfig_default = [
{ HVCdelay: 500, unit: 'ms' },
{ Name: 'ManBearPig Tail (Persistent)', sell_as_clutter: true, min_undercut: false },
{ Name: 'Holy Hand Grenade of Antioch (Persistent)', sell_as_clutter: true, min_undercut: false },
{ Name: 'Mithra\'s Flower (Persistent)', sell_as_clutter: true, min_undercut: false },
{ Name: 'Dalek Voicebox (Persistent)', sell_as_clutter: true, min_undercut: false },
{ Name: 'Lock of Blue Hair (Persistent)', sell_as_clutter: true, min_undercut: false },
{ Name: 'Bunny-Girl Costume (Persistent)', sell_as_clutter: true, min_undercut: false },
{ Name: 'Hinamatsuri Doll (Persistent)', sell_as_clutter: true, min_undercut: false },
{ Name: 'Broken Glasses (Persistent)', sell_as_clutter: true, min_undercut: false },
{ Name: 'Black T-Shirt (Persistent)', sell_as_clutter: true, min_undercut: false },
{ Name: 'Sapling (Persistent)', sell_as_clutter: true, min_undercut: false },
{ Name: 'Unicorn Horn (Persistent)', sell_as_clutter: true, min_undercut: false },
{ Name: 'Noodly Appendage (Persistent)', sell_as_clutter: true, min_undercut: false },
{ Name: 'Precursor Artifact (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Energy Drink (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Low-Grade Cloth (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Mid-Grade Cloth (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'High-Grade Cloth (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Low-Grade Leather (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Mid-Grade Leather (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'High-Grade Leather (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Low-Grade Metals (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Mid-Grade Metals (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'High-Grade Metals (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Low-Grade Wood (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Mid-Grade Wood (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'High-Grade Wood (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Scrap Cloth (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Scrap Leather (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Scrap Metal (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Scrap Wood (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Crystallized Phazon (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Shade Fragment (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Repurposed Actuator (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Defense Matrix Modulator (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of Slaughter (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of Balance (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of Destruction (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of Focus (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of Protection (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of the Fleet (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of the Barrier (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of the Nimble (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of the Elementalist (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of the Heaven-sent (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of the Demon-fiend (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of the Curse-weaver (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of the Earth-walker (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of Surtr (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of Niflheim (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of Mjolnir (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of Freyr (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of Heimdall (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of Fenrir (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of Dampening (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of Stoneskin (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of Deflection (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of the Fire-eater (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of the Frost-born (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of the Thunder-child (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of the Wind-waker (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of the Thrice-blessed (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of the Spirit-ward (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of the Ox (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of the Raccoon (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of the Cheetah (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of the Turtle (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of the Fox (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of the Owl (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of Warding (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of Negation (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of Isaac (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Binding of Friendship (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Legendary Weapon Core (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Legendary Staff Core (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Legendary Armor Core (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Voidseeker Shard (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Aether Shard (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Featherweight Shard (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Amnesia Shard (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Infusion of Flames (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Infusion of Frost (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Infusion of Lightning (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Infusion of Storms (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Infusion of Divinity (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Infusion of Darkness (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Scroll of Swiftness (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Scroll of Protection (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Scroll of the Avatar (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Scroll of Absorption (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Scroll of Shadows (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Scroll of Life (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Scroll of the Gods (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Flower Vase (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Bubble-Gum (Persistent)', sell_as_clutter: false, min_undercut: false },
{ Name: 'ManBearPig Tail (Isekai)', sell_as_clutter: true, min_undercut: false },
{ Name: 'Holy Hand Grenade of Antioch (Isekai)', sell_as_clutter: true, min_undercut: false },
{ Name: 'Mithra\'s Flower (Isekai)', sell_as_clutter: true, min_undercut: false },
{ Name: 'Dalek Voicebox (Isekai)', sell_as_clutter: true, min_undercut: false },
{ Name: 'Lock of Blue Hair (Isekai)', sell_as_clutter: true, min_undercut: false },
{ Name: 'Bunny-Girl Costume (Isekai)', sell_as_clutter: true, min_undercut: false },
{ Name: 'Hinamatsuri Doll (Isekai)', sell_as_clutter: true, min_undercut: false },
{ Name: 'Broken Glasses (Isekai)', sell_as_clutter: true, min_undercut: false },
{ Name: 'Black T-Shirt (Isekai)', sell_as_clutter: true, min_undercut: false },
{ Name: 'Sapling (Isekai)', sell_as_clutter: true, min_undercut: false },
{ Name: 'Unicorn Horn (Isekai)', sell_as_clutter: true, min_undercut: false },
{ Name: 'Noodly Appendage (Isekai)', sell_as_clutter: true, min_undercut: false },
{ Name: 'Low-Grade Cloth (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Mid-Grade Cloth (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'High-Grade Cloth (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Low-Grade Leather (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Mid-Grade Leather (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'High-Grade Leather (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Low-Grade Metals (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Mid-Grade Metals (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'High-Grade Metals (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Low-Grade Wood (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Mid-Grade Wood (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'High-Grade Wood (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Scrap Cloth (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Scrap Leather (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Scrap Metal (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Scrap Wood (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Crystallized Phazon (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Shade Fragment (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Repurposed Actuator (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Defense Matrix Modulator (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Legendary Weapon Core (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Legendary Staff Core (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Legendary Armor Core (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Voidseeker Shard (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Aether Shard (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Featherweight Shard (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Amnesia Shard (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Infusion of Flames (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Infusion of Frost (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Infusion of Lightning (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Infusion of Storms (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Infusion of Divinity (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Infusion of Darkness (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Scroll of Swiftness (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Scroll of Protection (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Scroll of the Avatar (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Scroll of Absorption (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Scroll of Shadows (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Scroll of Life (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Scroll of the Gods (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Flower Vase (Isekai)', sell_as_clutter: false, min_undercut: false },
{ Name: 'Bubble-Gum (Isekai)', sell_as_clutter: false, min_undercut: false },
];
if (GM_getValue('HVCConfig') == undefined) { // initialization
GM_setValue('HVCConfig', HVCConfig_default);
}
// ##### Code ######
const urlist = [
{ note: 'delay config corresponding placeholder' },
{ Name: 'ManBearPig Tail (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30016' },
{ Name: 'Holy Hand Grenade of Antioch (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30017' },
{ Name: 'Mithra\'s Flower (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30018' },
{ Name: 'Dalek Voicebox (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30019' },
{ Name: 'Lock of Blue Hair (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30020' },
{ Name: 'Bunny-Girl Costume (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30021' },
{ Name: 'Hinamatsuri Doll (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30022' },
{ Name: 'Broken Glasses (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30023' },
{ Name: 'Black T-Shirt (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30024' },
{ Name: 'Sapling (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30030' },
{ Name: 'Unicorn Horn (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30031' },
{ Name: 'Noodly Appendage (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30032' },
{ Name: 'Precursor Artifact (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ar&itemid=20001' },
{ Name: 'Energy Drink (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=11401' },
{ Name: 'Low-Grade Cloth (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60001' },
{ Name: 'Mid-Grade Cloth (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60002' },
{ Name: 'High-Grade Cloth (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60003' },
{ Name: 'Low-Grade Leather (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60004' },
{ Name: 'Mid-Grade Leather (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60005' },
{ Name: 'High-Grade Leather (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60006' },
{ Name: 'Low-Grade Metals (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60007' },
{ Name: 'Mid-Grade Metals (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60008' },
{ Name: 'High-Grade Metals (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60009' },
{ Name: 'Low-Grade Wood (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60010' },
{ Name: 'Mid-Grade Wood (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60011' },
{ Name: 'High-Grade Wood (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60012' },
{ Name: 'Scrap Cloth (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60051' },
{ Name: 'Scrap Leather (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60052' },
{ Name: 'Scrap Metal (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60053' },
{ Name: 'Scrap Wood (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60054' },
{ Name: 'Crystallized Phazon (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60101' },
{ Name: 'Shade Fragment (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60102' },
{ Name: 'Repurposed Actuator (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60104' },
{ Name: 'Defense Matrix Modulator (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60105' },
{ Name: 'Binding of Slaughter (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60201' },
{ Name: 'Binding of Balance (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60202' },
{ Name: 'Binding of Destruction (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60203' },
{ Name: 'Binding of Focus (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60204' },
{ Name: 'Binding of Protection (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60205' },
{ Name: 'Binding of the Fleet (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60206' },
{ Name: 'Binding of the Barrier (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60207' },
{ Name: 'Binding of the Nimble (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60208' },
{ Name: 'Binding of the Elementalist (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60209' },
{ Name: 'Binding of the Heaven-sent (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60210' },
{ Name: 'Binding of the Demon-fiend (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60211' },
{ Name: 'Binding of the Curse-weaver (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60212' },
{ Name: 'Binding of the Earth-walker (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60213' },
{ Name: 'Binding of Surtr (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60215' },
{ Name: 'Binding of Niflheim (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60216' },
{ Name: 'Binding of Mjolnir (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60217' },
{ Name: 'Binding of Freyr (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60218' },
{ Name: 'Binding of Heimdall (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60219' },
{ Name: 'Binding of Fenrir (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60220' },
{ Name: 'Binding of Dampening (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60221' },
{ Name: 'Binding of Stoneskin (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60222' },
{ Name: 'Binding of Deflection (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60223' },
{ Name: 'Binding of the Fire-eater (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60224' },
{ Name: 'Binding of the Frost-born (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60225' },
{ Name: 'Binding of the Thunder-child (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60226' },
{ Name: 'Binding of the Wind-waker (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60227' },
{ Name: 'Binding of the Thrice-blessed (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60228' },
{ Name: 'Binding of the Spirit-ward (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60229' },
{ Name: 'Binding of the Ox (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60230' },
{ Name: 'Binding of the Raccoon (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60231' },
{ Name: 'Binding of the Cheetah (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60232' },
{ Name: 'Binding of the Turtle (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60233' },
{ Name: 'Binding of the Fox (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60234' },
{ Name: 'Binding of the Owl (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60235' },
{ Name: 'Binding of Warding (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60236' },
{ Name: 'Binding of Negation (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60237' },
{ Name: 'Binding of Isaac (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60238' },
{ Name: 'Binding of Friendship (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60239' },
{ Name: 'Legendary Weapon Core (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60402' },
{ Name: 'Legendary Staff Core (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60412' },
{ Name: 'Legendary Armor Core (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60422' },
{ Name: 'Voidseeker Shard (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=61001' },
{ Name: 'Aether Shard (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=61101' },
{ Name: 'Featherweight Shard (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=61501' },
{ Name: 'Amnesia Shard (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=65001' },
{ Name: 'Infusion of Flames (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=12101' },
{ Name: 'Infusion of Frost (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=12201' },
{ Name: 'Infusion of Lightning (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=12301' },
{ Name: 'Infusion of Storms (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=12401' },
{ Name: 'Infusion of Divinity (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=12501' },
{ Name: 'Infusion of Darkness (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=12601' },
{ Name: 'Scroll of Swiftness (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13101' },
{ Name: 'Scroll of Protection (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13111' },
{ Name: 'Scroll of the Avatar (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13199' },
{ Name: 'Scroll of Absorption (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13201' },
{ Name: 'Scroll of Shadows (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13211' },
{ Name: 'Scroll of Life (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13221' },
{ Name: 'Scroll of the Gods (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13299' },
{ Name: 'Flower Vase (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=19111' },
{ Name: 'Bubble-Gum (Persistent)', url: 'https://hentaiverse.org/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=19131' },
{ Name: 'ManBearPig Tail (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30016' },
{ Name: 'Holy Hand Grenade of Antioch (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30017' },
{ Name: 'Mithra\'s Flower (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30018' },
{ Name: 'Dalek Voicebox (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30019' },
{ Name: 'Lock of Blue Hair (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30020' },
{ Name: 'Bunny-Girl Costume (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30021' },
{ Name: 'Hinamatsuri Doll (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30022' },
{ Name: 'Broken Glasses (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30023' },
{ Name: 'Black T-Shirt (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30024' },
{ Name: 'Sapling (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30030' },
{ Name: 'Unicorn Horn (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30031' },
{ Name: 'Noodly Appendage (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=tr&itemid=30032' },
{ Name: 'Low-Grade Cloth (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60001' },
{ Name: 'Mid-Grade Cloth (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60002' },
{ Name: 'High-Grade Cloth (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60003' },
{ Name: 'Low-Grade Leather (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60004' },
{ Name: 'Mid-Grade Leather (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60005' },
{ Name: 'High-Grade Leather (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60006' },
{ Name: 'Low-Grade Metals (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60007' },
{ Name: 'Mid-Grade Metals (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60008' },
{ Name: 'High-Grade Metals (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60009' },
{ Name: 'Low-Grade Wood (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60010' },
{ Name: 'Mid-Grade Wood (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60011' },
{ Name: 'High-Grade Wood (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60012' },
{ Name: 'Scrap Cloth (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60051' },
{ Name: 'Scrap Leather (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60052' },
{ Name: 'Scrap Metal (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60053' },
{ Name: 'Scrap Wood (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60054' },
{ Name: 'Crystallized Phazon (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60101' },
{ Name: 'Shade Fragment (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60102' },
{ Name: 'Repurposed Actuator (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60104' },
{ Name: 'Defense Matrix Modulator (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60105' },
{ Name: 'Legendary Weapon Core (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60402' },
{ Name: 'Legendary Staff Core (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60412' },
{ Name: 'Legendary Armor Core (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=60422' },
{ Name: 'Voidseeker Shard (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=61001' },
{ Name: 'Aether Shard (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=61101' },
{ Name: 'Featherweight Shard (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=61501' },
{ Name: 'Amnesia Shard (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=ma&itemid=65001' },
{ Name: 'Infusion of Flames (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=12101' },
{ Name: 'Infusion of Frost (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=12201' },
{ Name: 'Infusion of Lightning (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=12301' },
{ Name: 'Infusion of Storms (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=12401' },
{ Name: 'Infusion of Divinity (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=12501' },
{ Name: 'Infusion of Darkness (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=12601' },
{ Name: 'Scroll of Swiftness (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13101' },
{ Name: 'Scroll of Protection (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13111' },
{ Name: 'Scroll of the Avatar (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13199' },
{ Name: 'Scroll of Absorption (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13201' },
{ Name: 'Scroll of Shadows (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13211' },
{ Name: 'Scroll of Life (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13221' },
{ Name: 'Scroll of the Gods (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=13299' },
{ Name: 'Flower Vase (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=19111' },
{ Name: 'Bubble-Gum (Isekai)', url: 'https://hentaiverse.org/isekai/?s=Bazaar&ss=mk&screen=browseitems&filter=co&itemid=19131' },
]; // link list
const urlist_start = 1;
const pst_end = 94;
const isk_start = pst_end + 1;
const urlist_end = urlist.length - 1;
const in_isekai = Boolean(location.pathname == '/isekai/');
function cE(name) { // create element shortcut
return document.createElement(name);
}
function qS(name) { // selector
return document.querySelector(name);
}
function gE(ele, mode, parent) { // get element
if (typeof ele === 'object') {
return ele;
} if (mode === undefined && parent === undefined) {
return (isNaN(ele * 1)) ? document.querySelector(ele) : document.getElementById(ele);
} if (mode === 'all') {
return (parent === undefined) ? document.querySelectorAll(ele) : parent.querySelectorAll(ele);
} if (typeof mode === 'object' && parent === undefined) {
return mode.querySelector(ele);
}
}
function getElementByXpath(path) {
return document.evaluate(path, document, null, XPathResult.FIRST_ORDERED_NODE_TYPE, null).singleNodeValue;
}
// sell clutter button
const sellButton = cE("div");
sellButton.innerHTML = [
'<input',
' name="sell_clutter"',
' type="submit"',
' value="Sell Clutter"',
' style="font-size:10pt;border-radius:16px;">',
].join('');
const market_left = qS('#market_left > div:nth-child(7)');
market_left.parentElement.insertBefore(sellButton, market_left);
// blank to adjust position
const blank = cE("div");
blank.style.paddingTop = "16px";
const sellButton_ = qS('#market_left > div:nth-child(7)');
sellButton_.parentElement.insertBefore(blank, sellButton_);
const configButton = cE("div");
configButton.id = 'hvcConfig';
configButton.innerHTML = [
'<button id="hvcConfig" style="border-width: 0px; padding: 0px; background: rgb(237, 235, 223); position: relative; top: -20px;">',
' <img src="',
'data:image/png;base64,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',
'" alt="hvcConfig.png"></button>',
].join('');
const left_up = qS('#market_xfer > div:nth-child(1)');
left_up.parentElement.insertBefore(configButton, left_up);
const balance_cur = qS('#market_xfer > div[class="credit_balance"]');
balance_cur.style = 'position: relative; margin-top: -15px;';
configButton.onclick = function () { // config chain buttom
var HVCConfig;
HVCConfig = GM_getValue('HVCConfig'); // load config
// styles
const title_style = 'font-size: 20pt; font-family: verdana; font-weight: bold;';
const align_style = 'text-align: center; position: relative; left: 10px; top: 5px;';
const header_style = 'z-index:1';
const checkbox_style = 'width: 15px; height: 15px;';
function crtText(textContent, style, id) { // create text element
var text = cE('text');
text.textContent = textContent;
if (style) text.style = style;
if (id) text.id = id;
return text;
}
function crtInput(type, style, id) { // create input element
var input = cE('input');
input.type = type;
if (style) input.style = style;
if (id) input.id = id;
return input;
}
const globalStyle = gE('head').appendChild(cE('style'));
const cssContent = [
'#hvc_table{user-select:none}',
'#hvc_table{flex-grow: 1;flex-shrink:1;overflow:auto}',
'#hvc_table>table{min-width:800px;text-align: center;margin:auto;font-family:verdana;font-size:10pt;font-weight:bold;border-collapse:separate;border-spacing:0}',
'#hvc_table tr:hover:not(:first-child),.market_itemorders tr[onclick]:hover{color:#9B4E03;background:linear-gradient(to right,#605A5A00 0%, #605A5A0A 5%, #605A5A0A 95%,#605A5A00 100%)}',
'#hvc_table th{border-bottom:1px solid #5C0D11;padding:10px 0 10px 20px;position:sticky;top:0;background:#EDEBDF}',
'#hvc_table th:first-child{min-width:200px}',
'#hvc_table td{height:30px;border-bottom:1px solid #5C0D1136}',
'#hvc_table td:nth-child(2), #hvc_table td:nth-child(3){padding-right:20px}',
'#hvc_table td:last-child,#hvc_table th:last-child{padding-right:20px}',
'#hvc_table td:not(:first-child){font-weight:normal}',
'#hvc_table>p{font-size:9pt;font-style:italic;padding:10px}',
'#hvc_table tr[data-orderdisabled="1"]{color:#e63e3e}',
].join('');
globalStyle.textContent += cssContent;
// clear right screen and remove old button
var market_right, hvcgui, hvcTable_, hvcTable;
market_right = qS('#market_right')
market_right.innerHTML = '';
configButton.remove();
// config ui
hvcgui = market_right.appendChild(cE('table'));
hvcgui.id = 'hvcgui';
// title universal
const title1_ = hvcgui.insertRow().insertCell();
title1_.style = align_style
const title1 = crtText('Universal', title_style);
title1_.appendChild(title1);
// HVCdelay
const input_ = hvcgui.insertRow().insertCell();
input_.style = align_style;
input_.id = 'inputbox';
const input = cE('input');
input.type = 'text';
input.value = HVCConfig[0].HVCdelay;
input.style = 'width: 50px; height: 12px;';
const input_desc = crtText('ms delay between each order', 'margin-left: 5px; font-size: 10pt;');
input_.appendChild(input);
input_.appendChild(input_desc);
// item table
hvcTable_ = market_right.appendChild(cE('div'));
hvcTable_.id = 'hvc_table';
hvcTable = hvcTable_.appendChild(cE('table'));
const header = hvcTable.insertRow();
const header1 = cE('th');
header1.textContent = in_isekai ? 'Isekai Items' : 'Persistent Items';
header1.style = header_style;
const header2 = cE('th');
header2.textContent = 'Sell as Clutter';
header2.style = header_style;
const header3 = cE('th');
header3.textContent = 'Min Undercut';
header3.style = header_style;
header.append(header1, header2, header3);
function item_row(table, i) {
const row = table.insertRow();
// name
const cell_name = row.insertCell();
const item_name = crtText(HVCConfig[i].Name.replace(/ \(.*\)/, ''), null, 'item_name');
cell_name.appendChild(item_name);
// sell as clutter
const cell_sell = row.insertCell();
const checkbox_sell = crtInput('checkbox', checkbox_style, 'sell_as_clutter');
checkbox_sell.checked = Boolean(HVCConfig[i].sell_as_clutter);
cell_sell.append(checkbox_sell);
// min undercut
const cell_minundercut = row.insertCell();
const checkbox_minundercut = crtInput('checkbox', checkbox_style, 'min_undercut');
checkbox_minundercut.checked = Boolean(HVCConfig[i].min_undercut);
cell_minundercut.appendChild(checkbox_minundercut);
}
if (!in_isekai) {
// title persistent
const title2_ = hvcgui.insertRow().insertCell();
title2_.style = align_style;
const title2 = crtText('Persistent Items', title_style);
title2_.appendChild(title2);
for (let i = urlist_start; i <= pst_end; i++) { // persistent items
item_row(hvcTable, i);
}
} else {
// title isekai
const title3_ = hvcgui.insertRow().insertCell();
title3_.style = align_style;
const title3 = crtText('Isekai Items', title_style);
title3_.appendChild(title3);
for (let i = isk_start; i <= urlist_end; i++) { // isekai items
item_row(hvcTable, i);
}
}
// new style button to save config
const configButton_ = cE("div");
configButton_.id = 'hvcConfig_';
configButton_.innerHTML = [
'<button id="hvcConfig" style="border-width: 0px; padding: 0px; background: rgb(237, 235, 223); position: relative; top: -20px;">',
' <img src="',
'data:image/png;base64,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',
'" alt="hvcConfig.png"></button>',
].join('');
const left_up = qS('#market_xfer > div:nth-child(1)');
left_up.parentElement.insertBefore(configButton_, left_up);
function saveTable(config, checkSell, checkMinU) {
config.sell_as_clutter = checkSell.checked;
config.min_undercut = checkMinU.checked;
}
configButton_.onclick = function () {
HVCConfig[0].HVCdelay = input.value;
const checkSellAll = hvcTable.querySelectorAll('input[id="sell_as_clutter"]');
const checkMinUAll = hvcTable.querySelectorAll('input[id="min_undercut"]');
if (!in_isekai) {
for (let i = urlist_start, j = 0; i <= pst_end; i++, j++) { // i-j pair
saveTable(HVCConfig[i], checkSellAll[j], checkMinUAll[j]);
}
} else {
for (let i = isk_start, j = 0; i <= urlist_end; i++, j++) {
saveTable(HVCConfig[i], checkSellAll[j], checkMinUAll[j]);
}
}
GM_setValue('HVCConfig', HVCConfig);
location.reload();
};
};
function delay(ms) { // function to delay
return new Promise(resolve => setTimeout(resolve, ms));
}
// consts
const selector_sell_str = '#sellorder_update';
const selector_stock_str = '#sell_order_stock_field > span';
const selector_minundercut_str = '#market_itemsell > div:nth-child(1) > form > table > tbody > tr:nth-child(5) > td';
const selector_0order_str = '#market_itembuy > div.market_itemorders > p';
const input_price_str = '#sellorder_batchprice';
async function sellClutter() { // traverse links and sell trophies
const HVCConfig = GM_getValue('HVCConfig'); // load config
const iframe_ = document.createElement('iframe');
iframe_.id = 'hvciframe';
iframe_.hidden = true;
document.querySelector('body').appendChild(iframe_);
const iframe = document.querySelector('#hvciframe');
async function clutterClick(item, config, ms) { // click buttons
if (config.sell_as_clutter == false) {
return 0;
}
qS('#hvcselling').innerHTML = `---------------------- Selling now ----------------------<br><br>\> ${config.Name.replace(/ \(.*\)/, '')} \<<br><br>------------------- ⚠ Click to stop ⚠ -------------------`;
iframe.src = item;
await new Promise(resolve => iframe.addEventListener('load', resolve)); // wait for iframe to load completely # by OpenAI ChatGPT
var iframeDoc = iframe.contentWindow.document;
// selectors
const selector_sell = iframeDoc.querySelector(selector_sell_str);
const selector_stock = iframeDoc.querySelector(selector_stock_str);
const selector_minundercut = iframeDoc.querySelector(selector_minundercut_str);
const input_price = iframeDoc.querySelector(input_price_str);
const selector_0order = iframeDoc.querySelector(selector_0order_str);
if (selector_stock.textContent.match(/^0.*/) || selector_0order) { // contine the next iteration if there is no stock or no order
iframe.src = "";
return 0;
} else {
if (config.min_undercut == true) {
selector_minundercut.click();
await delay(1);
selector_stock.click();
await delay(1);
selector_sell.click();
} else {
input_price.value = 10;
await delay(1);
selector_stock.click();
await delay(1);
selector_sell.click();
}
await new Promise(resolve => iframe.addEventListener('load', resolve)); // wait for iframe to load completely # by OpenAI ChatGPT
iframeDoc = iframe.contentWindow.document; // since the page refresh, old iframDoc was cleared, new iframeDoc must be selected again
}
while ((iframeDoc.querySelector(selector_stock_str) && !(iframeDoc.querySelector(selector_stock_str).textContent.match(/^0.*/))) | !iframeDoc.querySelector(selector_stock_str)) {
await delay(10); // loop until the sell finished
if (iframeDoc.querySelector('#messagebox_inner > p[class="messagebox_error"]')) {
iframe.src = "";
return 1;
}
}
await delay(ms); // prevent too fast
iframe.src = "";
return 0;
}
if (!in_isekai) { // persistent
for (let i = urlist_start; i <= pst_end; i++) {
while (await clutterClick(urlist[i].url, HVCConfig[i], HVCConfig[0].HVCdelay) == 1) {
await clutterClick(urlist[i].url, HVCConfig[i], HVCConfig[0].HVCdelay);
}
}
} else { // isekai
for (let i = isk_start; i <= urlist_end; i++) {
while (await clutterClick(urlist[i].url, HVCConfig[i], HVCConfig[0].HVCdelay) == 1) {
await clutterClick(urlist[i].url, HVCConfig[i], HVCConfig[0].HVCdelay);
}
}
}
}
function startPopup() { // processing notification
let popup_ = cE("div");
popup_.innerHTML = [
'<div id="messagebox_outer" onclick={location.reload();}>',
' <div id="messagebox_inner" style="overflow-y:auto">',
` <p class="messagebox_error" style="color:red" id="hvcselling">---------------------- Selling now ----------------------<br><br><br><br>------------------- ⚠ Click to stop ⚠ -------------------</p></div></div>`,
].join('');
let market_outer = qS('#market_outer');
market_outer.parentElement.insertBefore(popup_, market_outer);
}
function endPopup() { // finish notification
qS('#messagebox_outer').remove();
qS('#hvciframe').remove();
let popup = cE("div");
popup.innerHTML = [
'<div id="messagebox_outer" onclick={location.reload();}>',
' <div id="messagebox_inner" style="overflow-y:auto">',
' <p class="messagebox_error" style="color:green">Clutter have been sold</p></div></div>',
].join('');
let market_outer = qS('#market_outer');
market_outer.parentElement.insertBefore(popup, market_outer);
}
sellButton.onclick = async function () { // sell clutter
startPopup();
await sellClutter();
endPopup();
}
})();