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 Nov 28, 2019, 4:17 am
  #736  
 
Join Date: Aug 2015
Location: London, UK
Programs: BA GGL
Posts: 1,578
Originally Posted by Artemio
Great actually, less clicks needed!

For me, the only problems I encountered is that not the correct number of passengers and/or the correct class (when searched for first class) is being trranfered to some of the linked OTAs.
This is the same with the plain javascript, and not a problem with the extension itself.
armouredant is offline  
Old Nov 28, 2019, 5:39 pm
  #737  
Hyatt Contributor Badge
 
Join Date: Apr 2007
Programs: QF, VA, AC, Hyatt, Marriott
Posts: 3,785
With respect to the script for Mozilla, the link across to Priceline now longer takes you to the trip summary page but to a new search page for the itinerary you've selected.
danger is offline  
Old Nov 30, 2019, 7:34 am
  #738  
 
Join Date: Apr 2019
Posts: 14
Thanks guys for your feedback.

I released a new version with some bugfixes:
  • pass correct passengers to OTAs
  • pass correct cabin to OTAs
https://chrome.google.com/webstore/d...hddcnfjcllehij
angra and Artemio like this.
Benchmarc is offline  
Old Dec 5, 2019, 7:16 am
  #739  
 
Join Date: Jul 2016
Posts: 146
Originally Posted by Benchmarc
Thanks guys for your feedback.
I released a new version with some bugfixes:
https://chrome.google.com/webstore/d...hddcnfjcllehij

Hi

Do you have any plans to release the changes to the original script as was mentioned here? I understand that you want to introduce your referral link via Chrome app, but now you have essentially made an open source script a closed one. Steppo though about these issues and clearly mentioned which plugins could be a potential privacy issue and I also turn off these settings or disable these codes from the script version that I have installed.

*** 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.
  • Miles breakdown - contacting farefreaks.com (SSL) providing reduced route data
  • 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
  • farefreaks.com (advanced routing codes / flight manager) - contacting farefreaks.com (SSL) providing full itinerary
  • ***End - Background requests ***

I don't want to install any additional plugin/app on my browser and would be happy to have the script run the old way, since then I can read and understand..what the script does and there isn't any malicious code or otherwise that could leak my itin somewhere else. I may sound paranoid.. but last month has been a disaster in terms of leaks and tightening of FRs and GDS logic. I might be better safe than sorry.

This is the very same reason I never use bookmymatrix.
aktchi likes this.

Last edited by andydd; Dec 5, 2019 at 7:20 am Reason: added quote. Fixed Typo & Formatting
andydd is offline  
Old Dec 5, 2019, 9:35 am
  #740  
 
Join Date: Apr 2019
Posts: 14
Hi andydd,

I already did release the changes to the original script. The extension is not a closed source project but open source.
Originally Posted by Benchmarc
The code is available at https://github.com/bench-marc/ita-ma...ools-extension
I'm happy to receive pullrequests and publish new features to chrome web store.
Regarding background requests:
The extension does not perform any background requests without user initiation (click on the link/button).
At the moment there are two possible requests: GCM and WhereToCredit. I removed all Farefreak requests, as FareFreak seems not to be continued anymore.

Unlike backend applications like BookWithMatrix it is not possible to perform background requests in an extension without the user being able to notice, as everything is done in your browser (not on an external server).
Just open chrome's developer tools and check the network tab:

Here you can see the request to wheretocredit, when you click on "Calculate miles with wheretocredit.com".

I created the extension with modern frameworks and tools because I used it a lot and it was a hassle to maintain the script in one single file and load it into my browser.

It's still an open source project everybody can contribute to, but without the hassle of loading the js-script in your browser and with automatic updates.
armouredant likes this.
Benchmarc is offline  
Old Dec 6, 2019, 5:21 am
  #741  
 
Join Date: Oct 2013
Posts: 640
Originally Posted by andydd
*** Background requests - Privacy issues ***
If you have pricacy concerns you can also look at the source code of the plugin and check it yourself

I for myself stuck with tampermonkey + script loaded there, but if the plugin keeps on getting updated more and continued developing on and the original script is discontinued, I will for sure switch to the chrome plugin.

EDIT:
Just tried out the chrome plugin.
Unfortunately I cant make the switch yet to the plugin since much needed essentiall features are missing:
  • settings
  • auto load for stuff like gcmap,... (also under settings)
  • AA only has AA U.S. point of sale, no Europe POS anymore

