├── .gitattributes ├── .github └── FUNDING.yml ├── .htaccess ├── LICENSE ├── README.md ├── SECURITY.md ├── api ├── domains.php ├── index.php ├── randomnumber.php ├── randomstring.php └── stats.php ├── assets ├── css │ ├── admin.css │ ├── cdn.css │ ├── dash.css │ ├── gallery.css │ ├── login.css │ ├── register.css │ └── styles.css ├── images │ ├── icon.png │ ├── icons │ │ ├── Filetype - C#.png │ │ ├── Filetype - CSS.png │ │ ├── Filetype - EXE.png │ │ ├── Filetype - HTML.png │ │ ├── Filetype - JS.png │ │ ├── Filetype - MP3.png │ │ ├── Filetype - PYTHON.png │ │ ├── Filetype - RAR.png │ │ ├── Filetype - U.png │ │ ├── Filetype - WAV.png │ │ └── Filetype - ZIP.png │ └── prw.png ├── index.php └── js │ ├── intro.js │ └── loader.js ├── dashboard ├── .htaccess ├── admin │ ├── .htaccess │ └── index.php ├── images.php ├── index.php └── logout.php ├── index.php ├── installer ├── .htaccess ├── done.php ├── index.php ├── step2.php ├── step3.php └── step4.php ├── login ├── .htaccess └── index.php ├── register ├── .htaccess └── index.php ├── src ├── config.php ├── database.php ├── database.sql └── functions.php ├── upload.php └── uploads └── index.php /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto 3 | -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | # These are supported funding model platforms 2 | 3 | 4 | github: clynt707 5 | patreon: clynt707 6 | 7 | custom: ['https://paypal.me/clynt707'] 8 | -------------------------------------------------------------------------------- /.htaccess: -------------------------------------------------------------------------------- 1 | RewriteEngine On 2 | 3 | RewriteCond %{REQUEST_FILENAME} !-f 4 | RewriteCond %{REQUEST_URI} !(\.[a-zA-Z0-9]{1,5}|/|#(.*))$ 5 | RewriteRule ^(.*)$ $1/ [L] 6 | RewriteCond %{REQUEST_FILENAME} !-d 7 | RewriteCond %{REQUEST_FILENAME}\.php -f 8 | RewriteRule ^([^\.]+)/$ $1.php 9 | RewriteCond %{THE_REQUEST} \s/([^.]+)\.html [NC] 10 | RewriteRule ^ /%1 [NE,L,R] 11 | RewriteCond %{REQUEST_FILENAME}.html -f 12 | RewriteRule ^(.*)/?$ /$1.html [L] 13 | RewriteCond %{REQUEST_FILENAME} !-f 14 | #RewriteRule ^(f)/?$ index.php?f=$1 15 | RewriteRule ^([^/]+)/?$ index.php?f=$1 16 | RewriteRule ^invite/([A-Za-z0-9-]+)/?$ index.php?invite=$1 [NC] 17 | RewriteRule ^invite/([A-Za-z0-9-]+)/?$ register/index.php?invite=$1 [NC] 18 | RewriteRule ^profile/([A-Za-z0-9-]+)/?$ dashboard/user?profile=$1 [NC] 19 | RewriteRule ^paste/([A-Za-z0-9-]+)/?$ dashboard/paste?paste-id=$1 [NC] 20 | RewriteCond %{HTTPS} !=on 21 | RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] 22 | 23 | 24 | RewriteCond %{REQUEST_URI} "^/api/upload" 25 | RewriteRule (.*) upload.php [L] 26 | 27 | RewriteCond %{REQUEST_URI} "^/api/domains/list" 28 | RewriteRule (.*) api/domains.php [L] 29 | 30 | RewriteCond %{REQUEST_URI} "^/api/stats" 31 | RewriteRule (.*) api/stats.php [L] -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | BSD Clear 6-Clause License 2 | 3 | Copyright (c) 2022, Clynt 4 | All rights reserved. 5 | 6 | Redistribution and use in source and binary forms, with or without 7 | modification, are permitted provided that the following conditions are met: 8 | 9 | 1. Redistributions of source code must retain the above copyright notice, this 10 | list of conditions and the following disclaimer. 11 | 12 | 2. Redistributions in binary form must reproduce the above copyright notice, 13 | this list of conditions and the following disclaimer in the documentation 14 | and/or other materials provided with the distribution. 15 | 16 | 3. All advertising materials mentioning features or use of this software must 17 | display the following acknowledgement: 18 | This product includes software developed by clynt.me 19 | 20 | 4. Neither the name of the copyright holder nor the names of its 21 | contributors may be used to endorse or promote products derived from 22 | this software without specific prior written permission. 23 | 24 | 5. Redistributions of source code or in binary form cannot be sold for a 25 | profit. All Redistributions must remain free of charge. Redistributions 26 | must be licensed by the original authors differently to be sold. 27 | 28 | 6. Redistributions of source code or in binary form must retain the same 29 | license(s) as not to break the 5th clause. 30 | 31 | 7. Redistributions of source code or in binary form is only permitted if the following text can be seen: This product includes software developed by clynt.me 32 | 33 | NO EXPRESS OR IMPLIED LICENSES TO ANY PARTY'S PATENT RIGHTS ARE GRANTED BY 34 | THIS LICENSE. THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND 35 | CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT 36 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A 37 | PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR 38 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, 39 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, 40 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 41 | BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER 42 | IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) 43 | ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE 44 | POSSIBILITY OF SUCH DAMAGE. 45 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | # Image Host 3 | 4 | A Image host like upload.systems and the other gay uploader. Have fun skidding guys :) 5 | 6 | 7 | ## FAQ 8 | 9 | #### Can i skid this? 10 | 11 | Yes AsylantenCeo#1337, you can skid this :) 12 | 13 | #### How simple is it to setup? 14 | 15 | Very easy just edit the config and add database or just read the setup section. 16 | 17 | #### How do i add other domains? 18 | Well if you cant do this by yourself then think about if you really want to be a clown... 19 | 20 | 21 | ## Installation 22 | 23 | ### Important! 24 | Do not remove the .htaccess file! 25 | 26 | Setup the image hoster easy 27 | 28 | ```bash 29 | 1. Download repo 30 | 2. Upload to your webhost 31 | 3. Create database 32 | 4. Go to domain.com/installer/ 33 | 5. Complete all steps 34 | 6. Go to domain.com/ 35 | 7. Enjoy 36 | ``` 37 | 38 | ## Features 39 | 40 | Some features (not all) 41 | 42 | - Light/dark mode toggle 43 | - Invisible URL 44 | - Emoji URL 45 | - Exploding images 46 | - Pastes 47 | - Multi users support 48 | - Invite only 49 | 50 | For more festures check projects 51 | 52 | ## Hate 53 | Dont hate it, ik its trash and yeah i know its working directly with sql :P 54 | 55 | 56 | ## Screenshots 57 | 58 | ![screen](./assets/images/prw.png) 59 | 60 | 61 | ## API Reference 62 | 63 | #### Get all items 64 | 65 | ```http 66 | POST /api/upload 67 | ``` 68 | 69 | | Parameter | Type | Description | 70 | | :-------- | :------- | :------------------------- | 71 | | `sharex` | `true` | **Required**. | 72 | | `key` | `string` | **Required**. Your API key | 73 | 74 | #### Get item 75 | 76 | ```http 77 | GET /api/randomstring 78 | ``` 79 | 80 | | Parameter | Type | Description | 81 | | :-------- | :------- | :-------------------------------- | 82 | | `length` | `int` | **Required**. Length of the int | 83 | 84 | ```http 85 | GET /api/randomnumber 86 | ``` 87 | 88 | | Parameter | Type | Description | 89 | | :-------- | :------- | :-------------------------------- | 90 | | `length` | `int` | **Required**. Length of the string | 91 | 92 | ```http 93 | GET /api/domains/list 94 | ``` 95 | 96 | | Description | 97 | | :-------------------------------- | 98 | | List every domain available to use | 99 | 100 | ```http 101 | GET /api/stats 102 | ``` 103 | 104 | | Description | 105 | | :-------------------------------- | 106 | | Display stats | 107 | 108 | 109 | 110 | ## Support 111 | 112 | For support, join our [discord](https://discord.gg/nRBkz2NWSU). 113 | 114 | 115 | ## Contributing 116 | 117 | Contributions are always welcome! 118 | 119 | See `contributing.md` for ways to get started. 120 | 121 | Please adhere to this project's `code of conduct`. 122 | 123 | 124 | ## Authors 125 | 126 | - [@Clynt](https://github.com/clynt707) 127 | 128 | 129 | 130 | 131 | -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- 1 | # Security Policy 2 | 3 | ## Supported php Versions 4 | 5 | | Version | Supported | 6 | | ------- | ------------------ | 7 | | 7.0.x | :x: | 8 | | 8.0.x | :white_check_mark: | 9 | 10 | ## Reporting a Vulnerability 11 | 12 | Contact me on Discord Clynt#6169 13 | It usually takes 1 day after the report for an answer 14 | -------------------------------------------------------------------------------- /api/domains.php: -------------------------------------------------------------------------------- 1 | query($sql); 7 | $domains = array(); 8 | if ($result->num_rows > 0) { 9 | while($row = $result->fetch_assoc()) { 10 | $domains[] = $row; 11 | } 12 | } 13 | 14 | $print = array( 15 | "domains" => $domains 16 | ); 17 | 18 | echo json_encode($print); -------------------------------------------------------------------------------- /api/index.php: -------------------------------------------------------------------------------- 1 | $lengthInt, "value" => generateRandomInt($length)); 22 | die(json_encode($arr)); 23 | } 24 | } 25 | ?> -------------------------------------------------------------------------------- /api/randomstring.php: -------------------------------------------------------------------------------- 1 | $lengthInt, "value" => generateRandomString($length)); 22 | die(json_encode($arr)); 23 | } 24 | } 25 | ?> -------------------------------------------------------------------------------- /api/stats.php: -------------------------------------------------------------------------------- 1 | query($sql); 7 | $user_count = $result->num_rows; 8 | 9 | $sql = "SELECT `banned` FROM `users` WHERE `banned`='true'"; 10 | $result = $db->query($sql); 11 | $banned_count = $result->num_rows; 12 | 13 | $sql = "SELECT id FROM uploads"; 14 | $result = $db->query($sql); 15 | $upload_count = $result->num_rows; 16 | 17 | $print = array( 18 | "user_count" => $user_count, 19 | "banned_count" => $banned_count, 20 | "upload_count" => $upload_count 21 | ); 22 | 23 | echo json_encode($print); 24 | -------------------------------------------------------------------------------- /assets/css/admin.css: -------------------------------------------------------------------------------- 1 | .hljs { 2 | display: block; 3 | overflow-x: auto; 4 | padding: .5em; 5 | background: #131313; 6 | border-radius: 15px; 7 | color: white; 8 | text-align: left; 9 | font-size: calc(1vw + 0.7vh); 10 | } 11 | 12 | /* Style buttons */ 13 | .btn32143 { 14 | background-color: #131313; 15 | color: white; 16 | padding: 12px 50px; 17 | cursor: pointer; 18 | font-size: 20px; 19 | border-radius: 15px; 20 | } 21 | 22 | .g-recaptcha { 23 | padding: 12px 30%; 24 | } 25 | 26 | /* Darker background on mouse-over */ 27 | .btn32143:hover { 28 | background-color: grey; 29 | } 30 | 31 | .card { 32 | position: relative; 33 | display: -ms-flexbox; 34 | display: flex; 35 | -ms-flex-direction: column; 36 | flex-direction: column; 37 | word-wrap: break-word; 38 | background-color: #131313; 39 | background-clip: border-box; 40 | border: 1px solid rgba(0, 0, 0, .125); 41 | border-radius: 15px; 42 | } 43 | 44 | 45 | .card img { 46 | border-radius: 50%; 47 | width: 60%; 48 | height: auto; 49 | display: block; 50 | margin-left: auto; 51 | margin-right: auto; 52 | margin-top: 10%; 53 | } 54 | 55 | .card { 56 | position: relative; 57 | display: -ms-flexbox; 58 | display: flex; 59 | -ms-flex-direction: column; 60 | flex-direction: column; 61 | min-width: 0px; 62 | width: auto; 63 | height: auto; 64 | word-wrap: break-word; 65 | background-color: #131313; 66 | background-clip: border-box; 67 | border: 2px solid rgba(0, 0, 0, .125); 68 | border-radius: 15px; 69 | padding: 15px; 70 | margin: 10px 10px 10px 10px; 71 | box-shadow: 0 1px 10px rgb(0 0 0 / 30%), 0 15px 12px rgb(0 0 0 / 22%); 72 | } 73 | 74 | .wrap-login100 { 75 | width: auto; 76 | background: #1b1b1b; 77 | border-radius: 20px; 78 | overflow: hidden; 79 | padding: 33px 33px 33px 33px; 80 | box-shadow: 0 5px 10px 0px rgb(0 0 0 / 10%); 81 | -moz-box-shadow: 0 5px 10px 0px rgba(0, 0, 0, 0.1); 82 | -webkit-box-shadow: 0 5px 10px 0px rgb(0 0 0 / 10%); 83 | -o-box-shadow: 0 5px 10px 0px rgba(0, 0, 0, 0.1); 84 | -ms-box-shadow: 0 5px 10px 0px rgba(0, 0, 0, 0.1); 85 | } 86 | 87 | .swal2-popup { 88 | display: none; 89 | position: relative; 90 | box-sizing: border-box; 91 | flex-direction: column; 92 | justify-content: center; 93 | width: 45em; 94 | max-width: 100%; 95 | padding: 1.25em; 96 | border: none; 97 | border-radius: 15px; 98 | background: #232323; 99 | font-size: 1rem; 100 | box-shadow: 0 1px 10px rgb(0 0 0 / 30%), 0 15px 12px rgb(0 0 0 / 22%); 101 | } 102 | 103 | .swal2-styled.swal2-confirm { 104 | border: 0; 105 | border-radius: 10px; 106 | background: initial; 107 | background-color: #191919; 108 | color: #fff; 109 | font-size: 1.0625em; 110 | box-shadow: 0 1px 10px rgb(0 0 0 / 30%), 0 15px 12px rgb(0 0 0 / 22%); 111 | } 112 | 113 | .swal2-popup.swal2-toast { 114 | flex-direction: row; 115 | align-items: center; 116 | width: auto; 117 | padding: 0.625em; 118 | overflow-y: hidden; 119 | background: #19191a; 120 | box-shadow: 0 0 0.625em black; 121 | } 122 | 123 | .card img { 124 | border-radius: 50%; 125 | width: 40%; 126 | height: auto; 127 | display: block; 128 | margin-left: auto; 129 | margin-right: auto; 130 | margin-top: 10%; 131 | } 132 | 133 | .card img:hover { 134 | border-radius: 50%; 135 | width: 40%; 136 | height: auto; 137 | display: block; 138 | margin-left: auto; 139 | margin-right: auto; 140 | margin-top: 10%; 141 | transition: 0.3s; 142 | } 143 | 144 | .card img { 145 | border-radius: 25%; 146 | width: 40%; 147 | height: auto; 148 | display: block; 149 | margin-left: auto; 150 | margin-right: auto; 151 | margin-top: 10%; 152 | transition: 0.3s; 153 | } 154 | 155 | .row-card { 156 | display: inline-block; 157 | vertical-align: middle; 158 | } 159 | 160 | .wrap-login100 { 161 | width: 700px; 162 | background: #1b1b1b; 163 | border-radius: 20px; 164 | overflow: hidden; 165 | padding: 5px; 166 | box-shadow: 0 5px 10px 0px rgb(0 0 0 / 10%); 167 | -moz-box-shadow: 0 5px 10px 0px rgba(0, 0, 0, 0.1); 168 | -webkit-box-shadow: 0 5px 10px 0px rgb(0 0 0 / 10%); 169 | -o-box-shadow: 0 5px 10px 0px rgba(0, 0, 0, 0.1); 170 | -ms-box-shadow: 0 5px 10px 0px rgba(0, 0, 0, 0.1); 171 | } 172 | 173 | .p-b-26 { 174 | padding-bottom: 0px; 175 | } 176 | 177 | .flex { 178 | display: -webkit-box; 179 | display: -moz-box; 180 | display: -ms-flexbox; 181 | display: -webkit-flex; 182 | display: flex; 183 | } 184 | 185 | .flex-child-small { 186 | -webkit-box-flex: 1 1 auto; 187 | -moz-box-flex: 1 1 auto; 188 | -webkit-flex: 1 1 auto; 189 | -ms-flex: 1 1 auto; 190 | flex: 1 1 auto; 191 | margin: 10px; 192 | font-size: 20px; 193 | border-radius: 15px; 194 | width: 100px; 195 | height: auto; 196 | font-size: 14px; 197 | line-height: 1.7; 198 | color: #666666; 199 | text-align: center; 200 | } 201 | 202 | hr.rounded { 203 | border-top: 2px solid #1b1b1b; 204 | border-radius: 5px; 205 | } 206 | -------------------------------------------------------------------------------- /assets/css/cdn.css: -------------------------------------------------------------------------------- 1 | @import url('https://fonts.googleapis.com/css2?family=Lato&display=swap'); 2 | 3 | 4 | html { 5 | overflow: hidden; 6 | } 7 | 8 | body { 9 | background: linear-gradient(to bottom left, #1525d6, #1556d6) fixed; 10 | font-family: 'Lato', sans-serif; 11 | } 12 | 13 | #watermark { 14 | position: absolute; 15 | top: 5px; 16 | left: 10px; 17 | width: auto; 18 | height: auto; 19 | font-size: 2em; 20 | vertical-align: middle; 21 | 22 | a { 23 | color: white; 24 | text-decoration: none; 25 | } 26 | } 27 | 28 | .logo { 29 | vertical-align: middle; 30 | width: 2.5em; 31 | height: 2.5em; 32 | } 33 | 34 | .main { 35 | position: absolute; 36 | top: 50%; 37 | left: 50%; 38 | transform: translate(-50%, -50%); 39 | text-align: center; 40 | } 41 | 42 | .image { 43 | max-width: 100vh; 44 | max-height: 80vh; 45 | padding-bottom: 10px; 46 | } 47 | 48 | .uploadedby { 49 | color: white; 50 | font-size: 20px; 51 | } 52 | } 53 | 54 | @media screen and (max-width: 570px) { 55 | .main { 56 | .uploadedby { 57 | font-size: 15px; 58 | } 59 | } 60 | } 61 | 62 | @media screen and (max-width: 400px) { 63 | .main { 64 | .uploadedby { 65 | font-size: 10px; 66 | } 67 | } 68 | } -------------------------------------------------------------------------------- /assets/css/dash.css: -------------------------------------------------------------------------------- 1 | body { 2 | background: linear-gradient(to bottom left, #1525d6, #1556d6) fixed; 3 | } 4 | 5 | .bg-blur { 6 | background: transparent !important; 7 | backdrop-filter: brightness(45%) blur(50px) !important; 8 | } 9 | 10 | .blurredtext { 11 | color: transparent; 12 | text-shadow: 0 0 20px rgba(255,255,255); 13 | transition: 0.3s; 14 | } 15 | 16 | .blurredtext:hover { 17 | color: white; 18 | text-shadow: none; 19 | transition: 0.4s; 20 | } -------------------------------------------------------------------------------- /assets/css/gallery.css: -------------------------------------------------------------------------------- 1 | .p-b-26 { 2 | padding-bottom: 0px; 3 | } 4 | 5 | .flex { 6 | display: -webkit-box; 7 | display: -moz-box; 8 | display: -ms-flexbox; 9 | display: -webkit-flex; 10 | display: flex; 11 | } 12 | 13 | .special-card { 14 | position: relative; 15 | display: -ms-flexbox; 16 | display: flex; 17 | -ms-flex-direction: column; 18 | flex-direction: column; 19 | min-width: 0px; 20 | width: 300px; 21 | height: auto; 22 | word-wrap: break-word; 23 | background-color: #131313; 24 | background-clip: border-box; 25 | border: 2px solid rgba(0, 0, 0, .125); 26 | border-radius: 15px; 27 | padding: 15px; 28 | margin: 10px 10px 10px 10px; 29 | box-shadow: 0 1px 10px rgb(0 0 0 / 30%), 0 15px 12px rgb(0 0 0 / 22%); 30 | } 31 | 32 | .row-new { 33 | display: -ms-flexbox; 34 | display: flex; 35 | justify-content: center; 36 | flex: 1 1 auto; 37 | -ms-flex-wrap: wrap; 38 | flex-wrap: wrap; 39 | 40 | .row: :after { 41 | ; 42 | content: ""; 43 | clear: both; 44 | display: table; 45 | justify-content: center; 46 | } 47 | 48 | :; 49 | } 50 | 51 | .card-normal { 52 | position: relative; 53 | display: -ms-flexbox; 54 | display: block; 55 | -ms-flex-direction: column; 56 | flex-direction: column; 57 | min-width: 0px; 58 | width: auto; 59 | height: auto; 60 | flex: 1 1 auto; 61 | word-wrap: break-word; 62 | background-color: #1b1b1b; 63 | background-clip: border-box; 64 | border: 1px solid rgba(0, 0, 0, .125); 65 | border-radius: 15px; 66 | padding: 15px; 67 | margin: 10px 10px 10px 10px; 68 | box-shadow: 0 1px 10px rgb(0 0 0 / 30%), 0 15px 12px rgb(0 0 0 / 22%); 69 | } 70 | 71 | .flex-child-small { 72 | -webkit-box-flex: 1 1 auto; 73 | -moz-box-flex: 1 1 auto; 74 | -webkit-flex: 1 1 auto; 75 | -ms-flex: 1 1 auto; 76 | flex: 1 1 auto; 77 | margin: 10px; 78 | font-size: 20px; 79 | border-radius: 15px; 80 | width: 100px; 81 | height: auto; 82 | font-family: Poppins-Regular; 83 | font-size: 14px; 84 | line-height: 1.7; 85 | color: #666666; 86 | text-align: center; 87 | } 88 | 89 | hr.rounded { 90 | border-top: 2px solid #1b1b1b; 91 | border-radius: 5px; 92 | width: -webkit-fill-available; 93 | } 94 | 95 | input { 96 | display: block; 97 | margin-bottom: 10px; 98 | padding: 5px; 99 | width: 100%; 100 | border: 1px solid grey; 101 | border-radius: 10px; 102 | font-size: 16px; 103 | background-color: #1b1b1b; 104 | color: white; 105 | } 106 | 107 | .card-1 { 108 | word-wrap: break-word; 109 | background-clip: border-box; 110 | background-color: #1b1b1b; 111 | border: 1px solid rgba(0, 0, 0, .125); 112 | border-radius: .7rem; 113 | display: flex; 114 | flex-direction: column; 115 | min-width: 0; 116 | position: relative; 117 | } 118 | 119 | .flex { 120 | display: -webkit-box; 121 | display: -moz-box; 122 | display: -ms-flexbox; 123 | display: -webkit-flex; 124 | display: flex; 125 | } 126 | 127 | img.card-image-top-top { 128 | border-radius: 25%; 129 | width: 40%; 130 | height: auto; 131 | display: block; 132 | margin-left: auto; 133 | margin-right: auto; 134 | margin-top: 10%; 135 | transition: 0.3s; 136 | } 137 | 138 | .grid__brick mt-3 col-6 col-md-4 col-xl-3 img { 139 | padding: 50%; 140 | float: left; 141 | width: auto; 142 | max-width: 100%; 143 | height: auto; 144 | object-fit: cover; 145 | } 146 | 147 | .page-link:before { 148 | position: relative; 149 | display: block; 150 | padding: .5rem .75rem; 151 | margin-left: -1px; 152 | line-height: 1.25; 153 | color: white; 154 | background-color: #131313; 155 | border: 1px solid #1b1b1b; 156 | transition: 0.3; 157 | } 158 | 159 | img { 160 | max-width: 100%; 161 | max-height: 100%; 162 | border-radius: 10px; 163 | } 164 | 165 | .page-link:after { 166 | position: relative; 167 | display: block; 168 | padding: .5rem .75rem; 169 | margin-left: -1px; 170 | line-height: 1.25; 171 | color: #131313; 172 | background-color: white; 173 | border: 1px solid #1b1b1b; 174 | transition: 0.3; 175 | } 176 | 177 | .card{ 178 | position: relative; 179 | display: -ms-flexbox; 180 | display: block; 181 | -ms-flex-direction: column; 182 | flex-direction: column; 183 | min-width: 0px; 184 | width: -webkit-fill-available; 185 | height: auto; 186 | text-align: center; 187 | max-width: 300px; 188 | flex: 1 1 auto; 189 | word-wrap: break-word; 190 | color: #0c1572 !important; 191 | background-color: #131313; 192 | background-clip: border-box; 193 | border: 1px solid rgba(0, 0, 0, .125); 194 | border-radius: 15px; 195 | padding: 15px; 196 | margin: 20px 20px 20px 20px; 197 | box-shadow: 0 1px 10px rgb(0 0 0 / 30%), 0 15px 12px rgb(0 0 0 / 22%); 198 | } 199 | 200 | .page-item { 201 | margin-left: 4px; 202 | margin-right: 4px; 203 | } 204 | 205 | .card-pagination { 206 | position: relative; 207 | display: -ms-flexbox; 208 | display: block; 209 | -ms-flex-direction: column; 210 | flex-direction: column; 211 | word-wrap: break-word; 212 | background-color: #131313; 213 | justify-content: center; 214 | background-clip: border-box; 215 | border: 1px solid rgba(0, 0, 0, .125); 216 | border-radius: 15px; 217 | width: auto; 218 | padding: 15px; 219 | align-items: center; 220 | margin: 10px 10px 10px 10px; 221 | box-shadow: 0 1px 10px rgb(0 0 0 / 30%), 0 15px 12px rgb(0 0 0 / 22%); 222 | } 223 | 224 | .page-link { 225 | position: relative; 226 | display: block; 227 | padding: .5rem .75rem; 228 | margin-left: -1px; 229 | line-height: 1.25; 230 | color: white; 231 | justify-content: center; 232 | margin: 0 auto; 233 | border-radius: 10px; 234 | background-color: #131313; 235 | border-radius: 7px; 236 | border-color: #272727; 237 | } 238 | 239 | .page-item:last-child .page-link { 240 | border-top-right-radius: .25rem; 241 | border-bottom-right-radius: .25rem; 242 | border-radius: 10px; 243 | } 244 | 245 | .page-item:first-child .page-link { 246 | border-top-right-radius: .25rem; 247 | border-bottom-right-radius: .25rem; 248 | border-radius: 10px; 249 | } 250 | 251 | .container { 252 | max-width: 100%; 253 | width: 100%; 254 | margin: 10px 10px 10px 10px; 255 | justify-content: center; 256 | } 257 | 258 | .pagination { 259 | padding-left: 0; 260 | list-style: none; 261 | justify-content: center; 262 | border-radius: .25rem; 263 | } 264 | 265 | .col-md-3 { 266 | width: 100%; 267 | float: left; 268 | margin: 0; 269 | } 270 | 271 | .card-img-top { 272 | width: 100%; 273 | border: 1px solid grey; 274 | height: 20vh; 275 | object-fit: cover; 276 | border-radius: 15px 15px 15px 15px; 277 | } 278 | 279 | /* Small devices (landscape phones, 576px and up) */ 280 | @media (min-width: 576px) { 281 | .card-img-top { 282 | height: 19vw; 283 | } 284 | } 285 | 286 | /* Medium devices (tablets, 768px and up) */ 287 | @media (min-width: 768px) { 288 | .card-img-top { 289 | height: 16vw; 290 | } 291 | } 292 | 293 | /* Large devices (desktops, 992px and up) */ 294 | @media (min-width: 992px) { 295 | .card-img-top { 296 | height: 11vw; 297 | } 298 | } 299 | 300 | /* Extra large devices (large desktops, 1200px and up) */ 301 | @media (min-width: 992px) { 302 | .card-img-top { 303 | height: 11vw; 304 | } 305 | } 306 | 307 | .h5, 308 | h5 { 309 | font-size: 1.15rem; 310 | } 311 | 312 | .btn.btn-dark { 313 | color: #fff; 314 | margin: 5px; 315 | display: block; 316 | } 317 | 318 | .table-dark { 319 | --bs-table-bg: #1b1b1b; 320 | --bs-table-striped-bg: #131313; 321 | --bs-table-striped-color: #fff; 322 | --bs-table-active-bg: #373b3e; 323 | --bs-table-active-color: #fff; 324 | --bs-table-hover-bg: #323539; 325 | --bs-table-hover-color: #fff; 326 | border-color: #373b3e; 327 | color: #fff; 328 | } 329 | 330 | .sidebar-wrapper { 331 | background-color: #1b1b1b; 332 | bottom: 0; 333 | height: 100vh; 334 | overflow-y: auto; 335 | position: fixed; 336 | top: 0; 337 | transition: left .5s ease-out; 338 | width: 300px; 339 | z-index: 10; 340 | } 341 | 342 | body { 343 | -webkit-text-size-adjust: 100%; 344 | -webkit-tap-highlight-color: rgba(0, 0, 0, 0); 345 | background-color: #131313; 346 | color: #607080; 347 | font-family: Nunito; 348 | font-size: 1rem; 349 | font-weight: 400; 350 | line-height: 1.5; 351 | margin: 0; 352 | } 353 | 354 | .sidebar-wrapper .menu .sidebar-link { 355 | align-items: center; 356 | border-radius: .5rem; 357 | color: #ccc; 358 | display: block; 359 | display: flex; 360 | font-size: 1rem; 361 | background: #1b1b1b; 362 | padding: .7rem 1rem; 363 | text-decoration: none; 364 | transition: all .5s; 365 | } 366 | 367 | .sidebar-wrapper::after .menu::after .sidebar-link::after { 368 | align-items: center; 369 | border-radius: .5rem; 370 | color: #ccc; 371 | display: block; 372 | display: flex; 373 | font-size: 1rem; 374 | background: #1b1b1b; 375 | padding: .7rem 1rem; 376 | text-decoration: none; 377 | transition: all .5s; 378 | } 379 | 380 | .sidebar-wrapper .menu .sidebar-link:hover { 381 | background-color: #151515 382 | } 383 | 384 | .sidebar-wrapper .menu .submenu .submenu-item a { 385 | color: #ccc; 386 | background: #171717; 387 | display: block; 388 | font-size: .85rem; 389 | border-radius: 10px; 390 | margin: 4px; 391 | font-weight: 600; 392 | letter-spacing: .5px; 393 | padding: .7rem 2rem; 394 | text-decoration: none; 395 | transition: all .3s; 396 | } 397 | 398 | .sidebar-wrapper .menu .sidebar-title { 399 | color: #ffffff; 400 | font-size: 1rem; 401 | font-weight: 600; 402 | list-style: none; 403 | margin: 1.5rem 0 1rem; 404 | padding: 0 1rem; 405 | } 406 | 407 | .card-header { 408 | background-color: #101010; 409 | border-bottom: 1px solid rgba(0, 0, 0, .125); 410 | margin-bottom: 0; 411 | padding: 1.5rem; 412 | } 413 | 414 | .h1, 415 | .h2, 416 | .h3, 417 | .h4, 418 | .h5, 419 | .h6, 420 | h1, 421 | h2, 422 | h3, 423 | h4, 424 | h5, 425 | h6 { 426 | color: #ffffff; 427 | font-weight: 700; 428 | line-height: 1.2; 429 | margin-bottom: .5rem; 430 | margin-top: 0; 431 | } 432 | 433 | .text-muted { 434 | color: #ccc; 435 | } 436 | 437 | .sidebar-wrapper .menu .sidebar-link i, 438 | .sidebar-wrapper .menu .sidebar-link svg { 439 | color: #5a5a5a; 440 | } 441 | 442 | .sidebar-wrapper .menu .sidebar-item.active .sidebar-link { 443 | background-color: #131313; 444 | } 445 | 446 | a { 447 | color: #ffffff; 448 | text-decoration: underline; 449 | } -------------------------------------------------------------------------------- /assets/css/login.css: -------------------------------------------------------------------------------- 1 | body{ 2 | background: linear-gradient(to bottom left, #1525d6, #1556d6) fixed; 3 | color: white; 4 | } 5 | .box{ 6 | width: 300px; 7 | padding: 40px; 8 | position: absolute; 9 | top: 50%; 10 | left: 50%; 11 | transform: translate(-50%,-50%); 12 | background: #181818; 13 | text-align: center; 14 | box-shadow: 0 10px 15px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); 15 | border-radius: 25px; 16 | transition: .5s; 17 | } 18 | .box h1{ 19 | color: white; 20 | text-transform: uppercase; 21 | font-weight: 500; 22 | transition: .5s; 23 | } 24 | .box input[type = "text"],.box input[type = "password"]{ 25 | border:0; 26 | background: none; 27 | display: block; 28 | margin: 20px auto; 29 | text-align: center; 30 | border: 2px solid %firstcolor%; 31 | padding: 14px 10px; 32 | width: 200px; 33 | outline: none; 34 | color: white; 35 | border-radius: 24px; 36 | transition: .5s; 37 | } 38 | .box input[type = "text"]:focus,.box input[type = "password"]:focus{ 39 | width: 280px; 40 | border-color: #181818; 41 | transition: .5s; 42 | } 43 | .submit{ 44 | border:0; 45 | background: none; 46 | display: block; 47 | margin: 20px auto; 48 | text-align: center; 49 | border: 2px solid i%secondcolor%; 50 | padding: 14px 40px; 51 | outline: none; 52 | color: white; 53 | border-radius: 24px; 54 | transition: .5s; 55 | cursor: pointer; 56 | } 57 | .submit:hover{ 58 | background: linear-gradient(to bottom left, %firstcolor%, i%secondcolor%) fixed; 59 | transition: .5s; 60 | } 61 | 62 | .darkmode { 63 | transition: 1s; 64 | background: linear-gradient(to bottom left, #111111, #232526) fixed; 65 | } 66 | -------------------------------------------------------------------------------- /assets/css/register.css: -------------------------------------------------------------------------------- 1 | body{ 2 | background: linear-gradient(to bottom left, #1525d6, #1556d6) fixed; 3 | color: white; 4 | } 5 | .box{ 6 | width: 300px; 7 | padding: 40px; 8 | position: absolute; 9 | top: 50%; 10 | left: 50%; 11 | transform: translate(-50%,-50%); 12 | background: #181818; 13 | text-align: center; 14 | box-shadow: 0 10px 15px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(0, 0, 0, 0.19); 15 | border-radius: 25px; 16 | transition: .5s; 17 | } 18 | .box h1{ 19 | color: white; 20 | text-transform: uppercase; 21 | font-weight: 500; 22 | transition: .5s; 23 | } 24 | .box input[type = "text"],.box input[type = "password"]{ 25 | border:0; 26 | background: none; 27 | display: block; 28 | margin: 20px auto; 29 | text-align: center; 30 | border: 2px solid %firstcolor%; 31 | padding: 14px 10px; 32 | width: 200px; 33 | outline: none; 34 | color: white; 35 | border-radius: 24px; 36 | transition: .5s; 37 | } 38 | .box input[type = "text"]:focus,.box input[type = "password"]:focus{ 39 | width: 280px; 40 | border-color: #181818; 41 | transition: .5s; 42 | } 43 | .submit{ 44 | border:0; 45 | background: none; 46 | display: block; 47 | margin: 20px auto; 48 | text-align: center; 49 | border: 2px solid %secondcolor%; 50 | padding: 14px 40px; 51 | outline: none; 52 | color: white; 53 | border-radius: 24px; 54 | transition: .5s; 55 | cursor: pointer; 56 | } 57 | .submit:hover{ 58 | background: linear-gradient(to bottom left, %firstcolor%, %secondcolor%) fixed; 59 | transition: .5s; 60 | } 61 | 62 | .darkmode { 63 | transition: 1s; 64 | background: linear-gradient(to bottom left, #111111, #232526) fixed; 65 | } 66 | -------------------------------------------------------------------------------- /assets/css/styles.css: -------------------------------------------------------------------------------- 1 | @import url("https://fonts.googleapis.com/css2?family=Lato&display=swap"); 2 | html { 3 | overflow: hidden; 4 | } 5 | 6 | body { 7 | background: linear-gradient(to bottom left, #1525d6, #1556d6) fixed; 8 | font-family: "Lato", sans-serif; 9 | } 10 | 11 | #cover-i { 12 | position: absolute; 13 | top: 0; 14 | left: 0; 15 | width: 100%; 16 | height: 100%; 17 | background-color: black; 18 | z-index: 100; 19 | visibility: hidden; 20 | } 21 | 22 | .image { 23 | position: absolute; 24 | top: 50%; 25 | left: 50%; 26 | transform: translate(-50%, -50%); 27 | text-align: center; 28 | } 29 | 30 | .darkmode { 31 | transition: 1s; 32 | background: linear-gradient(to bottom left, #111111, #232526) fixed; 33 | } 34 | 35 | #links { 36 | position: relative; 37 | color: white; 38 | text-align: center; 39 | font-size: 4vh; 40 | } 41 | #links a { 42 | color: white; 43 | text-decoration: none; 44 | text-align: center; 45 | } 46 | #links a:hover { 47 | text-decoration: underline; 48 | } 49 | 50 | #logo { 51 | width: 200px; 52 | height: 200px; 53 | } 54 | 55 | #logo:hover { 56 | animation: spin ease 1.7s forwards; 57 | } 58 | 59 | @media screen and (max-width: 1027px) { 60 | #links { 61 | font-size: 3vh; 62 | } 63 | 64 | #logo { 65 | width: 150px; 66 | height: 150px; 67 | } 68 | } 69 | @media screen and (max-width: 647px) { 70 | #links { 71 | font-size: 1.5vh; 72 | } 73 | 74 | #logo { 75 | width: 100px; 76 | height: 100px; 77 | } 78 | } 79 | @keyframes spin { 80 | 0% { 81 | transform: rotate(0deg); 82 | } 83 | 10% { 84 | transform: rotate(-25deg); 85 | } 86 | 50% { 87 | transform: rotate(380deg); 88 | } 89 | 65% { 90 | transform: rotate(360deg); 91 | } 92 | 100% { 93 | transform: rotate(360deg); 94 | } 95 | } 96 | 97 | canvas { width: 100vw; height: 100vh; display: block; } 98 | 99 | /*# sourceMappingURL=styles.css.map */ 100 | -------------------------------------------------------------------------------- /assets/images/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NotClynt/File-Uploader/f2134e83c8576091d61759b443809b2d2df809b0/assets/images/icon.png -------------------------------------------------------------------------------- /assets/images/icons/Filetype - C#.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NotClynt/File-Uploader/f2134e83c8576091d61759b443809b2d2df809b0/assets/images/icons/Filetype - C#.png -------------------------------------------------------------------------------- /assets/images/icons/Filetype - CSS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NotClynt/File-Uploader/f2134e83c8576091d61759b443809b2d2df809b0/assets/images/icons/Filetype - CSS.png -------------------------------------------------------------------------------- /assets/images/icons/Filetype - EXE.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NotClynt/File-Uploader/f2134e83c8576091d61759b443809b2d2df809b0/assets/images/icons/Filetype - EXE.png -------------------------------------------------------------------------------- /assets/images/icons/Filetype - HTML.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NotClynt/File-Uploader/f2134e83c8576091d61759b443809b2d2df809b0/assets/images/icons/Filetype - HTML.png -------------------------------------------------------------------------------- /assets/images/icons/Filetype - JS.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NotClynt/File-Uploader/f2134e83c8576091d61759b443809b2d2df809b0/assets/images/icons/Filetype - JS.png -------------------------------------------------------------------------------- /assets/images/icons/Filetype - MP3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NotClynt/File-Uploader/f2134e83c8576091d61759b443809b2d2df809b0/assets/images/icons/Filetype - MP3.png -------------------------------------------------------------------------------- /assets/images/icons/Filetype - PYTHON.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NotClynt/File-Uploader/f2134e83c8576091d61759b443809b2d2df809b0/assets/images/icons/Filetype - PYTHON.png -------------------------------------------------------------------------------- /assets/images/icons/Filetype - RAR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NotClynt/File-Uploader/f2134e83c8576091d61759b443809b2d2df809b0/assets/images/icons/Filetype - RAR.png -------------------------------------------------------------------------------- /assets/images/icons/Filetype - U.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NotClynt/File-Uploader/f2134e83c8576091d61759b443809b2d2df809b0/assets/images/icons/Filetype - U.png -------------------------------------------------------------------------------- /assets/images/icons/Filetype - WAV.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NotClynt/File-Uploader/f2134e83c8576091d61759b443809b2d2df809b0/assets/images/icons/Filetype - WAV.png -------------------------------------------------------------------------------- /assets/images/icons/Filetype - ZIP.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NotClynt/File-Uploader/f2134e83c8576091d61759b443809b2d2df809b0/assets/images/icons/Filetype - ZIP.png -------------------------------------------------------------------------------- /assets/images/prw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/NotClynt/File-Uploader/f2134e83c8576091d61759b443809b2d2df809b0/assets/images/prw.png -------------------------------------------------------------------------------- /assets/index.php: -------------------------------------------------------------------------------- 1 | "+e.outerHTML+"":e.outerHTML;L.call(document,i);var a=document.querySelector("["+r+"]");if(a){a.removeAttribute(r);var c=n&&a.parentNode;c&&o(c)}return a}function f(t){if(t&&"handleEvent"in t){var e=t.handleEvent;return"function"==typeof e?e.bind(t):e}return t}function h(t,e,n){var r=n?function(t){return e.insertBefore(t,n)}:function(t){return e.appendChild(t)};Array.prototype.slice.call(t).forEach(r)}function v(){return/chrome/i.test(navigator.userAgent)&&/google/i.test(navigator.vendor)}function y(t,e){function n(){this.constructor=t}H(t,e),t.prototype=null===e?Object.create(e):(n.prototype=e.prototype,new n)}function m(t){return t instanceof Window?["load"]:t instanceof Document?["DOMContentLoaded","readystatechange"]:[]}function b(t){var e=t.getAttribute(R);if(!e)return null;var n=e.split(T);return{nonce:n[0],handlerPrefixLength:+n[1],bailout:!t.hasAttribute("defer")}}function g(t){var e=B+t.nonce;Array.prototype.forEach.call(document.querySelectorAll("["+e+"]"),function(n){n.removeAttribute(e),Array.prototype.forEach.call(n.attributes,function(e){/^on/.test(e.name)&&"function"!=typeof n[e.name]&&n.setAttribute(e.name,e.value.substring(t.handlerPrefixLength))})})}function S(){var t=window;"undefined"!=typeof Promise&&(t.__cfQR={done:new Promise(function(t){return U=t})})}function w(t){var e=new N(t),n=new C(e);e.harvestScriptsInDocument(),new W(e,{nonce:t,blocking:!0,docWriteSimulator:n,callback:function(){}}).run()}function x(t){var e=new N(t),n=new C(e);e.harvestScriptsInDocument();var r=new W(e,{nonce:t,blocking:!1,docWriteSimulator:n,callback:function(){window.__cfRLUnblockHandlers=!0,r.removePreloadHints(),P(t)}});r.insertPreloadHints(),M.runOnLoad(function(){r.run()})}function P(t){var e=new O(t);M.simulateStateBeforeDeferScriptsActivation(),e.harvestDeferScriptsInDocument(),new W(e,{nonce:t,blocking:!1,callback:function(){M.simulateStateAfterDeferScriptsActivation(),U&&U()}}).run()}var A="http://www.w3.org/2000/svg",E={"application/ecmascript":!0,"application/javascript":!0,"application/x-ecmascript":!0,"application/x-javascript":!0,"text/ecmascript":!0,"text/javascript":!0,"text/javascript1.0":!0,"text/javascript1.1":!0,"text/javascript1.2":!0,"text/javascript1.3":!0,"text/javascript1.4":!0,"text/javascript1.5":!0,"text/jscript":!0,"text/livescript":!0,"text/x-ecmascript":!0,"text/x-javascript":!0,module:!0},k=void 0!==document.createElement("script").noModule,I=function(){var t=window;return t.__rocketLoaderEventCtor||Object.defineProperty(t,"__rocketLoaderEventCtor",{value:Event}),t.__rocketLoaderEventCtor}(),L=document.write,_=document.writeln,H=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,e){t.__proto__=e}||function(t,e){for(var n in e)e.hasOwnProperty(n)&&(t[n]=e[n])},D=function(){function t(t){this.nonce=t,this.items=[]}return Object.defineProperty(t.prototype,"hasItems",{get:function(){return this.items.length>0},enumerable:!0,configurable:!0}),t.prototype.pop=function(){return this.items.pop()},t.prototype.forEach=function(t){this.items.forEach(function(e){var n=e.script;return t(n)})},t.prototype.harvestScripts=function(t,e){var n=this,r=e.filter,o=e.mutate;Array.prototype.slice.call(t.querySelectorAll("script")).filter(r).reverse().forEach(function(t){o(t),n.pushScriptOnStack(t)})},t.prototype.pushScriptOnStack=function(t){var e=t.parentNode,n=this.createPlaceholder(t),r=!!i(t);e.replaceChild(n,t),this.items.push({script:t,placeholder:n,external:r,async:r&&t.hasAttribute("async"),executable:c(t)})},t.prototype.hasNonce=function(t){return 0===(t.getAttribute("type")||"").indexOf(this.nonce)},t.prototype.removeNonce=function(t){t.type=t.type.substr(this.nonce.length)},t.prototype.makeNonExecutable=function(t){t.type=this.nonce+t.type},t.prototype.isPendingDeferScript=function(t){return t.hasAttribute("defer")||t.type===this.nonce+"module"&&!t.hasAttribute("async")},t}(),N=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return y(e,t),e.prototype.harvestScriptsInDocument=function(){var t=this;this.harvestScripts(document,{filter:function(e){return t.hasNonce(e)},mutate:function(e){t.isPendingDeferScript(e)||t.removeNonce(e)}})},e.prototype.harvestScriptsAfterDocWrite=function(t){var e=this;this.harvestScripts(t,{filter:c,mutate:function(t){e.isPendingDeferScript(t)&&e.makeNonExecutable(t)}})},e.prototype.createPlaceholder=function(t){return document.createComment(t.outerHTML)},e}(D),O=function(t){function e(){return null!==t&&t.apply(this,arguments)||this}return y(e,t),e.prototype.harvestDeferScriptsInDocument=function(){var t=this;this.harvestScripts(document,{filter:function(e){return t.hasNonce(e)&&t.isPendingDeferScript(e)},mutate:function(e){return t.removeNonce(e)}})},e.prototype.createPlaceholder=function(t){var e=p(t);return this.makeNonExecutable(e),e},e}(D),C=function(){function t(t){this.scriptStack=t}return t.prototype.enable=function(t){var e=this;this.insertionPointMarker=t,this.buffer="",document.write=function(){for(var t=[],n=0;n",o=t.parseFromString(e,"text/html");if(this.scriptStack.harvestScriptsAfterDocWrite(o),n(o.head.childNodes,this.insertionPointMarker),o.body.childNodes.length){for(var i=Array.prototype.slice.call(o.body.childNodes),a=this.insertionPointMarker.nextSibling;a;)i.push(a),a=a.nextSibling;document.body||L.call(document,""),r(i,document.body)}},t.prototype.insertContentInBody=function(){var t=this.insertionPointMarker.parentElement,e=document.createElement(t.tagName);e.innerHTML=this.buffer,this.scriptStack.harvestScriptsAfterDocWrite(e),n(e.childNodes,this.insertionPointMarker)},t.prototype.write=function(t,e){var n=document.currentScript;n&&i(n)&&n.hasAttribute("async")?(r=e?_:L).call.apply(r,[document].concat(t)):this.buffer+=t.map(String).join(e?"\n":"");var r},t}(),j=function(){function t(){var t=this;this.simulatedReadyState="loading",this.bypassEventsInProxies=!1,this.nativeWindowAddEventListener=window.addEventListener;try{Object.defineProperty(document,"readyState",{get:function(){return t.simulatedReadyState}})}catch(e){}this.setupEventListenerProxy(),this.updateInlineHandlers()}return t.prototype.runOnLoad=function(t){var e=this;this.nativeWindowAddEventListener.call(window,"load",function(n){if(!e.bypassEventsInProxies)return t(n)})},t.prototype.updateInlineHandlers=function(){this.proxyInlineHandler(document,"onreadystatechange"),this.proxyInlineHandler(window,"onload"),document.body&&this.proxyInlineHandler(document.body,"onload")},t.prototype.simulateStateBeforeDeferScriptsActivation=function(){this.bypassEventsInProxies=!0,this.simulatedReadyState="interactive",l(document,"readystatechange"),this.bypassEventsInProxies=!1},t.prototype.simulateStateAfterDeferScriptsActivation=function(){var t=this;this.bypassEventsInProxies=!0,l(document,"DOMContentLoaded"),this.simulatedReadyState="complete",l(document,"readystatechange"),l(window,"load"),this.bypassEventsInProxies=!1,window.setTimeout(function(){return t.bypassEventsInProxies=!0},0)},t.prototype.setupEventListenerProxy=function(){var t=this;("undefined"!=typeof EventTarget?[EventTarget.prototype]:[Node.prototype,Window.prototype]).forEach(function(e){return t.patchEventTargetMethods(e)})},t.prototype.patchEventTargetMethods=function(t){var e=this,n=t.addEventListener,r=t.removeEventListener;t.addEventListener=function(t,r){for(var o=[],i=2;i 0) { 52 | while ($row54 = mysqli_fetch_array($userresult)) { 53 | $username = $row54["username"]; 54 | $uuid = $row54["uuid"]; 55 | } 56 | } 57 | } 58 | $usersql = "SELECT * FROM `users` WHERE `id`='$ban_id'"; 59 | if ($userresult = mysqli_query($db, $usersql)) { 60 | if (mysqli_num_rows($userresult) > 0) { 61 | while ($row = mysqli_fetch_array($userresult)) { 62 | $user_name = $row["username"]; 63 | $_SESSION["banmsg"] = "

