diff --git a/app.js b/app.js index 3454559..08cf8e2 100644 --- a/app.js +++ b/app.js @@ -1,5 +1,6 @@ const electron = require('electron'); const LCUConnector = require('lcu-connector'); +const createSpec = require('./createSpec'); const connector = new LCUConnector(''); const { app } = electron; @@ -25,12 +26,13 @@ app.on('ready', () => { mainWindow.loadURL('file://' + root + '/index.html'); // Check if dev env FIXME - //mainWindow.openDevTools(); + // mainWindow.openDevTools(); // Avoid white page on load. mainWindow.webContents.on('did-finish-load', () => { - connector.on('connect', (data) => { - mainWindow.webContents.send('lcu-load', data); + connector.on('connect', async (data) => { + const spec = await createSpec(data); + mainWindow.webContents.send('lcu-load', Object.assign(data, { spec })); }); connector.start(); diff --git a/app/css/style.css b/app/css/style.css index fc1ea98..81e5220 100644 --- a/app/css/style.css +++ b/app/css/style.css @@ -12,6 +12,15 @@ html { float: right; } +.swagger-section .discord { + width: 28px; + height: 28px; + display: block; + background: transparent url(../images/discord.svg) 100%/100% no-repeat; + float: right; + margin: -1px 4px 0 0; +} + .swagger-section #swagger-ui-container:empty { display: none; } diff --git a/app/index.html b/app/index.html index 51b1062..8f0d512 100644 --- a/app/index.html +++ b/app/index.html @@ -34,17 +34,18 @@ IPC.on('lcu-load', (event, data) => { - const { username, password, address, port } = data; + const { username, password, address, port, spec } = data; const header = `Basic ${btoa(`${username}:${password}`)}`; const auth = new SwaggerClient.ApiKeyAuthorization("Authorization", header, "header"); + window.swaggerUi = new SwaggerUi({ - url: `https://${username}:${password}@${address}:${port}/v2/swagger.json`, - authorizations: { riot: auth }, - dom_id: "swagger-ui-container", - supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'], + spec, + validatorUrl: null, + authorizations: { riot: auth }, + dom_id: "swagger-ui-container", + // supportedSubmitMethods: ['get', 'post', 'put', 'delete', 'patch'], onComplete(swaggerApi, swaggerUi) { - $('pre code').each(function(i, e) { hljs.highlightBlock(e) }); @@ -52,7 +53,6 @@ window.swaggerUi.api.clientAuthorizations.add("riot", auth); }, onFailure(data) { - console.log(data); alert("Trouble loading SwaggerUI"); // REMOTE.getCurrentWindow().close(); }, @@ -64,11 +64,14 @@ }); window.swaggerUi.load(); - }); function _handleGithubLink(event) { - shell.openExternal('https://github.com/pupix/rift-explorer'); + shell.openExternal('https://github.com/pupix/rift-explorer'); + } + + function _handleDiscordLink(event) { + shell.openExternal('https://discord.gg/hPtrMcx'); } diff --git a/app/swagger-ui.js b/app/swagger-ui.js index f633504..ddae0e5 100644 --- a/app/swagger-ui.js +++ b/app/swagger-ui.js @@ -295,7 +295,7 @@ Handlebars.registerHelper('renderTextParam', function(param) { }); this["Handlebars"]["templates"]["main"] = Handlebars.template({"1":function(depth0,helpers,partials,data) { - var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression, buffer = "
" + var stack1, lambda=this.lambda, escapeExpression=this.escapeExpression, buffer = "
" + escapeExpression(lambda(((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.title : stack1), depth0)) + "
\n
"; stack1 = lambda(((stack1 = (depth0 != null ? depth0.info : depth0)) != null ? stack1.description : stack1), depth0); @@ -25110,6 +25110,7 @@ SwaggerUi.Views.MainView = Backbone.View.extend({ } } + // set up the UI for input this.model.auths = []; @@ -25122,7 +25123,6 @@ SwaggerUi.Views.MainView = Backbone.View.extend({ value: value }); } - if ('validatorUrl' in opts.swaggerOptions) { // Validator URL specified explicitly this.model.validatorUrl = opts.swaggerOptions.validatorUrl; diff --git a/createSpec.js b/createSpec.js index 41254c0..7261ff0 100644 --- a/createSpec.js +++ b/createSpec.js @@ -25,7 +25,7 @@ module.exports = async ({ address, port, username, password, protocol }) => { paths: {}, info: { 'description': 'Always up to date LCU API documentation', - 'title': 'LeagueClient', + 'title': 'Rift Explorer', 'version': builds.version }, produces: [ diff --git a/package.json b/package.json index 1eba238..c7a3fc4 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "rift-explorer", - "version": "1.0.3", + "version": "2.0.0", "description": "Explore the API of the League of Legends client", "main": "app.js", "scripts": { @@ -10,7 +10,10 @@ "author": "Robert Manolea ", "license": "MIT", "dependencies": { - "lcu-connector": "^1.0.0" + "lcu-connector": "^1.0.0", + "request": "^2.87.0", + "request-promise": "^4.2.2", + "mixin-deep": "^2.0.0" }, "devDependencies": { "electron": "^1.7.11", diff --git a/yarn.lock b/yarn.lock index 431f3c4..4383512 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1288,6 +1288,10 @@ locate-path@^2.0.0: p-locate "^2.0.0" path-exists "^3.0.0" +lodash@^4.13.1: + version "4.17.10" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.10.tgz#1b7793cf7259ea38fb3661d4d38b3260af8ae4e7" + lol-lockfile-parser@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/lol-lockfile-parser/-/lol-lockfile-parser-1.0.2.tgz#f42ad5fa3ad6921ca34a102ce288a0db8fd92453" @@ -1393,6 +1397,10 @@ minimist@^1.1.0, minimist@^1.1.3, minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" +mixin-deep@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-2.0.0.tgz#9dfd525156720ec6cbee14fcb4b968253ba358ee" + mkdirp@0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.0.tgz#1d73076a6df986cd9344e15e71fcc05a4c9abf12" @@ -1678,6 +1686,10 @@ pseudomap@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" +psl@^1.1.24: + version "1.1.28" + resolved "https://registry.yarnpkg.com/psl/-/psl-1.1.28.tgz#4fb6ceb08a1e2214d4fd4de0ca22dae13740bc7b" + punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" @@ -1809,6 +1821,21 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" +request-promise-core@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.1.tgz#3eee00b2c5aa83239cfb04c5700da36f81cd08b6" + dependencies: + lodash "^4.13.1" + +request-promise@^4.2.2: + version "4.2.2" + resolved "https://registry.yarnpkg.com/request-promise/-/request-promise-4.2.2.tgz#d1ea46d654a6ee4f8ee6a4fea1018c22911904b4" + dependencies: + bluebird "^3.5.0" + request-promise-core "1.1.1" + stealthy-require "^1.1.0" + tough-cookie ">=2.3.3" + request@2.81.0: version "2.81.0" resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" @@ -1863,6 +1890,31 @@ request@^2.45.0: tunnel-agent "^0.6.0" uuid "^3.1.0" +request@^2.87.0: + version "2.87.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.87.0.tgz#32f00235cd08d482b4d0d68db93a829c0ed5756e" + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.6.0" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.1" + forever-agent "~0.6.1" + form-data "~2.3.1" + har-validator "~5.0.3" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.17" + oauth-sign "~0.8.2" + performance-now "^2.1.0" + qs "~6.5.1" + safe-buffer "^5.1.1" + tough-cookie "~2.3.3" + tunnel-agent "^0.6.0" + uuid "^3.1.0" + require-directory@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" @@ -1991,6 +2043,10 @@ stat-mode@^0.2.2: version "0.2.2" resolved "https://registry.yarnpkg.com/stat-mode/-/stat-mode-0.2.2.tgz#e6c80b623123d7d80cf132ce538f346289072502" +stealthy-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" + string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -2122,6 +2178,13 @@ timed-out@^4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/timed-out/-/timed-out-4.0.1.tgz#f32eacac5a175bea25d7fab565ab3ed8741ef56f" +tough-cookie@>=2.3.3: + version "2.4.3" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.4.3.tgz#53f36da3f47783b0925afa06ff9f3b165280f781" + dependencies: + psl "^1.1.24" + punycode "^1.4.1" + tough-cookie@~2.3.0, tough-cookie@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.3.tgz#0b618a5565b6dea90bf3425d04d55edc475a7561"