Merge pull request #730 from Sid127/edomh-v1

Initial EDOMH integration
This commit is contained in:
Felix Linker
2022-12-27 13:19:05 +01:00
committed by GitHub
8 changed files with 90 additions and 17 deletions

38
package-lock.json generated
View File

@@ -11,6 +11,7 @@
"dependencies": {
"@babel/polyfill": "^7.0.0",
"auto-bind": "^5.0.1",
"base64url": "^3.0.1",
"browserify-zlib-next": "^1.0.1",
"classnames": "^2.2.6",
"coriolis-data": "../coriolis-data",
@@ -3818,6 +3819,14 @@
}
]
},
"node_modules/base64url": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz",
"integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A==",
"engines": {
"node": ">=6.0.0"
}
},
"node_modules/batch": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
@@ -22385,8 +22394,7 @@
"version": "5.3.2",
"resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
"integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
"dev": true,
"requires": {}
"dev": true
},
"acorn-walk": {
"version": "6.2.0",
@@ -22410,15 +22418,13 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz",
"integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==",
"dev": true,
"requires": {}
"dev": true
},
"ajv-keywords": {
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz",
"integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==",
"dev": true,
"requires": {}
"dev": true
},
"ansi-colors": {
"version": "3.2.4",
@@ -22729,8 +22735,7 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/appcache-webpack-plugin/-/appcache-webpack-plugin-1.4.0.tgz",
"integrity": "sha512-QA0D+3yJmpPk0CyfxYMOzhzV941rkTSjCnUEy2vS05GeqK+mMnBScQSB23lstvzYaFpkeWeLMO9RamtafhliYw==",
"dev": true,
"requires": {}
"dev": true
},
"append-transform": {
"version": "0.4.0",
@@ -23051,8 +23056,7 @@
"version": "7.0.0-bridge.0",
"resolved": "https://registry.npmjs.org/babel-core/-/babel-core-7.0.0-bridge.0.tgz",
"integrity": "sha512-poPX9mZH/5CSanm50Q+1toVci6pv5KSRv/5TWCwtzQS5XEwn40BcCrgIeMFWP9CKKIniKXNxoIOnOq4VVlGXhg==",
"dev": true,
"requires": {}
"dev": true
},
"babel-eslint": {
"version": "10.1.0",
@@ -23428,6 +23432,11 @@
"integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==",
"dev": true
},
"base64url": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/base64url/-/base64url-3.0.1.tgz",
"integrity": "sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A=="
},
"batch": {
"version": "0.6.1",
"resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz",
@@ -26313,8 +26322,7 @@
"version": "0.7.5",
"resolved": "https://registry.npmjs.org/expose-loader/-/expose-loader-0.7.5.tgz",
"integrity": "sha512-iPowgKUZkTPX5PznYsmifVj9Bob0w2wTHVkt/eYNPSzyebkUgIedmskf/kcfEIWpiWjg3JRjnW+a17XypySMuw==",
"dev": true,
"requires": {}
"dev": true
},
"express": {
"version": "4.18.2",
@@ -32132,8 +32140,7 @@
"react-clickdrag": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/react-clickdrag/-/react-clickdrag-3.0.2.tgz",
"integrity": "sha512-AqJ6QJDF0JnPpkXIfJsIl7yRa22JbfYDFc7GMhPcie5jiDEHBxjDwEkO+88T0hI4Rix38dflXtfVl+lkGYs1Fg==",
"requires": {}
"integrity": "sha512-AqJ6QJDF0JnPpkXIfJsIl7yRa22JbfYDFc7GMhPcie5jiDEHBxjDwEkO+88T0hI4Rix38dflXtfVl+lkGYs1Fg=="
},
"react-container-dimensions": {
"version": "1.4.1",
@@ -32171,8 +32178,7 @@
"react-ga": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/react-ga/-/react-ga-2.7.0.tgz",
"integrity": "sha512-AjC7UOZMvygrWTc2hKxTDvlMXEtbmA0IgJjmkhgmQQ3RkXrWR11xEagLGFGaNyaPnmg24oaIiaNPnEoftUhfXA==",
"requires": {}
"integrity": "sha512-AjC7UOZMvygrWTc2hKxTDvlMXEtbmA0IgJjmkhgmQQ3RkXrWR11xEagLGFGaNyaPnmg24oaIiaNPnEoftUhfXA=="
},
"react-is": {
"version": "16.13.1",

View File

@@ -124,6 +124,7 @@
"dependencies": {
"@babel/polyfill": "^7.0.0",
"auto-bind": "^5.0.1",
"base64url": "^3.0.1",
"browserify-zlib-next": "^1.0.1",
"classnames": "^2.2.6",
"coriolis-data": "../coriolis-data",

View File

@@ -3,6 +3,8 @@ import PropTypes from 'prop-types';
import TranslatedComponent from './TranslatedComponent';
import request from 'superagent';
import Persist from '../stores/Persist';
const zlib = require('zlib');
const base64url = require('base64url');
/**
* Permalink modal
@@ -56,7 +58,6 @@ export default class ModalShoppingList extends TranslatedComponent {
continue;
}
if (module.m.blueprint.special) {
console.log(module.m.blueprint.special);
blueprints.push({ uuid: module.m.blueprint.special.uuid, number: 1 });
}
for (const g in module.m.blueprint.grades) {
@@ -146,6 +147,64 @@ export default class ModalShoppingList extends TranslatedComponent {
}
}
/**
* Send all blueprints to EDOMH. This is a modified copy of registerBPs because this.state.blueprints was empty when I tried to modify sendToEDEng and I couldn't figure out why
* @param {Event} event React event
*/
sendToEDOMH(event) {
event.preventDefault();
const ship = this.props.ship;
let blueprints = [];
//create the json
for (const module of ship.costList) {
if (module.type === 'SHIP') {
continue;
}
if (module.m && module.m.blueprint) {
if (!module.m.blueprint.grade || !module.m.blueprint.grades) {
continue;
}
if (module.m.blueprint.special) {
blueprints.push({
"item": module.m.symbol,
"blueprint": module.m.blueprint.special.edname
});
}
for (const g in module.m.blueprint.grades) {
if (!module.m.blueprint.grades.hasOwnProperty(g)) {
continue;
}
if (g < module.m.blueprint.grade) {
continue;
}
blueprints.push({
"item": module.m.symbol,
"blueprint": module.m.blueprint.fdname,
"grade": module.m.blueprint.grade,
"highestGradePercentage":1.0
});
}
}
}
//create JSON to encode
let baseJson = {
"version":1,
"name":ship.name, // TO-DO: Import build name and put that here correctly
"items": blueprints
}
let JSONString = JSON.stringify(baseJson)
let deflated = zlib.deflateSync(JSONString)
//actually encode
let link = base64url.encode(deflated)
link = "edomh://coriolis/?" + link;
window.open(link, "_self")
}
/**
* Convert mats object to string
*/
@@ -241,6 +300,7 @@ export default class ModalShoppingList extends TranslatedComponent {
const compatible = this.checkBrowserIsCompatible();
this.cmdrChangeHandler = this.cmdrChangeHandler.bind(this);
this.sendToEDEng = this.sendToEDEng.bind(this);
this.sendToEDOMH = this.sendToEDOMH.bind(this);
return <div className='modal' onClick={ (e) => e.stopPropagation() }>
<h2>{translate('PHRASE_SHOPPING_MATS')}</h2>
<label>{translate('Grade 1 rolls ')}</label>
@@ -269,6 +329,7 @@ export default class ModalShoppingList extends TranslatedComponent {
<p hidden={!this.state.failed} id={'failed'} className={'l'}>{translate('PHRASE_FAIL_EDENGINEER')}</p>
<p hidden={compatible} id={'browserbad'} className={'l'}>{translate('PHRASE_FIREFOX_EDENGINEER')}</p>
<button className={'l cb dismiss cap'} disabled={!!this.state.failed || !compatible} onClick={this.sendToEDEng}>{translate('Send to EDEngineer')}</button>
<button style={{marginTop: 5}} className={'l cb dismiss cap'} disabled={!!this.state.failed} onClick={this.sendToEDOMH}>{translate('Send to EDOMH')}</button>
<button className={'r dismiss cap'} onClick={this.context.hideModal}>{translate('close')}</button>
</div>;
}

View File

@@ -398,6 +398,7 @@
"No modded components.": "没有改装的部件",
"Sending...": "发送中...",
"Send to EDEngineer": "发送至EDEngineer",
"Send to EDOMH": "发送至EDOMH",
"PHASE_UPLOAD_ORBIS": "上传到orbis.zone测试阶段",
"orbis username": "orbis.zone的Email或用户名",
"orbis password": "orbis.zone的密码",

View File

@@ -159,6 +159,7 @@
"tp": "Torpedo Pylon",
"ul": "Burst Laser",
"Send To EDEngineer": "Send To EDEngineer",
"Send To EDOMH": "Send To EDOMH",
"ws": "Frame Shift Wake Scanner",
"rpl": "Repair Limpet Controller",
"rcpl": "Recon Limpet Controller",

View File

@@ -159,6 +159,7 @@
"tp": "어뢰관",
"ul": "버스트 레이저",
"Send To EDEngineer": "EDEngineer에 전송",
"Send To EDOMH": "EDOMH에 전송",
"ws": "프레임 시프트 흔적 스캐너",
"rpl": "수리용 림펫 컨트롤러",
"rcpl": "정찰용 림펫 컨트롤러",

View File

@@ -403,6 +403,7 @@
"No modded components.": "Nenhum componente modificado.",
"Sending...": "Enviando...",
"Send to EDEngineer": "Enviar para EDEngineer",
"Send to EDOMH": "Enviar para EDOMH",
"PHRASE_UPLOAD_ORBIS": "Enviar para orbis.zone (Período trial.)",
"orbis username": "Usuário/email para orbis.zone",
"orbis password": "Senha para orbis.zone",

View File

@@ -159,6 +159,7 @@
"tp": "Торпедная установка",
"ul": "Пульсирующий лазер",
"Send To EDEngineer": "Отправить в EDEngineer",
"Send To EDOMH": "Отправить в EDOMH",
"ws": "Сканер следа FSD",
"rpl": "Контроллер дронов-ремонтников",
"rcpl": "Контроллер дронов-разведчиков",