Advertisement
Kamui_Kun

Set Rune Page Data through LCU

Jan 17th, 2018
131
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. var GlobalPath = "C:\\Users\\Cam\\'~\\.npm-global'\\node_modules";
  2. var XMLHttpRequest = require(GlobalPath + "\\xmlhttprequest").XMLHttpRequest;
  3. var FileReader = require(GlobalPath + "\\FileReader");
  4. var btoa = require(GlobalPath + "\\btoa");
  5.  
  6.  
  7. function httpGet(theUrl) {
  8.     var xmlHttp = new XMLHttpRequest();
  9.     xmlHttp.open( "GET", theUrl, false);
  10.     xmlHttp.send( null );
  11.     return xmlHttp.responseText; }
  12.  
  13. function getRuneData(champID, Elo) {
  14.     var urlBase = 'http://api.champion.gg/v2/champions/';
  15.     var apiKey = '{ChampionGgApiKey}';
  16.     var params = champID.toString() + '?elo=' + Elo.toString() + '&limit=200&champData=hashes';
  17.     var url = urlBase + params + '&api_key=' + apiKey;
  18.     return JSON.parse(httpGet(url))[0]['hashes']['runehash']; }
  19.  
  20. function getHighestWinrate(hashObj) {
  21.     return (hashObj['highestWinrate']); }
  22.  
  23. function getMostPlayed(hashObj) {
  24.     return (hashObj['highestCount'])}
  25.  
  26. function hashToArray(hash) {
  27.     return hash['hash'].split('-'); }
  28.  
  29. function doItAll( ID, ELO, RTN ) {
  30.     var temp = ( getRuneData(ID, ELO) );
  31.     //alert( JSON.stringify( temp ) );
  32.     var _return;
  33.     switch ( RTN.toString().toUpperCase() ) {
  34.         case 'MOSTPLAYED': _return = getMostPlayed( temp ); break;
  35.         case 'HIGHESTWINRATE': _return = getHighestWinrate( temp ); break;
  36.         default: _return = null; break; }
  37.     //alert( _return );
  38.     return hashToArray( _return ); }
  39.  
  40. function RuneDataFromIdList( ids ) {
  41.     var Rune_Template = JSON.parse( '{"current":false,"formatVersion":4,"id":' + pageid + ',"isActive":true,"isDeletable":true,"isEditable":true,"isValid":true,"name":"Generated Page","order":0,"primaryStyleId":0,"selectedPerkIds":[],"subStyleId":0}' );
  42.  
  43.     var sel_Sub = ( ids.splice( 6,2 ) );
  44.     var sel_Pri = ( ids.splice( 1,4 ) );
  45.     Rune_Template.primaryStyleId = ids[0];
  46.     Rune_Template.subStyleId =  ids[1];
  47.     Rune_Template.selectedPerkIds = sel_Pri.concat( sel_Sub );
  48.     return JSON.stringify( Rune_Template );
  49. }
  50.  
  51. function httpPut( theUrl,data,authUser,authPass ) {
  52.     var xhr = new XMLHttpRequest();
  53.     xhr.open( "PUT", theUrl, false );
  54.     xhr.setRequestHeader( "Content-type", "application/json" );
  55.     var temp = (authUser + ":" + authPass);
  56.     xhr.setRequestHeader( "Authorization", "Basic " + btoa( temp ) );
  57.     xhr.send( data );
  58.     //console.log( "Basic " + btoa( authUser + ":" + authPass ) );
  59. };
  60.  
  61. var pageid = '872776763';
  62. (function(){
  63.   var champid = '69';
  64.   var elo = 'GOLD';
  65.   var runehash = 'highestwinrate';
  66.   var tokenpass = '{token}';
  67.   var port = '{port}'
  68.   httpPut( ( "https://127.0.0.1:" + port + "/lol-perks/v1/pages/" + pageid ), RuneDataFromIdList( doItAll( champid, elo, runehash ) ), "riot", tokenpass );
  69. })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement