PyPyDance Discord RPC

This commit is contained in:
Natsumi
2021-09-13 04:42:55 +12:00
parent 584f0df0ed
commit b43eb982ee
7 changed files with 374 additions and 148 deletions

216
html/package-lock.json generated
View File

@@ -14,21 +14,22 @@
"eslint-config-prettier": "^8.3.0", "eslint-config-prettier": "^8.3.0",
"famfamfam-flags": "^1.0.0", "famfamfam-flags": "^1.0.0",
"html-webpack-plugin": "^5.3.2", "html-webpack-plugin": "^5.3.2",
"mini-css-extract-plugin": "^2.2.2", "mini-css-extract-plugin": "^2.3.0",
"normalize.css": "^8.0.1", "normalize.css": "^8.0.1",
"noty": "^3.2.0-beta-deprecated", "noty": "^3.2.0-beta-deprecated",
"prettier": "^2.3.2", "prettier": "^2.4.0",
"pug": "^3.0.2", "pug": "^3.0.2",
"pug-plain-loader": "^1.1.0", "pug-plain-loader": "^1.1.0",
"raw-loader": "^4.0.2", "raw-loader": "^4.0.2",
"sass": "^1.39.0", "sass": "^1.39.2",
"sass-loader": "^12.1.0", "sass-loader": "^12.1.0",
"uuid": "^8.3.2", "uuid": "^8.3.2",
"vue": "^2.6.14", "vue": "^2.6.14",
"vue-data-tables": "^3.4.5", "vue-data-tables": "^3.4.5",
"vue-lazyload": "^1.3.3", "vue-lazyload": "^1.3.3",
"vue-marquee-text-component": "^1.2.0",
"vue-swatches": "^2.1.1", "vue-swatches": "^2.1.1",
"webpack": "^5.52.0", "webpack": "^5.52.1",
"webpack-cli": "^4.8.0" "webpack-cli": "^4.8.0"
} }
}, },
@@ -136,9 +137,9 @@
} }
}, },
"node_modules/@babel/parser": { "node_modules/@babel/parser": {
"version": "7.15.5", "version": "7.15.6",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.5.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz",
"integrity": "sha512-2hQstc6I7T6tQsWzlboMh3SgMRPaS4H6H7cPQsJkdzTzEGqQrpLDsE2BGASU5sBPoEQyHzeqU6C8uKbFeEk6sg==", "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==",
"dev": true, "dev": true,
"bin": { "bin": {
"parser": "bin/babel-parser.js" "parser": "bin/babel-parser.js"
@@ -148,9 +149,9 @@
} }
}, },
"node_modules/@babel/types": { "node_modules/@babel/types": {
"version": "7.15.4", "version": "7.15.6",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.4.tgz", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz",
"integrity": "sha512-0f1HJFuGmmbrKTCZtbm3cU+b/AqdEYk5toj5iQur58xkVMlS0JWaKxTBSmCXd47uiN7vbcozAupm6Mvs80GNhw==", "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@babel/helper-validator-identifier": "^7.14.9", "@babel/helper-validator-identifier": "^7.14.9",
@@ -283,9 +284,9 @@
"dev": true "dev": true
}, },
"node_modules/@types/node": { "node_modules/@types/node": {
"version": "16.7.10", "version": "16.9.1",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.10.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz",
"integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA==", "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==",
"dev": true "dev": true
}, },
"node_modules/@webassemblyjs/ast": { "node_modules/@webassemblyjs/ast": {
@@ -770,9 +771,9 @@
} }
}, },
"node_modules/caniuse-lite": { "node_modules/caniuse-lite": {
"version": "1.0.30001255", "version": "1.0.30001256",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001255.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001256.tgz",
"integrity": "sha512-F+A3N9jTZL882f/fg/WWVnKSu6IOo3ueLz4zwaOPbPYHNmM/ZaDUyzyJwS1mZhX7Ex5jqTyW599Gdelh5PDYLQ==", "integrity": "sha512-QirrvMLmB4txNnxiaG/xbm6FSzv9LqOZ3Jp9VtCYb3oPIfCHpr/oGn38pFq0udwlkctvXQgPthaXqJ76DaYGnA==",
"dev": true, "dev": true,
"funding": { "funding": {
"type": "opencollective", "type": "opencollective",
@@ -891,9 +892,9 @@
"dev": true "dev": true
}, },
"node_modules/colorette": { "node_modules/colorette": {
"version": "1.3.0", "version": "1.4.0",
"resolved": "https://registry.npmjs.org/colorette/-/colorette-1.3.0.tgz", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
"integrity": "sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==", "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==",
"dev": true "dev": true
}, },
"node_modules/commander": { "node_modules/commander": {
@@ -1171,9 +1172,9 @@
} }
}, },
"node_modules/electron-to-chromium": { "node_modules/electron-to-chromium": {
"version": "1.3.830", "version": "1.3.836",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.830.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.836.tgz",
"integrity": "sha512-gBN7wNAxV5vl1430dG+XRcQhD4pIeYeak6p6rjdCtlz5wWNwDad8jwvphe5oi1chL5MV6RNRikfffBBiFuj+rQ==", "integrity": "sha512-Ney3pHOJBWkG/AqYjrW0hr2AUCsao+2uvq9HUlRP8OlpSdk/zOHOUJP7eu0icDvePC9DlgffuelP4TnOJmMRUg==",
"dev": true "dev": true
}, },
"node_modules/element-ui": { "node_modules/element-ui": {
@@ -1598,9 +1599,9 @@
"dev": true "dev": true
}, },
"node_modules/fastq": { "node_modules/fastq": {
"version": "1.12.0", "version": "1.13.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.12.0.tgz", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz",
"integrity": "sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg==", "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"reusify": "^1.0.4" "reusify": "^1.0.4"
@@ -2159,9 +2160,9 @@
} }
}, },
"node_modules/jest-worker": { "node_modules/jest-worker": {
"version": "27.1.0", "version": "27.1.1",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.1.0.tgz", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.1.1.tgz",
"integrity": "sha512-mO4PHb2QWLn9yRXGp7rkvXLAYuxwhq1ZYUo0LoDhg8wqvv4QizP1ZWEJOeolgbEgAWZLIEU0wsku8J+lGWfBhg==", "integrity": "sha512-XJKCL7tu+362IUYTWvw8+3S75U7qMiYiRU6u5yqscB48bTvzwN6i8L/7wVTXiFLwkRsxARNM7TISnTvcgv9hxA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@types/node": "*", "@types/node": "*",
@@ -2422,9 +2423,9 @@
} }
}, },
"node_modules/mini-css-extract-plugin": { "node_modules/mini-css-extract-plugin": {
"version": "2.2.2", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.2.2.tgz", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.3.0.tgz",
"integrity": "sha512-eUjQ/q1rQIeHWgIx7ny/DNgXHcMXHdBwgrZQK7Ev8dbR+HxhroFM2Cb6kMiswOYaq05IRJhPuQqXWUABIjjA3g==", "integrity": "sha512-uzWaOwC+gJrnKbr23J1ZRWx/Wd9W9Ce1mKPlsBGBV/r8zG7/G7oKMxGmxbI65pVGbae2cR7CUx9Ulk0HQt8BfQ==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"schema-utils": "^3.1.0" "schema-utils": "^3.1.0"
@@ -2861,9 +2862,9 @@
} }
}, },
"node_modules/prettier": { "node_modules/prettier": {
"version": "2.3.2", "version": "2.4.0",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.0.tgz",
"integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==", "integrity": "sha512-DsEPLY1dE5HF3BxCRBmD4uYZ+5DCbvatnolqTqcxEgKVZnL2kUfyu7b8pPQ5+hTBkdhU9SLUmK0/pHb07RE4WQ==",
"dev": true, "dev": true,
"bin": { "bin": {
"prettier": "bin-prettier.js" "prettier": "bin-prettier.js"
@@ -3335,9 +3336,9 @@
] ]
}, },
"node_modules/sass": { "node_modules/sass": {
"version": "1.39.0", "version": "1.39.2",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.39.0.tgz", "resolved": "https://registry.npmjs.org/sass/-/sass-1.39.2.tgz",
"integrity": "sha512-F4o+RhJkNOIG0b6QudYU8c78ZADKZjKDk5cyrf8XTKWfrgbtyVVXImFstJrc+1pkQDCggyidIOytq6gS4gCCZg==", "integrity": "sha512-4/6Vn2RPc+qNwSclUSKvssh7dqK1Ih3FfHBW16I/GfH47b3scbYeOw65UIrYG7PkweFiKbpJjgkf5CV8EMmvzw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"chokidar": ">=3.0.0 <4.0.0" "chokidar": ">=3.0.0 <4.0.0"
@@ -3509,9 +3510,9 @@
} }
}, },
"node_modules/source-map-support": { "node_modules/source-map-support": {
"version": "0.5.19", "version": "0.5.20",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz",
"integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"buffer-from": "^1.0.0", "buffer-from": "^1.0.0",
@@ -3649,9 +3650,9 @@
} }
}, },
"node_modules/terser-webpack-plugin": { "node_modules/terser-webpack-plugin": {
"version": "5.2.3", "version": "5.2.4",
"resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.3.tgz", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.4.tgz",
"integrity": "sha512-eDbuaDlXhVaaoKuLD3DTNTozKqln6xOG6Us0SzlKG5tNlazG+/cdl8pm9qiF1Di89iWScTI0HcO+CDcf2dkXiw==", "integrity": "sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"jest-worker": "^27.0.6", "jest-worker": "^27.0.6",
@@ -3865,6 +3866,27 @@
"integrity": "sha512-uHnq0FTEeNmqnbBC2aRKlmtd9LofMZ6Q3mWvgfLa+i9vhxU8fDK+nGs9c1iVT85axSua/AUnMttIq3xPaU9G3A==", "integrity": "sha512-uHnq0FTEeNmqnbBC2aRKlmtd9LofMZ6Q3mWvgfLa+i9vhxU8fDK+nGs9c1iVT85axSua/AUnMttIq3xPaU9G3A==",
"dev": true "dev": true
}, },
"node_modules/vue-marquee-text-component": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/vue-marquee-text-component/-/vue-marquee-text-component-1.2.0.tgz",
"integrity": "sha512-wMqr7AnyCF1VjXFAnAXavAD2yCeiBULy6AbLet/YIGaI2KzuaUmi+Q3UyFYJOM2gWt994jl2PWilnkh9heLqAA==",
"dev": true,
"dependencies": {
"core-js": "^3.6.5",
"vue": "^2.5.17"
}
},
"node_modules/vue-marquee-text-component/node_modules/core-js": {
"version": "3.17.3",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.17.3.tgz",
"integrity": "sha512-lyvajs+wd8N1hXfzob1LdOCCHFU4bGMbqqmLn1Q4QlCpDqWPpGf+p0nj+LNrvDDG33j0hZXw2nsvvVpHysxyNw==",
"dev": true,
"hasInstallScript": true,
"funding": {
"type": "opencollective",
"url": "https://opencollective.com/core-js"
}
},
"node_modules/vue-swatches": { "node_modules/vue-swatches": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/vue-swatches/-/vue-swatches-2.1.1.tgz", "resolved": "https://registry.npmjs.org/vue-swatches/-/vue-swatches-2.1.1.tgz",
@@ -3885,9 +3907,9 @@
} }
}, },
"node_modules/webpack": { "node_modules/webpack": {
"version": "5.52.0", "version": "5.52.1",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.52.0.tgz", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.52.1.tgz",
"integrity": "sha512-yRZOat8jWGwBwHpco3uKQhVU7HYaNunZiJ4AkAVQkPCUGoZk/tiIXiwG+8HIy/F+qsiZvSOa+GLQOj3q5RKRYg==", "integrity": "sha512-wkGb0hLfrS7ML3n2xIKfUIwHbjB6gxwQHyLmVHoAqEQBw+nWo+G6LoHL098FEXqahqximsntjBLuewStrnJk0g==",
"dev": true, "dev": true,
"dependencies": { "dependencies": {
"@types/eslint-scope": "^3.7.0", "@types/eslint-scope": "^3.7.0",
@@ -4183,15 +4205,15 @@
} }
}, },
"@babel/parser": { "@babel/parser": {
"version": "7.15.5", "version": "7.15.6",
"resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.5.tgz", "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.15.6.tgz",
"integrity": "sha512-2hQstc6I7T6tQsWzlboMh3SgMRPaS4H6H7cPQsJkdzTzEGqQrpLDsE2BGASU5sBPoEQyHzeqU6C8uKbFeEk6sg==", "integrity": "sha512-S/TSCcsRuCkmpUuoWijua0Snt+f3ewU/8spLo+4AXJCZfT0bVCzLD5MuOKdrx0mlAptbKzn5AdgEIIKXxXkz9Q==",
"dev": true "dev": true
}, },
"@babel/types": { "@babel/types": {
"version": "7.15.4", "version": "7.15.6",
"resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.4.tgz", "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.15.6.tgz",
"integrity": "sha512-0f1HJFuGmmbrKTCZtbm3cU+b/AqdEYk5toj5iQur58xkVMlS0JWaKxTBSmCXd47uiN7vbcozAupm6Mvs80GNhw==", "integrity": "sha512-BPU+7QhqNjmWyDO0/vitH/CuhpV8ZmK1wpKva8nuyNF5MJfuRNWMc+hc14+u9xT93kvykMdncrJT19h74uB1Ig==",
"dev": true, "dev": true,
"requires": { "requires": {
"@babel/helper-validator-identifier": "^7.14.9", "@babel/helper-validator-identifier": "^7.14.9",
@@ -4303,9 +4325,9 @@
"dev": true "dev": true
}, },
"@types/node": { "@types/node": {
"version": "16.7.10", "version": "16.9.1",
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.7.10.tgz", "resolved": "https://registry.npmjs.org/@types/node/-/node-16.9.1.tgz",
"integrity": "sha512-S63Dlv4zIPb8x6MMTgDq5WWRJQe56iBEY0O3SOFA9JrRienkOVDXSXBjjJw6HTNQYSE2JI6GMCR6LVbIMHJVvA==", "integrity": "sha512-QpLcX9ZSsq3YYUUnD3nFDY8H7wctAhQj/TFKL8Ya8v5fMm3CFXxo8zStsLAl780ltoYoo1WvKUVGBQK+1ifr7g==",
"dev": true "dev": true
}, },
"@webassemblyjs/ast": { "@webassemblyjs/ast": {
@@ -4714,9 +4736,9 @@
} }
}, },
"caniuse-lite": { "caniuse-lite": {
"version": "1.0.30001255", "version": "1.0.30001256",
"resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001255.tgz", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001256.tgz",
"integrity": "sha512-F+A3N9jTZL882f/fg/WWVnKSu6IOo3ueLz4zwaOPbPYHNmM/ZaDUyzyJwS1mZhX7Ex5jqTyW599Gdelh5PDYLQ==", "integrity": "sha512-QirrvMLmB4txNnxiaG/xbm6FSzv9LqOZ3Jp9VtCYb3oPIfCHpr/oGn38pFq0udwlkctvXQgPthaXqJ76DaYGnA==",
"dev": true "dev": true
}, },
"chalk": { "chalk": {
@@ -4807,9 +4829,9 @@
"dev": true "dev": true
}, },
"colorette": { "colorette": {
"version": "1.3.0", "version": "1.4.0",
"resolved": "https://registry.npmjs.org/colorette/-/colorette-1.3.0.tgz", "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.4.0.tgz",
"integrity": "sha512-ecORCqbSFP7Wm8Y6lyqMJjexBQqXSF7SSeaTyGGphogUjBlFP9m9o08wy86HL2uB7fMTxtOUzLMk7ogKcxMg1w==", "integrity": "sha512-Y2oEozpomLn7Q3HFP7dpww7AtMJplbM9lGZP6RDfHqmbeRjiwRg4n6VM6j4KLmRke85uWEI7JqF17f3pqdRA0g==",
"dev": true "dev": true
}, },
"commander": { "commander": {
@@ -5009,9 +5031,9 @@
} }
}, },
"electron-to-chromium": { "electron-to-chromium": {
"version": "1.3.830", "version": "1.3.836",
"resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.830.tgz", "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.836.tgz",
"integrity": "sha512-gBN7wNAxV5vl1430dG+XRcQhD4pIeYeak6p6rjdCtlz5wWNwDad8jwvphe5oi1chL5MV6RNRikfffBBiFuj+rQ==", "integrity": "sha512-Ney3pHOJBWkG/AqYjrW0hr2AUCsao+2uvq9HUlRP8OlpSdk/zOHOUJP7eu0icDvePC9DlgffuelP4TnOJmMRUg==",
"dev": true "dev": true
}, },
"element-ui": { "element-ui": {
@@ -5337,9 +5359,9 @@
"dev": true "dev": true
}, },
"fastq": { "fastq": {
"version": "1.12.0", "version": "1.13.0",
"resolved": "https://registry.npmjs.org/fastq/-/fastq-1.12.0.tgz", "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz",
"integrity": "sha512-VNX0QkHK3RsXVKr9KrlUv/FoTa0NdbYoHHl7uXHv2rzyHSlxjdNAKug2twd9luJxpcyNeAgf5iPPMutJO67Dfg==", "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==",
"dev": true, "dev": true,
"requires": { "requires": {
"reusify": "^1.0.4" "reusify": "^1.0.4"
@@ -5739,9 +5761,9 @@
"dev": true "dev": true
}, },
"jest-worker": { "jest-worker": {
"version": "27.1.0", "version": "27.1.1",
"resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.1.0.tgz", "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.1.1.tgz",
"integrity": "sha512-mO4PHb2QWLn9yRXGp7rkvXLAYuxwhq1ZYUo0LoDhg8wqvv4QizP1ZWEJOeolgbEgAWZLIEU0wsku8J+lGWfBhg==", "integrity": "sha512-XJKCL7tu+362IUYTWvw8+3S75U7qMiYiRU6u5yqscB48bTvzwN6i8L/7wVTXiFLwkRsxARNM7TISnTvcgv9hxA==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/node": "*", "@types/node": "*",
@@ -5953,9 +5975,9 @@
"dev": true "dev": true
}, },
"mini-css-extract-plugin": { "mini-css-extract-plugin": {
"version": "2.2.2", "version": "2.3.0",
"resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.2.2.tgz", "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.3.0.tgz",
"integrity": "sha512-eUjQ/q1rQIeHWgIx7ny/DNgXHcMXHdBwgrZQK7Ev8dbR+HxhroFM2Cb6kMiswOYaq05IRJhPuQqXWUABIjjA3g==", "integrity": "sha512-uzWaOwC+gJrnKbr23J1ZRWx/Wd9W9Ce1mKPlsBGBV/r8zG7/G7oKMxGmxbI65pVGbae2cR7CUx9Ulk0HQt8BfQ==",
"dev": true, "dev": true,
"requires": { "requires": {
"schema-utils": "^3.1.0" "schema-utils": "^3.1.0"
@@ -6275,9 +6297,9 @@
"dev": true "dev": true
}, },
"prettier": { "prettier": {
"version": "2.3.2", "version": "2.4.0",
"resolved": "https://registry.npmjs.org/prettier/-/prettier-2.3.2.tgz", "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.4.0.tgz",
"integrity": "sha512-lnJzDfJ66zkMy58OL5/NY5zp70S7Nz6KqcKkXYzn2tMVrNxvbqaBpg7H3qHaLxCJ5lNMsGuM8+ohS7cZrthdLQ==", "integrity": "sha512-DsEPLY1dE5HF3BxCRBmD4uYZ+5DCbvatnolqTqcxEgKVZnL2kUfyu7b8pPQ5+hTBkdhU9SLUmK0/pHb07RE4WQ==",
"dev": true "dev": true
}, },
"pretty-error": { "pretty-error": {
@@ -6633,9 +6655,9 @@
"dev": true "dev": true
}, },
"sass": { "sass": {
"version": "1.39.0", "version": "1.39.2",
"resolved": "https://registry.npmjs.org/sass/-/sass-1.39.0.tgz", "resolved": "https://registry.npmjs.org/sass/-/sass-1.39.2.tgz",
"integrity": "sha512-F4o+RhJkNOIG0b6QudYU8c78ZADKZjKDk5cyrf8XTKWfrgbtyVVXImFstJrc+1pkQDCggyidIOytq6gS4gCCZg==", "integrity": "sha512-4/6Vn2RPc+qNwSclUSKvssh7dqK1Ih3FfHBW16I/GfH47b3scbYeOw65UIrYG7PkweFiKbpJjgkf5CV8EMmvzw==",
"dev": true, "dev": true,
"requires": { "requires": {
"chokidar": ">=3.0.0 <4.0.0" "chokidar": ">=3.0.0 <4.0.0"
@@ -6740,9 +6762,9 @@
"dev": true "dev": true
}, },
"source-map-support": { "source-map-support": {
"version": "0.5.19", "version": "0.5.20",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.20.tgz",
"integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", "integrity": "sha512-n1lZZ8Ve4ksRqizaBQgxXDgKwttHDhyfQjA6YZZn8+AroHbsIz+JjwxQDxbp+7y5OYCI8t1Yk7etjD9CRd2hIw==",
"dev": true, "dev": true,
"requires": { "requires": {
"buffer-from": "^1.0.0", "buffer-from": "^1.0.0",
@@ -6856,9 +6878,9 @@
} }
}, },
"terser-webpack-plugin": { "terser-webpack-plugin": {
"version": "5.2.3", "version": "5.2.4",
"resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.3.tgz", "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.2.4.tgz",
"integrity": "sha512-eDbuaDlXhVaaoKuLD3DTNTozKqln6xOG6Us0SzlKG5tNlazG+/cdl8pm9qiF1Di89iWScTI0HcO+CDcf2dkXiw==", "integrity": "sha512-E2CkNMN+1cho04YpdANyRrn8CyN4yMy+WdFKZIySFZrGXZxJwJP6PMNGGc/Mcr6qygQHUUqRxnAPmi0M9f00XA==",
"dev": true, "dev": true,
"requires": { "requires": {
"jest-worker": "^27.0.6", "jest-worker": "^27.0.6",
@@ -7012,6 +7034,24 @@
"integrity": "sha512-uHnq0FTEeNmqnbBC2aRKlmtd9LofMZ6Q3mWvgfLa+i9vhxU8fDK+nGs9c1iVT85axSua/AUnMttIq3xPaU9G3A==", "integrity": "sha512-uHnq0FTEeNmqnbBC2aRKlmtd9LofMZ6Q3mWvgfLa+i9vhxU8fDK+nGs9c1iVT85axSua/AUnMttIq3xPaU9G3A==",
"dev": true "dev": true
}, },
"vue-marquee-text-component": {
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/vue-marquee-text-component/-/vue-marquee-text-component-1.2.0.tgz",
"integrity": "sha512-wMqr7AnyCF1VjXFAnAXavAD2yCeiBULy6AbLet/YIGaI2KzuaUmi+Q3UyFYJOM2gWt994jl2PWilnkh9heLqAA==",
"dev": true,
"requires": {
"core-js": "^3.6.5",
"vue": "^2.5.17"
},
"dependencies": {
"core-js": {
"version": "3.17.3",
"resolved": "https://registry.npmjs.org/core-js/-/core-js-3.17.3.tgz",
"integrity": "sha512-lyvajs+wd8N1hXfzob1LdOCCHFU4bGMbqqmLn1Q4QlCpDqWPpGf+p0nj+LNrvDDG33j0hZXw2nsvvVpHysxyNw==",
"dev": true
}
}
},
"vue-swatches": { "vue-swatches": {
"version": "2.1.1", "version": "2.1.1",
"resolved": "https://registry.npmjs.org/vue-swatches/-/vue-swatches-2.1.1.tgz", "resolved": "https://registry.npmjs.org/vue-swatches/-/vue-swatches-2.1.1.tgz",
@@ -7029,9 +7069,9 @@
} }
}, },
"webpack": { "webpack": {
"version": "5.52.0", "version": "5.52.1",
"resolved": "https://registry.npmjs.org/webpack/-/webpack-5.52.0.tgz", "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.52.1.tgz",
"integrity": "sha512-yRZOat8jWGwBwHpco3uKQhVU7HYaNunZiJ4AkAVQkPCUGoZk/tiIXiwG+8HIy/F+qsiZvSOa+GLQOj3q5RKRYg==", "integrity": "sha512-wkGb0hLfrS7ML3n2xIKfUIwHbjB6gxwQHyLmVHoAqEQBw+nWo+G6LoHL098FEXqahqximsntjBLuewStrnJk0g==",
"dev": true, "dev": true,
"requires": { "requires": {
"@types/eslint-scope": "^3.7.0", "@types/eslint-scope": "^3.7.0",

View File

@@ -30,21 +30,22 @@
"eslint-config-prettier": "^8.3.0", "eslint-config-prettier": "^8.3.0",
"famfamfam-flags": "^1.0.0", "famfamfam-flags": "^1.0.0",
"html-webpack-plugin": "^5.3.2", "html-webpack-plugin": "^5.3.2",
"mini-css-extract-plugin": "^2.2.2", "mini-css-extract-plugin": "^2.3.0",
"normalize.css": "^8.0.1", "normalize.css": "^8.0.1",
"noty": "^3.2.0-beta-deprecated", "noty": "^3.2.0-beta-deprecated",
"prettier": "^2.3.2", "prettier": "^2.4.0",
"pug": "^3.0.2", "pug": "^3.0.2",
"pug-plain-loader": "^1.1.0", "pug-plain-loader": "^1.1.0",
"raw-loader": "^4.0.2", "raw-loader": "^4.0.2",
"sass": "^1.39.0", "sass": "^1.39.2",
"sass-loader": "^12.1.0", "sass-loader": "^12.1.0",
"uuid": "^8.3.2", "uuid": "^8.3.2",
"vue": "^2.6.14", "vue": "^2.6.14",
"vue-data-tables": "^3.4.5", "vue-data-tables": "^3.4.5",
"vue-lazyload": "^1.3.3", "vue-lazyload": "^1.3.3",
"vue-marquee-text-component": "^1.2.0",
"vue-swatches": "^2.1.1", "vue-swatches": "^2.1.1",
"webpack": "^5.52.0", "webpack": "^5.52.1",
"webpack-cli": "^4.8.0" "webpack-cli": "^4.8.0"
} }
} }

View File

@@ -3994,6 +3994,7 @@ speechSynthesis.getVoices();
} }
AppApi.CheckGameRunning().then( AppApi.CheckGameRunning().then(
([isGameRunning, isGameNoVR]) => { ([isGameRunning, isGameNoVR]) => {
this.updateOpenVR(isGameRunning, isGameNoVR);
if (isGameRunning !== this.isGameRunning) { if (isGameRunning !== this.isGameRunning) {
this.isGameRunning = isGameRunning; this.isGameRunning = isGameRunning;
if (isGameRunning) { if (isGameRunning) {
@@ -4006,13 +4007,12 @@ speechSynthesis.getVoices();
this.autoVRChatCacheManagement(); this.autoVRChatCacheManagement();
} }
this.lastLocationReset(); this.lastLocationReset();
this.clearNowPlaying();
this.updateVRConfigVars(); this.updateVRConfigVars();
this.updateOpenVR();
} }
if (isGameNoVR !== this.isGameNoVR) { if (isGameNoVR !== this.isGameNoVR) {
this.isGameNoVR = isGameNoVR; this.isGameNoVR = isGameNoVR;
this.updateVRConfigVars(); this.updateVRConfigVars();
this.updateOpenVR();
} }
this.updateDiscord(); this.updateDiscord();
} }
@@ -5240,11 +5240,7 @@ speechSynthesis.getVoices();
AppApi.DesktopNotification('Event', noty.data, image); AppApi.DesktopNotification('Event', noty.data, image);
break; break;
case 'VideoPlay': case 'VideoPlay':
AppApi.DesktopNotification( AppApi.DesktopNotification('Now playing', noty.notyName, image);
'Now playing',
noty.notyName,
image
);
break; break;
case 'BlockedOnPlayerJoined': case 'BlockedOnPlayerJoined':
AppApi.DesktopNotification( AppApi.DesktopNotification(
@@ -7212,6 +7208,22 @@ speechSynthesis.getVoices();
this.lastLocationReset(); this.lastLocationReset();
}; };
$app.methods.sweepGameLog = function () {
var {data} = this.gameLogTable;
// 로그는 7일까지만 남김
var limit = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toJSON();
var i = 0;
var j = data.length;
while (i < j && data[i].created_at < limit) {
++i;
}
if (i === j) {
this.gameLogTable.data = [];
} else if (i) {
data.splice(0, i);
}
};
$app.methods.refreshEntireGameLog = async function () { $app.methods.refreshEntireGameLog = async function () {
await gameLogService.setDateTill('1970-01-01'); await gameLogService.setDateTill('1970-01-01');
await database.initTables(); await database.initTables();
@@ -7241,7 +7253,7 @@ speechSynthesis.getVoices();
await gameLogService.setDateTill(dateTill); await gameLogService.setDateTill(dateTill);
await gameLogService.reset(); await gameLogService.reset();
await new Promise((resolve) => { await new Promise((resolve) => {
setTimeout(resolve, 1000); setTimeout(resolve, 10000);
}); });
var location = ''; var location = '';
var pushToTable = true; var pushToTable = true;
@@ -7261,11 +7273,7 @@ speechSynthesis.getVoices();
rawLogs.slice(3) rawLogs.slice(3)
); );
var pushToTable = true; var pushToTable = true;
this.addGameLogEntry( this.addGameLogEntry(gameLog, this.lastLocation.location, pushToTable);
gameLog,
this.lastLocation.location,
pushToTable
);
}; };
$app.lastLocationDestinationTime = 0; $app.lastLocationDestinationTime = 0;
@@ -7284,6 +7292,7 @@ speechSynthesis.getVoices();
case 'location-destination': case 'location-destination':
if (this.isGameRunning) { if (this.isGameRunning) {
this.cancelVRChatCacheDownload(gameLog.location); this.cancelVRChatCacheDownload(gameLog.location);
this.clearNowPlaying();
} }
this.lastLocationDestinationTime = Date.parse(gameLog.dt); this.lastLocationDestinationTime = Date.parse(gameLog.dt);
var entry = { var entry = {
@@ -7295,6 +7304,7 @@ speechSynthesis.getVoices();
case 'location': case 'location':
if (this.isGameRunning) { if (this.isGameRunning) {
this.lastLocationReset(); this.lastLocationReset();
this.clearNowPlaying();
this.lastLocation = { this.lastLocation = {
date: Date.parse(gameLog.dt), date: Date.parse(gameLog.dt),
location: gameLog.location, location: gameLog.location,
@@ -7430,11 +7440,18 @@ speechSynthesis.getVoices();
var videoName = ''; var videoName = '';
var videoLength = ''; var videoLength = '';
var displayName = ''; var displayName = '';
var videoPos = 5; // video loading delay
if (typeof gameLog.displayName !== 'undefined') { if (typeof gameLog.displayName !== 'undefined') {
displayName = gameLog.displayName; displayName = gameLog.displayName;
} }
if (typeof gameLog.videoPos !== 'undefined') {
videoPos = gameLog.videoPos;
}
var L = API.parseLocation(location); var L = API.parseLocation(location);
if (L.worldId !== 'wrld_f20326da-f1ac-45fc-a062-609723b097b1') { if (
L.worldId !== 'wrld_f20326da-f1ac-45fc-a062-609723b097b1' ||
gameLog.videoId === 'YouTube'
) {
// skip PyPyDance videos // skip PyPyDance videos
try { try {
var url = new URL(videoUrl); var url = new URL(videoUrl);
@@ -7468,36 +7485,61 @@ speechSynthesis.getVoices();
videoLength, videoLength,
location, location,
displayName, displayName,
userId userId,
videoPos
}; };
if (pushToTable) { if (pushToTable) {
this.setNowPlaying(entry);
this.queueGameLogNoty(entry); this.queueGameLogNoty(entry);
this.gameLogTable.data.push(entry); this.gameLogTable.data.push(entry);
this.updateSharedFeed(false); this.updateSharedFeed(false);
this.notifyMenu('gameLog'); this.notifyMenu('gameLog');
this.sweepGameLog(); this.sweepGameLog();
} }
if (this.youTubeApi && youtubeVideoId) { database.addGamelogVideoPlayToDatabase(entry);
var data = await this.lookupYouTubeVideo(youtubeVideoId); }
if ( };
data ||
(data.status === 200 && data.pageInfo.totalResults !== 0) $app.methods.addGameLogPyPyDance = function (
) { gameLog,
videoId = 'YouTube'; location,
videoName = data.items[0].snippet.title; pushToTable
videoLength = this.convertYoutubeTime( ) {
data.items[0].contentDetails.duration var data =
); /VideoPlay\(PyPyDance\) "(.+?)",([\d.]+),([\d.]+),"(.+?)\s*(?:)?"/g.exec(
} else { gameLog.data
console.error(`YouTube video lookup failed, error code: ${data.status}`); );
var videoUrl = data[1];
var videoPos = Number(data[2]);
var videoLength = Number(data[3]);
var title = data[4];
var bracketArray = title.split('(');
var text1 = bracketArray.pop();
var displayName = text1.slice(0, -1);
var text2 = bracketArray.join('(');
if (text2 === 'URL ') {
var videoId = 'YouTube';
} else {
var videoId = text2.substr(0, text2.indexOf(':') - 1);
text2 = text2.substr(text2.indexOf(':') + 2);
}
var videoName = text2.slice(0, -1);
var userId = '';
if (displayName && displayName !== 'Random') {
for (var ref of API.cachedUsers.values()) {
if (ref.displayName === displayName) {
userId = ref.id;
break;
} }
} }
} }
if (videoId === 'URL') { if (videoId === 'YouTube') {
var entry = { var entry = {
dt: gameLog.dt, dt: gameLog.dt,
videoUrl, videoUrl,
displayName displayName,
videoPos,
videoId
}; };
this.addGameLogVideo(entry, location, userId, pushToTable); this.addGameLogVideo(entry, location, userId, pushToTable);
} else { } else {
@@ -7510,9 +7552,11 @@ speechSynthesis.getVoices();
videoLength, videoLength,
location, location,
displayName, displayName,
userId userId,
videoPos
}; };
if (pushToTable) { if (pushToTable) {
this.setNowPlaying(entry);
this.queueGameLogNoty(entry); this.queueGameLogNoty(entry);
this.gameLogTable.data.push(entry); this.gameLogTable.data.push(entry);
this.updateSharedFeed(false); this.updateSharedFeed(false);
@@ -7550,20 +7594,127 @@ speechSynthesis.getVoices();
return data; return data;
}; };
$app.methods.sweepGameLog = function () { $app.data.nowPlaying = {
var {data} = this.gameLogTable; url: '',
// 로그는 7일까지만 남김 name: '',
var limit = new Date(Date.now() - 7 * 24 * 60 * 60 * 1000).toJSON(); length: 0,
var i = 0; startTime: 0,
var j = data.length; elapsed: 0,
while (i < j && data[i].created_at < limit) { percentage: 0,
++i; remainingText: '',
playing: false
};
$app.methods.clearNowPlaying = function () {
this.nowPlaying = {
url: '',
name: '',
length: 0,
startTime: 0,
elapsed: 0,
percentage: 0,
remainingText: '',
playing: false
};
this.updateVrNowPlaying();
};
$app.methods.setNowPlaying = function (ctx) {
var videoId = '';
var displayName = '';
if (ctx.videoId) {
videoId = `${ctx.videoId} : `;
} }
if (i === j) { if (ctx.displayName) {
this.gameLogTable.data = []; displayName = ` (${ctx.displayName})`;
} else if (i) {
data.splice(0, i);
} }
var name = `${videoId}${ctx.videoName}${displayName} `;
this.nowPlaying = {
url: ctx.videoUrl,
name,
length: ctx.videoLength,
startTime: Date.parse(ctx.created_at) / 1000 - ctx.videoPos,
elapsed: 0,
percentage: 0,
remainingText: ''
};
if (!this.nowPlaying.playing) {
this.nowPlaying.playing = true;
this.updateNowPlaying();
}
};
$app.methods.updateNowPlaying = function () {
var np = this.nowPlaying;
if (!np.url) {
this.nowPlaying.playing = false;
return;
}
var now = Date.now() / 1000;
np.elapsed = Math.round((now - np.startTime) * 10) / 10;
if (np.elapsed >= np.length) {
this.clearNowPlaying();
return;
}
np.remainingText = this.formatSeconds(np.length - np.elapsed);
np.percentage = Math.round(((np.elapsed * 100) / np.length) * 10) / 10;
this.updateVrNowPlaying();
setTimeout(() => this.updateNowPlaying(), 1000);
};
$app.methods.updateVrNowPlaying = function () {
var json = JSON.stringify(this.nowPlaying);
AppApi.ExecuteVrFeedFunction('nowPlayingUpdate', json);
};
$app.methods.formatSeconds = function (duration) {
var pad = function (num, size) {
return `000${num}`.slice(size * -1);
},
time = parseFloat(duration).toFixed(3),
hours = Math.floor(time / 60 / 60),
minutes = Math.floor(time / 60) % 60,
seconds = Math.floor(time - minutes * 60);
var hoursOut = '';
if (hours > '0') {
hoursOut = `${pad(hours, 2)}:`;
}
return `${hoursOut + pad(minutes, 2)}:${pad(seconds, 2)}`;
};
$app.methods.convertYoutubeTime = function (duration) {
var a = duration.match(/\d+/g);
if (
duration.indexOf('M') >= 0 &&
duration.indexOf('H') === -1 &&
duration.indexOf('S') === -1
) {
a = [0, a[0], 0];
}
if (duration.indexOf('H') >= 0 && duration.indexOf('M') === -1) {
a = [a[0], 0, a[1]];
}
if (
duration.indexOf('H') >= 0 &&
duration.indexOf('M') === -1 &&
duration.indexOf('S') === -1
) {
a = [a[0], 0, 0];
}
var length = 0;
if (a.length === 3) {
length += parseInt(a[0], 10) * 3600;
length += parseInt(a[1], 10) * 60;
length += parseInt(a[2], 10);
}
if (a.length === 2) {
length += parseInt(a[0], 10) * 60;
length += parseInt(a[1], 10);
}
if (a.length === 1) {
length += parseInt(a[0], 10);
}
return length;
}; };
$app.methods.updateDiscord = function () { $app.methods.updateDiscord = function () {
@@ -7633,8 +7784,19 @@ speechSynthesis.getVoices();
L.statusImage = 'busy'; L.statusImage = 'busy';
break; break;
} }
var appId = '883308884863901717';
var bigIcon = 'vrchat';
if (L.worldId === 'wrld_f20326da-f1ac-45fc-a062-609723b097b1') {
L.worldName = this.nowPlaying.name;
appId = '784094509008551956';
bigIcon = 'pypy';
Discord.SetTimestamps(
Date.now(),
(this.nowPlaying.startTime + this.nowPlaying.length) * 1000
);
}
Discord.SetAssets( Discord.SetAssets(
'vrchat', // big icon bigIcon, // big icon
'Powered by VRCX', // big icon hover text 'Powered by VRCX', // big icon hover text
L.statusImage, // small icon L.statusImage, // small icon
L.statusName, // small icon hover text L.statusName, // small icon hover text
@@ -7643,7 +7805,7 @@ speechSynthesis.getVoices();
L.worldCapacity, // party max size L.worldCapacity, // party max size
'Join', // button text 'Join', // button text
L.joinUrl, // button url L.joinUrl, // button url
'883308884863901717' // app id appId // app id
); );
// NOTE // NOTE
// 글자 수가 짧으면 업데이트가 안된다.. // 글자 수가 짧으면 업데이트가 안된다..
@@ -9330,11 +9492,11 @@ speechSynthesis.getVoices();
}); });
}; };
$app.methods.updateOpenVR = function () { $app.methods.updateOpenVR = function (isGameRunning, isGameNoVR) {
if ( if (
this.openVR && this.openVR &&
this.isGameNoVR === false && !isGameNoVR &&
(this.isGameRunning || this.openVRAlways) (isGameRunning || this.openVRAlways)
) { ) {
AppApi.StartVR(); AppApi.StartVR();
} else { } else {

View File

@@ -82,7 +82,7 @@
margin-top: 15px; margin-top: 15px;
} }
.el-table__expanded-cell[class*=cell] { .el-table__expanded-cell[class*='cell'] {
padding: 20px 50px; padding: 20px 50px;
} }

View File

@@ -8,6 +8,8 @@ import Noty from 'noty';
import Vue from 'vue'; import Vue from 'vue';
import ElementUI from 'element-ui'; import ElementUI from 'element-ui';
import locale from 'element-ui/lib/locale/lang/en'; import locale from 'element-ui/lib/locale/lang/en';
import MarqueeText from 'vue-marquee-text-component';
Vue.component('marquee-text', MarqueeText);
import configRepository from './repository/config.js'; import configRepository from './repository/config.js';
@@ -178,6 +180,15 @@ speechSynthesis.getVoices();
currentTime: new Date().toJSON(), currentTime: new Date().toJSON(),
cpuUsage: 0, cpuUsage: 0,
config: {}, config: {},
nowPlaying: {
url: '',
name: '',
length: 0,
startTime: 0,
elapsed: 0,
percentage: 0,
remainingText: ''
},
lastLocation: { lastLocation: {
date: 0, date: 0,
location: '', location: '',
@@ -280,6 +291,10 @@ speechSynthesis.getVoices();
this.config = JSON.parse(json); this.config = JSON.parse(json);
}; };
$app.methods.nowPlayingUpdate = function (json) {
this.nowPlaying = JSON.parse(json);
};
$app.methods.lastLocationUpdate = function (json) { $app.methods.lastLocationUpdate = function (json) {
this.lastLocation = JSON.parse(json); this.lastLocation = JSON.parse(json);
}; };

View File

@@ -69,8 +69,8 @@ html
span.extra span.extra
span.time {{ feed.created_at | formatDate('HH:MI') }} span.time {{ feed.created_at | formatDate('HH:MI') }}
| 🎵 #[span.name(v-text="feed.displayName")] | 🎵 #[span.name(v-text="feed.displayName")]
template(v-if="feed.notyName") template(v-if="feed.videoName")
| #[span(v-text="feed.notyName")] | #[span(v-text="feed.videoName")]
template(v-else) template(v-else)
| #[span(v-text="feed.videoUrl")] | #[span(v-text="feed.videoUrl")]
div(v-else-if="feed.type === 'invite'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }") div(v-else-if="feed.type === 'invite'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
@@ -215,8 +215,8 @@ html
span.extra span.extra
span.time {{ feed.created_at | formatDate('HH:MI') }} span.time {{ feed.created_at | formatDate('HH:MI') }}
| #[span.name(v-text="feed.displayName")] changed video to | #[span.name(v-text="feed.displayName")] changed video to
template(v-if="feed.notyName") template(v-if="feed.videoName")
| #[span(v-text="feed.notyName")] | #[span(v-text="feed.videoName")]
template(v-else) template(v-else)
| #[span(v-text="feed.videoUrl")] | #[span(v-text="feed.videoUrl")]
div(v-else-if="feed.type === 'invite'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }") div(v-else-if="feed.type === 'invite'" class="x-friend-item" :class="{ friend: feed.isFriend, favorite: feed.isFavorite }")
@@ -349,12 +349,15 @@ html
br br
span {{ device[2] }}% span {{ device[2] }}%
.x-containerbottom .x-containerbottom
span(style="float:right;padding-left:10px") {{ nowPlaying.remainingText }}
marquee-text {{ nowPlaying.name }}
div.np-progress-bar(:style="{ width: nowPlaying.percentage + '%' }")
template(v-if="config && config.minimalFeed") template(v-if="config && config.minimalFeed")
template(v-if="config.downloadProgress === 100") template(v-if="config.downloadProgress === 100")
span(style="display:inline-block;margin-right:5px") #[i.el-icon-loading] span(style="display:inline-block;margin-right:5px") #[i.el-icon-loading]
template(v-else-if="config.downloadProgress > 0") template(v-else-if="config.downloadProgress > 0")
span(style="display:inline-block;margin-right:5px") {{ config.downloadProgress }}% span(style="display:inline-block;margin-right:5px") {{ config.downloadProgress }}%
template(v-if="lastLocation.date != 0") template(v-if="lastLocation.date !== 0")
span(style="float:right") {{ lastLocationTimer }} span(style="float:right") {{ lastLocationTimer }}
span(style="display:inline-block") {{ lastLocation.playerList.length }} span(style="display:inline-block") {{ lastLocation.playerList.length }}
span(style="display:inline-block;font-weight:bold") {{ lastLocation.friendList.length !== 0 ? ` (${lastLocation.friendList.length})` : ''}} span(style="display:inline-block;font-weight:bold") {{ lastLocation.friendList.length !== 0 ? ` (${lastLocation.friendList.length})` : ''}}
@@ -363,7 +366,7 @@ html
span(style="display:inline-block;margin-right:5px") Downloading: #[i.el-icon-loading] span(style="display:inline-block;margin-right:5px") Downloading: #[i.el-icon-loading]
template(v-else-if="config.downloadProgress > 0") template(v-else-if="config.downloadProgress > 0")
span(style="display:inline-block;margin-right:5px") Downloading: {{ config.downloadProgress }}% span(style="display:inline-block;margin-right:5px") Downloading: {{ config.downloadProgress }}%
template(v-if="lastLocation.date != 0") template(v-if="lastLocation.date !== 0")
span(style="float:right") Timer: {{ lastLocationTimer }} span(style="float:right") Timer: {{ lastLocationTimer }}
span(style="display:inline-block") Players: {{ lastLocation.playerList.length }} span(style="display:inline-block") Players: {{ lastLocation.playerList.length }}
span(style="display:inline-block;font-weight:bold") {{ lastLocation.friendList.length !== 0 ? ` (${lastLocation.friendList.length})` : ''}} span(style="display:inline-block;font-weight:bold") {{ lastLocation.friendList.length !== 0 ? ` (${lastLocation.friendList.length})` : ''}}

View File

@@ -211,11 +211,16 @@ button {
} }
.x-containerbottom span { .x-containerbottom span {
padding: 0px;
display: block; display: block;
overflow: hidden; overflow: hidden;
} }
.np-progress-bar {
width: 0%;
height: 2px;
background-color: white;
}
.x-friend-item { .x-friend-item {
box-sizing: border-box; box-sizing: border-box;
display: flex; display: flex;