/* * getmmb.js * * Hack to load MMBs into spacex2.slapbet.org's MMB editor * John Kielkopf - 6/2/2014 * version 1.1 */ function wid_to_gid(wid) { return parseInt(String(wid),36)^31578 } function gid_to_wid(gid) { return parseInt((gid^31578)).toString(36); } function getFrameMmb(frame,load_all){ frame = parseInt(frame,10); if(!frame){ alert('You must first select a part.'); return; } var part = Math.ceil((frame)/20); var frame_index = (frame - ((part-1)*20)) - 1; var sheet_table = { // List of sheet keys that contain MMBs for specific parts 1:"1sVwOkxW6tBq7CcqmXBOkb9frlgdocUyRplvk05v6seg", 2:"1w5LCJxUDSF1yILkDppSXMkiL1Li2K89dbRRIGv4A_6I", 3:"1O_p3hofqWaMTDJYRYKM0if4Xv64av4JBIkEmReLXytA", 4:"1mE469DE0zUGy9iuySWWQGgFDt2HC5ke4hUy_posFp4o", 5:"1b4kaKBYUx8iI7-__15H5CEr4_73tXaXlIwPa2gPj8Fo", 6:"1YJXUI6-hOJsPsuZr1t1kJ-iSNcI26sFl_gEMShvi1Hk", 7:"1dIFfIZWXZRea72AI6R9thDxv5r5cPWbXgkvquCcXSIQ", 8:"18vhTHN6WUB5dKhJEGGi_MASHbmAsaoIohAFvpFZT7vk", 9:"11zI2scQWLdat_qRL3zlm-h4QznfOiF_18hByEt9xiyo", 10:"1JkT-RmkcrClqAG_6cWnG5VrQUYSmggdA19jc2CRDlcU", 11:"1XzqmeR0Ylxmdk_nKBG4jmbfXnQSNaJ5v0b4d9qXZgms", 12:"1Ez8lX_-KfY6dbMKVokPnkPjdOp3K3PARNfYSsmHjA-g", 13:"15lyFN4FYJ3uyLibJL2TKouZBcnpIaYSsw293HljH6So", 14:"1b1hQ1as-MJ6C3rBfuAIpKnemEjcVtBo7d_HPRFyWBt8", 15:"19-dfEOiOy2L1RpFtDT8v5d7DPjt7g9xUL5KeUc3zfOU" }; if(sheet_table[part]){ var url = 'https://spreadsheets.google.com/feeds/list/'+sheet_table[part]+'/'+gid_to_wid(0)+'/public/values?alt=json-in-script'; //console.log('Loading: '+url); $.ajax({ type: 'GET', url: url, dataType: 'jsonp', success: function(data, s, xhr){ //console.log(data); var mmbkey = 'gsx$latestmmbcode'; if(data['feed'] && data['feed']['entry'] && data['feed']['entry'][0][mmbkey]){ var framemmb = '', fullmmb = ''; for(var i in data['feed']['entry']){ var entry = data['feed']['entry'][i]; //console.log(entry); var mmb = $.trim(entry[mmbkey]['$t']); if(mmb.length && i < 20){ if(i == frame_index){ framemmb = mmb; } if(fullmmb.length){ fullmmb += '='; } fullmmb += 'FRAME'+i+':'+mmb; } } if(!framemmb.length && !load_all){ alert('No MMB currently entered for frame '+frame); } else if(!fullmmb.length){ alert('No MMBs currently entered for part '+part); } else { if(load_all){ $('textarea#globalMmb').val(fullmmb).change(); } else { $('textarea#frameMmb').val(framemmb).change(); } } } else { alert('Unable to parse MMBs from sheet '+part); } }, error: function(xhr, s, e) { alert("Error loading MMB sheet "+part+" from: "+url); } }); } } $(document).ready(function() { var loadFrameButton = $(''); loadFrameButton.click(function(){ getFrameMmb($("#frameNumber").text()); }); var loadGlobalButton = $(''); loadGlobalButton.click(function(){ getFrameMmb($("#frameNumber").text(),true); }); $('body').prepend(loadGlobalButton); $('body').prepend(loadFrameButton); });