Export times from Cube Timer

Exports a list of times to import on Twisty Timer

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

// ==UserScript==
// @name        Export times from Cube Timer
// @namespace   cubetimer
// @description Exports a list of times to import on Twisty Timer
// @include     http://www.cubetimer.com/
// @author      SoKeT
// @version     1
// ==/UserScript==

let selector = "body > table:nth-child(3) > tbody:nth-child(1) > tr:nth-child(1) > td:nth-child(2)";
let $container = $(selector);
let $button = $("<button id='export-times'>Export times</button>").appendTo($container);;
let $download = $("<a id='download' download='times.txt' style='display: block'>Download</a>").appendTo($container).hide();

$button.click(function() {
  let formattedList = "";
  
  $.each(time_list, function(index, value) {
    let time = Math.floor((value / 1000) * 100) / 100;
    let date = new Date();
    date.setSeconds(date.getSeconds() - (time_list.length - index) * 30);
    let formattedTime = '"' + time + '"; ""; "' + date.toISOString() + '"\r\n';
    formattedList += formattedTime;
  });

  let file = createFile(formattedList);
  $download.attr("href", file).show();
  console.log(formattedList);
});

function createFile(text) {
  let data = new Blob([text], {type: "octet/stream"});
  let file = window.URL.createObjectURL(data);
  return file;
};