init
This commit is contained in:
@@ -0,0 +1,5 @@
|
||||
-- This file is populated automatically by the TradeSkillMaster Application
|
||||
-- and should not be manually modified.
|
||||
local TSM = select(2, ...)
|
||||
TSM.AppData = {
|
||||
}
|
||||
@@ -0,0 +1,159 @@
|
||||
v2.3.10
|
||||
*No update. Trying to fix issue with curse.
|
||||
|
||||
v2.3.9
|
||||
*Changed how AuctionDB saves data on logout to avoid race conditions.
|
||||
|
||||
v2.3.8
|
||||
*Re-applied reverted change.
|
||||
|
||||
v2.3.7
|
||||
*Reverted previous change temporarily.
|
||||
|
||||
v2.3.6
|
||||
*Fixed bug with v2.3.4 change not taking effect.
|
||||
|
||||
v2.3.5
|
||||
*Typing "/tsm adbreset" will now reset update times as well as the data.
|
||||
|
||||
v2.3.4
|
||||
*AuctionDB will now import up to 48 hours of scan data, instead of 24.
|
||||
|
||||
v2.3.3
|
||||
*Fixed possible lua error with previous version.
|
||||
|
||||
v2.3.2
|
||||
*Fixed another bug with importing data from the TSM app.
|
||||
|
||||
v2.3.1
|
||||
*Removed seen quantities which were not being used and are no longer supported by the TSM app.
|
||||
*Fixed bug with importing multiple scans worth of data from the TSM app.
|
||||
*Fixed bug with search of AuctionDB database not escaping special characters properly.
|
||||
|
||||
v2.3
|
||||
*Added code to clear out old, unused scan data from the database to save space.
|
||||
*Importing data from the app will now happen in the background rather than when AuctionDB is loaded.
|
||||
*Changed how the current day's scans are being stored to be more efficient.
|
||||
*Many other general efficiency improvements with how AuctionDB manages its data.
|
||||
|
||||
v2.2.3
|
||||
*Updated group tree creation API call.
|
||||
|
||||
v2.2.2
|
||||
*Fixed typo in previous release.
|
||||
|
||||
v2.2.1
|
||||
*Fixed bug with AuctionDB not saving data which was imported from the TSM app.
|
||||
|
||||
v2.2
|
||||
*Fixed potential error in scan processing code.
|
||||
*Fixed bug with the display of the last scan time.
|
||||
*Greatly reduced the time it takes AuctionDB to load / save its data (essentially to zero).
|
||||
*Added "Show AuctionDB AH Tab" option (enabled by default) to allow those who use the TSM app to hide the AuctionDB tab.
|
||||
|
||||
v2.1
|
||||
*Improved the efficiency of the market value lookup code.
|
||||
*Fixed lua error with importing data from the TSM application.
|
||||
*Rearranged AuctionDB AH tab and added the ability to scan specific groups with AuctionDB.
|
||||
|
||||
v2.0.2
|
||||
*Updated scrolling tables.
|
||||
*Fixed some 5.4 issues.
|
||||
*Updated TOC for patch 5.4.
|
||||
|
||||
v2.0.1
|
||||
*Fixed issue with battlepet tooltips.
|
||||
|
||||
v2.0
|
||||
*First 2.0 Version!
|
||||
\\
|
||||
|
||||
v1.4
|
||||
*Updated TOC for patch 5.2.
|
||||
*Updated for new TSM application.
|
||||
*AuctionDB will no longer freeze the game while processing data from the TSM application.
|
||||
*Updated the style of AuctionDB's tooltips.
|
||||
*Fixed a bug with the scrolling table shrinking to half width in some situations.
|
||||
*Greatly increased the efficiency of the code which imports TSM app data.
|
||||
*Many other minor bug fixes and improvements.
|
||||
|
||||
v1.3
|
||||
*Fixed some divide by zero issues which will cause errors in 5.0.4.
|
||||
*Added support for new TSM application.
|
||||
*Updated to support new TSM design.
|
||||
*Many other minor bug fixes and improvements.
|
||||
|
||||
v1.2
|
||||
*Further optimized the code that decodes the data from the saved variables file when AuctionDB is loaded.
|
||||
*Added APIs to support the new special searches in TSM_Shopping.
|
||||
*Added disenchant value to the TSM tooltip and applicable options in the AuctionDB config.
|
||||
*Many other minor bug fixes and improvements.
|
||||
|
||||
v1.1
|
||||
*Dramatically reduced the amount of time it takes AuctionDB to load.
|
||||
*Removed all caching which should get rid of all interface lag due to AuctionDB.
|
||||
*Many other minor bug fixes and improvements.
|
||||
|
||||
v1.0
|
||||
*First Release Version!
|
||||
|
||||
|
||||
|
||||
**Beta Versions:**
|
||||
|
||||
v0.4
|
||||
*Optimized the code for searching through AuctionDB's database.
|
||||
*Fixed a bug where AuctionDB's ScrollTable in the main TSM window wasn't hiding properly.
|
||||
*Added code to support new automatic auction data updater application.
|
||||
*Scan data will now be compressed when saved.
|
||||
*Replaced auction count code with code to use Gathering's data.
|
||||
*Redesigned the market value algorithm to work better with the new auto updating application as well as regular scans.
|
||||
*Many other minor bug fixes and improvements.
|
||||
|
||||
v0.3.4
|
||||
*Updated TOC for patch 4.2.
|
||||
|
||||
v0.3.3
|
||||
*Changed the search page to use lib-st rather than AceGUI.
|
||||
*Fixed a bunch of minor bugs.
|
||||
|
||||
v0.3.2
|
||||
*Fixed a bug with the getall scan.
|
||||
*Updated the general scanning code to work better with the new version of Auctioneer.
|
||||
*Many other minor bug fixes and improvements.
|
||||
|
||||
v0.3.1
|
||||
*Removed player auction count code from AuctionDB (it was moved to Gathering).
|
||||
*Updated TOC for patch 4.1.
|
||||
|
||||
v0.3
|
||||
*Minimum buyouts will no long be wiped after a profession scan for items that weren't expected to be scanned.
|
||||
*Added a feature for searching through the scan data.
|
||||
*Completely re-did AuctionDB's page in the main TSM window to accommodate this new feature.
|
||||
*Added a button to the sidebar frame to quickly access this new feature.
|
||||
*The AuctionDB tooltip will now show whatever information is available rather than all or nothing.
|
||||
*Added a popup confirmation to the slash command for clearing the scan data (/tsm adbreset).
|
||||
*Many other minor bug fixes and improvements.
|
||||
|
||||
v0.2.2
|
||||
*AuctionDB should no longer be blocking Auctioneer when it's not supposed to.
|
||||
*Many other minor bug fixes and improvements.
|
||||
|
||||
v0.2.1
|
||||
*Added an option for preventing Auctioneer from scanning / processing on AuctionDB's scans (recommened).
|
||||
*Added more info to the tooltip for stacks of more than 1 to show the min buyout and market value for the entire stack.
|
||||
*Many other minor bug fixes and improvements.
|
||||
|
||||
v0.2
|
||||
*Fixed localization files.
|
||||
*Min buyouts are now cleared after a scan.
|
||||
*Brand new market value algorithm that should be much less vulnerable to market value poisoning as well as be far more accurate in general.
|
||||
*Many other minor bug fixes and improvements.
|
||||
|
||||
v0.1.1
|
||||
*Added option to do a full AH scan.
|
||||
*Fixed blacksmithing scan to include belt buckles.
|
||||
*Many other minor bug fixes and improvements.
|
||||
|
||||
v0.1
|
||||
*First version!
|
||||
@@ -0,0 +1,21 @@
|
||||
|
||||
All rights are reserved unless explicitly stated below. The "license
|
||||
holder" is the manager of this project, Sapu94 (sapu94@gmail.com).
|
||||
|
||||
Exceptions:
|
||||
1) The use of this addon in accordance with all applicable terms set by
|
||||
Blizzard Entertainment for addon use and game play is permitted.
|
||||
2) Modifications for personal use or submission to license holder are
|
||||
permitted. Modified versions of the works, derivative works, modified
|
||||
sections of the works, and instructions for how to modify the works are
|
||||
all prohibited unless the express consent of the license holder is
|
||||
granted.
|
||||
|
||||
Comments:
|
||||
1) Permission to use sections of the works in your own work is very
|
||||
likely to be granted upon contacting the license holder.
|
||||
2) The right to distribute the works is reserved by the license holder.
|
||||
In no way or form may a person other than the license holder distribute
|
||||
the works.
|
||||
3) Please contact the license holder if you have any questions at all
|
||||
regarding this license at the following email address: sapu94@gmail.com
|
||||
@@ -0,0 +1,92 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster_AuctionDB --
|
||||
-- http://www.curse.com/addons/wow/tradeskillmaster_auctiondb --
|
||||
-- --
|
||||
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) --
|
||||
-- All Rights Reserved* - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
-- TradeSkillMaster_AuctionDB Locale - deDE
|
||||
-- Please use the localization app on CurseForge to update this
|
||||
-- http://wow.curseforge.com/addons/TradeSkillMaster_AuctionDB/localization/
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("TradeSkillMaster_AuctionDB", "deDE")
|
||||
if not L then return end
|
||||
|
||||
L["A full auction house scan will scan every item on the auction house but is far slower than a GetAll scan. Expect this scan to take several minutes or longer."] = "Ein voller Auktionshausscan wird jedes einzelne Item im Auktionshaus scannen, ist aber sehr viel langsamer als der GetAll-Scan. Erwarte, dass es mehrere Minuten dauert oder länger."
|
||||
L["A GetAll scan is the fastest in-game method for scanning every item on the auction house. However, there are many possible bugs on Blizzard's end with it including the chance for it to disconnect you from the game. Also, it has a 15 minute cooldown."] = "Ein GetAll-Scan ist die schnellste Methode, um in-game alle Gegenstände im Auktionshaus zu scannen. Allerdings gibt es viele mögliche Bugs seitens Blizzard die auftreten können, inklusive der Möglichkeit, dass deine Verbindung zum Spiel getrennt wird. Außerdem gibt es einen 15-Minuten-Cooldown."
|
||||
L["Any items in the AuctionDB database that contain the search phrase in their names will be displayed."] = "Es werden alle Gegenstände in der \"AuctionDB\" Datenbank angezeigt, deren Namen mit der Sucheingabe übereinstimmen."
|
||||
L["Are you sure you want to clear your AuctionDB data?"] = "Sind Sie sicher, dass Sie die \"AuctionDB\" Daten löschen wollen?"
|
||||
L["Ascending"] = "Aufsteigend"
|
||||
L["AuctionDB - Market Value"] = "AuctionDB - Marktwert"
|
||||
L["AuctionDB - Minimum Buyout"] = "AuctionDB - Mindestpreis"
|
||||
L["Can't run a GetAll scan right now."] = "Kann im Moment keinen GetAll Scan durchführen."
|
||||
L["Descending"] = "Absteigend"
|
||||
L["Display lowest buyout value seen in the last scan in tooltip."] = "Zeige den niedrigsten Sofortkauf-Betrag aus dem letzten Scan im Tooltip."
|
||||
L["Display market value in tooltip."] = "Zeige Marktwert im Tooltip."
|
||||
L["Display number of items seen in the last scan in tooltip."] = "Zeige Anzahl der gefundenen Gegenstände vom letzten Scan im Tooltip."
|
||||
L["Display total number of items ever seen in tooltip."] = "Zeige Gesamtzahl der je gefundenen Gegenstände im Tooltip."
|
||||
L["Done Scanning"] = "Scannen beendet"
|
||||
L["Download the FREE TSM desktop application which will automatically update your TSM_AuctionDB prices using Blizzard's online APIs (and does MUCH more). Visit %s for more info and never scan the AH again! This is the best way to update your AuctionDB prices."] = "Lade die KOSTENLOSE TSM Desktopsoftware herunter die automatisch deine TSM_AuctionDB mit den Preisen aus Blizzard's online API aktualisiert (und noch VIEL mehr kann). Besuche %s für weitere Informationen und scanne das AH nie wieder! Dies ist die beste Art deine AuctionDB Preise aktuell zu halten."
|
||||
L["Enable display of AuctionDB data in tooltip."] = "Aktiviere die Anzeige der AuctionDB-Daten im Tooltip."
|
||||
L["GetAll scan did not run successfully due to issues on Blizzard's end. Using the TSM application for your scans is recommended."] = "GetAll scan nicht erfolgreich aufgrund von Problemen bei Blizzard. Nutzung der TSM Software für deinen Scan wird empfohlen."
|
||||
L["Hide poor quality items"] = "Verstecke Gegenstände schlechter Qualität"
|
||||
L["If checked, poor quality items won't be shown in the search results."] = "Wenn markiert, tauchen Gegenstände schlechter Qualität nicht in den Suchergebnissen auf."
|
||||
L["If checked, the lowest buyout value seen in the last scan of the item will be displayed."] = "Wenn ausgewählt, wird der niedrigste Sofortkaufpreis der im letzten Scan gefunden wurde angezeigt."
|
||||
L["If checked, the market value of the item will be displayed"] = "Wenn ausgewählt wird der Marktwert des Gegenstands angezeigt."
|
||||
L["If checked, the number of items seen in the last scan will be displayed."] = "Wenn ausgewählt wird die Anzahl der gefundenen Gegestände vom letzten Scan angezeigt."
|
||||
L["If checked, the total number of items ever seen will be displayed."] = "Wenn ausgewählt wird die Anzahl der jemals gefundenen Gegenstände angezeigt."
|
||||
L["Imported %s scans worth of new auction data!"] = "%s Scans mit neuen Auktionsdaten importiert!"
|
||||
L["Invalid value entered. You must enter a number between 5 and 500 inclusive."] = "Eingebener Wert ist ungültig. Sie müssen eine Zahl zwischen 5 und 500 eingeben."
|
||||
L["Item Link"] = "Gegenstands-Link"
|
||||
L["Item MinLevel"] = "Gegenstand MinLevel"
|
||||
L["Items per page"] = "Gegenstände pro Seite"
|
||||
L["Items %s - %s (%s total)"] = "Gegenstände %s - %s (%s gesamt)"
|
||||
L["Item SubType Filter"] = "Gegenstands-Unterkategorie-Filter"
|
||||
L["Item Type Filter"] = "Gegenstands-Kategorie-Filter"
|
||||
L["It is strongly recommended that you reload your ui (type '/reload') after running a GetAll scan. Otherwise, any other scans (Post/Cancel/Search/etc) will be much slower than normal."] = "Es wird sehr empfohlen, dass du die UI neu lädst (tippe \"/reload\"), nachdem du einen GetAll-Scan gemacht hast. Sonst werden andere Scans (Posten/Abbrechen/Suchen/etc) sehr viel langsamer als Normal laufen."
|
||||
L["Last Scanned"] = "Zuletzt gescannt"
|
||||
L["Last updated from in-game scan %s ago."] = "Zuletzt aktualisiert durch in-game Scan vor %s"
|
||||
L["Last updated from the TSM Application %s ago."] = "Zuletzt aktualisiert durch TSM-Applikation vor %s"
|
||||
L["Market Value"] = "Marktwert"
|
||||
L["Market Value:"] = "Marktwert:"
|
||||
L["Market Value x%s:"] = "Marktwert x%s:"
|
||||
L["Min Buyout:"] = "Mindest-Sofortkauf:" -- Needs review
|
||||
L["Min Buyout x%s:"] = "Min. Sofortkauf x%s:" -- Needs review
|
||||
L["Minimum Buyout"] = "Minimaler Sofortkaufpreis"
|
||||
L["Next Page"] = "Nächste Seite"
|
||||
L["No items found"] = "Keine Gegenstände gefunden"
|
||||
L["No scans found."] = "Keine Scans gefunden."
|
||||
L["Not Ready"] = "Nicht bereit"
|
||||
L["Not Scanned"] = "Nicht gescannt"
|
||||
L["Num(Yours)"] = "Num(Deine)"
|
||||
L["Options"] = "Optionen"
|
||||
L["Previous Page"] = "Vorherige Seite"
|
||||
L["Processing data..."] = "Verarbeite Daten..."
|
||||
L["Ready"] = "Bereit"
|
||||
L["Ready in %s min and %s sec"] = "Bereit in %s Minuten und %s Sekunden"
|
||||
L["Refreshes the current search results."] = "Aktualisiert die derzeitigen Suchergebnisse."
|
||||
L["Removed %s from AuctionDB."] = "%s von AuctionDB entfernt."
|
||||
L["Reset Data"] = "Daten zurücksetzen"
|
||||
L["Resets AuctionDB's scan data"] = "Setzt die Scandaten der \"AuctionDB\" zurück"
|
||||
L["Result Order:"] = "Reihenfolge der Ergebnisse:"
|
||||
L["Run Full Scan"] = "Starte einen vollen Scan"
|
||||
L["Run GetAll Scan"] = "Starte Komplettscan"
|
||||
L["Running query..."] = "Abfrage läuft..."
|
||||
L["%s ago"] = "Vor %s"
|
||||
L["Scanning page %s/%s"] = "Scanne Seite %s/%s"
|
||||
L["Scanning the auction house in game is no longer necessary!"] = "In-Game-Scan des Auktionshauses ist nicht mehr erforderlich!" -- Needs review
|
||||
L["Search"] = "Suche"
|
||||
L["Search Options"] = "Suchoptionen"
|
||||
L["Seen Last Scan:"] = "Zuletzt gesehen:" -- Needs review
|
||||
L["Select how you would like the search results to be sorted. After changing this option, you may need to refresh your search results by hitting the \"Refresh\" button."] = "Wählen Sie aus, wie die Suchergebnisse sortiert werden sollen. Nach Ändern der Option kann es notwendig sein Ihre Suchergebnisse zu aktualisieren, indem Sie den \"Aktualisieren\"-Button drücken."
|
||||
L["Select whether to sort search results in ascending or descending order."] = "Wähle, ob die Suchergebnisse aufsteigend oder absteigend sortiert werden sollen."
|
||||
L["Shift-Right-Click to clear all data for this item from AuctionDB."] = "Shift-Rechtsklick um alle Daten für das Item aus AuctionDB zu löschen."
|
||||
L["Sort items by"] = "Sortiere Gegenstände nach"
|
||||
L["This determines how many items are shown per page in results area of the \"Search\" tab of the AuctionDB page in the main TSM window. You may enter a number between 5 and 500 inclusive. If the page lags, you may want to decrease this number."] = "Dies bestimmt wieviele Gegenstände pro Seite im Ergebnisbereich des \"Suche\"-Reiters der \"AuctionDB\" im TSM Hauptfenster angezeigt werden. Sie können eine Zahl zwischen 5 und 500 eingeben. Wenn die Seite Verzögerungen verursacht, wäre es ratsam die Anzahl zu reduzieren."
|
||||
L["Total Seen Count:"] = "Summe insgesamt gesehen:" -- Needs review
|
||||
L["Use the search box and category filters above to search the AuctionDB data."] = "Benutzen Sie die Sucheingabe und Kategorie-Filter oben um die \"AuctionDB\"-Daten zu durchsuchen."
|
||||
L["You can filter the results by item subtype by using this dropdown. For example, if you want to search for all herbs, you would select \"Trade Goods\" in the item type dropdown and \"Herbs\" in this dropdown."] = "Sie können die Ergebnisse eingrenzen, indem Sie eine Gegenstands-Unterkategorie aus der Auswahlliste wählen. Wenn Sie zum Beispiel nach allen Kräutern suchen wollen, würden Sie \"Handwerkswaren\" als Gegenstands-Kategorie wählen und \"Kräuter\" in dieser Auswahlliste."
|
||||
L["You can filter the results by item type by using this dropdown. For example, if you want to search for all herbs, you would select \"Trade Goods\" in this dropdown and \"Herbs\" as the subtype filter."] = "Sie können die Ergebnisse eingrenzen, indem Sie eine Gegenstands-Kategorie aus der Auswahlliste wählen. Wenn Sie zum Beispiel nach allen Kräutern suchen wollen, würden Sie \"Handwerkswaren\" in dieser Auswahlliste wählen und \"Kräuter\" in der Auswahlliste für die Gegenstands-Unterkategorie."
|
||||
L["You can use this page to lookup an item or group of items in the AuctionDB database. Note that this does not perform a live search of the AH."] = "Diese Seite können Sie benutzen um Gegenstände oder Gegenstandsgruppe in der \"AuctionDB\"-Datenbank nachzuschlagen. Beachten Sie, dass dies keine Echtzeitsuche für das AH ist."
|
||||
|
||||
@@ -0,0 +1,91 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster_AuctionDB --
|
||||
-- http://www.curse.com/addons/wow/tradeskillmaster_auctiondb --
|
||||
-- --
|
||||
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) --
|
||||
-- All Rights Reserved* - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
-- TradeSkillMaster_AuctionDB Locale - enUS
|
||||
-- Please use the localization app on CurseForge to update this
|
||||
-- http://wow.curseforge.com/addons/TradeSkill-Master/localization/
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("TradeSkillMaster_AuctionDB", "enUS", true)
|
||||
if not L then return end
|
||||
|
||||
L["%s ago"] = true
|
||||
L["A GetAll scan is the fastest in-game method for scanning every item on the auction house. However, there are many possible bugs on Blizzard's end with it including the chance for it to disconnect you from the game. Also, it has a 15 minute cooldown."] = true
|
||||
L["A full auction house scan will scan every item on the auction house but is far slower than a GetAll scan. Expect this scan to take several minutes or longer."] = true
|
||||
L["Any items in the AuctionDB database that contain the search phrase in their names will be displayed."] = true
|
||||
L["Are you sure you want to clear your AuctionDB data?"] = true
|
||||
L["Ascending"] = true
|
||||
L["AuctionDB - Market Value"] = true
|
||||
L["AuctionDB - Minimum Buyout"] = true
|
||||
L["Can't run a GetAll scan right now."] = true
|
||||
L["Descending"] = true
|
||||
L["Display lowest buyout value seen in the last scan in tooltip."] = true
|
||||
L["Display market value in tooltip."] = true
|
||||
L["Done Scanning"] = true
|
||||
L["Download the FREE TSM desktop application which will automatically update your TSM_AuctionDB prices using Blizzard's online APIs (and does MUCH more). Visit %s for more info and never scan the AH again! This is the best way to update your AuctionDB prices."] = true
|
||||
L["Enable display of AuctionDB data in tooltip."] = true
|
||||
L["GetAll scan did not run successfully due to issues on Blizzard's end. Using the TSM application for your scans is recommended."] = true
|
||||
L["Hide poor quality items"] = true
|
||||
L["If checked, AuctionDB will add a tab to the AH to allow for in-game scans. If you are using the TSM app exclusively for your scans, you may want to hide it by unchecking this option. This option requires a reload to take effect."] = true
|
||||
L["If checked, poor quality items won't be shown in the search results."] = true
|
||||
L["If checked, the lowest buyout value seen in the last scan of the item will be displayed."] = true
|
||||
L["If checked, the market value of the item will be displayed"] = true
|
||||
L["Imported %s scans worth of new auction data!"] = true
|
||||
L["Invalid value entered. You must enter a number between 5 and 500 inclusive."] = true
|
||||
L["It is strongly recommended that you reload your ui (type '/reload') after running a GetAll scan. Otherwise, any other scans (Post/Cancel/Search/etc) will be much slower than normal."] = true
|
||||
L["Item Link"] = true
|
||||
L["Item MinLevel"] = true
|
||||
L["Item SubType Filter"] = true
|
||||
L["Item Type Filter"] = true
|
||||
L["Items %s - %s (%s total)"] = true
|
||||
L["Items per page"] = true
|
||||
L["Last Scanned"] = true
|
||||
L["Last updated from in-game scan %s ago."] = true
|
||||
L["Last updated from the TSM Application %s ago."] = true
|
||||
L["Market Value x%s:"] = true
|
||||
L["Market Value"] = true
|
||||
L["Market Value:"] = true
|
||||
L["Min Buyout x%s:"] = true
|
||||
L["Min Buyout:"] = true
|
||||
L["Minimum Buyout"] = true
|
||||
L["Next Page"] = true
|
||||
L["No items found"] = true
|
||||
L["No scans found."] = true
|
||||
L["Not Ready"] = true
|
||||
L["Not Scanned"] = true
|
||||
L["Options"] = true
|
||||
L["Preparing Filter %d / %d"] = true
|
||||
L["Preparing Filters..."] = true
|
||||
L["Previous Page"] = true
|
||||
L["Processing data..."] = true
|
||||
L["Ready in %s min and %s sec"] = true
|
||||
L["Ready"] = true
|
||||
L["Refreshes the current search results."] = true
|
||||
L["Removed %s from AuctionDB."] = true
|
||||
L["Reset Data"] = true
|
||||
L["Resets AuctionDB's scan data"] = true
|
||||
L["Result Order:"] = true
|
||||
L["Run Full Scan"] = true
|
||||
L["Run GetAll Scan"] = true
|
||||
L["Running query..."] = true
|
||||
L["Scan Selected Groups"] = true
|
||||
L["Scanning %d / %d (Page %d / %d)"] = true
|
||||
L["Scanning page %s/%s"] = true
|
||||
L["Scanning the auction house in game is no longer necessary!"] = true
|
||||
L["Search Options"] = true
|
||||
L["Search"] = true
|
||||
L["Select how you would like the search results to be sorted. After changing this option, you may need to refresh your search results by hitting the \"Refresh\" button."] = true
|
||||
L["Select whether to sort search results in ascending or descending order."] = true
|
||||
L["Shift-Right-Click to clear all data for this item from AuctionDB."] = true
|
||||
L["Show AuctionDB AH Tab (Requires Reload)"] = true
|
||||
L["Sort items by"] = true
|
||||
L["This determines how many items are shown per page in results area of the \"Search\" tab of the AuctionDB page in the main TSM window. You may enter a number between 5 and 500 inclusive. If the page lags, you may want to decrease this number."] = true
|
||||
L["This will do a slow auction house scan of every item in the selected groups and update their AuctionDB prices. This may take several minutes."] = true
|
||||
L["Use the search box and category filters above to search the AuctionDB data."] = true
|
||||
L["You can filter the results by item subtype by using this dropdown. For example, if you want to search for all herbs, you would select \"Trade Goods\" in the item type dropdown and \"Herbs\" in this dropdown."] = true
|
||||
L["You can filter the results by item type by using this dropdown. For example, if you want to search for all herbs, you would select \"Trade Goods\" in this dropdown and \"Herbs\" as the subtype filter."] = true
|
||||
L["You can use this page to lookup an item or group of items in the AuctionDB database. Note that this does not perform a live search of the AH."] = true
|
||||
@@ -0,0 +1,92 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster_AuctionDB --
|
||||
-- http://www.curse.com/addons/wow/tradeskillmaster_auctiondb --
|
||||
-- --
|
||||
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) --
|
||||
-- All Rights Reserved* - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
-- TradeSkillMaster_AuctionDB Locale - esES
|
||||
-- Please use the localization app on CurseForge to update this
|
||||
-- http://wow.curseforge.com/addons/TradeSkillMaster_AuctionDB/localization/
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("TradeSkillMaster_AuctionDB", "esES")
|
||||
if not L then return end
|
||||
|
||||
-- L["A full auction house scan will scan every item on the auction house but is far slower than a GetAll scan. Expect this scan to take several minutes or longer."] = ""
|
||||
-- L["A GetAll scan is the fastest in-game method for scanning every item on the auction house. However, there are many possible bugs on Blizzard's end with it including the chance for it to disconnect you from the game. Also, it has a 15 minute cooldown."] = ""
|
||||
L["Any items in the AuctionDB database that contain the search phrase in their names will be displayed."] = "Todos los artículos en la base de datos de AuctionDB que contienen la frase de búsqueda en su nombre en la pantalla."
|
||||
L["Are you sure you want to clear your AuctionDB data?"] = "¿Está seguro que desea borrar los datos AuctionDB?"
|
||||
L["Ascending"] = "Ascendente"
|
||||
-- L["AuctionDB - Market Value"] = ""
|
||||
-- L["AuctionDB - Minimum Buyout"] = ""
|
||||
-- L["Can't run a GetAll scan right now."] = ""
|
||||
L["Descending"] = "Descendiendo"
|
||||
-- L["Display lowest buyout value seen in the last scan in tooltip."] = ""
|
||||
-- L["Display market value in tooltip."] = ""
|
||||
-- L["Display number of items seen in the last scan in tooltip."] = ""
|
||||
-- L["Display total number of items ever seen in tooltip."] = ""
|
||||
-- L["Done Scanning"] = ""
|
||||
-- L["Download the FREE TSM desktop application which will automatically update your TSM_AuctionDB prices using Blizzard's online APIs (and does MUCH more). Visit %s for more info and never scan the AH again! This is the best way to update your AuctionDB prices."] = ""
|
||||
L["Enable display of AuctionDB data in tooltip."] = "Permitir la visualización de los datos AuctionDB en la descripción."
|
||||
-- L["GetAll scan did not run successfully due to issues on Blizzard's end. Using the TSM application for your scans is recommended."] = ""
|
||||
L["Hide poor quality items"] = "Esconder objetos de calidad pobre"
|
||||
L["If checked, poor quality items won't be shown in the search results."] = "Si se marca, los artículos de calidad pobre no se mostrará en los resultados de búsqueda."
|
||||
-- L["If checked, the lowest buyout value seen in the last scan of the item will be displayed."] = ""
|
||||
-- L["If checked, the market value of the item will be displayed"] = ""
|
||||
-- L["If checked, the number of items seen in the last scan will be displayed."] = ""
|
||||
-- L["If checked, the total number of items ever seen will be displayed."] = ""
|
||||
-- L["Imported %s scans worth of new auction data!"] = ""
|
||||
L["Invalid value entered. You must enter a number between 5 and 500 inclusive."] = "Valor introducido no válido. Debe introducir un número entre 5 y 500."
|
||||
L["Item Link"] = "Link de Objeto"
|
||||
L["Item MinLevel"] = "NivelMin Objeto"
|
||||
-- L["Items per page"] = ""
|
||||
-- L["Items %s - %s (%s total)"] = ""
|
||||
-- L["Item SubType Filter"] = ""
|
||||
-- L["Item Type Filter"] = ""
|
||||
-- L["It is strongly recommended that you reload your ui (type '/reload') after running a GetAll scan. Otherwise, any other scans (Post/Cancel/Search/etc) will be much slower than normal."] = ""
|
||||
-- L["Last Scanned"] = ""
|
||||
-- L["Last updated from in-game scan %s ago."] = ""
|
||||
-- L["Last updated from the TSM Application %s ago."] = ""
|
||||
-- L["Market Value"] = ""
|
||||
-- L["Market Value:"] = ""
|
||||
-- L["Market Value x%s:"] = ""
|
||||
-- L["Min Buyout:"] = ""
|
||||
-- L["Min Buyout x%s:"] = ""
|
||||
-- L["Minimum Buyout"] = ""
|
||||
-- L["Next Page"] = ""
|
||||
-- L["No items found"] = ""
|
||||
-- L["No scans found."] = ""
|
||||
L["Not Ready"] = "No está listo"
|
||||
-- L["Not Scanned"] = ""
|
||||
-- L["Num(Yours)"] = ""
|
||||
-- L["Options"] = ""
|
||||
-- L["Previous Page"] = ""
|
||||
-- L["Processing data..."] = ""
|
||||
L["Ready"] = "Listo"
|
||||
L["Ready in %s min and %s sec"] = "Listo en %s min y %s sec."
|
||||
-- L["Refreshes the current search results."] = ""
|
||||
-- L["Removed %s from AuctionDB."] = ""
|
||||
-- L["Reset Data"] = ""
|
||||
-- L["Resets AuctionDB's scan data"] = ""
|
||||
-- L["Result Order:"] = ""
|
||||
-- L["Run Full Scan"] = ""
|
||||
L["Run GetAll Scan"] = "Hacer un GetAll Scan"
|
||||
-- L["Running query..."] = ""
|
||||
L["%s ago"] = "hace %s"
|
||||
-- L["Scanning page %s/%s"] = ""
|
||||
-- L["Scanning the auction house in game is no longer necessary!"] = ""
|
||||
-- L["Search"] = ""
|
||||
-- L["Search Options"] = ""
|
||||
-- L["Seen Last Scan:"] = ""
|
||||
-- L["Select how you would like the search results to be sorted. After changing this option, you may need to refresh your search results by hitting the \"Refresh\" button."] = ""
|
||||
-- L["Select whether to sort search results in ascending or descending order."] = ""
|
||||
-- L["Shift-Right-Click to clear all data for this item from AuctionDB."] = ""
|
||||
-- L["Sort items by"] = ""
|
||||
-- L["This determines how many items are shown per page in results area of the \"Search\" tab of the AuctionDB page in the main TSM window. You may enter a number between 5 and 500 inclusive. If the page lags, you may want to decrease this number."] = ""
|
||||
-- L["Total Seen Count:"] = ""
|
||||
-- L["Use the search box and category filters above to search the AuctionDB data."] = ""
|
||||
-- L["You can filter the results by item subtype by using this dropdown. For example, if you want to search for all herbs, you would select \"Trade Goods\" in the item type dropdown and \"Herbs\" in this dropdown."] = ""
|
||||
-- L["You can filter the results by item type by using this dropdown. For example, if you want to search for all herbs, you would select \"Trade Goods\" in this dropdown and \"Herbs\" as the subtype filter."] = ""
|
||||
-- L["You can use this page to lookup an item or group of items in the AuctionDB database. Note that this does not perform a live search of the AH."] = ""
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster_AuctionDB --
|
||||
-- http://www.curse.com/addons/wow/tradeskillmaster_auctiondb --
|
||||
-- --
|
||||
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) --
|
||||
-- All Rights Reserved* - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
-- TradeSkillMaster_AuctionDB Locale - esMX
|
||||
-- Please use the localization app on CurseForge to update this
|
||||
-- http://wow.curseforge.com/addons/TradeSkillMaster_AuctionDB/localization/
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("TradeSkillMaster_AuctionDB", "esMX")
|
||||
if not L then return end
|
||||
|
||||
-- L["A full auction house scan will scan every item on the auction house but is far slower than a GetAll scan. Expect this scan to take several minutes or longer."] = ""
|
||||
-- L["A GetAll scan is the fastest in-game method for scanning every item on the auction house. However, there are many possible bugs on Blizzard's end with it including the chance for it to disconnect you from the game. Also, it has a 15 minute cooldown."] = ""
|
||||
-- L["Any items in the AuctionDB database that contain the search phrase in their names will be displayed."] = ""
|
||||
-- L["Are you sure you want to clear your AuctionDB data?"] = ""
|
||||
-- L["Ascending"] = ""
|
||||
-- L["AuctionDB - Market Value"] = ""
|
||||
-- L["AuctionDB - Minimum Buyout"] = ""
|
||||
-- L["Can't run a GetAll scan right now."] = ""
|
||||
-- L["Descending"] = ""
|
||||
-- L["Display lowest buyout value seen in the last scan in tooltip."] = ""
|
||||
-- L["Display market value in tooltip."] = ""
|
||||
-- L["Display number of items seen in the last scan in tooltip."] = ""
|
||||
-- L["Display total number of items ever seen in tooltip."] = ""
|
||||
-- L["Done Scanning"] = ""
|
||||
-- L["Download the FREE TSM desktop application which will automatically update your TSM_AuctionDB prices using Blizzard's online APIs (and does MUCH more). Visit %s for more info and never scan the AH again! This is the best way to update your AuctionDB prices."] = ""
|
||||
-- L["Enable display of AuctionDB data in tooltip."] = ""
|
||||
-- L["GetAll scan did not run successfully due to issues on Blizzard's end. Using the TSM application for your scans is recommended."] = ""
|
||||
-- L["Hide poor quality items"] = ""
|
||||
-- L["If checked, poor quality items won't be shown in the search results."] = ""
|
||||
-- L["If checked, the lowest buyout value seen in the last scan of the item will be displayed."] = ""
|
||||
-- L["If checked, the market value of the item will be displayed"] = ""
|
||||
-- L["If checked, the number of items seen in the last scan will be displayed."] = ""
|
||||
-- L["If checked, the total number of items ever seen will be displayed."] = ""
|
||||
-- L["Imported %s scans worth of new auction data!"] = ""
|
||||
-- L["Invalid value entered. You must enter a number between 5 and 500 inclusive."] = ""
|
||||
-- L["Item Link"] = ""
|
||||
-- L["Item MinLevel"] = ""
|
||||
-- L["Items per page"] = ""
|
||||
-- L["Items %s - %s (%s total)"] = ""
|
||||
-- L["Item SubType Filter"] = ""
|
||||
-- L["Item Type Filter"] = ""
|
||||
-- L["It is strongly recommended that you reload your ui (type '/reload') after running a GetAll scan. Otherwise, any other scans (Post/Cancel/Search/etc) will be much slower than normal."] = ""
|
||||
-- L["Last Scanned"] = ""
|
||||
-- L["Last updated from in-game scan %s ago."] = ""
|
||||
-- L["Last updated from the TSM Application %s ago."] = ""
|
||||
-- L["Market Value"] = ""
|
||||
-- L["Market Value:"] = ""
|
||||
-- L["Market Value x%s:"] = ""
|
||||
-- L["Min Buyout:"] = ""
|
||||
-- L["Min Buyout x%s:"] = ""
|
||||
-- L["Minimum Buyout"] = ""
|
||||
-- L["Next Page"] = ""
|
||||
-- L["No items found"] = ""
|
||||
-- L["No scans found."] = ""
|
||||
-- L["Not Ready"] = ""
|
||||
-- L["Not Scanned"] = ""
|
||||
-- L["Num(Yours)"] = ""
|
||||
-- L["Options"] = ""
|
||||
-- L["Previous Page"] = ""
|
||||
-- L["Processing data..."] = ""
|
||||
-- L["Ready"] = ""
|
||||
-- L["Ready in %s min and %s sec"] = ""
|
||||
-- L["Refreshes the current search results."] = ""
|
||||
-- L["Removed %s from AuctionDB."] = ""
|
||||
-- L["Reset Data"] = ""
|
||||
-- L["Resets AuctionDB's scan data"] = ""
|
||||
-- L["Result Order:"] = ""
|
||||
-- L["Run Full Scan"] = ""
|
||||
-- L["Run GetAll Scan"] = ""
|
||||
-- L["Running query..."] = ""
|
||||
-- L["%s ago"] = ""
|
||||
-- L["Scanning page %s/%s"] = ""
|
||||
-- L["Scanning the auction house in game is no longer necessary!"] = ""
|
||||
-- L["Search"] = ""
|
||||
-- L["Search Options"] = ""
|
||||
-- L["Seen Last Scan:"] = ""
|
||||
-- L["Select how you would like the search results to be sorted. After changing this option, you may need to refresh your search results by hitting the \"Refresh\" button."] = ""
|
||||
-- L["Select whether to sort search results in ascending or descending order."] = ""
|
||||
-- L["Shift-Right-Click to clear all data for this item from AuctionDB."] = ""
|
||||
-- L["Sort items by"] = ""
|
||||
-- L["This determines how many items are shown per page in results area of the \"Search\" tab of the AuctionDB page in the main TSM window. You may enter a number between 5 and 500 inclusive. If the page lags, you may want to decrease this number."] = ""
|
||||
-- L["Total Seen Count:"] = ""
|
||||
-- L["Use the search box and category filters above to search the AuctionDB data."] = ""
|
||||
-- L["You can filter the results by item subtype by using this dropdown. For example, if you want to search for all herbs, you would select \"Trade Goods\" in the item type dropdown and \"Herbs\" in this dropdown."] = ""
|
||||
-- L["You can filter the results by item type by using this dropdown. For example, if you want to search for all herbs, you would select \"Trade Goods\" in this dropdown and \"Herbs\" as the subtype filter."] = ""
|
||||
-- L["You can use this page to lookup an item or group of items in the AuctionDB database. Note that this does not perform a live search of the AH."] = ""
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster_AuctionDB --
|
||||
-- http://www.curse.com/addons/wow/tradeskillmaster_auctiondb --
|
||||
-- --
|
||||
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) --
|
||||
-- All Rights Reserved* - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
-- TradeSkillMaster_AuctionDB Locale - frFR
|
||||
-- Please use the localization app on CurseForge to update this
|
||||
-- http://wow.curseforge.com/addons/TradeSkillMaster_AuctionDB/localization/
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("TradeSkillMaster_AuctionDB", "frFR")
|
||||
if not L then return end
|
||||
|
||||
L["A full auction house scan will scan every item on the auction house but is far slower than a GetAll scan. Expect this scan to take several minutes or longer."] = "Une analyse complète de l'Hôtel des ventes examinera tous les objets de l'hôtel des ventes mais est beaucoup plus lente que la méthode du GetAll. Attendez-vous à ce que cette analyse dure de nombreuses minutes."
|
||||
-- L["A GetAll scan is the fastest in-game method for scanning every item on the auction house. However, there are many possible bugs on Blizzard's end with it including the chance for it to disconnect you from the game. Also, it has a 15 minute cooldown."] = ""
|
||||
L["Any items in the AuctionDB database that contain the search phrase in their names will be displayed."] = "Tout objets présent dans la base de donnée d'AuctionDB contenant la phrase recherchée dans son nom sera affiché."
|
||||
L["Are you sure you want to clear your AuctionDB data?"] = "Êtes-vous sûr de vouloir vider les données d'AuctionDB?"
|
||||
L["Ascending"] = "Croissant"
|
||||
L["AuctionDB - Market Value"] = "AuctionDB - Valeur du Marché"
|
||||
L["AuctionDB - Minimum Buyout"] = "AuctionDB - Achat minimum"
|
||||
-- L["Can't run a GetAll scan right now."] = ""
|
||||
L["Descending"] = "Décroissant"
|
||||
-- L["Display lowest buyout value seen in the last scan in tooltip."] = ""
|
||||
-- L["Display market value in tooltip."] = ""
|
||||
-- L["Display number of items seen in the last scan in tooltip."] = ""
|
||||
-- L["Display total number of items ever seen in tooltip."] = ""
|
||||
L["Done Scanning"] = "Analyse terminée"
|
||||
-- L["Download the FREE TSM desktop application which will automatically update your TSM_AuctionDB prices using Blizzard's online APIs (and does MUCH more). Visit %s for more info and never scan the AH again! This is the best way to update your AuctionDB prices."] = ""
|
||||
L["Enable display of AuctionDB data in tooltip."] = "Activer l'affichage des données d'AuctionDB dans les info-bulles."
|
||||
-- L["GetAll scan did not run successfully due to issues on Blizzard's end. Using the TSM application for your scans is recommended."] = ""
|
||||
L["Hide poor quality items"] = "Masquer les objets gris"
|
||||
L["If checked, poor quality items won't be shown in the search results."] = "Si coché, les objets gris ne seront pas affiché lors de la recherche."
|
||||
-- L["If checked, the lowest buyout value seen in the last scan of the item will be displayed."] = ""
|
||||
-- L["If checked, the market value of the item will be displayed"] = ""
|
||||
-- L["If checked, the number of items seen in the last scan will be displayed."] = ""
|
||||
-- L["If checked, the total number of items ever seen will be displayed."] = ""
|
||||
-- L["Imported %s scans worth of new auction data!"] = ""
|
||||
L["Invalid value entered. You must enter a number between 5 and 500 inclusive."] = "Valeur non valide. Vous devez entrer un nombre entre 5 et 500 inclus."
|
||||
L["Item Link"] = "Lien de l'objet"
|
||||
L["Item MinLevel"] = "Niveau min. de l'objet"
|
||||
L["Items per page"] = "Objets par page"
|
||||
L["Items %s - %s (%s total)"] = "Objets %s - %s (%s au total)"
|
||||
L["Item SubType Filter"] = "Sous-catégorie de l'objet"
|
||||
L["Item Type Filter"] = "Catégorie de l'objet"
|
||||
L["It is strongly recommended that you reload your ui (type '/reload') after running a GetAll scan. Otherwise, any other scans (Post/Cancel/Search/etc) will be much slower than normal."] = "Il est fortement recommandé que vous rechargez votre interface (tapez '/reload') après une analyse GetAll. Sinon, toutes les autres analyses (Poster/Annuler/Rechercher/etc) vont être plus longue que d'habitude."
|
||||
L["Last Scanned"] = "Dernière fois analysé"
|
||||
-- L["Last updated from in-game scan %s ago."] = ""
|
||||
-- L["Last updated from the TSM Application %s ago."] = ""
|
||||
L["Market Value"] = "Prix du Marché"
|
||||
L["Market Value:"] = "Valeur du marché:" -- Needs review
|
||||
L["Market Value x%s:"] = "Valeur du marché x%s:" -- Needs review
|
||||
L["Min Buyout:"] = "Achat min:" -- Needs review
|
||||
L["Min Buyout x%s:"] = "Achat min x%s:" -- Needs review
|
||||
L["Minimum Buyout"] = "Prix d'achat Minimum"
|
||||
L["Next Page"] = "Page suivante"
|
||||
L["No items found"] = "Aucun objet trouvé"
|
||||
L["No scans found."] = "Aucun scan trouvé." -- Needs review
|
||||
L["Not Ready"] = "Non prêt"
|
||||
-- L["Not Scanned"] = ""
|
||||
L["Num(Yours)"] = "Num(Les vôtres)"
|
||||
L["Options"] = "Options"
|
||||
L["Previous Page"] = "Page précédente"
|
||||
-- L["Processing data..."] = ""
|
||||
L["Ready"] = "Prêt"
|
||||
L["Ready in %s min and %s sec"] = "Prêt dans %s min et %s sec"
|
||||
L["Refreshes the current search results."] = "Actualise les résultats de recherche actuels."
|
||||
L["Removed %s from AuctionDB."] = "Suppresion %s d'AuctionDB."
|
||||
L["Reset Data"] = "Réinitialiser les données"
|
||||
L["Resets AuctionDB's scan data"] = "Réinitialise les données d'AuctionDB"
|
||||
-- L["Result Order:"] = ""
|
||||
L["Run Full Scan"] = "Analyse complète"
|
||||
L["Run GetAll Scan"] = "Analyse GetAll"
|
||||
-- L["Running query..."] = ""
|
||||
L["%s ago"] = "Il y a %s"
|
||||
L["Scanning page %s/%s"] = "Scan de la page %s/%s" -- Needs review
|
||||
L["Scanning the auction house in game is no longer necessary!"] = "Scanner l'hôtel des ventes dans le jeu n'est plus nécessaire !" -- Needs review
|
||||
L["Search"] = "Rechercher"
|
||||
L["Search Options"] = "Options de recherche"
|
||||
-- L["Seen Last Scan:"] = ""
|
||||
L["Select how you would like the search results to be sorted. After changing this option, you may need to refresh your search results by hitting the \"Refresh\" button."] = "Choisissez comment vous voulez que les objets soient trié. Après avoir changé cette option, cliquez sur \"Actualiser\" pour mettre à jour le mode de tri."
|
||||
-- L["Select whether to sort search results in ascending or descending order."] = ""
|
||||
L["Shift-Right-Click to clear all data for this item from AuctionDB."] = "Maj-clic droit pour effacer toutes les données d'AuctionDB pour cet objet."
|
||||
L["Sort items by"] = "Trier les objets par"
|
||||
L["This determines how many items are shown per page in results area of the \"Search\" tab of the AuctionDB page in the main TSM window. You may enter a number between 5 and 500 inclusive. If the page lags, you may want to decrease this number."] = "Ceci détermine combien d'objets seront affiché par page dans l'onglet de Recherche d'AuctionDB. Vous pouvez entrer un nombre entre 5 et 500 inclus. Si vous subissez quelques lags, baissez ce nombre."
|
||||
-- L["Total Seen Count:"] = ""
|
||||
L["Use the search box and category filters above to search the AuctionDB data."] = "Utilisez le champs de recherche ainsi que le tri par catégorie pour faire une recherche dans les données d'AuctionDB."
|
||||
L["You can filter the results by item subtype by using this dropdown. For example, if you want to search for all herbs, you would select \"Trade Goods\" in the item type dropdown and \"Herbs\" in this dropdown."] = "Vous pouvez filtrez les résultats en utilisant cette option. Par exemple, si vous voulez chercher toute les herbes, vous choisiriez \"Artisanat\" dans la catégorie puis \"Herbes\" dans la sous catégorie."
|
||||
L["You can filter the results by item type by using this dropdown. For example, if you want to search for all herbs, you would select \"Trade Goods\" in this dropdown and \"Herbs\" as the subtype filter."] = "Vous pouvez filtrez les résultats en utilisant cette option. Par exemple, si vous voulez chercher toute les herbes, vous choisiriez \"Artisanat\" dans la catégorie puis \"Herbes\" dans la sous catégorie."
|
||||
L["You can use this page to lookup an item or group of items in the AuctionDB database. Note that this does not perform a live search of the AH."] = "Vous pouvez utiliser cette page pour cherche un objet ou un groupe d'objets dans la base de donnée d'AuctionDB. Notez que ca ne lance pas une analyse en direct de 'HV, mais ne fait que parcourir la base de donnée de AuctionDB."
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster_AuctionDB --
|
||||
-- http://www.curse.com/addons/wow/tradeskillmaster_auctiondb --
|
||||
-- --
|
||||
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) --
|
||||
-- All Rights Reserved* - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
-- TradeSkillMaster_AuctionDB Locale - koKR
|
||||
-- Please use the localization app on CurseForge to update this
|
||||
-- http://wow.curseforge.com/addons/TradeSkillMaster_AuctionDB/localization/
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("TradeSkillMaster_AuctionDB", "koKR")
|
||||
if not L then return end
|
||||
|
||||
L["A full auction house scan will scan every item on the auction house but is far slower than a GetAll scan. Expect this scan to take several minutes or longer."] = "전체 검색은 경매장 내의 모든 아이템을 검색하지만 GetAll 검색보다는 훨씬 느립니다. 이 검색은 몇 분 정도 또는 그 이상의 시간이 소요됩니다."
|
||||
L["A GetAll scan is the fastest in-game method for scanning every item on the auction house. However, there are many possible bugs on Blizzard's end with it including the chance for it to disconnect you from the game. Also, it has a 15 minute cooldown."] = "GetAll 검색은 게임 내에서 경매장의 모든 아이템을 검색하기 위한 가장 빠른 검색 방법입니다. 하지만 블리자드 쪽에 많은 버그가 존재하며 게임의 접속이 끊길 가능성도 있습니다. 또한, 15분의 쿨다운이 존재합니다." -- Needs review
|
||||
L["Any items in the AuctionDB database that contain the search phrase in their names will be displayed."] = "이름에 검색 구문을 포함하는 AuctionDB 데이터베이스 내의 모든 아이템이 표시됩니다."
|
||||
L["Are you sure you want to clear your AuctionDB data?"] = "모든 AuctionDB 데이터를 삭제 하시겠습니까?"
|
||||
L["Ascending"] = "오름차순"
|
||||
L["AuctionDB - Market Value"] = "AuctionDB - 시장 가격"
|
||||
L["AuctionDB - Minimum Buyout"] = "AuctionDB - 최소 구매가격"
|
||||
L["Can't run a GetAll scan right now."] = "지금은 GetAll 검색을 실행할 수 없습니다." -- Needs review
|
||||
L["Descending"] = "내림차순"
|
||||
L["Display lowest buyout value seen in the last scan in tooltip."] = "최근 검색 시 본 최소 구매가를 툴팁에 표시합니다." -- Needs review
|
||||
L["Display market value in tooltip."] = "시장 가격을 툴팁에 표시합니다." -- Needs review
|
||||
L["Display number of items seen in the last scan in tooltip."] = "최근 검색 시 본 아이템의 개수를 툴팁에 표시합니다." -- Needs review
|
||||
L["Display total number of items ever seen in tooltip."] = "아이템의 전체 출현 회수를 툴팁에 표시합니다." -- Needs review
|
||||
L["Done Scanning"] = "검색 완료"
|
||||
L["Download the FREE TSM desktop application which will automatically update your TSM_AuctionDB prices using Blizzard's online APIs (and does MUCH more). Visit %s for more info and never scan the AH again! This is the best way to update your AuctionDB prices."] = "무료 TSM 데스크톱 애플리케이션을 다운로드하면 TSM_AuctionDB 가격을 블리자드의 온라인 API를 이용해 자동으로 업데이트합니다. %s을 방문하여 더 많은 정보를 얻고 더 이상은 경매장 검색을 하지 마세요! 이것은 AuctionDB 가격을 업데이트하는 최고의 방법입니다." -- Needs review
|
||||
L["Enable display of AuctionDB data in tooltip."] = "AuctionDB 데이터를 툴팁에 표시" -- Needs review
|
||||
L["GetAll scan did not run successfully due to issues on Blizzard's end. Using the TSM application for your scans is recommended."] = "블리자드의 문제로 GetAll 검색이 성공적으로 수행되지 못했습니다. TSM 애플리케이션의 사용한 검색을 추천합니다." -- Needs review
|
||||
L["Hide poor quality items"] = "저급 품질 아이템 숨기기"
|
||||
L["If checked, poor quality items won't be shown in the search results."] = "선택하면, 저급 품질 아이템은 검색 결과에 표시하지 않습니다."
|
||||
L["If checked, the lowest buyout value seen in the last scan of the item will be displayed."] = "선택하면, 최근 검색에서 본 아이템의 최소 구매 가격을 표시합니다." -- Needs review
|
||||
L["If checked, the market value of the item will be displayed"] = "선택하면, 아이템의 시장 가격을 표시합니다." -- Needs review
|
||||
L["If checked, the number of items seen in the last scan will be displayed."] = "선택하면, 최근 검색에서 본 아이템의 개수를 표시합니다." -- Needs review
|
||||
L["If checked, the total number of items ever seen will be displayed."] = "선택하면, 아이템의 전체 출현 회수를 표시합니다." -- Needs review
|
||||
L["Imported %s scans worth of new auction data!"] = "%s개의 새로운 경매 데이터를 불러왔습니다." -- Needs review
|
||||
L["Invalid value entered. You must enter a number between 5 and 500 inclusive."] = "잘못된 수치가 입력되었습니다. 5에서 500 사이의 숫자를 입력해 주세요."
|
||||
L["Item Link"] = "아이템 링크"
|
||||
L["Item MinLevel"] = "아이템 레벨"
|
||||
L["Items per page"] = "페이지당 아이템 개수"
|
||||
L["Items %s - %s (%s total)"] = "아이템 %s - %s (전체 %s)"
|
||||
L["Item SubType Filter"] = "아이템 하위 유형 필터" -- Needs review
|
||||
L["Item Type Filter"] = "아이템 유형 필터"
|
||||
L["It is strongly recommended that you reload your ui (type '/reload') after running a GetAll scan. Otherwise, any other scans (Post/Cancel/Search/etc) will be much slower than normal."] = "GetAll 검색을 실행한 후 UI를 다시 로드('/reload' 입력)해 주시길 바랍니다. 그렇게 하지 않으면, 다른 검색(등록/취소/검색/기타)은 정상보다 훨씬 느려지게 됩니다."
|
||||
L["Last Scanned"] = "최근 검색"
|
||||
L["Last updated from in-game scan %s ago."] = "게임 내 검색의 최근 업데이트 %s 전." -- Needs review
|
||||
L["Last updated from the TSM Application %s ago."] = "TSM 애플리케이션의 최근 업데이트 %s 전." -- Needs review
|
||||
L["Market Value"] = "시장가"
|
||||
L["Market Value:"] = "시장가격:"
|
||||
L["Market Value x%s:"] = "시장 가격 x%s:" -- Needs review
|
||||
L["Min Buyout:"] = "최소 구매가격:"
|
||||
L["Min Buyout x%s:"] = "최소 구매가 x%s:" -- Needs review
|
||||
L["Minimum Buyout"] = "최소 구매가"
|
||||
L["Next Page"] = "다음 페이지"
|
||||
L["No items found"] = "아이템을 찾을 수 없습니다."
|
||||
L["No scans found."] = "검색을 찾을 수 없습니다." -- Needs review
|
||||
L["Not Ready"] = "준비 안 됨" -- Needs review
|
||||
L["Not Scanned"] = "검색 안 됨" -- Needs review
|
||||
L["Num(Yours)"] = "개수(소유)"
|
||||
L["Options"] = "옵션"
|
||||
L["Previous Page"] = "이전 페이지"
|
||||
L["Processing data..."] = "데이터 처리 중..." -- Needs review
|
||||
L["Ready"] = "준비 됨"
|
||||
L["Ready in %s min and %s sec"] = "%s 분 %s 초 후 준비됨"
|
||||
L["Refreshes the current search results."] = "현재 검색 결과 새로 고침."
|
||||
L["Removed %s from AuctionDB."] = "AuctionDB에서 %s 삭제."
|
||||
L["Reset Data"] = "데이터 리셋"
|
||||
L["Resets AuctionDB's scan data"] = "AuctionDB의 검색 데이터 리셋"
|
||||
L["Result Order:"] = "결과 정렬:" -- Needs review
|
||||
L["Run Full Scan"] = "전체 검색"
|
||||
L["Run GetAll Scan"] = "GetAll 검색"
|
||||
L["Running query..."] = "쿼리 실행 중..." -- Needs review
|
||||
L["%s ago"] = "%s 전"
|
||||
L["Scanning page %s/%s"] = "페이지 검색 %s/%s" -- Needs review
|
||||
L["Scanning the auction house in game is no longer necessary!"] = "이제는 게임 내에서 경매장을 검색할 필요가 없습니다!" -- Needs review
|
||||
L["Search"] = "검색"
|
||||
L["Search Options"] = "검색 옵션"
|
||||
L["Seen Last Scan:"] = "최근 검색시 출현횟수:"
|
||||
L["Select how you would like the search results to be sorted. After changing this option, you may need to refresh your search results by hitting the \"Refresh\" button."] = "검색 결과가 정렬될 방식을 선택하세요. 이 옵션을 바꾼 후 \\\"새로 고침\\\" 버튼을 눌러 주어야 결과가 반영됩니다." -- Needs review
|
||||
L["Select whether to sort search results in ascending or descending order."] = "검색 결과를 오름차순으로 정렬할지 내림차순으로 정렬할지 선택하세요."
|
||||
L["Shift-Right-Click to clear all data for this item from AuctionDB."] = "Shift-Right-Click 하면 이 아이템의 모든 데이터가 AuctionDB에서 삭제됩니다." -- Needs review
|
||||
L["Sort items by"] = "아이템 정렬"
|
||||
L["This determines how many items are shown per page in results area of the \"Search\" tab of the AuctionDB page in the main TSM window. You may enter a number between 5 and 500 inclusive. If the page lags, you may want to decrease this number."] = "주 TSM 창의 AuctionDB 페이지의 검색 탭 안의 결과 영역에 표시될 페이지당 아이템의 숫자를 결정합니다. 5 에서 500 사이의 숫자를 입력할 수 있습니다. 페이지 렉이 발생하면 수치를 줄여 주세요."
|
||||
L["Total Seen Count:"] = "전체 출현 횟수:" -- Needs review
|
||||
L["Use the search box and category filters above to search the AuctionDB data."] = "AuctionDB를 검색하려면 위의 검색 상자와 분류 필터를 사용하세요."
|
||||
L["You can filter the results by item subtype by using this dropdown. For example, if you want to search for all herbs, you would select \"Trade Goods\" in the item type dropdown and \"Herbs\" in this dropdown."] = "이 드롭다운을 사용하여 하위 아이템 유형 필터링할 수 있습니다. 예를 들어 모든 약초를 검색하고자 한다면, 아이템 유형 필터 드롭다운에서 \\\"직업 용품\\\"을 선택하고 이 드롭다운에서 \\\"약초\\\"를 선택합니다." -- Needs review
|
||||
L["You can filter the results by item type by using this dropdown. For example, if you want to search for all herbs, you would select \"Trade Goods\" in this dropdown and \"Herbs\" as the subtype filter."] = "이 드롭다운을 사용하여 아이템 유형을 필터링할 수 있습니다. 예를 들어 모든 약초를 검색하고자 한다면, 이 드롭다운에서 \\\"직업 용품\\\"을 선택하고 하위 아이템 유형 필터에서 \\\"약초\\\"를 선택합니다." -- Needs review
|
||||
L["You can use this page to lookup an item or group of items in the AuctionDB database. Note that this does not perform a live search of the AH."] = "이 페이지에서 AuctionDB의 데이터베이스에 있는 아이템 또는 아이템 그룹을 살펴보실 수 있습니다. 경매장의 실시간 검색을 실행하지는 않는다는 점을 명심하기 바랍니다."
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster_AuctionDB --
|
||||
-- http://www.curse.com/addons/wow/tradeskillmaster_auctiondb --
|
||||
-- --
|
||||
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) --
|
||||
-- All Rights Reserved* - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
-- TradeSkillMaster_AuctionDB Locale - ptBR
|
||||
-- Please use the localization app on CurseForge to update this
|
||||
-- http://wow.curseforge.com/addons/TradeSkillMaster_AuctionDB/localization/
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("TradeSkillMaster_AuctionDB", "ptBR")
|
||||
if not L then return end
|
||||
|
||||
L["A full auction house scan will scan every item on the auction house but is far slower than a GetAll scan. Expect this scan to take several minutes or longer."] = "Um escaneamento completo da casa de leilões irá escanear todos os itens da casa de leilões, porém é bem mais lento que um escaneamento PegaTudo. Espere que este escaneamento demore vários minutos ou mais."
|
||||
-- L["A GetAll scan is the fastest in-game method for scanning every item on the auction house. However, there are many possible bugs on Blizzard's end with it including the chance for it to disconnect you from the game. Also, it has a 15 minute cooldown."] = ""
|
||||
L["Any items in the AuctionDB database that contain the search phrase in their names will be displayed."] = "Qualquer item no bando de dados do AuctionDB que contém a frase procurada em seus nomes serão exibidos."
|
||||
L["Are you sure you want to clear your AuctionDB data?"] = "Você tem certeza de que quer limpar os dados do seu AuctionDB?"
|
||||
L["Ascending"] = "Crescente"
|
||||
L["AuctionDB - Market Value"] = "AuctionDB - Valor de Mercado"
|
||||
L["AuctionDB - Minimum Buyout"] = "AuctionDB - Arremate Mínimo"
|
||||
-- L["Can't run a GetAll scan right now."] = ""
|
||||
L["Descending"] = "Decrescente"
|
||||
-- L["Display lowest buyout value seen in the last scan in tooltip."] = ""
|
||||
-- L["Display market value in tooltip."] = ""
|
||||
-- L["Display number of items seen in the last scan in tooltip."] = ""
|
||||
-- L["Display total number of items ever seen in tooltip."] = ""
|
||||
L["Done Scanning"] = "Escaneamento Completo"
|
||||
-- L["Download the FREE TSM desktop application which will automatically update your TSM_AuctionDB prices using Blizzard's online APIs (and does MUCH more). Visit %s for more info and never scan the AH again! This is the best way to update your AuctionDB prices."] = ""
|
||||
L["Enable display of AuctionDB data in tooltip."] = "Habilita a exibição de dados do AuctionDB nas dicas de interface."
|
||||
-- L["GetAll scan did not run successfully due to issues on Blizzard's end. Using the TSM application for your scans is recommended."] = ""
|
||||
L["Hide poor quality items"] = "Esconder itens de qualidade inferior"
|
||||
L["If checked, poor quality items won't be shown in the search results."] = "Se marcado, itens de qualidade inferior não serão exibidos nos resultados das buscas."
|
||||
-- L["If checked, the lowest buyout value seen in the last scan of the item will be displayed."] = ""
|
||||
-- L["If checked, the market value of the item will be displayed"] = ""
|
||||
-- L["If checked, the number of items seen in the last scan will be displayed."] = ""
|
||||
-- L["If checked, the total number of items ever seen will be displayed."] = ""
|
||||
-- L["Imported %s scans worth of new auction data!"] = ""
|
||||
L["Invalid value entered. You must enter a number between 5 and 500 inclusive."] = "Valor inválido. Você deve digitar um número entre 5 e 500 (inclusive)."
|
||||
L["Item Link"] = "Link do Item"
|
||||
L["Item MinLevel"] = "NívelMín do Item"
|
||||
L["Items per page"] = "Itens por página"
|
||||
L["Items %s - %s (%s total)"] = "Itens %s - %s (%s no total)"
|
||||
L["Item SubType Filter"] = "Filtro de SubTipo de Item"
|
||||
L["Item Type Filter"] = "Filtro de Tipo de Item"
|
||||
L["It is strongly recommended that you reload your ui (type '/reload') after running a GetAll scan. Otherwise, any other scans (Post/Cancel/Search/etc) will be much slower than normal."] = "É altamente recomendado que você recarregue sua IU (digite '/reload') após rodar um escaneamento PegaTudo. De outra forma, qualquer outro escaneamento (Postagem/Cancelamento/Busca/etc) será muito mais lento que o normal."
|
||||
L["Last Scanned"] = "Escaneado pela última vez"
|
||||
-- L["Last updated from in-game scan %s ago."] = ""
|
||||
-- L["Last updated from the TSM Application %s ago."] = ""
|
||||
L["Market Value"] = "Valor de Mercado"
|
||||
L["Market Value:"] = "Preço de mercado"
|
||||
-- L["Market Value x%s:"] = ""
|
||||
L["Min Buyout:"] = "Arremate minimo"
|
||||
-- L["Min Buyout x%s:"] = ""
|
||||
L["Minimum Buyout"] = "Arremate Mínimo"
|
||||
L["Next Page"] = "Próxima Página"
|
||||
L["No items found"] = "Nenhum item encontrado"
|
||||
-- L["No scans found."] = ""
|
||||
L["Not Ready"] = "Não está pronto"
|
||||
-- L["Not Scanned"] = ""
|
||||
L["Num(Yours)"] = "Num(Seu)"
|
||||
L["Options"] = "Opções"
|
||||
L["Previous Page"] = "Página anterior"
|
||||
-- L["Processing data..."] = ""
|
||||
L["Ready"] = "Pronto"
|
||||
L["Ready in %s min and %s sec"] = "Pronto em $s min e %s seg"
|
||||
L["Refreshes the current search results."] = "Refrescar os resultados da busca atual."
|
||||
L["Removed %s from AuctionDB."] = "%s removido do AuctionDB."
|
||||
L["Reset Data"] = "Redefinir Dados"
|
||||
L["Resets AuctionDB's scan data"] = "Redefine os dados de escaneamento do AuctionDB"
|
||||
L["Result Order:"] = "Order de Resultado"
|
||||
L["Run Full Scan"] = "Escaneamento Completo" -- Needs review
|
||||
L["Run GetAll Scan"] = "PegaTudo" -- Needs review
|
||||
-- L["Running query..."] = ""
|
||||
L["%s ago"] = "%s atrás"
|
||||
L["Scanning page %s/%s"] = "Escaneando página %s/%s" -- Needs review
|
||||
L["Scanning the auction house in game is no longer necessary!"] = "Escanear a Casa de Leilões não é mais necessário." -- Needs review
|
||||
L["Search"] = "Buscar"
|
||||
L["Search Options"] = "Opções de Busca"
|
||||
L["Seen Last Scan:"] = "Visto no ultimo Escaneamento"
|
||||
L["Select how you would like the search results to be sorted. After changing this option, you may need to refresh your search results by hitting the \"Refresh\" button."] = "Selecione como você gostaria que os resultados da busca sejam ordenados. Depois de alterar esta opção você deve refrescar os resultados de sua busca clicando no botão \"Refrescar\"."
|
||||
L["Select whether to sort search results in ascending or descending order."] = "Selecione para mostrar os resultados em ordem crescente ou decrescente"
|
||||
L["Shift-Right-Click to clear all data for this item from AuctionDB."] = "Shift-Clique-Direito para limpar todos os dados para este item do AuctionDB."
|
||||
L["Sort items by"] = "Ordenar items por"
|
||||
L["This determines how many items are shown per page in results area of the \"Search\" tab of the AuctionDB page in the main TSM window. You may enter a number between 5 and 500 inclusive. If the page lags, you may want to decrease this number."] = "Determina quantos itens são mostrados por página na área de resultados da aba \"Busca\" da página do AuctionDB na janela principal do TSM. Você pode digitar um número entre 5 e 500 (inclusive). Se houver demora na página você pode querer diminuir este número."
|
||||
L["Total Seen Count:"] = "Total de vezes visto"
|
||||
L["Use the search box and category filters above to search the AuctionDB data."] = "Use a caixa de busca e filtros de categoria acima para procurar nos dados do AuctionDB."
|
||||
L["You can filter the results by item subtype by using this dropdown. For example, if you want to search for all herbs, you would select \"Trade Goods\" in the item type dropdown and \"Herbs\" in this dropdown."] = "Você pode filtrar os resultados por subtipo de item usando esta opção. Por exemplo, se você quer procurar todas as ervas você deve selecionar \"Mercadorias\" no menu de tipo de item e \"Ervas\" neste menu."
|
||||
L["You can filter the results by item type by using this dropdown. For example, if you want to search for all herbs, you would select \"Trade Goods\" in this dropdown and \"Herbs\" as the subtype filter."] = "Você pode filtrar os resultados por tipo de item usando esta opção. Por exemplo, se você quer procurar todas as ervas você deve selecionar \"Mercadorias\" neste menu e \"Ervas\" no menu de subtipo. "
|
||||
L["You can use this page to lookup an item or group of items in the AuctionDB database. Note that this does not perform a live search of the AH."] = "Você pode usar esta página para procurar por um item ou grupo de itens no banco de dados do AuctionDB. Observe que isto não executará uma pesquisa ao vivo na CL."
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster_AuctionDB --
|
||||
-- http://www.curse.com/addons/wow/tradeskillmaster_auctiondb --
|
||||
-- --
|
||||
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) --
|
||||
-- All Rights Reserved* - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
-- TradeSkillMaster_AuctionDB Locale - ruRU
|
||||
-- Please use the localization app on CurseForge to update this
|
||||
-- http://wow.curseforge.com/addons/TradeSkillMaster_AuctionDB/localization/
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("TradeSkillMaster_AuctionDB", "ruRU")
|
||||
if not L then return end
|
||||
|
||||
L["A full auction house scan will scan every item on the auction house but is far slower than a GetAll scan. Expect this scan to take several minutes or longer."] = "Полный скан Аукциона просканирует каждый товар, но намного дольше, чем GetAll скан. Ждите, это займёт несколько минут или более."
|
||||
L["A GetAll scan is the fastest in-game method for scanning every item on the auction house. However, there are many possible bugs on Blizzard's end with it including the chance for it to disconnect you from the game. Also, it has a 15 minute cooldown."] = "GetAll скан - самый быстрый внутриигровой способ сканирования. Однако, из-за из-за ошибок со стороны Blizzard's, существует вероятность отключения от сервера. Кроме того, он имеет 15-минутный перерыв."
|
||||
L["Any items in the AuctionDB database that contain the search phrase in their names will be displayed."] = "Будут отображены все товары из базы данных AuctionDB, содержащие искомую фразу в названии."
|
||||
L["Are you sure you want to clear your AuctionDB data?"] = "Вы действительно хотите очистить базу AuctionDB?"
|
||||
L["Ascending"] = "Возрастание"
|
||||
L["AuctionDB - Market Value"] = "AuctionDB - Рыночная стоимость"
|
||||
L["AuctionDB - Minimum Buyout"] = "AuctionDB - Минимальный выкуп"
|
||||
L["Can't run a GetAll scan right now."] = "Сейчас невозможно запустить GetAll скан."
|
||||
L["Descending"] = "Убывание"
|
||||
-- L["Display lowest buyout value seen in the last scan in tooltip."] = ""
|
||||
L["Display market value in tooltip."] = "Показывать рыночную цену в подсказке."
|
||||
-- L["Display number of items seen in the last scan in tooltip."] = ""
|
||||
-- L["Display total number of items ever seen in tooltip."] = ""
|
||||
L["Done Scanning"] = "Сканирование завершено"
|
||||
-- L["Download the FREE TSM desktop application which will automatically update your TSM_AuctionDB prices using Blizzard's online APIs (and does MUCH more). Visit %s for more info and never scan the AH again! This is the best way to update your AuctionDB prices."] = ""
|
||||
L["Enable display of AuctionDB data in tooltip."] = "Показывать данные AuctionDB в подсказке."
|
||||
L["GetAll scan did not run successfully due to issues on Blizzard's end. Using the TSM application for your scans is recommended."] = "GetAll скан завершился неудачно из-за проблем со стороны Blizzard. Рекомендуется использовать для сканирования TSM."
|
||||
L["Hide poor quality items"] = "Скрыть товары низкого качества"
|
||||
L["If checked, poor quality items won't be shown in the search results."] = "Не показывать товары низкого качества в результатах поиска."
|
||||
L["If checked, the lowest buyout value seen in the last scan of the item will be displayed."] = "Если выбрано, будет показана минимальная цена выкупа товара с последнего скана"
|
||||
L["If checked, the market value of the item will be displayed"] = "Если выбрано, будет показана рыночная цена товара"
|
||||
-- L["If checked, the number of items seen in the last scan will be displayed."] = ""
|
||||
-- L["If checked, the total number of items ever seen will be displayed."] = ""
|
||||
-- L["Imported %s scans worth of new auction data!"] = ""
|
||||
L["Invalid value entered. You must enter a number between 5 and 500 inclusive."] = "Введено неверное значение. Значение должно быть числом от 5 до 500 включительно."
|
||||
L["Item Link"] = "Ссылка на товар"
|
||||
L["Item MinLevel"] = "Мин.уровень товара"
|
||||
L["Items per page"] = "Товаров на страницу"
|
||||
L["Items %s - %s (%s total)"] = "Товаров %s - %s (%s всего)"
|
||||
L["Item SubType Filter"] = "Фильтр по подтипу товара"
|
||||
L["Item Type Filter"] = "Фильтр по типу товара"
|
||||
L["It is strongly recommended that you reload your ui (type '/reload') after running a GetAll scan. Otherwise, any other scans (Post/Cancel/Search/etc) will be much slower than normal."] = "Настоятельно рекомендуем перезагрузить ваш интерфейс (наберите в чате '/reload') после выполнения GetAll скана. Иначе, любые другие сканы (Выставить/Отменить/Поиск/т.д.) будут намного медленнее, чем обычно."
|
||||
L["Last Scanned"] = "Последний скан"
|
||||
-- L["Last updated from in-game scan %s ago."] = ""
|
||||
-- L["Last updated from the TSM Application %s ago."] = ""
|
||||
L["Market Value"] = "Рыночная цена"
|
||||
L["Market Value:"] = "Рыночная цена:"
|
||||
-- L["Market Value x%s:"] = ""
|
||||
L["Min Buyout:"] = "Мин. выкуп:"
|
||||
-- L["Min Buyout x%s:"] = ""
|
||||
L["Minimum Buyout"] = "Минимальный выкуп"
|
||||
L["Next Page"] = "Далее"
|
||||
L["No items found"] = "Ничего не найдено"
|
||||
L["No scans found."] = "Нет сканов."
|
||||
L["Not Ready"] = "Не готово"
|
||||
L["Not Scanned"] = "Не сканировалось"
|
||||
L["Num(Yours)"] = "Число(Ваших)"
|
||||
L["Options"] = "Опции"
|
||||
L["Previous Page"] = "Назад"
|
||||
L["Processing data..."] = "Обработка данных..."
|
||||
L["Ready"] = "Готово"
|
||||
L["Ready in %s min and %s sec"] = "Готовность через %s мин %s сек"
|
||||
L["Refreshes the current search results."] = "Обновляет текущие результаты поиска."
|
||||
L["Removed %s from AuctionDB."] = "Удалено %s из AuctionDB."
|
||||
L["Reset Data"] = "Сбросить данные"
|
||||
L["Resets AuctionDB's scan data"] = "Сбрасывает данные сканирования модуля AuctionDB"
|
||||
-- L["Result Order:"] = ""
|
||||
L["Run Full Scan"] = "Полный скан"
|
||||
L["Run GetAll Scan"] = "GetAll скан"
|
||||
L["Running query..."] = "Осуществляется запрос..."
|
||||
L["%s ago"] = "%s назад"
|
||||
L["Scanning page %s/%s"] = "Сканирование страницы %s/%s"
|
||||
L["Scanning the auction house in game is no longer necessary!"] = "Сканирование аукциона в игре больше не требуется!"
|
||||
L["Search"] = "Поиск"
|
||||
L["Search Options"] = "Опции поиска"
|
||||
L["Seen Last Scan:"] = "Найдено посл. раз:"
|
||||
L["Select how you would like the search results to be sorted. After changing this option, you may need to refresh your search results by hitting the \"Refresh\" button."] = "Выберите каким образом сортировать результаты поиска. После изменения данной настройки, вам может понадобиться обновление поисковых результатов с помощью кнопки \"Обновить\"."
|
||||
L["Select whether to sort search results in ascending or descending order."] = "Выберите, следует ли отсортировать результаты поиска в порядке возрастания или убывания."
|
||||
L["Shift-Right-Click to clear all data for this item from AuctionDB."] = "Shift+ПКМ для очистки всех данных об этом товаре из AuctionDB."
|
||||
L["Sort items by"] = "Сортировать по"
|
||||
L["This determines how many items are shown per page in results area of the \"Search\" tab of the AuctionDB page in the main TSM window. You may enter a number between 5 and 500 inclusive. If the page lags, you may want to decrease this number."] = "Определяет сколько товаров показывать на одну страницу в области результатов вкладки \"Поиск\" раздела AuctionDB главного окна TSM. Можно ввести значение от 5 до 500 включительно. Если страница лагает, может потребоваться уменьшить это значение."
|
||||
L["Total Seen Count:"] = "Всего найдено:"
|
||||
L["Use the search box and category filters above to search the AuctionDB data."] = "Используйте поисковое поле и фильтры по категориям выше для поиска по данным AuctionDB."
|
||||
L["You can filter the results by item subtype by using this dropdown. For example, if you want to search for all herbs, you would select \"Trade Goods\" in the item type dropdown and \"Herbs\" in this dropdown."] = "Результаты можно отфильтровать по подтипу товара с помощью этого выпадающего списка. Например, если требуется найти все травы, нужно выбрать \"Хозяйственные товары\" в списке типа товара и \"Трава\" в данном списке."
|
||||
L["You can filter the results by item type by using this dropdown. For example, if you want to search for all herbs, you would select \"Trade Goods\" in this dropdown and \"Herbs\" as the subtype filter."] = "Результаты можно отфильтровать по типу товара с помощью этого выпадающего списка. Например, если требуется найти все травы, нужно выбрать \"Хозяйственные товары\" в данном списке и \"Трава\" в списке подтипа товара."
|
||||
L["You can use this page to lookup an item or group of items in the AuctionDB database. Note that this does not perform a live search of the AH."] = "Эту страницу можно использовать для поиска товаров или групп товаров в базе данных AuctionDB. Учтите, что это не \"живой\" поиск по АД."
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster_AuctionDB --
|
||||
-- http://www.curse.com/addons/wow/tradeskillmaster_auctiondb --
|
||||
-- --
|
||||
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) --
|
||||
-- All Rights Reserved* - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
-- TradeSkillMaster_AuctionDB Locale - zhCN
|
||||
-- Please use the localization app on CurseForge to update this
|
||||
-- http://wow.curseforge.com/addons/TradeSkillMaster_AuctionDB/localization/
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("TradeSkillMaster_AuctionDB", "zhCN")
|
||||
if not L then return end
|
||||
|
||||
L["A full auction house scan will scan every item on the auction house but is far slower than a GetAll scan. Expect this scan to take several minutes or longer."] = "完整扫描拍卖行内的所有物品,此方式远慢于快速扫描,预计费时几分钟甚至更久。"
|
||||
L["A GetAll scan is the fastest in-game method for scanning every item on the auction house. However, there are many possible bugs on Blizzard's end with it including the chance for it to disconnect you from the game. Also, it has a 15 minute cooldown."] = "快速扫描时扫描拍卖行中每件物品最快的方式。然而,在服务器端有着可能的BUG会使您掉线,所以每15分钟才能执行一次。"
|
||||
L["Any items in the AuctionDB database that contain the search phrase in their names will be displayed."] = "任何包含搜索短语的AuctionDB数据库中的物品都将显示。"
|
||||
L["Are you sure you want to clear your AuctionDB data?"] = "您确定要清除AuctionDB数据吗?"
|
||||
L["Ascending"] = "升序"
|
||||
L["AuctionDB - Market Value"] = "AuctionDB - 市场价"
|
||||
L["AuctionDB - Minimum Buyout"] = "AuctionDB - 最低一口价"
|
||||
L["Can't run a GetAll scan right now."] = "现在还不能执行快速扫描。"
|
||||
L["Descending"] = "降序"
|
||||
L["Display lowest buyout value seen in the last scan in tooltip."] = "在鼠标提示中显示上次扫描的最低一口价。"
|
||||
L["Display market value in tooltip."] = "在鼠标提示中显示市场价。"
|
||||
L["Display number of items seen in the last scan in tooltip."] = "在鼠标提示中显示上次扫描的物品总数。"
|
||||
L["Display total number of items ever seen in tooltip."] = "在鼠标提示中显示物品的历史最高数量。"
|
||||
L["Done Scanning"] = "完成扫描"
|
||||
L["Download the FREE TSM desktop application which will automatically update your TSM_AuctionDB prices using Blizzard's online APIs (and does MUCH more). Visit %s for more info and never scan the AH again! This is the best way to update your AuctionDB prices."] = "下载完全免费的 TSM APP (TSM应用程序) 来更新你的 AuctionDB数据库中的物品价格 (利用到暴雪提供的在线APIs)。访问 %s 来获取更多信息。以后将不用在游戏里扫描拍卖行物价了,这将是更新拍卖行物价好最好的方法。"
|
||||
L["Enable display of AuctionDB data in tooltip."] = "在鼠标提示中显示AuctionDB数据"
|
||||
L["GetAll scan did not run successfully due to issues on Blizzard's end. Using the TSM application for your scans is recommended."] = "快速扫描由于服务器端的争议而不能成功的运行,因此强烈推荐使用 TSM APP 进行物价扫描。"
|
||||
L["Hide poor quality items"] = "隐藏灰色物品"
|
||||
L["If checked, poor quality items won't be shown in the search results."] = "如果勾选,灰色物品将不会出现在扫描结果中。"
|
||||
L["If checked, the lowest buyout value seen in the last scan of the item will be displayed."] = "如果勾选,将显示上次扫描的物品最低一口价。"
|
||||
L["If checked, the market value of the item will be displayed"] = "如果勾选,将显示物品的市场价。"
|
||||
L["If checked, the number of items seen in the last scan will be displayed."] = "如果勾选,将显示上次扫描的物品总数。"
|
||||
L["If checked, the total number of items ever seen will be displayed."] = "如果勾选,将显示物品总数的历史最高值。"
|
||||
L["Imported %s scans worth of new auction data!"] = "%s已经保存最新的扫描数据!"
|
||||
L["Invalid value entered. You must enter a number between 5 and 500 inclusive."] = "输入错误,您必须输入一个5 - 500之间的数字。"
|
||||
L["Item Link"] = "物品链接"
|
||||
L["Item MinLevel"] = "最低物品等级"
|
||||
L["Items per page"] = "每页显示的物品"
|
||||
L["Items %s - %s (%s total)"] = "物品 %s - %s (总数 %s) "
|
||||
L["Item SubType Filter"] = "物品子类型筛选"
|
||||
L["Item Type Filter"] = "物品类型筛选"
|
||||
L["It is strongly recommended that you reload your ui (type '/reload') after running a GetAll scan. Otherwise, any other scans (Post/Cancel/Search/etc) will be much slower than normal."] = "强烈推荐您在运行快速扫描后重载界面(输入'/reload'),否则任何其他的扫描(上架/下架/搜索等)都较平时要慢。"
|
||||
L["Last Scanned"] = "上一次扫描"
|
||||
L["Last updated from in-game scan %s ago."] = "距离上次游戏内的数据扫描 %s 。"
|
||||
L["Last updated from the TSM Application %s ago."] = "距离上次游戏外TSM APP的数据扫描 %s 。"
|
||||
L["Market Value"] = "市场价"
|
||||
L["Market Value:"] = "市场价:"
|
||||
L["Market Value x%s:"] = "市场价 x%s:"
|
||||
L["Min Buyout:"] = "最低一口价:"
|
||||
L["Min Buyout x%s:"] = "最低一口价 x%s:"
|
||||
L["Minimum Buyout"] = "最低一口价"
|
||||
L["Next Page"] = "下一页"
|
||||
L["No items found"] = "未找到物品"
|
||||
L["No scans found."] = "扫描无发现。"
|
||||
L["Not Ready"] = "还未就绪"
|
||||
L["Not Scanned"] = "未扫描"
|
||||
L["Num(Yours)"] = "数量(您的)"
|
||||
L["Options"] = "选项"
|
||||
L["Previous Page"] = "上一页"
|
||||
L["Processing data..."] = "处理数据…"
|
||||
L["Ready"] = "准备完毕"
|
||||
L["Ready in %s min and %s sec"] = "在%s分%s秒內完成"
|
||||
L["Refreshes the current search results."] = "刷新当前搜索结果。"
|
||||
L["Removed %s from AuctionDB."] = "以从AuctionDB中移除%s。"
|
||||
L["Reset Data"] = "重置数据"
|
||||
L["Resets AuctionDB's scan data"] = "重置AuctionDB扫描数据"
|
||||
L["Result Order:"] = "结果顺序:"
|
||||
L["Run Full Scan"] = "执行完整扫描"
|
||||
L["Run GetAll Scan"] = "进行快速扫描"
|
||||
L["Running query..."] = "运行查询…"
|
||||
L["%s ago"] = "%s之前"
|
||||
L["Scanning page %s/%s"] = "扫描页面 %s/%s"
|
||||
L["Scanning the auction house in game is no longer necessary!"] = "在游戏扫描拍卖行不再是必要的了!"
|
||||
L["Search"] = "搜索"
|
||||
L["Search Options"] = "搜索选项"
|
||||
L["Seen Last Scan:"] = "查看上次扫描:"
|
||||
L["Select how you would like the search results to be sorted. After changing this option, you may need to refresh your search results by hitting the \"Refresh\" button."] = "将搜索结果按你的要求排序.改变该选项后,你可能需要点击\"刷新\"按钮来刷新搜索结果."
|
||||
L["Select whether to sort search results in ascending or descending order."] = "选择是以升序还是降序排列搜索结果。"
|
||||
L["Shift-Right-Click to clear all data for this item from AuctionDB."] = "Shift+右键点击 从AuctionDB中清除此物品的所有数据。"
|
||||
L["Sort items by"] = "排序物品按"
|
||||
L["This determines how many items are shown per page in results area of the \"Search\" tab of the AuctionDB page in the main TSM window. You may enter a number between 5 and 500 inclusive. If the page lags, you may want to decrease this number."] = "这个数字决定TSM主窗口中AuctionDB页面的\"搜索\"标签的搜索结果区域每页显示多少项目。您可以输入一个5到500之间的数字.如果页面加载缓慢,可以尝试减小这个数字。"
|
||||
L["Total Seen Count:"] = "结果总数:"
|
||||
L["Use the search box and category filters above to search the AuctionDB data."] = "使用搜索框和筛选器来搜索AuctionDB数据."
|
||||
L["You can filter the results by item subtype by using this dropdown. For example, if you want to search for all herbs, you would select \"Trade Goods\" in the item type dropdown and \"Herbs\" in this dropdown."] = "你可以用这个下拉菜单来按物品 子类型 筛选搜索结果。例如,如果你想搜索所有的草药,你需要物品类型下拉菜单中选择\"商品\",并在物品子类型下拉菜单中选择\"草药\"。"
|
||||
L["You can filter the results by item type by using this dropdown. For example, if you want to search for all herbs, you would select \"Trade Goods\" in this dropdown and \"Herbs\" as the subtype filter."] = "你可以用这个下拉菜单来按物品 类型 筛选搜索结果。例如,如果你想搜索所有的草药,你需要物品类型下拉菜单中选择\"商品\",并在物品子类型下拉菜单中选择\"草药\"。"
|
||||
L["You can use this page to lookup an item or group of items in the AuctionDB database. Note that this does not perform a live search of the AH."] = "你可以使用这个页面来查看AuctionDB数据库中的物品或者分组。请注意,这并不是在拍卖行的实时搜索。"
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster_AuctionDB --
|
||||
-- http://www.curse.com/addons/wow/tradeskillmaster_auctiondb --
|
||||
-- --
|
||||
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) --
|
||||
-- All Rights Reserved* - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
-- TradeSkillMaster_AuctionDB Locale - zhTW
|
||||
-- Please use the localization app on CurseForge to update this
|
||||
-- http://wow.curseforge.com/addons/TradeSkillMaster_AuctionDB/localization/
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):NewLocale("TradeSkillMaster_AuctionDB", "zhTW")
|
||||
if not L then return end
|
||||
|
||||
L["A full auction house scan will scan every item on the auction house but is far slower than a GetAll scan. Expect this scan to take several minutes or longer."] = "完整的拍賣行掃描會掃描每件在拍賣行的物品但是比GetAll掃描還緩慢。預期掃描會花費幾分鐘或是更久。"
|
||||
-- L["A GetAll scan is the fastest in-game method for scanning every item on the auction house. However, there are many possible bugs on Blizzard's end with it including the chance for it to disconnect you from the game. Also, it has a 15 minute cooldown."] = ""
|
||||
L["Any items in the AuctionDB database that contain the search phrase in their names will be displayed."] = "任何在AuctionDB資料庫中符合搜尋條件的物品,都會顯示出來。"
|
||||
L["Are you sure you want to clear your AuctionDB data?"] = "你確定要清除AuctionDB資料?"
|
||||
L["Ascending"] = "遞增"
|
||||
L["AuctionDB - Market Value"] = "AuctionDB - 市場價格"
|
||||
L["AuctionDB - Minimum Buyout"] = "AuctionDB - 最小直購價"
|
||||
-- L["Can't run a GetAll scan right now."] = ""
|
||||
L["Descending"] = "遞減"
|
||||
-- L["Display lowest buyout value seen in the last scan in tooltip."] = ""
|
||||
-- L["Display market value in tooltip."] = ""
|
||||
-- L["Display number of items seen in the last scan in tooltip."] = ""
|
||||
-- L["Display total number of items ever seen in tooltip."] = ""
|
||||
L["Done Scanning"] = "完成掃描"
|
||||
-- L["Download the FREE TSM desktop application which will automatically update your TSM_AuctionDB prices using Blizzard's online APIs (and does MUCH more). Visit %s for more info and never scan the AH again! This is the best way to update your AuctionDB prices."] = ""
|
||||
L["Enable display of AuctionDB data in tooltip."] = "啟用在提示顯示AuctionDB資料。"
|
||||
-- L["GetAll scan did not run successfully due to issues on Blizzard's end. Using the TSM application for your scans is recommended."] = ""
|
||||
L["Hide poor quality items"] = "隱藏低品質物品"
|
||||
L["If checked, poor quality items won't be shown in the search results."] = "勾選,低品質物㗊將不會顯示在搜尋記錄。"
|
||||
-- L["If checked, the lowest buyout value seen in the last scan of the item will be displayed."] = ""
|
||||
-- L["If checked, the market value of the item will be displayed"] = ""
|
||||
-- L["If checked, the number of items seen in the last scan will be displayed."] = ""
|
||||
-- L["If checked, the total number of items ever seen will be displayed."] = ""
|
||||
-- L["Imported %s scans worth of new auction data!"] = ""
|
||||
L["Invalid value entered. You must enter a number between 5 and 500 inclusive."] = "不正確的值。你需輸入介於5到500間。"
|
||||
L["Item Link"] = "物品連結"
|
||||
L["Item MinLevel"] = "物品最低等級"
|
||||
L["Items per page"] = "一頁幾項物品"
|
||||
L["Items %s - %s (%s total)"] = "物品%s - %s (總共:%s)"
|
||||
L["Item SubType Filter"] = "物品次要類型過濾"
|
||||
L["Item Type Filter"] = "物品類型過濾"
|
||||
L["It is strongly recommended that you reload your ui (type '/reload') after running a GetAll scan. Otherwise, any other scans (Post/Cancel/Search/etc) will be much slower than normal."] = "強烈建議你在跑了GetAll掃描後重新載入你的UI(輸入\"/reload\")。否則,任何其它掃描(發佈/取消/搜尋/等等)都會比平常更慢。"
|
||||
L["Last Scanned"] = "最後掃描"
|
||||
-- L["Last updated from in-game scan %s ago."] = ""
|
||||
-- L["Last updated from the TSM Application %s ago."] = ""
|
||||
L["Market Value"] = "市場價格"
|
||||
L["Market Value:"] = "市場價格:"
|
||||
-- L["Market Value x%s:"] = ""
|
||||
L["Min Buyout:"] = "最小直購價:"
|
||||
-- L["Min Buyout x%s:"] = ""
|
||||
L["Minimum Buyout"] = "最小直購價"
|
||||
L["Next Page"] = "下一頁"
|
||||
L["No items found"] = "找不到物品"
|
||||
-- L["No scans found."] = ""
|
||||
L["Not Ready"] = "還未就緒"
|
||||
-- L["Not Scanned"] = ""
|
||||
L["Num(Yours)"] = "數量(你的)"
|
||||
L["Options"] = "設定"
|
||||
L["Previous Page"] = "上一頁"
|
||||
-- L["Processing data..."] = ""
|
||||
L["Ready"] = "就緒"
|
||||
L["Ready in %s min and %s sec"] = "在%s分鐘%s秒內完成"
|
||||
L["Refreshes the current search results."] = "重新整理目前的搜尋結果。"
|
||||
L["Removed %s from AuctionDB."] = "從AuctionDB刪除%s。"
|
||||
L["Reset Data"] = "重置資料"
|
||||
L["Resets AuctionDB's scan data"] = "重置AuctionDB的掃描資料"
|
||||
L["Result Order:"] = "結果順序:"
|
||||
L["Run Full Scan"] = "執行完整掃描"
|
||||
L["Run GetAll Scan"] = "執行GetAll掃描"
|
||||
-- L["Running query..."] = ""
|
||||
L["%s ago"] = "%s以前"
|
||||
-- L["Scanning page %s/%s"] = ""
|
||||
-- L["Scanning the auction house in game is no longer necessary!"] = ""
|
||||
L["Search"] = "搜尋"
|
||||
L["Search Options"] = "搜尋設定"
|
||||
L["Seen Last Scan:"] = "最後掃描見過:"
|
||||
L["Select how you would like the search results to be sorted. After changing this option, you may need to refresh your search results by hitting the \"Refresh\" button."] = "選擇你的搜尋結果如何呈現。變更這個設定後,你可能要按下「重新整理」來顯示搜尋結果。"
|
||||
L["Select whether to sort search results in ascending or descending order."] = "選擇分類搜尋結果根據遞增或遞減順序。"
|
||||
L["Shift-Right-Click to clear all data for this item from AuctionDB."] = "Shift-右鍵-點擊清除這件物品從AuctionDB的所有資料。"
|
||||
L["Sort items by"] = "物品排序"
|
||||
L["This determines how many items are shown per page in results area of the \"Search\" tab of the AuctionDB page in the main TSM window. You may enter a number between 5 and 500 inclusive. If the page lags, you may want to decrease this number."] = "這決定在拍賣資料庫中的TSM主要搜尋頁面,一頁要顯示多少資料,你可以輸入介於5到500的數字,如果延遲,你可能需要減少這個值。"
|
||||
L["Total Seen Count:"] = "總共見過次數:"
|
||||
L["Use the search box and category filters above to search the AuctionDB data."] = "使用上面搜尋列跟分類過濾來搜尋AuctionDB資料。"
|
||||
L["You can filter the results by item subtype by using this dropdown. For example, if you want to search for all herbs, you would select \"Trade Goods\" in the item type dropdown and \"Herbs\" in this dropdown."] = "你可以用次要類別的下拉式選單來過濾結果,例如如果只要找藥草,你需要選擇交易貨品種類後,再選擇藥草這個次類別。"
|
||||
L["You can filter the results by item type by using this dropdown. For example, if you want to search for all herbs, you would select \"Trade Goods\" in this dropdown and \"Herbs\" as the subtype filter."] = "你可以用類別的下拉式選單來過濾結果,例如如果要找所有的藥草,你需要選擇交易貨品種類後,再選擇藥草這個次類別。"
|
||||
L["You can use this page to lookup an item or group of items in the AuctionDB database. Note that this does not perform a live search of the AH."] = "在AuctionDB資料庫你可以使用這頁面查找物品或是在物品裡的群組。注意:這無法保證是在拍賣行的即時搜尋。"
|
||||
|
||||
@@ -0,0 +1,185 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster_AuctionDB --
|
||||
-- http://www.curse.com/addons/wow/tradeskillmaster_auctiondb --
|
||||
-- --
|
||||
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) --
|
||||
-- All Rights Reserved* - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
-- load the parent file (TSM) into a local variable and register this file as a module
|
||||
local TSM = select(2, ...)
|
||||
local GUI = TSM:NewModule("GUI")
|
||||
local L = LibStub("AceLocale-3.0"):GetLocale("TradeSkillMaster_AuctionDB") -- loads the localization table
|
||||
|
||||
local private = {}
|
||||
|
||||
function GUI:Show(frame)
|
||||
private.statusBar = private.statusBar or private:CreateStatusBar(frame.content)
|
||||
private.statusBar:Show()
|
||||
GUI:UpdateStatus("", 0, 0)
|
||||
|
||||
private.startScanContent = private.startScanContent or private:CreateStartScanContent(frame)
|
||||
private.startScanContent:Show()
|
||||
end
|
||||
|
||||
function GUI:Hide()
|
||||
private.statusBar:Hide()
|
||||
private.startScanContent:Hide()
|
||||
|
||||
TSM.Scan:DoneScanning()
|
||||
TSMAPI.AuctionScan:StopScan()
|
||||
end
|
||||
|
||||
function GUI:UpdateStatus(text, major, minor)
|
||||
if text then
|
||||
private.statusBar:SetStatusText(text)
|
||||
end
|
||||
if major or minor then
|
||||
private.statusBar:UpdateStatus(major, minor)
|
||||
end
|
||||
end
|
||||
|
||||
function private:CreateStatusBar(parent)
|
||||
local frame = TSMAPI.GUI:CreateStatusBar(parent, "TSMAuctionDBStatusBar")
|
||||
TSMAPI.GUI:CreateHorizontalLine(frame, -30, parent)
|
||||
|
||||
return frame
|
||||
end
|
||||
|
||||
function private:CreateStartScanContent(parent)
|
||||
local frame = CreateFrame("Frame", nil, parent)
|
||||
frame:SetAllPoints(parent)
|
||||
frame:Hide()
|
||||
|
||||
local function UpdateGetAllButton()
|
||||
if TSM.Scan.isScanning then
|
||||
frame:Disable()
|
||||
elseif not select(2, CanSendAuctionQuery()) then
|
||||
local previous = TSM.db.profile.lastGetAll or time()
|
||||
if previous > (time() - 15*60) then
|
||||
local diff = previous + 15*60 - time()
|
||||
local diffMin = math.floor(diff/60)
|
||||
local diffSec = diff - diffMin*60
|
||||
frame.getAllStatusText:SetText("|cff990000"..format(L["Ready in %s min and %s sec"], diffMin, diffSec))
|
||||
else
|
||||
frame.getAllStatusText:SetText("|cff990000"..L["Not Ready"])
|
||||
end
|
||||
frame:Enable()
|
||||
frame.startGetAllButton:Disable()
|
||||
else
|
||||
frame:Enable()
|
||||
frame.getAllStatusText:SetText("|cff009900"..L["Ready"])
|
||||
frame.startGetAllButton:Enable()
|
||||
end
|
||||
end
|
||||
|
||||
frame:SetScript("OnShow", function(self)
|
||||
TSMAPI:CreateTimeDelay("auctionDBGetAllStatus", 0, UpdateGetAllButton, 0.2)
|
||||
end)
|
||||
|
||||
frame:SetScript("OnHide", function(self)
|
||||
TSMAPI:CancelFrame("auctionDBGetAllStatus")
|
||||
end)
|
||||
|
||||
frame.Enable = function(self)
|
||||
self.startGetAllButton:Enable()
|
||||
self.startFullScanButton:Enable()
|
||||
self.startGroupScanButton:Enable()
|
||||
end
|
||||
|
||||
frame.Disable = function(self)
|
||||
self.startGetAllButton:Disable()
|
||||
self.startFullScanButton:Disable()
|
||||
self.startGroupScanButton:Disable()
|
||||
end
|
||||
|
||||
-- top row (auto updater)
|
||||
local text = TSMAPI.GUI:CreateLabel(frame)
|
||||
text:SetFont(TSMAPI.Design:GetContentFont(), 24)
|
||||
text:SetPoint("TOP", 0, -24)
|
||||
text:SetHeight(24)
|
||||
text:SetJustifyH("CENTER")
|
||||
text:SetJustifyV("CENTER")
|
||||
text:SetText(TSMAPI.Design:GetInlineColor("link").."TSM_AuctionDB")
|
||||
local ag = text:CreateAnimationGroup()
|
||||
local a1 = ag:CreateAnimation("Alpha")
|
||||
a1:SetChange(-.5)
|
||||
a1:SetDuration(.5)
|
||||
ag:SetLooping("BOUNCE")
|
||||
ag:Play()
|
||||
|
||||
local content = CreateFrame("Frame", nil, frame)
|
||||
content:SetAllPoints(parent.content)
|
||||
TSMAPI.Design:SetFrameBackdropColor(content)
|
||||
|
||||
-- group tree
|
||||
local container = CreateFrame("Frame", nil, content)
|
||||
container:SetPoint("TOPLEFT", 5, -35)
|
||||
container:SetPoint("BOTTOMRIGHT", -205, 5)
|
||||
TSMAPI.Design:SetFrameColor(container)
|
||||
frame.groupTree = TSMAPI:CreateGroupTree(container, nil, "AuctionDB")
|
||||
|
||||
local bar = TSMAPI.GUI:CreateVerticalLine(content, 0)
|
||||
bar:ClearAllPoints()
|
||||
bar:SetPoint("TOPRIGHT", -200, -30)
|
||||
bar:SetPoint("BOTTOMRIGHT", -200, 0)
|
||||
|
||||
local buttonFrame = CreateFrame("Frame", nil, content)
|
||||
buttonFrame:SetPoint("TOPLEFT", content, "TOPRIGHT", -200, 0)
|
||||
buttonFrame:SetPoint("BOTTOMRIGHT")
|
||||
|
||||
-- first row (getall scan)
|
||||
local btn = TSMAPI.GUI:CreateButton(buttonFrame, 18)
|
||||
btn:SetPoint("TOPLEFT", 6, -50)
|
||||
btn:SetPoint("TOPRIGHT", -6, -50)
|
||||
btn:SetHeight(22)
|
||||
btn:SetScript("OnClick", TSM.Scan.StartGetAllScan)
|
||||
btn:SetText(L["Run GetAll Scan"])
|
||||
btn.tooltip = L["A GetAll scan is the fastest in-game method for scanning every item on the auction house. However, there are many possible bugs on Blizzard's end with it including the chance for it to disconnect you from the game. Also, it has a 15 minute cooldown."]
|
||||
frame.startGetAllButton = btn
|
||||
|
||||
local text = TSMAPI.GUI:CreateLabel(buttonFrame)
|
||||
text:SetPoint("TOPLEFT", btn, "BOTTOMLEFT", 0, -3)
|
||||
text:SetPoint("TOPRIGHT", btn, "BOTTOMRIGHT", 0, -3)
|
||||
text:SetHeight(16)
|
||||
text:SetJustifyH("CENTER")
|
||||
text:SetJustifyV("CENTER")
|
||||
frame.getAllStatusText = text
|
||||
|
||||
TSMAPI.GUI:CreateHorizontalLine(buttonFrame, -110)
|
||||
|
||||
-- second row (full scan)
|
||||
local btn = TSMAPI.GUI:CreateButton(buttonFrame, 18)
|
||||
btn:SetPoint("TOPLEFT", 6, -150)
|
||||
btn:SetPoint("TOPRIGHT", -6, -150)
|
||||
btn:SetHeight(22)
|
||||
btn:SetScript("OnClick", TSM.Scan.StartFullScan)
|
||||
btn:SetText(L["Run Full Scan"])
|
||||
btn.tooltip = L["A full auction house scan will scan every item on the auction house but is far slower than a GetAll scan. Expect this scan to take several minutes or longer."]
|
||||
frame.startFullScanButton = btn
|
||||
|
||||
TSMAPI.GUI:CreateHorizontalLine(buttonFrame, -200)
|
||||
|
||||
-- third row (group scan)
|
||||
local btn = TSMAPI.GUI:CreateButton(buttonFrame, 18)
|
||||
btn:SetPoint("TOPLEFT", 6, -225)
|
||||
btn:SetPoint("TOPRIGHT", -6, -225)
|
||||
btn:SetHeight(22)
|
||||
btn:SetScript("OnClick", GUI.StartGroupScan)
|
||||
btn:SetText(L["Scan Selected Groups"])
|
||||
btn.tooltip = L["This will do a slow auction house scan of every item in the selected groups and update their AuctionDB prices. This may take several minutes."]
|
||||
frame.startGroupScanButton = btn
|
||||
|
||||
return frame
|
||||
end
|
||||
|
||||
function GUI:StartGroupScan()
|
||||
local items = {}
|
||||
for groupName, data in pairs(private.startScanContent.groupTree:GetSelectedGroupInfo()) do
|
||||
groupName = TSMAPI:FormatGroupPath(groupName, true)
|
||||
for itemString in pairs(data.items) do
|
||||
tinsert(items, itemString)
|
||||
end
|
||||
end
|
||||
TSM.Scan:StartGroupScan(items)
|
||||
end
|
||||
@@ -0,0 +1,229 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster_AuctionDB --
|
||||
-- http://www.curse.com/addons/wow/tradeskillmaster_auctiondb --
|
||||
-- --
|
||||
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) --
|
||||
-- All Rights Reserved* - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
-- load the parent file (TSM) into a local variable and register this file as a module
|
||||
local TSM = select(2, ...)
|
||||
local Scan = TSM:NewModule("Scan", "AceEvent-3.0")
|
||||
local L = LibStub("AceLocale-3.0"):GetLocale("TradeSkillMaster_AuctionDB") -- loads the localization table
|
||||
|
||||
Scan.groupScanData = {}
|
||||
Scan.filterList = {}
|
||||
Scan.numFilters = 0
|
||||
|
||||
|
||||
local function ScanCallback(event, ...)
|
||||
if event == "SCAN_PAGE_UPDATE" then
|
||||
local page, total = ...
|
||||
TSM.GUI:UpdateStatus(format(L["Scanning page %s/%s"], page, total), page*100/total)
|
||||
elseif event == "SCAN_COMPLETE" then
|
||||
local data = ...
|
||||
Scan:ProcessScanData(data)
|
||||
Scan:DoneScanning()
|
||||
elseif event == "INTERRUPTED" then
|
||||
Scan:DoneScanning()
|
||||
end
|
||||
end
|
||||
|
||||
function Scan.ProcessGetAllScan(self)
|
||||
local temp = 0
|
||||
while true do
|
||||
temp = min(temp + 1, 100)
|
||||
self:Sleep(0.2)
|
||||
if not Scan.isScanning then return end
|
||||
if Scan.getAllLoaded then
|
||||
break
|
||||
end
|
||||
TSM.GUI:UpdateStatus(L["Running query..."], nil, temp)
|
||||
end
|
||||
|
||||
local data = {}
|
||||
for i=1, Scan.getAllLoaded do
|
||||
TSM.GUI:UpdateStatus(format(L["Scanning page %s/%s"], 1, 1), i*100/Scan.getAllLoaded)
|
||||
if i % 100 == 0 then
|
||||
self:Yield()
|
||||
if GetNumAuctionItems("list") ~= Scan.getAllLoaded then
|
||||
--TSM:Print(L["GetAll scan did not run successfully due to issues on Blizzard's end. Using the TSM application for your scans is recommended."])
|
||||
TSM:Print("GetAll scan did not run successfully.")
|
||||
Scan:DoneScanning()
|
||||
return
|
||||
end
|
||||
end
|
||||
|
||||
local itemID = TSMAPI:GetItemID(GetAuctionItemLink("list", i))
|
||||
--local _, _, count, _, _, _, _, _, _, buyout = GetAuctionItemInfo("list", i)
|
||||
local _, _, count, _, _, _, _, _, buyout = GetAuctionItemInfo("list", i)
|
||||
if itemID and buyout and buyout > 0 then
|
||||
data[itemID] = data[itemID] or {records={}, minBuyout=math.huge, quantity=0}
|
||||
data[itemID].minBuyout = min(data[itemID].minBuyout, floor(buyout/count))
|
||||
data[itemID].quantity = data[itemID].quantity + count
|
||||
for j=1, count do
|
||||
tinsert(data[itemID].records, floor(buyout/count))
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
TSM.db.factionrealm.lastCompleteScan = time()
|
||||
TSM.Data:ProcessData(data)
|
||||
|
||||
TSM.GUI:UpdateStatus(L["Processing data..."])
|
||||
while TSM.processingData do
|
||||
self:Sleep(0.2)
|
||||
end
|
||||
|
||||
TSM:Print(L["It is strongly recommended that you reload your ui (type '/reload') after running a GetAll scan. Otherwise, any other scans (Post/Cancel/Search/etc) will be much slower than normal."])
|
||||
end
|
||||
|
||||
function Scan:AUCTION_ITEM_LIST_UPDATE()
|
||||
Scan:UnregisterEvent("AUCTION_ITEM_LIST_UPDATE")
|
||||
local num, total = GetNumAuctionItems("list")
|
||||
|
||||
--if num ~= total or num == 0 then
|
||||
if num == 0 then
|
||||
--TSM:Print(L["GetAll scan did not run successfully due to issues on Blizzard's end. Using the TSM application for your scans is recommended."])
|
||||
TSM:Print("GetAll scan did not run successfully.")
|
||||
Scan:DoneScanning()
|
||||
return
|
||||
end
|
||||
Scan.getAllLoaded = num
|
||||
end
|
||||
|
||||
function Scan:GetAllScanQuery()
|
||||
local canScan, canGetAll = CanSendAuctionQuery()
|
||||
if not canGetAll then return TSM:Print(L["Can't run a GetAll scan right now."]) end
|
||||
if not canScan then return TSMAPI:CreateTimeDelay(0.5, Scan.GetAllScanQuery) end
|
||||
QueryAuctionItems("", nil, nil, nil, nil, nil, nil, nil, nil, true)
|
||||
Scan:RegisterEvent("AUCTION_ITEM_LIST_UPDATE")
|
||||
TSMAPI.Threading:Start(Scan.ProcessGetAllScan, 1, function() Scan:DoneScanning() end)
|
||||
end
|
||||
|
||||
local function GroupScanCallback(event, ...)
|
||||
if event == "QUERY_COMPLETE" then
|
||||
local filterList = ...
|
||||
local numItems = 0
|
||||
for _, v in ipairs(filterList) do
|
||||
numItems = numItems + #v.items
|
||||
end
|
||||
Scan.filterList = filterList
|
||||
Scan.numFilters = #filterList
|
||||
Scan:ScanNextGroupFilter()
|
||||
elseif event == "QUERY_UPDATE" then
|
||||
local current, total = ...
|
||||
TSM.GUI:UpdateStatus(format(L["Preparing Filter %d / %d"], current, total))
|
||||
elseif event == "SCAN_INTERRUPTED" then
|
||||
Scan:DoneScanning()
|
||||
elseif event == "SCAN_TIMEOUT" then
|
||||
tremove(Scan.filterList, 1)
|
||||
Scan:ScanNextGroupFilter()
|
||||
elseif event == "SCAN_PAGE_UPDATE" then
|
||||
local page, total = ...
|
||||
TSM.GUI:UpdateStatus(format(L["Scanning %d / %d (Page %d / %d)"], Scan.numFilters-#Scan.filterList, Scan.numFilters, page+1, total), nil, page*100/total)
|
||||
elseif event == "SCAN_COMPLETE" then
|
||||
local data = ...
|
||||
for _, itemString in ipairs(Scan.filterList[1].items) do
|
||||
if not Scan.groupScanData[itemString] then
|
||||
Scan.groupScanData[itemString] = data[itemString]
|
||||
end
|
||||
end
|
||||
tremove(Scan.filterList, 1)
|
||||
Scan:ScanNextGroupFilter()
|
||||
end
|
||||
end
|
||||
|
||||
function Scan:ScanNextGroupFilter(data)
|
||||
if #Scan.filterList == 0 then
|
||||
Scan:ProcessScanData(Scan.groupScanData)
|
||||
Scan:DoneScanning()
|
||||
return
|
||||
end
|
||||
TSM.GUI:UpdateStatus(format(L["Scanning %d / %d (Page %d / %d)"], Scan.numFilters-#Scan.filterList, Scan.numFilters, 1, 1), (Scan.numFilters-#Scan.filterList)*100/Scan.numFilters)
|
||||
TSMAPI.AuctionScan:RunQuery(Scan.filterList[1], GroupScanCallback)
|
||||
end
|
||||
|
||||
function Scan:StartGroupScan(items)
|
||||
Scan.isScanning = "Group"
|
||||
Scan.isBuggedGetAll = nil
|
||||
Scan.groupItems = items
|
||||
wipe(Scan.filterList)
|
||||
wipe(Scan.groupScanData)
|
||||
Scan.numFilters = 0
|
||||
TSMAPI.AuctionScan:StopScan()
|
||||
TSMAPI:GenerateQueries(items, GroupScanCallback)
|
||||
TSM.GUI:UpdateStatus(L["Preparing Filters..."])
|
||||
end
|
||||
|
||||
function Scan:StartFullScan()
|
||||
Scan.isScanning = "Full"
|
||||
TSM.GUI:UpdateStatus(L["Running query..."])
|
||||
Scan.isBuggedGetAll = nil
|
||||
Scan.groupItems = nil
|
||||
TSMAPI.AuctionScan:StopScan()
|
||||
TSMAPI.AuctionScan:RunQuery({name=""}, ScanCallback)
|
||||
end
|
||||
|
||||
function Scan:StartGetAllScan()
|
||||
TSM.db.profile.lastGetAll = time()
|
||||
Scan.isScanning = "GetAll"
|
||||
Scan.isBuggedGetAll = nil
|
||||
Scan.groupItems = nil
|
||||
TSMAPI.AuctionScan:StopScan()
|
||||
Scan:GetAllScanQuery()
|
||||
end
|
||||
|
||||
function Scan:DoneScanning()
|
||||
TSM.GUI:UpdateStatus(L["Done Scanning"], 100)
|
||||
Scan.isScanning = nil
|
||||
Scan.getAllLoaded = nil
|
||||
end
|
||||
|
||||
function Scan:ProcessScanData(scanData)
|
||||
local data = {}
|
||||
|
||||
for itemString, obj in pairs(scanData) do
|
||||
if TSMAPI:GetBaseItemString(itemString) == itemString then
|
||||
local itemID = obj:GetItemID()
|
||||
local quantity, minBuyout = 0, 0
|
||||
local records = {}
|
||||
for _, record in ipairs(obj.records) do
|
||||
local itemBuyout = record:GetItemBuyout()
|
||||
if itemBuyout and (itemBuyout < minBuyout or minBuyout == 0) then
|
||||
minBuyout = itemBuyout
|
||||
end
|
||||
quantity = quantity + record.count
|
||||
for i=1, record.count do
|
||||
tinsert(records, itemBuyout)
|
||||
end
|
||||
end
|
||||
data[itemID] = {records=records, minBuyout=minBuyout, quantity=quantity}
|
||||
end
|
||||
end
|
||||
|
||||
if Scan.isScanning ~= "group" then
|
||||
TSM.db.factionrealm.lastCompleteScan = time()
|
||||
end
|
||||
TSM.Data:ProcessData(data, Scan.groupItems)
|
||||
end
|
||||
|
||||
function Scan:ProcessImportedData(auctionData)
|
||||
local data = {}
|
||||
for itemID, auctions in pairs(auctionData) do
|
||||
local quantity, minBuyout, records = 0, 0, {}
|
||||
for _, auction in ipairs(auctions) do
|
||||
local itemBuyout, count = unpack(auction)
|
||||
if itemBuyout and (itemBuyout < minBuyout or minBuyout == 0) then
|
||||
minBuyout = itemBuyout
|
||||
end
|
||||
quantity = quantity + count
|
||||
for i=1, count do
|
||||
tinsert(records, itemBuyout)
|
||||
end
|
||||
end
|
||||
data[itemID] = {records=records, minBuyout=minBuyout, quantity=quantity}
|
||||
end
|
||||
TSM.db.factionrealm.lastCompleteScan = time()
|
||||
TSM.Data:ProcessData(data)
|
||||
end
|
||||
@@ -0,0 +1,489 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster_AuctionDB --
|
||||
-- http://www.curse.com/addons/wow/tradeskillmaster_auctiondb --
|
||||
-- --
|
||||
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) --
|
||||
-- All Rights Reserved* - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
-- load the parent file (TSM) into a local variable and register this file as a module
|
||||
local TSM = select(2, ...)
|
||||
local Config = TSM:NewModule("Config", "AceHook-3.0")
|
||||
local AceGUI = LibStub("AceGUI-3.0")
|
||||
local L = LibStub("AceLocale-3.0"):GetLocale("TradeSkillMaster_AuctionDB") -- loads the localization table
|
||||
|
||||
local searchPage = 0
|
||||
local filter = { text = nil, class = nil, subClass = nil }
|
||||
local items = {}
|
||||
|
||||
-- options page
|
||||
function Config:Load(parent)
|
||||
filter = {}
|
||||
|
||||
local tg = AceGUI:Create("TSMTabGroup")
|
||||
tg:SetLayout("Fill")
|
||||
tg:SetFullHeight(true)
|
||||
tg:SetFullWidth(true)
|
||||
tg:SetTabs({ { value = 1, text = SEARCH }, { value = 2, text = L["Options"] } })
|
||||
tg:SetCallback("OnGroupSelected", function(self, _, value)
|
||||
tg:ReleaseChildren()
|
||||
parent:DoLayout()
|
||||
|
||||
if value == 1 then
|
||||
Config:LoadSearch(tg)
|
||||
elseif value == 2 then
|
||||
Config:LoadOptions(tg)
|
||||
end
|
||||
tg.children[1]:DoLayout()
|
||||
end)
|
||||
parent:AddChild(tg)
|
||||
tg:SelectTab(1)
|
||||
end
|
||||
|
||||
function Config:UpdateItems()
|
||||
wipe(items)
|
||||
local cache = {}
|
||||
local sortMethod = TSM.db.profile.resultsSortMethod
|
||||
local fClass = filter.class and select(filter.class, GetAuctionItemClasses())
|
||||
local fSubClass = filter.subClass and select(filter.subClass, GetAuctionItemSubClasses(filter.class))
|
||||
if filter.text or fClass then
|
||||
for itemID, data in pairs(TSM.data) do
|
||||
TSM:DecodeItemData(itemID)
|
||||
local name, _, rarity, ilvl, minlvl, class, subClass = GetItemInfo(itemID)
|
||||
if (name and filter.text and strfind(strlower(name), strlower(filter.text))) and (not fClass or (class == fClass and (not fSubClass or subClass == fSubClass))) and (not TSM.db.profile.hidePoorQualityItems or rarity > 0) then
|
||||
tinsert(items, itemID)
|
||||
if sortMethod == "name" then
|
||||
cache[itemID] = name
|
||||
elseif sortMethod == "ilvl" then
|
||||
cache[itemID] = ilvl
|
||||
elseif sortMethod == "minlvl" then
|
||||
cache[itemID] = minlvl
|
||||
elseif sortMethod == "marketvalue" then
|
||||
cache[itemID] = data.marketValue
|
||||
elseif sortMethod == "minbuyout" then
|
||||
cache[itemID] = data.minBuyout
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if TSM.db.profile.resultsSortOrder == "ascending" then
|
||||
sort(items, function(a, b) return (cache[a] or math.huge) < (cache[b] or math.huge) end)
|
||||
else
|
||||
sort(items, function(a, b) return (cache[a] or 0) > (cache[b] or 0) end)
|
||||
end
|
||||
end
|
||||
|
||||
function Config:LoadSearch(container)
|
||||
local searchDataTmp = Config:GetSearchData()
|
||||
local results = {}
|
||||
local totalResults = #items
|
||||
local minIndex = searchPage * TSM.db.profile.resultsPerPage + 1
|
||||
local maxIndex = min(TSM.db.profile.resultsPerPage * (searchPage + 1), totalResults)
|
||||
if totalResults == 0 then
|
||||
if filter.text then
|
||||
results = {
|
||||
{
|
||||
type = "Spacer",
|
||||
quantity = 2,
|
||||
},
|
||||
{
|
||||
type = "Label",
|
||||
relativeWidth = 0.4
|
||||
},
|
||||
{
|
||||
type = "Label",
|
||||
relativeWidth = 0.6,
|
||||
text = L["No items found"],
|
||||
fontObject = GameFontNormalLarge,
|
||||
},
|
||||
}
|
||||
else
|
||||
results = {
|
||||
{
|
||||
type = "Spacer",
|
||||
quantity = 2,
|
||||
},
|
||||
{
|
||||
type = "Label",
|
||||
relativeWidth = 0.05
|
||||
},
|
||||
{
|
||||
type = "Label",
|
||||
relativeWidth = 0.949,
|
||||
text = "|cffffffff" .. L["Use the search box and category filters above to search the AuctionDB data."] .. "|r",
|
||||
fontObject = GameFontNormalLarge,
|
||||
},
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
local classes, subClasses = {}, {}
|
||||
for i, className in ipairs({ GetAuctionItemClasses() }) do
|
||||
classes[i] = className
|
||||
subClasses[i] = {}
|
||||
for j, subClassName in ipairs({ GetAuctionItemSubClasses(i) }) do
|
||||
subClasses[i][j] = subClassName
|
||||
end
|
||||
tinsert(subClasses[i], "")
|
||||
end
|
||||
tinsert(classes, "")
|
||||
|
||||
local lastScanInfo
|
||||
if TSM.db.factionrealm.lastCompleteScan > 0 then
|
||||
if TSM.db.factionrealm.lastCompleteScan == TSM.db.factionrealm.appDataUpdate then
|
||||
lastScanInfo = format(L["Last updated from the TSM Application %s ago."], SecondsToTime(time() - TSM.db.factionrealm.appDataUpdate))
|
||||
else
|
||||
lastScanInfo = format(L["Last updated from in-game scan %s ago."], SecondsToTime(time() - TSM.db.factionrealm.lastCompleteScan))
|
||||
end
|
||||
else
|
||||
lastScanInfo = L["No scans found."]
|
||||
end
|
||||
|
||||
local page = {
|
||||
{
|
||||
type = "SimpleGroup",
|
||||
layout = "Flow",
|
||||
fullHeight = true,
|
||||
children = {
|
||||
{
|
||||
type = "Label",
|
||||
text = L["You can use this page to lookup an item or group of items in the AuctionDB database. Note that this does not perform a live search of the AH."],
|
||||
relativeWidth = 1,
|
||||
},
|
||||
{
|
||||
type = "Label",
|
||||
text = lastScanInfo,
|
||||
relativeWidth = 1,
|
||||
},
|
||||
{
|
||||
type = "HeadingLine",
|
||||
},
|
||||
{
|
||||
type = "EditBox",
|
||||
label = SEARCH,
|
||||
settingInfo = {filter, "text"},
|
||||
relativeWidth = 0.49,
|
||||
callback = function(_, _, value)
|
||||
searchPage = 0
|
||||
container:ReloadTab()
|
||||
end,
|
||||
tooltip = L["Any items in the AuctionDB database that contain the search phrase in their names will be displayed."],
|
||||
},
|
||||
{
|
||||
type = "Dropdown",
|
||||
label = L["Item Type Filter"],
|
||||
list = classes,
|
||||
value = filter.class or #classes,
|
||||
relativeWidth = 0.25,
|
||||
callback = function(self, _, value)
|
||||
filter.text = TSMAPI:StrEscape(filter.text or "")
|
||||
if value ~= filter.class then
|
||||
filter.subClass = nil
|
||||
end
|
||||
if value == #classes then
|
||||
filter.class = nil
|
||||
else
|
||||
filter.class = value
|
||||
end
|
||||
searchPage = 0
|
||||
container:ReloadTab()
|
||||
end,
|
||||
tooltip = L["You can filter the results by item type by using this dropdown. For example, if you want to search for all herbs, you would select \"Trade Goods\" in this dropdown and \"Herbs\" as the subtype filter."],
|
||||
},
|
||||
{
|
||||
type = "Dropdown",
|
||||
label = L["Item SubType Filter"],
|
||||
disabled = filter.class == nil or (subClasses[filter.class] and #subClasses[filter.class] == 0),
|
||||
list = subClasses[filter.class or 0],
|
||||
value = filter.subClass or #(subClasses[filter.class or 0] or {}),
|
||||
relativeWidth = 0.25,
|
||||
callback = function(_, _, value)
|
||||
if value == #subClasses[filter.class] then
|
||||
filter.subClass = nil
|
||||
else
|
||||
filter.subClass = value
|
||||
end
|
||||
searchPage = 0
|
||||
container:ReloadTab()
|
||||
end,
|
||||
tooltip = L["You can filter the results by item subtype by using this dropdown. For example, if you want to search for all herbs, you would select \"Trade Goods\" in the item type dropdown and \"Herbs\" in this dropdown."],
|
||||
},
|
||||
{
|
||||
type = "Label",
|
||||
relativeWidth = 0.15
|
||||
},
|
||||
{
|
||||
type = "Button",
|
||||
text = REFRESH,
|
||||
relativeWidth = 0.2,
|
||||
callback = function()
|
||||
searchPage = 0
|
||||
Config:UpdateItems()
|
||||
container:ReloadTab()
|
||||
container:DoLayout()
|
||||
end,
|
||||
tooltip = L["Refreshes the current search results."],
|
||||
},
|
||||
{
|
||||
type = "Label",
|
||||
relativeWidth = 0.15
|
||||
},
|
||||
{
|
||||
type = "Icon",
|
||||
image = "Interface\\Buttons\\UI-SpellbookIcon-PrevPage-Up",
|
||||
width = 24,
|
||||
imageWidth = 24,
|
||||
imageHeight = 24,
|
||||
disabled = minIndex == 1,
|
||||
callback = function(self)
|
||||
searchPage = searchPage - 1
|
||||
container:ReloadTab()
|
||||
end,
|
||||
tooltip = L["Previous Page"],
|
||||
},
|
||||
{
|
||||
type = "Label",
|
||||
relativeWidth = 0.03
|
||||
},
|
||||
{
|
||||
type = "Label",
|
||||
text = format(L["Items %s - %s (%s total)"], minIndex, maxIndex, totalResults),
|
||||
relativeWidth = 0.35,
|
||||
},
|
||||
{
|
||||
type = "Icon",
|
||||
image = "Interface\\Buttons\\UI-SpellbookIcon-NextPage-Up",
|
||||
width = 24,
|
||||
imageWidth = 24,
|
||||
imageHeight = 24,
|
||||
disabled = maxIndex == totalResults,
|
||||
callback = function(self)
|
||||
searchPage = searchPage + 1
|
||||
container:ReloadTab()
|
||||
end,
|
||||
tooltip = L["Next Page"],
|
||||
},
|
||||
{
|
||||
type = "HeadingLine"
|
||||
},
|
||||
{
|
||||
type = "SimpleGroup",
|
||||
fullHeight = true,
|
||||
layout = "Flow",
|
||||
children = results,
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
TSMAPI:BuildPage(container, page)
|
||||
|
||||
local stParent = container.children[1].children[#container.children[1].children].frame
|
||||
|
||||
if not Config.st then
|
||||
local stCols = {
|
||||
{
|
||||
name = L["Item Link"],
|
||||
width = 0.40,
|
||||
},
|
||||
{
|
||||
name = L["Minimum Buyout"],
|
||||
width = 0.19,
|
||||
},
|
||||
{
|
||||
name = L["Market Value"],
|
||||
width = 0.19,
|
||||
},
|
||||
{
|
||||
name = L["Last Scanned"],
|
||||
width = 0.22,
|
||||
},
|
||||
}
|
||||
local handlers = {
|
||||
OnClick = function(_, data, _, button)
|
||||
if data and IsShiftKeyDown() and button == "RightButton" then
|
||||
TSM.data[data.itemID] = nil
|
||||
TSM:Printf(L["Removed %s from AuctionDB."], select(2, GetItemInfo(data.itemID)) or data.itemID)
|
||||
end
|
||||
end,
|
||||
OnEnter = function(_, data, self)
|
||||
GameTooltip:SetOwner(self, "ANCHOR_RIGHT")
|
||||
GameTooltip:SetHyperlink("item:" .. data.itemID)
|
||||
GameTooltip:AddLine("\n")
|
||||
GameTooltip:AddLine(TSMAPI.Design:GetInlineColor("link2") .. L["Shift-Right-Click to clear all data for this item from AuctionDB."] .. "|r")
|
||||
GameTooltip:Show()
|
||||
end,
|
||||
OnLeave = function()
|
||||
GameTooltip:ClearLines()
|
||||
GameTooltip:Hide()
|
||||
end
|
||||
}
|
||||
Config.st = TSMAPI:CreateScrollingTable(stParent, stCols, handlers)
|
||||
Config.st:EnableSorting(true)
|
||||
end
|
||||
|
||||
Config:UnhookAll()
|
||||
Config:HookScript(stParent, "OnHide", function() Config:UnhookAll() Config.st:Hide() end)
|
||||
Config.st:Show()
|
||||
Config.st:SetParent(stParent)
|
||||
Config.st:SetAllPoints()
|
||||
Config.st:SetData(searchDataTmp)
|
||||
end
|
||||
|
||||
function Config:GetSearchData()
|
||||
Config:UpdateItems()
|
||||
local stData = {}
|
||||
|
||||
local totalResults = #items
|
||||
local minIndex = searchPage * TSM.db.profile.resultsPerPage + 1
|
||||
local maxIndex = min(TSM.db.profile.resultsPerPage * (searchPage + 1), totalResults)
|
||||
if totalResults > 0 then
|
||||
for i = minIndex, maxIndex do
|
||||
local itemID = items[i]
|
||||
TSM:DecodeItemData(itemID)
|
||||
local data = TSM.data[itemID]
|
||||
local timeDiff = data.lastScan and SecondsToTime(time() - data.lastScan)
|
||||
local name, link = GetItemInfo(itemID)
|
||||
tinsert(stData, {
|
||||
cols = {
|
||||
{
|
||||
value = link or "???",
|
||||
sortArg = name or "",
|
||||
},
|
||||
{
|
||||
value = TSMAPI:FormatTextMoney(data.minBuyout, "|cffffffff") or "---",
|
||||
sortArg = data.minBuyout or 0,
|
||||
},
|
||||
{
|
||||
value = TSMAPI:FormatTextMoney(data.marketValue, "|cffffffff") or "---",
|
||||
sortArg = data.marketValue or 0,
|
||||
},
|
||||
{
|
||||
value = (timeDiff and TSMAPI.Design:GetInlineColor("link2") .. format(L["%s ago"], timeDiff) .. "|r" or TSMAPI.Design:GetInlineColor("link2") .. "---|r"),
|
||||
sortArg = data.lastScan and (time() - data.lastScan) or 0,
|
||||
},
|
||||
},
|
||||
itemID = itemID,
|
||||
})
|
||||
end
|
||||
end
|
||||
|
||||
return stData
|
||||
end
|
||||
|
||||
function Config:LoadOptions(container)
|
||||
local page = {
|
||||
{
|
||||
type = "ScrollFrame",
|
||||
layout = "Flow",
|
||||
children = {
|
||||
{
|
||||
type = "InlineGroup",
|
||||
title = "General Options",
|
||||
layout = "Flow",
|
||||
children = {
|
||||
{
|
||||
type = "CheckBox",
|
||||
label = L["Show AuctionDB AH Tab (Requires Reload)"],
|
||||
settingInfo = { TSM.db.profile, "showAHTab" },
|
||||
relativeWidth = 0.5,
|
||||
tooltip = L["If checked, AuctionDB will add a tab to the AH to allow for in-game scans. If you are using the TSM app exclusively for your scans, you may want to hide it by unchecking this option. This option requires a reload to take effect."],
|
||||
},
|
||||
},
|
||||
},
|
||||
{
|
||||
type = "InlineGroup",
|
||||
title = L["Search Options"],
|
||||
layout = "Flow",
|
||||
children = {
|
||||
{
|
||||
type = "EditBox",
|
||||
label = L["Items per page"],
|
||||
value = TSM.db.profile.resultsPerPage,
|
||||
relativeWidth = 0.2,
|
||||
callback = function(_, _, value)
|
||||
value = tonumber(value)
|
||||
if value and value <= 500 and value >= 5 then
|
||||
TSM.db.profile.resultsPerPage = value
|
||||
else
|
||||
TSM:Print(L["Invalid value entered. You must enter a number between 5 and 500 inclusive."])
|
||||
end
|
||||
end,
|
||||
tooltip = L["This determines how many items are shown per page in results area of the \"Search\" tab of the AuctionDB page in the main TSM window. You may enter a number between 5 and 500 inclusive. If the page lags, you may want to decrease this number."],
|
||||
},
|
||||
{
|
||||
type = "Label",
|
||||
relativeWidth = 0.1
|
||||
},
|
||||
{
|
||||
type = "Dropdown",
|
||||
label = L["Sort items by"],
|
||||
list = { ["name"] = NAME, ["rarity"] = RARITY, ["ilvl"] = STAT_AVERAGE_ITEM_LEVEL, ["minlvl"] = L["Item MinLevel"], ["marketvalue"] = L["Market Value"], ["minbuyout"] = L["Minimum Buyout"] },
|
||||
settingInfo = {TSM.db.profile, "resultsSortMethod"},
|
||||
relativeWidth = 0.34,
|
||||
tooltip = L["Select how you would like the search results to be sorted. After changing this option, you may need to refresh your search results by hitting the \"Refresh\" button."],
|
||||
},
|
||||
{
|
||||
type = "Label",
|
||||
relativeWidth = 0.02
|
||||
},
|
||||
{
|
||||
type = "Dropdown",
|
||||
label = L["Result Order:"],
|
||||
settingInfo = {TSM.db.profile, "resultsSortOrder"},
|
||||
list = { ascending = L["Ascending"], descending = L["Descending"] },
|
||||
relativeWidth = 0.3,
|
||||
tooltip = L["Select whether to sort search results in ascending or descending order."],
|
||||
},
|
||||
{
|
||||
type = "CheckBox",
|
||||
label = L["Hide poor quality items"],
|
||||
settingInfo = { TSM.db.profile, "hidePoorQualityItems" },
|
||||
tooltip = L["If checked, poor quality items won't be shown in the search results."],
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
TSMAPI:BuildPage(container, page)
|
||||
end
|
||||
|
||||
function Config:LoadTooltipOptions(container)
|
||||
local page = {
|
||||
{
|
||||
type = "SimpleGroup",
|
||||
layout = "Flow",
|
||||
fullHeight = true,
|
||||
children = {
|
||||
{
|
||||
type = "CheckBox",
|
||||
label = L["Enable display of AuctionDB data in tooltip."],
|
||||
relativeWidth = 1,
|
||||
settingInfo = { TSM.db.profile, "tooltip" },
|
||||
callback = function(_, _, value)
|
||||
container:ReloadTab()
|
||||
end,
|
||||
},
|
||||
{
|
||||
type = "CheckBox",
|
||||
label = L["Display market value in tooltip."],
|
||||
disabled = not TSM.db.profile.tooltip,
|
||||
settingInfo = { TSM.db.profile, "marketValueTooltip" },
|
||||
tooltip = L["If checked, the market value of the item will be displayed"],
|
||||
},
|
||||
{
|
||||
type = "CheckBox",
|
||||
label = L["Display lowest buyout value seen in the last scan in tooltip."],
|
||||
disabled = not TSM.db.profile.tooltip,
|
||||
settingInfo = { TSM.db.profile, "minBuyoutTooltip" },
|
||||
tooltip = L["If checked, the lowest buyout value seen in the last scan of the item will be displayed."],
|
||||
},
|
||||
},
|
||||
},
|
||||
}
|
||||
|
||||
TSMAPI:BuildPage(container, page)
|
||||
end
|
||||
@@ -0,0 +1,225 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster_AuctionDB --
|
||||
-- http://www.curse.com/addons/wow/tradeskillmaster_auctiondb --
|
||||
-- --
|
||||
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) --
|
||||
-- All Rights Reserved* - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
-- load the parent file (TSM) into a local variable and register this file as a module
|
||||
local TSM = select(2, ...)
|
||||
local Data = TSM:NewModule("Data")
|
||||
|
||||
-- weight for the market value from X days ago (where X is the index of the table)
|
||||
local WEIGHTS = {[0] = 132, [1] = 125, [2] = 100, [3] = 75, [4] = 45, [5] = 34, [6] = 33,
|
||||
[7] = 38, [8] = 28, [9] = 21, [10] = 15, [11] = 10, [12] = 7, [13] = 5, [14] = 4}
|
||||
local MIN_PERCENTILE = 0.15 -- consider at least the lowest 15% of auctions
|
||||
local MAX_PERCENTILE = 0.30 -- consider at most the lowest 30% of auctions
|
||||
local MAX_JUMP = 1.2 -- between the min and max percentiles, any increase in price over 120% will trigger a discard of remaining auctions
|
||||
|
||||
function Data:ConvertScansToAvg(scans)
|
||||
if not scans then return end
|
||||
-- do a sanity check
|
||||
if type(scans) == "number" then
|
||||
scans = {scans}
|
||||
end
|
||||
if not scans.avg then
|
||||
local total, num = 0, 0
|
||||
for _, value in ipairs(scans) do
|
||||
total = total + value
|
||||
num = num + 1
|
||||
end
|
||||
scans.avg = floor(total/num+0.5)
|
||||
scans.count = num
|
||||
end
|
||||
return scans
|
||||
end
|
||||
|
||||
function Data:GetDay(t)
|
||||
t = t or time()
|
||||
return floor(t / (60*60*24))
|
||||
end
|
||||
|
||||
-- Updates all the market values
|
||||
function Data:UpdateMarketValue(itemData)
|
||||
local day = Data:GetDay()
|
||||
|
||||
local scans = CopyTable(itemData.scans)
|
||||
itemData.scans = {}
|
||||
for i=0, 14 do
|
||||
if i <= TSM.MAX_AVG_DAY then
|
||||
if type(scans[day-i]) == "number" then
|
||||
scans[day-i] = {avg=scans[day-i], count=1}
|
||||
end
|
||||
itemData.scans[day-i] = scans[day-i] and CopyTable(scans[day-i])
|
||||
else
|
||||
local dayScans = scans[day-i]
|
||||
if type(dayScans) == "table" then
|
||||
if dayScans.avg then
|
||||
itemData.scans[day-i] = dayScans.avg
|
||||
else
|
||||
-- old method
|
||||
itemData.scans[day-i] = Data:GetAverage(dayScans)
|
||||
end
|
||||
elseif dayScans then
|
||||
itemData.scans[day-i] = dayScans
|
||||
end
|
||||
end
|
||||
end
|
||||
itemData.marketValue = Data:GetMarketValue(itemData.scans)
|
||||
end
|
||||
|
||||
-- gets the average of a list of numbers
|
||||
-- DEPRECATED
|
||||
function Data:GetAverage(data)
|
||||
local total, num = 0, 0
|
||||
for _, marketValue in ipairs(data) do
|
||||
total = total + marketValue
|
||||
num = num + 1
|
||||
end
|
||||
|
||||
return num > 0 and floor((total / num) + 0.5)
|
||||
end
|
||||
|
||||
-- gets the market value given a set of scans
|
||||
function Data:GetMarketValue(scans)
|
||||
local day = Data:GetDay()
|
||||
local totalAmount, totalWeight = 0, 0
|
||||
|
||||
for i=0, 14 do
|
||||
local dayScans = scans[day-i]
|
||||
if dayScans then
|
||||
local dayMarketValue
|
||||
if type(dayScans) == "table" then
|
||||
if dayScans.avg then
|
||||
dayMarketValue = dayScans.avg
|
||||
else
|
||||
-- old method
|
||||
dayMarketValue = Data:GetAverage(scans)
|
||||
end
|
||||
else
|
||||
dayMarketValue = dayScans
|
||||
end
|
||||
if dayMarketValue then
|
||||
totalAmount = totalAmount + (WEIGHTS[i] * dayMarketValue)
|
||||
totalWeight = totalWeight + WEIGHTS[i]
|
||||
end
|
||||
end
|
||||
end
|
||||
for i in ipairs(scans) do
|
||||
if i < day - 14 then
|
||||
scans[i] = nil
|
||||
end
|
||||
end
|
||||
|
||||
return totalWeight > 0 and floor(totalAmount / totalWeight + 0.5) or 0
|
||||
end
|
||||
|
||||
function Data:ProcessData(scanData, groupItems)
|
||||
if TSM.processingData then return TSMAPI:CreateTimeDelay(0.2, function() Data:ProcessData(scanData, groupItems) end) end
|
||||
|
||||
|
||||
-- wipe all the minBuyout data
|
||||
if groupItems then
|
||||
for itemString in pairs(groupItems) do
|
||||
local itemID = TSMAPI:GetItemID(itemString)
|
||||
if TSM.data[itemID] then
|
||||
TSM:DecodeItemData(itemID)
|
||||
TSM.data[itemID].minBuyout = nil
|
||||
TSM:EncodeItemData(itemID)
|
||||
end
|
||||
end
|
||||
else
|
||||
for itemID, data in pairs(TSM.data) do
|
||||
TSM:DecodeItemData(itemID)
|
||||
data.minBuyout = nil
|
||||
TSM:EncodeItemData(itemID)
|
||||
end
|
||||
end
|
||||
|
||||
local scanDataList = {}
|
||||
for itemID, data in pairs(scanData) do
|
||||
tinsert(scanDataList, {itemID, data})
|
||||
end
|
||||
|
||||
-- go through each item and figure out the market value / update the data table
|
||||
local index = 1
|
||||
local day = Data:GetDay()
|
||||
local function DoDataProcessing()
|
||||
for i = 1, 500 do
|
||||
if index > #scanDataList then
|
||||
TSMAPI:CancelFrame("adbProcessDelay")
|
||||
TSM.processingData = nil
|
||||
break
|
||||
end
|
||||
|
||||
local itemID, data = unpack(scanDataList[index])
|
||||
TSM:DecodeItemData(itemID)
|
||||
TSM.data[itemID] = TSM.data[itemID] or {scans={}, lastScan = 0}
|
||||
local marketValue = Data:CalculateMarketValue(data.records)
|
||||
|
||||
local scanData = TSM.data[itemID].scans
|
||||
scanData[day] = scanData[day] or {avg=0, count=0}
|
||||
if type(scanData[day]) == "number" then
|
||||
-- this should never happen...
|
||||
scanData[day] = {scanData[day]}
|
||||
end
|
||||
scanData[day].avg = scanData[day].avg or 0
|
||||
scanData[day].count = scanData[day].count or 0
|
||||
if #scanData[day] > 0 then
|
||||
scanData[day] = Data:ConvertScansToAvg(scanData[day])
|
||||
end
|
||||
scanData[day].avg = floor((scanData[day].avg * scanData[day].count + marketValue) / (scanData[day].count + 1) + 0.5)
|
||||
scanData[day].count = scanData[day].count + 1
|
||||
|
||||
TSM.data[itemID].lastScan = TSM.db.factionrealm.lastCompleteScan
|
||||
TSM.data[itemID].minBuyout = data.minBuyout > 0 and data.minBuyout or nil
|
||||
TSM.data[itemID].quantity = data.quantity
|
||||
Data:UpdateMarketValue(TSM.data[itemID])
|
||||
TSM:EncodeItemData(itemID)
|
||||
|
||||
index = index + 1
|
||||
end
|
||||
end
|
||||
|
||||
TSM.processingData = true
|
||||
TSMAPI:CreateTimeDelay("adbProcessDelay", 0, DoDataProcessing, 0.1)
|
||||
end
|
||||
|
||||
function Data:CalculateMarketValue(records)
|
||||
local totalNum, totalBuyout = 0, 0
|
||||
local numRecords = #records
|
||||
|
||||
for i=1, numRecords do
|
||||
totalNum = i - 1
|
||||
if i ~= 1 and i > numRecords*MIN_PERCENTILE and (i > numRecords*MAX_PERCENTILE or records[i] >= MAX_JUMP*records[i-1]) then
|
||||
break
|
||||
end
|
||||
|
||||
totalBuyout = totalBuyout + records[i]
|
||||
if i == numRecords then
|
||||
totalNum = i
|
||||
end
|
||||
end
|
||||
|
||||
local uncorrectedMean = totalBuyout / totalNum
|
||||
local varience = 0
|
||||
|
||||
for i=1, totalNum do
|
||||
varience = varience + (records[i]-uncorrectedMean)^2
|
||||
end
|
||||
|
||||
local stdDev = sqrt(varience/totalNum)
|
||||
local correctedTotalNum, correctedTotalBuyout = 1, uncorrectedMean
|
||||
|
||||
for i=1, totalNum do
|
||||
if abs(uncorrectedMean - records[i]) < 1.5*stdDev then
|
||||
correctedTotalNum = correctedTotalNum + 1
|
||||
correctedTotalBuyout = correctedTotalBuyout + records[i]
|
||||
end
|
||||
end
|
||||
|
||||
local correctedMean = floor(correctedTotalBuyout / correctedTotalNum + 0.5)
|
||||
|
||||
return correctedMean
|
||||
end
|
||||
@@ -0,0 +1,551 @@
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
-- TradeSkillMaster_AuctionDB --
|
||||
-- http://www.curse.com/addons/wow/tradeskillmaster_auctiondb --
|
||||
-- --
|
||||
-- A TradeSkillMaster Addon (http://tradeskillmaster.com) --
|
||||
-- All Rights Reserved* - Detailed license information included with addon. --
|
||||
-- ------------------------------------------------------------------------------ --
|
||||
|
||||
-- register this file with Ace Libraries
|
||||
local TSM = select(2, ...)
|
||||
TSM = LibStub("AceAddon-3.0"):NewAddon(TSM, "TSM_AuctionDB", "AceEvent-3.0", "AceConsole-3.0")
|
||||
local AceGUI = LibStub("AceGUI-3.0") -- load the AceGUI libraries
|
||||
|
||||
local L = LibStub("AceLocale-3.0"):GetLocale("TradeSkillMaster_AuctionDB") -- loads the localization table
|
||||
|
||||
TSM.MAX_AVG_DAY = 1
|
||||
local SECONDS_PER_DAY = 60 * 60 * 24
|
||||
|
||||
local savedDBDefaults = {
|
||||
factionrealm = {
|
||||
appData = {},
|
||||
scanData = "",
|
||||
time = 0,
|
||||
lastCompleteScan = 0,
|
||||
appDataUpdate = 0,
|
||||
},
|
||||
profile = {
|
||||
tooltip = true,
|
||||
resultsPerPage = 50,
|
||||
resultsSortOrder = "ascending",
|
||||
resultsSortMethod = "name",
|
||||
hidePoorQualityItems = true,
|
||||
marketValueTooltip = true,
|
||||
minBuyoutTooltip = true,
|
||||
showAHTab = true,
|
||||
},
|
||||
}
|
||||
|
||||
-- Called once the player has loaded WOW.
|
||||
function TSM:OnInitialize()
|
||||
-- load the savedDB into TSM.db
|
||||
TSM.db = LibStub:GetLibrary("AceDB-3.0"):New("TradeSkillMaster_AuctionDBDB", savedDBDefaults, true)
|
||||
|
||||
-- make easier references to all the modules
|
||||
for moduleName, module in pairs(TSM.modules) do
|
||||
TSM[moduleName] = module
|
||||
end
|
||||
|
||||
-- register this module with TSM
|
||||
TSM:RegisterModule()
|
||||
TSM.db.factionrealm.time = 10 -- because AceDB won't save if we don't do this...
|
||||
|
||||
TSM.data = {}
|
||||
TSM:Deserialize(TSM.db.factionrealm.scanData, TSM.data)
|
||||
end
|
||||
|
||||
-- registers this module with TSM by first setting all fields and then calling TSMAPI:NewModule().
|
||||
function TSM:RegisterModule()
|
||||
TSM.priceSources = {
|
||||
{ key = "DBMarket", label = L["AuctionDB - Market Value"], callback = "GetMarketValue" },
|
||||
{ key = "DBMinBuyout", label = L["AuctionDB - Minimum Buyout"], callback = "GetMinBuyout" },
|
||||
}
|
||||
TSM.icons = {
|
||||
{ side = "module", desc = "AuctionDB", slashCommand = "auctiondb", callback = "Config:Load", icon = "Interface\\Icons\\Inv_Misc_Platnumdisks" },
|
||||
}
|
||||
if TSM.db.profile.showAHTab then
|
||||
TSM.auctionTab = { callbackShow = "GUI:Show", callbackHide = "GUI:Hide" }
|
||||
end
|
||||
TSM.slashCommands = {
|
||||
{ key = "adbreset", label = L["Resets AuctionDB's scan data"], callback = "Reset" },
|
||||
}
|
||||
TSM.moduleAPIs = {
|
||||
{ key = "lastCompleteScan", callback = TSM.GetLastCompleteScan },
|
||||
{ key = "lastCompleteScanTime", callback = TSM.GetLastCompleteScanTime },
|
||||
{ key = "adbScans", callback = TSM.GetScans },
|
||||
{ key = "adbOppositeFaction", callback = TSM.GetOppositeFactionData },
|
||||
}
|
||||
TSM.tooltipOptions = {callback = "Config:LoadTooltipOptions"}
|
||||
TSMAPI:NewModule(TSM)
|
||||
end
|
||||
|
||||
function TSM:LoadAuctionData()
|
||||
local function LoadDataThread(self, itemIDs)
|
||||
-- process new items first
|
||||
for itemID in pairs(TSM.db.factionrealm.appData) do
|
||||
if not TSM.data[itemID] then
|
||||
TSM:DecodeItemData(itemID)
|
||||
TSM:ProcessAppData(itemID)
|
||||
TSM:EncodeItemData(itemID)
|
||||
end
|
||||
self:Yield()
|
||||
end
|
||||
|
||||
local currentDay = TSM.Data:GetDay()
|
||||
for _, itemID in ipairs(itemIDs) do
|
||||
TSM:DecodeItemData(itemID)
|
||||
TSM:ProcessAppData(itemID)
|
||||
if type(TSM.data[itemID].scans) == "table" then
|
||||
local temp = {}
|
||||
for i=0, 14 do
|
||||
if i <= TSM.MAX_AVG_DAY then
|
||||
temp[currentDay-i] = TSM.Data:ConvertScansToAvg(TSM.data[itemID].scans[currentDay-i])
|
||||
else
|
||||
local dayScans = TSM.data[itemID].scans[currentDay-i]
|
||||
if type(dayScans) == "table" then
|
||||
if dayScans.avg then
|
||||
temp[currentDay-i] = dayScans.avg
|
||||
else
|
||||
-- old method
|
||||
temp[currentDay-i] = TSM.Data:GetAverage(dayScans)
|
||||
end
|
||||
elseif type(dayScans) == "number" then
|
||||
temp[currentDay-i] = dayScans
|
||||
end
|
||||
end
|
||||
end
|
||||
TSM.data[itemID].scans = temp
|
||||
end
|
||||
TSM:EncodeItemData(itemID)
|
||||
self:Yield()
|
||||
end
|
||||
end
|
||||
|
||||
local itemIDs = {}
|
||||
for itemID in pairs(TSM.data) do
|
||||
tinsert(itemIDs, itemID)
|
||||
end
|
||||
TSMAPI.Threading:Start(LoadDataThread, 0.1, nil, itemIDs)
|
||||
end
|
||||
|
||||
function TSM:ProcessAppData(itemID)
|
||||
if not TSM.db.factionrealm.appData[itemID] then return end
|
||||
|
||||
TSM.data[itemID] = TSM.data[itemID] or {scans = {}, lastScan = 0}
|
||||
local dbData = TSM.data[itemID]
|
||||
local day = TSM.Data:GetDay()
|
||||
for _, appData in ipairs(TSM.db.factionrealm.appData[itemID]) do
|
||||
local marketValue, minBuyout, scanTime = appData.m, appData.b, appData.t
|
||||
if abs(day - TSM.Data:GetDay(scanTime)) <= TSM.MAX_AVG_DAY then
|
||||
local dayScans = dbData.scans
|
||||
dayScans[day] = dayScans[day] or {avg=0, count=0}
|
||||
if type(dayScans[day]) == "number" then
|
||||
-- this should never happen...
|
||||
dayScans[day] = {dayScans[day]}
|
||||
end
|
||||
dayScans[day].avg = dayScans[day].avg or 0
|
||||
dayScans[day].count = dayScans[day].count or 0
|
||||
if #dayScans[day] > 0 then
|
||||
dayScans[day] = TSM.Data:ConvertScansToAvg(dayScans[day])
|
||||
end
|
||||
dayScans[day].avg = floor((dayScans[day].avg * dayScans[day].count + marketValue) / (dayScans[day].count + 1) + 0.5)
|
||||
dayScans[day].count = dayScans[day].count + 1
|
||||
if not dbData.lastScan or dbData.lastScan < scanTime then
|
||||
dbData.lastScan = scanTime
|
||||
dbData.minBuyout = minBuyout > 0 and minBuyout or nil
|
||||
end
|
||||
end
|
||||
end
|
||||
TSM.Data:UpdateMarketValue(dbData)
|
||||
TSM.db.factionrealm.appData[itemID] = nil
|
||||
end
|
||||
|
||||
function TSM:OnEnable()
|
||||
local function DecodeJSON(data)
|
||||
data = gsub(data, ":", "=")
|
||||
data = gsub(data, "\"horde\"", "horde")
|
||||
data = gsub(data, "\"alliance\"", "alliance")
|
||||
data = gsub(data, "\"m\"", "m")
|
||||
data = gsub(data, "\"n\"", "n")
|
||||
data = gsub(data, "\"b\"", "b")
|
||||
data = gsub(data, "\"([0-9]+)\"", "[%1]")
|
||||
loadstring("TSM_APP_DATA_TMP = " .. data .. "")()
|
||||
local val = TSM_APP_DATA_TMP
|
||||
TSM_APP_DATA_TMP = nil
|
||||
return val
|
||||
end
|
||||
|
||||
if TSM.AppData then
|
||||
local realm = strlower(GetRealmName() or "")
|
||||
local faction = strlower(UnitFactionGroup("player") or "")
|
||||
if faction == "" or faction == "Neutral" then return end
|
||||
local numNewScans = 0
|
||||
local maxScanTime = 0
|
||||
for realmInfo, appScanData in pairs(TSM.AppData) do
|
||||
local r, f, t, extra = ("-"):split(realmInfo)
|
||||
if extra then
|
||||
r = r .. "-" .. f
|
||||
f = t
|
||||
t = extra
|
||||
end
|
||||
r = strlower(r)
|
||||
f = strlower(f)
|
||||
local scanTime = tonumber(t)
|
||||
if realm == r and (faction == f or f == "both") and scanTime > TSM.db.factionrealm.appDataUpdate and abs(TSM.Data:GetDay() - TSM.Data:GetDay(scanTime)) <= TSM.MAX_AVG_DAY then
|
||||
local importData = DecodeJSON(appScanData)[faction]
|
||||
if importData then
|
||||
for itemID, data in pairs(importData) do
|
||||
itemID = tonumber(itemID)
|
||||
data.m = tonumber(data.m)
|
||||
data.b = tonumber(data.b)
|
||||
data.t = scanTime
|
||||
if itemID and data.m and data.b then
|
||||
TSM.db.factionrealm.appData[itemID] = TSM.db.factionrealm.appData[itemID] or {}
|
||||
tinsert(TSM.db.factionrealm.appData[itemID], data)
|
||||
end
|
||||
end
|
||||
maxScanTime = max(maxScanTime, scanTime)
|
||||
numNewScans = numNewScans + 1
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
if numNewScans > 0 then
|
||||
TSM.db.factionrealm.appDataUpdate = maxScanTime
|
||||
TSM.db.factionrealm.lastCompleteScan = TSM.db.factionrealm.appDataUpdate
|
||||
TSM:Printf(L["Imported %s scans worth of new auction data!"], numNewScans)
|
||||
end
|
||||
|
||||
TSM.AppData = nil
|
||||
end
|
||||
|
||||
TSM:LoadAuctionData()
|
||||
end
|
||||
|
||||
function TSM:OnTSMDBShutdown()
|
||||
TSM.db.factionrealm.time = 0
|
||||
TSM:Serialize(TSM.data)
|
||||
end
|
||||
|
||||
function TSM:GetTooltip(itemString, quantity)
|
||||
if not TSM.db.profile.tooltip then return end
|
||||
if not strfind(itemString, "item:") then return end
|
||||
local itemID = TSMAPI:GetItemID(itemString)
|
||||
if not itemID or not TSM.data[itemID] then return end
|
||||
local text = {}
|
||||
local moneyCoinsTooltip = TSMAPI:GetMoneyCoinsTooltip()
|
||||
quantity = quantity or 1
|
||||
|
||||
-- add market value info
|
||||
if TSM.db.profile.marketValueTooltip then
|
||||
local marketValue = TSM:GetMarketValue(itemID)
|
||||
if marketValue then
|
||||
if moneyCoinsTooltip then
|
||||
if IsShiftKeyDown() then
|
||||
tinsert(text, { left = " " .. format(L["Market Value x%s:"], quantity), right = TSMAPI:FormatTextMoneyIcon(marketValue * quantity, "|cffffffff", true) })
|
||||
else
|
||||
tinsert(text, { left = " " .. L["Market Value:"], right = TSMAPI:FormatTextMoneyIcon(marketValue, "|cffffffff", true) })
|
||||
end
|
||||
else
|
||||
if IsShiftKeyDown() then
|
||||
tinsert(text, { left = " " .. format(L["Market Value x%s:"], quantity), right = TSMAPI:FormatTextMoney(marketValue * quantity, "|cffffffff", true) })
|
||||
else
|
||||
tinsert(text, { left = " " .. L["Market Value:"], right = TSMAPI:FormatTextMoney(marketValue, "|cffffffff", true) })
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- add min buyout info
|
||||
if TSM.db.profile.minBuyoutTooltip then
|
||||
local minBuyout = TSM:GetMinBuyout(itemID)
|
||||
if minBuyout then
|
||||
if quantity then
|
||||
if moneyCoinsTooltip then
|
||||
if IsShiftKeyDown() then
|
||||
tinsert(text, { left = " " .. format(L["Min Buyout x%s:"], quantity), right = TSMAPI:FormatTextMoneyIcon(minBuyout * quantity, "|cffffffff", true) })
|
||||
else
|
||||
tinsert(text, { left = " " .. L["Min Buyout:"], right = TSMAPI:FormatTextMoneyIcon(minBuyout, "|cffffffff", true) })
|
||||
end
|
||||
else
|
||||
if IsShiftKeyDown() then
|
||||
tinsert(text, { left = " " .. format(L["Min Buyout x%s:"], quantity), right = TSMAPI:FormatTextMoney(minBuyout * quantity, "|cffffffff", true) })
|
||||
else
|
||||
tinsert(text, { left = " " .. L["Min Buyout:"], right = TSMAPI:FormatTextMoney(minBuyout, "|cffffffff", true) })
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
-- add heading and last scan time info
|
||||
if #text > 0 then
|
||||
local lastScan = TSM:GetLastScanTime(itemID)
|
||||
if lastScan then
|
||||
local timeColor = "|cffff0000"
|
||||
if (time() - lastScan) < 60 * 60 * 3 then
|
||||
timeColor = "|cff00ff00"
|
||||
elseif (time() - lastScan) < 60 * 60 * 12 then
|
||||
timeColor = "|cffffff00"
|
||||
end
|
||||
local timeDiff = SecondsToTime(time() - lastScan)
|
||||
--tinsert(text, 1, { left = "|cffffff00" .. "TSM AuctionDB:", right = "|cffffffff" .. format(L["%s ago"], timeDiff) })
|
||||
tinsert(text, 1, { left = "|cffffff00" .. "TSM AuctionDB:", right = format("%s (%s)", format("|cffffffff".."%d auctions".."|r", TSM.data[itemID].quantity), format(timeColor..L["%s ago"].."|r", timeDiff)) })
|
||||
else
|
||||
tinsert(text, 1, { left = "|cffffff00" .. "TSM AuctionDB:", right = "|cffffffff" .. L["Not Scanned"] })
|
||||
end
|
||||
return text
|
||||
end
|
||||
end
|
||||
|
||||
function TSM:Reset()
|
||||
-- Popup Confirmation Window used in this module
|
||||
StaticPopupDialogs["TSMAuctionDBClearDataConfirm"] = StaticPopupDialogs["TSMAuctionDBClearDataConfirm"] or {
|
||||
text = L["Are you sure you want to clear your AuctionDB data?"],
|
||||
button1 = YES,
|
||||
button2 = CANCEL,
|
||||
timeout = 0,
|
||||
whileDead = true,
|
||||
hideOnEscape = true,
|
||||
OnAccept = function()
|
||||
TSM.db.factionrealm.lastCompleteScan = 0
|
||||
TSM.db.factionrealm.appDataUpdate = 0
|
||||
for i in pairs(TSM.data) do
|
||||
TSM.data[i] = nil
|
||||
end
|
||||
TSM:Print(L["Reset Data"])
|
||||
end,
|
||||
OnCancel = false,
|
||||
}
|
||||
|
||||
StaticPopup_Show("TSMAuctionDBClearDataConfirm")
|
||||
for i = 1, 10 do
|
||||
local popup = _G["StaticPopup" .. i]
|
||||
if popup and popup.which == "TSMAuctionDBClearDataConfirm" then
|
||||
popup:SetFrameStrata("TOOLTIP")
|
||||
break
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
local alpha = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_="
|
||||
local base = #alpha
|
||||
local alphaTable = {}
|
||||
local alphaTableLookup = {}
|
||||
for i = 1, base do
|
||||
local char = strsub(alpha, i, i)
|
||||
tinsert(alphaTable, char)
|
||||
alphaTableLookup[char] = i
|
||||
end
|
||||
|
||||
local function decode(h)
|
||||
if not h then return end
|
||||
if strfind(h, "~") then return end
|
||||
local result = 0
|
||||
|
||||
local len = #h
|
||||
for j=len-1, 0, -1 do
|
||||
if not alphaTableLookup[strsub(h, len-j, len-j)] then error(h.." at index "..len-j) end
|
||||
result = result + (alphaTableLookup[strsub(h, len-j, len-j)] - 1) * (base ^ j)
|
||||
j = j - 1
|
||||
end
|
||||
|
||||
return result
|
||||
end
|
||||
|
||||
local function encode(d)
|
||||
d = tonumber(d)
|
||||
if not d or not (d < math.huge and d > 0) then -- this cannot be simplified since 0/0 is neither less than nor greater than any number
|
||||
return "~"
|
||||
end
|
||||
|
||||
local r = d % base
|
||||
local diff = d - r
|
||||
if diff == 0 then
|
||||
return alphaTable[r + 1]
|
||||
else
|
||||
return encode(diff / base) .. alphaTable[r + 1]
|
||||
end
|
||||
end
|
||||
|
||||
local function encodeScans(scans)
|
||||
local tbl, tbl2 = {}, {}
|
||||
for day, data in pairs(scans) do
|
||||
if type(data) == "table" and data.count and data.avg then
|
||||
data = encode(data.avg).."@"..encode(data.count)
|
||||
elseif type(data) == "table" then
|
||||
-- Old method of encoding scans
|
||||
for i = 1, #data do
|
||||
tbl2[i] = encode(data[i])
|
||||
end
|
||||
data = table.concat(tbl2, ";", 1, #data)
|
||||
else
|
||||
data = encode(data)
|
||||
end
|
||||
tinsert(tbl, encode(day) .. ":" .. data)
|
||||
end
|
||||
return table.concat(tbl, "!")
|
||||
end
|
||||
|
||||
local function decodeScans(rope)
|
||||
if rope == "A" then return end
|
||||
local scans = {}
|
||||
local days = {("!"):split(rope)}
|
||||
local currentDay = TSM.Data:GetDay()
|
||||
for _, data in ipairs(days) do
|
||||
local day, marketValueData = (":"):split(data)
|
||||
day = decode(day)
|
||||
scans[day] = {}
|
||||
|
||||
--bug fix? ...SkillMaster_AuctionDB\TradeSkillMaster_AuctionDB.lua:398: bad argument #1 to 'strfind' (string expected, got nil)
|
||||
if marketValueData ~= nil then
|
||||
|
||||
if strfind(marketValueData, "@") then
|
||||
local avg, count = ("@"):split(marketValueData)
|
||||
avg = decode(avg)
|
||||
count = decode(count)
|
||||
if avg ~= "~" and count ~= "~" then
|
||||
if abs(currentDay - day) <= TSM.MAX_AVG_DAY then
|
||||
scans[day].avg = avg
|
||||
scans[day].count = count
|
||||
else
|
||||
scans[day] = avg
|
||||
end
|
||||
end
|
||||
else
|
||||
-- Old method of decoding scans
|
||||
for _, value in ipairs({(";"):split(marketValueData)}) do
|
||||
local decodedValue = decode(value)
|
||||
if decodedValue ~= "~" then
|
||||
tinsert(scans[day], tonumber(decodedValue))
|
||||
end
|
||||
end
|
||||
if day ~= currentDay then
|
||||
scans[day] = TSM.Data:GetAverage(scans[day])
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
||||
|
||||
return scans
|
||||
end
|
||||
|
||||
function TSM:Serialize()
|
||||
local results = {}
|
||||
for itemID, data in pairs(TSM.data) do
|
||||
if not data.encoded then
|
||||
-- should never get here, but just in-case
|
||||
TSM:EncodeItemData(itemID)
|
||||
end
|
||||
if data.encoded then
|
||||
tinsert(results, "?" .. encode(itemID) .. "," .. data.encoded)
|
||||
end
|
||||
end
|
||||
TSM.db.factionrealm.scanData = table.concat(results)
|
||||
end
|
||||
|
||||
function TSM:Deserialize(data, resultTbl, fullyDecode)
|
||||
if strsub(data, 1, 1) ~= "?" then return end
|
||||
|
||||
for k, a, b, c, d, e, f in gmatch(data, "?([^,]+),([^,]+),([^,]+),([^,]+),([^,]+),([^,]+),([^?]+)") do
|
||||
local itemID = decode(k)
|
||||
resultTbl[itemID] = {encoded=strjoin(",", a, b, c, d, e, f)}
|
||||
if fullyDecode then
|
||||
TSM:DecodeItemData(itemID, resultTbl)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
function TSM:EncodeItemData(itemID, tbl)
|
||||
tbl = tbl or TSM.data
|
||||
local data = tbl[itemID]
|
||||
if data and data.marketValue then
|
||||
data.encoded = strjoin(",", encode(0), encode(data.marketValue), encode(data.lastScan), encode(0), encode(data.minBuyout), encodeScans(data.scans), encode(data.quantity))
|
||||
end
|
||||
end
|
||||
|
||||
function TSM:DecodeItemData(itemID, tbl)
|
||||
tbl = tbl or TSM.data
|
||||
local data = tbl[itemID]
|
||||
if data and data.encoded and not data.marketValue then
|
||||
local a, b, c, d, e, f, g = (","):split(data.encoded)
|
||||
data.marketValue = decode(b)
|
||||
data.lastScan = decode(c)
|
||||
data.minBuyout = decode(e)
|
||||
data.scans = decodeScans(f)
|
||||
data.quantity = decode(g)
|
||||
end
|
||||
end
|
||||
|
||||
function TSM:GetLastCompleteScan()
|
||||
local lastScan = {}
|
||||
for itemID, data in pairs(TSM.data) do
|
||||
TSM:DecodeItemData(itemID)
|
||||
if data.lastScan == TSM.db.factionrealm.lastCompleteScan then
|
||||
lastScan[itemID] = { marketValue = data.marketValue, minBuyout = data.minBuyout }
|
||||
end
|
||||
end
|
||||
|
||||
return lastScan
|
||||
end
|
||||
|
||||
function TSM:GetLastCompleteScanTime()
|
||||
return TSM.db.factionrealm.lastCompleteScan
|
||||
end
|
||||
|
||||
function TSM:GetScans(link)
|
||||
if not link then return end
|
||||
link = select(2, GetItemInfo(link))
|
||||
if not link then return end
|
||||
local itemID = TSMAPI:GetItemID(link)
|
||||
if not TSM.data[itemID] then return end
|
||||
TSM:DecodeItemData(itemID)
|
||||
|
||||
return CopyTable(TSM.data[itemID].scans)
|
||||
end
|
||||
|
||||
function TSM:GetOppositeFactionData()
|
||||
local realm = GetRealmName()
|
||||
local faction = UnitFactionGroup("player")
|
||||
if faction == "Horde" then
|
||||
faction = "Alliance"
|
||||
elseif faction == "Alliance" then
|
||||
faction = "Horde"
|
||||
else
|
||||
return
|
||||
end
|
||||
|
||||
local data = TSM.db.sv.factionrealm[faction .. " - " .. realm]
|
||||
if not data or type(data.scanData) ~= "string" then return end
|
||||
|
||||
local result = {}
|
||||
TSM:Deserialize(data.scanData, result, true)
|
||||
return result
|
||||
end
|
||||
|
||||
function TSM:GetMarketValue(itemID)
|
||||
if itemID and not tonumber(itemID) then
|
||||
itemID = TSMAPI:GetItemID(itemID)
|
||||
end
|
||||
if not itemID or not TSM.data[itemID] then return end
|
||||
TSM:DecodeItemData(itemID)
|
||||
if not TSM.data[itemID].marketValue or TSM.data[itemID].marketValue == 0 then
|
||||
TSM.data[itemID].marketValue = TSM.Data:GetMarketValue(TSM.data[itemID].scans)
|
||||
end
|
||||
return TSM.data[itemID].marketValue ~= 0 and TSM.data[itemID].marketValue or nil
|
||||
end
|
||||
|
||||
function TSM:GetLastScanTime(itemID)
|
||||
TSM:DecodeItemData(itemID)
|
||||
return itemID and TSM.data[itemID].lastScan
|
||||
end
|
||||
|
||||
function TSM:GetMinBuyout(itemID)
|
||||
if itemID and not tonumber(itemID) then
|
||||
itemID = TSMAPI:GetItemID(itemID)
|
||||
end
|
||||
if not itemID or not TSM.data[itemID] then return end
|
||||
TSM:DecodeItemData(itemID)
|
||||
return TSM.data[itemID].minBuyout
|
||||
end
|
||||
@@ -0,0 +1,29 @@
|
||||
## Interface: 30300
|
||||
## Title: |cff00ff00TradeSkillMaster_AuctionDB|r
|
||||
## Notes: Stores auction house data and calculates market prices.
|
||||
## Author: Sapu94, Bart39
|
||||
## Version: v2.3.10
|
||||
## SavedVariables: TradeSkillMaster_AuctionDBDB
|
||||
## Dependency: TradeSkillMaster
|
||||
## X-Curse-Packaged-Version: v2.3.10
|
||||
## X-Curse-Project-Name: TradeSkillMaster_AuctionDB
|
||||
## X-Curse-Project-ID: tradeskillmaster_auctiondb
|
||||
## X-Curse-Repository-ID: wow/tradeskillmaster_auctiondb/mainline
|
||||
|
||||
Locale\enUS.lua
|
||||
Locale\deDE.lua
|
||||
Locale\esES.lua
|
||||
Locale\esMX.lua
|
||||
Locale\frFR.lua
|
||||
Locale\koKR.lua
|
||||
Locale\ruRU.lua
|
||||
Locale\zhCN.lua
|
||||
Locale\zhTW.lua
|
||||
Locale\ptBR.lua
|
||||
|
||||
TradeSkillMaster_AuctionDB.lua
|
||||
AppData.lua
|
||||
Modules\data.lua
|
||||
Modules\Scanning.lua
|
||||
Modules\GUI.lua
|
||||
Modules\config.lua
|
||||
Reference in New Issue
Block a user