mirror of
https://github.com/DevL0rd/SkyNX
synced 2025-02-16 09:18:24 +00:00
add devl0rd base electron UI
This commit is contained in:
parent
32d9285081
commit
6d62e2f871
25 changed files with 1495 additions and 0 deletions
1
SkyNX-Streamer/.gitignore
vendored
Normal file
1
SkyNX-Streamer/.gitignore
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
node_modules
|
21
SkyNX-Streamer/Devlord_modules/DB.js
Normal file
21
SkyNX-Streamer/Devlord_modules/DB.js
Normal file
|
@ -0,0 +1,21 @@
|
|||
//Authour: Dustin Harris
|
||||
//GitHub: https://github.com/DevL0rd
|
||||
var fs = require('fs');
|
||||
var getDirName = require('path').dirname;
|
||||
|
||||
function load(path) {
|
||||
var contents = fs.readFileSync(path).toString('utf-8');
|
||||
return JSON.parse(contents)
|
||||
}
|
||||
|
||||
function save(path, obj) {
|
||||
var contents = JSON.stringify(obj, null, "\t")
|
||||
fs.mkdir(getDirName(path), { recursive: true }, function (err) {
|
||||
if (err) throw err;
|
||||
fs.writeFileSync(path, contents, function (err) {
|
||||
if (err) throw err;
|
||||
});
|
||||
});
|
||||
}
|
||||
exports.load = load;
|
||||
exports.save = save;
|
37
SkyNX-Streamer/Devlord_modules/conColors.js
Normal file
37
SkyNX-Streamer/Devlord_modules/conColors.js
Normal file
|
@ -0,0 +1,37 @@
|
|||
//Authour: Dustin Harris
|
||||
//GitHub: https://github.com/DevL0rd
|
||||
var reset = "\x1b[0m";
|
||||
|
||||
var style = {
|
||||
bright: "\x1b[1m",
|
||||
dim: "\x1b[2m",
|
||||
underscore: "\x1b[4m",
|
||||
blink: "\x1b[5m",
|
||||
reverse: "\x1b[7m",
|
||||
hidden: "\x1b[8m"
|
||||
}
|
||||
|
||||
var fg = {
|
||||
black: "\x1b[30m",
|
||||
red: "\x1b[31m",
|
||||
green: "\x1b[32m",
|
||||
yellow: "\x1b[33m",
|
||||
blue: "\x1b[34m",
|
||||
magenta: "\x1b[35m",
|
||||
cyan: "\x1b[36m",
|
||||
white: "\x1b[37m"
|
||||
}
|
||||
var bg = {
|
||||
black: "\x1b[40m",
|
||||
red: "\x1b[41m",
|
||||
green: "\x1b[42m",
|
||||
yellow: "\x1b[43m",
|
||||
blue: "\x1b[44m",
|
||||
magenta: "\x1b[45m",
|
||||
cyan: "\x1b[46m",
|
||||
white: "\x1b[47m"
|
||||
}
|
||||
exports.bg = bg;
|
||||
exports.fg = fg;
|
||||
exports.style = style;
|
||||
exports.reset = reset;
|
13
SkyNX-Streamer/Devlord_modules/conSplash.js
Normal file
13
SkyNX-Streamer/Devlord_modules/conSplash.js
Normal file
|
@ -0,0 +1,13 @@
|
|||
//Authour: Dustin Harris
|
||||
//GitHub: https://github.com/DevL0rd
|
||||
var cc = require('./conColors.js');
|
||||
console.log(cc.style.bright + cc.fg.blue)
|
||||
console.log(" ____ ___ __ ");
|
||||
console.log("/\\ _`\\ /\\_ \\ /\\ \\ ");
|
||||
console.log("\\ \\ \\/\\ \\ __ __ __\\//\\ \\ ___ _ __ \\_\\ \\ ");
|
||||
console.log(" \\ \\ \\ \\ \\ /'__`\\/\\ \\/\\ \\ \\ \\ \\ / __`\\/\\`'__\\/'_` \\ ");
|
||||
console.log(" \\ \\ \\_\\ \\/\\ __/\\ \\ \\_/ | \\_\\ \\_/\\ \\_\\ \\ \\ \\//\\ \\_\\ \\ ");
|
||||
console.log(" \\ \\____/\\ \\____\\\\ \\___/ /\\____\\ \\____/\\ \\_\\\\ \\___,_\\ ");
|
||||
console.log(" \\/___/ \\/____/ \\/__/ \\/____/\\/___/ \\/_/ \\/__,_ / ");
|
||||
console.log(" ");
|
||||
console.log(cc.reset)
|
2
SkyNX-Streamer/InstallModules.bat
Normal file
2
SkyNX-Streamer/InstallModules.bat
Normal file
|
@ -0,0 +1,2 @@
|
|||
npm install
|
||||
pause
|
4
SkyNX-Streamer/Package.bat
Normal file
4
SkyNX-Streamer/Package.bat
Normal file
|
@ -0,0 +1,4 @@
|
|||
@echo off
|
||||
cls
|
||||
electron-packager . Base-Electron-App --platform=win32 --arch=x64
|
||||
pause
|
4
SkyNX-Streamer/Start.bat
Normal file
4
SkyNX-Streamer/Start.bat
Normal file
|
@ -0,0 +1,4 @@
|
|||
@echo off
|
||||
cls
|
||||
npm start
|
||||
pause
|
227
SkyNX-Streamer/css/animations.css
Normal file
227
SkyNX-Streamer/css/animations.css
Normal file
|
@ -0,0 +1,227 @@
|
|||
/* Authour: Dustin Harris */
|
||||
/* GitHub: https://github.com/DevL0rd */
|
||||
.is-hidden {
|
||||
visibility: hidden;
|
||||
}
|
||||
@-webkit-keyframes bounceLeft {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateX(-100px);
|
||||
transform: translateX(-100px);
|
||||
}
|
||||
60% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateX(20px);
|
||||
transform: translateX(20px);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes bounceLeft {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateX(-100px);
|
||||
transform: translateX(-100px);
|
||||
}
|
||||
60% {
|
||||
opacity: 1;
|
||||
-webkit-transform: translateX(20px);
|
||||
transform: translateX(20px);
|
||||
}
|
||||
100% {
|
||||
-webkit-transform: translateX(0);
|
||||
transform: translateX(0);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes growInFromCenter {
|
||||
0% {
|
||||
opacity: 0;
|
||||
-ms-transform: scale(0.95, 0.95); /* IE 9 */
|
||||
-webkit-transform: scale(0.95, 0.95); /* Safari */
|
||||
transform: scale(0.95, 0.95);
|
||||
}
|
||||
60% {
|
||||
opacity: 1;
|
||||
-ms-transform: scale(1.01, 1.01);
|
||||
-webkit-transform: scale(1.01, 1.01);
|
||||
transform: scale(1.01, 1.01);
|
||||
}
|
||||
100% {
|
||||
-ms-transform: scale(1, 1);
|
||||
-webkit-transform: scale(1, 1);
|
||||
transform: scale(1, 1);
|
||||
}
|
||||
}
|
||||
|
||||
@keyframes fadeIn {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
@keyframes slideOutRight {
|
||||
0% {
|
||||
-webkit-transform: translateX(0px);
|
||||
transform: translateX(0px);
|
||||
}
|
||||
100% {
|
||||
opacity: 0;
|
||||
-webkit-transform: translateX(100px);
|
||||
transform: translateX(100px);
|
||||
}
|
||||
}
|
||||
|
||||
.slideOutRight {
|
||||
-webkit-transform: translateZ(0);
|
||||
-moz-transform: translateZ(0);
|
||||
-ms-transform: translateZ(0);
|
||||
-o-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
-webkit-animation: slideOutRight 0.6s; /* Safari, Chrome and Opera > 12.1 */
|
||||
-moz-animation: slideOutRight 0.6s; /* Firefox < 16 */
|
||||
-ms-animation: slideOutRight 0.6s; /* Internet Explorer */
|
||||
-o-animation: slideOutRight 0.6s; /* Opera < 12.1 */
|
||||
animation: slideOutRight 0.6s;
|
||||
}
|
||||
|
||||
.fadeIn {
|
||||
-webkit-transform: translateZ(0);
|
||||
-moz-transform: translateZ(0);
|
||||
-ms-transform: translateZ(0);
|
||||
-o-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
-webkit-animation: fadeIn 1s; /* Safari, Chrome and Opera > 12.1 */
|
||||
-moz-animation: fadeIn 1s; /* Firefox < 16 */
|
||||
-ms-animation: fadeIn 1s; /* Internet Explorer */
|
||||
-o-animation: fadeIn 1s; /* Opera < 12.1 */
|
||||
animation: fadeIn 1s;
|
||||
}
|
||||
|
||||
.growInFromCenter {
|
||||
-webkit-transform: translateZ(0);
|
||||
-moz-transform: translateZ(0);
|
||||
-ms-transform: translateZ(0);
|
||||
-o-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
-webkit-animation: growInFromCenter 0.7s; /* Safari, Chrome and Opera > 12.1 */
|
||||
-moz-animation: growInFromCenter 0.7s; /* Firefox < 16 */
|
||||
-ms-animation: growInFromCenter 0.7s; /* Internet Explorer */
|
||||
-o-animation: growInFromCenter 0.7s; /* Opera < 12.1 */
|
||||
animation: growInFromCenter 0.7s;
|
||||
}
|
||||
|
||||
.growInFromCenterOnShow_anim {
|
||||
-webkit-transform: translateZ(0);
|
||||
-moz-transform: translateZ(0);
|
||||
-ms-transform: translateZ(0);
|
||||
-o-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
-webkit-animation: growInFromCenter 0.7s; /* Safari, Chrome and Opera > 12.1 */
|
||||
-moz-animation: growInFromCenter 0.7s; /* Firefox < 16 */
|
||||
-ms-animation: growInFromCenter 0.7s; /* Internet Explorer */
|
||||
-o-animation: growInFromCenter 0.7s; /* Opera < 12.1 */
|
||||
animation: growInFromCenter 0.7s;
|
||||
}
|
||||
|
||||
.fadeInOnShow_anim {
|
||||
-webkit-transform: translateZ(0);
|
||||
-moz-transform: translateZ(0);
|
||||
-ms-transform: translateZ(0);
|
||||
-o-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
-webkit-animation: fadeIn 1s; /* Safari, Chrome and Opera > 12.1 */
|
||||
-moz-animation: fadeIn 1s; /* Firefox < 16 */
|
||||
-ms-animation: fadeIn 1s; /* Internet Explorer */
|
||||
-o-animation: fadeIn 1s; /* Opera < 12.1 */
|
||||
animation: fadeIn 1s;
|
||||
}
|
||||
|
||||
.bounceLeft_anim {
|
||||
-webkit-transform: translateZ(0);
|
||||
-moz-transform: translateZ(0);
|
||||
-ms-transform: translateZ(0);
|
||||
-o-transform: translateZ(0);
|
||||
transform: translateZ(0);
|
||||
visibility: visible;
|
||||
-webkit-animation: bounceLeft 0.6s;
|
||||
animation: bounceLeft 0.6s;
|
||||
}
|
||||
|
||||
.rainbowFontColor {
|
||||
color : red;
|
||||
}
|
||||
|
||||
.rainbowBackgroundColor {
|
||||
background : linear-gradient(to right, rgba(255,00,00,0.7) 0%,rgba(255,00,00,0.7) 100%);
|
||||
}
|
||||
|
||||
.rainbowBackgroundColor2 {
|
||||
background : linear-gradient(to right, rgba(255,00,00,0.7) 0%,rgba(255,00,00,0.7) 100%);
|
||||
}
|
||||
|
||||
/* The switch - the box around the slider */
|
||||
.switch {
|
||||
position: relative;
|
||||
display: inline-block;
|
||||
width: 35px;
|
||||
height: 24px;
|
||||
margin-top: 7px;
|
||||
}
|
||||
|
||||
/* Hide default HTML checkbox */
|
||||
.switch input {
|
||||
opacity: 0;
|
||||
width: 0;
|
||||
height: 0;
|
||||
}
|
||||
|
||||
/* The slider */
|
||||
.slider {
|
||||
position: absolute;
|
||||
cursor: pointer;
|
||||
top: 0;
|
||||
left: 0;
|
||||
right: 0;
|
||||
bottom: 0;
|
||||
background-color: #ccc;
|
||||
-webkit-transition: .4s;
|
||||
transition: .4s;
|
||||
}
|
||||
|
||||
.slider:before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
height: 14px;
|
||||
width: 14px;
|
||||
left: 5px;
|
||||
bottom: 5px;
|
||||
background-color: #ccc;
|
||||
-webkit-transition: .4s;
|
||||
transition: .4s;
|
||||
}
|
||||
|
||||
input:checked + .slider {
|
||||
background-color: linear-gradient(to right, rgba(255,00,00,0.7) 0%,rgba(255,00,00,0.7) 100%);
|
||||
|
||||
}
|
||||
|
||||
input:checked + .slider:before {
|
||||
-webkit-transform: translateX(12px);
|
||||
-ms-transform: translateX(12px);
|
||||
transform: translateX(12px);
|
||||
}
|
||||
|
||||
/* Rounded sliders */
|
||||
.slider.round {
|
||||
border-radius: 34px;
|
||||
}
|
||||
|
||||
.slider.round:before {
|
||||
border-radius: 50%;
|
||||
}
|
7
SkyNX-Streamer/css/bootstrap.min.css
vendored
Normal file
7
SkyNX-Streamer/css/bootstrap.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
345
SkyNX-Streamer/css/fa-svg-with-js.css
Normal file
345
SkyNX-Streamer/css/fa-svg-with-js.css
Normal file
|
@ -0,0 +1,345 @@
|
|||
/*!
|
||||
* Font Awesome Free 5.0.13 by @fontawesome - https://fontawesome.com
|
||||
* License - https://fontawesome.com/license (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||
*/
|
||||
svg:not(:root).svg-inline--fa {
|
||||
overflow: visible; }
|
||||
|
||||
.svg-inline--fa {
|
||||
display: inline-block;
|
||||
font-size: inherit;
|
||||
height: 1em;
|
||||
overflow: visible;
|
||||
vertical-align: -.125em; }
|
||||
.svg-inline--fa.fa-lg {
|
||||
vertical-align: -.225em; }
|
||||
.svg-inline--fa.fa-w-1 {
|
||||
width: 0.0625em; }
|
||||
.svg-inline--fa.fa-w-2 {
|
||||
width: 0.125em; }
|
||||
.svg-inline--fa.fa-w-3 {
|
||||
width: 0.1875em; }
|
||||
.svg-inline--fa.fa-w-4 {
|
||||
width: 0.25em; }
|
||||
.svg-inline--fa.fa-w-5 {
|
||||
width: 0.3125em; }
|
||||
.svg-inline--fa.fa-w-6 {
|
||||
width: 0.375em; }
|
||||
.svg-inline--fa.fa-w-7 {
|
||||
width: 0.4375em; }
|
||||
.svg-inline--fa.fa-w-8 {
|
||||
width: 0.5em; }
|
||||
.svg-inline--fa.fa-w-9 {
|
||||
width: 0.5625em; }
|
||||
.svg-inline--fa.fa-w-10 {
|
||||
width: 0.625em; }
|
||||
.svg-inline--fa.fa-w-11 {
|
||||
width: 0.6875em; }
|
||||
.svg-inline--fa.fa-w-12 {
|
||||
width: 0.75em; }
|
||||
.svg-inline--fa.fa-w-13 {
|
||||
width: 0.8125em; }
|
||||
.svg-inline--fa.fa-w-14 {
|
||||
width: 0.875em; }
|
||||
.svg-inline--fa.fa-w-15 {
|
||||
width: 0.9375em; }
|
||||
.svg-inline--fa.fa-w-16 {
|
||||
width: 1em; }
|
||||
.svg-inline--fa.fa-w-17 {
|
||||
width: 1.0625em; }
|
||||
.svg-inline--fa.fa-w-18 {
|
||||
width: 1.125em; }
|
||||
.svg-inline--fa.fa-w-19 {
|
||||
width: 1.1875em; }
|
||||
.svg-inline--fa.fa-w-20 {
|
||||
width: 1.25em; }
|
||||
.svg-inline--fa.fa-pull-left {
|
||||
margin-right: .3em;
|
||||
width: auto; }
|
||||
.svg-inline--fa.fa-pull-right {
|
||||
margin-left: .3em;
|
||||
width: auto; }
|
||||
.svg-inline--fa.fa-border {
|
||||
height: 1.5em; }
|
||||
.svg-inline--fa.fa-li {
|
||||
width: 2em; }
|
||||
.svg-inline--fa.fa-fw {
|
||||
width: 1.25em; }
|
||||
|
||||
.fa-layers svg.svg-inline--fa {
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
margin: auto;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0; }
|
||||
|
||||
.fa-layers {
|
||||
display: inline-block;
|
||||
height: 1em;
|
||||
position: relative;
|
||||
text-align: center;
|
||||
vertical-align: -.125em;
|
||||
width: 1em; }
|
||||
.fa-layers svg.svg-inline--fa {
|
||||
-webkit-transform-origin: center center;
|
||||
transform-origin: center center; }
|
||||
|
||||
.fa-layers-text, .fa-layers-counter {
|
||||
display: inline-block;
|
||||
position: absolute;
|
||||
text-align: center; }
|
||||
|
||||
.fa-layers-text {
|
||||
left: 50%;
|
||||
top: 50%;
|
||||
-webkit-transform: translate(-50%, -50%);
|
||||
transform: translate(-50%, -50%);
|
||||
-webkit-transform-origin: center center;
|
||||
transform-origin: center center; }
|
||||
|
||||
.fa-layers-counter {
|
||||
background-color: #ff253a;
|
||||
border-radius: 1em;
|
||||
-webkit-box-sizing: border-box;
|
||||
box-sizing: border-box;
|
||||
color: #fff;
|
||||
height: 1.5em;
|
||||
line-height: 1;
|
||||
max-width: 5em;
|
||||
min-width: 1.5em;
|
||||
overflow: hidden;
|
||||
padding: .25em;
|
||||
right: 0;
|
||||
text-overflow: ellipsis;
|
||||
top: 0;
|
||||
-webkit-transform: scale(0.25);
|
||||
transform: scale(0.25);
|
||||
-webkit-transform-origin: top right;
|
||||
transform-origin: top right; }
|
||||
|
||||
.fa-layers-bottom-right {
|
||||
bottom: 0;
|
||||
right: 0;
|
||||
top: auto;
|
||||
-webkit-transform: scale(0.25);
|
||||
transform: scale(0.25);
|
||||
-webkit-transform-origin: bottom right;
|
||||
transform-origin: bottom right; }
|
||||
|
||||
.fa-layers-bottom-left {
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
right: auto;
|
||||
top: auto;
|
||||
-webkit-transform: scale(0.25);
|
||||
transform: scale(0.25);
|
||||
-webkit-transform-origin: bottom left;
|
||||
transform-origin: bottom left; }
|
||||
|
||||
.fa-layers-top-right {
|
||||
right: 0;
|
||||
top: 0;
|
||||
-webkit-transform: scale(0.25);
|
||||
transform: scale(0.25);
|
||||
-webkit-transform-origin: top right;
|
||||
transform-origin: top right; }
|
||||
|
||||
.fa-layers-top-left {
|
||||
left: 0;
|
||||
right: auto;
|
||||
top: 0;
|
||||
-webkit-transform: scale(0.25);
|
||||
transform: scale(0.25);
|
||||
-webkit-transform-origin: top left;
|
||||
transform-origin: top left; }
|
||||
|
||||
.fa-lg {
|
||||
font-size: 1.33333em;
|
||||
line-height: 0.75em;
|
||||
vertical-align: -.0667em; }
|
||||
|
||||
.fa-xs {
|
||||
font-size: .75em; }
|
||||
|
||||
.fa-sm {
|
||||
font-size: .875em; }
|
||||
|
||||
.fa-1x {
|
||||
font-size: 1em; }
|
||||
|
||||
.fa-2x {
|
||||
font-size: 2em; }
|
||||
|
||||
.fa-3x {
|
||||
font-size: 3em; }
|
||||
|
||||
.fa-4x {
|
||||
font-size: 4em; }
|
||||
|
||||
.fa-5x {
|
||||
font-size: 5em; }
|
||||
|
||||
.fa-6x {
|
||||
font-size: 6em; }
|
||||
|
||||
.fa-7x {
|
||||
font-size: 7em; }
|
||||
|
||||
.fa-8x {
|
||||
font-size: 8em; }
|
||||
|
||||
.fa-9x {
|
||||
font-size: 9em; }
|
||||
|
||||
.fa-10x {
|
||||
font-size: 10em; }
|
||||
|
||||
.fa-fw {
|
||||
text-align: center;
|
||||
width: 1.25em; }
|
||||
|
||||
.fa-ul {
|
||||
list-style-type: none;
|
||||
margin-left: 2.5em;
|
||||
padding-left: 0; }
|
||||
.fa-ul > li {
|
||||
position: relative; }
|
||||
|
||||
.fa-li {
|
||||
left: -2em;
|
||||
position: absolute;
|
||||
text-align: center;
|
||||
width: 2em;
|
||||
line-height: inherit; }
|
||||
|
||||
.fa-border {
|
||||
border: solid 0.08em #eee;
|
||||
border-radius: .1em;
|
||||
padding: .2em .25em .15em; }
|
||||
|
||||
.fa-pull-left {
|
||||
float: left; }
|
||||
|
||||
.fa-pull-right {
|
||||
float: right; }
|
||||
|
||||
.fa.fa-pull-left,
|
||||
.fas.fa-pull-left,
|
||||
.far.fa-pull-left,
|
||||
.fal.fa-pull-left,
|
||||
.fab.fa-pull-left {
|
||||
margin-right: .3em; }
|
||||
|
||||
.fa.fa-pull-right,
|
||||
.fas.fa-pull-right,
|
||||
.far.fa-pull-right,
|
||||
.fal.fa-pull-right,
|
||||
.fab.fa-pull-right {
|
||||
margin-left: .3em; }
|
||||
|
||||
.fa-spin {
|
||||
-webkit-animation: fa-spin 2s infinite linear;
|
||||
animation: fa-spin 2s infinite linear; }
|
||||
|
||||
.fa-pulse {
|
||||
-webkit-animation: fa-spin 1s infinite steps(8);
|
||||
animation: fa-spin 1s infinite steps(8); }
|
||||
|
||||
@-webkit-keyframes fa-spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg); }
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg); } }
|
||||
|
||||
@keyframes fa-spin {
|
||||
0% {
|
||||
-webkit-transform: rotate(0deg);
|
||||
transform: rotate(0deg); }
|
||||
100% {
|
||||
-webkit-transform: rotate(360deg);
|
||||
transform: rotate(360deg); } }
|
||||
|
||||
.fa-rotate-90 {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
|
||||
-webkit-transform: rotate(90deg);
|
||||
transform: rotate(90deg); }
|
||||
|
||||
.fa-rotate-180 {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
|
||||
-webkit-transform: rotate(180deg);
|
||||
transform: rotate(180deg); }
|
||||
|
||||
.fa-rotate-270 {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
|
||||
-webkit-transform: rotate(270deg);
|
||||
transform: rotate(270deg); }
|
||||
|
||||
.fa-flip-horizontal {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
|
||||
-webkit-transform: scale(-1, 1);
|
||||
transform: scale(-1, 1); }
|
||||
|
||||
.fa-flip-vertical {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
|
||||
-webkit-transform: scale(1, -1);
|
||||
transform: scale(1, -1); }
|
||||
|
||||
.fa-flip-horizontal.fa-flip-vertical {
|
||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
|
||||
-webkit-transform: scale(-1, -1);
|
||||
transform: scale(-1, -1); }
|
||||
|
||||
:root .fa-rotate-90,
|
||||
:root .fa-rotate-180,
|
||||
:root .fa-rotate-270,
|
||||
:root .fa-flip-horizontal,
|
||||
:root .fa-flip-vertical {
|
||||
-webkit-filter: none;
|
||||
filter: none; }
|
||||
|
||||
.fa-stack {
|
||||
display: inline-block;
|
||||
height: 2em;
|
||||
position: relative;
|
||||
width: 2em; }
|
||||
|
||||
.fa-stack-1x,
|
||||
.fa-stack-2x {
|
||||
bottom: 0;
|
||||
left: 0;
|
||||
margin: auto;
|
||||
position: absolute;
|
||||
right: 0;
|
||||
top: 0; }
|
||||
|
||||
.svg-inline--fa.fa-stack-1x {
|
||||
height: 1em;
|
||||
width: 1em; }
|
||||
|
||||
.svg-inline--fa.fa-stack-2x {
|
||||
height: 2em;
|
||||
width: 2em; }
|
||||
|
||||
.fa-inverse {
|
||||
color: #fff; }
|
||||
|
||||
.sr-only {
|
||||
border: 0;
|
||||
clip: rect(0, 0, 0, 0);
|
||||
height: 1px;
|
||||
margin: -1px;
|
||||
overflow: hidden;
|
||||
padding: 0;
|
||||
position: absolute;
|
||||
width: 1px; }
|
||||
|
||||
.sr-only-focusable:active, .sr-only-focusable:focus {
|
||||
clip: auto;
|
||||
height: auto;
|
||||
margin: 0;
|
||||
overflow: visible;
|
||||
position: static;
|
||||
width: auto; }
|
244
SkyNX-Streamer/css/windowStyle.css
Normal file
244
SkyNX-Streamer/css/windowStyle.css
Normal file
|
@ -0,0 +1,244 @@
|
|||
/* Authour: Dustin Harris */
|
||||
/* GitHub: https://github.com/DevL0rd */
|
||||
html {
|
||||
background: transparent;
|
||||
height: 100%;
|
||||
border-top-left-radius: 5px;
|
||||
border-top-right-radius: 5px;
|
||||
border-bottom-left-radius: 8px;
|
||||
border-bottom-right-radius: 8px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
body {
|
||||
background: transparent;
|
||||
height: 100%;
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
border-top-left-radius: 5px;
|
||||
border-top-right-radius: 5px;
|
||||
border-bottom-left-radius: 8px;
|
||||
border-bottom-right-radius: 8px;
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
textarea:focus, input:focus{
|
||||
outline: none;
|
||||
}
|
||||
#content {
|
||||
background: linear-gradient(to bottom, rgba(30,30,30,0.9) 0%,rgba(51,51,51,0.8) 67%,rgba(51,51,51,0.8) 100%);
|
||||
height: calc(100% - 57px);
|
||||
overflow: auto;
|
||||
width: 100%;
|
||||
|
||||
}
|
||||
|
||||
#title-bar {
|
||||
-webkit-app-region: drag;
|
||||
height: 32px;
|
||||
background-color: rgba(255, 0, 0, 0.8);
|
||||
padding: 0px;
|
||||
margin: 0px;
|
||||
box-shadow: 0px 4px 14px 0px rgba(0,0,0,0.9);
|
||||
}
|
||||
|
||||
#title {
|
||||
position: fixed;
|
||||
top: 7px;
|
||||
left: 6px;
|
||||
color: white;
|
||||
font-size: 12px;
|
||||
font-weight:bold;
|
||||
}
|
||||
|
||||
#title-bar-btns {
|
||||
-webkit-app-region: no-drag;
|
||||
position: fixed;
|
||||
top: 0px;
|
||||
right: 0px;
|
||||
height: 32px;
|
||||
}
|
||||
.title-bar-btns:focus {
|
||||
outline: none;
|
||||
}
|
||||
.title-bar-btns:hover {
|
||||
background-color: rgba(255, 255, 255, 0.1);
|
||||
transition: 0.3s;
|
||||
}
|
||||
#close-btn:hover{
|
||||
background-color: rgba(221, 34, 50, 0.9);
|
||||
transition: 0.3s;
|
||||
}
|
||||
|
||||
.title-bar-btns{
|
||||
background: transparent;
|
||||
font-size: 12px;
|
||||
font-weight:bold;
|
||||
width: 46px;
|
||||
height: 32px;
|
||||
border: none;
|
||||
margin: 0px;
|
||||
color: white;
|
||||
}
|
||||
.title-bar-tools:focus {
|
||||
outline: none;
|
||||
}
|
||||
.title-bar-tools:hover {
|
||||
background-color: rgba(255, 255, 255, 0.1);
|
||||
transition: 0.3s;
|
||||
}
|
||||
.title-bar-tools{
|
||||
background: transparent;
|
||||
font-size: 12px;
|
||||
font-weight:bold;
|
||||
width: 26px;
|
||||
height: 32px;
|
||||
border: none;
|
||||
margin: 0px;
|
||||
color: white;
|
||||
}
|
||||
#statusbar {
|
||||
height: 25px;
|
||||
background: rgba(26, 26, 26, 0.8)
|
||||
}
|
||||
#statusbartext{
|
||||
position: absolute;
|
||||
left: 6px;
|
||||
bottom: 5px;
|
||||
font-size: 10px;
|
||||
color: white;
|
||||
font-weight:bold;
|
||||
margin: 0px;
|
||||
}
|
||||
.collapsed {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#loadingCover {
|
||||
position: absolute;
|
||||
top: 0px;
|
||||
left: 0px;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
text-align: center;
|
||||
background: rgb(25, 25, 25);
|
||||
background: -moz-linear-gradient(top, rgba(25, 25, 25, 1) 1%, rgba(35, 35, 35, 1) 31%, rgba(35, 35, 35, 1) 70%, rgba(25, 25, 25, 1) 100%);
|
||||
background: -webkit-linear-gradient(top, rgba(25, 25, 25, 1) 1%, rgba(35, 35, 35, 1) 31%, rgba(35, 35, 35, 1) 70%, rgba(25, 25, 25, 1) 100%);
|
||||
background: linear-gradient(to bottom, rgba(25, 25, 25, 1) 1%, rgba(35, 35, 35, 1) 31%, rgba(35, 35, 35, 1) 70%, rgba(25, 25, 25, 1) 100%);
|
||||
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#191919', endColorstr='#191919', GradientType=0);
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.centerHorz {
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.centerVert {
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.loadingGif {
|
||||
margin: 0 auto;
|
||||
width: 200px;
|
||||
height: 150px;
|
||||
}
|
||||
|
||||
/* scroll */
|
||||
.customScroll::-webkit-scrollbar {
|
||||
width: 12px;
|
||||
background-color: rgba(0, 0, 0, 0.8);
|
||||
}
|
||||
|
||||
.customScroll::-webkit-scrollbar-thumb {
|
||||
width: 8px;
|
||||
background-color: rgb(58, 58, 58);
|
||||
border-radius: 50px;
|
||||
}
|
||||
|
||||
/* bootstrap fix */
|
||||
.row {
|
||||
margin-right: 0px;
|
||||
margin-left: 0px;
|
||||
}
|
||||
|
||||
.dropdown {
|
||||
-webkit-app-region: no-drag;
|
||||
}
|
||||
|
||||
.dropdown-toggle {
|
||||
font-size: 10px;
|
||||
}
|
||||
|
||||
#navBar{
|
||||
position: absolute;
|
||||
top: 32px;
|
||||
left: 0px;
|
||||
height: calc(100% - 57px);
|
||||
width: 50px;
|
||||
background: rgba(39, 39, 39, 0.8);
|
||||
overflow-y:auto;
|
||||
font-size: 10px;
|
||||
box-shadow: 4px 0px 14px 0px rgba(0,0,0,0.7);
|
||||
}
|
||||
.navBar-btns{
|
||||
background: transparent;
|
||||
font-size: 25px;
|
||||
font-weight:bold;
|
||||
height: 50px;
|
||||
width: 100%;
|
||||
border: none;
|
||||
margin: 0px;
|
||||
color: white;
|
||||
}
|
||||
.navBar-btns:focus {
|
||||
outline: none;
|
||||
}
|
||||
.navBar-btns:hover {
|
||||
background-color: rgba(255, 255, 255, 0.1);
|
||||
transition: 0.3s;
|
||||
}
|
||||
|
||||
.contentArea{
|
||||
position: absolute;
|
||||
top: 32px;
|
||||
left: 50px;
|
||||
height: calc(100% - 57px);
|
||||
width: calc(100% - 50px);
|
||||
background: rgba(0,0,0,0.5);
|
||||
overflow: none;
|
||||
}
|
||||
|
||||
#settingsSearch {
|
||||
background: black;
|
||||
border: none;
|
||||
border-radius: 25px;
|
||||
color: white;
|
||||
padding-left: 8px;
|
||||
height: 40px;
|
||||
width: calc(100% - 20px);
|
||||
margin-top: 10px;
|
||||
margin-left: 10px;
|
||||
margin-bottom: 10px;
|
||||
};
|
||||
|
||||
.dark-group-text {
|
||||
background-color: rgba(40,40,0.75);
|
||||
color: white;
|
||||
}
|
||||
|
||||
.validInput {
|
||||
border: 3px solid green;
|
||||
}
|
||||
|
||||
.invalidInput {
|
||||
border: 3px solid tomato;
|
||||
}
|
||||
|
||||
|
||||
.selected{
|
||||
background: rgba(255, 255, 255, 0.1);
|
||||
}
|
BIN
SkyNX-Streamer/img/DevL0rd.jpg
Normal file
BIN
SkyNX-Streamer/img/DevL0rd.jpg
Normal file
Binary file not shown.
After Width: | Height: | Size: 19 KiB |
BIN
SkyNX-Streamer/img/loading.gif
Normal file
BIN
SkyNX-Streamer/img/loading.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 191 KiB |
106
SkyNX-Streamer/index.html
Normal file
106
SkyNX-Streamer/index.html
Normal file
|
@ -0,0 +1,106 @@
|
|||
<!DOCTYPE html>
|
||||
<html>
|
||||
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<title>DevL0rd's Base Electron App</title>
|
||||
<link rel="stylesheet" href="css/bootstrap.min.css">
|
||||
<link rel="stylesheet" href="css/animations.css">
|
||||
<link rel="stylesheet" href="css/fa-svg-with-js.css">
|
||||
<link rel="stylesheet" href="css/windowStyle.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<nav id="title-bar" class="rainbowBackgroundColor">
|
||||
<div id="title">DevL0rd's Base Electron App</div>
|
||||
<div id="title-bar-btns">
|
||||
<button id="rld-btn" class="title-bar-tools" style="display: none;"><i class="fas fa-sync-alt"></i></button>
|
||||
<button id="dev-btn" class="title-bar-tools" style="display: none;"><i class="fab fa-dev"></i></button>
|
||||
<button id="min-btn" class="title-bar-btns"><i class="fas fa-window-minimize"></i></button>
|
||||
<button id="max-btn" class="title-bar-btns"><i class="fas fa-window-maximize"></i></button>
|
||||
<button id="close-btn" class="title-bar-btns"><i class="fas fa-window-close"></i></button>
|
||||
</div>
|
||||
</nav>
|
||||
<div id="content" class="customScroll rainbowScrollColor">
|
||||
<div id="navBar" class="customScroll rainbowScrollColor">
|
||||
<button id="main-btn" class="navBar-btns" data-toggle="tooltip" data-placement="right" data-html="true"
|
||||
title="Plugins"><i class="fas fa-desktop"></i></button>
|
||||
<button id="settings-btn" class="navBar-btns" data-toggle="tooltip" data-placement="right" data-html="true"
|
||||
title="Settings"><i class="fas fa-cogs"></i></button>
|
||||
</div>
|
||||
<div id="main" class="contentArea">
|
||||
|
||||
</div>
|
||||
<div id="settings" class="contentArea" style="display: none;">
|
||||
<input id="settingsSearch" type="text" placeholder="Search settings">
|
||||
<h2>Settings</h2>
|
||||
<div class="row">
|
||||
<div class="col-md-4 settingCol">
|
||||
<div class="input-group centerHorz flex-nowrap">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">Debug</span>
|
||||
</div>
|
||||
<span class="input-group-append input-group-text">
|
||||
<label class="switch">
|
||||
<input id="debugEnabled" type="checkbox">
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4 settingCol">
|
||||
<div class="input-group centerHorz flex-nowrap">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text">Dev Tools On Start</span>
|
||||
</div>
|
||||
<span class="input-group-append input-group-text">
|
||||
<label class="switch">
|
||||
<input id="devToolsOnStartup" type="checkbox">
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4 settingCol">
|
||||
<div class="input-group centerHorz flex-nowrap">
|
||||
<div class="input-group-prepend">
|
||||
<span class="input-group-text dark-group-text">Rainbow Accents</span>
|
||||
</div>
|
||||
<span class="input-group-append input-group-text dark-group-text">
|
||||
<label class="switch">
|
||||
<input id="rainbowEnabled" type="checkbox">
|
||||
<span class="slider round"></span>
|
||||
</label>
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="statusbar" class="rainbowBackgroundColor2">
|
||||
<span id="statusbartext">Ready!</span>
|
||||
</div>
|
||||
<div id="loadingCover">
|
||||
<div class="centerVert">
|
||||
<img src="img/loading.gif" class="loadingGif">
|
||||
<h1 style="color:rgb(206, 206, 206); font-size: 16px;">
|
||||
Application loading...
|
||||
</h1>
|
||||
</div>
|
||||
</div>
|
||||
<script src="js/fontawesome-all.min.js"></script>
|
||||
<script>
|
||||
let $ = require('jquery');
|
||||
require('popper.js');
|
||||
require('bootstrap');
|
||||
$(function () {
|
||||
$('[data-toggle="tooltip"]').tooltip({ boundary: 'window' })
|
||||
})
|
||||
</script>
|
||||
<script src="./js/animations.js"></script>
|
||||
<script src="./js/window.js"></script>
|
||||
<script src="./js/main.js"></script>
|
||||
<script src="./js/settings.js"></script>
|
||||
</body>
|
||||
|
||||
</html>
|
207
SkyNX-Streamer/js/animations.js
Normal file
207
SkyNX-Streamer/js/animations.js
Normal file
|
@ -0,0 +1,207 @@
|
|||
//Authour: Dustin Harris
|
||||
//GitHub: https://github.com/DevL0rd
|
||||
var offset = 0;
|
||||
//IE support
|
||||
if (!String.prototype.includes) {
|
||||
String.prototype.includes = function (search, start) {
|
||||
'use strict';
|
||||
if (typeof start !== 'number') {
|
||||
start = 0;
|
||||
}
|
||||
|
||||
if (start + search.length > this.length) {
|
||||
return false;
|
||||
} else {
|
||||
return this.indexOf(search, start) !== -1;
|
||||
}
|
||||
};
|
||||
}
|
||||
function getAnimations(styleSheetName) {
|
||||
var anims = [];
|
||||
for (i in document.styleSheets) {
|
||||
var styleSheet = document.styleSheets[i];
|
||||
var filePath = styleSheet.href;
|
||||
if (!filePath) continue;
|
||||
var filePathSplit = filePath.split("/");
|
||||
var fileName = filePathSplit[filePathSplit.length - 1].split(".")[0];
|
||||
if (fileName != styleSheetName) continue;
|
||||
var rules = styleSheet.rules || styleSheet.cssRules;
|
||||
for (rI in rules) {
|
||||
var rule = rules[rI];
|
||||
if (!rule.selectorText) continue;
|
||||
if (!rule.selectorText.includes("_anim")) continue;
|
||||
var animStr = rule.selectorText.split(".").pop().split("_anim").shift();
|
||||
anims.push(animStr);
|
||||
}
|
||||
}
|
||||
return anims;
|
||||
}
|
||||
var animations = getAnimations("animations");
|
||||
function htmlCollectionToArray(HTMLCollectionObj) {
|
||||
return Array.prototype.slice.call(HTMLCollectionObj);
|
||||
}
|
||||
var animatedElements = [];
|
||||
function getAnimatedElements() {
|
||||
var animatedElementsList = [];
|
||||
animations.forEach(function (anim) {
|
||||
var els = document.getElementsByClassName(anim);
|
||||
animatedElementsList = animatedElementsList.concat(htmlCollectionToArray(els));
|
||||
});
|
||||
return animatedElementsList;
|
||||
}
|
||||
|
||||
function refreshAnimatedElements() {
|
||||
animatedElements = [];
|
||||
animatedElements = getAnimatedElements();
|
||||
for (i in animatedElements) {
|
||||
animatedElements[i].parentElement.addEventListener("scroll", function (event) {
|
||||
if (!viewChanged) {
|
||||
viewChanged = true;
|
||||
(!window.requestAnimationFrame) ? setTimeout(updateElements, 250) : window.requestAnimationFrame(updateElements);
|
||||
}
|
||||
}, { passive: true });
|
||||
}
|
||||
|
||||
}
|
||||
function hideElement(el) {
|
||||
el.classList.add("is-hidden");
|
||||
for (i in animations) {
|
||||
var anim = animations[i];
|
||||
if (el.classList.contains(anim)) {
|
||||
el.classList.remove(anim + "_anim");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
function showElement(el) {
|
||||
for (i in animations) {
|
||||
var anim = animations[i];
|
||||
if (el.classList.contains(anim)) {
|
||||
el.classList.add(anim + "_anim");
|
||||
el.classList.remove("is-hidden");
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
function hideElements() {
|
||||
var currentParent
|
||||
var parentBounds
|
||||
animatedElements.forEach(function (el) {
|
||||
var bounds = el.getBoundingClientRect();
|
||||
if (el.parentElement != currentParent) {
|
||||
currentParent = el.parentElement;
|
||||
parentBounds = el.parentElement.getBoundingClientRect();
|
||||
}
|
||||
if (bounds.top > parentBounds.bottom || bounds.bottom < parentBounds.top) {
|
||||
hideElement(el);
|
||||
}
|
||||
});
|
||||
}
|
||||
hideElements();
|
||||
var viewChanged = false;
|
||||
window.addEventListener("resize", function (event) {
|
||||
if (!viewChanged) {
|
||||
viewChanged = true;
|
||||
(!window.requestAnimationFrame) ? setTimeout(updateElements, 250) : window.requestAnimationFrame(updateElements);
|
||||
}
|
||||
}, { passive: true });
|
||||
|
||||
function updateElements() {
|
||||
var currentParent
|
||||
var parentBounds
|
||||
animatedElements.forEach(function (el) {
|
||||
try {
|
||||
var bounds = el.getBoundingClientRect();
|
||||
if (el.parentElement != currentParent) {
|
||||
currentParent = el.parentElement;
|
||||
parentBounds = el.parentElement.getBoundingClientRect();
|
||||
}
|
||||
if (el.classList.contains("is-hidden") && bounds.top <= parentBounds.bottom - offset && bounds.bottom >= parentBounds.top + offset) {
|
||||
showElement(el);
|
||||
} else if (bounds.top > parentBounds.bottom || bounds.bottom < parentBounds.top) {
|
||||
hideElement(el);
|
||||
}
|
||||
} catch (err) {
|
||||
|
||||
}
|
||||
});
|
||||
viewChanged = false;
|
||||
};
|
||||
|
||||
var r = 255, g = 0, b = 0;
|
||||
var r2 = 225, g2 = 30, b2 = 0;
|
||||
var r3 = 205, g3 = 50, b3 = 0;
|
||||
var r4 = 175, g4 = 80, b4 = 0;
|
||||
var rainbowAccentInterval
|
||||
function rainbowAccent(delay = 40) {
|
||||
clearInterval(rainbowAccentInterval);
|
||||
r = 255, g = 0, b = 0;
|
||||
r2 = 225, g2 = 30, b2 = 0;
|
||||
r3 = 205, g3 = 50, b3 = 0;
|
||||
r4 = 175, g4 = 80, b4 = 0;
|
||||
rainbowAccentInterval = setInterval(function () {
|
||||
if (r > 0 && b == 0) {
|
||||
r--;
|
||||
g++;
|
||||
}
|
||||
if (g > 0 && r == 0) {
|
||||
g--;
|
||||
b++;
|
||||
}
|
||||
if (b > 0 && g == 0) {
|
||||
r++;
|
||||
b--;
|
||||
}
|
||||
if (r2 > 0 && b2 == 0) {
|
||||
r2--;
|
||||
g2++;
|
||||
}
|
||||
if (g2 > 0 && r2 == 0) {
|
||||
g2--;
|
||||
b2++;
|
||||
}
|
||||
if (b2 > 0 && g2 == 0) {
|
||||
r2++;
|
||||
b2--;
|
||||
}
|
||||
if (r3 > 0 && b3 == 0) {
|
||||
r3--;
|
||||
g3++;
|
||||
}
|
||||
if (g3 > 0 && r3 == 0) {
|
||||
g3--;
|
||||
b3++;
|
||||
}
|
||||
if (b3 > 0 && g3 == 0) {
|
||||
r3++;
|
||||
b3--;
|
||||
}
|
||||
if (r4 > 0 && b4 == 0) {
|
||||
r4--;
|
||||
g4++;
|
||||
}
|
||||
if (g4 > 0 && r4 == 0) {
|
||||
g4--;
|
||||
b4++;
|
||||
}
|
||||
if (b4 > 0 && g4 == 0) {
|
||||
r4++;
|
||||
b4--;
|
||||
}
|
||||
$(".rainbowFontColor").css("color", "rgb(" + r + "," + g + "," + b + ")");
|
||||
$(".rainbowBackgroundColor").css("background", "linear-gradient(to right, rgba(" + r + "," + g + "," + b + ", 0.8) 0%, rgba(" + r2 + "," + g2 + "," + b2 + ", 0.8) 100%)");
|
||||
$(".rainbowBackgroundColor2").css("background", "linear-gradient(to right, rgba(" + r3 + "," + g3 + "," + b3 + ", 0.8) 0%, rgba(" + r4 + "," + g4 + "," + b4 + ", 0.8) 100%)");
|
||||
// $(".customScroll::-webkit-scrollbar-thumb").css("background", "rgba(" + r + "," + g + "," + b + ", 0.8)");
|
||||
$("input:checked + .slider").css("background", "linear-gradient(to right, rgba(" + r + "," + g + "," + b + ", 0.7) 0%, rgba(" + r2 + "," + g2 + "," + b2 + ", 0.7) 100%)");
|
||||
$(":not(input:checked) + .slider").css("background", "rgba(0,0,0, 0.7)");
|
||||
}, delay);
|
||||
}
|
||||
function setAccentColor(r, g, b, a) {
|
||||
clearInterval(rainbowAccentInterval);
|
||||
$(".rainbowFontColor").css("color", "rgb(" + r + "," + g + "," + b + ")");
|
||||
$(".rainbowBackgroundColor").css("background", "rgba(" + r + "," + g + "," + b + ", " + a + ")");
|
||||
$(".rainbowBackgroundColor2").css("background", "rgba(" + r + "," + g + "," + b + ", " + a + ")");
|
||||
// $(".customScroll::-webkit-scrollbar-thumb").css("background", "rgba(" + r + "," + g + "," + b + ", 0.8)");
|
||||
$("input:checked + .slider").css("background", "rgba(" + r + "," + g + "," + b + ", " + a + ")");
|
||||
$(":not(input:checked) + .slider").css("background", "rgba(0,0,0, 0.7)");
|
||||
}
|
7
SkyNX-Streamer/js/bootstrap-4.1.0.min.js
vendored
Normal file
7
SkyNX-Streamer/js/bootstrap-4.1.0.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
5
SkyNX-Streamer/js/fontawesome-all.min.js
vendored
Normal file
5
SkyNX-Streamer/js/fontawesome-all.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
2
SkyNX-Streamer/js/jquery-3.3.1.min.js
vendored
Normal file
2
SkyNX-Streamer/js/jquery-3.3.1.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
0
SkyNX-Streamer/js/main.js
Normal file
0
SkyNX-Streamer/js/main.js
Normal file
5
SkyNX-Streamer/js/popper-1.14.0.min.js
vendored
Normal file
5
SkyNX-Streamer/js/popper-1.14.0.min.js
vendored
Normal file
File diff suppressed because one or more lines are too long
71
SkyNX-Streamer/js/settings.js
Normal file
71
SkyNX-Streamer/js/settings.js
Normal file
|
@ -0,0 +1,71 @@
|
|||
|
||||
var debug = true;
|
||||
var clientSettings = {
|
||||
"debug": true,
|
||||
"accentColor": {
|
||||
"r": 50,
|
||||
"g": 50,
|
||||
"b": 50,
|
||||
"a": 0.9
|
||||
},
|
||||
"rainbowEnabled": false,
|
||||
"devToolsOnStartup": false
|
||||
};
|
||||
var clientSettingsPath = "./settings.json";
|
||||
if (fs.existsSync(clientSettingsPath)) {
|
||||
loadClientSettings();
|
||||
} else {
|
||||
DB.save(clientSettingsPath, clientSettings)
|
||||
}
|
||||
var saveSettingsTO
|
||||
function saveClientSettingsTimeout() {
|
||||
clearTimeout(saveSettingsTO);
|
||||
saveSettingsTO = setTimeout(saveClientSettings, 500);
|
||||
}
|
||||
function saveClientSettings() {
|
||||
verifySettings();
|
||||
DB.save(clientSettingsPath, clientSettings);
|
||||
}
|
||||
function verifySettings() {
|
||||
|
||||
}
|
||||
function loadClientSettings() {
|
||||
clientSettings = DB.load(clientSettingsPath)
|
||||
$("#debugEnabled").prop("checked", clientSettings.debug);
|
||||
$("#rainbowEnabled").prop("checked", clientSettings.rainbowEnabled);
|
||||
$("#devToolsOnStartup").prop("checked", clientSettings.devToolsOnStartup);
|
||||
applyClientSettings();
|
||||
if (clientSettings.devToolsOnStartup) {
|
||||
openDevTools();
|
||||
}
|
||||
}
|
||||
|
||||
function applyClientSettings() {
|
||||
if (clientSettings.debug) {
|
||||
$("#dev-btn").fadeIn(400);
|
||||
$("#rld-btn").fadeIn(400);
|
||||
} else {
|
||||
$("#dev-btn").fadeOut(400);
|
||||
$("#rld-btn").fadeOut(400);
|
||||
}
|
||||
if (clientSettings.rainbowEnabled) {
|
||||
rainbowAccent();
|
||||
} else {
|
||||
setAccentColor(clientSettings.accentColor.r, clientSettings.accentColor.g, clientSettings.accentColor.b, clientSettings.accentColor.a);
|
||||
}
|
||||
}
|
||||
$("#rainbowEnabled").on('change', function () {
|
||||
clientSettings.rainbowEnabled = $("#rainbowEnabled").prop("checked");
|
||||
saveClientSettings();
|
||||
applyClientSettings();
|
||||
});
|
||||
$("#debugEnabled").on('change', function () {
|
||||
clientSettings.debug = $("#debugEnabled").prop("checked");
|
||||
saveClientSettings();
|
||||
applyClientSettings();
|
||||
});
|
||||
$("#devToolsOnStartup").on('change', function () {
|
||||
clientSettings.devToolsOnStartup = $("#devToolsOnStartup").prop("checked");
|
||||
saveClientSettings();
|
||||
applyClientSettings();
|
||||
});
|
62
SkyNX-Streamer/js/window.js
Normal file
62
SkyNX-Streamer/js/window.js
Normal file
|
@ -0,0 +1,62 @@
|
|||
//Authour: Dustin Harris
|
||||
//GitHub: https://github.com/DevL0rd
|
||||
const remote = require('electron').remote;
|
||||
const dialog = remote.dialog;
|
||||
const fs = require('fs')
|
||||
var DB = require('./Devlord_modules/DB.js');
|
||||
|
||||
document.getElementById("min-btn").addEventListener("click", function (e) {
|
||||
var window = remote.getCurrentWindow();
|
||||
window.minimize();
|
||||
});
|
||||
var isMaximized = false;
|
||||
document.getElementById("max-btn").addEventListener("click", function (e) {
|
||||
var window = remote.getCurrentWindow();
|
||||
// !window.isMaximized()
|
||||
if (!isMaximized) {
|
||||
isMaximized = true;
|
||||
window.maximize();
|
||||
} else {
|
||||
isMaximized = false;
|
||||
window.unmaximize();
|
||||
}
|
||||
});
|
||||
|
||||
document.getElementById("close-btn").addEventListener("click", function (e) {
|
||||
var window = remote.getCurrentWindow();
|
||||
window.close();
|
||||
});
|
||||
|
||||
document.getElementById("dev-btn").addEventListener("click", function (e) {
|
||||
openDevTools();
|
||||
});
|
||||
function openDevTools() {
|
||||
var window = remote.getCurrentWindow();
|
||||
window.webContents.openDevTools();
|
||||
}
|
||||
document.getElementById("rld-btn").addEventListener("click", function (e) {
|
||||
location.reload();
|
||||
});
|
||||
|
||||
window.addEventListener('load', function () {
|
||||
$("#loadingCover").fadeOut(1000);
|
||||
})
|
||||
|
||||
//PROJECT CODE STARTS HERE
|
||||
|
||||
var ipcRenderer = require('electron').ipcRenderer;
|
||||
ipcRenderer.on('exampleMessage', function (event, data) {
|
||||
|
||||
});
|
||||
|
||||
|
||||
$("#main-btn").click(function () {
|
||||
$(".contentArea").hide();
|
||||
$("#plugins").fadeIn(400);
|
||||
$('#main-btn').tooltip('hide');
|
||||
});
|
||||
$("#settings-btn").click(function () {
|
||||
$(".contentArea").hide();
|
||||
$("#settings").fadeIn(400);
|
||||
$('#settings-btn').tooltip('hide');
|
||||
});
|
92
SkyNX-Streamer/main.js
Normal file
92
SkyNX-Streamer/main.js
Normal file
|
@ -0,0 +1,92 @@
|
|||
|
||||
|
||||
const DB = require('./Devlord_modules/DB.js');
|
||||
const windowStateKeeper = require('electron-window-state');
|
||||
const fs = require('fs');
|
||||
|
||||
// Modules to control application life and create native browser window
|
||||
const { app, BrowserWindow, ipcMain } = require('electron')
|
||||
// Keep a global reference of the window object, if you don't, the window will
|
||||
// be closed automatically when the JavaScript object is garbage collected.
|
||||
let mainWindow
|
||||
var args = process.argv.slice(5);
|
||||
var usingUI = true;
|
||||
var mainServerIp = false;
|
||||
if (args.length > 1) {
|
||||
var workerParams = {};
|
||||
if (args.includes("worker")) {
|
||||
mainServerIp = args[args.indexOf("worker") + 1];
|
||||
if (mainServerIp) {
|
||||
workerParams = { mainServerIp: mainServerIp, password: args[args.indexOf("worker") + 2], isWorker: true };
|
||||
}
|
||||
}
|
||||
if (args.includes("noui") || args.includes("worker")) {
|
||||
if (mws.init(args[0], workerParams)) {
|
||||
usingUI = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
function createWindow() {
|
||||
// Load the previous state with fallback to defaults
|
||||
let mainWindowState = windowStateKeeper({
|
||||
defaultWidth: 720,
|
||||
defaultHeight: 500
|
||||
});
|
||||
// Create the browser window.
|
||||
mainWindow = new BrowserWindow({
|
||||
x: mainWindowState.x,
|
||||
y: mainWindowState.y,
|
||||
width: mainWindowState.width,
|
||||
height: mainWindowState.height,
|
||||
minWidth: 720,
|
||||
minHeight: 500,
|
||||
webPreferences: {
|
||||
nodeIntegration: true
|
||||
},
|
||||
transparent: true,
|
||||
resizable: true,
|
||||
frame: false
|
||||
})
|
||||
mainWindowState.manage(mainWindow);
|
||||
mainWindow.setMenu(null);
|
||||
// and load the index.html of the app.
|
||||
mainWindow.loadFile('index.html');
|
||||
//fix transparency bug in windows 10
|
||||
mainWindow.reload();
|
||||
|
||||
// Emitted when the window is closed.
|
||||
mainWindow.on('closed', function () {
|
||||
// Dereference the window object, usually you would store windows
|
||||
// in an array if your app supports multi windows, this is the time
|
||||
// when you should delete the corresponding element.
|
||||
mainWindow = null
|
||||
});
|
||||
}
|
||||
|
||||
// This method will be called when Electron has finished
|
||||
// initialization and is ready to create browser windows.
|
||||
// Some APIs can only be used after this event occurs.
|
||||
app.on('ready', function () { if (usingUI) setTimeout(createWindow, 300); });
|
||||
|
||||
// Quit when all windows are closed.
|
||||
app.on('window-all-closed', function () {
|
||||
// On macOS it is common for applications and their menu bar
|
||||
// to stay active until the user quits explicitly with Cmd + Q
|
||||
if (process.platform !== 'darwin') app.quit()
|
||||
})
|
||||
|
||||
app.on('activate', function () {
|
||||
// On macOS it's common to re-create a window in the app when the
|
||||
// dock icon is clicked and there are no other windows open.
|
||||
if (mainWindow === null) createWindow()
|
||||
})
|
||||
|
||||
app.on('browser-window-created', function (e, window) {
|
||||
window.setMenu(null);
|
||||
});
|
||||
|
||||
var htmlLoggingSender
|
||||
|
||||
ipcMain.on('exampleMessage', (event, arg) => {
|
||||
|
||||
})
|
22
SkyNX-Streamer/package.json
Normal file
22
SkyNX-Streamer/package.json
Normal file
|
@ -0,0 +1,22 @@
|
|||
{
|
||||
"name": "Base-Electron-App",
|
||||
"version": "1.0.0",
|
||||
"description": "The bestest Electron window.",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
"start": "electron --enable-transparent-visuals --no-sandbox --disable-web-security ."
|
||||
},
|
||||
"repository": "https://github.com/delv0rd/modular-web-server",
|
||||
"keywords": [],
|
||||
"author": "Dustin Harris",
|
||||
"license": "",
|
||||
"dependencies": {
|
||||
"electron": "latest",
|
||||
"electron-window-state": "latest",
|
||||
"formidable": "latest",
|
||||
"readdirp": "latest",
|
||||
"bootstrap": "latest",
|
||||
"jquery": "latest",
|
||||
"popper.js": "latest"
|
||||
}
|
||||
}
|
11
SkyNX-Streamer/settings.json
Normal file
11
SkyNX-Streamer/settings.json
Normal file
|
@ -0,0 +1,11 @@
|
|||
{
|
||||
"debug": true,
|
||||
"accentColor": {
|
||||
"r": 50,
|
||||
"g": 50,
|
||||
"b": 50,
|
||||
"a": 0.9
|
||||
},
|
||||
"rainbowEnabled": false,
|
||||
"devToolsOnStartup": false
|
||||
}
|
Loading…
Add table
Reference in a new issue