105 lines
3.5 KiB
JavaScript
105 lines
3.5 KiB
JavaScript
// ==UserScript==
|
|
// @name Arcaea Offline Get Data Script
|
|
// @namespace http://tampermonkey.net/
|
|
// @version 0.1
|
|
// @description wow
|
|
// @author 283375
|
|
// @match https://arcaea.lowiro.com/*/profile/*
|
|
// @icon https://arcaea.lowiro.com/icon/favicon-96x96.png
|
|
// @grant none
|
|
// @downloadURL https://gitea.283375.xyz/283375/arcaea-offline-tampermonkey-scripts/raw/branch/master/get-arcaea-online-data.js
|
|
// ==/UserScript==
|
|
|
|
(function() {
|
|
'use strict';
|
|
|
|
const req = new XMLHttpRequest()
|
|
req.addEventListener("load", saveRequest)
|
|
req.withCredentials = true
|
|
req.open("GET", "https://webapi.lowiro.com/webapi/score/rating/me")
|
|
req.send()
|
|
const req2 = new XMLHttpRequest()
|
|
req2.addEventListener("load", saveRequest)
|
|
req2.withCredentials = true
|
|
req2.open("GET", "https://webapi.lowiro.com/webapi/user/me")
|
|
req2.send()
|
|
|
|
const style = document.createElement('style')
|
|
style.innerHTML = `
|
|
div.arcofl-container {
|
|
position: fixed;
|
|
left: 50px;
|
|
top: 25px;
|
|
padding: 1rem 1.5rem;
|
|
border-radius: 7.5px;
|
|
background: linear-gradient(225deg, rgba(39, 166, 229, 0.65), rgba(39, 166, 229, 0.28));
|
|
display: flex;
|
|
flex-direction: column;
|
|
z-index: 5000;
|
|
}
|
|
|
|
a.arcofl-download-button {
|
|
display: block;
|
|
background-color: #e9e9e9;
|
|
border-radius: 7.5px;
|
|
cursor: pointer;
|
|
margin: 0.5em 0;
|
|
padding: 0.5em 1em;
|
|
outline: 2px solid rgba(255, 255, 255, 0);
|
|
transition: 0.375s;
|
|
}
|
|
|
|
a.arcofl-download-button:hover {
|
|
background-color: #f0f0f0;
|
|
outline: 2px solid #27a6e5;
|
|
}
|
|
|
|
span.arcofl-download-button-error {
|
|
display: block;
|
|
background: linear-gradient(125deg, hsl(5deg, 80%, 70%), hsl(5deg, 80%, 50%));
|
|
color: hsl(5deg, 20%, 100%);
|
|
border-radius: 7.5px;
|
|
margin: 0.5em 0;
|
|
padding: 0.5em 1em;
|
|
}
|
|
`
|
|
document.head.append(style)
|
|
|
|
let div = document.createElement('div')
|
|
div.classList.add('arcofl-container')
|
|
div.innerText = 'Arcaea Offline'
|
|
document.body.appendChild(div)
|
|
|
|
function saveRequest(e) {
|
|
if (e.length < e.total) {
|
|
alert('Incomplete request')
|
|
}
|
|
|
|
const url = this.responseURL
|
|
const regex = /.*\.lowiro\.com\//gi
|
|
const replacedUrl = url.replace(regex, '')
|
|
const fileName = replacedUrl.replaceAll('/', '_') + '.json'
|
|
try {
|
|
const content = this.responseText
|
|
const contentJson = JSON.parse(content)
|
|
if (!contentJson.success) throw new Error(`status ${contentJson.error_code}`)
|
|
|
|
// https://stackoverflow.com/a/65050772/16484891
|
|
// CC BY-SA 4.0
|
|
const file = new Blob([content], {type: 'text/plain'})
|
|
window.URL = window.URL || window.webkitURL
|
|
const buttonLink = document.createElement('a')
|
|
buttonLink.innerText = fileName
|
|
buttonLink.setAttribute("href", window.URL.createObjectURL(file))
|
|
buttonLink.setAttribute("download", fileName)
|
|
buttonLink.classList.add('arcofl-download-button')
|
|
div.append(buttonLink)
|
|
} catch (e) {
|
|
const errorSpan = document.createElement('span')
|
|
errorSpan.innerText = `${fileName} ${e}`
|
|
errorSpan.classList.add('arcofl-download-button-error')
|
|
console.error(fileName, url, e)
|
|
div.append(errorSpan)
|
|
}
|
|
}
|
|
})(); |