Skip to content

Instantly share code, notes, and snippets.

@Vazkii
Created August 3, 2017 16:03
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Vazkii/53329437af3bcf5032a9edb3a98aaed9 to your computer and use it in GitHub Desktop.
Save Vazkii/53329437af3bcf5032a9edb3a98aaed9 to your computer and use it in GitHub Desktop.
Client side SIT to Minaraishi importer
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();
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