UNPKG

@zigbang/honeyfarm-dashboard

Version:

HoneyFarm Node에 등록 되어 있는 안드로이드 단말을 웹페이지에서 실시간으로 확인 및 사용 할수 있도록 구현된 웹

309 lines (260 loc) 9.39 kB
module.exports = /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = require('../ssr-module-cache.js'); /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ var threw = true; /******/ try { /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ threw = false; /******/ } finally { /******/ if(threw) delete installedModules[moduleId]; /******/ } /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = 1); /******/ }) /************************************************************************/ /******/ ({ /***/ 1: /***/ (function(module, exports, __webpack_require__) { module.exports = __webpack_require__("RkzM"); /***/ }), /***/ "F5FC": /***/ (function(module, exports) { module.exports = require("react/jsx-runtime"); /***/ }), /***/ "RkzM": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // ESM COMPAT FLAG __webpack_require__.r(__webpack_exports__); // EXPORTS __webpack_require__.d(__webpack_exports__, "getServerSideProps", function() { return /* binding */ getServerSideProps; }); __webpack_require__.d(__webpack_exports__, "default", function() { return /* binding */ dashboard_Dashboard; }); // EXTERNAL MODULE: external "react/jsx-runtime" var jsx_runtime_ = __webpack_require__("F5FC"); // EXTERNAL MODULE: external "react" var external_react_ = __webpack_require__("cDcd"); var external_react_default = /*#__PURE__*/__webpack_require__.n(external_react_); // EXTERNAL MODULE: external "next/head" var head_ = __webpack_require__("xnum"); var head_default = /*#__PURE__*/__webpack_require__.n(head_); // EXTERNAL MODULE: external "axios" var external_axios_ = __webpack_require__("zr5I"); var external_axios_default = /*#__PURE__*/__webpack_require__.n(external_axios_); // CONCATENATED MODULE: ./src/api.ts function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } class api_api { constructor(host) { _defineProperty(this, "host", "http://localhost:4723"); this.host = host ? host : this.host; } async getDevices() { try { const result = await external_axios_default.a.get(`${this.host}/devices`, { headers: { 'Accept': '*/*', 'Content-Type': 'application/json' }, params: { all: true } }); return result; } catch (e) { console.error(e); return undefined; } } } // CONCATENATED MODULE: ./src/utils/index.ts function argsParser(args, targetArg) { for (const arg of args) { if (arg.startsWith(targetArg) && arg.split("=").length > 1) { return arg.split("=")[1]; } } return ""; } // CONCATENATED MODULE: ./pages/dashboard.tsx function dashboard_defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; } const getServerSideProps = async context => { const endpoint = argsParser(process.argv, "--endpoint"); return { props: { endpoint: endpoint } }; }; class dashboard_Dashboard extends external_react_default.a.Component { constructor(props) { super(props); dashboard_defineProperty(this, "state", { dashboad: [] }); dashboard_defineProperty(this, "api", void 0); } render() { return /*#__PURE__*/Object(jsx_runtime_["jsxs"])("div", { style: { height: "100%", width: "100%" }, children: [/*#__PURE__*/Object(jsx_runtime_["jsx"])(head_default.a, { children: /*#__PURE__*/Object(jsx_runtime_["jsx"])("title", { children: "dashboard" }) }), /*#__PURE__*/Object(jsx_runtime_["jsx"])("div", { style: page, children: this.state.dashboad })] }); } async componentDidMount() { this.api = new api_api(this.props.endpoint); await this.makeChild(); } async makeChild() { try { const result = await this.api.getDevices(); if (!result) return null; const data = result.data; if (data) { const views = []; Object.entries(data).filter(([key, value]) => { const nodeAddress = key.split(":")[0]; const status = value.showInDashboard ? "DASHBOARD" : value.status; if (value.platform === "android" && nodeAddress) { const view = /*#__PURE__*/Object(jsx_runtime_["jsxs"])("div", { style: page_view, children: [/*#__PURE__*/Object(jsx_runtime_["jsx"])("div", { style: { width: "fit-content", height: "fit-content" }, children: /*#__PURE__*/Object(jsx_runtime_["jsxs"])("div", { children: [value.name, " [", status, "]"] }) }), /*#__PURE__*/Object(jsx_runtime_["jsx"])("iframe", { height: "750px", width: "500px", src: `http://${nodeAddress}:8000/#!action=stream&udid=${value.udid}&player=mse&ws=ws%3A%2F%2F${nodeAddress}%3A8000%2F%3Faction%3Dproxy-adb%26remote%3Dtcp%253A8886%26udid%3D${value.udid}`, frameBorder: "0" })] }, `${value.udid}`); views.push(view); } }); this.setState({ dashboad: views }); } } catch (e) { console.error(e); } } } const page = { backgroundColor: "rgb(248, 248, 248)", height: "auto", width: "auto", display: "inline" }; const page_view = { height: "fit-content", width: "500px", display: "inline-block", paddingTop: "40px", alignItems: "center" }; /***/ }), /***/ "cDcd": /***/ (function(module, exports) { module.exports = require("react"); /***/ }), /***/ "xnum": /***/ (function(module, exports) { module.exports = require("next/head"); /***/ }), /***/ "zr5I": /***/ (function(module, exports) { module.exports = require("axios"); /***/ }) /******/ });