Auctioneer/Data file format

Материал из Norganna's AddOns

Перейти к: навигация, поиск

Содержание

What's this page for

One of the most asked questions ever: "What's the Auctioneer data file format?"

People ask this for the most different reason, one wants to write a tool to convert it to XLS, one wants to build a website on that data, one wants to write a Windows APP to search it.

This page attempts to document the data file format.

Comments

You can put questions or comments here so that they can be addressed in a future revision.

A sample data file

The data file has been moved to a sub-page due to its size.

Auctioneer Data File Sample 1 -- Stale

Historical Description

Original Description of Auctioneer Data -- Not Maintained

Online conversion tool

Online CSV converter.

Basic terminology

Though Lua uses a table for all data structure needs, its often easier to think of the layout using other layout paradigms. This document uses the integer, dictionary, array, structure, string, and formatted string definitions to organize the data.


integer

If you don't know what an integer is, we can't help you. An integer is stated as "x" or "integer", where x is the name of a specific type of integer (such as auctionID). Specific types will be defined in the Variable Types section.

array

An array is a table definition where the key is a sequential integer and the data is the item of interest.

{
item1, -- 0
item2, -- 1
item3, -- 2
...
}

stated as "array of x", where x is the format of the items in the array.

structure

Structures will be defined by listing the fields in field=definition format.

{
[key1] = data1,
[key2] = data2,
...
}

stated as "structure x" or just "x", where x is a unique key for each different structure definition. keys are always strings.

structure x

key1 = y
key2 = z

where y and z are data formats, and x is a unique identifier for the structure.

dictionary

A dictionary is the basic lua table scheme. All our tables use keys of uniform type. stated as "dictionary of x, y", where x is the type of the key, and y is the type of the data.

{
  [key1] = data1,
  [key2] = data2,
  ...
}

string

A string is identified as "x" or "string", where x is the name of a specific type of string. Specific types will be defined in the Variable Types section.

formatted string

Formatted strings are a string which has some defined structure to how it is layed out.

"data1;data2;data3" 

stated as "formatted x" or just "x", where x is a unique key for each different formatted string definition. Formatted strings use a baucus naur style definition.

formatted x

(auctionID";")*auctionID


Variables

AuctionConfig = ConfigDataStruct

AuctioneerItemDB = ItemDataStruct

AuctioneerSnapshotDB = dictionary of AuctionHouseID, SnapDataStruct

AuctioneerHistoryDB = dictionary of AuctionHouseID, HistoryDataStuct

AuctioneerFixedPriceDB = dictionary of ItemId, ?

AuctioneerTransactionDB = dictionary of AuctionHouseID, TransDataStruct


Structure Definitions

formatted AuctionData

To Do: formatted AuctionData

formatted AuctionUpdate

To Do: formatted AuctionUpdate


formatted AuctionHouseID

 string "-" ("neutral" | "alliance" | "horde")

where string is the server name


formatted AuctionIds

 integer (";" integer)*

where each integer is the ID of an auction


structure ConfigDataStruct

 version = integer
 filters = FilterSettingsData


structure FilterSettingsData

 pct-maxless = integer
 finish-sound = onOffString
 show-verbose = onOffString
 pct-nocomp = integer
 protect-window = integer
 show-stats = onOffString
 askprice = onOffString
 show-link = onOffString
 autofill = onOffString
 show-embed-blankline = onOffString
 askprice-whispers = onOffString
 show-median = onOffString
 pct-bidmarkdown = integer
 warn-color = onOffString
 printframe = integer
 show-suggest = onOffString
 askprice-vendor = onOffString
 askprice-smart = onOffString
 constants-warning = integer
 askprice-trigger = string
 askprice-word2 = string
 pct-markup = integer
 askprice-party = onOffString
 auction-duration = integer
 askprice-ad = onOffString
 askprice-word1 = onOffString
 askprice-guild = onOffString
 pct-undermkt = integer
 show-warning = onOffString
 show-average = onOffString
 pct-underlow = integer
 also = onOffString
 all = onOffString
 embed = onOffString
 finish = integer