But thanks for creating the plugin

Last edited by fuyao; Dec 6, 2019 at 5:29 am
fuyao is offline  
Old Dec 6, 2019, 8:31 am
  #742  
 
Join Date: Aug 2006
Location: Smyrna, GA, USA
Programs: DL FO 1MM
Posts: 1,761
Is deep-linking to Delta still broken? It seems to be for me, but the probability of a layer 8 error is high.
Pocatello likes this.
angra is offline  
Old Dec 6, 2019, 4:31 pm
  #743  
 
Join Date: Jul 2016
Posts: 146
Originally Posted by fuyao
If you have pricacy concerns you can also look at the source code of the plugin and check it yourself
The simple Javascript used in the plugin was good enough for me, I don't want to meddle into analyzing chrome plugins. plus it was easy for anyone to update/enhance the Javascript ( a realtively well known scripting language). That's the power & beauty of an opensource development. I myself contributed to a fix in the script in **** Version 0.24 ****.


Benchmarc It's totally fine that you have implemented this one as a chrome plugin. It's also fine that you can monetize on some of the referral links. Strictly speaking if a fork of this userscript is to be implemented as a chrome plugin.. it should be in it's own thread and not into the userscript thread.. I just don't want the scripts enhancements to stop ( as contributed by the community to the good ol' script).

Last edited by andydd; Dec 6, 2019 at 4:40 pm
andydd is offline  
Old Dec 13, 2019, 2:14 pm
  #744  
 
Join Date: Apr 2019
Posts: 14
Originally Posted by angra
Is deep-linking to Delta still broken? It seems to be for me, but the probability of a layer 8 error is high.
Can you share the itinerary?
Delta works for me with this itinerary
Benchmarc is offline  
Old Dec 13, 2019, 4:12 pm
  #745  
 
Join Date: Aug 2006
Location: Smyrna, GA, USA
Programs: DL FO 1MM
Posts: 1,761
I think it may be a user-specific issue or failure on my part. That exact itinerary ends up with me back at delta.com and a blank/new search. I do seem to recall there being 2 different search engines live and maybe I need to find a way to force use of the other one.
angra is offline  
Old Dec 13, 2019, 4:35 pm
  #746  
 
Join Date: Apr 2019
Posts: 14
Originally Posted by angra
I think it may be a user-specific issue or failure on my part. That exact itinerary ends up with me back at delta.com and a blank/new search. I do seem to recall there being 2 different search engines live and maybe I need to find a way to force use of the other one.
Try to right click -> open in incognito tab.
It seems like delta redirects to new search, when there is an old session stored in your browser.
angra likes this.
Benchmarc is offline  
Old Dec 13, 2019, 4:39 pm
  #747  
 
Join Date: Apr 2019
Posts: 14
Originally Posted by andydd
plus it was easy for anyone to update/enhance the Javascript ( a realtively well known scripting language)
The extension is written in Javascript.
The use of state of the art techniques and frameworks (Vuejs) should make it easy to enhance the code.
andydd likes this.
Benchmarc is offline  
Old Dec 28, 2019, 6:30 pm
  #748  
 
Join Date: Dec 2009
Location: IAH ↔ PAR
Posts: 777
Hi sorry, I hadn't been following this thread for the last month or so and missed all the fun.

First, thank you to Benchmarc for the updates and contributions you made to the userscript. But like others, I'm concerned that the fork will bifrucate the development efforts here. As you've seen, I have been happy to accept PRs from those who donate their time to contribute, your PR included!

With that said, the code base is getting fairly unwieldy for a single file user script. I plan to make some changes to split the code files apart into more manageable pieces. I don't know if vue is the best choice for the ui layer, but I'm not opposed to considering it if you'd like to try to merge it back in.

My priorities right now are to split out the code base, auto-generate the actual script, and publish to greasyfork, openuserjs, and possibly the different browser extension stores, in that order. That, outside of adding additional functionality of course
IAkH is offline  
Old Dec 31, 2019, 4:58 am
  #749  
 
Join Date: Aug 2008
Location: YXY
Posts: 3,506
What does this error signify?

"Error: Unable to find class IR6M2QD-k-i for itinRow."
sokolov is offline  
Old Dec 31, 2019, 5:01 am
  #750  
 
Join Date: Jan 2007
Posts: 4,709
Originally Posted by sokolov
What does this error signify?

"Error: Unable to find class IR6M2QD-k-i for itinRow."
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?
flashware 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.