Ver código fonte

Add proxy server

Alan Colon 6 anos atrás
pai
commit
18c0710b75
4 arquivos alterados com 490 adições e 291 exclusões
  1. 6 2
      package.json
  2. 38 0
      server/main.js
  3. 9 3
      src/index.js
  4. 437 286
      yarn.lock

+ 6 - 2
package.json

@@ -6,18 +6,22 @@
   "scripts": {
     "test": "echo \"Error: no test specified\" && exit 1",
     "webpack-watch": "nodemon -w src --exec webpack",
-    "server": "http-server",
+    "server": "node server/main.js",
+    "build": "webpack",
     "start": "npm-run-all --parallel webpack-watch server"
   },
   "author": "",
   "license": "ISC",
   "devDependencies": {
     "nodemon": "^1.18.4",
+    "npm-run-all": "^4.1.5",
     "webpack": "^4.21.0",
     "webpack-cli": "^3.1.2"
   },
   "dependencies": {
+    "express": "^4.17.1",
+    "http-proxy": "^1.17.0",
     "http-server": "^0.11.1",
-    "npm-run-all": "^4.1.3"
+    "request": "^2.88.0"
   }
 }

+ 38 - 0
server/main.js

@@ -0,0 +1,38 @@
+const express = require('express')
+const httpProxy = require('http-proxy')
+const request = require('request')
+
+const app = express()
+const assetsProxy = httpProxy.createProxyServer({
+  target: 'https://www.heroforge.com',
+  xfwd: false,
+  secure: false,
+  changeOrigin: true,
+  autoRewrite: true,
+  protocolRewrite: 'http',
+  selfHandleResponse: false
+})
+
+app.use(/^\/$/, (req, res) => {
+  request('https://www.heroforge.com', (err, response, body) => {
+    if (err) res.status(500).send(err)
+    else {
+      let html = body
+      .replace(/<script[^>]+googletagmanager.*<\/script>/g, '<!-- google tag manager -->')
+      .replace(/<img[^>]+facebook.*>/g, '<!-- facebook -->')
+      .replace('https://connect.facebook.net/en_US/fbevents.js', '')
+      .replace('</body>', '<script type="text/javascript" src="/custom/main.js"></script></body>')
+      res.status(200)
+      .set('Content-Type', 'text/html')
+      .send(html)      
+    }
+  })
+})
+
+app.use('/custom/', express.static('./dist'))
+
+app.use('/', (req, res) => {
+  assetsProxy.web(req, res)
+})
+
+app.listen(9011)

+ 9 - 3
src/index.js

@@ -4,8 +4,6 @@ require('./ui')
 
 const THREE = require('./three')
 
-window.character = window.CK && CK.characters[0].characterDisplay.threeObj
-window.character = window.character || scene.children[4]
 
 // if (window.scene) {
 //   var i = -6
@@ -16,11 +14,14 @@ window.character = window.character || scene.children[4]
 // }
 
 window.bake = () => {
+  const character = CK.character
   const baker = new THREE.Baker();
   baker.parse(character);
   console.log('Baked');
 }
 window.save = (filename) => {
+  const character = CK.character
+
   const exporter = new THREE.GLTFExporter();
   exporter.parse(character, data => {
     window.data = data;
@@ -39,4 +40,9 @@ window.save = (filename) => {
 //   //args[0] = args[0].split('_loRez_').join('_').split('/static/').join('/forge/static/')
 //   console.log(args)
 //   return oldLoad.apply(this, args)
-// }
+// }
+
+
+window.Custom = {
+  init() {}
+}

Diferenças do arquivo suprimidas por serem muito extensas
+ 437 - 286
yarn.lock


Alguns arquivos não foram mostrados porque muitos arquivos mudaram nesse diff