Merge branch 'master' into blockbypass-test

merge-requests/208/head
fatchan 4 years ago
commit 746d04c296
  1. 2
      configs/nginx.example
  2. 2
      configs/nginx_no_https.example
  3. 2
      db/ratelimits.js
  4. 4
      gulp/res/css/style.css
  5. 4
      gulp/res/js/quote.js
  6. 4
      gulp/res/js/time.js
  7. 7
      helpers/paramconverter.js
  8. 10
      helpers/tasks.js
  9. 4
      models/forms/makepost.js
  10. 8
      models/pages/modlog.js
  11. 134
      package-lock.json
  12. 3
      views/mixins/post.pug

@ -110,7 +110,7 @@ server {
}
# Files (image, video, audio, other)
location ~* \.(png|jpg|jpeg|gif|mp4|webm|mov|svg|mp3|ogg|wav|opus)$ {
location ~* \.(png|jpg|jpeg|gif|apng|webp|jfif|pjpeg|mkv|mp4|webm|mov|svg|mp3|ogg|wav|opus)$ {
access_log off;
expires max;
root /path/to/jschan/static;

@ -110,7 +110,7 @@ server {
}
# Files (image, video, audio, other)
location ~* \.(png|jpg|jpeg|gif|mp4|webm|mov|svg|mp3|ogg|wav|opus)$ {
location ~* \.(png|jpg|jpeg|gif|apng|webp|pjpeg|jfif|mkv|mp4|webm|mov|svg|mp3|ogg|wav|opus)$ {
access_log off;
expires max;
root /path/to/jschan/static;

@ -14,7 +14,7 @@ module.exports = {
incrmentQuota: (ip, suffix, amount) => {
return db.findOneAndUpdate(
{
'_id': `${ip}-suffix`
'_id': `${ip}-${suffix}`
},
{
'$inc': {

@ -176,7 +176,7 @@ pre {
margin-bottom: 5px;
}
a, a:visited, a .post-name {
a, a:visited, a.post-name {
text-decoration: underline;
color: var(--link-color);
}
@ -350,7 +350,7 @@ p {
color: var(--greentext-color);
}
a .post-name:hover, a:hover {
a:hover {
color: var(--link-hover)!important;
}

@ -35,13 +35,11 @@ window.addEventListener('DOMContentLoaded', (event) => {
}
const quote = function(e) {
e.preventDefault();
const quoteNum = this.textContent.replace('[Reply]', '').split(' ')[0].trim();
if (isThread) {
if (isThread && !e.ctrlKey) {
addQuote(quoteNum);
} else {
setLocalStorage('clickedQuote', quoteNum);
window.location = this.firstChild.href.replace(/#postform$/, '#'+quoteNum);
}
};

@ -52,11 +52,11 @@ const relativeTimeString = (date) => {
}
const changeDateFormat = (date) => {
const options = { hour12: !hour24 };
const options = { hourCycle: hour24 ? 'h23' : 'h12' };
if (!localTime) {
options.timeZone = SERVER_TIMEZONE;
}
const dateString = new Date(date.dateTime).toLocaleString(0, options);
const dateString = new Date(date.dateTime).toLocaleString('en-US', options);
if (relativeTime) {
date.innerText = relativeTimeString(date.dateTime);
date.title = dateString;

@ -104,10 +104,11 @@ module.exports = (req, res, next) => {
}
//moglog date
if (req.params.date) {
const dateString = req.params.date.replace(/-/g, '/');
const date = new Date(dateString);
let [ month, day, year ] = req.params.date.split('-');
month = month-1;
const date = new Date(Date.UTC(year, month, day, 0, 0, 0, 0));
if (date !== 'Invalid Date') {
res.locals.date = date;
res.locals.date = { month, day, year, date };
}
}

@ -136,10 +136,12 @@ module.exports = {
buildModLog: async (options) => {
if (!options.startDate || !options.endDate) {
options.startDate = new Date(); //this is being built by action handler so will always be current date
options.endDate = new Date(options.startDate.getTime());
options.startDate.setHours(0,0,0,0);
options.endDate.setHours(23,59,59,999);
const d = new Date();
const month = d.getUTCMonth()
, day = d.getUTCDate()
, year = d.getUTCFullYear();
options.startDate = new Date(Date.UTC(year, month, day, 0, 0, 0, 0));
options.endDate = new Date(Date.UTC(year, month, day, 23, 59, 59, 999));
}
const day = ('0'+options.startDate.getDate()).slice(-2);
const month = ('0'+(options.startDate.getMonth()+1)).slice(-2);

@ -104,11 +104,11 @@ module.exports = async (req, res, next) => {
}
//global filters
if (globalSettings && globalSettings.filters.length > 0 && globalSettings.filterMode > 0) {
hitGlobalFilter = globalSettings.filters.some(filter => { return allContents.includes(filter) });
hitGlobalFilter = globalSettings.filters.some(filter => { return allContents.includes(filter.toLowerCase()) });
}
//board-specific filters
if (!hitGlobalFilter && res.locals.permLevel >= 4 && filterMode > 0 && filters && filters.length > 0) {
hitLocalFilter = filters.some(filter => { return allContents.includes(filter) });
hitLocalFilter = filters.some(filter => { return allContents.includes(filter.toLowerCase()) });
}
if (hitGlobalFilter || hitLocalFilter) {
await deleteTempFiles(req).catch(e => console.error);

@ -9,10 +9,10 @@ module.exports = async (req, res, next) => {
return next();
}
const startDate = new Date(res.locals.date);
const endDate = new Date(startDate.valueOf());
startDate.setHours(0,0,0,0);
endDate.setHours(23,59,59,999);
const startDate = res.locals.date.date;
const { year, month, day } = res.locals.date;
const endDate = new Date(Date.UTC(year, month, day, 23, 59, 59, 999));
let html;
try {
const logs = await Modlogs.findBetweenDate(res.locals.board, startDate, endDate);

134
package-lock.json generated

@ -1086,20 +1086,20 @@
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A=="
},
"bull": {
"version": "3.12.1",
"resolved": "https://registry.npmjs.org/bull/-/bull-3.12.1.tgz",
"integrity": "sha512-X3bSP7gTqPXLYVSyUtQuTOqZuU0GwVbV304Et84Z8bxYP60R1VD3FUOLsESVRA9LIUEOWVH3hE8MFqlszmO0Gw==",
"version": "3.13.0",
"resolved": "https://registry.npmjs.org/bull/-/bull-3.13.0.tgz",
"integrity": "sha512-nP8ICMNHGYDNt6cgPqBPm90n57xA+/Om2wI2EGEOIJtWutjrYt8JAWiiFYjZKrly9UkKlrfG9qgOCwFFdS5xaw==",
"requires": {
"cron-parser": "^2.13.0",
"debuglog": "^1.0.0",
"get-port": "^5.0.0",
"get-port": "^5.1.1",
"ioredis": "^4.14.1",
"lodash": "^4.17.15",
"p-timeout": "^3.1.0",
"promise.prototype.finally": "^3.1.1",
"p-timeout": "^3.2.0",
"promise.prototype.finally": "^3.1.2",
"semver": "^6.3.0",
"util.promisify": "^1.0.0",
"uuid": "^3.3.3"
"util.promisify": "^1.0.1",
"uuid": "^3.4.0"
},
"dependencies": {
"semver": {
@ -1108,9 +1108,9 @@
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
},
"uuid": {
"version": "3.3.3",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz",
"integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ=="
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
"integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
}
}
},
@ -2180,26 +2180,35 @@
}
},
"es-abstract": {
"version": "1.16.2",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.16.2.tgz",
"integrity": "sha512-jYo/J8XU2emLXl3OLwfwtuFfuF2w6DYPs+xy9ZfVyPkDcrauu6LYrw/q2TyCtrbc/KUdCiC5e9UajRhgNkVopA==",
"version": "1.17.4",
"resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.4.tgz",
"integrity": "sha512-Ae3um/gb8F0mui/jPL+QiqmglkUsaQf7FwBEHYIFkztkneosu9imhqHpBzQ3h1vit8t5iQ74t6PEVvphBZiuiQ==",
"requires": {
"es-to-primitive": "^1.2.1",
"function-bind": "^1.1.1",
"has": "^1.0.3",
"has-symbols": "^1.0.1",
"is-callable": "^1.1.4",
"is-regex": "^1.0.4",
"is-callable": "^1.1.5",
"is-regex": "^1.0.5",
"object-inspect": "^1.7.0",
"object-keys": "^1.1.1",
"string.prototype.trimleft": "^2.1.0",
"string.prototype.trimright": "^2.1.0"
"object.assign": "^4.1.0",
"string.prototype.trimleft": "^2.1.1",
"string.prototype.trimright": "^2.1.1"
},
"dependencies": {
"has-symbols": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
"integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="
},
"is-regex": {
"version": "1.0.5",
"resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
"integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
"requires": {
"has": "^1.0.3"
}
}
}
},
@ -3421,12 +3430,9 @@
"integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
},
"get-port": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/get-port/-/get-port-5.0.0.tgz",
"integrity": "sha512-imzMU0FjsZqNa6BqOjbbW6w5BivHIuQKopjpPqcnx0AVHJQKCxK1O+Ab3OrVXhrekqfVMjwA9ZYu062R+KcIsQ==",
"requires": {
"type-fest": "^0.3.0"
}
"version": "5.1.1",
"resolved": "https://registry.npmjs.org/get-port/-/get-port-5.1.1.tgz",
"integrity": "sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ=="
},
"get-uri": {
"version": "2.0.4",
@ -4197,9 +4203,9 @@
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
},
"is-callable": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
"integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA=="
"version": "1.1.5",
"resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.5.tgz",
"integrity": "sha512-ESKv5sMCJB2jnHTWZ3O5itG+O128Hsus4K4Qh1h2/cgn2vbgnLSVqfV46AeJA9D5EeeLa9w81KUXMtn34zhX+Q=="
},
"is-data-descriptor": {
"version": "0.1.4",
@ -4210,9 +4216,9 @@
}
},
"is-date-object": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
"integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY="
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz",
"integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g=="
},
"is-descriptor": {
"version": "0.1.6",
@ -4274,11 +4280,11 @@
}
},
"is-nan": {
"version": "1.2.1",
"resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.2.1.tgz",
"integrity": "sha1-n69ltvttskt/XAYoR16nH5iEAeI=",
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/is-nan/-/is-nan-1.3.0.tgz",
"integrity": "sha512-z7bbREymOqt2CCaZVly8aC4ML3Xhfi0ekuOnjO2L8vKdl+CttdVoGZQhd4adMFAsxQ5VeRVwORs4tU8RH+HFtQ==",
"requires": {
"define-properties": "^1.1.1"
"define-properties": "^1.1.3"
}
},
"is-negated-glob": {
@ -4931,9 +4937,9 @@
}
},
"mongodb": {
"version": "3.5.2",
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.5.2.tgz",
"integrity": "sha512-Lxt4th2tK2MxmkDBR5cMik+xEnkvhwg0BC5kGcHm9RBwaNEsrIryvV5istGXOHbnif5KslMpY1FbX6YbGJ/Trg==",
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.5.3.tgz",
"integrity": "sha512-II7P7A3XUdPiXRgcN96qIoRa1oesM6qLNZkzfPluNZjVkgQk3jnQwOT6/uDk4USRDTTLjNFw2vwfmbRGTA7msg==",
"requires": {
"bl": "^2.2.0",
"bson": "^1.1.1",
@ -5239,12 +5245,12 @@
}
},
"object.getownpropertydescriptors": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.0.3.tgz",
"integrity": "sha1-h1jIRvW0B62rDyNuCYbxSwUcqhY=",
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz",
"integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==",
"requires": {
"define-properties": "^1.1.2",
"es-abstract": "^1.5.1"
"define-properties": "^1.1.3",
"es-abstract": "^1.17.0-next.1"
}
},
"object.map": {
@ -5901,12 +5907,12 @@
}
},
"promise.prototype.finally": {
"version": "3.1.1",
"resolved": "https://registry.npmjs.org/promise.prototype.finally/-/promise.prototype.finally-3.1.1.tgz",
"integrity": "sha512-gnt8tThx0heJoI3Ms8a/JdkYBVhYP/wv+T7yQimR+kdOEJL21xTFbiJhMRqnSPcr54UVvMbsscDk2w+ivyaLPw==",
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/promise.prototype.finally/-/promise.prototype.finally-3.1.2.tgz",
"integrity": "sha512-A2HuJWl2opDH0EafgdjwEw7HysI8ff/n4lW4QEVBCUXFk9QeGecBWv0Deph0UmLe3tTNYegz8MOjsVuE6SMoJA==",
"requires": {
"define-properties": "^1.1.3",
"es-abstract": "^1.13.0",
"es-abstract": "^1.17.0-next.0",
"function-bind": "^1.1.1"
}
},
@ -7129,18 +7135,18 @@
}
},
"string.prototype.trimleft": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz",
"integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==",
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.1.tgz",
"integrity": "sha512-iu2AGd3PuP5Rp7x2kEZCrB2Nf41ehzh+goo8TV7z8/XDBbsvc6HQIlUl9RjkZ4oyrW1XM5UwlGl1oVEaDjg6Ag==",
"requires": {
"define-properties": "^1.1.3",
"function-bind": "^1.1.1"
}
},
"string.prototype.trimright": {
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz",
"integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==",
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.1.tgz",
"integrity": "sha512-qFvWL3/+QIgZXVmJBfpHmxLB7xsUXz6HsUmP8+5dRaC3Q7oKUv9Vo6aMCRZC1smrtyECFsIT30PqBJ1gTjAs+g==",
"requires": {
"define-properties": "^1.1.3",
"function-bind": "^1.1.1"
@ -7410,11 +7416,6 @@
"prelude-ls": "~1.1.2"
}
},
"type-fest": {
"version": "0.3.1",
"resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz",
"integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ=="
},
"type-is": {
"version": "1.6.18",
"resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz",
@ -7615,12 +7616,21 @@
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
},
"util.promisify": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.0.tgz",
"integrity": "sha512-i+6qA2MPhvoKLuxnJNpXAGhg7HphQOSUq2LKMZD0m15EiskXUkMvKdF4Uui0WYeCUGea+o2cw/ZuwehtfsrNkA==",
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz",
"integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==",
"requires": {
"define-properties": "^1.1.2",
"object.getownpropertydescriptors": "^2.0.3"
"define-properties": "^1.1.3",
"es-abstract": "^1.17.2",
"has-symbols": "^1.0.1",
"object.getownpropertydescriptors": "^2.1.0"
},
"dependencies": {
"has-symbols": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
"integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="
}
}
},
"utils-merge": {

@ -20,8 +20,7 @@ mixin post(post, truncate, manage=false, globalmanage=false, ban=false)
span.post-subject #{post.subject}
|
if post.email
a(href=`mailto:${post.email}`)
span.post-name #{post.name}
a.post-name(href=`mailto:${post.email}`) #{post.name}
else
span.post-name #{post.name}
|

Loading…
Cancel
Save