Banned $user_name!


"; 64 | header("location: ../admin/"); 65 | } 66 | } 67 | } 68 | } else { 69 | echo "Failed to Ban User $ban_id"; 70 | } 71 | } 72 | if (isset($_GET["unban"])) { 73 | $ban_id = $_GET["unban"]; 74 | $sql = "UPDATE `users` SET `banned`='false' WHERE `id`='$ban_id'"; 75 | if ($result = mysqli_query($db, $sql)) { 76 | $sql = "SELECT * FROM `users` WHERE `id`='$ban_id'"; 77 | if ($userresult = mysqli_query($db, $sql)) { 78 | if (mysqli_num_rows($userresult) > 0) { 79 | while ($row54 = mysqli_fetch_array($userresult)) { 80 | $username = $row54["username"]; 81 | $uuid = $row54["uuid"]; 82 | } 83 | } 84 | } 85 | $usersql = "SELECT * FROM `users` WHERE `id`='$ban_id'"; 86 | if ($userresult = mysqli_query($db, $usersql)) { 87 | if (mysqli_num_rows($userresult) > 0) { 88 | while ($row = mysqli_fetch_array($userresult)) { 89 | $user_name = $row["username"]; 90 | $_SESSION["banmsg"] = "

Unbanned $user_name!


"; 91 | header("location: ../admin/"); 92 | } 93 | } 94 | } 95 | } else { 96 | die("Failed to Un-Ban User $ban_id"); 97 | } 98 | header("location: ../admin/"); 99 | } 100 | 101 | $sql1 = "SELECT * FROM toggles;"; 102 | if ($result1 = mysqli_query($db, $sql1)) { 103 | if (mysqli_num_rows($result1) > 0) { 104 | while ($row1 = mysqli_fetch_array($result1)) { 105 | $maintenance = $row1["maintenance"]; 106 | $allow_uploads = $row1["allow_uploads"]; 107 | $announcement = $row1["announcement"]; 108 | } 109 | } else { 110 | die("Not found!"); 111 | } 112 | } 113 | 114 | if ($maintenance == "true") { 115 | $maintenance = "checked"; 116 | } 117 | if ($allow_uploads == "true") { 118 | $allow_uploads = "checked"; 119 | } 120 | 121 | if (isset($_GET['update-settings'])) { 122 | if (isset($_POST['maintenance'])) { 123 | $sql2 = "UPDATE toggles SET `maintenance`='true';"; 124 | $result2 = mysqli_query($db, $sql2); 125 | } 126 | 127 | if (!isset($_POST['maintenance'])) { 128 | $sql2 = "UPDATE toggles SET `maintenance`='false';"; 129 | $result2 = mysqli_query($db, $sql2); 130 | } 131 | 132 | if (isset($_POST['allow_uploads'])) { 133 | $sql2 = "UPDATE toggles SET `allow_uploads`='true';"; 134 | $result2 = mysqli_query($db, $sql2); 135 | } 136 | 137 | if (!isset($_POST['allow_uploads'])) { 138 | $sql2 = "UPDATE toggles SET `allow_uploads`='false';"; 139 | $result2 = mysqli_query($db, $sql2); 140 | } 141 | 142 | if (isset($_POST['announcement_text'])) { 143 | $sql2 = "UPDATE toggles SET `announcement`='" . $_POST['announcement_text'] . "';"; 144 | $result2 = mysqli_query($db, $sql2); 145 | } 146 | 147 | header("location: ../admin/"); 148 | } 149 | 150 | ?> 151 | 152 | 153 | 154 | 155 | <?php echo SERVICE_NAME ?> | Dashboard 156 | 157 | 158 | 159 | 160 | 161 | 162 | 163 | 164 | 165 | 166 | 167 | 168 | 169 | 170 | 171 | 172 | 173 | 174 | 188 | 189 | 190 |
191 | 192 | 193 |
194 |
195 |

Users

196 | " . $_SESSION["banmsg"] . "
"; 198 | $sql = "SELECT * FROM `users`"; 199 | if ($result = mysqli_query($db, $sql)) { 200 | if (mysqli_num_rows($result) > 0) { 201 | 202 | while ($row = mysqli_fetch_array($result)) { 203 | $discord_avatar = $row["discord_avatar"]; 204 | if ($row["banned"] == "true") { 205 | $banned = "Banned"; 206 | if ($discord_avatar == "https://preview.redd.it/nx4jf8ry1fy51.gif?format=png8&s=a5d51e9aa6b4776ca94ebe30c9bb7a5aaaa265a6") { 207 | $bannedurl = " 208 |
209 |
210 |

211 |

Username:
" . $row["username"] . "

212 |

ID:
" . $row["id"] . "

213 |

Uploads:
" . $row["uploads"] . "

214 |


Unban

215 |
"; 216 | } else { 217 | $bannedurl = " 218 |
219 |
220 |

221 |

Username:
" . $row["username"] . "

222 |

ID:
" . $row["id"] . "

223 |

Uploads:
" . $row["uploads"] . "

224 |


Unban

225 |
"; 226 | } 227 | } else { 228 | $banned = "Not Banned"; 229 | if ($discord_avatar == "https://preview.redd.it/nx4jf8ry1fy51.gif?format=png8&s=a5d51e9aa6b4776ca94ebe30c9bb7a5aaaa265a6") { 230 | $bannedurl = " 231 |
232 |
233 |

234 |

Username:
" . $row["username"] . "

235 |

ID:
" . $row["id"] . "

236 |

Uploads:
" . $row["uploads"] . "

237 |


Ban

238 |
"; 239 | } else { 240 | $bannedurl = " 241 |
242 |
243 |

244 |

Username:
" . $row["username"] . "

245 |

ID:
" . $row["id"] . "

246 |

Uploads:
" . $row["uploads"] . "

247 |


Ban

248 |
"; 249 | } 250 | } 251 | echo $bannedurl; 252 | } 253 | } else { 254 | die("Not found!"); 255 | } 256 | } 257 | ?> 258 |
259 |
260 | 261 |
262 |
263 |

Invites

264 |
265 |
266 |
267 | 268 |
269 |
270 |

Settings

271 |
272 |
273 |

Maintenance:

274 | 278 |

279 |

Allow Uploads:

280 | 284 |

285 |
286 |
287 |
288 |
289 |

Announcement:

290 |
291 |
292 |
293 |
294 | 295 |
296 |
297 |
298 |
299 | 300 | 301 | 302 | 311 | 312 | 313 | -------------------------------------------------------------------------------- /dashboard/images.php: -------------------------------------------------------------------------------- 1 | 0) { 28 | while ($row645 = mysqli_fetch_assoc($result645)) { 29 | $delete_secret = "" . $row645["delete_secret"] . ""; 30 | } 31 | } else { 32 | echo "0 results"; 33 | } 34 | if ($delete_secret == $_GET['secret']) { 35 | $sql = "DELETE FROM uploads WHERE filename='" . $_GET['delete'] . "';"; 36 | $result = mysqli_query($db, $sql); 37 | unlink("../uploads/$uuid/$username/" . $_GET['delete']); 38 | $sql = "UPDATE users SET uploads=$uploads WHERE username='" . $username . "';"; 39 | $result = mysqli_query($db, $sql); 40 | 41 | header("location: https://". DOMAIN ."/dashboard/images"); 42 | } else { 43 | die("Wrong Secret!"); 44 | } 45 | } 46 | } 47 | 48 | ?> 49 | 50 | 51 | 52 | 53 | <?php echo SERVICE_NAME ?> | Dashboard 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 89 | 90 | 91 |
92 |
93 | 94 |

This is looking pretty empty...


"; 102 | die(); 103 | } 104 | 105 | ?> 106 | 112 | 113 |
114 |
115 |
116 | " alt="" class='card-img-top'> 117 |

Url:
' . $row['filename'] ?>

118 |
119 | ' download type='button'>Download 120 | /assets/js/loader.js" defer=""> 130 | 131 | 132 | -------------------------------------------------------------------------------- /dashboard/index.php: -------------------------------------------------------------------------------- 1 | 259 | 260 | 261 | 262 | 263 | <?php echo SERVICE_NAME ?> | Dashboard 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 299 | 300 | 301 |
302 | 303 |
304 |
Upload settings
305 |
306 |
307 | 308 |
309 | 310 | 311 |
312 | 313 | 314 | 324 | 325 | 326 | 327 |
328 |
329 | 330 | 331 |
332 | 333 | 334 |
335 |
Embed settings
336 |
337 |
338 | 339 | 344 | 345 | 346 | 347 | 348 | 349 | 350 |
351 |
352 |
353 | 354 |
355 |
Settings
356 |
357 |
358 | 359 | 360 |
361 | name="use_customdomain"> 362 | 363 |
364 | 365 | 366 |
367 | > 368 | 369 |
370 | 371 | 372 |
373 | > 374 | 375 |
376 | 377 | 378 |
379 | > 380 | 381 |
382 | 383 | 384 |
385 | > 386 | 387 |
388 | 389 | 390 |
391 | > 392 | 393 |
394 | 395 | 396 |
397 | > 398 | 399 |
400 | 401 | 402 | 403 |
404 |
405 | 406 | 407 |
408 | 409 | 410 |
411 |
412 |

