forked from oat/in-the-database-2
		
	okay
This commit is contained in:
		
							parent
							
								
									4cbe252852
								
							
						
					
					
						commit
						564d71c48f
					
				
					 7 changed files with 349 additions and 300 deletions
				
			
		
							
								
								
									
										
											BIN
										
									
								
								assets/icon.ico
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/icon.ico
									
										
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| After Width: | Height: | Size: 70 KiB | 
							
								
								
									
										605
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							
							
						
						
									
										605
									
								
								package-lock.json
									
										
									
										generated
									
									
									
								
							
										
											
												File diff suppressed because it is too large
												Load diff
											
										
									
								
							
							
								
								
									
										19
									
								
								package.json
									
										
									
									
									
								
							
							
						
						
									
										19
									
								
								package.json
									
										
									
									
									
								
							|  | @ -12,24 +12,25 @@ | |||
|   "license": "MIT", | ||||
|   "dependencies": { | ||||
|     "@types/express": "github:types/express", | ||||
|     "@types/mongoose": "^5.7.36", | ||||
|     "@types/mongoose": "^5.10.3", | ||||
|     "axios": "^0.20.0", | ||||
|     "connect-mongo": "^3.2.0", | ||||
|     "dotenv": "^8.2.0", | ||||
|     "express": "^4.17.1", | ||||
|     "express-fileupload": "^1.2.0", | ||||
|     "express-session": "^1.17.1", | ||||
|     "mongoose": "^5.10.2", | ||||
|     "mongoose": "^5.11.8", | ||||
|     "mongoose-int32": "^0.4.1", | ||||
|     "node-stream-zip": "^1.11.3", | ||||
|     "typescript": "^4.0.2", | ||||
|     "uuid": "^8.3.1", | ||||
|     "node-stream-zip": "^1.12.0", | ||||
|     "serve-favicon": "^2.5.0", | ||||
|     "typescript": "^4.1.3", | ||||
|     "uuid": "^8.3.2", | ||||
|     "winston": "^3.3.3" | ||||
|   }, | ||||
|   "devDependencies": { | ||||
|     "@types/express-session": "^1.17.0", | ||||
|     "@typescript-eslint/eslint-plugin": "^4.0.1", | ||||
|     "@typescript-eslint/parser": "^4.0.1", | ||||
|     "eslint": "^7.8.1" | ||||
|     "@types/express-session": "^1.17.3", | ||||
|     "@typescript-eslint/eslint-plugin": "^4.11.0", | ||||
|     "@typescript-eslint/parser": "^4.11.0", | ||||
|     "eslint": "^7.16.0" | ||||
|   } | ||||
| } | ||||
|  |  | |||
|  | @ -18,13 +18,18 @@ | |||
| 				const el = document.getElementById('doc-list'); | ||||
| 				for (const doc of data) { | ||||
| 					let p = document.createElement('p'); | ||||
| 					p.innerHTML = `${doc.artist} - ${doc.title} by ${doc.credit}\nuploaded by ${doc.uploader} ${doc.uploaderJSON.username}#${doc.uploaderJSON.discriminator}\n<a href="files/${doc.id}.zip">download</a>`; | ||||
| 					p.innerHTML = `<b>${doc.artist} - ${doc.title}</b> by ${doc.credit}\nuploaded by ${doc.uploaderJSON.username}#${doc.uploaderJSON.discriminator}\n<a href="files/${doc.id}.zip">download</a>`; | ||||
| 
 | ||||
| 					if (doc.editable) { | ||||
| 						p.innerHTML += ` <a href="../${doc.id}/edit">edit</a>` | ||||
| 					} | ||||
| 
 | ||||
| 					el.insertAdjacentElement('beforeend', p); | ||||
| 
 | ||||
| 					let charts = document.createElement('ul'); | ||||
| 					for (const chart of doc.charts) { | ||||
| 						let l = document.createElement('li'); | ||||
| 						l.innerText = `${chart.difficulty} ${chart.rating} - ${chart.name}\n` + | ||||
| 						l.innerHTML = `${chart.difficulty} ${chart.rating} - <b>${chart.name}</b><br>` + | ||||
| 							`${chart.steps} steps, ${chart.mines} mines, ${chart.jumps} jumps, ${chart.hands} hands, ${chart.holds} holds, ${chart.rolls} rolls` | ||||
| 						charts.insertAdjacentElement('beforeend', l); | ||||
| 					} | ||||
|  |  | |||
							
								
								
									
										12
									
								
								src/index.ts
									
										
									
									
									
								
							
							
						
						
									
										12
									
								
								src/index.ts
									
										
									
									
									
								
							|  | @ -4,6 +4,7 @@ import * as fs from 'fs'; | |||
| import * as winston from 'winston'; | ||||
| import * as fileUpload from 'express-fileupload'; | ||||
| import * as session from 'express-session'; | ||||
| import * as favicon from 'serve-favicon'; | ||||
| const MongoStore = require('connect-mongo')(session); | ||||
| 
 | ||||
| import * as format from './lib/format'; | ||||
|  | @ -54,6 +55,7 @@ db.then(() => { | |||
| 
 | ||||
| 	// @ts-ignore
 | ||||
| 	app.use(express.urlencoded({extended: true})); | ||||
| 	app.use(favicon('assets/icon.ico')); | ||||
| 	app.use(fileUpload({limits: { fileSize: 50 * 1024 * 1024 }})); | ||||
| 	app.use(express.static('public', {extensions:  ['html', 'htm']})); | ||||
| 	app.use(express.static('storage', {extensions:  ['zip']})); | ||||
|  | @ -78,12 +80,16 @@ db.then(() => { | |||
| 	upload.run(app); | ||||
| 	auth.run(app); | ||||
| 
 | ||||
| 	app.get('/api/list', async (req, res) => { // only for testing
 | ||||
| 	app.get('/api/list', async (req, res) => { | ||||
| 		const files = await File.find({}); | ||||
| 		 | ||||
| 
 | ||||
| 		const docs = []; | ||||
| 		for (const doc of files) { | ||||
| 			const d = doc.toJSON(); | ||||
| 			const d: any = doc.toJSON(); | ||||
| 
 | ||||
| 			d.editable = false; | ||||
| 			if (req.session) d.editable = req.session.uuid === d.uploader; | ||||
| 
 | ||||
| 			const user = await User.find({uuid: d.uploader}); | ||||
| 			if (user) { | ||||
| 				d.uploaderJSON = user[0].toJSON(); // this is built upon 20 layers of metajank and i despise it
 | ||||
|  |  | |||
|  | @ -53,7 +53,7 @@ export function parseSM(data: string) { | |||
| 				const map = {}; | ||||
| 
 | ||||
| 				for (const i in keys) { | ||||
| 					map[Number(keys[i])] = Number(values[i]); // afaik maps are only numbers?
 | ||||
| 					map[String(Number(keys[i])).replace('.', ',')] = Number(values[i]); // afaik maps are only numbers?
 | ||||
| 				} | ||||
| 
 | ||||
| 				value = map; | ||||
|  |  | |||
|  | @ -44,7 +44,7 @@ export function run(app) { | |||
| 
 | ||||
| 					let id = 0; | ||||
| 					for (const f of await File.find({})) { | ||||
| 						id = Math.max(f.id, id); | ||||
| 						id = Math.max(Number(f.id), id); | ||||
| 					} | ||||
| 					chart.id = id + 1; | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue