Created
August 3, 2017 16:03
-
-
Save Vazkii/53329437af3bcf5032a9edb3a98aaed9 to your computer and use it in GitHub Desktop.
Client side SIT to Minaraishi importer
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
javascript:function sit__importAccounts(t){if(sit__validateView()){var e=window.prompt("SIT Username:"),i="https://schoolido.lu/api/accounts/?owner__username="+e;$.get(i,function(t){var e=t.count;if(0==e)alert("No accounts found.");else{var i=void 0;if(1==e)i=t.results[0];else{for(var a="Pick your account:\n",s=0;e>s;s++)a+="\n"+(s+1)+": "+t.results[s].nickname+"-"+t.results[s].language;var r=window.prompt(a);if(t.results.length<r)return void alert("That account doesn't exist.");i=t.results[r-1]}sit__setStatus("Importing "+i.nickname+"-"+i.language+"'s cards."),sit__importCards("https://schoolido.lu/api/ownedcards/?stored=Deck&card__rarity=UR,SSR,SR&ordering=-card__rarity,-idolized,-card__attribute,-card&owner_account="+i.id,i)}})}}function sit__importCards(t,e){$.get(t,function(t){for(var i=t.count,a=t.results.length,s=0;a>s;s++){var r=t.results[s];r?(console.log("Found card "+r.card),sit__cards.push([r.card,r.idolized,r.skill_slots,r.skill]),sit__setStatus("Importing "+e.nickname+"-"+e.language+"'s cards. ("+sit__cards.length+"/"+i+")")):console.log("Missing card? "+r)}var n=t.next;null==n?(console.log("Loaded "+sit__cards.length+" cards."),console.log(sit__cards),$('.entry-extend-area li:visible[data-value="true"]').click(),sit__addNextCard()):sit__importCards(n.replace("http://","https://"),e)})}function sit__addCard(t,e,i,a){console.log("Adding card "+t+" with "+i+" slots and skill "+a+(e?" (idolized)":" (unidolized)"));var s='data-id="'+t+'"',r=0;next=function(){setTimeout(function(){sit__addNextCard()},50),clearInterval(interval)},interval=setInterval(function(){console.log("Waiting for "+t);var n=$(".dialog-newcomer["+s+"]:visible");return 0==n.length?($("#newcomer-info li["+s+"] div.frame").click(),r++,void(r>10&&next())):(e||n.find('.dialog-entry-extend li[data-value="false"]').click(),n.find('.dialog-entry-slot li[data-value="'+i+'"]').click(),n.find('.dialog-entry-skilllv li[data-value="'+a+'"]').click(),n.find(".do-ok").click(),void next())},100)}function sit__addNextCard(){sit__index<sit__cards.length?(sit__setStatus("Importing card "+sit__cards[sit__index][0]+", "+(sit__index+1)+"/"+sit__cards.length),sit__addCard(sit__cards[sit__index][0],sit__cards[sit__index][1],sit__cards[sit__index][2],sit__cards[sit__index][3]),sit__index++):($('.entry-extend-area li:visible[data-value="false"]').click(),sit__setStatus(""),alert("Done! Make sure to save your account now."))}function sit__setStatus(t){0==sit__header.length&&(sit__header=$("header h1").text()),0==t.length?$("header h1").text(sit__header):$("header h1").text(sit__header+" ("+t+")")}function sit__validateView(){var t=$("#newcomer-info li .frame");return t.length<670?(alert('Not all cards are visible. Make sure you\'re in the "New cards" tab, that "Number of cards displayed" is "All", and that all attributes and rarities are checked.\n\nSometimes cards may not load properly, so try pressing All until you can see them all.'),!1):!0}sit__index=0,sit__cards=[],sit__header="",sit__importAccounts(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
sit__index = 0; | |
sit__cards = []; | |
sit__header = ''; | |
sit__importAccounts(); | |
function sit__importAccounts(id) { | |
if(!sit__validateView()) | |
return; | |
var user = window.prompt('SIT Username:'); | |
var url = 'https://schoolido.lu/api/accounts/?owner__username=' + user; | |
$.get(url, function(data) { | |
var accs = data.count; | |
if(accs == 0) | |
alert("No accounts found."); | |
else { | |
var acc = undefined; | |
if(accs == 1) | |
acc = data.results[0]; | |
else { | |
var msg = 'Pick your account:\n'; | |
for(var i = 0; i < accs; i++) | |
msg += '\n' + (i + 1) + ': ' + data.results[i].nickname + '-' + data.results[i].language; | |
var n = window.prompt(msg); | |
if(data.results.length < n) { | |
alert('That account doesn\'t exist.'); | |
return; | |
} else acc = data.results[n - 1]; | |
} | |
sit__setStatus('Importing ' + acc.nickname + '-' + acc.language + '\'s cards.'); | |
sit__importCards('https://schoolido.lu/api/ownedcards/?stored=Deck&card__rarity=UR,SSR,SR&ordering=-card__rarity,-idolized,-card__attribute,-card&owner_account=' + acc.id, acc); | |
} | |
}); | |
} | |
function sit__importCards(url, acc) { | |
$.get(url, function(data) { | |
var realCount = data.count; | |
var count = data.results.length; | |
for(var i = 0; i < count; i++) { | |
var res = data.results[i]; | |
if(res) { | |
console.log('Found card ' + res.card); | |
sit__cards.push([res.card, res.idolized,res.skill_slots,res.skill]); | |
sit__setStatus('Importing ' + acc.nickname + '-' + acc.language + '\'s cards. (' + sit__cards.length + '/' + realCount + ')'); | |
} else console.log("Missing card? " + res); | |
} | |
var next = data.next; | |
if(next == null) { | |
console.log('Loaded ' + sit__cards.length + ' cards.'); | |
console.log(sit__cards); | |
$('.entry-extend-area li:visible[data-value="true"]').click(); | |
sit__addNextCard(); | |
} | |
else sit__importCards(next.replace('http://', 'https://'), acc); | |
}); | |
} | |
function sit__addCard(id, idolize, slots, level) { | |
console.log('Adding card ' + id + ' with ' + slots + ' slots and skill ' + level + (idolize ? ' (idolized)' : ' (unidolized)')); | |
var dataid = 'data-id="'+id+'"'; | |
var tries = 0; | |
next = function() { | |
setTimeout(function() { | |
sit__addNextCard(); | |
}, 50); | |
clearInterval(interval); | |
}; | |
interval = setInterval(function() { | |
console.log('Waiting for ' + id); | |
var holder = $('.dialog-newcomer['+dataid+']:visible'); | |
if(holder.length == 0) { | |
$('#newcomer-info li['+dataid+'] div.frame').click(); | |
tries++; | |
if(tries > 10) | |
next(); | |
return; | |
} | |
if(!idolize) | |
holder.find('.dialog-entry-extend li[data-value="false"]').click(); | |
holder.find('.dialog-entry-slot li[data-value="'+slots+'"]').click(); | |
holder.find('.dialog-entry-skilllv li[data-value="'+level+'"]').click(); | |
holder.find('.do-ok').click(); | |
next(); | |
}, 100); | |
} | |
function sit__addNextCard() { | |
if(sit__index < sit__cards.length) { | |
sit__setStatus('Importing card ' + sit__cards[sit__index][0] + ', ' + (sit__index + 1) + '/' + sit__cards.length); | |
sit__addCard(sit__cards[sit__index][0],sit__cards[sit__index][1],sit__cards[sit__index][2],sit__cards[sit__index][3]); | |
sit__index++; | |
} else { | |
$('.entry-extend-area li:visible[data-value="false"]').click(); | |
sit__setStatus(''); | |
alert('Done! Make sure to save your account now.'); | |
} | |
} | |
function sit__setStatus(status) { | |
if(sit__header.length == 0) | |
sit__header = $('header h1').text(); | |
if(status.length == 0) | |
$('header h1').text(sit__header); | |
else $('header h1').text(sit__header + ' (' + status + ')'); | |
} | |
function sit__validateView() { | |
var frames = $('#newcomer-info li .frame'); | |
if(frames.length < 670) { | |
alert('Not all cards are visible. Make sure you\'re in the "New cards" tab, that "Number of cards displayed" is "All", and that all attributes and rarities are checked.\n\nSometimes cards may not load properly, so try pressing All until you can see them all.'); | |
return false; | |
} return true; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment