Merge remote-tracking branch 'origin/master'

This commit is contained in:
Pitu 2017-10-03 17:56:44 -03:00
commit d1260563d4
7 changed files with 26 additions and 12 deletions

View File

@ -1,4 +1,7 @@
![loli-safe](https://a.safe.moe/jcutlz.png) ![loli-safe](https://a.safe.moe/jcutlz.png)
[![GitHub license](https://img.shields.io/badge/license-MIT-blue.svg?style=flat-square)](https://raw.githubusercontent.com/kanadeko/Kuro/master/LICENSE)
[![Chat / Support](https://img.shields.io/badge/Chat%20%2F%20Support-discord-7289DA.svg?style=flat-square)](https://discord.gg/5g6vgwn)
# lolisafe, a small safe worth protecting. # lolisafe, a small safe worth protecting.
## Sites using loli-safe ## Sites using loli-safe

View File

@ -155,7 +155,7 @@ albumsController.get = function(req, res, next) {
file.file = basedomain + '/' + file.name file.file = basedomain + '/' + file.name
let ext = path.extname(file.name).toLowerCase() let ext = path.extname(file.name).toLowerCase()
if (utils.extensions.includes(ext)) { if (utils.imageExtensions.includes(ext) || utils.videoExtensions.includes(ext)) {
file.thumb = basedomain + '/thumbs/' + file.name.slice(0, -ext.length) + '.png' file.thumb = basedomain + '/thumbs/' + file.name.slice(0, -ext.length) + '.png'
utils.generateThumbs(file) utils.generateThumbs(file)
} }

View File

@ -187,7 +187,7 @@ uploadsController.processFilesForDisplay = function(req, res, files, existingFil
for (let file of files) { for (let file of files) {
let ext = path.extname(file.name).toLowerCase() let ext = path.extname(file.name).toLowerCase()
if (utils.extensions.includes(ext)) { if (utils.imageExtensions.includes(ext) || utils.videoExtensions.includes(ext)) {
file.thumb = basedomain + '/thumbs/' + file.name.slice(0, -ext.length) + '.png' file.thumb = basedomain + '/thumbs/' + file.name.slice(0, -ext.length) + '.png'
utils.generateThumbs(file) utils.generateThumbs(file)
} }
@ -232,17 +232,26 @@ uploadsController.delete = function(req, res) {
} }
uploadsController.deleteFile = function(file) { uploadsController.deleteFile = function(file) {
const ext = path.extname(file).toLowerCase()
return new Promise(function(resolve, reject) { return new Promise(function(resolve, reject) {
fs.stat(path.join(__dirname, '..', config.uploads.folder, file), function(err, stats) { fs.stat(path.join(__dirname, '..', config.uploads.folder, file), function(err, stats) {
if (err) { return reject(err) } if (err) { return reject(err) }
fs.unlink(path.join(__dirname, '..', config.uploads.folder, file), function(err) { fs.unlink(path.join(__dirname, '..', config.uploads.folder, file), function(err) {
if (err) { return reject(err) } if (err) { return reject(err) }
return resolve() if(!utils.imageExtensions.includes(ext) && !utils.videoExtensions.includes(ext)) {
return resolve()
}
file = file.substr(0, file.lastIndexOf(".")) + ".png"
fs.stat(path.join(__dirname, '..', config.uploads.folder, "thumbs/", file), function(err, stats) {
if (err) { return reject(err) }
fs.unlink(path.join(__dirname, '..', config.uploads.folder, "thumbs/", file), function(err) {
if (err) { return reject(err) }
return resolve()
})
})
}) })
}) })
}) })
} }
uploadsController.list = function(req, res) { uploadsController.list = function(req, res) {
@ -300,7 +309,7 @@ uploadsController.list = function(req, res) {
userids.push(file.userid) userids.push(file.userid)
let ext = path.extname(file.name).toLowerCase() let ext = path.extname(file.name).toLowerCase()
if (utils.extensions.includes(ext)) { if (utils.imageExtensions.includes(ext) || utils.videoExtensions.includes(ext)) {
file.thumb = basedomain + '/thumbs/' + file.name.slice(0, -ext.length) + '.png' file.thumb = basedomain + '/thumbs/' + file.name.slice(0, -ext.length) + '.png'
utils.generateThumbs(file) utils.generateThumbs(file)
} }

View File

@ -5,7 +5,8 @@ const gm = require('gm')
const ffmpeg = require('fluent-ffmpeg') const ffmpeg = require('fluent-ffmpeg')
const utilsController = {} const utilsController = {}
utilsController.extensions = ['.jpg', '.jpeg', '.bmp', '.gif', '.png', '.webm', '.mp4'] utilsController.imageExtensions = ['.jpg', '.jpeg', '.bmp', '.gif', '.png']
utilsController.videoExtensions = ['.webm', '.mp4', '.wmv', '.avi', '.mov']
utilsController.getPrettyDate = function(date) { utilsController.getPrettyDate = function(date) {
return date.getFullYear() + '-' return date.getFullYear() + '-'
@ -26,7 +27,7 @@ utilsController.generateThumbs = function(file, basedomain) {
let thumbname = path.join(__dirname, '..', config.uploads.folder, 'thumbs', file.name.slice(0, -ext.length) + '.png') let thumbname = path.join(__dirname, '..', config.uploads.folder, 'thumbs', file.name.slice(0, -ext.length) + '.png')
fs.access(thumbname, (err) => { fs.access(thumbname, (err) => {
if (err && err.code === 'ENOENT') { if (err && err.code === 'ENOENT') {
if (ext === '.webm' || ext === '.mp4') { if (utilsController.videoExtensions.includes(ext)) {
ffmpeg(path.join(__dirname, '..', config.uploads.folder, file.name)) ffmpeg(path.join(__dirname, '..', config.uploads.folder, file.name))
.thumbnail({ .thumbnail({
timestamps: [0], timestamps: [0],

View File

@ -82,7 +82,7 @@
<h3 class="subtitle"><a href="/auth" id="loginLinkText"></a></h3> <h3 class="subtitle"><a href="/auth" id="loginLinkText"></a></h3>
<h3 id="links"> <h3 id="links">
<a href="https://github.com/kanadeko/loli-safe" target="_blank" class="is-danger">View on Github</a><span>|</span><a href="https://lolisafe.moe/sharex.txt">ShareX</a><span>|</span><a href="https://chrome.google.com/webstore/detail/loli-safe-uploader/enkkmplljfjppcdaancckgilmgoiofnj" target="_blank" class="is-danger">Chrome extension</a><span>|</span><a href="/faq" class="is-danger">FAQ</a><span>|</span><a href="/auth" target="_blank" class="is-danger">Dashboard</a> <a href="https://github.com/kanadeko/loli-safe" target="_blank" class="is-danger">View on GitHub</a><span>|</span><a href="https://lolisafe.moe/sharex.txt">ShareX</a><span>|</span><a href="https://chrome.google.com/webstore/detail/loli-safe-uploader/enkkmplljfjppcdaancckgilmgoiofnj" target="_blank" class="is-danger">Chrome extension</a><span>|</span><a href="/faq" class="is-danger">FAQ</a><span>|</span><a href="/auth" target="_blank" class="is-danger">Dashboard</a>
</h3> </h3>
</div> </div>

View File

@ -5,6 +5,7 @@ upload.token = localStorage.token;
upload.maxFileSize; upload.maxFileSize;
// add the album var to the upload so we can store the album id in there // add the album var to the upload so we can store the album id in there
upload.album; upload.album;
upload.myDropzone;
upload.checkIfPublic = function(){ upload.checkIfPublic = function(){
axios.get('/api/check') axios.get('/api/check')
@ -131,8 +132,8 @@ upload.prepareDropzone = function(){
'token': upload.token 'token': upload.token
}, },
init: function() { init: function() {
upload.myDropzone = this;
this.on('addedfile', function(file) { this.on('addedfile', function(file) {
myDropzone = this;
document.getElementById('uploads').style.display = 'block'; document.getElementById('uploads').style.display = 'block';
}); });
// add the selected albumid, if an album is selected, as a header // add the selected albumid, if an album is selected, as a header
@ -184,7 +185,7 @@ window.addEventListener('paste', function(event) {
var file = new File([blob], "pasted-image."+blob.type.match(/(?:[^\/]*\/)([^;]*)/)[1]); var file = new File([blob], "pasted-image."+blob.type.match(/(?:[^\/]*\/)([^;]*)/)[1]);
file.type = blob.type; file.type = blob.type;
console.log(file); console.log(file);
myDropzone.addFile(file); upload.myDropzone.addFile(file);
} }
} }
}); });

View File

@ -28,7 +28,7 @@ routes.get('/a/:identifier', (req, res, next) => {
file.file = basedomain + '/' + file.name file.file = basedomain + '/' + file.name
let ext = path.extname(file.name).toLowerCase() let ext = path.extname(file.name).toLowerCase()
if (utils.extensions.includes(ext)) { if (utils.imageExtensions.includes(ext) || utils.videoExtensions.includes(ext)) {
file.thumb = basedomain + '/thumbs/' + file.name.slice(0, -ext.length) + '.png' file.thumb = basedomain + '/thumbs/' + file.name.slice(0, -ext.length) + '.png'
/* /*