Commit Graph

1348 Commits

Author SHA1 Message Date
Bobby Wibowo
62a977542e
Switched to BLAKE3 for file hashing [MORE]
UPDATE YOUR CONFIG FILE IF YOU USE CHUNKED UPLOADS!
Read more about this at the end.

Added new dependency: blake3

Hashes will be created as the uploads are being written to disk.
With exception for chunked uploads!
For them specifically, their hashes will be created as they're being
rebuilt into a single file.
Should still be a lot better than the previous case where it had to
re-read the already written files.

To support that feature, added a new file
controllers/multerStorageController.js.
It's just a custom storage engine for Multer.

chunkSize option now allows setting max chunk size from config file.
Previously it was hardcoded to 95MB, but assuming you have paid
Cloudflare plans, you can actually have up to 500MB.

Also moved the option to be after maxSize and before urlMaxSize.
Made a lot more sense to me this way, as chunked uploads only work on
regular uploads.

Updated v1 version string and rebuilt client assets.
2020-05-29 02:52:58 +07:00
Bobby Wibowo
df11fb12ce
Fixed racing condition in initial dirs creation
Fixed #190
2020-05-28 23:10:56 +07:00
Bobby Wibowo
1431bd3d90
Removed TODO.md in favor of GitHub Projects
https://github.com/BobbyWibowo/lolisafe/projects/1
2020-05-28 10:04:20 +07:00
Bobby Wibowo
76b9afbf88
Updated Nginx sample configs
Fixed indents and added lines to configure timeouts, among other things.
2020-05-28 09:54:40 +07:00
Bobby Wibowo
58cbcdd1fe
Updated some Nunjucks files and home.js
Updated options in _globals.njk to NOT use camelCase.

Rephrased banned categories.

Added toggle option for banned categories into faq.njk.

Added FAQ message about Tor and/or VPNs being blocked.

Updated faq.njk and cookiepolicy.njk for updated option names.

Updated cookie settings for Cookie Consent in home.js.
Now it will only enable Secure cookie if on HTTPS protocol.
This should properly store the cookie in local installations.

Bumped v1 version string and rebuilt client assets.
2020-05-28 05:18:09 +07:00
Bobby Wibowo
c36a76e981
Updated thumbs.js 2020-05-28 04:23:26 +07:00
Bobby Wibowo
cc122f63b8
Updated lolisafe.js
https://blog.fiery.me/recent-disturbance-with-temporary-uploads
Fix for temporary uploads failing forever just due to errors not being
caugh.
2020-05-27 01:18:25 +07:00
Bobby Wibowo
feef65a165
Updated dependencies
systeminformation: 4.26.1 -> 4.26.4
eslint-plugin-compat: 3.6.0 -> 3.7.0
gulp-cli: 2.2.0 -> 2.2.1
2020-05-27 01:12:56 +07:00
Bobby Wibowo
c31a4ed358
Merge branch 'camjac251-patch-2' into safe.fiery.me 2020-05-27 01:09:44 +07:00
camjac251
1efa8c4ebc
more video extensions for thumbs and reorder
added additional extensions to the video list for more support in thumbnails on files (all are common filetypes so ffmpeg should support the various codecs needed)
Also reordered the image and video list alphabetically
2020-05-25 22:47:24 -05:00
Bobby Wibowo
56bc55f9ca
Updated package.json 2020-05-26 03:53:32 +07:00
Bobby Wibowo
36a41c9711
Added floating home button to auth page
Moved floating home button codes to views/_partial/floating-home.njk.

Added some variables support into some partial NJK files.

album.njk now uses partial versions for noscript codes.

A few other things.

Bumped v1 version string and rebuilt client assets.
2020-05-26 03:49:54 +07:00
Bobby Wibowo
4c2157e7d2
Updated style.css
Fixed .is-wrappable having "wrong" height when empty.
2020-05-26 03:07:52 +07:00
Bobby Wibowo
64ab8e20b2
Updated auth page, amont other things
"Login or register" subtitle and Register button will no longer be shown
if enableUserAccounts are disabled in config.

Updated auth.js to continue working even when register and/or login
buttons cannot be found.

Added .is-wrappable support for .button elements.
This makes the text inside the buttons "wrappable" to next lines.
Do note that this will cause the buttons to get taller when they do need
to wrap their texts.

Updated "Log in to upload" button in homepage uploader use the new
.is-wrappable class.
Their texts will also now be split into two lines.
Anonymous upload warning specifically will now instead say
"Log in or register".

Bumped v1 version string and rebuilt client assets.
2020-05-26 03:04:26 +07:00
Bobby Wibowo
5e54c07f94
Change /auth link to /dashboard if logged in
Updated v1 version string and rebuilt client assets
2020-05-26 02:46:09 +07:00
Bobby Wibowo
d666e278ec
Refactored "location" -> "window.location"
In client JS files, for readibility and consistency.

They'd work the same either way, but I'd think they'd be easier to
read and understand this way.
2020-05-26 02:39:28 +07:00
Bobby Wibowo
98b2f32ec5
Updated
Fixed browser's timezone offset not being sent with the proper header
name ("minOffset" -> "minoffset").

