Skip to content

Instantly share code, notes, and snippets.

@FromeXo
Last active April 9, 2020 11:08
Show Gist options
  • Select an option

  • Save FromeXo/451bca833bd9b0e3b9eae46a4ed493bc to your computer and use it in GitHub Desktop.

Select an option

Save FromeXo/451bca833bd9b0e3b9eae46a4ed493bc to your computer and use it in GitHub Desktop.
nej
var cDate = new Date();
function f_ts(time) {
let d = time.getFullYear() + '-' + ('0' + (time.getMonth()+1)).slice(-2) + '-' + ('0' + time.getDate()).slice(-2);
return d + ' ' + ('0' + (time.getHours())).slice(-2) +':'+('0' + (time.getMinutes())).slice(-2)+':00';
}
function h_t_m(h) {return ((parseInt(h) * 60) * 60) * 1000;}
function m_t_m(m) {return (m * 60) * 1000;}
function hm_t_m(x) {
x = x.split(':');
return (((parseInt(x[0]) * 60) * 60) * 1000) + ((parseInt(x[1]) * 60) * 1000);
}
var s = document.querySelectorAll('#listing .c-yourstudents-student');
var data = [];
for (let i=0; s.length > i; i++) {
let n = s[i].querySelector('.c-yourstudents-student__name button').innerHTML;
let lv = s[i].querySelector('.c-yourstudents-student__lastvisited span:last-child').innerHTML;
// Format "x timmar sedan"
if ( /\d+ timmar sedan/.test(lv) ) {
let ts = new Date(cDate.getTime() - h_t_m(lv.match(/\d{1,2}/)));
lv = f_ts(ts);
}
// Format "x minter sedan"
if ( /\d+ minuter sedan/.test(lv) ) {
let ts = new Date(cDate.getTime() - m_t_m(lv.match(/\d{1,2}/)));
lv = f_ts(ts);
}
// Format "I går vid xx:xx"
if ( /I går vid \d{1,2}:\d{1,2}/.test(lv) ) {
let m = hm_t_m(lv.match(/\d{1,2}:\d{1,2}$/).toString());
let mt = cDate.getTime() - h_t_m(cDate.getHours() + 24);
mt = mt - m_t_m(cDate.getMinutes());
lv = f_ts(new Date(mt + m));
}
// format "{dag} vid xx:xx"
if ( /(måndag|tisdag|onsdag|torsdag|fredag|lördag|söndag) vid \d{1,2}:\d{1,2}/.test(lv) ) {
let ld = lv.match(/^(mån|tis|ons|tors|fre|lör|sön)dag/);
let td = cDate.getDay();
let dn = ['söndag','måndag','tisdag','onsdag','torsdag','fredag','lördag'].indexOf(ld[0]);
let ds = dn > td ? dn + 1:td - dn;
let hm = hm_t_m(lv.match(/\d{1,2}:\d{1,2}$/).toString());
let mt = (cDate.getTime() - h_t_m((ds * 24) + cDate.getHours())) - m_t_m(cDate.getMinutes());
lv = f_ts(new Date(mt + hm));
}
// Format "den x {månad}"
if ( /den \d{1,2} (januari|februari|mars|april|maj|juni|juli|augusti|september|oktober|november|december)/.test(lv) ) {
let m = ['January','February','March','April','May','June','July','August','September','October','November','December'];
let sm = ['januari','februari','mars','april','maj','juni','juli','augusti','september','oktober','november','december'];
let cm = lv.match(/(januari|februari|mars|april|maj|juni|juli|augusti|september|oktober|november|december)$/);
let mi = sm.indexOf(cm[0]);
let day = lv.match(/\d{1,2}/);
let ds = m[mi] + ' ' + day[0] + ', ' + cDate.getFullYear() + ' 12:00:00';
lv = f_ts(new Date(ds));
}
data.push({name:n,lastvisited:lv});
}
var win = window.open("data:text/json");
win.document.write(JSON.stringify(data));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment