Go Back  FlyerTalk Forums > Travel&Dining > Travel Tools
Reload this Page >

ITA-Matrix-PowerTools - Userscript for Orbitz/DL/UA/AA/BA/CZ/IB/LA/LH/LX/TK

Community
Wiki Posts
Search
Old Nov 11, 2014, 10:54 am
FlyerTalk Forums Expert How-Tos and Guides
Last edit by: IAkH
Welcome to the ITA-Matrix-PowerTools
*** About ***
The ITA-Matrix-PowerTools are a user script maintained by fellow flyertalk members to enhance the already powerful Matrix of ITA Software by providing new features and booking links.

Features added to the itinerary details page:
  • convert times into 24h format
  • translation support
  • open fare rules in new window by default
  • price breakdown (base fare, taxes & carrier imposed surcharges)
  • editor mode (adjust cabin prior extraction)
  • multiple handy links (Seatguru, Planefinder, WhereToCredit)
  • new on page features like detailed mileage breakdown*, GCM-Map* and earned frequent flyer miles*
  • create links to various providers (OTAs / airlines / other tools) to try direct booking of your itinerary

Originally Posted by Error: Unable to find class IR6M2QD-k-i for itinRow.
If you see this error, currently you'll need to manually edit your installed script.

See posts from October 1st, 2018 for more information.
*requires background requests

The script may have lots of bugs and comes without warranty of any kind! Not all fares will be bookable or will price correctly in the booking engines. You are responsible for the money you spend - so double check your flights before purchasing AND use your sanity! Read this and the next two posts as an example: click

*** How it works ***
Using pure JavaScript we are "creating" some sort of hook that is periodically checking for page changes while working with the Matrix. As soon as you reload or leave the page the script stops (leaving the page or using the console-version) or starts from the beginning (using the userscript and perfoming a reload). Also this script is only running in these tabs/windows in which you are looking at the Matrix.
As soon as the script detects the itinerary page it reads its content - unless you activated the editor mode. It's parsing all the information found and creates - based on this information - several links to OTAs, airlines and other tools. Since we are able to remove, replace and add content to the page - we make them visible and clickable in a way you choose. By default there are no background requests.

*** How to get it running ***
There are three methods to install the script. All three below run exactly the same underlying script but are listed in order of installation complexity:

Method 1: Browser Extensions
Method 2: As a UserScript
It takes a moment to get it running but after that it will start automatically everytime you visit the Matrix and we will be able to store your settings. You will need to install a script manager.

Warning: Using a script manager and installing user scripts is a potential security risk - We need to mention it here.
Step 1: Install a script manager Step 2: Install the script
See the FAQ of your script manager how to install the script.
  • Through GreasyFork
  • Through OpenUserJS
  • Through GitHub: you should be asked whether you want to install it - make sure your script manager is running.
Method 3: iOS Safari Shortcut

Get the "Add ITA Matrix Powertools" Shortcut

Instructions much be run each time
  • Open ITA Matrix in Safari on your iPhone or iPad
  • Tap on the Share button in the bottom navigation
  • Scroll down through all the actions
  • Select Add ITA Matrix Powertools

Method 4: Console/Debug mode
You need to access the command line of your browser to execute the script. You can use either the regular version or the minified version. Just copy the entire text.

Chrome:
  1. Open Chrome DevTools: developer.chrome.com
  2. Switch to the console tab
  3. Paste the script into the command line: developer.chrome.com
  4. Run it
Firefox:
  1. Open the web console: developer.mozilla.org
  2. Switch to the console tab
  3. Paste the script into the command line: developer.mozilla.org
  4. Run it
Internet Explorer:
  1. Open the web console by pressing F12
  2. Switch to the console tab
  3. Paste the script into the command line - at the very bottom
  4. Run it by pressing the green triangle

*** How to use it ***
Once the script is running you should see a new line above the ITA logo:
Code:
Passengers (1a) Settings (v0.18) (Cabin: Auto)
As long as you see this line, there is no need to reexecute the script. Make sure to get used to the "Settings"-feature -> just click on Settings. Within the settings menu you can configure the script towards your needs/preferences. Enabling/disabling features and/or setting standard editions of providers on the fly. When using a script manager these settings should be stored and automatically load as soon as you visit matrix.itasoftware.com - but the passengers as well as the cabin detection will not be stored!
Your settings are "reloaded" everytime the itinerary details show up! If you want to use other settings, just get back to the flight selection and reselect your flights - the new settings will be used. This belongs to the passengers and cabin detection as well

Passengers:
The passenger count will not be taken from your search results! Use the passenger config on the upper left and make sure they are set before you get to the itinerary details. We had to do it this way because some providers require the age of children. But always make sure to search for the equivalent passenger count. There might be seat availability for one passenger but not for two!

Cabin detection:
You should set the cabin on the upper right to the appropriate main cabin you are looking for. Sometimes you will have economy/business class segments in mainly business/first class itineraries. These mixed itineraries make it hard to autodetect the main cabin - so you can set it manually.

*** Background requests - Privacy issues ***
Some features require to contact other servers. As long as you do not activate any of the autoload features within the settings there won't be any automatic background requests. You will have to initiate them manually. The following list will tell which features are contacting what server and what information will be transferred. All websites will know you are using this script und you are currently using the Matrix - what by the way applies to the link targets you click as well.
  • GCM-Map in inline mode - contacting gcmap.com (non SSL) providing full route data
  • WhereToCredit.com mileage accrual breakdown - contacting wheretocredit.com (non SSL or SSL - depending on whether you use the Matrix with or without SSL) providing full itinerary
  • Skimlinks affiliate links - loads a js script to adds affiliate ids to some links if and only if the "Support this tool" setting is enabled. If it is disabled, no external scripts are loaded
*** FT-Posts you should read ***
General statement regarding this script: click
How to fix class names yourself: click
Problems and limitations regarding pricing itins: click

*** Contributors ***
paul21, Steppo, IAkH, 18sas, Benchmarc and others!

I'd like to give special thanks to paul21 for starting this idea.

*** Latest Version ***
GitHub Repo

OR install directly: Executable Version minified

FYI
Steppo & IAkH (Adam Hwang) have full access to this repository.

Discussion - written by paul21:
The original posting can be found here, related to building links on delta's booking engine. The script scrapes the flight info from the itinerary (flight numbers, dates, class of service, price) and builds a link string to two booking engines (Orbitz/Delta). These links are the same links used by Google Flights (owns ITA) , Kayak, et. al. to drive purchases. I used the Google referrer codes in the scripts, so they should get the commission. It's beyond me why ITA doesn't have some form of purchase link. This a userscript, and like an ad-blocker, it modifies the way a page is viewed by editing DOM objects in the browser. Keep in mind that this tool is meant to do something you already do yourself, but to save time in the process. Any tickets issued by Orbitz/DL via these links could be issued via phone or web search. If the links work, you are avoiding a phone booking fee potentially.







Print Wikipost

ITA-Matrix-PowerTools - Userscript for Orbitz/DL/UA/AA/BA/CZ/IB/LA/LH/LX/TK

Thread Tools
 
Search this Thread
 
Old Dec 31, 2019, 6:12 am
  #751  
Moderator: Hyatt; FlyerTalk Evangelist
 
Join Date: Jun 2015
Location: WAS
Programs: :rolleyes:, DL DM, Mlife Plat, Caesars Diam, Marriott Tit, UA Gold, Hyatt Glob, invol FT beta tester
Posts: 18,916
Originally Posted by sokolov
What does this error signify?

"Error: Unable to find class IR6M2QD-k-i for itinRow."
Are you possibly on an old version of the script? There were some posts with that error in late 2018 including a manual fix that has since been incorporated into the published version. See posts 600-620 or so in this thread.

Originally Posted by flashware
Sounds like the specific fare construction (IR6M2QD) may not be available, might be worth trying another site or trying to call and book that way?
IIRC that refers to a div/class in the HTML document, not a fare basis
Zorak is offline  
Old Dec 31, 2019, 12:00 pm
  #752  
 
Join Date: Aug 2008
Location: YXY
Posts: 3,506
flashware It is not a fare class.
Zorak I thought about an old script version, updated it, but received the same error message when I did the same search.