structure HistoryData

 buyoutPrices = HistoryPrices -- buyout prices that have been listed for item
 totals = HistoryPrices       -- bid prices listed on item
 version = integer -- currently the value 1
 ahKey = AuctionHouseId


formatted HistoryPrices

 integer ("x" integer)? (";" integer ("x" integer)?)*

where the first integer is the price in copper. and the second integer is the number of items in the stack being sold


formatted ItemData

 a ";" b ";" c ";" d ";" e ";" f ";" g ";" h 

a string -- Item Display Name b integer -- ? c integer -- ? d integer -- ? e integer -- ? f integer -- ? g integer -- ? h integer -- Icon Texture Index number


structure ItemDataStruct

 items = dictionary of ItemKey, ItemData
 version = integer -- current value is 1
 auctionItemSubClasses = array of string -- names the item subclasses
   -- index into array is value used for defining subclasses of items.
 textures = array of string -- paths to item pictures
   -- index into array is value used for defining textures of items.
 auctionItemClasses = array of string -- names the item classes available.
   -- index into array is value used for defining classes of items.
 inventoryTypes = array of string --names the different inventory types
   -- index into array is value used for defining inventory type of items.


formatted ItemKey

 a ";" b ";" c

a integer -- Item ID b integer -- Random ID c integer -- Enchant ID

formatted onOffString

("on"|"off")

structure SnapDataStruct

 nextAuctionId = integer -- stores next available auction ID
 version = integer - currently the value 3
 auctionIdsByItemKey = dictionary of ItemKey, AuctionIds
 auctions = dictionary of integer, AuctionData -- stored as array for some reason
 ahKey = AuctionHouseId
 updates = array of AuctionUpdate 


formatted TranTime

 "e" integer "." integer

where the first integer is a 10 digit number and the second integer is a 1 digit number integer.integer is a Unix time stamp and e stands for epoch


formatted TranData

 a ";" b ";" c ";" d ";" e ";" f ";" g ";" h

a string -- name of item b integer -- Item ID c integer -- Random ID d integer -- Enchant ID e integer -- ? f integer -- ? g string -- "BidAccepted" or "BidSent" h integer -- ? i integer -- ? j integer -- ? k integer -- ? l string -- name of seller


structure TransData

 version = integer -- currently the value 1
 ahKey = AuctionHouseId
 dictionary of string, dictionary of TranTime, TranData 
 



Section definitions

AuctionConfig

players

This straightforward section contains the names of the playing characters of the account that this Auctioneer.lua file belongs to.

["players"] = {
     "Toon1", -- [1]
     ...
 }

filters

The section hosts Auctioneer user settings. Refer to Commands for a description of their meaning. The scan classes are probably the different item classes you can set to scan or not in the auction house window.

       ["filters"] = {
               ["scan-class4"] = "on",
               ["last-auction-duration"] = 480,
               ["scan-class3"] = "on",
               ["scan-class7"] = "on",
               ["scan-class6"] = "on",
               ["scan-class8"] = "on",
               ["scan-class9"] = "on",
               ["scan-class10"] = "on",
               ["scan-class1"] = "on",
               ["scan-class5"] = "on",
               ["scan-class2"] = "on",
               ["embed"] = "on",
               ["constants-warning"] = 0,
       },

version

This means the file has been produced by Auctioneer version X

       ["version"] = 40001,

Saved searches

This section contains the search parameters to be used in the Search Auctions tab, saved by the user. See Interface Usage for more details.

 ["SavedSearches"] = {
   ["Default Buyouts"] = "2  50000  50  1  1  ",
   ["Great Bids"] = "1  200000  50  2  1  1  ",
   ["Pure Income Bids"] = "1  400000  0  2  1  1  ",
   ["Competitors"] = "3  500",
   ["Pure Income Buyouts"] = "2  400000  0  1  1  ",
   ["Great Buyouts"] = "2  200000  50  1  1  ",
   [""] = "1  5000  30  2  1  1  ",
   ["Default Bids"] = "1  50000  50  2  1  1  ",
 },

AuctioneerFixedPriceDB

