WoW:API QueryAuctionItems: Difference between revisions

From AddOn Studio
Jump to navigation Jump to search
(Updated with new information)
(Updated the function to new arguement structure of 7.0.3.)
Line 3: Line 3:
Will return information about items in the auction house.  There must be a delay of about 0.3 second between regular queries and 15 minutes between getall queries.  Use [[API CanSendAuctionQuery|CanSendAuctionQuery]]() to determine if a query can be done.
Will return information about items in the auction house.  There must be a delay of about 0.3 second between regular queries and 15 minutes between getall queries.  Use [[API CanSendAuctionQuery|CanSendAuctionQuery]]() to determine if a query can be done.


  QueryAuctionItems("name", minLevel, maxLevel,  
  QueryAuctionItems("name", minLevel, maxLevel, page,
  invTypeIndex, classIndex, subclassIndex,  
   isUsable, qualityIndex, getAll, exactMatch, filterData
   page, isUsable, qualityIndex, getAll
  )
  )


== Arguments ==  
== Arguments ==  
:(string type, integer type, integer type, integer type, integer type, integer type, integer type, integer type, integer type, boolean type)
:(string type, integer type, integer type, integer type, boolean type, integer type, integer type, integer type, integer type, boolean type)


:;name : A part of the item's name (or the complete name) or "" for no retrenchment.  Must be 63 bytes or less.
;name : A part of the item's name (or the complete name) or "" for no retrenchment.  Must be 63 bytes or less.
:;minLevel : Items below this level won't be returned. Either a number or nil for no restrictions.
:;minLevel : Items below this level won't be returned. Either a number or nil for no restrictions.
:;maxLevel : Items above this level won't be returned. Either a number or nil for no restrictions.
:;maxLevel : Items above this level won't be returned. Either a number or nil for no restrictions.
:;invtypeIndex : Character's slotposition in which the item can be placed in. Can be one of the following values
:::;1 -  Head slot (INVTYPE_HEAD)
:::;2 - Neck slot (INVTYPE_NECK)
:::;3 - Shoulder slot (INVTYPE_SHOULDER)
:::;4 - Shirt slot (INVTYPE_BODY)
:::;5 - Chest slot (INVTYPE_CHEST)
:::;6 - Waist slot (INVTYPE_WAIST)
:::;7 - Leg slot (INVTYPE_LEGS)
:::;8 - Feet slot (INVTYPE_FEET)
:::;9 - Wrist slot (INVTYPE_WRIST)
:::;10 - Hand slot (INVTYPE_HAND)
:::;11 - Finger slot (INVTYPE_FINGER)
:::;12 - Trinket slot (INVTYPE_TRINKET)
:::;13 - Back slot (INVTYPE_CLOAK)
:::;14 - Weapon offhand slot (INVTYPE_HOLDABLE)
:::;15 - Weapon mainhand slot (INVTYPE_WEAPONMAINHAND)
:::;16 - Robe slot (INVTYPE_ROBE)
:::;17 - Tabard slot (INVTYPE_TABARD)
:::;18 - Container slot (INVTYPE_BAG)
:::;19 - 2handed weapon (takes two slots) (INVTYPE_2HWEAPON)
:::;20 - Ranged weapon slot (INVTYPE_RANGED)
:::;21 - Shield slot (INVTYPE_SHIELD)
:::;22 - Both weapon slots (INVTYPE_WEAPON)
:::;0 - no restrictions
:;classIndex : Returns only item in this class. Integer corresponds to the row number of the table returned by [[API GetAuctionItemClasses|GetAuctionItemClasses]]() or 0 for no restrictions.
:;subclassIndex : Returns only items in this subclass. Integer corresponds to the row number of the table returned by [[API GetAuctionItemSubClasses|GetAuctionItemSubClasses]](index) or 0 for no restrictions.
:;page : What page in the auctionhouse this shows up. Note that pages start at 0.
:;page : What page in the auctionhouse this shows up. Note that pages start at 0.
:;isUsable : Is useable by the player (1 = true, 0 = no restrictions)
:;isUsable : Is useable by the player (1 = true, 0 = no restrictions)
Line 52: Line 25:




:;exactMatch
: Should the name be used as an exact match or should it match substrings of the auction items.
:;filterData : The old invtypeIndex, classIndex, and subclassIndex roled into one.: This is the code that builds the filter value(s) for filterData:
:
local filterData;
if categoryIndex and subCategoryIndex and subSubCategoryIndex then
filterData = AuctionCategories[categoryIndex].subCategories[subCategoryIndex].subCategories[subSubCategoryIndex].filters;
elseif categoryIndex and subCategoryIndex then
filterData = AuctionCategories[categoryIndex].subCategories[subCategoryIndex].filters;
elseif categoryIndex then
filterData = AuctionCategories[categoryIndex].filters;
else
-- not filtering by category, leave nil for all
        end
== Examples ==
== Examples ==
  QueryAuctionItems("", 10, 19, 0, 2, 0, 0, 0, 3, 0)
  QueryAuctionItems("", 10, 19, 0, nil, false, false, nil)


=== Result ===
=== Result ===
Line 61: Line 48:
:also, the First page is page (0) zero
:also, the First page is page (0) zero


  /script QueryAuctionItems("Nobles", 0, 0, 0, 0, 0, 0, 0, 0, 0)
  /script QueryAuctionItems("Nobles", 0, 0, 0, nil, false, false, nil)


=== Result ===
=== Result ===
Line 68: Line 55:


== Notes ==
== Notes ==
:;If name is longer than 63 bytes, you'll be disconnected from the server.
;If name is longer than 63 bytes, you'll be disconnected from the server.
:;invTypeIndex does not appear to work for values past 14.
:;If any of the entered arguments is of the wrong type, the search assumes a nil value.
:;If any of the entered arguments is of the wrong type, the search assumes a nil value.

Revision as of 18:54, 24 July 2016

WoW API < QueryAuctionItems

Will return information about items in the auction house. There must be a delay of about 0.3 second between regular queries and 15 minutes between getall queries. Use CanSendAuctionQuery() to determine if a query can be done.

QueryAuctionItems("name", minLevel, maxLevel, page,
  isUsable, qualityIndex, getAll, exactMatch, filterData
)

Arguments

(string type, integer type, integer type, integer type, boolean type, integer type, integer type, integer type, integer type, boolean type)
name
A part of the item's name (or the complete name) or "" for no retrenchment. Must be 63 bytes or less.
minLevel
Items below this level won't be returned. Either a number or nil for no restrictions.
maxLevel
Items above this level won't be returned. Either a number or nil for no restrictions.
page
What page in the auctionhouse this shows up. Note that pages start at 0.
isUsable
Is useable by the player (1 = true, 0 = no restrictions)
qualityIndex
Can be one of the following values
0 - No restriction
1 - Common Quality (white) or better
2 - Uncommon Quality (green) or better
3 - Rare Quality (blue) or better
4 - Epic Quality (purple) or better
getAll
Download the ENTIRE auction house as one single page. Only allowed when CanSendAuctionQuery() returns true as its second return (~every 15 minutes). May disconnect people with low bandwidth. Also see notes on client-to-server traffic in GetAuctionItemInfo() (Added in 2.3, though initially disabled. Appears to be enabled as of 2.4)


exactMatch
Should the name be used as an exact match or should it match substrings of the auction items.
filterData
The old invtypeIndex, classIndex, and subclassIndex roled into one.: This is the code that builds the filter value(s) for filterData:
local filterData;
	if categoryIndex and subCategoryIndex and subSubCategoryIndex then
		filterData = AuctionCategories[categoryIndex].subCategories[subCategoryIndex].subCategories[subSubCategoryIndex].filters;
	elseif categoryIndex and subCategoryIndex then
		filterData = AuctionCategories[categoryIndex].subCategories[subCategoryIndex].filters;
	elseif categoryIndex then
		filterData = AuctionCategories[categoryIndex].filters;
	else
		-- not filtering by category, leave nil for all
        end

Examples

QueryAuctionItems("", 10, 19, 0, nil, false, false, nil)

Result

Finds twink gear! (blue armor between lvl 10 and 19)
also, the First page is page (0) zero
/script QueryAuctionItems("Nobles", 0, 0, 0, nil, false, false, nil)

Result

Finds anything on the AH with the word 'Nobles' in it. Useful for hunting down that elusive last and final Darkmoon Card. :)
Hint: AH window has to be open before you click the macro.

Notes

If name is longer than 63 bytes, you'll be disconnected from the server.
If any of the entered arguments is of the wrong type, the search assumes a nil value.