I'm also not seeing any of the booking links - even when, with other searches, there's no error message.
sokolov is offline  
Old Jan 1, 2020, 6:00 am
  #753  
 
Join Date: Oct 2013
Posts: 640
Originally Posted by sokolov
flashware It is not a fare class.
Zorak I thought about an old script version, updated it, but received the same error message when I did the same search.

I'm also not seeing any of the booking links - even when, with other searches, there's no error message.
Then you are clearly still on an old version. Try to remove it fully and readd it.
fuyao is offline  
Old Jan 1, 2020, 4:10 pm
  #754  
 
Join Date: Dec 2009
Location: IAH ↔ PAR
Posts: 777
Originally Posted by sokolov
Zorak I thought about an old script version, updated it, but received the same error message when I did the same search.

I'm also not seeing any of the booking links - even when, with other searches, there's no error message.
You are on an old version. Notice the latest class name for "itinRow" should be "IR6M2QD-j-i" in the latest version.

fuyao likes this.
IAkH is offline  
Old Jan 2, 2020, 3:16 pm
  #755  
 
Join Date: Dec 2009
Location: IAH ↔ PAR
Posts: 777
Calling all developers!

As mentioned earlier, I've started the refactor that splits this code base apart into multiple files so it can be maintained a lot easier. I've opened a PR for anybody's review that is interested:

https://github.com/SteppoFF/ita-matr...rtools/pull/50

I'd love any and all feedback, good, bad or indifferent. Will this make it easier or harder for you and others to update? Please let me know!
IAkH is offline  
Old Jan 2, 2020, 10:44 pm
  #756  
 
Join Date: Jan 2018
Programs: AF/KL Gold, DL Diamond, Hertz PC, Bonvoy Gold Elite; Hilton Gold
Posts: 997
The referal for all the KLM sites fails. Is this a known issue? Normally I book via Delta.com but I have a good bit of KLM flights coming up this year!
Utskicat is offline  
Old Jan 3, 2020, 8:36 pm
  #757  
 
Join Date: Dec 2009
Location: IAH ↔ PAR
Posts: 777
Originally Posted by Utskicat
The referal for all the KLM sites fails. Is this a known issue? Normally I book via Delta.com but I have a good bit of KLM flights coming up this year!
Thanks for the heads up. I have this fixed in the latest version v0.40.2+, which is still waiting for review. If I don't hear anything by the end of the weekend, I'll go ahead and publish it
IAkH is offline  
Old Jan 8, 2020, 5:53 pm
  #758  
 
Join Date: Nov 2016
Programs: cine
Posts: 58
its working the powertools?
javi1980 is offline  
Old Jan 8, 2020, 6:55 pm
  #759  
 
Join Date: Jul 2003
Location: CHS
Programs: UA Mileage Plus, Delta Skymiles PM, AA ExPlat, Hilton Honors Gold, Marriott Gold
Posts: 362
It looks like all of the class settings have been changed from IR6M2QD to KIR33AB. I was getting issues parsing the itinerary, and globally changing this fixed it.
CAETravlr is offline  
Old Jan 9, 2020, 8:52 am
  #760  
 
Join Date: Dec 2009
Location: IAH ↔ PAR
Posts: 777
Originally Posted by Utskicat
The referal for all the KLM sites fails. Is this a known issue? Normally I book via Delta.com but I have a good bit of KLM flights coming up this year!
Originally Posted by javi1980
its working the powertools?
Originally Posted by CAETravlr
It looks like all of the class settings have been changed from IR6M2QD to KIR33AB. I was getting issues parsing the itinerary, and globally changing this fixed it.
Hi thanks all. I updated the classes in v0.41.1 and merged the code refactor. Please let me know if you run into any issues. Will be working to clean up a lot of the code. It should be transparent to users, but hopefully doesn't affect functionality.

https://github.com/SteppoFF/ita-matrix-powertools
Zorak likes this.
IAkH is offline  
Old Jan 9, 2020, 10:14 pm
  #761  
Original Member, Ambassador: OneWorld Alliance
 
