diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 3fd1587..a3e99cc 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,6 +1,6 @@ # Contributing ### Objectives -Head over to the [projects page](https://github.com/Foltik/Shimapan/projects/). Here you'll find all the current +Head over to the [projects page](https://github.com/Foltik/shrimpa/projects/). Here you'll find all the current and upcoming objectives of the current project. If you have any ideas or suggestions, add it to the relevant column in the project page and create an issue to discuss. ### Finding Work diff --git a/app/public/panel/controllers/KeyCtrl.js b/app/public/panel/controllers/KeyCtrl.js index 387cadc..9b71cb0 100644 --- a/app/public/panel/controllers/KeyCtrl.js +++ b/app/public/panel/controllers/KeyCtrl.js @@ -91,20 +91,20 @@ angular.module('KeyCtrl', ['KeySvc', 'AuthSvc']).controller('KeyController', ['$ 'curl \\\n' + ' -F key=' + $scope.currKey.key + ' \\\n' + ' -F "file=@$1" \\\n' + - ' https://shimapan.rocks/api/upload \\\n' + + ' https://shrimpa.rocks/api/upload \\\n' + ' | grep -Po \'"\'"url"\'"\\s*:\\s*"\\K([^"]*)\'\n'; - downloadData('text/x-shellscript', 'shimapan.rocks.sh', data); + downloadData('text/x-shellscript', 'shrimpa.rocks.sh', data); }; $scope.downloadSharex = () => { const data = { - RequestURL: 'https://shimapan.rocks/api/upload', + RequestURL: 'https://shrimpa.rocks/api/upload', FileFormName: 'file', Arguments: { key: $scope.currKey.key }, URL: '$json:url$' }; - downloadData('text/json', 'shimapan.rocks.sxcu', JSON.stringify(data)); + downloadData('text/json', 'shrimpa.rocks.sxcu', JSON.stringify(data)); }; }]); \ No newline at end of file diff --git a/app/public/panel/shimapan-panel.js b/app/public/panel/shrimpa-panel.js similarity index 60% rename from app/public/panel/shimapan-panel.js rename to app/public/panel/shrimpa-panel.js index 5e13de4..664d4f5 100644 --- a/app/public/panel/shimapan-panel.js +++ b/app/public/panel/shrimpa-panel.js @@ -1,7 +1,7 @@ var angular = require('angular'); var uirouter = require('angular-ui-router'); var chart = require('angular-chart.js'); -var app = angular.module('shimapan-panel', ['ui.router', 'AuthSvc', 'KeySvc', 'InviteSvc', 'UserSvc', 'StatSvc', 'KeyCtrl', 'InviteCtrl', 'UserCtrl', 'NavCtrl', 'DashCtrl', 'PanelRoutes']); +var app = angular.module('shrimpa-panel', ['ui.router', 'AuthSvc', 'KeySvc', 'InviteSvc', 'UserSvc', 'StatSvc', 'KeyCtrl', 'InviteCtrl', 'UserCtrl', 'NavCtrl', 'DashCtrl', 'PanelRoutes']); app.run(['$rootScope', '$state', '$stateParams', function($rootScope, $state, $stateParams) { $rootScope.$state = $state; diff --git a/app/public/shimapan/components/UploadComp.js b/app/public/shimapan/components/UploadComp.js deleted file mode 100644 index 98a3c43..0000000 --- a/app/public/shimapan/components/UploadComp.js +++ /dev/null @@ -1,52 +0,0 @@ -var angular = require('angular'); - -angular.module('UploadComp', ['ngFileUpload', 'AuthSvc']).component('uploadComponent', { - templateUrl: '/views/shimapan/upload-form.html', - controller: ['$scope', 'Upload', '$timeout', function ($scope, Upload, $timeout) { - $scope.errToString = function (err) { - if (err === 'maxSize') - return "File too large."; - else - return err; - }; - - $scope.uploadFiles = function (files, errorFiles) { - $scope.files = $scope.files ? $scope.files.concat(files) : files; - $scope.errorFiles = $scope.errorFiles ? $scope.errorFiles.concat(errorFiles) : errorFiles; - - angular.forEach(files, function (file) { - file.upload = Upload.upload({ - url: '/api/upload', - method: 'POST', - file: file - }); - - file.upload.then( - function (response) { - $timeout(function () { - file.result = response.data; - }); - }, - function (response) { - if (response.status !== 200) { - if (response.status === 401) { - file.$error = "Unauthorized."; - } else if (response.status === 403) { - file.$error = "Forbidden."; - } else { - file.$error = "Unknown error " + response.status; - } - var index = $scope.files.indexOf(file); - $scope.errorFiles.push(file); - $scope.files.splice(index, 1); - } - }, - function (evt) { - file.progress = Math.floor(Math.min(100.0, 100 * evt.loaded / evt.total)); - } - ); - }); - }; - }], - controllerAs: 'vm' -}); diff --git a/app/public/shimapan/components/LoginComp.js b/app/public/shrimpa/components/LoginComp.js similarity index 99% rename from app/public/shimapan/components/LoginComp.js rename to app/public/shrimpa/components/LoginComp.js index 2d3e1df..a267358 100644 --- a/app/public/shimapan/components/LoginComp.js +++ b/app/public/shrimpa/components/LoginComp.js @@ -23,4 +23,4 @@ angular.module('LoginComp', ['AuthSvc']).component('loginComponent', { } }; }] -}); \ No newline at end of file +}); diff --git a/app/public/shimapan/components/RegisterComp.js b/app/public/shrimpa/components/RegisterComp.js similarity index 90% rename from app/public/shimapan/components/RegisterComp.js rename to app/public/shrimpa/components/RegisterComp.js index fa94913..512caad 100644 --- a/app/public/shimapan/components/RegisterComp.js +++ b/app/public/shrimpa/components/RegisterComp.js @@ -1,7 +1,7 @@ var angular = require('angular'); angular.module('RegisterComp', ['AuthSvc']).component('registerComponent', { - templateUrl: '/views/shimapan/register-form.html', + templateUrl: '/views/shrimpa/register-form.html', controller: ['$scope', '$timeout', 'AuthService', function($scope, $timeout, AuthService) { $scope.register = function() { AuthService.register($scope.username, $scope.password, $scope.invite).catch(function() { diff --git a/app/public/shrimpa/components/UploadComp.js b/app/public/shrimpa/components/UploadComp.js new file mode 100644 index 0000000..278226c --- /dev/null +++ b/app/public/shrimpa/components/UploadComp.js @@ -0,0 +1,55 @@ +var angular = require('angular'); + +angular.module('UploadComp', ['ngFileUpload', 'AuthSvc']).component('uploadComponent', { + templateUrl: '/views/shrimpa/upload-form.html', + controller: ['$scope', 'Upload', '$timeout', function ($scope, Upload, $timeout) { + $scope.errToString = function (err) { + if (err === 'maxSize') + return "File too large."; + else + return err; + }; + + $scope.uploadFiles = function (files, errorFiles) { + $scope.files = $scope.files ? $scope.files.concat(files) : files; + $scope.errorFiles = $scope.errorFiles ? $scope.errorFiles.concat(errorFiles) : errorFiles; + + files.reduce((promise, file) => { + return promise.then(() => new Promise((resolve, reject) => { + file.upload = Upload.upload({ + url: '/api/upload', + method: 'POST', + file: file + }); + + file.upload.then( + function (response) { + resolve(); + $timeout(function () { + file.result = response.data; + }); + }, + function (response) { + if (response.status !== 200) { + if (response.status === 401) { + file.$error = "Unauthorized."; + } else if (response.status === 403) { + file.$error = "Forbidden."; + } else { + file.$error = "Unknown error " + response.status; + } + var index = $scope.files.indexOf(file); + $scope.errorFiles.push(file); + $scope.files.splice(index, 1); + } + }, + function (evt) { + file.progress = Math.floor(Math.min(100.0, 100 * evt.loaded / evt.total)); + } + ); + })); + }, Promise.resolve()); + }; + }], + controllerAs: 'vm' +}); diff --git a/app/public/shimapan/shimapan.js b/app/public/shrimpa/shrimpa.js similarity index 51% rename from app/public/shimapan/shimapan.js rename to app/public/shrimpa/shrimpa.js index 22cdc04..8595eba 100644 --- a/app/public/shimapan/shimapan.js +++ b/app/public/shrimpa/shrimpa.js @@ -1,4 +1,4 @@ var angular = require('angular'); var ngFileUpload = require('ng-file-upload'); var ngclipboard = require('ngclipboard'); -var app = angular.module('shimapan', ['ngFileUpload', 'ngclipboard', 'UploadComp', 'RegisterComp', 'LoginComp']); +var app = angular.module('shrimpa', ['ngFileUpload', 'ngclipboard', 'UploadComp', 'RegisterComp', 'LoginComp']); diff --git a/config/default.json b/config/default.json index 0bba7f9..f15e479 100644 --- a/config/default.json +++ b/config/default.json @@ -1,12 +1,12 @@ { "Server": { "port": 4433, - "hostname": "https://shimapan.rocks", + "hostname": "https://shrimpa.rocks", "tls": true, "trustProxy": [] }, "Database": { - "host": "mongodb://localhost:27017/shimapan" + "host": "mongodb://localhost:27017/shrimpa" }, "Upload": { "path": "uploads", diff --git a/config/dev.json b/config/dev.json index 92f9358..e1ca268 100644 --- a/config/dev.json +++ b/config/dev.json @@ -6,7 +6,7 @@ "trustProxy": [] }, "Database": { - "host": "mongodb://localhost:27017/shimapan-dev" + "host": "mongodb://localhost:27017/shrimpa-dev" }, "Upload": { "path": "uploads-dev" diff --git a/config/test.json b/config/test.json index 4562988..d825c53 100644 --- a/config/test.json +++ b/config/test.json @@ -6,7 +6,7 @@ "trustProxy": [] }, "Database": { - "host": "mongodb://localhost:27017/shimapan-test" + "host": "mongodb://localhost:27017/shrimpa-test" }, "Upload": { "path": "uploads-test" diff --git a/package-lock.json b/package-lock.json index 3eaf31a..2818d1c 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,5 +1,5 @@ { - "name": "shimapan", + "name": "shrimpa", "version": "1.0.0", "lockfileVersion": 1, "requires": true, @@ -310,6 +310,7 @@ "resolved": "https://registry.npmjs.org/align-text/-/align-text-0.1.4.tgz", "integrity": "sha1-DNkKVhCT810KmSVsIrcGlDP60Rc=", "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -2574,7 +2575,7 @@ }, "duplexer": { "version": "0.1.1", - "resolved": "http://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", + "resolved": "https://registry.npmjs.org/duplexer/-/duplexer-0.1.1.tgz", "integrity": "sha1-rOb/gIwc5mtX0ev5eXessCM0z8E=", "dev": true }, @@ -3635,7 +3636,8 @@ }, "ansi-regex": { "version": "2.1.1", - "bundled": true + "bundled": true, + "optional": true }, "aproba": { "version": "1.2.0", @@ -3653,11 +3655,13 @@ }, "balanced-match": { "version": "1.0.0", - "bundled": true + "bundled": true, + "optional": true }, "brace-expansion": { "version": "1.1.11", "bundled": true, + "optional": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" @@ -3670,15 +3674,18 @@ }, "code-point-at": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "concat-map": { "version": "0.0.1", - "bundled": true + "bundled": true, + "optional": true }, "console-control-strings": { "version": "1.1.0", - "bundled": true + "bundled": true, + "optional": true }, "core-util-is": { "version": "1.0.2", @@ -3781,7 +3788,8 @@ }, "inherits": { "version": "2.0.3", - "bundled": true + "bundled": true, + "optional": true }, "ini": { "version": "1.3.5", @@ -3791,6 +3799,7 @@ "is-fullwidth-code-point": { "version": "1.0.0", "bundled": true, + "optional": true, "requires": { "number-is-nan": "^1.0.0" } @@ -3803,17 +3812,20 @@ "minimatch": { "version": "3.0.4", "bundled": true, + "optional": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", - "bundled": true + "bundled": true, + "optional": true }, "minipass": { "version": "2.2.4", "bundled": true, + "optional": true, "requires": { "safe-buffer": "^5.1.1", "yallist": "^3.0.0" @@ -3830,6 +3842,7 @@ "mkdirp": { "version": "0.5.1", "bundled": true, + "optional": true, "requires": { "minimist": "0.0.8" } @@ -3902,7 +3915,8 @@ }, "number-is-nan": { "version": "1.0.1", - "bundled": true + "bundled": true, + "optional": true }, "object-assign": { "version": "4.1.1", @@ -3912,6 +3926,7 @@ "once": { "version": "1.4.0", "bundled": true, + "optional": true, "requires": { "wrappy": "1" } @@ -3987,7 +4002,8 @@ }, "safe-buffer": { "version": "5.1.1", - "bundled": true + "bundled": true, + "optional": true }, "safer-buffer": { "version": "2.1.2", @@ -4017,6 +4033,7 @@ "string-width": { "version": "1.0.2", "bundled": true, + "optional": true, "requires": { "code-point-at": "^1.0.0", "is-fullwidth-code-point": "^1.0.0", @@ -4034,6 +4051,7 @@ "strip-ansi": { "version": "3.0.1", "bundled": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -4072,11 +4090,13 @@ }, "wrappy": { "version": "1.0.2", - "bundled": true + "bundled": true, + "optional": true }, "yallist": { "version": "3.0.2", - "bundled": true + "bundled": true, + "optional": true } } }, @@ -6020,7 +6040,8 @@ "version": "1.0.1", "resolved": "https://registry.npmjs.org/longest/-/longest-1.0.1.tgz", "integrity": "sha1-MKCy2jj3N3DoKUoNIuZiXtd9AJc=", - "dev": true + "dev": true, + "optional": true }, "loose-envify": { "version": "1.4.0", @@ -6105,7 +6126,7 @@ }, "map-stream": { "version": "0.1.0", - "resolved": "http://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", + "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=", "dev": true }, @@ -6903,6 +6924,11 @@ } } }, + "natives": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/natives/-/natives-1.1.6.tgz", + "integrity": "sha512-6+TDFewD4yxY14ptjKaS63GVdtKiES1pTPyxn9Jb0rBqPMZ7VcCiooEhPNsr+mqHtMGxa/5c/HhcC4uPEUw/nA==" + }, "negotiator": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", @@ -10935,6 +10961,7 @@ "version": "0.1.4", "bundled": true, "dev": true, + "optional": true, "requires": { "kind-of": "^3.0.2", "longest": "^1.0.1", @@ -11877,7 +11904,8 @@ "longest": { "version": "1.0.1", "bundled": true, - "dev": true + "dev": true, + "optional": true }, "lru-cache": { "version": "4.1.3", @@ -13445,7 +13473,7 @@ }, "pause-stream": { "version": "0.0.11", - "resolved": "http://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", + "resolved": "https://registry.npmjs.org/pause-stream/-/pause-stream-0.0.11.tgz", "integrity": "sha1-/lo0sMvOErWqaitAPuLnO2AvFEU=", "dev": true, "requires": { @@ -14434,7 +14462,7 @@ }, "split": { "version": "0.3.3", - "resolved": "http://registry.npmjs.org/split/-/split-0.3.3.tgz", + "resolved": "https://registry.npmjs.org/split/-/split-0.3.3.tgz", "integrity": "sha1-zQ7qXmOiEd//frDwkcQTPi0N0o8=", "dev": true, "requires": { @@ -14534,7 +14562,7 @@ }, "stream-combiner": { "version": "0.0.4", - "resolved": "http://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", + "resolved": "https://registry.npmjs.org/stream-combiner/-/stream-combiner-0.0.4.tgz", "integrity": "sha1-TV5DPBhSYd3mI8o/RMWGvPXErRQ=", "dev": true, "requires": { diff --git a/package.json b/package.json index 2b942e0..d8e7351 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,5 @@ { - "name": "shimapan", + "name": "shrimpa", "version": "1.0.0", "dependencies": { "angular": "^1.7.5", @@ -31,7 +31,8 @@ "passport-local-mongoose": "^5.0.1", "sanitizer": "^0.1.3", "type-is": "^1.6.16", - "vinyl-source-stream": "^2.0.0" + "vinyl-source-stream": "^2.0.0", + "natives": "^1.1.6" }, "description": "A simple file sharing website.", "main": "index.js", @@ -69,6 +70,6 @@ }, "repository": { "type": "git", - "url": "https://github.com/Foltik/shimapan" + "url": "https://github.com/Foltik/shrimpa" } } diff --git a/public/css/form.min.css b/public/css/form.min.css new file mode 100644 index 0000000..a8ee7eb --- /dev/null +++ b/public/css/form.min.css @@ -0,0 +1 @@ +body{background-color:#000;margin:0;color:#d3d3d3;font-family:Roboto,sans-serif}::-moz-focus-inner{border:0}.form{margin:50px auto;width:300px}.form h3{background-color:#000;border:2px solid #2a9fd6;border-radius:5px 5px 0 0;color:#eee;font-size:18px;padding:20px;margin:0;text-align:center;text-transform:uppercase}fieldset{border:2px solid #2a9fd6;border-top:none;margin:0;background:#000;border-radius:0 0 5px 5px;padding:20px;position:relative}fieldset:before{border-bottom:2px solid #2a9fd6;border-right:2px solid #2a9fd6;background-color:#000;content:"";width:8px;height:8px;left:50%;margin:-4px 0 0 -4px;position:absolute;top:0;transform:rotate(45deg) translateY(-2px)}.form input{display:block;font-size:14px;background:#000;color:#d3d3d3;border:1px solid #999;width:226px;padding:12px 12px;margin:auto auto 5px}button{background:#000;border:2px solid #2a9fd6;border-radius:4px;color:#d3d3d3;cursor:pointer;display:block;padding:10px 30px;margin:20px auto auto;transition:background .25s,border-color .25s}button:hover{background:#2a9fd6;color:#fff;text-decoration:none;outline:0}button.shake{background:#f66;border-color:#f66;color:#fff;animation:shake .82s cubic-bezier(.36,.07,.19,.97) both;transform:translate3d(0,0,0);backface-visibility:hidden;perspective:1000px}@keyframes shake{10%,90%{transform:translate3d(-1px,0,0)}20%,80%{transform:translate3d(2px,0,0)}30%,50%,70%{transform:translate3d(-4px,0,0)}40%,60%{transform:translate3d(4px,0,0)}} \ No newline at end of file diff --git a/public/css/home.min.css b/public/css/home.min.css new file mode 100644 index 0000000..6d3536a --- /dev/null +++ b/public/css/home.min.css @@ -0,0 +1 @@ +body{background-color:#060606;color:#d3d3d3;font-family:Roboto,sans-serif;font-size:14px;height:100%;line-height:20px;margin:0;padding-top:20px;padding-bottom:40px}#container{max-width:700px;text-align:center;display:flex;flex-direction:column;margin:auto}a{color:#0078b4;text-decoration:none;transition:color .25s}a:active,a:focus,a:hover{color:#005580}h1{font-size:72px;font-weight:700}.upload{margin:60px 0}.btn{font-family:Roboto,sans-serif;background:#000;border:2px solid #2a9fd6;border-radius:4px;color:#d3d3d3;cursor:pointer;display:inline-block;font-size:24px;padding:28px 48px;transition:background-color .25s,width .5s,height .5s}.btn:hover{background-color:#2a9fd6;color:#fff;text-decoration:none;outline:0}:focus{outline:0}::-moz-focus-inner{border:0}#upload-filelist{list-style-type:none;margin:20px 50px;padding:0;text-align:left}#upload-filelist>li{margin-top:5px;overflow:hidden;display:flex}.list-name{margin-top:6px;overflow:hidden;max-width:70%;text-overflow:ellipsis;white-space:nowrap}.list-url{font-family:'Roboto Mono',monospace;margin-left:auto}.list-progress{margin:10px 30px 10px 30px;flex-grow:2}.list-url a{vertical-align:super;color:#5c5c5c}.list-url a:hover{color:#d3d3d3}.list-url-clipboard-btn{border:2px solid #222;height:32px;margin-left:5px;border-radius:3px;cursor:pointer;background-color:#5c5c5c;transition:background-color .25s}.list-url-clipboard-btn:focus,.list-url-clipboard-btn:hover{background-color:#ababab;outline:0}.list-err{font-family:'Roboto Mono',monospace;margin-left:auto;color:#f66;vertical-align:super}nav a,nav>ul{color:#32809f;list-style:none;margin:0;padding:0;text-align:center}nav>ul>li{display:inline-block;margin:0;padding:0;cursor:default}nav>ul>li:after{content:"|";margin:0 8px;opacity:.3}nav>ul>li:last-child:after{content:"";margin:0} \ No newline at end of file diff --git a/public/css/index.min.css b/public/css/index.min.css new file mode 100644 index 0000000..0ae5bc2 --- /dev/null +++ b/public/css/index.min.css @@ -0,0 +1 @@ +*{margin:0}body{background:#000}a{position:absolute;top:40px;left:48%;opacity:.1;height:30px;width:30px;z-index:100;cursor:default}a img{width:30px;height:30px}canvas{position:absolute;top:0;left:0}video{position:fixed;top:50%;left:50%;min-width:100%;min-height:100%;z-index:-100;transform:translateX(-50%) translateY(-50%);background-size:cover;transition:1s opacity}#buffer{display:none} \ No newline at end of file diff --git a/public/css/panel.min.css b/public/css/panel.min.css new file mode 100644 index 0000000..3cc07ef --- /dev/null +++ b/public/css/panel.min.css @@ -0,0 +1 @@ +@import url(https://maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css);@import url(https://fonts.googleapis.com/css?family=Roboto);@import url(https://fonts.googleapis.com/css?family=Roboto+Mono);.sidebar-title{grid-row-start:1;grid-row-end:1;place-self:center;cursor:pointer;display:flex;justify-content:center;align-items:center;width:200px;height:60px}.sidebar-title span{color:#2a9fd6;font-size:20px;text-transform:uppercase;letter-spacing:6px}.sidebar{grid-row-start:2;grid-row-end:2}.nav li{cursor:pointer;display:flex;align-items:center}.nav li a{flex:1;outline:0;padding:20px 0 20px;margin-left:20px;font-size:14px;color:#666;text-decoration:none}.nav li span{background:#0d0d0d;width:35px;height:35px;border-radius:50%;display:flex;align-items:center;justify-content:center;margin-left:20px}.nav-icon{font:14px fontawesome;color:#fff}.nav li a:hover{color:#fff}.nav li a.active{color:#fff}::-moz-focus-inner{border:0}.dash-row{display:flex;flex-wrap:nowrap;align-items:center}.dash-card{background:#020202;border-radius:4px;padding:30px;margin:5px;flex-grow:1;display:flex;align-items:center;justify-content:center;border:1px solid #2a9fd6}#dash-singlestats{flex-grow:1}.dash-card.dash-card-singlestat{justify-content:space-between}.dash-stat{align-self:flex-start;display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start}.dash-stat-title{font-size:18px}.dash-stat-value{font-size:48px}.dash-stat-icon{color:#2a9fd6}.dash-card.dash-card-graph{width:100px}.keys{display:flex;flex-direction:row;flex-wrap:wrap}.key{background:#000;border:3px solid #2a9fd6;border-radius:5px;box-shadow:5px 5px 10px #000;margin:20px;width:300px;height:100px;cursor:pointer;display:flex;justify-content:flex-start;flex-direction:row;transition:box-shadow .2s;overflow:hidden}.key:hover{box-shadow:0 0 10px #eee}.key i{font-size:48px;margin:auto 0 auto 20px}.key span{font-size:16px;vertical-align:center;margin:auto;-moz-user-select:none;user-select:none}.key-name{color:#2a9fd6;font-family:'Roboto Mono',monospace}pre{overflow:auto;line-height:1.7em;font-family:'Roboto Mono',monospace;border:1px solid #666;border-radius:4px;display:block;padding:10px;font-size:14px;margin:10px 0;background:#222;color:#2a9fd6}#createKey{max-width:920px}.btn-del{text-transform:uppercase;border:2px solid #f66;color:#ccc}.btn-del:hover{background-color:#f66}#identifier{font-size:14px;background:#222;color:#d3d3d3;border:1px solid #666;border-radius:4px;padding:10px;margin:10px 0}th{text-transform:uppercase;font-weight:700;padding:10px}td{padding:10px}td input{vertical-align:middle}td label{margin-bottom:2px;padding-left:3px}em{text-transform:uppercase;font-weight:700}*,:after,:before{margin:0;padding:0;box-sizing:border-box}body{font:12px Roboto,sans-serif;color:#eee;background:#020202}.container{display:grid;grid-template-columns:240px auto;grid-template-rows:60px auto;width:100vw;height:100vh}.view{grid-row-start:2;grid-column-start:2;background:#121212;padding:20px;border-left:1px solid #2a9fd6;border-top:1px solid #2a9fd6}.inner{display:flex;flex-direction:column}.modal,.modal-box{z-index:900}.modal-sandbox{position:fixed;width:100%;height:100%;top:0;left:0;background:0 0}.modal{display:none;position:fixed;width:100%;height:100%;left:0;top:0;background:#000;background:rgba(0,0,0,.8);overflow:auto}.modal-box{position:relative;width:80%;max-width:700px;margin:60px auto;animation-name:modalbox;animation-duration:.3s;animation-timing-function:ease}.modal-header{border:2px solid #2a9fd6;border-radius:8px 8px 0 0;display:flex;flex-direction:row;justify-content:space-between;padding:20px 40px;background:#000;color:#fff;overflow:hidden}.modal-body{border:2px solid #2a9fd6;border-top:none;background:#000;padding:30px}.modal-footer{display:flex;justify-content:flex-end;border:2px solid #2a9fd6;border-radius:0 0 8px 8px;border-top:none;background:#000;padding:20px}.close-modal{text-align:right;font-size:24px;cursor:pointer}@keyframes modalbox{0%{top:-250px;opacity:0}100%{top:0;opacity:1}}button{margin-left:20px;color:#d3d3d3;background:#000;border:2px solid #2a9fd6;border-radius:5px;padding:10px;cursor:pointer;transition:background-color .25s}button:hover{color:#fff;background-color:#2a9fd6;text-decoration:none;outline:0}::-moz-focus-inner{outline:0} \ No newline at end of file diff --git a/public/views/home.html b/public/views/home.html index 7dc1b01..a49f037 100644 --- a/public/views/home.html +++ b/public/views/home.html @@ -1,21 +1,23 @@
- -{{currKey.key}}
This key can be used with any 3rd party program or service to upload to and manage your account - with Shimapan.
+ with Shrimpa.Download the bash script to upload files from the command line.