These are the user's custom prices, that is the prices set by hand by the user in the Post Auctions tab, setting fixed price in the Price Based On listbox and checking the Remember price checkbox. Refer to Interface Usage for details. These are sorted by realm/faction.

   ["ysera-alliance"] = {
     ["version"] = 1,
     ["ahKey"] = "ysera-alliance",
     ["fixedPrices"] = {
                       ["940:0:0"] = "1200000;1500000;1;1440",
                       ["14344:0:0"] = "30000;31500;1;1440",
      }
    }
  • ["940:0:0"] is the Item ID:Random ID:Enchant ID
  • 1200000 is the bid price
  • 1500000 is the buyout price
  • 1 is the stack size
  • 1440 is the length of the auction, in minutes (1440=24 hours*60 minutes)

AuctioneerTransactionDB

This section lists the transactions done by your toon. It lists the realm-faction, a version number, your toons name and the trade details.

       ["ysera-alliance"] = {
               ["version"] = 1,
               ["Toon1"] = {
                       ["e1168288717.0"] = "Schattenseide;10285:0:0:792708306;1;BidAccepted;813;650;0;813;11214693;Mcsteven",
                       ["e1170278278.0"] = "Taijistecken des Tigers;25176:-14:0:1931870254;1;BidSent;74460;69568;0;74460;21993336;Dragonheart",
               },
               ["ahKey"] = "ysera-alliance",


Trade details are build up out of :

  • e: The character "e" means Epoch
  • 1168288717 - A unix timestamp

The value portion is a list of various pieces of data:

  • Schattenseide - Item name
  • 10285:0:0:792708306 - Item ID:Random ID:Enchant ID:?
  • 1 or 0 - Buyout auction(1) or Bid(0)
  • BidAccepted - Can be BidAccepted/BidSent, BidAccepted comes on Buyout, BidSent probably when you're bidding
  • 813 - Transaction Amount
  • 650 - Current Asking bid
  • 0 - Current bid (someone else)
  • 813 - Buyout Price
  • 11214693 - Toon's money
  • Mcsteven - Seller

AuctioneerSnapshotDB

[119930] = "15215;681;0;1711270522;1;25116;0;Talingoa;0;0;4;1170311763;1170372399"

[auctioneer internal id] = itemId;suffixId;enchantId;uniqueId;count;minBid;buyoutPrice;Owner;bidAmount;highBidder;timeLeft;lastSeen;expiration

itemIdnumber
suffixIdnumber
enchantIdnumber
uniqueIdnumber
countnumber
minBidnumber
buyoutPricenumber
Ownerstring
bidAmountnumber
highBidderboolean
timeLeftnumber
lastSeennumber
expirationnumber

AuctioneerItemDB

["15215:681:0"] = Wutschäumendes Krummschwert des Tigers;2;40;1;30;1;1;663",

[itemId:suffixId:enchantId] = itemName;itemQuality;itemMinLevel;auctionItemClasses;auctionItemSubClasses;1;inventoryType;textures

itemQuality

  • 0 "Poor" (Gray)
  • 1 "Common" (White)
  • 2 "Uncommon" (Green)
  • 3 "Rare" (Blue)
  • 4 "Epic" (Purple)
  • 5 "Legendary" (Orange)
  • 6 "Artifact" (Gold)
  • auctionItemClasses: see AuctioneerItemDB:auctionItemClasses
  • auctionItemSubClasses: see AuctioneerItemDB:auctionItemSubClasses
  • inventoryTypes: see AuctioneerItemDB:inventoryTypes
  • textures: see AuctioneerItemDB:textures


Time

Short = 1;		--TIME_LEFT_SHORT
Medium = 2;		--TIME_LEFT_MEDIUM
Long = 3;		--TIME_LEFT_LONG
VeryLong = 4;		--TIME_LEFT_VERY_LONG
[0] = 0,		-- Could expire any second... the current bid is relatively accurate.
[1] = 1800,		-- If it disappears within 30 mins of last seing it, it was BO'd
[2] = 7200,		-- Ditto but for 2 hours.
[3] = 28800,		-- 8 hours.
[4] = 86400,		-- 24 hours.
Личные инструменты