Join Date: May 1998
Location: Austin, TX, USA
Programs: AA ExecPlat & 3MM; Marriott Titanium
Posts: 1,015
I'm having an issue with:
ITA-Matrix-Powertools v0.41.1 with Tampermonkey v4.9
Chrome Version 79.0.3945.88 (Official Build) (32-bit) on Windows 10 Enterprise

When I get to the Matrix Itinerary details page I keep getting "Error: Unable to find Content on result page."




When I look at the script in edit mode it does show some warnings and errors which may or may not be related to the issue



Hopefully this is all a user error.

Thanks
Sagy is offline  
Old Jan 10, 2020, 8:51 am
  #762  
 
Join Date: Dec 2009
Location: IAH ↔ PAR
Posts: 777
Originally Posted by Sagy
I'm having an issue with:
ITA-Matrix-Powertools v0.41.1 with Tampermonkey v4.9
Chrome Version 79.0.3945.88 (Official Build) (32-bit) on Windows 10 Enterprise

When I get to the Matrix Itinerary details page I keep getting "Error: Unable to find Content on result page."
Hi Sagy! My guess is that Google often does rolling updates and they may not have updated the server nearest your location with the new class names yet. I was still seeing the old ones even as others here were reporting the new ones.

We have a few options. You could try to downgrade to confirm that we're just waiting for Google to update that particular server. You could wait a day or two to see if it fixes itself. If it still isn't better after a few days, we may need to figure out a way to troubleshoot together
Sagy likes this.
IAkH is offline  
Old Jan 10, 2020, 9:01 am
  #763  
 
Join Date: Oct 2013
Posts: 640
Up until 3pm UK time today 41.1 was also still working for me.
Now I also get the same error as Sagy.
So ITA is really rolling out an update today.
fuyao is offline  
Old Jan 10, 2020, 10:09 am
  #764  
 
Join Date: Jul 2013
Location: BTS
Posts: 611
Same here: "Error: Unable to find Content on result page." - it seems that the "class" fix broke this for many of us :S

Here are the old class names


startpage: {
maindiv: "IR6M2QD-w-d" //Container of main content. Unfortunately id "contentwrapper" is used twice
},
resultpage: {
itin: "IR6M2QD-v-d", //Container with headline: "Itinerary"
itinRow: "IR6M2QD-j-i", // TR in itin with Orig, Dest and date
milagecontainer: "IR6M2QD-v-e", // TD-Container on the right
rulescontainer: "IR6M2QD-k-d", // First container before rulelinks (the one with Fare X
htbContainer: "IR6M2QD-k-k", // full "how to buy"-container inner div (td=>div=>div)
htbLeft: "IR6M2QD-k-g", // Left column in the "how to buy"-container
htbRight: "IR6M2QD-k-f", // Class for normal right column
htbGreyBorder: "IR6M2QD-k-l", // Class for right cell with light grey border (used for subtotal of passenger)
//inline
mcDiv: "IR6M2QD-y-d", // Right menu sections class (3 divs surrounding entire Mileage, Emissions, and Airport Info)
mcHeader: "IR6M2QD-y-b", // Right menu header class ("Mileage", etc.)
mcLinkList: "IR6M2QD-y-c" // Right menu ul list class (immediately following header)
}
};
This gives no console errors but still doesn't work :S
Sagy likes this.

Last edited by scibuff; Jan 10, 2020 at 10:20 am
scibuff is offline  
Old Jan 10, 2020, 10:11 am
  #765  
 
Join Date: Jul 2013
Location: BTS
Posts: 611
One solution to this issue with multiple classes would be to have an array for each, instead of a single value, and the script tries all options in that array, e.g:

resultpage: {
itin: ["IR6M2QD-v-d", "KIR33AB-v-d"] //Container with headline: "Itinerary"
}
fuyao likes this.
scibuff is offline  


Contact Us - Manage Preferences - Archive - Advertising - Cookie Policy - Privacy Statement - Terms of Service -

This site is owned, operated, and maintained by MH Sub I, LLC dba Internet Brands. Copyright © 2024 MH Sub I, LLC dba Internet Brands. All rights reserved. Designated trademarks are the property of their respective owners.