Server will now actually think client is on UTC timezone if "minoffset"
header is unset.

Stricter "all" header check for uploads list API endpoint.
It will now only accept the header if set to "1" (string).

Fixed server error when either date: or expiry: keys get parsed as
empty strings.

"minoffset" header when listing uploads will now only be sent if
date: or expiry: keys are properly used (i.e. match expected patterns).

Updated filters help message about wrapping with double quotes when
specifying both date and time (since there will be a space in between).

Filters input will now have some automatic clean ups other than trims.
- Replace all tabs with whitespaces.
- Remove whitespaces after "<key>:".

Bumped v1 version string and rebuilt client assets.
2020-05-24 08:28:54 +07:00
Bobby Wibowo
dab69e5882
Updated built-in error pages
I just noticed the old ones were loading font assets from my server,
but those fonts were already long gone.

On safe.fiery.me, I instead used my own builds of
BobbyWibowo/HttpErrorPages
so I never noticed the issues.

I only recently came to realize of this after realizing a bunch of
users getting temp-IP-banned from viewing error pages of other users of
this fork (since my server bans high amount of 404s).
2020-05-24 03:45:36 +07:00
Bobby Wibowo
559670bd83
Updated dependencies
Added SQLite's WAL files to .gitignore
2020-05-19 23:46:23 +07:00
Bobby Wibowo
93ee4dae05
Fixed expiry filter breaking with only 1 date 2020-05-17 23:43:08 +07:00
Bobby Wibowo
575a9353fa
Quick fix _globals.njk 2020-05-17 22:43:01 +07:00
Bobby Wibowo
3e41b3294c
Updated placeholder thumbnail
This one should fit better with light theme as well, not that the safe
have light them as of yet.

Also it's @2x (400x400) instead of the default 200x200.
That should theoretically make the text look smoother.
2020-05-17 05:23:03 +07:00
Bobby Wibowo
e495d3efd3
Added home icon to album public pages
Updated dashboard.js: Uppercase ZIP in
Statistics > Albums > Zip Generated.

Bumped v1 version string and rebuilt client assets.
2020-05-17 04:54:06 +07:00
Bobby Wibowo
5e91554a52
Updated faq.njk
Added a message linking to Cookie Policy in FAQ.

Added id attribute to all h1 elements in FAQ.
These allow URL fragments if needed.
2020-05-17 03:56:37 +07:00
Bobby Wibowo
86b51fe5f5
Added Cookie Consent, among other things
This adds Cookie Consent library at public/libs/cookieconsent.

Added views/cookiepolicy.njk.

Added a new config option cookiePolicy. Disabled by default.

Updated views/faq.njk to use variables wherever applicable.
The variables are initiated at views/_globals.njk.
The said file also contains variables used at views/cookiepolicy.njk.

Restored messages about Cloudflare to FAQ.
They will be shown only if config.cloudflare.purgeCache is enabled.

Statistics will now capitalize first letters of the keys instead.

Updated background color of SweetAlert modals.

Moved table styling from dashboard.css to style.css (global),
since table will also be used in Cookie Policy page.

Bumped v1 version string and rebuilt client assets.
2020-05-17 03:35:54 +07:00
Bobby Wibowo
23843aa826
Make yarn stash not exit with code 1
when there were no stashes
2020-05-17 00:53:35 +07:00
Bobby Wibowo
83a7459a01
Fixed filter button not having loading spinner
Also "fixed" some more Object.assign().
Not exactly fixed since they didn't really break, but they weren't
written in the way they were logically intended for.

Bumped v1 version string and rebuilt client assets.
2020-05-17 00:49:38 +07:00
Bobby Wibowo
8cd76a31f9
Added db keys as hover message (title attrib) in
table headers of uploads lists.
They will merely serve as reminders for those who want to use the sort
keys.

Fixed registration and token change dates displaying when unset.

Bumped v1 version string and rebuilt client assets.
2020-05-17 00:33:23 +07:00
Bobby Wibowo
9c56dd327a
Updated dependencies
systeminformation: 4.23.9 -> 4.26.1
eslint-plugin-compat: 3.5.1 -> 3.6.0

Renamed all .eslintrc.json to .eslintrc.js.

Removed unnecessary init for missing params in favor of default params.
Buble will take care of compiling that for old browsers.

Bumped ecmaVersion for client JS from 6 (2015) to 7 (2016).
Buble should support compiling ES2016 features as well.

Properly deny some actions when an online section is still loading.

Properly apply progress cursor on items/buttons that shouldn't be used
while an online section is still loading.

Bumped v1 version string and rebuilt client assets.
2020-05-17 00:11:10 +07:00
Bobby Wibowo
ebf0037df5
Disallow albumid keys on albums' uploads lists 2020-05-16 22:42:08 +07:00
Bobby Wibowo
51c5a81b18
!!! RUN "yarn migrate" !!!
Added "yarn migrate" as alias for "node ./database/migration.js".
Updated README.md about it.

Added a new column to users database: registration.
It will be used to store user's registration timestamp.
Registration date will be displayed in Dashboard's Manage Users.
Since this is a new column,
existing users will not have registration dates.

Last token change date will now be displayed in Dashboard as well.

<code> elements will now properly have relative font size.

User ID will now be displayed in Edit user dialog for reference purpose.

Bumped v1 version string and rebuilt client assets.
2020-05-16 22:32:32 +07:00
Bobby Wibowo
93c6031bb1
Accept orderby: as alternative for sort: 2020-05-16 22:07:15 +07:00
Bobby Wibowo
0fad346df6
Updated package.json 2020-05-16 21:51:08 +07:00
Bobby Wibowo
968fd74676
Updated
No longer initiate expired uploads check if
config.uploads.temporaryUploadsInterval is not set.

"yarn delete-expired" will now list names of the expired uploads too.
2020-05-16 21:45:14 +07:00
Bobby Wibowo
be7437d673
Bumped v2 version string
I updated fb_share.png in the 2nd previous commit
2020-05-09 15:02:33 +07:00
Bobby Wibowo
38b8109210
Added starting message to lolisafe.js
Most of the times, connecting to ClamAV takes a bit too long and causes
misunderstanding due to a long period of silence
Generally with PM2 logs, due to the lack of indicator
of a successful restart
2020-05-09 14:54:09 +07:00
Bobby Wibowo
7b676bb9fd
Added retina/2x home logo
Rebuilt client assets and bumped v1 version string
2020-05-09 14:40:44 +07:00
Bobby Wibowo
417adbde93
Fixed type-is and keyword exclusion logic 2020-05-03 04:51:22 +07:00
Bobby Wibowo
f189d86abc
Updated uploadController.js
Fixed filtering null albumid
2020-05-03 04:40:04 +07:00
Bobby Wibowo
3d11e6a0ba
Updated dashboard.js
Bumped v1 version string and rebuilt client assets
2020-05-03 04:37:12 +07:00
Bobby Wibowo
126cfe0e15
Added type-is filter keys (is:image and is:video)
Fixed text queries threshold being applied to moderators

Bumped v1 version string and rebuilt client assets
2020-05-03 04:32:45 +07:00
Bobby Wibowo
d201b03f59
Added filtering uploads by albumid
This works when listing all uploads as well, but Album column will only
be shown when albumid key is used in the filters.
I plan to someday add Manage Albums menu, which will use "View uploads"
buttons, just like the ones in Manage Users.
2020-05-03 03:30:50 +07:00
Bobby Wibowo
1980d536db
Initialize upload filters for regular users (WIP)
Updated ESLint's ECMA version to 9 (2018).
I'll need to use some lookbehind regex directives from now on.
It's supported since Node 10, which is the oldest version I'll support.

Refactored "can not" -> "cannot".

Filtering for regular users is still work in progress.
Some features aren't working as expected yet.
2020-05-03 02:39:24 +07:00
Bobby Wibowo
0eb425e216
Fixed next page btn clickable w/ no uploads/users 2020-05-02 22:47:04 +07:00
Bobby Wibowo
41d52d947b
Added support for negative page num
e.g. -1 means last page, -2 means the 2nd from last, and so on
will only accept up to -N where N is the amount of pages
anything lower will alwasy return the first page
this works for both list uploads and list users APIs

fixed some Object.assign in dashboard.js

added bottom control buttons in manage users
2020-05-02 22:42:23 +07:00
Bobby Wibowo
89e5f775ec
Add bottom controls buttons for uploads list 2020-05-02 22:09:51 +07:00
Bobby Wibowo
19b4a5e217
Updated Linux-only disk stats
Restore disk usage stats even when config.linuxDiskStats is off

The said config will now only toggle the 'extended' stats which are
disk usage of each directories within the uploads directory
2020-05-02 19:28:13 +07:00
Bobby Wibowo
ee443b5108
Updated dependencies
express-rate-limit: 5.1.1 -> 5.1.3
systeminformation: 4.23.8 -> 4.23.9
2020-04-30 05:58:47 +07:00
Bobby Wibowo
ff54f088bd
Added client assets update detection
/api/check and /api/token/verify will now pass along v1 version string
if used (when config.cacheControl is used) for both home.js and
dashboard.js to use to compare version strings.
This should help notify users using browsers with a bit more overbearing
caching (generally mobile browsers).

Rebuilt client assets and bumped v1 version string

Slight update to yarn.lock (a small syntax change for node-gyp, idk why)
2020-04-30 05:56:28 +07:00
Bobby Wibowo
4759995ff3
Updated README.md
Updated screenshot.

Edited claim about node 12 not being tested, as I've tested it.
Couldn't find any issues.

Added a new section about updating when you have modified some files.

Rephrased ClamAV support section a bit.

Updated dependencies:
knex: 0.21.0 -> 0.21.1

Rebuilt yarn.lock file with node 12.
Nothing significant really changed.
Things seem to be backward compatible to node 10.
2020-04-29 13:31:13 +07:00