Skip to content

Instantly share code, notes, and snippets.

@sse87
Last active June 22, 2018 14:13
Show Gist options
  • Save sse87/02b123f039e80b329f3a226fe6629736 to your computer and use it in GitHub Desktop.
Save sse87/02b123f039e80b329f3a226fe6629736 to your computer and use it in GitHub Desktop.
HM leikur, stigatafla export (Tampermonkey)
// ==UserScript==
// @name HM leikur, stigatafla export
// @namespace http://tampermonkey.net/
// @version 0.1
// @description try to take over the world!
// @author You
// @match https://leikir.betra.is/league.php?l=1444
// @grant GM_getResourceText
// @grant GM_addStyle
// @resource bootstrapCSS https://stackpath.bootstrapcdn.com/bootstrap/4.1.1/css/bootstrap.min.css
// @require https://code.jquery.com/jquery-3.3.1.min.js
// ==/UserScript==
(function() {
'use strict'
const $ = window.$
const newCSS = GM_getResourceText('bootstrapCSS')
GM_addStyle (newCSS)
const players = [
{ name: 'Daníel Sveinsson', url: 'https://leikir.betra.is/userdetail.php?u=5647&c=30' },
{ name: 'Djonnybegood', url: 'https://leikir.betra.is/userdetail.php?u=11270&c=30' },
{ name: 'Einar', url: 'https://leikir.betra.is/userdetail.php?u=11164&c=30' },
{ name: 'Elfa Dögg Marteinsdóttir', url: 'https://leikir.betra.is/userdetail.php?u=10437&c=30' },
{ name: 'Fríða Einarsdóttir', url: 'https://leikir.betra.is/userdetail.php?u=10479&c=30' },
{ name: 'Gudmundur Magnusson', url: 'https://leikir.betra.is/userdetail.php?u=10400&c=30' },
{ name: 'Guðjón Ingi Magnússon', url: 'https://leikir.betra.is/userdetail.php?u=10446&c=30' },
{ name: 'Gummalingur', url: 'https://leikir.betra.is/userdetail.php?u=9125&c=30' },
{ name: 'Halldór Guðnason', url: 'https://leikir.betra.is/userdetail.php?u=10468&c=30' },
{ name: 'Hansina', url: 'https://leikir.betra.is/userdetail.php?u=10464&c=30' },
{ name: 'Helga Þóra', url: 'https://leikir.betra.is/userdetail.php?u=2176&c=30' },
{ name: 'Jóhanna Hauksdóttir', url: 'https://leikir.betra.is/userdetail.php?u=10470&c=30' },
{ name: 'Sigurður Snær Eiríksson', url: 'https://leikir.betra.is/userdetail.php?u=10444&c=30' },
{ name: 'Silja ', url: 'https://leikir.betra.is/userdetail.php?u=10471&c=30' },
{ name: 'Soffía Gunnlaugsdóttir', url: 'https://leikir.betra.is/userdetail.php?u=10481&c=30' }
]
const table = $('.webform').css({
marginBottom: 20
})
const newTable = $('<table>', {
class: 'table'
}).css({
margin: '20px 0'
})
const crawlToExportPoints = (data, textStatus, jqXHR) => {
const points = []
$(data).find('.webform tr').each((i, tr) => {
if ($(tr).find('td').length === 7) {
// console.log(`i:${i} - td.length:${$(tr).find('td').length} - tr:`, tr);
$(tr).find('td').each((k, td) => {
if (k === 5) {
points.push($(td).text())
// console.log(` k:${k} - td:`, $(td).text());
}
});
}
});
return points
}
const fetchBtn = $('<button>', { text: 'Sækja stigasöguna' }).click(() => {
let consoleString = ''
const promises = []
players.forEach((player) => {
promises.push(
$.ajax({
url: player.url
}).then(crawlToExportPoints).then((points) => {
player.points = points
return player
})
)
})
Promise.all(promises).then((players) => {
console.log('All done! - players:', players)
players.forEach((player) => {
const newTableRow = $('<tr>').appendTo(newTable)
newTableRow.append(
$('<td>', { text: player.name })
)
consoleString += player.name
player.points.forEach((point) => {
newTableRow.append(
$('<td>', { text: point })
)
consoleString += '\t' + point
})
consoleString += '\n'
})
console.log('consoleString:\n' + consoleString)
})
/*.then((points) => {
console.log('points:', points.join('\t'))
});*/
})
table.after(fetchBtn)
fetchBtn.after(newTable)
})()
/*
let sb = '';
table.find('tr').each((i, tr) => {
console.log(`i:${i} - tr:`, tr);
if (i > 0) {
$(tr).find('td').each((k, td) => {
console.log(` k:${k} - td:`, $(td).text());
if (k === 1) {
sb += $(td).text() + '\t';
}
if (k === 2) {
const href = 'https://leikir.betra.is/' + $(td).find('a').attr('href');
console.log(' href:', href);
sb += href;
}
});
sb += '\n';
}
});
console.log('');
console.log('sb:', sb);
*/
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment