Commit graph

1842 commits

Author SHA1 Message Date
Shish
e0d9a20f4c cleanup 2024-02-07 23:01:45 +00:00
Shish
7adb7348d7 [core] fixes and tests for get_base_href + get_query, see #1024 2024-02-07 22:47:13 +00:00
Shish
e9c8e852a5 [core] attempt to figure out base href from SCRIPT_FILENAME + DOCUMENT_ROOT, see #1024 2024-02-07 18:28:42 +00:00
Shish
c64c796398 [core] fix --user CLI flag, fixes #1022 2024-02-06 10:31:47 +00:00
Shish
4cd0419b03 bump 2024-02-05 23:04:13 +00:00
Shish
6f165a974a fmt 2024-02-05 13:41:32 +00:00
Shish
92577d355f [core] add custom error messages for stdlib_ex, and a test 2024-02-05 13:25:18 +00:00
Shish
0588f9af3e bump 2024-02-04 00:43:47 +00:00
Shish
e753a68e76 Merge branch 'branch-2.10' 2024-02-04 00:25:57 +00:00
Shish
e5828b0810 base_href as a data attr 2024-01-28 21:24:21 +00:00
Shish
cbd073e681 bump 2024-01-28 13:03:07 +00:00
Shish
a7c50a0b95 Merge branch 'branch-2.10' 2024-01-21 10:59:33 +00:00
Shish
f0457b4f94 [core] image_id should never be null, only uninitialised 2024-01-20 23:54:26 +00:00
Shish
bc933bbbca [core] set image->posted on posting 2024-01-20 23:32:38 +00:00
Shish
82a3ce25c2 level 7 typing 2024-01-20 23:27:34 +00:00
Shish
05199c13cc [core] kill a secret global 2024-01-20 19:52:18 +00:00
Shish
8b797a9a31 [tests] more strictness 2024-01-20 19:47:27 +00:00
Shish
b60c3fe362 [core] a load more type hints, and fix bugs revealed by type hints 2024-01-20 14:11:00 +00:00
Shish
373be4e05c avoid stringy class names 2024-01-20 01:03:02 +00:00
Shish
bf649b012a fmt 2024-01-19 18:37:15 +00:00
Shish
448e270da8 more typing 2024-01-19 18:33:32 +00:00
Shish
5455adf88a more typing 2024-01-19 18:24:52 +00:00
Shish
cb81f6b94a wtf php, array_filter() will return an array with gaps in it... 2024-01-19 18:06:38 +00:00
Shish
6bde7457e7 wtf php, array_filter() will return an array with gaps in it... 2024-01-19 18:01:50 +00:00
Shish
376b2c6ac6 [tag_list] make logarithms consistent across databases 2024-01-18 15:31:10 +00:00
Shish
21e159c76a [tag_list] make logarithms consistent across databases 2024-01-18 15:21:10 +00:00
Shish
d88f6883f2 [core] bump dev version 2024-01-18 15:20:09 +00:00
Shish
6020c15e30 A release o.o;; 2024-01-17 22:57:47 +00:00
Shish
e859064fca [core] environment settings didn't work as well as I'd hoped 2024-01-17 21:39:30 +00:00
Shish
bf9b47510a derp 2024-01-17 20:26:14 +00:00
Shish
fc6bb2d1b5 [core] allow sys-config settings to come from the environment 2024-01-17 20:19:13 +00:00
Shish
8fe54794d8 [core] consider a dynamic prop to exist if it is defined, even without a value 2024-01-16 17:35:14 +00:00
Shish
7f20b17a59 [cli] don't exit until after we have committed or rolled back the db 2024-01-16 01:28:44 +00:00
Shish
e58c071a14 exit non-zero if CLI install is missing input 2024-01-15 23:42:36 +00:00
Shish
e507105212 comments 2024-01-15 23:04:19 +00:00
Shish
5d120cd0c8 [tests] put tests inside transactions 2024-01-15 22:50:43 +00:00
Shish
de022564b3 make sure every test happens inside a transaction 2024-01-15 22:32:25 +00:00
Shish
e960f73fb6 fmt 2024-01-15 21:49:16 +00:00
Shish
031ccce961 nicer CLI install 2024-01-15 21:48:15 +00:00
Shish
2410a64551 derp 2024-01-15 21:16:09 +00:00
Shish
ed5960a301 type fix 2024-01-15 21:09:35 +00:00
Shish
d75b410075 [core] fix more warnings 2024-01-15 21:01:22 +00:00
Shish
c1bc63e86b boo(l) 2024-01-15 18:54:46 +00:00
Shish
b872c021e1 [core] insert or update image in a single statement 2024-01-15 18:52:07 +00:00
Shish
107485d991 [core] width and height are non-null 2024-01-15 18:52:07 +00:00
Shish
2f05ef4a0b [core] cleanup 2024-01-15 18:52:07 +00:00
Shish
2a494504f3 [core] all image columns should be statically or dynamically defined - nothing undefined 2024-01-15 18:52:07 +00:00
Shish
fb034af699 [core] int_props + bool_props -> prop_types 2024-01-15 18:52:07 +00:00
Shish
bbea373c19 [core] use ArrayAccess rather than dynamic props for extra columns on the images table 2024-01-15 18:52:07 +00:00
Shish
589ff69eea [types] typetypetypetypetype 2024-01-15 15:08:22 +00:00
Shish
434455b836 [tests] more voiding of tests 2024-01-15 14:31:51 +00:00
Shish
a1f22ef67c [themes] void return type for display_* functions 2024-01-15 14:23:12 +00:00
Shish
8a895113f3 [core] typed cookie object 2024-01-15 14:08:13 +00:00
Shish
7b7ec9c83f [tests] phpstan version bump 2024-01-15 14:08:12 +00:00
Shish
802ff336a2 [core,tests] even more types 2024-01-15 14:08:11 +00:00
Shish
6c6b09f762 [core] image->mime is not-nullable 2024-01-15 12:18:28 +00:00
Shish
646f95f91a [core] bump microcrud version, add types 2024-01-15 12:14:41 +00:00
Shish
bb9ab613ce [everything] bulk set event handler return types to void 2024-01-15 11:52:35 +00:00
Shish
4b8bc82ee4 [tag_edit] abort on error rather than only applying some tags 2024-01-11 10:28:41 +00:00
Shish
acd3abcc77 [core] fix error in error handling 2024-01-11 10:19:38 +00:00
Shish
ec35cace6a [core] replace quarter-arsed CLI interface with Symfony Console 2024-01-11 01:01:39 +00:00
Shish
39bfde6dff [tests] clear() at the end of each class, not the end of each test 2024-01-10 09:04:39 +00:00
Shish
432be420fd [core] trace savepoints 2024-01-09 22:47:22 +00:00
Shish
7b9201cb42 [core] Database::with_savepoint() 2024-01-09 21:59:24 +00:00
Shish
b2f67363a1 [core] roll back database transaction when upload fails - fixes #1007 2024-01-09 21:01:10 +00:00
Shish
4d011fa5e5 [core] remove add_image, send_event(DataUpload) is much clearer as to what it's actually doing 2024-01-09 19:24:56 +00:00
Shish
edb8ec33fa more consistency for 'old' and 'new' terminology 2024-01-09 15:27:02 +00:00
Shish
cafef06b14 [core] avoid making convert show an error message 2024-01-09 15:26:45 +00:00
Shish
81ec577b32 [core] only move file to warehouse if all the rest of the upload is ok, fixes #1004 2024-01-09 04:49:19 +00:00
Shish
3c90597ca8 [core] inline some single-use functions 2024-01-09 04:22:59 +00:00
Shish
03d4045117 [core] also simplify uploading by having merge handled as a special case 2024-01-09 04:07:32 +00:00
Shish
4c2d6d9ca4 [replace] split upload and replace completely, fixes #1001 2024-01-09 03:38:51 +00:00
Shish
a28fb66b91 [core] have ImageReplace replace image->file with a new file, not replace a whole Image object 2024-01-09 02:33:14 +00:00
Shish
267e176658 [core] have extensions react to ImageAdditionEvent, instead of sending ImageAddition and other events in parallel 2024-01-09 01:32:34 +00:00
Shish
baf5f38a25 [core] only check image contents if the mime type is one we can handle 2024-01-09 01:05:33 +00:00
Shish
0762da54eb [core] have ThumbnailGenerationEvent work on an Image 2024-01-09 01:03:46 +00:00
Shish
c494bf293d [core] if image is created from a temp file, have get_image_filename() return that file 2024-01-09 00:17:54 +00:00
Shish
7146d07f4e [style] use CSS for text-wrapping 2024-01-08 21:24:41 +00:00
Shish
29fde1388a [core] only show decimal for KB/MB/etc less than 10 2024-01-08 19:35:25 +00:00
Shish
63b479592a [core] parse CACHE_DSN using parse_url, and support username / password for redis, fixes #1000 2024-01-07 23:28:15 +00:00
Shish
15582c5138 [core] default cache TTL to null rather than zero, fixes #997 2024-01-07 18:47:32 +00:00
Shish
051d6242ed [tests] add assertException because PHPUnit doesn't have it 2024-01-07 17:22:16 +00:00
Shish
77e88f6f54 [ratings/search] remove implicit 'rating:*' from image counting process, hopefully fixes #991 2024-01-07 04:17:22 +00:00
Shish
6a2d3f49e2 typed return arrays too 2024-01-06 21:34:30 +00:00
Shish
e57264fd95 [ci] more specific version in /system_info, less specific version in footer 2024-01-06 19:32:33 +00:00
Shish
f47c7d7ee8 [core] version alpha to beta 2024-01-05 15:35:29 +00:00
Shish
26630a4e3b fmt 2024-01-05 15:32:07 +00:00
Shish
d4b86b0e95 [core] redo deltree to also delete dotfiles, fixes #972 2024-01-05 15:30:32 +00:00
Shish
af309601f5 [upload] separate out DataUpload, ImageAddition, and TagSet/SourceSet/LockSet/etc 2024-01-05 15:00:07 +00:00
Shish
48b3de3c6e [core] fix error in error handling 2024-01-04 23:10:31 +00:00
Shish
7673b394f4 [search] get_images function to get specific images in specific order with search visibility (ratings etc) taken into account 2024-01-04 16:55:39 +00:00
Shish
ff04083ad5 [handle_archive] merge tags from inside the archive and the form, fixes #483 2024-01-04 15:55:48 +00:00
Shish
e49fcfa0c7 [core] allow ip_in_range to match exact IPs 2024-01-04 15:07:07 +00:00
Shish
c5395df243 [core] trust x-forwarded-for from trusted proxies, see #800 2024-01-04 14:50:36 +00:00
Shish
502d50c57d [upload] keep original post date when replacing image, fixes #903 2024-01-04 14:29:09 +00:00
Shish
74fd48a0f2 [theme] add data-userclass to body tag 2024-01-04 14:11:20 +00:00
Shish
ef3492e9b5 [theme] add data-rating attribute to thumbnails 2024-01-04 14:11:20 +00:00
Shish
55d5dc0a35 [themes] have themes implement head_html/body_html rather than render 2024-01-04 14:11:20 +00:00
Shish
72a0d3f90b [install] sqlite as the default DB 2024-01-04 12:08:08 +00:00
Shish
49d2760ab6 happy new year 2024-01-03 14:47:58 +00:00
Shish
1f9de8dd5a more tests 2024-01-03 03:46:04 +00:00
Shish
aea533b345 [file handlers] separate out display_image and display_metadata 2024-01-01 20:21:51 +00:00
Shish
509f8eee3e [core] separate init.js for code which needs to run before page load 2024-01-01 20:03:50 +00:00
Shish
8815b702c5 [core] DIY CSS/JS minifier 2024-01-01 19:52:33 +00:00
Shish
9f002b6bf7 typed arrays 2024-01-01 03:30:21 +00:00
Shish
26bf4277e0 Separate out GET and POST more explicitly
- No longer allow uploading directly via GET, that is terrible for
  security. Instead, use the GET parameters to pre-fill the upload form.
- PageRequestEvent has a `method` property that can be checked in
  extensions
2024-01-01 03:30:21 +00:00
Shish
0f52b54667 format 2023-12-31 23:08:53 +00:00
Shish
9e9225acf3 [core] allow SHM_POST_INFO html element to accept a link parameter 2023-12-31 22:27:32 +00:00
Shish
625406e591 extra comments 2023-12-31 18:48:56 +00:00
Shish
fb49b785ef [core] don't take shortcuts when going next/prev, as some extensions (eg ratings) might want to alter search results (fixes #984) 2023-12-31 18:48:49 +00:00
Shish
6df0f4f307 put runtime-generated data into data/ 2023-12-31 17:42:04 +00:00
Shish
e3c61b72dc [core] cache event listeners based on which extensions are enabled + version number 2023-12-31 15:44:35 +00:00
Shish
42fc180c25 [docker] set BUILD_TIME/BUILD_HASH vars 2023-12-31 14:45:39 +00:00
Shish
c2befbdf9f remove modernizr 2023-12-30 03:45:29 +00:00
Shish
840b0849df [user] make email-requiredness a setup option 2023-12-27 10:07:09 +00:00
myname
85b1e54904 Refactoring auto-complete functionality for alias editor and auto tagger 2023-12-26 02:37:47 +00:00
Shish
2ac243d20d [core] use rawurlencode/decode consistently, deprecate caret system 2023-12-24 22:42:14 +00:00
Shish
ad181377c8 [userclass] ghosts should still be able to read PMs 2023-12-21 21:15:46 +00:00
Shish
9e7f3cb397 Make SHM_POST_INFO more logical
Rather than having a boolean for view or edit + optional editor, use the
existence of the editor to know if a field is editable
2023-12-19 11:41:02 +00:00
Shish
64e6460f22 don't look at cookies if bearer token was ok 2023-12-17 00:08:06 +00:00
Shish
282d13f632 Use nginx Unit rather than the php development server 2023-12-16 23:03:04 +00:00
Shish
f00a4e3d90 fewer loose functions 2023-12-16 11:04:52 +00:00
Shish
71341be3a8 move testcase to core, so that require(ext/X/*.php) can work 2023-12-16 10:52:50 +00:00
Shish
b1c6894fbc cleaner extension loading 2023-12-16 01:31:46 +00:00
Shish
f8ec844745 [themes] move disable_left to base class 2023-12-15 21:25:18 +00:00
Shish
c1acf5c38c remove dead import 2023-12-15 13:23:20 +00:00
Shish
10ba2ccb7f fix search encoding 2023-12-15 07:55:38 +00:00
Shish
d8a7ac985d make cache table name into a valid postgres identifier for notifications 2023-12-14 22:02:10 +00:00
Shish
7f98412d8b cache_get_or_set function 2023-12-14 22:02:10 +00:00
Shish
a5c6f1321b refactor search a little and add much better testing 2023-12-14 17:04:16 +00:00
Shish
4c8274161f fix more search edge-cases 2023-12-14 02:13:01 +00:00
Shish
e114057dfe PHPUnit 10 (and other bumps) 2023-12-14 00:25:32 +00:00
Shish
fd1bb21f9d bumps 2023-11-11 22:05:28 +00:00
Shish
9c95646aa7 only hide deprecation warnings, not all errors 2023-08-18 21:51:01 +01:00
Shish
d0faf29c9f hide deprecation warnings 2023-08-18 21:51:01 +01:00
Shish
7a4f033cce split installer CSS into its own file, since we only use it in one place 2023-08-18 21:51:01 +01:00
Shish
ecd7ec5b6b make source maps better upstream 2023-08-18 21:51:01 +01:00
Shish
5ef00eb37c only generate source maps in debug mode 2023-08-18 21:51:01 +01:00
Shish
74037d9d0a use (a forked version of) tbela99/css for css minification 2023-08-18 21:51:01 +01:00
Shish
d9489ac8aa split css_cache_file / js_cache_file into their own functions 2023-08-18 21:51:01 +01:00
Shish
43c7be0e89 dedicated search_link() function for generating links to search results, see #936 2023-08-18 13:52:03 +01:00
Shish
23e36b4349 only link to post/list when you actually want post/list, if you want just a default page, leave it empty 2023-08-18 12:45:56 +01:00
Shish
0c014fde01 use joinHTML for paginator 2023-08-17 18:34:39 +01:00
Shish
5879184895 SHM_POST_INFO element for doing info box elements in a standard way 2023-08-17 18:21:28 +01:00
Shish
efe8bd5f43 remove dead imports 2023-08-17 18:21:28 +01:00
Shish
aa8de9d420 the php string type is lowercase 2023-08-17 18:20:46 +01:00
Github Actions
9c0a6ebec3 Auto-merge master to main 2023-08-16 14:54:27 +00:00
Shish
f040709a76 proper support for html in usernav 2023-08-16 15:52:14 +01:00
Luana
aef5bc9e2e SHM_ functions in its own file 2023-08-16 15:40:08 +01:00
Luana
a5e585d991 SHM_A 2023-08-16 15:40:08 +01:00