From 77c6c99be710a00210d5584650af1b3f0e886f50 Mon Sep 17 00:00:00 2001 From: cohenaj194 Date: Fri, 21 Jun 2024 22:03:49 -0400 Subject: [PATCH 01/23] fix marketshare order --- app/routes/wow.marketshare.recommended.tsx | 24 +++++++++++----------- 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/app/routes/wow.marketshare.recommended.tsx b/app/routes/wow.marketshare.recommended.tsx index 33ee3af5..91f505dd 100644 --- a/app/routes/wow.marketshare.recommended.tsx +++ b/app/routes/wow.marketshare.recommended.tsx @@ -88,17 +88,17 @@ const recommendedQueries = [ href: searchParams.legacy }, { - name: 'Default Single Realm', - description: 'See what items make the most gold on your realm.', + name: 'High Value Sales Single Realm', + description: 'Find items that have a high sales price on your realm.', Icon: DocumentSearchIcon, - href: searchParams.defaultSingleRealm + href: searchParams.valueSalesSingleRealm }, { - name: 'Default Commodity Realm', + name: 'High Value Commodities', description: - 'See what items make the most gold on your region wide commodity market.', + 'Identify commodities that have a high sales price on the region-wide market.', Icon: DocumentSearchIcon, - href: searchParams.defaultCommodity + href: searchParams.valueCommodities }, { name: 'Fast Sales Single Realm', @@ -114,17 +114,17 @@ const recommendedQueries = [ href: searchParams.fastCommodities }, { - name: 'High Value Sales Single Realm', - description: 'Find items that have a high sales price on your realm.', + name: 'Default Single Realm', + description: 'See what items make the most gold on your realm.', Icon: DocumentSearchIcon, - href: searchParams.valueSalesSingleRealm + href: searchParams.defaultSingleRealm }, { - name: 'High Value Commodities', + name: 'Default Commodity Realm', description: - 'Identify commodities that have a high sales price on the region-wide market.', + 'See what items make the most gold on your region wide commodity market.', Icon: DocumentSearchIcon, - href: searchParams.valueCommodities + href: searchParams.defaultCommodity }, { name: 'Toys', From cefd75a5ad748ce178e6d3d1322544f4221d9130 Mon Sep 17 00:00:00 2001 From: cohenaj194 Date: Fri, 21 Jun 2024 22:27:02 -0400 Subject: [PATCH 02/23] split off experimental tools --- app/components/navigation/sidebar/Sidebar.tsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/app/components/navigation/sidebar/Sidebar.tsx b/app/components/navigation/sidebar/Sidebar.tsx index a653cbf8..ddb39963 100644 --- a/app/components/navigation/sidebar/Sidebar.tsx +++ b/app/components/navigation/sidebar/Sidebar.tsx @@ -263,7 +263,12 @@ const navGroups: Array<{ name: 'Pet Marketshare Overview', href: '/wow/pet-marketshare', icon: ChartSquareBarIcon - }, + } + ] + }, + { + title: 'WoW Experimental Tools', + links: [ { name: 'Server Transfer Trading Search', href: '/wow/full-scan', From b314cea2c921577d0c79d60ba492dd6a865f680e Mon Sep 17 00:00:00 2001 From: cohenaj194 Date: Sat, 22 Jun 2024 09:55:23 -0400 Subject: [PATCH 03/23] fix guide links --- app/components/navigation/sidebar/Sidebar.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/components/navigation/sidebar/Sidebar.tsx b/app/components/navigation/sidebar/Sidebar.tsx index ddb39963..8465e502 100644 --- a/app/components/navigation/sidebar/Sidebar.tsx +++ b/app/components/navigation/sidebar/Sidebar.tsx @@ -118,7 +118,7 @@ const navGroups: Array<{ links: [ { name: 'Guides and Tutorials', - href: 'https://github.com/ff14-advanced-market-search/saddlebag-with-pockets/wiki#game-guides', + href: 'https://github.com/ff14-advanced-market-search/saddlebag-with-pockets/wiki#game-guides#ffxiv', icon: DocumentSearchIcon, external: true }, @@ -197,7 +197,7 @@ const navGroups: Array<{ links: [ { name: 'Guides and Tutorials', - href: 'https://github.com/ff14-advanced-market-search/saddlebag-with-pockets/wiki#game-guides', + href: 'https://github.com/ff14-advanced-market-search/saddlebag-with-pockets/wiki#wow', icon: DocumentSearchIcon, external: true }, From 9c6c62ae6b96b72491f265314497438bdc601287 Mon Sep 17 00:00:00 2001 From: cohenaj194 Date: Sat, 22 Jun 2024 09:59:05 -0400 Subject: [PATCH 04/23] fix guide links --- app/components/navigation/sidebar/Sidebar.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/components/navigation/sidebar/Sidebar.tsx b/app/components/navigation/sidebar/Sidebar.tsx index 8465e502..e42ff78a 100644 --- a/app/components/navigation/sidebar/Sidebar.tsx +++ b/app/components/navigation/sidebar/Sidebar.tsx @@ -118,7 +118,7 @@ const navGroups: Array<{ links: [ { name: 'Guides and Tutorials', - href: 'https://github.com/ff14-advanced-market-search/saddlebag-with-pockets/wiki#game-guides#ffxiv', + href: 'https://github.com/ff14-advanced-market-search/saddlebag-with-pockets/wiki#ffxiv-alert-guides', icon: DocumentSearchIcon, external: true }, @@ -197,7 +197,7 @@ const navGroups: Array<{ links: [ { name: 'Guides and Tutorials', - href: 'https://github.com/ff14-advanced-market-search/saddlebag-with-pockets/wiki#wow', + href: 'https://github.com/ff14-advanced-market-search/saddlebag-with-pockets/wiki#wow-general-guides', icon: DocumentSearchIcon, external: true }, From c33a052f46c695c94243871f044c699c4d36b7b0 Mon Sep 17 00:00:00 2001 From: cohenaj194 Date: Sat, 22 Jun 2024 10:38:28 -0400 Subject: [PATCH 05/23] more keywords --- app/routes/_public._index.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/routes/_public._index.tsx b/app/routes/_public._index.tsx index 2a046754..0e315b9f 100644 --- a/app/routes/_public._index.tsx +++ b/app/routes/_public._index.tsx @@ -297,7 +297,8 @@ export default function Index() { character search, final fantasy xiv sale, universalis ffxiv, choco bo, xiv server status, final fantasy 14 online server status, marketboard ffxiv, final fantasy 14 market board, ff14 - maintenance, ffxiv server status. + maintenance, ffxiv server status, ffxiah, green hills of + stranglethorn, ff14 hairstyles, loque'nahak.

From 616681530780b4d36426ccf33137d204b2160070 Mon Sep 17 00:00:00 2001 From: cohenaj194 Date: Sat, 22 Jun 2024 10:43:39 -0400 Subject: [PATCH 06/23] update sitemap --- app/routes/[sitemap.xml].tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/routes/[sitemap.xml].tsx b/app/routes/[sitemap.xml].tsx index 1cc391a6..4511cda5 100644 --- a/app/routes/[sitemap.xml].tsx +++ b/app/routes/[sitemap.xml].tsx @@ -33,7 +33,7 @@ export const loader: LoaderFunction = async () => { https://saddlebagexchange.com/ - 2024-05-07T00:27:48+00:00 + 2024-06-21T00:27:48+00:00 1.00 From 925b58509cd9a0fb81c9c37aa94cefdad44b75ee Mon Sep 17 00:00:00 2001 From: cohenaj194 Date: Sat, 22 Jun 2024 10:44:28 -0400 Subject: [PATCH 07/23] update sitemap --- app/routes/[sitemap.xml].tsx | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/routes/[sitemap.xml].tsx b/app/routes/[sitemap.xml].tsx index 4511cda5..42d4b3e5 100644 --- a/app/routes/[sitemap.xml].tsx +++ b/app/routes/[sitemap.xml].tsx @@ -126,6 +126,11 @@ export const loader: LoaderFunction = async () => { 2024-05-07T00:27:48+00:00 0.80 + + https://saddlebagexchange.com/wow/marketshare/recommended + 2024-06-21T00:27:48+00:00 + 0.80 + https://saddlebagexchange.com/wow/shortage-predictor 2024-05-07T00:27:48+00:00 From a817edfe6f668d90e0aef6b0944a620c592aa627 Mon Sep 17 00:00:00 2001 From: cohenaj194 Date: Sat, 22 Jun 2024 10:47:30 -0400 Subject: [PATCH 08/23] add more keywords --- app/routes/_public._index.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/routes/_public._index.tsx b/app/routes/_public._index.tsx index 0e315b9f..6b40b089 100644 --- a/app/routes/_public._index.tsx +++ b/app/routes/_public._index.tsx @@ -298,7 +298,7 @@ export default function Index() { bo, xiv server status, final fantasy 14 online server status, marketboard ffxiv, final fantasy 14 market board, ff14 maintenance, ffxiv server status, ffxiah, green hills of - stranglethorn, ff14 hairstyles, loque'nahak. + stranglethorn, ff14 hairstyles, loque'nahak, housing lottery.

From 55343f2c62a40e975c268bfbfd9c3fcc8850d45a Mon Sep 17 00:00:00 2001 From: cohenaj194 Date: Sat, 22 Jun 2024 10:51:40 -0400 Subject: [PATCH 09/23] test --- app/routes/queries._index.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/routes/queries._index.tsx b/app/routes/queries._index.tsx index 205390d5..e86a2de3 100644 --- a/app/routes/queries._index.tsx +++ b/app/routes/queries._index.tsx @@ -12,8 +12,8 @@ export const meta: MetaFunction = () => { return { charset: 'utf-8', viewport: 'width=device-width,initial-scale=1', - title: 'Saddlebag Exchange: FFXIV tools', - description: 'Saddlebag Exchange: FFXIV tools' + title: 'Saddlebag Exchange: FFXIV tools ffxiah', + description: 'Saddlebag Exchange: FFXIV tools ffxiah' } } @@ -149,7 +149,7 @@ export default function Index() { board, ffxiv patch notes, final fantasy 14 reddit, ffxiv fanfest, ffxiv msq list, ffxiv character search, ffxiv fafnir, universalis ffxiv, ffxiv maintenance jan 15, ffxiv relic weapons, r ffxiv, relic - weapons ffxiv, character search ffxiv + weapons ffxiv, character search ffxiv, ffxiah

From 535de29e6ebc058a7d59f43809607bfe6754c8f3 Mon Sep 17 00:00:00 2001 From: cohenaj194 Date: Sat, 22 Jun 2024 13:29:52 -0400 Subject: [PATCH 10/23] fix AAA link --- app/components/navigation/sidebar/Sidebar.tsx | 2 +- app/routes/wow._index.tsx | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/components/navigation/sidebar/Sidebar.tsx b/app/components/navigation/sidebar/Sidebar.tsx index e42ff78a..530b2081 100644 --- a/app/components/navigation/sidebar/Sidebar.tsx +++ b/app/components/navigation/sidebar/Sidebar.tsx @@ -203,7 +203,7 @@ const navGroups: Array<{ }, { name: 'Azeroth Auction Assassin Sniper', - href: 'https://github.com/ff14-advanced-market-search/AzerothAuctionAssassin/releases/latest', + href: 'https://github.com/ff14-advanced-market-search/AzerothAuctionAssassin/blob/main/README.md', icon: DocumentSearchIcon, external: true }, diff --git a/app/routes/wow._index.tsx b/app/routes/wow._index.tsx index a984ad85..8c6be3ef 100644 --- a/app/routes/wow._index.tsx +++ b/app/routes/wow._index.tsx @@ -39,7 +39,7 @@ const recommendedQueries = [ description: 'Try our standalone Azeroth Auction Assassin Sniper, designed to snipe across all realms for the best deals seconds after the Blizzard AH API updates so you get there first!', Icon: DocumentSearchIcon, - href: 'https://github.com/ff14-advanced-market-search/AzerothAuctionAssassin/releases/latest', + href: 'https://github.com/ff14-advanced-market-search/AzerothAuctionAssassin/blob/main/README.md', external: true }, { From a939e886c62775c0790e2c45700e6b28de4536c9 Mon Sep 17 00:00:00 2001 From: cohenaj194 Date: Mon, 24 Jun 2024 09:51:28 -0400 Subject: [PATCH 11/23] more keywords --- app/routes/_public._index.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/routes/_public._index.tsx b/app/routes/_public._index.tsx index 6b40b089..20764f42 100644 --- a/app/routes/_public._index.tsx +++ b/app/routes/_public._index.tsx @@ -298,7 +298,8 @@ export default function Index() { bo, xiv server status, final fantasy 14 online server status, marketboard ffxiv, final fantasy 14 market board, ff14 maintenance, ffxiv server status, ffxiah, green hills of - stranglethorn, ff14 hairstyles, loque'nahak, housing lottery. + stranglethorn, ff14 hairstyles, loque'nahak, housing lottery, + ffxiv auction house tracker.

From b345bef5d77c3b6c00a6e67bd473603142958e78 Mon Sep 17 00:00:00 2001 From: cohenaj194 Date: Wed, 26 Jun 2024 09:39:27 -0400 Subject: [PATCH 12/23] fix region undercut --- app/routes/wow.region-undercut.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/app/routes/wow.region-undercut.tsx b/app/routes/wow.region-undercut.tsx index e7713099..2ef28102 100644 --- a/app/routes/wow.region-undercut.tsx +++ b/app/routes/wow.region-undercut.tsx @@ -49,7 +49,7 @@ const itemAuction = z.object({ const validateInput = z.array( z.object({ - homeRealmName: z.string(), + homeRealmName: z.union([z.string(), z.number()]), // Accepts both string and number region: z.string(), user_auctions: z.array(z.union([petAuction, itemAuction])) }) @@ -67,7 +67,9 @@ export const action: ActionFunction = async ({ request }) => { try { const parsedInput = JSON.parse(input) + // console.log(parsedInput) const validInput = validateInput.safeParse(parsedInput) + // console.log(validInput) if (!validInput.success) { throw new Error('Invalid input') From 6caad87d79641e14f57197146acc999efa4e08f4 Mon Sep 17 00:00:00 2001 From: cohenaj194 Date: Sat, 29 Jun 2024 00:51:50 -0400 Subject: [PATCH 13/23] add new items --- app/utils/items/ffxivItems.ts | 1021 ++++++++++++++++++++++++++++++++- app/utils/items/wowItems.ts | 2 + 2 files changed, 1019 insertions(+), 4 deletions(-) diff --git a/app/utils/items/ffxivItems.ts b/app/utils/items/ffxivItems.ts index ff8fb8ca..2b425528 100644 --- a/app/utils/items/ffxivItems.ts +++ b/app/utils/items/ffxivItems.ts @@ -12728,7 +12728,7 @@ export const ffxivItemsMap: Record = { '35435': 'AR-Caean Velvet Work Shirt of Crafting', '35436': 'Ophiotauroskin Halfgloves of Crafting', '35437': 'AR-Caean Velvet Hose of Crafting', - '35438': 'Ophiotauroskin Work Boots of Crafting', + '35438': 'Ophiotauroskin Workboots of Crafting', '35439': "AR-Caean Velvet Trapper's Hat of Gathering", '35440': 'AR-Caean Velvet Jacket of Gathering', '35441': 'Ophiotauroskin Halfgloves of Gathering', @@ -13543,7 +13543,6 @@ export const ffxivItemsMap: Record = { '37441': 'Faded Copy of The Final Day', '37484': 'White Lace Parasol', '37485': 'Blue Blossom Parasol', - '37487': 'False Classic Spectacles', '37488': 'Exciting Fiber', '37489': 'Deep-sea Marble', '37490': 'Driftseeds', @@ -14173,7 +14172,6 @@ export const ffxivItemsMap: Record = { '39915': 'Uncharted Course Hardware', '39916': 'Uncharted Course Resin', '40363': 'Ballroom Etiquette - Scrupulous Citations', - '40364': 'Rose-colored Spectacles', '40365': 'Tsukumogami Parasol', '40367': 'Voidcast Barding', '40369': 'Puffin', @@ -14404,6 +14402,7 @@ export const ffxivItemsMap: Record = { '41087': 'Crystarium Wall Canopy', '41088': 'Nursery Canopy', '41089': 'Ronkan Fireplace', + '41090': 'Tomestool', '41091': 'Magazine Display Rack', '41092': 'Celestial Screen', '41094': 'Imitation Trapdoor', @@ -14417,13 +14416,18 @@ export const ffxivItemsMap: Record = { '41106': 'Korpokkur Moss Ball', '41107': 'Sealing Wax & Letter Set', '41108': 'Bubbly Mogfloat', + '41109': 'Royal Leather Sofa', + '41110': 'Wall Cabinet', '41111': 'Field of Hope Rug', '41113': 'Colossal Chronometer Window', '41138': 'Mobile Garden Stairs', '41139': 'Flower-wreathed Gazebo', '41142': 'Wildflower Bed', + '41143': 'Bluecap Mushroom Lamp', '41144': 'Imitation Magitek Repair Station (Wall Unit)', '41145': 'Labyrinthos Grape Lamppost', + '41146': 'Hingan Rock Garden', + '41147': 'Sharlayan Reflecting Pool', '41160': 'Lupin Seeds', '41161': 'Red Lupins', '41162': 'Blue Lupins', @@ -14536,5 +14540,1014 @@ export const ffxivItemsMap: Record = { '41663': 'O Hunter, Rejoice Orchestrion Roll', '41664': 'Pennons Aloft Orchestrion Roll', '41665': 'From Fear to Fortitude Orchestrion Roll', - '41709': 'Vegetal Voucher' + '41709': 'Vegetal Voucher', + '41757': 'Piety Materia XI', + '41758': "Heavens' Eye Materia XI", + '41759': 'Savage Aim Materia XI', + '41760': 'Savage Might Materia XI', + '41761': 'Battledance Materia XI', + '41762': "Gatherer's Guerdon Materia XI", + '41763': "Gatherer's Guile Materia XI", + '41764': "Gatherer's Grasp Materia XI", + '41765': "Craftsman's Competence Materia XI", + '41766': "Craftsman's Cunning Materia XI", + '41767': "Craftsman's Command Materia XI", + '41768': 'Quickarm Materia XI', + '41769': 'Quicktongue Materia XI', + '41770': 'Piety Materia XII', + '41771': "Heavens' Eye Materia XII", + '41772': 'Savage Aim Materia XII', + '41773': 'Savage Might Materia XII', + '41774': 'Battledance Materia XII', + '41775': "Gatherer's Guerdon Materia XII", + '41776': "Gatherer's Guile Materia XII", + '41777': "Gatherer's Grasp Materia XII", + '41778': "Craftsman's Competence Materia XII", + '41779': "Craftsman's Cunning Materia XII", + '41780': "Craftsman's Command Materia XII", + '41781': 'Quickarm Materia XII', + '41782': 'Quicktongue Materia XII', + '41790': 'Hrothgar Vest', + '41791': 'Hrothgar Vambraces', + '41792': 'Hrothgar Tights', + '41793': 'Hrothgar Caligae', + '41806': 'High-density Fiberboard', + '41807': 'Rroneek Horn Token', + '41810': 'Country Cottage Wall', + '41811': 'Country House Wall', + '41812': 'Country Mansion Wall', + '41814': 'Skyruin Trophy', + '41815': 'Resilient Sword Stand', + '41816': 'Kitchen Cabinet', + '41817': 'Slovenly Chair', + '41818': 'Stuffed Axolotl Eft', + '41819': 'Stuffed Flag', + '41820': 'Fluffy-wuffy Stuffed Drippy', + '41821': 'Stuffed Punutiy', + '41823': 'Sunset Phasmascape', + '41829': 'Twintop Table', + '41830': 'Mug of Cocoa', + '41831': 'Everkeep Striking Dummy', + '41832': 'Stargazing Deck', + '41833': 'Wooden Garden Gate', + '41834': 'Ruinous Plume', + '41835': 'Resilient Armor', + '41836': 'Mountain Chromite Kilij', + '41837': 'Mountain Chromite Fists', + '41838': 'Mountain Chromite Battleaxe', + '41839': 'Lar Glaive', + '41840': 'Lar Longbow', + '41841': 'Lar Cane', + '41842': 'Lar Rod', + '41843': 'Loboskin Grimoire', + '41844': 'Loboskin Codex', + '41845': 'Mountain Chromite Daggers', + '41846': 'Mountain Chromite Guillotine', + '41847': 'Mountain Chromite Musketoon', + '41848': 'Lar Star Globe', + '41849': 'Mountain Chromite Blade', + '41850': 'Lar Rapier', + '41851': 'Mountain Chromite Bayonet', + '41852': 'Mountain Chromite Chakrams', + '41853': 'Mountain Chromite War Scythe', + '41854': 'Lar Pendulums', + '41855': 'Mountain Chromite Twinfangs', + '41856': 'Ginseng Angle Brush', + '41857': 'Mountain Chromite Tower Shield', + '41858': 'Lar Headgear of Fending', + '41859': 'Loboskin Coat of Fending', + '41860': 'Loboskin Fingerless Gloves of Fending', + '41861': 'Snow Cotton Bottoms of Fending', + '41862': 'Loboskin Caligae of Fending', + '41863': 'Lar Headgear of Maiming', + '41864': 'Loboskin Coat of Maiming', + '41865': 'Loboskin Fingerless Gloves of Maiming', + '41866': 'Snow Cotton Bottoms of Maiming', + '41867': 'Loboskin Caligae of Maiming', + '41868': 'Snow Cotton Headband of Striking', + '41869': 'Snow Cotton Jacket of Striking', + '41870': 'Loboskin Fingerless Gloves of Striking', + '41871': 'Snow Cotton Bottoms of Striking', + '41872': 'Loboskin Caligae of Striking', + '41873': 'Snow Cotton Ushanka of Aiming', + '41874': 'Snow Cotton Coat of Aiming', + '41875': 'Loboskin Fingerless Gloves of Aiming', + '41876': 'Snow Cotton Skirt of Aiming', + '41877': 'Loboskin Caligae of Aiming', + '41878': 'Snow Cotton Ushanka of Scouting', + '41879': 'Snow Cotton Tunic of Scouting', + '41880': 'Loboskin Fingerless Gloves of Scouting', + '41881': 'Snow Cotton Bottoms of Scouting', + '41882': 'Loboskin Sandals of Scouting', + '41883': 'Snow Cotton Muffed Met of Healing', + '41884': 'Snow Cotton Tunic of Healing', + '41885': 'Loboskin Fingerless Gloves of Healing', + '41886': 'Snow Cotton Bottoms of Healing', + '41887': 'Loboskin Sandals of Healing', + '41888': 'Snow Cotton Muffed Met of Casting', + '41889': 'Snow Cotton Coat of Casting', + '41890': 'Loboskin Fingerless Gloves of Casting', + '41891': 'Snow Cotton Skirt of Casting', + '41892': 'Loboskin Caligae of Casting', + '41893': 'Ginseng Earring of Fending', + '41894': 'Ginseng Earring of Slaying', + '41895': 'Ginseng Earring of Aiming', + '41896': 'Ginseng Earring of Healing', + '41897': 'Ginseng Earring of Casting', + '41898': 'Loboskin Necklace of Fending', + '41899': 'Loboskin Necklace of Slaying', + '41900': 'Loboskin Necklace of Aiming', + '41901': 'Loboskin Necklace of Healing', + '41902': 'Loboskin Necklace of Casting', + '41903': 'Loboskin Amulet of Fending', + '41904': 'Loboskin Amulet of Slaying', + '41905': 'Loboskin Amulet of Aiming', + '41906': 'Loboskin Amulet of Healing', + '41907': 'Loboskin Amulet of Casting', + '41908': 'Lar Ring of Fending', + '41909': 'Lar Ring of Slaying', + '41910': 'Lar Ring of Aiming', + '41911': 'Lar Ring of Healing', + '41912': 'Lar Ring of Casting', + '41990': 'Ruthenium Scimitar', + '41991': 'Ruthenium Tonfas', + '41992': 'Ruthenium War Axe', + '41993': 'Ceiba Spear', + '41994': 'Ceiba Longbow', + '41995': 'Ceiba Crook', + '41996': 'Ceiba Staff', + '41997': 'Crocodileskin Index', + '41998': 'Crocodileskin Codex', + '41999': 'Ruthenium Knives', + '42000': 'Ruthenium Greatsword', + '42001': 'Ruthenium-barreled Musketoon', + '42002': 'Ruthenium Torquetum', + '42003': 'Ruthenium Blade', + '42004': 'Ruthenium Tuck', + '42005': 'Ruthenium Gunblade', + '42006': 'Ruthenium Folding Fans', + '42007': 'Ruthenium War Scythe', + '42008': 'Ceiba Wings', + '42009': 'Ruthenium Twinfangs', + '42010': 'Ceiba Round Brush', + '42011': 'Ruthenium Kite Shield', + '42012': 'Ihuykanite Circlet of Fending', + '42013': 'Ruthenium Lorica of Fending', + '42014': 'Ruthenium Vambraces of Fending', + '42015': 'Mountain Linen Hose of Fending', + '42016': 'Ruthenium Sabatons of Fending', + '42017': 'Ihuykanite Circlet of Maiming', + '42018': 'Ruthenium Lorica of Maiming', + '42019': 'Ruthenium Vambraces of Maiming', + '42020': 'Mountain Linen Hose of Maiming', + '42021': 'Ruthenium Sabatons of Maiming', + '42022': 'Mountain Linen Bandana of Striking', + '42023': 'Mountain Linen Top of Striking', + '42024': 'Crocodileskin Fingerless Gloves of Striking', + '42025': 'Crocodileskin Breeches of Striking', + '42026': 'Crocodileskin Leg Wraps of Striking', + '42027': 'Mountain Linen Field Dressing of Aiming', + '42028': 'Mountain Linen Cloak of Aiming', + '42029': 'Crocodileskin Armguards of Aiming', + '42030': 'Mountain Linen Longkilt of Aiming', + '42031': 'Crocodileskin Thighboots of Aiming', + '42032': 'Mountain Linen Bandana of Scouting', + '42033': 'Mountain Linen Top of Scouting', + '42034': 'Crocodileskin Fingerless Gloves of Scouting', + '42035': 'Crocodileskin Breeches of Scouting', + '42036': 'Crocodileskin Leg Wraps of Scouting', + '42037': 'Mountain Linen Hat of Healing', + '42038': 'Mountain Linen Cloak of Healing', + '42039': 'Crocodileskin Armguards of Healing', + '42040': 'Mountain Linen Longkilt of Healing', + '42041': 'Crocodileskin Thighboots of Healing', + '42042': 'Mountain Linen Hat of Casting', + '42043': 'Mountain Linen Cloak of Casting', + '42044': 'Crocodileskin Armguards of Casting', + '42045': 'Mountain Linen Longkilt of Casting', + '42046': 'Crocodileskin Thighboots of Casting', + '42047': 'Ihuykanite Earring of Fending', + '42048': 'Ihuykanite Earring of Slaying', + '42049': 'Ihuykanite Earring of Aiming', + '42050': 'Ihuykanite Earring of Healing', + '42051': 'Ihuykanite Earring of Casting', + '42052': 'Ihuykanite Choker of Fending', + '42053': 'Ihuykanite Choker of Slaying', + '42054': 'Ihuykanite Choker of Aiming', + '42055': 'Ihuykanite Choker of Healing', + '42056': 'Ihuykanite Choker of Casting', + '42057': 'Ihuykanite Bracelet of Fending', + '42058': 'Ihuykanite Bracelet of Slaying', + '42059': 'Ihuykanite Bracelet of Aiming', + '42060': 'Ihuykanite Bracelet of Healing', + '42061': 'Ihuykanite Bracelet of Casting', + '42062': 'Ihuykanite Ring of Fending', + '42063': 'Ihuykanite Ring of Slaying', + '42064': 'Ihuykanite Ring of Aiming', + '42065': 'Ihuykanite Ring of Healing', + '42066': 'Ihuykanite Ring of Casting', + '42144': 'Cobalt Tungsten Scimitar', + '42145': 'Cobalt Tungsten Knuckles', + '42146': 'Cobalt Tungsten Axe', + '42147': 'Dark Mahogany Spear', + '42148': 'Dark Mahogany Longbow', + '42149': 'Dark Mahogany Cane', + '42150': 'Dark Mahogany Rod', + '42151': "Br'aaxskin Grimoire", + '42152': "Br'aaxskin Codex", + '42153': 'Cobalt Tungsten Khukuri', + '42154': 'Cobalt Tungsten Guillotine', + '42155': 'Cobalt Tungsten Handgonne', + '42156': 'Cobalt Tungsten Planisphere', + '42157': 'Cobalt Tungsten Blade', + '42158': 'Cobalt Tungsten Tuck', + '42159': 'Cobalt Tungsten Sawback', + '42160': 'Cobalt Tungsten Glaives', + '42161': 'Cobalt Tungsten War Scythe', + '42162': 'Cobalt Tungsten Pendulums', + '42163': 'Cobalt Tungsten Diamondbacks', + '42164': 'Dark Mahogany Round Brush', + '42165': 'Cobalt Tungsten Kite Shield', + '42166': "Br'aaxskin Headband of Fending", + '42167': 'Cobalt Tungsten Vest of Fending', + '42168': "Br'aaxskin Armlets of Fending", + '42169': 'Sarcenet Kecks of Fending', + '42170': "Br'aaxskin Thighboots of Fending", + '42171': "Br'aaxskin Headband of Maiming", + '42172': 'Cobalt Tungsten Vest of Maiming', + '42173': "Br'aaxskin Armlets of Maiming", + '42174': 'Sarcenet Kecks of Maiming', + '42175': "Br'aaxskin Thighboots of Maiming", + '42176': "Br'aaxskin Headband of Striking", + '42177': 'Sarcenet Chestwrap of Striking', + '42178': "Br'aaxskin Armlets of Striking", + '42179': 'Sarcenet Slops of Striking', + '42180': "Br'aaxskin Sandals of Striking", + '42181': "Br'aaxskin Headband of Aiming", + '42182': 'Sarcenet Chestwrap of Aiming', + '42183': "Br'aaxskin Armlets of Aiming", + '42184': 'Sarcenet Slops of Aiming', + '42185': "Br'aaxskin Sandals of Aiming", + '42186': 'Sarcenet Headband of Scouting', + '42187': 'Sarcenet Chestwrap of Scouting', + '42188': "Br'aaxskin Armlets of Scouting", + '42189': 'Sarcenet Slops of Scouting', + '42190': "Br'aaxskin Sandals of Scouting", + '42191': "Br'aaxskin Headband of Healing", + '42192': 'Sarcenet Chestwrap of Healing', + '42193': 'Pink Beryl Halfgloves of Healing', + '42194': 'Sarcenet Slops of Healing', + '42195': "Br'aaxskin Sandals of Healing", + '42196': "Br'aaxskin Headband of Casting", + '42197': 'Sarcenet Chestwrap of Casting', + '42198': 'Pink Beryl Halfgloves of Casting', + '42199': 'Sarcenet Slops of Casting', + '42200': "Br'aaxskin Sandals of Casting", + '42201': 'Pink Beryl Earrings of Fending', + '42202': 'Pink Beryl Earrings of Slaying', + '42203': 'Pink Beryl Earrings of Aiming', + '42204': 'Pink Beryl Earrings of Healing', + '42205': 'Pink Beryl Earrings of Casting', + '42206': 'Dark Mahogany Necklace of Fending', + '42207': 'Dark Mahogany Necklace of Slaying', + '42208': 'Dark Mahogany Necklace of Aiming', + '42209': 'Dark Mahogany Necklace of Healing', + '42210': 'Dark Mahogany Necklace of Casting', + '42211': 'Pink Beryl Bracelet of Fending', + '42212': 'Pink Beryl Bracelet of Slaying', + '42213': 'Pink Beryl Bracelet of Aiming', + '42214': 'Pink Beryl Bracelet of Healing', + '42215': 'Pink Beryl Bracelet of Casting', + '42216': 'Pink Beryl Ring of Fending', + '42217': 'Pink Beryl Ring of Slaying', + '42218': 'Pink Beryl Ring of Aiming', + '42219': 'Pink Beryl Ring of Healing', + '42220': 'Pink Beryl Ring of Casting', + '42298': 'Titanium Gold Falchion', + '42299': 'Titanium Gold Claws', + '42300': 'Titanium Gold Battleaxe', + '42301': 'Acacia Fork', + '42302': 'Acacia Longbow', + '42303': 'Acacia Signum', + '42304': 'Acacia Rod', + '42305': 'Gomphotherium Grimoire', + '42306': 'Gomphotherium Codex', + '42307': 'Titanium Gold Knives', + '42308': 'Titanium Gold Greatsword', + '42309': 'Titanium Gold Pistol', + '42310': 'White Gold Astrometer', + '42311': 'Titanium Gold Blade', + '42312': 'White Gold Foil', + '42313': 'Titanium Gold Gunblade', + '42314': 'Titanium Gold War Quoits', + '42315': 'Titanium Gold Sickle', + '42316': 'White Gold Syrinxi', + '42317': 'Titanium Gold Saberfangs', + '42318': 'Acacia Round Brush', + '42319': 'Titanium Gold Shield', + '42320': 'Titanium Gold Helm of Fending', + '42321': 'Titanium Gold Thornplate of Fending', + '42322': 'Titanium Gold Spiked Gloves of Fending', + '42323': 'Gomphotherium Trousers of Fending', + '42324': 'Titanium Gold Leg Wraps of Fending', + '42325': 'White Gold Halfmask of Maiming', + '42326': 'Titanium Gold Thornplate of Maiming', + '42327': 'Titanium Gold Spiked Gloves of Maiming', + '42328': 'Gomphotherium Trousers of Maiming', + '42329': 'Titanium Gold Leg Wraps of Maiming', + '42330': 'Titanium Gold Helm of Striking', + '42331': 'Gomphotherium Thorned Harness of Striking', + '42332': 'Titanium Gold Spiked Gloves of Striking', + '42333': 'Gomphotherium Brais of Striking', + '42334': 'Gomphotherium Boots of Striking', + '42335': 'White Gold Mask of Aiming', + '42336': 'Gomphotherium Thornvest of Aiming', + '42337': 'Rroneek Serge Halfgloves of Aiming', + '42338': 'Gomphotherium Brais of Aiming', + '42339': 'Gomphotherium Boots of Aiming', + '42340': 'White Gold Halfmask of Scouting', + '42341': 'Titanium Gold Thorned Corselet of Scouting', + '42342': 'Titanium Gold Spiked Gloves of Scouting', + '42343': 'Gomphotherium Trousers of Scouting', + '42344': 'Titanium Gold Leg Wraps of Scouting', + '42345': 'White Gold Visor of Healing', + '42346': 'Gomphotherium Thornvest of Healing', + '42347': 'Rroneek Serge Halfgloves of Healing', + '42348': 'Gomphotherium Brais of Healing', + '42349': 'Gomphotherium Boots of Healing', + '42350': 'Titanium Gold Helm of Casting', + '42351': 'Gomphotherium Thornvest of Casting', + '42352': 'Rroneek Serge Halfgloves of Casting', + '42353': 'Gomphotherium Brais of Casting', + '42354': 'Gomphotherium Boots of Casting', + '42355': 'White Gold Earrings of Fending', + '42356': 'White Gold Earrings of Slaying', + '42357': 'White Gold Earrings of Aiming', + '42358': 'White Gold Earrings of Healing', + '42359': 'White Gold Earrings of Casting', + '42360': 'White Gold Choker of Fending', + '42361': 'White Gold Choker of Slaying', + '42362': 'White Gold Choker of Aiming', + '42363': 'White Gold Choker of Healing', + '42364': 'White Gold Choker of Casting', + '42365': 'White Gold Amulet of Fending', + '42366': 'White Gold Amulet of Slaying', + '42367': 'White Gold Amulet of Aiming', + '42368': 'White Gold Amulet of Healing', + '42369': 'White Gold Amulet of Casting', + '42370': 'White Gold Ring of Fending', + '42371': 'White Gold Ring of Slaying', + '42372': 'White Gold Ring of Aiming', + '42373': 'White Gold Ring of Healing', + '42374': 'White Gold Ring of Casting', + '42452': "Ra'Kaznar Katzbalger", + '42453': "Ra'Kaznar Tonfas", + '42454': "Ra'Kaznar Labrys", + '42455': 'Claro Walnut Spear', + '42456': "Ra'Kaznar Bow", + '42457': 'Claro Walnut Cane', + '42458': "Ra'Kaznar Rod", + '42459': "Book of Ra'Kaznar", + '42460': "Word of Ra'Kaznar", + '42461': "Ra'Kaznar Daggers", + '42462': "Ra'Kaznar Greatsword", + '42463': "Ra'Kaznar Blunderbuss", + '42464': "Ra'Kaznar Orrery", + '42465': "Ra'Kaznar Samurai Blade", + '42466': "Ra'Kaznar Hanger", + '42467': "Ra'Kaznar Gunblade", + '42468': "Ra'Kaznar Chakrams", + '42469': "Ra'Kaznar War Scythe", + '42470': "Ra'Kaznar Wings", + '42471': "Ra'Kaznar Twinfangs", + '42472': 'Claro Walnut Flat Brush', + '42473': "Ra'Kaznar Shield", + '42474': "Ra'Kaznar Helm of Fending", + '42475': "Ra'Kaznar Armor of Fending", + '42476': "Ra'Kaznar Gauntlets of Fending", + '42477': 'Gargantuaskin Trousers of Fending', + '42478': "Ra'Kaznar Greaves of Fending", + '42479': "Ra'Kaznar Helm of Maiming", + '42480': "Ra'Kaznar Armor of Maiming", + '42481': "Ra'Kaznar Gauntlets of Maiming", + '42482': 'Gargantuaskin Trousers of Maiming', + '42483': "Ra'Kaznar Greaves of Maiming", + '42484': 'Black Star Headgear of Striking', + '42485': 'Gargantuaskin Jacket of Striking', + '42486': "Ra'Kaznar Armguards of Striking", + '42487': 'Gargantuaskin Trousers of Striking', + '42488': "Ra'Kaznar Greaves of Striking", + '42489': 'Black Star Headgear of Aiming', + '42490': 'Thunderyards Silk Tabard of Aiming', + '42491': "Ra'Kaznar Gloves of Aiming", + '42492': 'Thunderyards Silk Trousers of Aiming', + '42493': "Ra'Kaznar Greaves of Aiming", + '42494': 'Black Star Visor of Scouting', + '42495': 'Thunderyards Silk Tabard of Scouting', + '42496': "Ra'Kaznar Gloves of Scouting", + '42497': 'Thunderyards Silk Trousers of Scouting', + '42498': "Ra'Kaznar Greaves of Scouting", + '42499': 'Black Star Mask of Healing', + '42500': 'Thunderyards Silk Coat of Healing', + '42501': 'Thunderyards Silk Gloves of Healing', + '42502': 'Thunderyards Silk Trousers of Healing', + '42503': 'Gargantuaskin Shoes of Healing', + '42504': 'Black Star Mask of Casting', + '42505': 'Thunderyards Silk Coat of Casting', + '42506': 'Thunderyards Silk Gloves of Casting', + '42507': 'Thunderyards Silk Trousers of Casting', + '42508': 'Gargantuaskin Shoes of Casting', + '42509': 'Black Star Ear Cuff of Fending', + '42510': 'Black Star Ear Cuff of Slaying', + '42511': 'Black Star Ear Cuff of Aiming', + '42512': 'Black Star Ear Cuff of Healing', + '42513': 'Black Star Ear Cuff of Casting', + '42514': 'Black Star Choker of Fending', + '42515': 'Black Star Choker of Slaying', + '42516': 'Black Star Choker of Aiming', + '42517': 'Black Star Choker of Healing', + '42518': 'Black Star Choker of Casting', + '42519': 'Black Star Bracelet of Fending', + '42520': 'Black Star Bracelet of Slaying', + '42521': 'Black Star Bracelet of Aiming', + '42522': 'Black Star Bracelet of Healing', + '42523': 'Black Star Bracelet of Casting', + '42524': 'Black Star Ring of Fending', + '42525': 'Black Star Ring of Slaying', + '42526': 'Black Star Ring of Aiming', + '42527': 'Black Star Ring of Healing', + '42528': 'Black Star Ring of Casting', + '43200': 'Mountain Chromite Saw', + '43201': 'Mountain Chromite Cross-pein Hammer', + '43202': 'Mountain Chromite Raising Hammer', + '43203': 'Mountain Chromite Lapidary Hammer', + '43204': 'Mountain Chromite Creasing Knife', + '43205': 'Lar Needle', + '43206': 'Mountain Chromite Alembic', + '43207': 'Mountain Chromite Frypan', + '43208': 'Mountain Chromite Pickaxe', + '43209': 'Mountain Chromite Hatchet', + '43210': 'Ginseng Fishing Rod', + '43211': 'Mountain Chromite Claw Hammer', + '43212': 'Mountain Chromite File', + '43213': 'Mountain Chromite Pliers', + '43214': 'Ginseng Grinding Wheel', + '43215': 'Mountain Chromite Awl', + '43216': 'Ginseng Spinning Wheel', + '43217': 'Mountain Chromite Mortar', + '43218': 'Mountain Chromite Culinary Knife', + '43219': 'Mountain Chromite Maul', + '43220': 'Mountain Chromite Garden Scythe', + '43221': 'Cobalt Tungsten Saw', + '43222': 'Cobalt Tungsten Cross-pein Hammer', + '43223': 'Cobalt Tungsten Raising Hammer', + '43224': 'Cobalt Tungsten Lapidary Hammer', + '43225': 'Cobalt Tungsten Creasing Knife', + '43226': 'Cobalt Tungsten Needle', + '43227': 'Cobalt Tungsten Alembic', + '43228': 'Cobalt Tungsten Chocobo Frypan', + '43229': 'Cobalt Tungsten Pickaxe', + '43230': 'Cobalt Tungsten Hatchet', + '43231': 'Dark Mahogany Fishing Rod', + '43232': 'Cobalt Tungsten Claw Hammer', + '43233': 'Cobalt Tungsten File', + '43234': 'Cobalt Tungsten Pliers', + '43235': 'Dark Mahogany Grinding Wheel', + '43236': 'Cobalt Tungsten Awl', + '43237': 'Dark Mahogany Spinning Wheel', + '43238': 'Cobalt Tungsten Mortar', + '43239': 'Cobalt Tungsten Culinary Knife', + '43240': 'Cobalt Tungsten Maul', + '43241': 'Cobalt Tungsten Garden Scythe', + '43242': 'Titanium Gold Saw', + '43243': 'Titanium Gold Cross-pein Hammer', + '43244': 'Titanium Gold Raising Hammer', + '43245': 'Titanium Gold Lapidary Hammer', + '43246': 'Titanium Gold Creasing Knife', + '43247': 'White Gold Needle', + '43248': 'Titanium Gold Alembic', + '43249': 'Titanium Gold Bomb Frypan', + '43250': 'Titanium Gold Pickaxe', + '43251': 'Titanium Gold Hatchet', + '43252': 'Acacia Fishing Rod', + '43253': 'Titanium Gold Claw Hammer', + '43254': 'Titanium Gold File', + '43255': 'Titanium Gold Pliers', + '43256': 'Acacia Grinding Wheel', + '43257': 'Titanium Gold Awl', + '43258': 'Acacia Spinning Wheel', + '43259': 'Titanium Gold Mortar', + '43260': 'Titanium Gold Culinary Knife', + '43261': 'Titanium Gold Maul', + '43262': 'Titanium Gold Garden Scythe', + '43263': "Ra'Kaznar Saw", + '43264': "Ra'Kaznar Cross-pein Hammer", + '43265': "Ra'Kaznar Raising Hammer", + '43266': "Ra'Kaznar Lapidary Hammer", + '43267': "Ra'Kaznar Round Knife", + '43268': "Ra'Kaznar Needle", + '43269': "Ra'Kaznar Alembic", + '43270': "Ra'Kaznar Spriggan Frypan", + '43271': "Ra'Kaznar Pickaxe", + '43272': "Ra'Kaznar Hatchet", + '43273': 'Claro Walnut Fishing Rod', + '43274': "Ra'Kaznar Claw Hammer", + '43275': "Ra'Kaznar File", + '43276': "Ra'Kaznar Pliers", + '43277': 'Claro Walnut Grinding Wheel', + '43278': "Ra'Kaznar Awl", + '43279': 'Claro Walnut Spinning Wheel', + '43280': "Ra'Kaznar Mortar", + '43281': "Ra'Kaznar Culinary Knife", + '43282': "Ra'Kaznar Maul", + '43283': "Ra'Kaznar Garden Scythe", + '43284': 'Snow Cotton Beret', + '43285': 'Snow Cotton Jacket', + '43286': 'Loboskin Fingerless Gloves', + '43287': 'Snow Cotton Trousers', + '43288': 'Loboskin Shoes', + '43289': 'Snow Cotton Bandana', + '43290': 'Loboskin Coat', + '43291': 'Loboskin Gloves', + '43292': 'Snow Cotton Breeches', + '43293': 'Loboskin Boots', + '43294': 'Sarcenet Work Cap of Crafting', + '43295': 'Sarcenet Work Shirt of Crafting', + '43296': "Br'aaxskin Halfgloves of Crafting", + '43297': 'Sarcenet Hose of Crafting', + '43298': "Br'aaxskin Workboots of Crafting", + '43299': "Sarcenet Trapper's Hat of Gathering", + '43300': 'Sarcenet Jacket of Gathering', + '43301': "Br'aaxskin Halfgloves of Gathering", + '43302': 'Sarcenet Culottes of Gathering', + '43303': "Br'aaxskin Boots of Gathering", + '43304': 'Rroneek Serge Cap of Crafting', + '43305': 'Rroneek Serge Doublet of Crafting', + '43306': 'Gomphotherium Fingerless Gloves of Crafting', + '43307': 'Rroneek Serge Trousers of Crafting', + '43308': 'Gomphotherium Boots', + '43309': 'Rroneek Serge Hat of Gathering', + '43310': 'Gomphotherium Doublet of Gathering', + '43311': 'Gomphotherium Halfgloves of Gathering', + '43312': 'Rroneek Serge Trousers of Gathering', + '43313': 'Gomphotherium Boots of Gathering', + '43314': 'Thunderyards Silk Cap of Crafting', + '43315': 'Thunderyards Silk Shirt of Crafting', + '43316': 'Gargantuaskin Halfgloves of Crafting', + '43317': 'Thunderyards Silk Culottes of Crafting', + '43318': 'Claro Walnut Sandals of Crafting', + '43319': 'Gargantuaskin Hat of Gathering', + '43320': 'Thunderyards Silk Vest of Gathering', + '43321': 'Gargantuaskin Fingerless Gloves of Gathering', + '43322': 'Thunderyards Silk Culottes of Gathering', + '43323': 'Claro Walnut Sandals of Gathering', + '43324': 'Lar Ear Cuffs', + '43325': 'Lar Choker', + '43326': 'Lar Bracelets', + '43327': 'Lar Ring', + '43328': 'Ginseng Earrings', + '43329': 'Ginseng Necklace', + '43330': 'Ginseng Bracelet', + '43331': 'Ginseng Ring', + '43332': 'Acacia Earrings', + '43333': 'Acacia Necklace', + '43334': 'Acacia Bracelet', + '43335': 'Acacia Ring', + '43336': 'Gomphotherium Earrings', + '43337': 'Gomphotherium Necklace', + '43338': 'Gomphotherium Wristband', + '43339': 'Gomphotherium Ring', + '43340': 'Black Star Earrings of Crafting', + '43341': 'Black Star Scarf of Crafting', + '43342': 'Black Star Bracelets of Crafting', + '43343': 'Black Star Ring of Crafting', + '43344': 'Black Star Earrings of Gathering', + '43345': 'Claro Walnut Necklace of Gathering', + '43346': 'Claro Walnut Bracelet of Gathering', + '43347': "Ra'Kaznar Ring of Gathering", + '43556': 'Timeworn Loboskin Map', + '43557': "Timeworn Br'aaxskin Map", + '43569': 'Petit Punutiy', + '43570': 'Air-wheeler M9', + '43573': 'Not-So-Bighorn', + '43575': 'Quetzal', + '43577': 'Rororrlo Teh', + '43579': 'Tankardtender', + '43581': 'Speaking Stone', + '43582': 'Wind-up Mamool Ja', + '43583': 'Mischief Maker', + '43585': 'Ambrose the Unfinished', + '43590': "Ty'aitya Whistle", + '43591': 'Air-wheeler A9 Identification Key', + '43598': 'Rroneek Horn', + '43602': 'Skyruin Barding', + '43603': 'Electrope Barding', + '43606': 'Modern Aesthetics - It Takes Two', + '43613': 'Red Sunflower Corsage', + '43614': 'Blue Sunflower Corsage', + '43615': 'Yellow Sunflower Corsage', + '43616': 'Green Sunflower Corsage', + '43617': 'Orange Sunflower Corsage', + '43618': 'Purple Sunflower Corsage', + '43619': 'White Sunflower Corsage', + '43620': 'Black Sunflower Corsage', + '43621': 'Rainbow Sunflower Corsage', + '43623': 'High Durium Twinfangs', + '43625': 'Bismuth Twinfangs', + '43627': 'Manganese Twinfangs', + '43629': 'Chondrite Magitek Twinfangs', + '43644': 'Palm Round Brush', + '43646': 'Red Pine Flat Brush', + '43648': 'Ironwood Filbert Brush', + '43650': 'Integral Magitek Paintbrush', + '43664': 'Mosquito Fish', + '43665': 'Pel Frog', + '43666': 'Petticoat Tetra', + '43667': 'Reasonscale Silverside', + '43668': 'Stardust Shrimp', + '43669': 'Shallows Sot', + '43670': 'Ghostfish', + '43671': 'Permit', + '43672': 'Floating Fife', + '43673': 'Blue Purse', + '43674': 'Goldfin Cavalli', + '43675': 'Sea Alpaca', + '43676': 'Marbled Hatchetfish', + '43677': 'Starsnipper', + '43678': 'Urqotrout', + '43679': 'Yok Huy Stonecutter', + '43680': 'Chirwagur Loach', + '43681': 'Alright Alright Alright', + '43682': 'Zorlortor', + '43683': 'Shooting Starscale', + '43684': 'First Feastfish', + '43685': 'Urqofrog', + '43686': 'Zeh Tortoh', + '43687': 'Morsel Trout', + '43688': 'Deepwarden', + '43689': "Kozama'uka Skipper", + '43690': "Bopo'u Sleeper", + '43691': 'Poison Dyefrog', + '43692': 'Pleated Matamata', + '43693': 'Uyuy Xage', + '43694': 'Plattershell', + '43695': 'Candiru', + '43696': 'Trahira', + '43697': 'Driftwood Catfish', + '43698': 'Oho Hunu', + '43699': 'Bronze Pleco', + '43700': 'Crenicichla', + '43701': 'Hunu Peacock Bass', + '43702': 'Pelubane', + '43703': 'Giant Trahira', + '43704': "Ku'uxage Bitterling", + '43705': 'Tonguesnatcher', + '43706': 'Corn Dace', + '43707': 'Ka Puyhu', + '43708': 'Ligaka Guppy', + '43709': 'Dumplingfish', + '43710': 'Banded Candiru', + '43711': 'Oxydoras', + '43712': 'Spotted Stingray', + '43713': 'Yellow Peacock Bass', + '43714': 'Shovelnose Catfish', + '43715': 'Shimmering Shadow', + '43716': "Ut'ohmu Dawnfish", + '43717': 'Belonesox', + '43718': "Xd'aa Talat Cichlid", + '43719': "Iq Br'aax Sailfin", + '43720': 'Hunmu Ob', + '43721': 'Apoda', + '43722': 'Mirror Carp', + '43723': 'Tsoly Mu', + '43724': 'Iq Rrax Leaffish', + '43725': 'Archmatron Angelfish', + '43726': "Yak T'el Salamander", + '43727': 'Shadowtongue', + '43728': 'Cloud-eye Carp', + '43729': "Xobr'it Lobster", + '43730': 'Sunbright Axolotl', + '43731': 'Horned Frog', + '43732': 'Mudfish', + '43733': 'Turali Beaded Lizard', + '43734': "Yak T'el Catfish", + '43735': 'Ankledeep Catfish', + '43736': 'Checkered Cichlid', + '43737': 'Moxutural Gar', + '43738': 'Variatus', + '43739': 'Welkin Catfish', + '43740': 'Flawless Saucer', + '43741': 'Glittergill', + '43742': 'Twig Catfish', + '43743': 'Blind Brotula', + '43744': "Yak T'el Caiman", + '43745': "Ut'ohmu Tiika", + '43746': 'Sharknose Goby', + '43747': "Yak T'el Crab", + '43748': "Xty'iinbek Sleeper", + '43749': 'Chain Shark', + '43750': 'Bonytail Chub', + '43751': 'Niikwerepi Trout', + '43752': 'Pyariyoanaan Cichlid', + '43753': 'Shaaloani Salmon', + '43754': 'Trailtrout', + '43755': 'Toari Sucker', + '43756': 'Turali Paddlefish', + '43757': 'Zorgor Core', + '43758': 'Cloudribbon', + '43759': 'Zorgor Scorpion', + '43760': 'Vagrant Cascade', + '43761': 'Zorgor Condor', + '43762': 'Cloud Wasp', + '43763': 'Azure Glider', + '43764': 'Hellsnow Shark', + '43765': 'Heritage Loach', + '43766': 'Outskirts Sniffer', + '43767': 'Pumpkin Perch', + '43768': 'Tiger Muskellunge', + '43769': 'Moon Croppie', + '43770': 'Driftdowns Trout', + '43771': 'Electrobetta', + '43772': 'Thundering Redbelly', + '43773': 'Yyasulani Bowfin', + '43774': 'Crackling Flounder', + '43775': 'Goldgrouper', + '43776': 'Everkeep Yabby', + '43777': 'Stickleback', + '43778': 'Custodian Carp', + '43779': 'Mosaic Loach', + '43780': 'Rosebud Frog', + '43781': 'Knight Goby', + '43782': 'Windspath Eel', + '43783': 'Harlequin Lancer', + '43784': 'Cleyran Carp', + '43785': 'Giant Snakehead', + '43786': 'Datnioides', + '43787': 'Neo Arowana', + '43788': 'Canal Bream', + '43789': 'Iris Wrasse', + '43790': 'Canal Drum', + '43791': 'Butterfly Ray', + '43792': 'Hydro Louvar', + '43793': 'Devotion Clam', + '43794': 'Forgotten One', + '43795': 'Copper Shark', + '43796': 'Golden Day', + '43797': 'Starglass Gibel', + '43798': 'Scarlet Queen', + '43799': 'Ultimoat Carp', + '43803': 'Turali Loach', + '43804': 'Yok Huy Toad', + '43805': 'Stone Pleco', + '43806': 'Shark Catfish', + '43807': 'Zeh Lar Dor', + '43808': 'Karvarichthys', + '43809': 'Severum', + '43810': 'Ligaka Blossom', + '43811': 'Potglaze Stingray', + '43812': 'Emberwisp', + '43813': 'Ihuyka Colossoma', + '43814': 'Torchtail', + '43815': 'Variegated Sisterscale', + '43816': "Kozama'uka Characin", + '43817': 'Charcoal Eel', + '43818': 'Rainbow Pipira', + '43819': 'Lau Lau', + '43820': 'Ligaka Pirarucu', + '43821': 'Piraputanga', + '43822': 'Purussaurus', + '43823': 'Turali Land Crab', + '43824': 'Crested Goby', + '43825': 'Tsoly Turtle', + '43826': 'Viperfish', + '43827': 'Horizon Crocodile', + '43828': 'Tsoly Gar', + '43829': 'Sunlit Prism', + '43830': 'Fategazer', + '43831': 'Frillfin Goby', + '43832': 'Black Ibruq', + '43833': 'Speckled Peacock Bass', + '43834': 'Golden Characin', + '43835': 'Deadleaf Minnow', + '43836': 'Glistening Discus', + '43837': 'Lightning Eel', + '43838': 'Longwhisker Lungfish', + '43839': 'Minted Arowana', + '43840': "Br'aaxfish", + '43841': 'Iq Rrax Crab', + '43842': 'Wivre Cod', + '43843': 'Warmouth', + '43844': 'Shaaloani Goby', + '43845': 'Sauger', + '43846': 'Niikwerepi Bass', + '43847': 'Longnose Gar', + '43848': 'Midnight Carp', + '43849': 'Golden Stonefly Nymph', + '43850': 'Crimson Lugworm', + '43851': 'Silkmoth Pupa', + '43852': 'Honeybee', + '43853': 'Cactuar Jig', + '43854': 'White Worm', + '43855': 'Popper Lure', + '43856': 'Shucked Clam', + '43857': 'Dragonfly', + '43858': 'Red Maggots', + '43859': 'Ghost Nipper', + '43961': 'Turali Bicolor Gemstone Voucher', + '43962': 'Garden Sunflower Seeds', + '43963': 'Red Sunflowers', + '43964': 'Blue Sunflowers', + '43965': 'Yellow Sunflowers', + '43966': 'Green Sunflowers', + '43967': 'Orange Sunflowers', + '43968': 'Purple Sunflowers', + '43969': 'White Sunflowers', + '43970': 'Black Sunflowers', + '43971': 'Rainbow Sunflowers', + '43972': 'Cooking Mezcal', + '43973': "Ut'ohmu Chili Sauce", + '43974': 'Royal Maple Syrup', + '43975': 'Whipped Cream', + '43976': 'Turali Corn Oil', + '43977': 'Mountain Salt', + '43978': "Ut'ohmu Tomato", + '43979': 'Royal Maple Sap', + '43980': 'Shaaloani Oilseeds', + '43981': 'Turali Corn', + '43982': 'Mountain Rock Salt', + '43983': 'Broccoli', + '43984': 'Bell Pepper', + '43985': 'Yyasulani Garlic', + '43986': 'White Pepper', + '43987': 'Mesquite Beans', + '43988': 'Turali Pineapple', + '43989': 'Turali Aloe', + '43990': 'Wild Ja Tiika Bananas', + '43991': 'Sweet Kukuru Bean', + '43992': 'Mountain Chromite Ore', + '43993': 'Ruthenium Ore', + '43994': 'Cobalt Tungsten Ore', + '43995': 'Titanium Gold Ore', + '43996': "Ra'Kaznar Ore", + '43997': 'Mountain Chromite Ingot', + '43998': 'Ruthenium Ingot', + '43999': 'Cobalt Tungsten Ingot', + '44000': 'Titanium Gold Nugget', + '44001': "Ra'Kaznar Ingot", + '44002': 'Lar Ore', + '44003': 'Raw Ihuykanite', + '44004': 'Raw Pink Beryl', + '44005': 'White Gold Ore', + '44006': 'Raw Black Star', + '44007': 'Magnesia Powder', + '44008': 'Lar Ingot', + '44009': 'Ihuykanite', + '44010': 'Pink Beryl', + '44011': 'White Gold Ingot', + '44012': 'Black Star', + '44013': 'Magnesia Whetstone', + '44014': 'Ginseng Log', + '44015': 'Ceiba Log', + '44016': 'Dark Mahogany Log', + '44017': 'Acacia Log', + '44018': 'Claro Walnut Log', + '44019': 'Ginseng Lumber', + '44020': 'Ceiba Lumber', + '44021': 'Dark Mahogany Lumber', + '44022': 'Acacia Lumber', + '44023': 'Claro Walnut Lumber', + '44024': 'Snow Cotton', + '44025': 'Mountain Flax', + '44026': 'Sarcenet', + '44027': 'Rroneek Fleece', + '44028': 'Levinsilk', + '44029': 'Snow Cotton Cloth', + '44030': 'Mountain Linen', + '44031': 'Sarcenet Cloth', + '44032': 'Rroneek Serge', + '44033': 'Thunderyards Silk', + '44034': "Yak T'el Spring Water", + '44035': 'Sungilt Aethersand', + '44036': 'Mythloam Aethersand', + '44037': 'Mythroot Aethersand', + '44038': 'Mythbrine Aethersand', + '44039': 'Wind Parsley', + '44040': "Kozama'uka Chamomile", + '44041': 'Windsbalm Bay Leaf', + '44042': 'Eucalyptus', + '44043': 'Pearl Grass', + '44044': 'Grade 1 Gemsap of Strength', + '44045': 'Grade 1 Gemsap of Dexterity', + '44046': 'Grade 1 Gemsap of Vitality', + '44047': 'Grade 1 Gemsap of Intelligence', + '44048': 'Grade 1 Gemsap of Mind', + '44049': 'Growth Formula Lambda', + '44050': 'Tungsten Ink', + '44051': 'Sanctified Water', + '44052': 'Acacia Bark', + '44053': 'Silver Lobo Hide', + '44054': 'Hammerhead Crocodile Skin', + '44055': "Br'aax Hide", + '44056': 'Gomphotherium Skin', + '44057': 'Gargantua Hide', + '44058': 'Silver Lobo Leather', + '44059': 'Hammerhead Crocodile Leather', + '44060': "Br'aax Leather", + '44061': 'Gomphotherium Leather', + '44062': 'Gargantua Leather', + '44063': 'Alpaca Fillet', + '44064': 'Swampmonk Thigh', + '44065': 'Branchbearer Fruit', + '44066': 'Nopalitender Tuna', + '44067': 'Megamaguey Pineapple', + '44068': 'Poison Frog Secretions', + '44069': 'Lesser Apollyon Shell', + '44070': "Ty'aitya Wingblade", + '44071': 'Tumbleclaw Weeds', + '44072': 'Axe Beak Wing', + '44073': 'Boiled Alpaca Steak', + '44074': 'Mezcal-marinated Swampmonk', + '44076': 'Acqua Pazza', + '44077': 'Salmon Jerky', + '44078': 'Nasi Goreng', + '44079': 'Shrimp Cocktail', + '44081': 'Omelette Rice', + '44082': 'Royal Toast', + '44083': 'Banana Ponzecake', + '44084': 'Maple Teriyaki', + '44085': 'Sweetmuffin', + '44086': 'Creamy Hot Chocolate', + '44087': 'Creamy Alpaca Pasta', + '44088': 'Gateau Au Chocolat', + '44089': 'Tender Shortcake', + '44090': 'Broccoli and Spinach Saute', + '44091': 'Rroneek Steak', + '44092': 'Roast Rroneek', + '44093': 'Spaghetti al Olio e Peperoncino', + '44094': 'Grilled Urqotrout', + '44095': 'Driftwood Catfish Pie', + '44096': 'Vegetable Soup', + '44097': 'Mesquite Juice', + '44098': 'Mesquite Soup', + '44099': 'Turali Pineapple Ponzecake', + '44100': 'Fruit and Aloe Jelly', + '44101': 'Tart Turali Tart', + '44102': 'Wild Banana Blend', + '44103': 'Stuffed Peppers', + '44104': 'Tacos de Carne Asada', + '44105': 'Tacos Al Pastor', + '44106': 'Rroneek Chuck', + '44108': 'Tiled Carpeting', + '44109': 'Wisteria Ceiling Lamp', + '44110': 'Seafade Interior Wall', + '44111': 'Stone Partition', + '44113': 'Tuliyollan Table Lamp', + '44114': 'Pelupelu Partition', + '44115': 'Ihuykatumu Bed', + '44116': 'Vending Machine Nine', + '44117': 'Assortment of Strewn Bottles', + '44118': 'Heritage Found Crates', + '44119': 'Horizontal Neon Wall Light', + '44120': 'Vertical Neon Wall Light', + '44121': "Yak T'el Scale Tree", + '44122': 'Neo Kingdom Lamppost', + '44132': 'Timeless Turali Cloth', + '44134': 'Cherimoya', + '44135': 'Harmonite Ore', + '44136': 'Fine Silver Ore', + '44137': 'Ipe Log', + '44138': 'Blackseed Cotton Boll', + '44139': 'Turali Alumen', + '44140': 'Nopaliflower', + '44157': 'Grade 1 Gemdraught of Strength', + '44158': 'Grade 1 Gemdraught of Dexterity', + '44159': 'Grade 1 Gemdraught of Vitality', + '44160': 'Grade 1 Gemdraught of Intelligence', + '44161': 'Grade 1 Gemdraught of Mind', + '44167': "Competent Craftsman's Tisane", + '44168': "Commanding Craftsman's Tisane", + '44169': "Cunning Craftsman's Tisane", + '44246': "Turali Trader's Shirt", + '44247': "Turali Trader's Culottes", + '44248': "Turali Trader's Shoes", + '44249': "Turali Traveler's Shirt", + '44250': "Turali Traveler's Shoes", + '44261': 'The Faces We Wear - Classic Spectacles', + '44262': 'The Faces We Wear - Rose-colored Spectacles', + '44263': 'The Faces We Wear - Simple Spectacles', + '44264': 'The Faces We Wear - Monocles', + '44295': 'Punuitiy Crossing Orchestrion Roll', + '44296': 'Empyrean Peak Orchestrion Roll', + '44297': 'Lost in the Deep Orchestrion Roll', + '44298': 'In Fulgur and Fire Orchestrion Roll', + '44299': 'Anatomy of Existence Orchestrion Roll', + '44300': 'A Trail Unending Orchestrion Roll', + '44301': 'Blessings on the Bluffs Orchestrion Roll', + '44302': 'Court Jesters (Dawntrail) Orchestrion Roll', + '44303': 'The Skyruin Orchestrion Roll', + '44304': 'Seeking Purpose Orchestrion Roll', + '44321': "Blade's Exaltation Orchestrion Roll", + '44322': 'Roads Forsaken Orchestrion Roll', + '44326': 'Subterranean Drop Orchestrion Roll', + '44327': "Tinkerer's Treasure Trove Orchestrion Roll" } diff --git a/app/utils/items/wowItems.ts b/app/utils/items/wowItems.ts index c0522d40..b07cf7b2 100644 --- a/app/utils/items/wowItems.ts +++ b/app/utils/items/wowItems.ts @@ -6213,6 +6213,7 @@ export const wowItemsMap: Record = { '14477': 'Pattern: Ghostweave Gloves', '14478': 'Pattern: Brightcloth Robe', '14479': 'Pattern: Brightcloth Gloves', + '14481': 'Pattern: Runecloth Gloves', '14482': 'Pattern: Cindercloth Cloak', '14483': 'Pattern: Felcloth Pants', '14484': 'Pattern: Brightcloth Cloak', @@ -25081,6 +25082,7 @@ export const wowItemsMap: Record = { '183920': 'Bent Fork', '183921': 'Crumpled Napkin', '183922': 'Crushed Nut Shells', + '183923': 'Broken Claw', '183924': 'Gorm Egg Shells', '183925': 'Mushy Snowplum', '183926': 'Frayed Leather Laces', From 051063776e145652cdc07416544f9e6016bf1a97 Mon Sep 17 00:00:00 2001 From: cohenaj194 Date: Sat, 29 Jun 2024 14:45:55 -0400 Subject: [PATCH 14/23] update upload timers page --- app/routes/wow.upload-timers.tsx | 95 +++++++++++++++++++++++++++++++- 1 file changed, 93 insertions(+), 2 deletions(-) diff --git a/app/routes/wow.upload-timers.tsx b/app/routes/wow.upload-timers.tsx index 38450891..ab2b05b2 100644 --- a/app/routes/wow.upload-timers.tsx +++ b/app/routes/wow.upload-timers.tsx @@ -15,7 +15,7 @@ export const meta: MetaFunction = () => { return { charset: 'utf-8', viewport: 'width=device-width,initial-scale=1', - title: 'Saddlebag Exchange: WoW api data upload timers', + title: 'Realm Status WoW', description: 'WoW: see what time blizzard updates the auctionhouse api data, this is the time when saddlebag exchange and azeroth auction assassin will update with the latest data!' } @@ -43,7 +43,7 @@ const Index = () => { if ('data' in results) { return ( -

WoW api data upload timers

+

World of Warcraft API Upload Times

{ ] }} /> +

+ Tracking the World of Warcraft API Upload Times for the Auction + House: An Essential Tool for Gold Makers Introduction In the + ever-evolving world of World of Warcraft (WoW), mastering the + Auction House (AH) is a crucial aspect of gold making. For many + players, understanding the timing and frequency of Auction House + data uploads is a game-changer. The Auction House API provided by + Blizzard offers invaluable data, but knowing when this data is + updated can make all the difference in staying ahead of the market. + This is where the Saddlebag Exchange comes into play, providing a + dedicated page to track these upload times and offering players an + edge in their gold-making endeavors. The Importance of Auction House + Data Auction House data is the lifeblood of any serious gold maker + in WoW. This data includes the current listings, prices, and trends + for every item available on the Auction House. By analyzing this + information, players can: Identify Market Trends: Recognize which + items are in demand and which are not. Set Competitive Prices: + Ensure their listings are competitively priced to attract buyers. + Find Bargains: Spot underpriced items for potential profit. Manage + Inventory: Decide which items to stockpile and which to sell. + However, all these strategies hinge on having up-to-date data. + Knowing when the Auction House data is refreshed through the API is + essential for making timely decisions. Challenges with the Auction + House API Blizzard’s Auction House API is a powerful tool, but it is + not without its challenges. The primary issue for many players is + the unpredictability of upload times. Data uploads can vary due to + several factors, including server load, maintenance schedules, and + other technical issues. During updates or outages, these upload + times can become even more erratic, making it difficult for players + to rely on the API for accurate and timely information. Introducing + Saddlebag Exchange's Upload Timers To address this issue, Saddlebag + Exchange has developed a comprehensive solution for tracking the + Auction House API upload times. Their dedicated page, Saddlebag + Exchange Upload Timers, provides real-time updates and historical + data on the upload frequencies. Key Features of Saddlebag Exchange + Upload Timers: Real-Time Tracking: Monitor the exact times when + Auction House data is uploaded to the API. Historical Data: Access + historical data to identify patterns and predict future uploads. + Alerts and Notifications: Set up alerts to be notified when new data + is available. User-Friendly Interface: Easy-to-navigate interface + with clear and concise information. How It Works Saddlebag Exchange + utilizes sophisticated algorithms and constant monitoring to track + the Auction House API uploads. The system checks for new data at + regular intervals, logs the exact time of each update, and displays + this information in an easily accessible format. This allows players + to plan their activities around the upload times, ensuring they + always have the most current data at their fingertips. Why Timing + Matters for Gold Making The timing of Auction House data uploads can + significantly impact a player’s gold-making strategies. Here are a + few scenarios where knowing the upload times is crucial: Price + Fluctuations: Prices on the Auction House can fluctuate wildly. By + knowing when the data is updated, players can react swiftly to price + changes, buying low and selling high. Market Manipulation: Some + players engage in market manipulation by buying out entire stocks of + an item to control its price. Knowing the upload times can help + players avoid falling victim to these tactics or even engage in them + strategically. Competition: High-demand items often see fierce + competition. Being the first to list an item at a competitive price + after an update can make a significant difference in sales. + Event-Driven Markets: During in-game events or expansions, certain + items can spike in value. Tracking upload times ensures players can + capitalize on these opportunities as soon as they arise. Dealing + with API Downtime Blizzard’s API can experience downtime, + particularly during updates or server maintenance. During these + periods, the lack of fresh data can disrupt gold-making strategies. + Saddlebag Exchange’s upload timers become even more valuable in + these situations. By providing the last known upload times and + predicting the next possible update, players can make informed + decisions even when the API is down. Tips for Managing Downtime: + Monitor Historical Patterns: Use historical data from Saddlebag + Exchange to estimate when the next update might occur. Set Alerts: + Utilize the alert system to get notified immediately when the API + comes back online. Stay Informed: Keep an eye on official Blizzard + channels and community forums for announcements regarding API + status. Plan Ahead: During known maintenance windows, plan your + buying and selling activities around the expected downtime to + minimize disruptions. Conclusion In the competitive world of World + of Warcraft gold making, staying ahead of the market is all about + timing. The Auction House API provides crucial data, but knowing + when this data is updated is the key to leveraging it effectively. + Saddlebag Exchange’s upload timers offer a powerful tool for + tracking these updates, ensuring players always have access to the + freshest information. By utilizing this resource, gold makers can + enhance their strategies, react swiftly to market changes, and + maximize their profits even during API downtimes. Whether you’re a + seasoned Auction House veteran or a newcomer looking to make your + mark, understanding and utilizing the Auction House API upload times + can give you the edge you need to succeed. Visit Saddlebag Exchange + Upload Timers today and take control of your gold-making journey in + World of Warcraft. +

) } From f0410dbfc8a83386c47bcb201c6c0c2d14f79809 Mon Sep 17 00:00:00 2001 From: cohenaj194 Date: Sat, 29 Jun 2024 16:10:53 -0400 Subject: [PATCH 15/23] fix ah title --- app/routes/queries._index.tsx | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/app/routes/queries._index.tsx b/app/routes/queries._index.tsx index e86a2de3..091082cd 100644 --- a/app/routes/queries._index.tsx +++ b/app/routes/queries._index.tsx @@ -12,8 +12,8 @@ export const meta: MetaFunction = () => { return { charset: 'utf-8', viewport: 'width=device-width,initial-scale=1', - title: 'Saddlebag Exchange: FFXIV tools ffxiah', - description: 'Saddlebag Exchange: FFXIV tools ffxiah' + title: 'Saddlebag Exchange: FFXIV tools FFXIVAH', + description: 'Saddlebag Exchange: FFXIV tools FFXIVAH' } } @@ -149,7 +149,7 @@ export default function Index() { board, ffxiv patch notes, final fantasy 14 reddit, ffxiv fanfest, ffxiv msq list, ffxiv character search, ffxiv fafnir, universalis ffxiv, ffxiv maintenance jan 15, ffxiv relic weapons, r ffxiv, relic - weapons ffxiv, character search ffxiv, ffxiah + weapons ffxiv, character search ffxiv, FFXIVAH

From 98b511f15c1b30a25acdb0072c54d5e551019b85 Mon Sep 17 00:00:00 2001 From: cohenaj194 Date: Sun, 30 Jun 2024 18:31:36 -0400 Subject: [PATCH 16/23] silly seo --- app/routes/queries._index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/routes/queries._index.tsx b/app/routes/queries._index.tsx index 091082cd..96075e9b 100644 --- a/app/routes/queries._index.tsx +++ b/app/routes/queries._index.tsx @@ -12,8 +12,8 @@ export const meta: MetaFunction = () => { return { charset: 'utf-8', viewport: 'width=device-width,initial-scale=1', - title: 'Saddlebag Exchange: FFXIV tools FFXIVAH', - description: 'Saddlebag Exchange: FFXIV tools FFXIVAH' + title: 'Saddlebag Exchange: FFXIV Market Board Tools', + description: 'Saddlebag Exchange: FFXIV MarketBoard Tools' } } From 682ba033ffc8dde403ad04a1dc92f8342c52b5bd Mon Sep 17 00:00:00 2001 From: Alex Cohen Date: Mon, 1 Jul 2024 09:47:58 -0400 Subject: [PATCH 17/23] add a commit to Add comment requesting help to implement "Download as .csv" button (#459) * add a commit to @coderabbitai * add csv button * perfect @coderabbitai that worked --- app/routes/wow.legacy-marketshare.tsx | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) diff --git a/app/routes/wow.legacy-marketshare.tsx b/app/routes/wow.legacy-marketshare.tsx index cb3b42b4..f6b2e09c 100644 --- a/app/routes/wow.legacy-marketshare.tsx +++ b/app/routes/wow.legacy-marketshare.tsx @@ -32,6 +32,7 @@ import type { ColumnList } from '~/components/types' import { getOribosLink } from '~/components/utilities/getOribosLink' import { getSaddlebagWoWLink } from '~/components/utilities/getSaddlebagWoWLink' import DebouncedInput from '~/components/Common/DebouncedInput' +import CSVButton from '~/components/utilities/CSVButton' const inputMap: Record = { homeRealmId: 'Home Realm', @@ -317,6 +318,13 @@ const Results = ({ const chartData = getChartData(data, sortBy) const columnList = getColumnList(region, server) + + // Define the columns for the CSV + const csvColumns = columnList.map(({ columnId, header }) => ({ + title: header, + value: columnId + })) + return ( @@ -349,12 +357,17 @@ const Results = ({ </> </ContentContainer> - <div className="hidden sm:flex w-full justify-end"> + <div className="flex justify-between"> + <CSVButton + filename="legacy_marketshare.csv" + data={data} + columns={csvColumns} + /> <DebouncedInput onDebouncedChange={(value) => { setGlobalFilter(value) }} - className={'p-2 rounded-md'} + className={'hidden sm:block p-2 rounded-md'} placeholder={'Search...'} /> </div> From 3053aef02cd26c31a47bd4f7bd46f16b0f97312c Mon Sep 17 00:00:00 2001 From: Alex Cohen <cohenaj194@gmail.com> Date: Mon, 1 Jul 2024 09:50:40 -0400 Subject: [PATCH 18/23] fix: package.json & package-lock.json to reduce vulnerabilities (#450) The following vulnerabilities are fixed with an upgrade: - https://snyk.io/vuln/SNYK-JS-AXIOS-6144788 Co-authored-by: snyk-bot <snyk-bot@snyk.io> --- package-lock.json | 17 +++++++++-------- package.json | 2 +- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/package-lock.json b/package-lock.json index a19c2195..d4df451d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -19,7 +19,7 @@ "@remix-validated-form/with-zod": "^2.0.1", "@tanstack/match-sorter-utils": "^8.1.1", "@tanstack/react-table": "^8.5.11", - "axios": "^1.6.3", + "axios": "^1.6.4", "date-fns": "^2.29.3", "highcharts": "^10.2.1", "highcharts-react-official": "^3.1.0", @@ -4848,12 +4848,12 @@ } }, "node_modules/axios": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.3.tgz", - "integrity": "sha512-fWyNdeawGam70jXSVlKl+SUNVcL6j6W79CuSIPfi6HnDUmSCH6gyUys/HrqHeA/wU0Az41rRgean494d0Jb+ww==", + "version": "1.6.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.6.4.tgz", + "integrity": "sha512-heJnIs6N4aa1eSthhN9M5ioILu8Wi8vmQW9iHQ9NUvfkJb0lEEDUiIdQNAuBtfUt3FxReaKdpQA5DbmMOqzF/A==", "license": "MIT", "dependencies": { - "follow-redirects": "^1.15.0", + "follow-redirects": "^1.15.4", "form-data": "^4.0.0", "proxy-from-env": "^1.1.0" } @@ -7898,15 +7898,16 @@ "dev": true }, "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "version": "1.15.6", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", + "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", "funding": [ { "type": "individual", "url": "https://github.com/sponsors/RubenVerborgh" } ], + "license": "MIT", "engines": { "node": ">=4.0" }, diff --git a/package.json b/package.json index 08c4a308..9ddd3078 100644 --- a/package.json +++ b/package.json @@ -35,7 +35,7 @@ "@remix-validated-form/with-zod": "^2.0.1", "@tanstack/match-sorter-utils": "^8.1.1", "@tanstack/react-table": "^8.5.11", - "axios": "^1.6.3", + "axios": "^1.6.4", "date-fns": "^2.29.3", "highcharts": "^10.2.1", "highcharts-react-official": "^3.1.0", From da9a28bb2a343da1c4fc8558afc1ec377032d690 Mon Sep 17 00:00:00 2001 From: Alex Cohen <cohenaj194@gmail.com> Date: Tue, 2 Jul 2024 00:07:48 -0400 Subject: [PATCH 19/23] youtube button (#460) * ping coderabbit * add sidebar icons --- app/components/navigation/sidebar/Sidebar.tsx | 21 +++++++++++++------ app/icons/YoutubeIcon.tsx | 20 ++++++++++++++++++ 2 files changed, 35 insertions(+), 6 deletions(-) create mode 100644 app/icons/YoutubeIcon.tsx diff --git a/app/components/navigation/sidebar/Sidebar.tsx b/app/components/navigation/sidebar/Sidebar.tsx index 530b2081..0e3cd469 100644 --- a/app/components/navigation/sidebar/Sidebar.tsx +++ b/app/components/navigation/sidebar/Sidebar.tsx @@ -8,13 +8,15 @@ import { CogIcon, MenuAlt2Icon, XIcon, + DocumentTextIcon, DocumentSearchIcon, ChevronUpIcon, ChevronDownIcon, PencilAltIcon, SearchIcon, ExclamationCircleIcon, - ShoppingCartIcon + ShoppingCartIcon, + ExternalLinkIcon } from '@heroicons/react/outline' import { Form, @@ -31,6 +33,7 @@ import GithubIcon from '~/icons/GithubIcon' import FlatWoWIcon from '~/icons/FlatWowIcon' import FlatFFXIVIcon from '~/icons/FlatFFXIVIcon' import DiscordIcon from '~/icons/DiscordIcon' +import YoutubeIcon from '~/icons/YoutubeIcon' import type { LoaderData } from '~/root' import DebouncedSelectInput from '~/components/Common/DebouncedSelectInput' import { @@ -140,7 +143,7 @@ const navGroups: Array<{ { name: 'Shopping List', href: 'ffxiv/shopping-list', - icon: PencilAltIcon + icon: ShoppingCartIcon }, { name: 'Listings Comparison and Competition Metrics', @@ -324,6 +327,12 @@ const navGroups: Array<{ external: true, icon: GithubIcon }, + { + name: 'YouTube', + href: 'https://www.youtube.com/@saddlebagexchange704', + external: true, + icon: YoutubeIcon + }, { name: 'blog', href: '/blog', @@ -332,24 +341,24 @@ const navGroups: Array<{ { name: 'List of all WoW Items', href: '/wow/itemlist', - icon: DocumentSearchIcon + icon: DocumentTextIcon }, { name: 'List of all FFXIV Items', href: '/ffxiv/itemlist', - icon: DocumentSearchIcon + icon: DocumentTextIcon }, { name: 'Fandom', href: 'https://ffxivmarketboard.fandom.com/wiki/Ffxivmarketboard_Wiki', external: true, - icon: DocumentSearchIcon + icon: ExternalLinkIcon }, { name: 'Discord Webpage', href: 'https://discord.com/servers/saddlebag-exchange-973380473281724476', external: true, - icon: DocumentSearchIcon + icon: DiscordIcon } ] } diff --git a/app/icons/YoutubeIcon.tsx b/app/icons/YoutubeIcon.tsx new file mode 100644 index 00000000..2c19dec7 --- /dev/null +++ b/app/icons/YoutubeIcon.tsx @@ -0,0 +1,20 @@ +import type { FC, PropsWithChildren } from 'react' + +type SVGProps = PropsWithChildren<{ className: string }> + +const YoutubeIcon: FC<SVGProps> = (props) => { + return ( + <svg + className={props.className} + viewBox="0 0 24 24" + height={`1em`} + width={`1em`} + stroke="currentColor" + fill="currentColor" + xmlns="http://www.w3.org/2000/svg"> + <path d="M23.498 6.186a2.999 2.999 0 0 0-2.11-2.11C19.396 3.5 12 3.5 12 3.5s-7.396 0-9.388.576a2.999 2.999 0 0 0-2.11 2.11C0 8.178 0 12 0 12s0 3.822.502 5.814a2.999 2.999 0 0 0 2.11 2.11C4.604 20.5 12 20.5 12 20.5s7.396 0 9.388-.576a2.999 2.999 0 0 0 2.11-2.11C24 15.822 24 12 24 12s0-3.822-.502-5.814zM9.75 15.568V8.432L15.75 12l-6 3.568z" /> + </svg> + ) +} + +export default YoutubeIcon From 235fbe7a3259bc7cee7611fb30c47edb50464773 Mon Sep 17 00:00:00 2001 From: cohenaj194 <cohenaj194@gmail.com> Date: Wed, 3 Jul 2024 00:36:40 -0400 Subject: [PATCH 20/23] keyworrds --- app/routes/_public._index.tsx | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/routes/_public._index.tsx b/app/routes/_public._index.tsx index 20764f42..3632e22d 100644 --- a/app/routes/_public._index.tsx +++ b/app/routes/_public._index.tsx @@ -4,10 +4,10 @@ import TileLink from '~/components/Common/TileLink' export const meta: MetaFunction = () => { return { charset: 'utf-8', - title: `SaddleBag Exchange: FFXIV MarketBoard Prices, WoW Gold`, + title: `SaddleBag Exchange: FFXIV Market Board Prices, WoW Gold`, viewport: 'width=device-width,initial-scale=1', description: - 'SaddleBag Exchange: An MMO market data analysis engine for the WoW Auctionhouse, FFXIV Marketboard and more! ff14 market board, ff14 marketboard prices, ffxiv market board, ffxiv market board prices, ffxiv marketboard, xiv analysis, wow Auctionhouse, wow goldmaking, wow gold', + 'SaddleBag Exchange: An MMO market data analysis engine for the WoW Auction House, FFXIV Market Board and more! ff14 market board, ff14 marketboard prices, ffxiv market board, ffxiv market board prices, ffxiv marketboard, xiv analysis, wow Auctionhouse, wow goldmaking, wow gold', customHeading: 'Explore MMO Market Data with SaddleBag Exchange' } } From c03cfc0839da02dd03f609b1b4258e5fd9835ccc Mon Sep 17 00:00:00 2001 From: cohenaj194 <cohenaj194@gmail.com> Date: Wed, 3 Jul 2024 13:13:23 -0400 Subject: [PATCH 21/23] fix links --- app/routes/_public._index.tsx | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/app/routes/_public._index.tsx b/app/routes/_public._index.tsx index 3632e22d..da6f6395 100644 --- a/app/routes/_public._index.tsx +++ b/app/routes/_public._index.tsx @@ -102,10 +102,18 @@ export default function Index() { Cross-Server Reselling Tool. </a> </li> + <li> + Discover what items earn the most gil and sell the fastest with our! {' '} + <a + href="https://saddlebagexchange.com/ffxiv/marketshare/queries" + className="text-blue-600 underline"> + Marketshare Overview Tool. + </a> + </li> <li> Explore lucrative crafting opportunities with our{' '} <a - href="https://saddlebagexchange.com/queries/recommended" + href="https://saddlebagexchange.com/ffxiv/craftsim/queries" className="text-blue-600 underline"> Crafting Profit Simulations. </a> From 1d131b192f3ef4de6a30ef473828d86c5eaf5d92 Mon Sep 17 00:00:00 2001 From: cohenaj194 <cohenaj194@gmail.com> Date: Wed, 3 Jul 2024 13:14:24 -0400 Subject: [PATCH 22/23] pretty --- app/routes/_public._index.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/routes/_public._index.tsx b/app/routes/_public._index.tsx index da6f6395..a0dda077 100644 --- a/app/routes/_public._index.tsx +++ b/app/routes/_public._index.tsx @@ -103,7 +103,8 @@ export default function Index() { </a> </li> <li> - Discover what items earn the most gil and sell the fastest with our! {' '} + Discover what items earn the most gil and sell the fastest + with our {' '} <a href="https://saddlebagexchange.com/ffxiv/marketshare/queries" className="text-blue-600 underline"> From f2bf914e2b988ba6d5083292f74c0886f7a5d092 Mon Sep 17 00:00:00 2001 From: Alex Cohen <cohenaj194@gmail.com> Date: Thu, 4 Jul 2024 12:18:39 -0400 Subject: [PATCH 23/23] fix: upgrade multiple dependencies with Snyk (#461) Snyk has created this PR to upgrade: - react from 18.2.0 to 18.3.1. See this package in npm: https://www.npmjs.com/package/react - react-dom from 18.2.0 to 18.3.1. See this package in npm: https://www.npmjs.com/package/react-dom See this project in Snyk: https://app.snyk.io/org/cohenaj194/project/711d5301-6ecb-4089-abc7-1a5e8313adf0?utm_source=github&utm_medium=referral&page=upgrade-pr Co-authored-by: snyk-bot <snyk-bot@snyk.io> --- package-lock.json | 29 ++++++++++++++++------------- package.json | 4 ++-- 2 files changed, 18 insertions(+), 15 deletions(-) diff --git a/package-lock.json b/package-lock.json index d4df451d..2b487884 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,12 +23,12 @@ "date-fns": "^2.29.3", "highcharts": "^10.2.1", "highcharts-react-official": "^3.1.0", - "react": "^18.2.0", + "react": "^18.3.1", "react-dnd": "^16.0.1", "react-dnd-html5-backend": "^16.0.1", "react-dnd-scrolling": "^1.2.4", "react-dnd-touch-backend": "^16.0.1", - "react-dom": "^18.2.0", + "react-dom": "^18.3.1", "react-redux": "^8.0.4", "remix-validated-form": "^4.5.5", "zod": "^3.22.3" @@ -12603,9 +12603,10 @@ } }, "node_modules/react": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react/-/react-18.2.0.tgz", - "integrity": "sha512-/3IjMdb2L9QbBdWiW5e3P2/npwMBaU9mHCSCUzNln0ZCYbcfTsGbTJrU/kGemdH2IWmB2ioZ+zkxtmq6g09fGQ==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react/-/react-18.3.1.tgz", + "integrity": "sha512-wS+hAgJShR0KhEvPJArfuPVN1+Hz1t0Y6n5jLrGQbkb4urgPE/0Rve+1kMB1v/oWgHgm4WIcV+i7F2pTVj+2iQ==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" }, @@ -12677,15 +12678,16 @@ } }, "node_modules/react-dom": { - "version": "18.2.0", - "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.2.0.tgz", - "integrity": "sha512-6IMTriUmvsjHUjNtEDudZfuDQUoWXVxKHhlEGSk81n4YFS+r/Kl99wXiwlVXtPBtJenozv2P+hxDsw9eA7Xo6g==", + "version": "18.3.1", + "resolved": "https://registry.npmjs.org/react-dom/-/react-dom-18.3.1.tgz", + "integrity": "sha512-5m4nQKp+rZRb09LNH59GM4BxTh9251/ylbKIbpe7TpGxfJ+9kv6BLkLBXIjjspbgbnIBNqlI23tRnTWT0snUIw==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0", - "scheduler": "^0.23.0" + "scheduler": "^0.23.2" }, "peerDependencies": { - "react": "^18.2.0" + "react": "^18.3.1" } }, "node_modules/react-is": { @@ -13373,9 +13375,10 @@ "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" }, "node_modules/scheduler": { - "version": "0.23.0", - "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.0.tgz", - "integrity": "sha512-CtuThmgHNg7zIZWAXi3AsyIzA3n4xx7aNyjwC2VJldO2LMVDhFK+63xGqq6CsJH4rTAt6/M+N4GhZiDYPx9eUw==", + "version": "0.23.2", + "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.23.2.tgz", + "integrity": "sha512-UOShsPwz7NrMUqhR6t0hWjFduvOzbtv7toDH1/hIrfRNIDBnnBWd0CwJTGvTpngVlmwGCdP9/Zl/tVrDqcuYzQ==", + "license": "MIT", "dependencies": { "loose-envify": "^1.1.0" } diff --git a/package.json b/package.json index 9ddd3078..ddffceff 100644 --- a/package.json +++ b/package.json @@ -39,12 +39,12 @@ "date-fns": "^2.29.3", "highcharts": "^10.2.1", "highcharts-react-official": "^3.1.0", - "react": "^18.2.0", + "react": "^18.3.1", "react-dnd": "^16.0.1", "react-dnd-html5-backend": "^16.0.1", "react-dnd-scrolling": "^1.2.4", "react-dnd-touch-backend": "^16.0.1", - "react-dom": "^18.2.0", + "react-dom": "^18.3.1", "react-redux": "^8.0.4", "remix-validated-form": "^4.5.5", "zod": "^3.22.3"