ShareX Key

413 |

414 |

415 |
416 | 417 |
418 |
419 |
420 | 421 | 465 | 466 | 467 |
468 | 469 | 504 | 505 | 514 | 515 | 516 | 517 | 537 | 538 | 539 | -------------------------------------------------------------------------------- /dashboard/logout.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | 12 | 13 | query($sql); 17 | $totalusers = $result->num_rows; 18 | 19 | $sql = "SELECT `banned` FROM `users` WHERE `banned`='true'"; 20 | $result = $db->query($sql); 21 | $totalbans = $result->num_rows; 22 | 23 | $sql = "SELECT id FROM uploads"; 24 | $result = $db->query($sql); 25 | $totaluploads = $result->num_rows; 26 | 27 | 28 | if (isset($_GET["invite"])) { 29 | $invitecode = $_GET["invite"]; 30 | $invite = "SELECT * FROM `invites` WHERE `inviteCode`='$invitecode'"; 31 | $result = mysqli_query($db, $invite); 32 | $row = mysqli_fetch_assoc($result); 33 | if (mysqli_num_rows($result) > 0) { 34 | $_SESSION["inviteCode"] = $invitecode; 35 | $giftAuthor = $row["inviteAuthor"]; 36 | echo " 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | "; 46 | header("Location: https://c-cloud.rocks/register/"); 47 | } else { 48 | die("This invite does not exist!"); 49 | } 50 | } 51 | 52 | 53 | $protocol = isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] != "off" ? "https" : "http" . "://"; 54 | if (isset($_GET["f"])) { 55 | $string = $_GET["f"]; 56 | if (strlen($string) > 20) { 57 | $string = urlencode($string); 58 | $sql = "SELECT * FROM `uploads` WHERE `hash_filename`='$string'"; 59 | $result = mysqli_query($db, $sql); 60 | $upload = mysqli_fetch_assoc($result); 61 | $filename = $upload["filename"]; 62 | $type = strrchr($filename, '.'); 63 | $type = str_replace(".", "", $type); 64 | $title = $upload['embed_title']; 65 | $description = $upload['embed_desc']; 66 | $author = $upload['embed_author']; 67 | $color = $upload['embed_color']; 68 | $username = $upload['username']; 69 | $self_destruct_upload = $upload['self_destruct_upload']; 70 | $uploaded_at = $upload['uploaded_at']; 71 | $role = $upload['role']; 72 | $delete_secret = $upload['delete_secret']; 73 | $original_filename = $upload['original_filename']; 74 | $show_filesize = 0; 75 | $userquery = "SELECT * FROM `users` WHERE username='" . $username . "';"; 76 | $userresult = mysqli_query($db, $userquery); 77 | $upload432423423 = mysqli_fetch_assoc($userresult); 78 | $uuid = $upload432423423["uuid"]; 79 | $files = scandir('uploads/' . $uuid . '/' . $username); 80 | $sql213 = "SELECT * FROM `users` WHERE username='" . $username . "';"; 81 | $views = $upload['views']; 82 | $result123 = mysqli_query($db, $sql213); 83 | $result1234 = mysqli_fetch_assoc($result123); 84 | $banned = $result1234["banned"]; 85 | $upload_background = $result1234["upload_background"]; 86 | $upload_background_toggle = $result1234["upload_background_toggle"]; 87 | $useridentification = $result1234["uuid"]; 88 | header("Location: https://" . DOMAIN . "/$filename"); 89 | exit; 90 | } else { 91 | $type = strrchr($string, '.'); 92 | $type = str_replace(".", "", $type); 93 | $sql = "SELECT * FROM `uploads` WHERE `filename`='" . $string . "';"; 94 | $result = mysqli_query($db, $sql); 95 | $upload = mysqli_fetch_assoc($result); 96 | $filename = $upload["filename"]; 97 | $title = $upload['embed_title']; 98 | $description = $upload['embed_desc']; 99 | $author = $upload['embed_author']; 100 | $color = $upload['embed_color']; 101 | $username = $upload['username']; 102 | $self_destruct_upload = $upload['self_destruct_upload']; 103 | $uploaded_at = $upload['uploaded_at']; 104 | $role = $upload['role']; 105 | $delete_secret = $upload['delete_secret']; 106 | $original_filename = $upload['original_filename']; 107 | $show_filesize = 0; 108 | $userquery = "SELECT * FROM `users` WHERE username='" . $username . "';"; 109 | $userresult = mysqli_query($db, $userquery); 110 | $upload432423423 = mysqli_fetch_assoc($userresult); 111 | $uuid = $upload432423423["uuid"]; 112 | $files = scandir('uploads/' . $uuid . '/' . $username); 113 | $sql213 = "SELECT * FROM `users` WHERE username='" . $username . "';"; 114 | $views = $upload['views']; 115 | $result123 = mysqli_query($db, $sql213); 116 | $result1234 = mysqli_fetch_assoc($result123); 117 | $banned = $result1234["banned"]; 118 | $upload_background = $result1234["upload_background"]; 119 | $upload_background_toggle = $result1234["upload_background_toggle"]; 120 | $useridentification = $result1234["uuid"]; 121 | } 122 | $user_agent = $_SERVER['HTTP_USER_AGENT']; 123 | if (strpos($user_agent, "Discordbot") && $self_destruct_upload == "true") { 124 | die("fuck off discord"); 125 | } else { 126 | $sql = "UPDATE `uploads` SET views = views+1 WHERE filename='" . $_GET['f'] . "';"; 127 | $result = mysqli_query($db, $sql); 128 | } 129 | if ($self_destruct_upload == "true" && $views >= 2) { 130 | if (strpos($user_agent, "Discordbot")) { 131 | die("fuck off discord"); 132 | } else { 133 | unlink("/uploads/$uuid/$username/" . $filename); 134 | $query = "SELECT * FROM users WHERE username='$username'"; 135 | $result = mysqli_query($db, $query); 136 | if (mysqli_num_rows($result) > 0) { 137 | while ($row = mysqli_fetch_assoc($result)) { 138 | $uploads = "" . $row["uploads"] . "" - 1; 139 | } 140 | } else { 141 | echo "0 results"; 142 | } 143 | $query2 = "UPDATE users SET uploads=$uploads WHERE username='" . $username . "';"; 144 | $results2 = mysqli_query($db, $query2); 145 | $query43 = "DELETE FROM `uploads` WHERE `delete_secret`='" . $delete_secret . "';"; 146 | $results434343 = mysqli_query($db, $query43); 147 | die(); 148 | } 149 | } 150 | foreach ($files as $file) { 151 | if ($file == $_GET["f"]) { 152 | $filesize = human_filesize(filesize('uploads/' . $uuid . '/' . $username . "/" . $upload["filename"]), 2); 153 | 154 | ?> 155 | 156 | 157 | 158 | <?php echo SERVICE_NAME; ?>|<?php echo $_GET["f"]; ?> 159 | 160 | 161 | 182 | 183 | 184 | 185 | 186 | 187 | 188 | 189 | 190 | 191 | 192 | "> 193 | 194 | 195 | 196 | 197 | 198 | 199 | 200 | 201 | 202 | 203 | 204 | 205 | 206 | 207 | 208 | 209 | 210 | 211 | 212 | 213 | 214 | 215 | 216 | 217 | 218 | 219 | 220 | 221 | 222 | 223 | 224 | 225 | 226 | 227 | 228 | 229 | 230 | 231 | 232 | 233 | 234 | 235 | 236 | 237 | 238 | 239 | 240 | 241 | 242 | 243 | 244 | 245 | 246 | 247 | 248 | 249 | 250 | 251 | 252 | 253 | 254 | 255 | 256 | 257 | 258 | 259 | 260 | 261 | 262 | 263 | 264 | 265 | 266 | 267 | 268 | 269 | 270 | 271 | 272 | 273 | 274 | 275 | 276 | 277 | 278 | 279 | 280 | 281 | 282 | 283 | 284 | 285 | 286 | 287 | 288 | 289 | 290 | 291 | 292 | 293 |

This upload self destructs if you leave this site


"; 297 | } 298 | if ($banned == "true") { 299 | echo " 300 |
301 | " . SERVICE_NAME . " 302 |
303 |
304 |
305 |
306 | Uploaded by: $username at $uploaded_at 307 |
308 |
"; 309 | } else if ($banned == "false") { 310 | echo " 311 |
312 | " . SERVICE_NAME . " 313 |
314 |
315 |
316 |
317 | Uploaded by: $username at $uploaded_at 318 |
319 |
"; 320 | } else if ($upload_logo_toggle == "true") { 321 | echo " 322 |
323 | " . SERVICE_NAME . " 324 |
325 |
326 |
327 |
328 | Uploaded by: $username at $uploaded_at 329 |
330 |
"; 331 | } 332 | ?> 333 | 334 | 335 | 339 | 340 | 341 | 344 | 345 | 346 | 347 | 348 | 349 | "; 350 | } 351 | ?> 352 | 353 | 354 | 355 | 356 | 357 | 358 | <?php echo SERVICE_NAME ?> 359 | 360 | 361 | 362 | 363 | 364 | 365 | 366 | 367 |
368 | 369 |
370 | 371 |

372 | 381 |
382 | 383 | 384 | 408 | 409 | 410 | 411 | 412 | 415 | 416 | -------------------------------------------------------------------------------- /installer/.htaccess: -------------------------------------------------------------------------------- 1 | RewriteEngine On 2 | RewriteCond %{REQUEST_FILENAME} !-f 3 | RewriteRule ^([^\.]+)$ $1.php [NC,L] -------------------------------------------------------------------------------- /installer/done.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | Installer 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 24 | 25 | 26 | 27 | 28 | 29 |


30 |
31 | 32 |

Success

33 | 34 |

35 | Successfully installed.
Please delete the install folder.
Use the following invite to refister : ez68Ur8tt2-6iR3XE4sDG-oaA7Y62Lqe-UcnpD8BxuR 36 |

37 | 38 |
39 | 40 | 41 | 50 |
51 | 52 | 53 | 54 | -------------------------------------------------------------------------------- /installer/index.php: -------------------------------------------------------------------------------- 1 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | Installer 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 60 | 61 | 62 | 63 | 64 | 65 |


66 |
67 |

URLs

68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 |
76 |

77 |
78 |
79 | 80 | 81 | 90 |
91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /installer/step2.php: -------------------------------------------------------------------------------- 1 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | Installer 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 58 | 59 | 60 | 61 | 62 | 63 |


64 |
65 | 66 |

SEO

67 | 68 | 69 | 70 | 71 | 72 | 73 |
74 |

75 |
76 |
77 | 78 | 79 | 88 | 89 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /installer/step3.php: -------------------------------------------------------------------------------- 1 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | Installer 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 52 | 53 | 54 | 55 | 56 | 57 |


58 |
59 | 60 |

Website

61 | 62 | 63 | 64 | 65 |
66 |

67 |
68 |
69 | 70 | 71 | 80 | 81 | 82 | 83 | 84 | -------------------------------------------------------------------------------- /installer/step4.php: -------------------------------------------------------------------------------- 1 | connect_error) { 25 | die("Connection failed: " . $db->connect_error); 26 | } else { 27 | 28 | file_put_contents("../src/database.php", $database); 29 | 30 | $sql = file_get_contents("../src/database.sql"); 31 | $db->multi_query($sql); 32 | $db->close(); 33 | 34 | unlink("../src/database.sql"); 35 | 36 | header("Location: done.php"); 37 | } 38 | 39 | } 40 | 41 | ?> 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | Installer 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 65 | 66 | 67 | 68 | 69 | 70 |


71 |
72 | 73 |

Database

74 | 75 | 76 | 77 | 78 | 79 | 80 |
81 |

connect_error) { echo "Error: " . $db->connect_error; } ?>

82 |
83 |
84 | 85 | 86 | 95 | 96 | 97 | 98 | 99 | -------------------------------------------------------------------------------- /login/.htaccess: -------------------------------------------------------------------------------- 1 | RewriteEngine On 2 | RewriteCond %{REQUEST_FILENAME} !-f 3 | RewriteRule ^([^\.]+)$ $1.php [NC,L] -------------------------------------------------------------------------------- /login/index.php: -------------------------------------------------------------------------------- 1 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | <?php echo SERVICE_NAME ?> | login 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 72 | 73 | 74 | 75 | 76 | 77 |


78 |
79 |

Login

80 | 81 | 82 | 83 | 84 |
85 |

86 |
87 |
88 | 97 | 100 | 101 | 102 | 103 | 104 | -------------------------------------------------------------------------------- /register/.htaccess: -------------------------------------------------------------------------------- 1 | RewriteEngine On 2 | RewriteCond %{REQUEST_FILENAME} !-f 3 | RewriteRule ^([^\.]+)$ $1.php [NC,L] -------------------------------------------------------------------------------- /register/index.php: -------------------------------------------------------------------------------- 1 | 0) { 67 | 68 | $error = "Invite is already assigned to another Account."; 69 | } else { 70 | $regQuery = "SELECT * FROM `invites` WHERE `inviteCode`='$key';"; 71 | $regReq = mysqli_query($db, $regQuery); 72 | $regResult = mysqli_fetch_assoc($regReq); 73 | $inviter = $regResult['inviteAuthor']; 74 | if ($regResult['inviteCode'] == $key) { 75 | $delquery = "DELETE FROM `invites` WHERE `inviteCode` = '$key';"; 76 | mysqli_query($db, $delquery); 77 | $ranPass = generateRandomInt(16); 78 | date_default_timezone_set('Europe/Berlin'); 79 | $date = date("F d, Y h:i:s A"); 80 | if (count($errors) == 0) { 81 | if (!file_exists('../uploads/' . $uuid)) { 82 | mkdir('../uploads/' . $uuid, 0777, true); 83 | } 84 | $hashed_password = password_hash($password, PASSWORD_DEFAULT); 85 | $query = "INSERT INTO users (id, uuid, username, password, banned, invite, secret, embedcolor, embedauthor, embedtitle, embeddesc, reg_date, use_embed, use_customdomain, self_destruct_upload, filename_type, url_type, uploads, upload_domain, discord_username, discord_id, inviter, last_uploaded, upload_limit, upload_size_limit, upload_logo, upload_logo_toggle) VALUES (NULL, '$uuid', '$username', '$hashed_password', 'false', '$invite', '$ranPass', '%embed_color%', '%service_name%', '%filename (%filesize)', 'Uploaded by %username at %date', '$date', 'true', 'false', 'false', 'false', 'short', 'short', 0, '%domain%', 'user#0000', '$inviter', '$date', '500 MB', '32 MB', 'https://%domain%/assets/images/icon.png', 'false');"; 86 | mysqli_query($db, $query); 87 | header('location: ../login/'); 88 | } 89 | } else { 90 | $error = "Invite is not valid."; 91 | } 92 | } 93 | } 94 | 95 | if (isset($_GET["invite"])) { 96 | $invitecode = $_GET["invite"]; 97 | $invite = "SELECT * FROM `invites` WHERE `inviteCode`='$invitecode'"; 98 | $result = mysqli_query($db, $invite); 99 | $row = mysqli_fetch_assoc($result); 100 | if (mysqli_num_rows($result) > 0) { 101 | $_SESSION["inviteCode"] = $invitecode; 102 | $giftAuthor = $row["inviteAuthor"]; 103 | echo " 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 | "; 113 | } else { 114 | die("This invite does not exist!"); 115 | } 116 | } 117 | 118 | ?> 119 | 120 | 121 | 122 | 123 | 124 | 125 | <?php echo SERVICE_NAME ?> | register 126 | 127 | 128 | 129 | 130 | 131 | 132 | 133 | 134 | 135 | 136 | 137 | 138 | 139 | 144 | 145 | 146 | 147 | 148 | 149 |


150 |
151 |

Register

152 | 153 | 154 | 155 | " required> 156 | 157 | 158 |
159 |

160 |
161 |
162 | 163 | 164 | 173 | 174 | 175 | 176 | 177 | -------------------------------------------------------------------------------- /src/config.php: -------------------------------------------------------------------------------- 1 | connect_error) { 11 | die("Connection failed: " . $db->connect_error); 12 | } 13 | 14 | $mysqli = mysqli_connect($dbHost, $dbUser, $dbPass, $dbName); 15 | -------------------------------------------------------------------------------- /src/database.sql: -------------------------------------------------------------------------------- 1 | SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; 2 | SET AUTOCOMMIT = 0; 3 | START TRANSACTION; 4 | SET time_zone = "+00:00"; 5 | 6 | CREATE TABLE `domains` ( 7 | `name` varchar(255) COLLATE utf8_bin NOT NULL, 8 | `dateAdded` timestamp(6) NOT NULL DEFAULT current_timestamp(6), 9 | `id` int(32) NOT NULL 10 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; 11 | 12 | CREATE TABLE `embeds` ( 13 | `id` int(32) NOT NULL, 14 | `userid` varchar(32) NOT NULL, 15 | `embed_title` varchar(128) NOT NULL, 16 | `embed_description` varchar(128) NOT NULL, 17 | `embed_color` varchar(128) NOT NULL 18 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; 19 | 20 | CREATE TABLE `invites` ( 21 | `id` int(11) NOT NULL, 22 | `inviteCode` varchar(2048) NOT NULL, 23 | `inviteAuthor` varchar(64) NOT NULL DEFAULT 'System' 24 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8; 25 | 26 | INSERT INTO `invites` (`id`, `inviteCode`, `inviteAuthor`) VALUES 27 | (8054, 'ez68Ur8tt2-6iR3XE4sDG-oaA7Y62Lqe-UcnpD8BxuR', 'Setup invite'); 28 | 29 | CREATE TABLE `pastes` ( 30 | `id` int(32) NOT NULL, 31 | `title` varchar(128) NOT NULL, 32 | `text` varchar(4096) NOT NULL, 33 | `language` varchar(32) NOT NULL, 34 | `views` int(32) NOT NULL DEFAULT 0, 35 | `author` varchar(64) NOT NULL, 36 | `random_id` varchar(32) NOT NULL 37 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; 38 | 39 | 40 | 41 | CREATE TABLE `toggles` ( 42 | `maintenance` varchar(32) NOT NULL DEFAULT 'false', 43 | `allow_uploads` varchar(32) NOT NULL DEFAULT 'false', 44 | `announcement` varchar(2048) NOT NULL, 45 | `id` int(11) NOT NULL 46 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; 47 | 48 | INSERT INTO `toggles` (`maintenance`, `allow_uploads`, `announcement`, `id`) VALUES 49 | ('false', 'true', 'Today is a beautyfull day ', 1); 50 | 51 | CREATE TABLE `users` ( 52 | `id` int(11) NOT NULL, 53 | `uuid` varchar(128) NOT NULL DEFAULT '00000000-0000-0000-0000-000000000000', 54 | `username` varchar(100) NOT NULL, 55 | `password` varchar(100) NOT NULL, 56 | `admin` int(1) NOT NULL DEFAULT 0, 57 | `banned` varchar(32) NOT NULL DEFAULT 'false', 58 | `invite` varchar(100) NOT NULL, 59 | `secret` varchar(128) NOT NULL, 60 | `embedcolor` varchar(128) NOT NULL DEFAULT '#fff', 61 | `embedauthor` varchar(128) DEFAULT '%username', 62 | `embedtitle` varchar(1028) NOT NULL DEFAULT '%filename (%filesize)', 63 | `embeddesc` varchar(1028) NOT NULL DEFAULT 'Uploaded at %date by %username', 64 | `reg_date` varchar(64) NOT NULL DEFAULT '00/00/0000 00:00:00', 65 | `use_embed` varchar(32) NOT NULL DEFAULT 'true', 66 | `use_customdomain` varchar(32) NOT NULL DEFAULT 'false', 67 | `use_invisible_url` varchar(32) NOT NULL DEFAULT 'false', 68 | `use_emoji_url` varchar(32) NOT NULL DEFAULT 'false', 69 | `use_sus_url` varchar(32) NOT NULL DEFAULT 'false', 70 | `use_2fa` varchar(32) NOT NULL DEFAULT 'false', 71 | `self_destruct_upload` varchar(32) NOT NULL DEFAULT 'false', 72 | `filename_type` varchar(32) NOT NULL DEFAULT 'short', 73 | `url_type` varchar(32) NOT NULL DEFAULT 'short', 74 | `uploads` int(32) NOT NULL DEFAULT 0, 75 | `upload_domain` varchar(256) NOT NULL DEFAULT '%domain', 76 | `subdomain` varchar(255) DEFAULT NULL, 77 | `domain` varchar(255) NOT NULL DEFAULT '%domain', 78 | `discord_username` varchar(128) NOT NULL DEFAULT 'user#0000', 79 | `discord_id` varchar(64) NOT NULL DEFAULT '000000000000000000', 80 | `inviter` varchar(64) NOT NULL DEFAULT 'System', 81 | `last_uploaded` varchar(128) NOT NULL DEFAULT 'Couldn''t find Date', 82 | `upload_limit` varchar(32) NOT NULL DEFAULT '500 MB', 83 | `upload_size_limit` varchar(32) NOT NULL DEFAULT '32 MB', 84 | `upload_logo` varchar(512) NOT NULL, 85 | `upload_logo_toggle` varchar(32) NOT NULL DEFAULT 'false' 86 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4; 87 | 88 | 89 | CREATE TABLE `uploads` ( 90 | `id` int(32) NOT NULL, 91 | `userid` int(32) NOT NULL, 92 | `username` varchar(128) CHARACTER SET utf8mb4 NOT NULL DEFAULT 'Not Availible', 93 | `filename` varchar(64) CHARACTER SET utf8mb4 NOT NULL, 94 | `hash_filename` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_bin NOT NULL, 95 | `original_filename` varchar(128) CHARACTER SET utf8mb4 NOT NULL DEFAULT 'Not Defined', 96 | `filesize` varchar(128) CHARACTER SET utf8mb4 NOT NULL DEFAULT '0.00 B', 97 | `delete_secret` varchar(16) CHARACTER SET utf8mb4 NOT NULL DEFAULT '0000000000000000', 98 | `self_destruct_upload` varchar(32) CHARACTER SET utf8mb4 NOT NULL DEFAULT 'false', 99 | `embed_color` varchar(7) CHARACTER SET utf8mb4 NOT NULL DEFAULT '#fff', 100 | `embed_author` varchar(128) CHARACTER SET utf8mb4 NOT NULL DEFAULT '%username', 101 | `embed_title` varchar(1028) CHARACTER SET utf8mb4 DEFAULT '%filename (%filesize)', 102 | `embed_desc` varchar(1028) CHARACTER SET utf8mb4 NOT NULL DEFAULT 'File Host', 103 | `role` varchar(32) CHARACTER SET utf8mb4 NOT NULL DEFAULT 'User', 104 | `uploaded_at` varchar(128) CHARACTER SET utf8mb4 NOT NULL DEFAULT '0000/00/00 00:00:00', 105 | `ip` varchar(32) CHARACTER SET utf8mb4 NOT NULL DEFAULT '0.0.0.0', 106 | `views` int(32) NOT NULL DEFAULT 1 107 | ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin; 108 | 109 | ALTER TABLE `embeds` 110 | ADD PRIMARY KEY (`id`); 111 | 112 | ALTER TABLE `invites` 113 | ADD PRIMARY KEY (`id`); 114 | 115 | ALTER TABLE `pastes` 116 | ADD PRIMARY KEY (`id`); 117 | 118 | ALTER TABLE `toggles` 119 | ADD PRIMARY KEY (`id`); 120 | 121 | ALTER TABLE `uploads` 122 | ADD PRIMARY KEY (`id`,`userid`); 123 | 124 | ALTER TABLE `users` 125 | ADD PRIMARY KEY (`id`); 126 | 127 | ALTER TABLE `embeds` 128 | MODIFY `id` int(32) NOT NULL AUTO_INCREMENT; 129 | 130 | ALTER TABLE `invites` 131 | MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8055; 132 | 133 | ALTER TABLE `pastes` 134 | MODIFY `id` int(32) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=76; 135 | 136 | ALTER TABLE `toggles` 137 | MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=2; 138 | 139 | ALTER TABLE `uploads` 140 | MODIFY `id` int(32) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=1695; 141 | 142 | ALTER TABLE `users` 143 | MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=96; 144 | COMMIT; 145 | 146 | -------------------------------------------------------------------------------- /src/functions.php: -------------------------------------------------------------------------------- 1 | getSize(); 143 | } 144 | } 145 | return $bytestotal; 146 | } 147 | 148 | function delete_files($target) 149 | { 150 | if (is_dir($target)) { 151 | $files = glob($target . '*', GLOB_MARK); 152 | 153 | foreach ($files as $file) { 154 | delete_files($file); 155 | } 156 | 157 | rmdir($target); 158 | } elseif (is_file($target)) { 159 | unlink($target); 160 | } 161 | } 162 | -------------------------------------------------------------------------------- /upload.php: -------------------------------------------------------------------------------- 1 |