Created
July 24, 2020 02:19
-
-
Save MosheBerman/1fe8e49219c8f00859517aaf9936cacc to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 1. Filter matches to 6-8cM | |
* 2. Open the developer console in Chrome. | |
* 3. Paste this. | |
* 4. Scroll through matches. As you scroll they, will be automatically noted. | |
* Known bugs: | |
* - The first page of matches won't be automatic, but the rest will. | |
* - You may need to refresh the page to see notes. | |
* | |
* For educational purposes only. | |
*/ | |
const pairOfIdsFromNode=e=>{if(!e)return void console.warn("No node.");const t=e.href;if(!e.href||0==e.href.length)return void console.warn("empty url.");if(!t.includes("/compare/"))return void console.warn("Not a compare URL.");const r=t.split("/").splice(-3),o=r[0],n=r[2];return o&&n?{myId:o,theirId:n}:void 0};let matchListBody=()=>document.querySelector(".match-list-body");const noteNodes=e=>{e.filter(e=>"A"===e.tagName).map(pairOfIdsFromNode).filter(e=>void 0!==e&&null!==e.myId&&null!==e.theirId).forEach(e=>requestForMatch(e))};let mutationHandler=(e,t)=>{[].concat(...e.map(e=>Array.from(e.addedNodes))).filter(e=>"A"===e.tagName).map(pairOfIdsFromNode).filter(e=>void 0!==e&&null!==e.myId&&null!==e.theirId).forEach(e=>requestForMatch(e))};const mutationObserver=new MutationObserver(mutationHandler),mutationObserverConfig={childList:!0,subtree:!0};mutationObserver.observe(matchListBody(),mutationObserverConfig);const note=()=>JSON.stringify({note:"under 8cM"}),requestURLFor=(e,t)=>`https://www.ancestry.com/discoveryui-matchesservice/api/samples/${e}/matches/${t}`,requestForMatch=({myId:e,theirId:t})=>{const r=requestURLFor(e,t),o=new XMLHttpRequest;o.addEventListener("readystatechange",e=>{console.log(`Req state change: ${e.target.status}`)}),o.open("PUT",r,!0),o.setRequestHeader("Content-Type","application/json"),o.send(note())}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment