scripts/mapillary_sequences_userscript/index.js

67 lines
2.0 KiB
JavaScript

// script à lancer dans le navigateur pour récupérer toutes les séquences d'un compte
// pour que cela fonctionne il faut aller sur la page d'un utilisateur, https://www.mapillary.com/app/user/tykayn
// puis scroller pour voir toutes les séquences
// et lancer ce script dans la console js pour avoir à la fin un tableau de toutes les séquences.
// ouvrir le drawer de séquene key
function toggle_advanced_info () {
let _dots = document.querySelector('.three-dots')
_dots.click
}
sequences_list = []
function filter_sequences_id () {
filteredArray = sequences_list.filter(function (item, pos) {
return sequences_list.indexOf(item) == pos
})
console.log('sequences_list', filteredArray)
}
function click_block_number (num) {
console.log('click block num', num)
let sequence_block = document.querySelector('drawer-sequence-item.ng-star-inserted:nth-child(' + num + ') > a:nth-child(1) > div:nth-child(1) > div:nth-child(1) > i:nth-child(2)')
if (sequence_block) {
sequence_block.click()
} else {
console.info('pas de block')
}
}
function add_sequence_id () {
let id_sequence_container = document.querySelector('.content > div:nth-child(1) > div:nth-child(2) > app-copy-field:nth-child(2) > div:nth-child(1) > div:nth-child(1)')
id = id_sequence_container.innerText
sequences_list.push(id)
}
function iterate_blocks (initial_block = 4, max_block = 6, waiting = 300) {
// compter les blocs
let listing_blocs = document.querySelectorAll('drawer-sequence-item')
console.log('listing_blocs', listing_blocs.length)
// sequences_list = []
let ii = 1 * initial_block
let jj = 1 * initial_block
listing_blocs.forEach((elem) => {
if (ii <= max_block) {
setTimeout(() => {
jj++
click_block_number(jj)
add_sequence_id()
}, ii * waiting)
ii++
}
})
filter_sequences_id()
}
// toggle_advanced_info()
// le premier bloc qui permet de cliquer sur une séquence est le 5e à partir de zéro
// on définit un max d'itérations à 20 pour tester, et 300 milisecondes entre chaque
iterate_blocks(20, 25, 300)