- // ==UserScript==
- // @name Vitriol
- // @namespace http://tampermonkey.net/
- // @version 1.0
- // @description Automatic market-watcher script that can watch items and warn if it's available (or instantly buy them) if the price is below a set maximum value.
- // @author **********
- // @include https://*.the-west.*/game.php*
- // @icon https://www.deviantart.com/ahnorac/art/Vitriol-998868964
- // @grant none
- // ==/UserScript==
-
- (function () {
-
- function ItemPrototype(item_id) {
- this.item_id = item_id;
- this.price = 0;
- this.instaBuy = false;
- }
- ItemPrototype.prototype = {
- setPrice: function (price) {
- this.price = price;
- },
-
- setInstaBuy: function (instaBuy) {
- this.instaBuy = instaBuy;
- }
- }
-
-
- function SearchPrototype(searchKey) {
- this.searchKey = searchKey;
- this.selectedItems = [];
- }
- SearchPrototype.prototype = {
- addItem: function (item) {
- this.selectedItems.push(item);
- },
-
- addItemByCreating: function (item) {
- var proto = new ItemPrototype(item.item_id);
- proto.setPrice(item.sell_price);
- proto.setInstaBuy(false);
- this.addItem(proto);
- },
-
- removeItem: function (item_id) {
- for (var i = 0; i < this.selectedItems.length; i++) {
- if (this.selectedItems[i].item_id == item_id) {
- this.selectedItems.splice(i, 1);
- return;
- }
- }
- },
-
- isAdded: function (item_id) {
- for (var i = 0; i < this.selectedItems.length; i++) {
- if (this.selectedItems[i].item_id == item_id) {
- return true;
- }
- }
- return false;
- },
- getMoney: function (item_id) {
- for (var i = 0; i < this.selectedItems.length; i++) {
- if (this.selectedItems[i].item_id == item_id) {
- return this.selectedItems[i].price;
- }
- }
- return 9999999;
- },
-
- getInstaBuy: function (item_id) {
- for (var i = 0; i < this.selectedItems.length; i++) {
- if (this.selectedItems[i].item_id == item_id) {
- return this.selectedItems[i].instaBuy;
- }
- }
- return -1;
- },
-
- setInstaBuy: function (item_id, value) {
- for (var i = 0; i < this.selectedItems.length; i++) {
- if (this.selectedItems[i].item_id == item_id) {
- this.selectedItems[i].instaBuy = value;
- }
- }
- },
-
- setPrice: function (item_id, value) {
- for (var i = 0; i < this.selectedItems.length; i++) {
- if (this.selectedItems[i].item_id == item_id) {
- this.selectedItems[i].price = value;
- }
- }
- }
-
- }
-
- Vitriol = {
- window: null,
- keywordFilter: "",
- itemNameFilter: "",
- searchTablePosition: { content: "0px", scrollbar: "0px" },
- selectedItemsTablePosition: { content: "0px", scrollbar: "0px" },
- legenda: true,
- selectedKeyword: -1,
- itemListLoaded: false,
- itemList: [],
- itemNames: [],
- searchKeys: [],
- selectedItems: [],
- selectedItemsInputFieldCount: 0,
- settings: {
- searchDelay: 60
- },
- isRunning: false,
- userMessages: [],
- lastMessage: 0,
- messageDelay: 2000,
- statistics: {
- boughtItems : 0
- }
- }
-
- Vitriol.log = function (message) {
- date = new Date();
- timeFormat = "[" + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds() + "] Vitriol: ";
- console.log(timeFormat + message);
- }
-
- Vitriol.logError = function (message) {
- document.querySelector("#errorMessage").innerHTML = message;
- date = new Date();
- timeFormat = "[" + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds() + "] Vitriol: ";
- console.log("%c" + timeFormat + message, 'background: #f00; color: #ffff00');
- }
-
- Vitriol.searchMarketPage = async function (search_key, page) {
- var reqObj = {
- pattern: search_key,
- nav: 'first',
- page: page,
- sort: 'bid',
- order: 'asc',
- type: '',
- level_range_min: 0,
- level_range_max: 250,
- usable: true,
- has_effect: false,
- visibility: 2
- };
-
- var found = 0;
- var resultItems = [];
- await Ajax.remoteCall('building_market', 'search', reqObj, function (json) {
- if (json.error)
- console.log("Error!");
- if (json.msg.search_result.length == 0) {
- console.log("Nothing found")
-
- }
- for (var i = 0; i < json.msg.search_result.length; i++) {
- resultItems.push(json.msg.search_result[i]);
- }
- found = json.msg.search_result.length;
- }, MarketWindow);
-
- if (found == 31) {
- var other = await Vitriol.searchMarketPage(search_key, page+1);
- for (var i = 0; i < other.length; i++) {
- resultItems.push(other[i]);
- }
- }
-
- return resultItems;
- }
-
- Vitriol.marketSearch = async function (search_key) {
- var result = await Vitriol.searchMarketPage(search_key, 1);
- return result;
- }
-
-
-
- Vitriol.getAllItems = function () {
- var items = [];
- var itemManagerItems = ItemManager.getAll();
- for (var k in itemManagerItems) {
- items.push(itemManagerItems[k]);
- }
- if(items.length > 0)
- {
- Vitriol.itemListLoaded = true;
- }
- return items;
- }
-
- Vitriol.getAllItemNames = function () {
- if (Vitriol.itemList.length == 0)
- Vitriol.log("Sh1te, no items!");
- else {
- for (var i = 0; i < Vitriol.itemList.length; i++) {
- Vitriol.itemNames.push(Vitriol.itemList[i].name);
- }
- }
- }
-
-
- Vitriol.itemSearch = function (keyword) {
-
- if(Vitriol.itemListLoaded == false)
- {
- Vitriol.itemList = Vitriol.getAllItems();
- Vitriol.getAllItemNames();
- }
-
- var lcKeyword = keyword.toLowerCase();
-
- var result = [];
-
- for (var i = 0; i < Vitriol.itemNames.length; i++) {
- var itemName = Vitriol.itemNames[i].toLowerCase();
- var item = Vitriol.itemList[i];
-
- if (itemName.includes(lcKeyword) && item.auctionable)
- result.push(Vitriol.itemList[i]);
- }
- return result;
- }
-
- Vitriol.addSearchKeyword = function (keyword) {
- var min_length = 2;
- if (keyword.length < min_length) {
- Vitriol.logError("Keyword is too short")
- return false;
- }
- for(var key = 0; key < Vitriol.searchKeys.length; key++)
- {
- if (Vitriol.searchKeys[key].searchKey.toLowerCase() === keyword.toLowerCase()) {
- Vitriol.logError("Keyword is already used")
- return false;
- }
- }
-
- var addable = new SearchPrototype(keyword);
- Vitriol.searchKeys.push(addable);
- return true;
- }
-
- Vitriol.removeSearchKeyword = function (keyword) {
-
- for(var i = 0; i < Vitriol.searchKeys.length; i++)
- {
- if(keyword == Vitriol.searchKeys[i].searchKey)
- {
- Vitriol.searchKeys.splice(i,1);
- }
- }
- Vitriol.selectTab('searchtab');
- }
-
- Vitriol.isSearchKeywordAdded = function (keyword) {
- for (var i = 0; i < Vitriol.searchKeys.length; i++) {
- if (Vitriol.searchKeys[i].searchKey.toLowerCase() === keyword.toLowerCase())
- return i;
- }
- return -1;
- }
-
- Vitriol.addItemToSearchKeyword = function (keyword, item_id, price, instaBuy) {
- var index = Vitriol.isSearchKeywordAdded(keyword);
- if (index == -1) {
- Vitriol.logError("Keyword is not added yet.");
- return;
- }
- var items = Vitriol.itemSearch(keyword);
-
- for (var i = 0; i < items.length; i++) {
- if (items[i].item_id == item_id) {
- var proto = new ItemPrototype(item_id);
- proto.setPrice(price);
- proto.setInstaBuy(instaBuy);
- Vitriol.searchKeys[index].addItem(proto);
- return;
- }
- }
- Vitriol.logError("Item ID not found in list.")
- }
-
-
- Vitriol.buyItem = function (item) {
- Ajax.remoteCall('building_market', 'bid', {
- bidtype: 0,
- bid: item.max_price,
- market_offer_id: item.market_offer_id
- }, function (resp) {
- if (resp.error)
- return new UserMessage(resp.msg).show();
- else {
- if (resp.msg.instantBuy) {
- new UserMessage((Character.charSex == 'female') ? "Ezt a trgyat rversen szerezted." : "Ezt a trgyat rversen szerezted.", UserMessage.TYPE_SUCCESS).show();
- } else {
- new UserMessage((Character.charSex == 'female') ? "Elkldted az rajnlatodat." : "Elkldted az rajnlatodat.", UserMessage.TYPE_SUCCESS).show();
- }
- Character.setMoney(resp.msg.money);
- Character.setDeposit(resp.msg.deposit);
- }
- }, MarketWindow);
- AudioController.play('mpi_game_ready_2');
- Vitriol.statistics.boughtItems++;
- Vitriol.setCookies();
- }
-
- Vitriol.warnUserForItem = function (item) {
- var baseId = item.item_id / 1000;
- Vitriol.log("Found: " + ItemManager.getAll()[baseId].name + " from " + item.seller_name + " for " + item.max_price + "(x" + item.item_count + ")");
- Vitriol.addUserMessage("Found: " + ItemManager.getAll()[baseId].name);
-
- }
-
- Vitriol.instaBuyItem = function (item) {
- var baseId = item.item_id / 1000;
- Vitriol.log("Instabuy: " + ItemManager.getAll()[baseId].name + " from " + item.seller_name + " for " + item.max_price + "(x" + item.item_count + ")");
- Vitriol.addUserMessage("Bought: " + ItemManager.getAll()[baseId].name);
- Vitriol.buyItem(item);
- }
-
- Vitriol.fullCheckMarket = async function () {
- for (var i = 0; i < Vitriol.searchKeys.length; i++) {
- var marketItems = await Vitriol.marketSearch(Vitriol.searchKeys[i].searchKey);
- for (var j = 0; j < marketItems.length; j++) {
- if (Vitriol.searchKeys[i].isAdded(marketItems[j].item_id))
- {
- var goodPrice = Vitriol.searchKeys[i].getMoney(marketItems[j].item_id);
- if (marketItems[j].max_price != null && (marketItems[j].max_price/marketItems[j].item_count) <= goodPrice) {
- var instaBuy = Vitriol.searchKeys[i].getInstaBuy(marketItems[j].item_id);
-
- var baseId = marketItems[j].item_id / 1000;
-
- if (instaBuy == -1)
- Vitriol.logError("Instabuy not found??");
- else if (instaBuy)
- Vitriol.instaBuyItem(marketItems[j]);
- else
- Vitriol.warnUserForItem(marketItems[j]);
-
- }
- }
- }
- }
- }
-
- Vitriol.setCookies = function () {
- var expiracyDatePermanent = new Date();
- expiracyDatePermanent.setDate(expiracyDatePermanent.getDate() + 360000);
- var permanentObject = {
- settings: Vitriol.settings,
- statistics: Vitriol.statistics,
- searchKeys: Vitriol.searchKeys
-
- };
- var jsonPermanent = JSON.stringify(permanentObject);
- document.cookie = "Vitriolpermanent=" + jsonPermanent + ";expires=" + expiracyDatePermanent.toGMTString() + ";";
- };
- Vitriol.getCookies = function () {
- var cookie = document.cookie.split("=");
- for (var i = 0; i < cookie.length; i++) {
- if (cookie[i].includes("Vitriolpermanent")) {
- var obj = cookie[i + 1].split(";");
- var permanentObject = JSON.parse(obj[0]);
- Vitriol.settings = permanentObject.settings;
- Vitriol.statistics = permanentObject.statistics;
- if (permanentObject.searchKeys) {
- for (var i = 0; i < permanentObject.searchKeys.length; i++) {
- var searchKey = permanentObject.searchKeys[i].searchKey;
- Vitriol.addSearchKeyword(searchKey);
- for (var j = 0; j < permanentObject.searchKeys[i].selectedItems.length; j++) {
- var item = permanentObject.searchKeys[i].selectedItems[j];
- var item_id = item.item_id;
- var price = item.price;
- var instaBuy = item.instaBuy;
- Vitriol.addItemToSearchKeyword(searchKey, item_id, price, instaBuy);
- }
- }
- }
-
- }
- }
- };
-
-
- // =================== UI ===================
-
- Vitriol.createWindow = function () {
- var window = wman.open("Vitriol").setResizeable(false).setMinSize(650, 480).setSize(650, 480).setMiniTitle("Vitriol");
- var content = $('<div class=\'Vitriolwindow\'/>');
- var tabs = {
- "searchtab": "Search",
- "itemstab": "Selected Items",
- "settings": "Settings"
- };
-
- for (var tab in tabs) {
- window.addTab(tabs[tab], tab, Vitriol.tabLogic);
- }
- Vitriol.window = window;
- Vitriol.selectTab("searchtab");
- };
-
- Vitriol.tabLogic = function (win, id) {
- var content = $('<div class=\'Vitriolwindow\'/>');
- switch (id) {
- case "searchtab":
- Vitriol.removeActiveTab(this);
- Vitriol.removeWindowContent();
- Vitriol.addActiveTab("searchtab", this);
- content.append(Vitriol.createSearchTab());
- Vitriol.window.appendToContentPane(content);
- Vitriol.addSearchTableCss();
- $(".Vitriolwindow .tw2gui_scrollpane_clipper_contentpane").css({ "top": Vitriol.searchTablePosition.content });
- $(".Vitriolwindow .tw2gui_scrollbar_pulley").css({ "top": Vitriol.searchTablePosition.scrollbar });
- break;
- case "itemstab":
- Vitriol.removeActiveTab(this);
- Vitriol.removeWindowContent();
- Vitriol.addActiveTab("itemstab", this);
- content.append(Vitriol.createSelectedItemsTab());
- Vitriol.window.appendToContentPane(content);
- $(".Kittymaticwindow .tw2gui_scrollpane_clipper_contentpane").css({ "top": Vitriol.selectedItemsTablePosition.content });
- $(".Kittymaticwindow .tw2gui_scrollbar_pulley").css({ "top": Vitriol.selectedItemsTablePosition.scrollbar });
- Vitriol.addSelectedItemsTableCss();
- Vitriol.addListenersToInputFields(Vitriol.selectedItemsInputFieldCount);
- Vitriol.addListenerToItemNameFilter();
- break;
- case "settings":
- Vitriol.removeActiveTab(this);
- Vitriol.removeWindowContent();
- Vitriol.addActiveTab("settings", this);
- content.append(Vitriol.createSettingsGui());
- Vitriol.window.appendToContentPane(content);
- break;
- }
- }
-
- Vitriol.selectTab = function (key) {
- Vitriol.window.tabIds[key].f(Vitriol.window, key);
- };
-
- Vitriol.removeActiveTab = function (window) {
- $('div.tw2gui_window_tab', window.divMain).removeClass('tw2gui_window_tab_active');
- };
-
- Vitriol.removeWindowContent = function () {
- $(".Vitriolwindow").remove();
- };
-
- Vitriol.addActiveTab = function (key, window) {
- $('div._tab_id_' + key, window.divMain).addClass('tw2gui_window_tab_active');
- };
-
- Vitriol.createRemoveKeywordButton = function (keyword) {
- var buttonAdd = new west.gui.Button("Remove", function () {
- Vitriol.removeSearchKeyword(keyword);
- Vitriol.searchTablePosition.content = $(".Vitriolwindow .tw2gui_scrollpane_clipper_contentpane").css("top");
- Vitriol.searchTablePosition.scrollbar = $(".Vitriolwindow .tw2gui_scrollbar_pulley").css("top");
- });
- buttonAdd.setWidth(100);
- return buttonAdd.getMainDiv();
- };
-
- Vitriol.filterSearchKeys = function (filter) {
- if (filter.length == 0)
- return Vitriol.searchKeys;
-
- var keys = [];
-
- for (var i = 0; i < Vitriol.searchKeys.length; i++) {
- if (Vitriol.searchKeys[i].searchKey.toLowerCase().includes(filter.toLowerCase()))
- keys.push(Vitriol.searchKeys[i]);
- }
-
- return keys;
- }
-
- Vitriol.createSearchTab = function () {
- var htmlSkel = $("<div id = \'search_overview'\></div>");
- var html = $("<div class = \'keywords_search'\ style=\'position:relative;'\><div id=\'keywordFilter'\style=\'position:absolute;top:10px;left:15px'\></div><div id=\'errorMessageContainer'\><p id=\'errorMessage'\></p></div><div id=\'button_add_keyword'\style=\'position:absolute;top:5px;left:340px;'\></div><div id=\'button_filter_keywords'\style=\'position:absolute;top:5px;left:450px;'\></div></div>");
- var table = new west.gui.Table();
- table.addColumn("keyWord", "keyWord").addColumn("removeKeyword", "removeKeyword");
- table.appendToCell("head", "keyWord", "Keyword").appendToCell("head", "removeKeyword", "Remove Keyword");
-
- var filtered = Vitriol.filterSearchKeys(Vitriol.keywordFilter);
-
- for (var i = 0; i < filtered.length; i++) {
- table.appendRow().appendToCell(-1, "keyWord", filtered[i].searchKey).appendToCell(-1, "removeKeyword", Vitriol.createRemoveKeywordButton(filtered[i].searchKey));
- }
-
- var textfield = new west.gui.Textfield("keywordsearch").setPlaceholder("Select a keyword");
-
- if (Vitriol.keywordFilter != "") {
- textfield.setValue(Vitriol.keywordFilter);
- }
-
- var buttonAdd = new west.gui.Button("Add Keyword", function () {
- Vitriol.searchTablePosition.content = "0px";
- Vitriol.searchTablePosition.scrollbar = "0px";
- if(Vitriol.addSearchKeyword(textfield.getValue()))
- {
- Vitriol.setCookies();
- Vitriol.selectTab("searchtab");
- }
- });
-
- var buttonFilter = new west.gui.Button("Filter", function () {
- Vitriol.keywordFilter = textfield.getValue();
- Vitriol.searchTablePosition.content = "0px";
- Vitriol.searchTablePosition.scrollbar = "0px";
- Vitriol.selectTab("searchtab");
- });
-
- htmlSkel.append(table.getMainDiv());
- $('#keywordFilter', html).append(textfield.getMainDiv());
- $("#button_add_keyword", html).append(buttonAdd.getMainDiv());
- $("#button_filter_keywords", html).append(buttonFilter.getMainDiv());
- htmlSkel.append(html);
- return htmlSkel;
- };
-
- Vitriol.filterItemnames = function (items, filter) {
-
- if (filter.length == 0) {
- return items;
- }
- var goodItems = [];
-
- for (var i = 0; i < items.length; i++) {
- if (items[i].name.toLowerCase().includes(filter.toLowerCase())) {
- goodItems.push(items[i]);
- }
- }
- return goodItems;
- }
-
- Vitriol.addListenerToItemNameFilter = function () {
-
- $("#itemNameSearch").on("keyup", function (e)
- {
- Vitriol.itemNameFilter = e.target.value;
- Vitriol.selectTab("itemstab");
- $("#itemNameSearch").trigger('focus');
- })
- }
-
- Vitriol.createSelectedItemsTab = function () {
- var htmlSkel = $("<div id = \'items_overview'\></div>");
- var html = $("<div class = \'itemName_search'\ style=\'position:relative;'\><div id=\'itemNameFilter'\style=\'position:absolute;top:10px;left:15px'\></div><div id=\'combobox_keywords'\></div></div>");
- var combobox = new west.gui.Combobox("combobox_keywords");
- Vitriol.addComboboxItems(combobox);
- combobox = combobox.select(Vitriol.selectedKeyword);
- combobox.addListener(function (value) {
- Vitriol.selectedKeyword = value;
- Vitriol.selectTab("itemstab");
- });
-
- var table = new west.gui.Table();
- table.addColumn("watch", "watch").addColumn("itemLogo","itemLogo").addColumn("itemName", "itemName").addColumn("setPrice", "setPrice").addColumn("vitrioling","vitrioling");
- table.appendToCell("head", "watch", "Watched").appendToCell("head","itemLogo","").appendToCell("head", "itemName", "Item Name").appendToCell("head", "setPrice", "Max price").appendToCell("head", "vitrioling", "Automation");
- var selectedItems;
- Vitriol.selectedItemsInputFieldCount = 0;
- Vitriol.selectedItems = [];
- if(Vitriol.selectedKeyword != -1)
- {
- selectedItems = Vitriol.itemSearch(Vitriol.searchKeys[Vitriol.selectedKeyword].searchKey);
- selectedItems = Vitriol.filterItemnames(selectedItems, Vitriol.itemNameFilter);
- Vitriol.selectedItems = selectedItems;
- Vitriol.selectedItemsInputFieldCount = selectedItems.length;
- for (var i = 0; i < selectedItems.length; i++) {
- table.appendRow().appendToCell(-1, "watch", Vitriol.createWatchCheckbox(selectedItems, i)).appendToCell(-1,"itemLogo",Vitriol.getItemLogo(selectedItems, i)).appendToCell(-1, "itemName", selectedItems[i].name).appendToCell(-1, "setPrice", Vitriol.createItemInputField(selectedItems, i)).appendToCell(-1, "vitrioling", Vitriol.createVitriolCheckbox(selectedItems, i));
- }
- }
-
- var textfield = new west.gui.Textfield("itemNameSearch").setPlaceholder("Select an item");
-
- if (Vitriol.itemNameFilter != "") {
- textfield.setValue(Vitriol.itemNameFilter);
- }
-
-
- htmlSkel.append(table.getMainDiv());
- $('#itemNameFilter', html).append(textfield.getMainDiv());
- $('#combobox_keywords', html).append(combobox.getMainDiv());
-
- htmlSkel.append(html);
-
- return htmlSkel;
- };
-
- Vitriol.createSettingsGui = function () {
- var htmlSkel = $("<div id=\'settings_overview'\ style = \'padding:10px;'\></div>");
-
- var htmlSearchDelay = $("<div></div>");
- htmlSearchDelay.append("<span> Search delay (seconds): </span>");
- var htmlSearchDelayTextfield = new west.gui.Textfield("searchDelay");
- htmlSearchDelayTextfield.setValue(Vitriol.settings.searchDelay);
- htmlSearchDelayTextfield.setWidth(100);
- htmlSearchDelay.append(htmlSearchDelayTextfield.getMainDiv());
-
- var buttonApply = new west.gui.Button("Apply", function () {
- Vitriol.setCookies();
- if (Vitriol.isNumber(htmlSearchDelayTextfield.getValue())) {
- var searchDelay = parseInt(htmlSearchDelayTextfield.getValue());
- Vitriol.settings.searchDelay = searchDelay;
- }
- Vitriol.selectTab("settings");
- })
-
- var buttonStart = new west.gui.Button("Start", function () {
- Vitriol.isRunning = true;
- Vitriol.run();
- Vitriol.selectTab("settings");
- })
-
-
- var buttonStop = new west.gui.Button("Stop", function () {
- Vitriol.isRunning = false;
- Vitriol.selectTab("settings");
- })
-
-
- htmlSkel.append(htmlSearchDelay);
- htmlSkel.append("<br>");
- if (Vitriol.isRunning)
- htmlSkel.append("<p style=\"color: green; \" id='isRunning'><strong>Vitriol is running.</strong></p>");
- else
- htmlSkel.append("<p style=\"color: red; \" id='isRunning'><strong>Vitriol is not running.</strong></p>");
- htmlSkel.append("<br>");
- htmlSkel.append(buttonApply.getMainDiv());
- htmlSkel.append(buttonStart.getMainDiv());
- htmlSkel.append(buttonStop.getMainDiv());
- return htmlSkel;
- };
-
- Vitriol.isNumber = function (potentialNumber) {
- return Number.isInteger(parseInt(potentialNumber));
- };
-
- Vitriol.addComboboxItems = function (combobox) {
- combobox.addItem(-1, "None");
- for (var i = 0; i < Vitriol.searchKeys.length; i++) {
- combobox.addItem(i.toString(), Vitriol.searchKeys[i].searchKey);
- }
- };
-
- Vitriol.parseItemFields = function (selectedItems) {
-
- for (var i = 0; i < selectedItems.length; i++) {
- if (Vitriol.searchKeys[Vitriol.selectedKeyword].isAdded(selectedItems[i].item_id)) {
- var price = $(".Vitriolwindow #id-" + i).prop("value");
- if (Vitriol.isNumber(price)) {
- if (price >= selectedItems[i].sell_price)
- Vitriol.searchKeys[Vitriol.selectedKeyword].setPrice(selectedItems[i].item_id, price);
- else
- Vitriol.searchKeys[Vitriol.selectedKeyword].setPrice(selectedItems[i].item_id, selectedItems[i].sell_price);
- }
- }
- }
- }
-
- Vitriol.addListenersToInputFields = function (num) {
-
- var createFunction = function (j) {
- var i = j;
- var f = function (e) {
- if (Vitriol.searchKeys[Vitriol.selectedKeyword].isAdded(Vitriol.selectedItems[i].item_id)) {
- var price = e.target.value;
- if (Vitriol.isNumber(price)) {
- if (price >= Vitriol.selectedItems[i].sell_price)
- Vitriol.searchKeys[Vitriol.selectedKeyword].setPrice(Vitriol.selectedItems[i].item_id, price);
- else
- Vitriol.searchKeys[Vitriol.selectedKeyword].setPrice(Vitriol.selectedItems[i].item_id, Vitriol.selectedItems[i].sell_price);
- Vitriol.setCookies();
- }
-
- }
-
- console.log(e.target.value);
- }
- return f;
- }
- for (var i = 0; i < num; i++) {
- $(".Vitriolwindow #id-" + i).on("change", createFunction(i));
- }
- }
-
- Vitriol.getImageSkel = function () {
- return $("<img class='itemimage' src=''\>");
- };
- Vitriol.getItemImage = function (id) {
- return ItemManager.get(id).image;
- };
-
- Vitriol.getItemLogo = function (selectedItems, index) {
- return Vitriol.getImageSkel().attr("src", Vitriol.getItemImage(selectedItems[index].item_id));
- }
-
- Vitriol.createItemInputField = function (selectedItems, index) {
- var componentId = "id-" + index;
- var inputfield = new west.gui.Textfield("itemPrice").setPlaceholder("Price");
- inputfield.setId(componentId);
-
-
-
- var value = selectedItems[index].sell_price;
- if (Vitriol.searchKeys[Vitriol.selectedKeyword].isAdded(selectedItems[index].item_id))
- value = Vitriol.searchKeys[Vitriol.selectedKeyword].getMoney(selectedItems[index].item_id);
- inputfield.setValue(value);
- inputfield.setWidth(50);
-
-
- return inputfield.getMainDiv();
- };
-
- Vitriol.createVitriolCheckbox = function (selectedItems, index) {
- var checkbox = new west.gui.Checkbox();
- checkbox.setLabel("Auto Purchase");
-
- checkbox.setSelected(Vitriol.searchKeys[Vitriol.selectedKeyword].isAdded(selectedItems[index].item_id) && Vitriol.searchKeys[Vitriol.selectedKeyword].getInstaBuy(selectedItems[index].item_id));
- checkbox.setCallback(function () {
-
-
- if (this.isSelected()) {
-
- if (Vitriol.searchKeys[Vitriol.selectedKeyword].isAdded(selectedItems[index].item_id))
- Vitriol.searchKeys[Vitriol.selectedKeyword].setInstaBuy(selectedItems[index].item_id, true);
- }
- else {
- if (Vitriol.searchKeys[Vitriol.selectedKeyword].isAdded(selectedItems[index].item_id))
- Vitriol.searchKeys[Vitriol.selectedKeyword].setInstaBuy(selectedItems[index].item_id, false);
- Vitriol.setCookies();
- }
- });
-
-
- return checkbox.getMainDiv();
- };
-
- Vitriol.createWatchCheckbox = function (selectedItems, index) {
- var checkbox = new west.gui.Checkbox();
- checkbox.setLabel("");
-
- checkbox.setSelected(Vitriol.searchKeys[Vitriol.selectedKeyword].isAdded(selectedItems[index].item_id));
-
- checkbox.setCallback(function () {
- if (this.isSelected()) {
- Vitriol.searchKeys[Vitriol.selectedKeyword].addItemByCreating(selectedItems[index]);
- }
- else {
- Vitriol.searchKeys[Vitriol.selectedKeyword].removeItem(selectedItems[index].item_id);
- }
- Vitriol.setCookies();
- });
-
- return checkbox.getMainDiv();
- };
-
- Vitriol.addSearchTableCss = function () {
- $(".Vitriolwindow .keyWord").css({ "width": "150px", "text-align": "center", "font-size": "larger", "font-weight": "bold" });
- $(".Vitriolwindow .removeKeyword").css({ "width": "140px", "position": "relative", "top": "5px", "text-align": "center", "font-size": "larger", "font-weight": "bold" });
- $(".Vitriolwindow .removeKeyword").first().css({"top":"0px"});
- $(".Vitriolwindow .row").css({ "height": "40px" });
- $(".Vitriolwindow #errorMessageContainer").css({ "position": "relative", "left": "250px", "top": "45px"});
- $(".Vitriolwindow #errorMessageContainer").css({ "font-weight": "bold", "color": "red"});
- $('.Vitriolwindow').find('.tw2gui_scrollpane').css('height', '250px');
- };
-
- Vitriol.addSelectedItemsTableCss = function () {
- $(".Vitriolwindow .watch").css({ "position": "relative", "width": "100px", "top": "5px", "text-align": "center", "font-size": "small"});
- $(".Vitriolwindow .watch").first().css({ "position": "relative", "top": "0px", "width": "100px", "text-align": "center", "font-size": "larger", "font-weight": "bold" });
- $(".Vitriolwindow .itemLogo").first().css({ "position": "relative", "top": "0px", "width": "30px", "text-align": "center", "font-size": "larger", "font-weight": "bold" });
- $(".Vitriolwindow .itemLogo").css({"width": "30px", "text-align": "center" });
- $(".Vitriolwindow .itemimage").css({ "width": "25px", "height": "25px"});
- $(".Vitriolwindow .itemName").css({ "width": "150px", "text-align": "center", "font-size": "small"});
- $(".Vitriolwindow .itemName").first().css({ "width": "150px", "text-align": "center", "font-size": "larger"});
- $(".Vitriolwindow .setPrice").css({ "width": "80px", "text-align": "center" });
- $(".Vitriolwindow .setPrice").first().css({ "width": "80px", "text-align": "center", "font-size": "larger", "font-weight": "bold" });
- $(".Vitriolwindow .vitrioling").css({ "width": "110px", "text-align": "center" });
- $(".Vitriolwindow .vitrioling").first().css({ "width": "110px", "text-align": "center", "font-size": "larger", "font-weight": "bold" });
- $(".Vitriolwindow .row").css({ "height": "40px" });
- $(".Vitriolwindow #combobox_keywords").css({ "position": "relative", "left": "110px", "top": "5px"});
- $('.Vitriolwindow').find('.tw2gui_scrollpane').css('height', '250px');
- $('.Vitriolwindow checkbox').css({ "position": "relative", "left": "100px"});
- };
-
- Vitriol.createMenuIcon = function () {
- var menuimage = 'https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/500a81fb-2791-4d19-aad0-3d6b643fead6/dgip884-06ea316a-dde8-43d5-a2d0-b1b602ac8e95.png/v1/fill/w_25,h_25,q_80,strp/vitriol_by_ahnorac_dgip884-fullview.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MjUiLCJwYXRoIjoiXC9mXC81MDBhODFmYi0yNzkxLTRkMTktYWFkMC0zZDZiNjQzZmVhZDZcL2RnaXA4ODQtMDZlYTMxNmEtZGRlOC00M2Q1LWEyZDAtYjFiNjAyYWM4ZTk1LnBuZyIsIndpZHRoIjoiPD0yNSJ9XV0sImF1ZCI6WyJ1cm46c2VydmljZTppbWFnZS5vcGVyYXRpb25zIl19.fmPcGNHBjBn4bNnLhpgKJbu08Ul-uWnLd1lys5LfhQU';
- var div = $('<div class="ui_menucontainer" />');
- var link = $('<div id="Menu" class="menulink" onclick=Vitriol.createWindow(); title="Vitriol" />').css('background-image', 'url(' + menuimage + ')');
- $('#ui_menubar').append((div).append(link).append('<div class="menucontainer_bottom" />'));
- };
-
- Vitriol.addUserMessage = function (msg) {
- Vitriol.userMessages.push(msg);
- }
-
- Vitriol.canSayUserMessage = function () {
- return Vitriol.userMessages.length > 0 && get_server_date().valueOf() >= Vitriol.lastMessage + Vitriol.messageDelay;
- }
-
- Vitriol.manageUserMessages = function() {
- new UserMessage(Vitriol.userMessages[0], UserMessage.TYPE_ERROR).show();
- Vitriol.lastMessage = get_server_date().valueOf();
- Vitriol.userMessages.splice(0, 1);
- }
-
- Vitriol.run = async function () {
- var nextCheck = get_server_date().valueOf();
- while (true) {
- if (!Vitriol.isRunning)
- break;
- if (get_server_date().valueOf() >= nextCheck)
- {
- Vitriol.fullCheckMarket();
- nextCheck = get_server_date().valueOf() + Vitriol.settings.searchDelay * 1000;
- }
- await new Promise(r => setTimeout(r, 500));
- if (Vitriol.canSayUserMessage())
- Vitriol.manageUserMessages();
- }
- }
-
- $(document).ready(function () {
- try {
- Vitriol.itemList = Vitriol.getAllItems();
- Vitriol.getAllItemNames();
- Vitriol.createMenuIcon();
- Vitriol.getCookies();
-
- } catch (e) {
- Vitriol.logError("exception occured");
- }
- });
- })();