Commit Graph

451 Commits

Author SHA1 Message Date
Azareal
e37c98eaa1 cache default noavatar strings to avoid allocs 2020-02-07 22:27:33 +10:00
Azareal
158b1de7bc travis... 2020-02-05 13:02:07 +10:00
Azareal
f858797835 code cleanup 2020-02-05 12:48:35 +10:00
Azareal
4ae2200760 simplify ws dashboard stat push code 2020-02-05 12:29:35 +10:00
Azareal
0c1d6f0516 Add CreateProfileReply and AutoEmbed group permissions.
Log profile reply deletions in the moderator log.
Split the global permissions in the UI to make them easier to manage.
Experiment with showing group ID in group edit header.
Avoid loading groups multiple times for the same profile reply.

Initialise disabled IP log points to empty string rather than 0.

Add CreateProfileReply perm phrase.
Add AutoEmbed perm phrase.
Add panel_group_mod_permissions phrase.
Add panel_logs_mod_action_profile_reply_delete phrase.
2020-02-04 21:47:03 +10:00
Azareal
2e8c6e6fb6 fix deleting like alerts when unliking a reply
immediately delete alerts via websockets when a topic or reply is unliked

Add AidsByParams method to ActivityStream.
2020-02-01 16:56:04 +10:00
Azareal
b38df9773b fix group ids in cached replies 2020-02-01 15:55:33 +10:00
Azareal
b5fa9c69f7 Let users unlike posts.
Hide like buttons on own posts for Tempra Simple and Shadow themes too.
fix like visual ui.
fix topic.Unlike err return.

Add topic.minus_one phrase.
2020-01-31 20:48:55 +10:00
Azareal
6935637867 Cascade delete attachments properly.
Cascade delete replied to topic events for replies properly.
Cascade delete likes on topic posts properly.
Cascade delete replies and their children properly.
Recalculate user stats properly when items are deleted.
Users can now unlike topic opening posts.
Add a recalculator to fix abnormalities across upgrades.
Try fixing a last_ip daily update bug.

Add Existable interface.
Add Delete method to LikeStore.
Add Each, Exists, Create, CountUser, CountMegaUser and CountBigUser methods to ReplyStore.
Add CountUser, CountMegaUser, CountBigUser methods to TopicStore.
Add Each method to UserStore.
Add Add, Delete and DeleteResource methods to SubscriptionStore.
Add Delete, DeleteByParams, DeleteByParamsExtra and AidsByParamsExtra methods to ActivityStream.
Add Exists method to ProfileReplyStore.

Add DropColumn, RenameColumn and ChangeColumn to the database adapters.

Shorten ipaddress column names to ip.
- topics table.
- replies table
- users_replies table.
- polls_votes table.
Add extra column to activity_stream table.
Fix an issue upgrading sites to MariaDB 10.3 from older versions of Gosora. Please report any other issues you find.

You need to run the updater / patcher for this commit.
2020-01-31 17:22:08 +10:00
Azareal
da26a29597 Cascade deletes for attachments properly when deleting a topic or deleting all of a user's posts.
Eliminate some allocs for maxAgeYear in ShowAttachment.
Split DeleteAttachment out of deleteAttachment for reuse elsewhere.
2020-01-23 16:17:50 +10:00
Azareal
32bb2edfe4 Cascade poll deletions properly when deleting topics normally or via delete all posts. 2020-01-20 16:58:22 +10:00
Azareal
a21454ba5d Cascade like deletions properly when deleting topics. 2020-01-18 18:12:00 +10:00
Azareal
ec7b304c08 Cascade like deletions properly when using delete all posts. 2020-01-18 17:24:51 +10:00
Azareal
7ec2037f5f Delete likes on replies / topics properly when their parent is deleted. 2020-01-15 14:16:10 +10:00
Azareal
2625db3989 Update last replies on topics properly for delete all posts. 2020-01-14 20:38:05 +10:00
Azareal
e4cfe610f6 Update last reply on topics properly upon reply delete. 2020-01-14 20:29:23 +10:00
Azareal
69a2430e5a Add option to delete all of a user's posts.
Add limited dynanicism to langf.
Eliminate a few queries when updating user stats.
Minor clean-up.

Namespace the profile language strings.
2020-01-14 15:07:00 +10:00
Azareal
a569772e9c Add DisableRegLog configuration setting.
Unit tests for DisablePostIP. Awkward but does the job for now.
2020-01-04 15:30:25 +10:00
Azareal
b39d90e4b6 Add DisablePostIP configuration setting. 2020-01-03 07:52:41 +10:00
Azareal
aed409ae9e Add DisablePollIP configuration setting. 2020-01-02 19:49:34 +10:00
Azareal
0d81557009 Add DisableLastIP configuration setting.
Reduce default PollIPCutoff to 365.
2020-01-02 16:04:10 +10:00
Azareal
e2f97d29cb Experiment with 720 days for default poll vote cutoff. 2020-01-02 15:48:05 +10:00
Azareal
f789a8498e Add PollIPCutoff configuration setting.
Add tests for qgen processWhere and qgen mysql buildWhere.

Shorten some things.
2020-01-02 15:28:36 +10:00
Azareal
35ddc89009 Optimise the database layer.
Refactor database adapters.
Experimental last ip cutoff.

More parser test cases.
2020-01-01 07:57:54 +10:00
Azareal
d22021b022 Reduce default PostIPCutoff from 180 to 120 days.
Reduce default LogPruneCutoff from 365 to 180 days.
2019-12-19 17:09:56 +10:00
Azareal
0dede6a329 NoEmbeds privacy and config settings.
Phase out url_prefix and url_name.
Eliminate some boilerplate and allocations while we're at it.
Reduce the number of conditional statements in url validator loops.
Better parsing of Site.URL to handle user error better.

You will have to run the patcher / updater for this commit.
2019-12-08 13:40:56 +10:00
Azareal
501c0dff0a Shorten things. 2019-12-07 16:27:01 +10:00
Azareal
06f0779525 Shorten some names and eliminate a few allocs. 2019-11-12 16:56:51 +10:00
Azareal
430df1e325 Add blocklist page.
Add account_blocked phrase.
Add account_menu_blocked phrase.
Add account_blocked_head phrase.
Add account_blocked_remove phrase.
Add account_blocked_no_users phrase.
2019-11-12 16:17:46 +10:00
Azareal
ec95b922cf fix the search and filter widget 2019-11-11 17:04:11 +10:00
Azareal
1044518e74 Finish up the adminlogs.
Throw an error instead of updating a word filter that doesn't exist.
Track a bit of extra data for word filter updates.

Shorten the prefixes of the adminlog phrases from panel_logs_administration_ to panel_logs_admin_
Add a bunch of new adminlog phrases.
Tweak the word filter phrases.

Add the extra column to the moderation_logs and administration_logs tables.

You need to run the updater / patcher for this commit.
2019-11-10 12:37:53 +10:00
Azareal
2fb15556e1 More word filter tests.
Fix WordFilters.Get.
2019-11-09 08:07:05 +10:00
Azareal
ffdc9e7705 Adminlogs: Custom pages, settings, word filters and backups.
WordFilters.Create now returns the ID.
Add the WordFilters.Get method.
Reduce the boilerplate in the backup page and page store.

Sanitise the names and titles in the Page Manager.

Add page_unknown phrase.
Add setting_unknown phrase.
Add panel_logs_administration_action_page_create phrase.
Add panel_logs_administration_action_page_delete phrase.
Add panel_logs_administration_action_page_edit phrase.
Add panel_logs_administration_action_setting_edit phrase.
Add panel_logs_administration_action_word_filter_create phrase.
Add panel_logs_administration_action_word_filter_delete phrase.
Add panel_logs_administration_action_word_filter_edit phrase.
Add panel_logs_administration_action_backup_download phrase.
2019-11-09 07:46:50 +10:00
Azareal
6e8c241d8b Fix undefined buttons on edit reply.
Move some logic from files.go into templates.go
Shorten some things in templates.go

Fixes #63
2019-11-07 13:53:29 +10:00
Azareal
cc76d399e5 Simple spoilers. 2019-11-07 07:15:43 +10:00
Azareal
5441adb7fc Very incomplete adminlogs. Only user edit so far.
Inline error when there aren't any reglogs, modlogs or adminlogs.
Hide the email on a reglog, if the user didn't insert one.

Add panel_logs_registration_no_logs phrase.
Add panel_logs_moderation_no_logs phrase.
Add panel_logs_administration_action_user_edit phrase.
Add panel_logs_administration_action_unknown phrase.
Add panel_logs_administration_no_logs phrase.
2019-11-06 12:00:44 +10:00
Azareal
4179f472e5 Oops, add this struct too. 2019-11-05 09:49:37 +10:00
Azareal
142359ce11 Add SslSchema config setting.
Reject URL usernames on registration.

Reduce length of char variable name.
2019-11-04 21:55:52 +10:00
Azareal
6b745a056f Terminate this loop earlier. 2019-11-04 17:00:12 +10:00
Azareal
bffb095b57 Add zipx, kgb, pea, xz and zz archive formats. 2019-11-01 09:34:50 +10:00
Azareal
f227aadb6d Allow users to upload small archives.
Fix the ordering of functions in topic.Delete.
2019-11-01 09:17:26 +10:00
Azareal
1ad3e9c9da The forum list should be updated properly now when a topic is deleted. 2019-10-31 18:55:03 +10:00
Azareal
e9cf06a5f2 More jpeg file extensions. 2019-10-30 18:16:19 +10:00
Azareal
8f98708087 This too.
Rename VerifyEmailSubject phrase to ActivateEmailSubject.
Rename VerifyEmailBody phrase to ActivateEmailBody.
Add ValidateEmailSubject phrase.
Add ValidateEmailBody phrase.
Tweak menu_forums_aria phrase.
2019-10-30 16:41:05 +10:00
Azareal
40aa215331 Fix group tags not propagating to replies. 2019-10-30 15:53:35 +10:00
Azareal
01d956f9d1 Encode tiffs too.
Update file extension lists.
Update mod floater.
2019-10-30 13:52:04 +10:00
Azareal
9e8b95b1be Add jfif as an image file extension.
Add jpeg as jpgs for post attachments.

Move some things.
2019-10-30 12:59:34 +10:00
Azareal
d2be6b220e Support for optional emails.
Reduce boilerplate and allocations.
Fix the error shown on AccountEditEmailTokenSubmit when there aren't any emails rows.

Add register_account_email_optional phrase.
Add account_email_none phrase.
2019-10-30 08:13:45 +10:00
Azareal
033f4624c8 Experiment with the accumulator.
Less boilerplate.
2019-10-29 11:58:04 +10:00
Azareal
eb49dde076 Experiment with eliminating allocations.
Encode png images as pngs rather than turning them into jpgs.
Shorten things to eliminate bytes and boilerplate.
Remove some old code.
2019-10-28 17:46:14 +10:00
Azareal
02cb64d3d9 Fix attachment parsing.
Shorten some things to reduce boilerplate.
Save some allocations.
2019-10-28 09:53:16 +10:00
Azareal
4d9dc76392 Begin work on making the analytics panes somewhat usable when having JavaScript disabled.
Very minor refactoring here and there across the software.
Save some allocations here and there.
2019-10-28 09:13:24 +10:00
Azareal
1189967f2b Add a missing instruction to the installation guide.
Add the /tmp/ folder, currently unused.

Shorten some things.
2019-10-27 09:11:09 +10:00
Azareal
bbfd3c51c7 Stop blocked users making profile comments too.
Hide the Send Message option on profiles for blocked users.
Move the profile reply routes to their own file.
Remove a redundant user initialisation.

Shorten things.
2019-10-19 20:33:59 +10:00
Azareal
8720de83d8 Rudimentary user convo blocking.
Simplify some things.

Add create_block title phrase.
Add remove_block title phrase.
Add create_block_msg phrase.
Add remove_block_msg phrase.
Add profile_unblock phrase.

Add the users_blocks table.

You will need to run the updater / patcher for this commit.
2019-10-18 10:35:13 +10:00
Azareal
fd1d54c394 Wrestling with tests while pushing random changes. 2019-10-13 20:50:15 +10:00
Azareal
f8e0c5635c basic queries for friends and blocks
fix the tests again
2019-10-13 20:36:50 +10:00
Azareal
3cff453494 push a bit of progress while fixing the tests 2019-10-13 19:07:05 +10:00
Azareal
5404b6fdbe start laying down the skeletons for blocks and friends 2019-10-13 18:50:55 +10:00
Azareal
6147db18dd fix the url parser.
improve the url validator.
add a few more url parser test cases.
2019-10-13 17:32:05 +10:00
Azareal
38bbdfe0c2 Make parsed URLs look a little nicer. 2019-10-13 14:45:15 +10:00
Azareal
df6e268a06 Speed up template compilation by not building the same parse trees multiple times.
Compile panel_debug.
Add the ability to print int8, int16, int32, uint, uint8, uint16, uint32 and uint64 in compiled templates.
Add the ability to pass string nodes to subtemplates in the template compiler.
Fix bunit in the template compiler.

Shorten some things.
2019-10-13 08:49:08 +10:00
Azareal
65b4fef40e WIP Add more language strings for panel debug.
Shorten more things.
Sneak draft tables in.

Add the profile_block phrase.
Add the panel_debug_memory_stats phrase.
Add the panel_debug_memory_stats_sys phrase.
Add the panel_debug_memory_stats_heapsys phrase.
Add the panel_debug_memory_stats_heapalloc phrase.
Add the panel_debug_memory_stats_heapidle phrase.
Add the panel_debug_memory_stats_heapobjects phrase.
Add the panel_debug_memory_stats_stackinuse phrase.
Add the panel_debug_caches phrase.
Add the panel_debug_caches_topic phrase.
Add the panel_debug_caches_user phrase.
Add the panel_debug_caches_reply phrase.
Add the panel_debug_caches_topic_list phrase.
Add the panel_debug_database phrase.
Add the panel_debug_database_topics phrase.
Add the panel_debug_database_users phrase.
Add the panel_debug_database_replies phrase.
Add the panel_debug_disk phrase.
2019-10-11 10:57:33 +10:00
Azareal
dcd4d7d7eb The lang template function now accepts dynamic variables. 2019-10-11 10:36:45 +10:00
Azareal
3798838ece Update the group promotion UI.
Invert the direction of the query to make promotions a little less exacting.
Make sure admins can't set the from group as the to group in a group promotion.
Shorten a field name in the word filter manager.

Add panel_group_promotions_level_prefix phrase.
Add panel_group_promotions_posts_prefix phrase.
Add panel_group_promotions_delete_button phrase.
2019-10-07 08:54:09 +10:00
Azareal
2e28ae39f3 Add posts as a criteria for group promotions.
Load the posts column when loading users.
Make DefaultUserStore.Reload a wrapper around DefaultUserStore.BypassGet.
Use the OO style query builder more in common/user.go
GroupPromotions is now bound to an interface rather than the concrete type.
Fix some issues in the GroupPromotionStore interface.
Improve error handling for table creation and reduce boilerplate.
Shorten some more things.

Add panel_group_promotions_posts phrase.

You will need to run the patcher / updater for this commit.
2019-10-07 08:20:37 +10:00
Azareal
a5f77c376b Users can now delete their own posts.
Merge GlobalPerms and LocalPerms phrase spaces into Perms.
Shorten more things and eliminate boilerplate.
2019-10-06 21:32:00 +10:00
Azareal
45a3065db1 Use json marshal for the group permissions in querygen.
Add an omitempty json tag to the Perms struct.
Take the opportunity to shorten some things.
2019-10-06 15:32:08 +10:00
Azareal
8d40139ae5 Tests are green now.
Recognise localhost equivalents in the parser.
Add rel=ugc to the bbcode parser too.
More shortening and boilerplate eliminating.
Fix a potential lock bug.
2019-10-06 11:49:31 +10:00
Azareal
11d1286b56 Save a few allocations in the parser.
Pave the way for rel=ugc support.
2019-10-06 10:55:03 +10:00
Azareal
5705252029 Add UseConvos permission.
Use UseConvos permission instead of ban flags in convo perm checks.
Stop users without the UseConvos permission from editing convo replies, although they can still delete them for privacy reasons.

Shorten some things and reduce the amount of boilerplate.
Add a few misc parser test cases.
Fix footer and tweak indentation.
2019-10-06 10:34:09 +10:00
Azareal
ff48ec9d86 Shortening some things.
Fix the ordering of the lock in WsHubImpl.GuestCount.
2019-10-02 07:06:22 +10:00
Azareal
3ba977c75e Shorten things. 2019-09-29 15:10:05 +10:00
Azareal
78c5c62eee Basic group promotions.
Add the users_groups_promotions table.
Optimise ConvoViewPage.

Shortened some things.
Convo CSS fixes.
Make sure the user cache is flushed properly after the post stats change.

You will need to run the patcher / updater for this commit.
2019-09-29 14:56:39 +10:00
Azareal
4e166df3e2 x.x 2019-09-01 09:40:53 +10:00
Azareal
92a8706709 Fix the resources not being invalidated properly.
Tweak the convo list styling.
2019-09-01 09:39:39 +10:00
Azareal
218e177a29 Shorten more things. 2019-09-01 08:59:00 +10:00
Azareal
f1bebb7326 Shorten the names of the IP fields.
Shorten some other things.
2019-09-01 08:34:43 +10:00
Azareal
31d65b91a6 Accelerate the convo list. 2019-09-01 08:17:37 +10:00
Azareal
523837910c Accelerate the convo list.
Shorten some things.
2019-09-01 08:07:34 +10:00
Azareal
c309faf79f Use constant time comparisons for sessions in forms. 2019-08-30 20:59:50 +10:00
Azareal
ddb917761f Show the names of the participants on the convo list instead of the placeholder text.
Shorten some things to save a bit of memory and to standardise things.
2019-08-28 16:47:54 +10:00
Azareal
cae7e00b0c Show the users in a convo. 2019-08-21 11:31:13 +10:00
Azareal
0e9c459446 Adjust convo permissions.
Speed up convo_view.html
Make ContentLines in ConvoViewRow an int as it should be.
Shorten common. in the generated templates.
Fix the page titles for the convo panes.
Stop non-present users from editing their convo posts but still allow them to delete them, if they somehow have a way to do that.
Reduce the amount of boilerplate in the currently broken guilds plugin.
2019-08-21 08:32:10 +10:00
Azareal
f8991e089a Basic conversations now work, although there is still testing and UI stuff to be done.
Simplify some header script / sheet bits.
2019-08-20 18:44:37 +10:00
Azareal
4d8c97812d More conversations work.
Add support for AS in columns for SimpleInnerJoin.
Add a referrer policy to improve privacy a little.
Shorten /static/ to /s/ since it comes up so much.
Remove some obsolete code.
Shorten some variable names.
Reduce the amount of boilerplate in the patcher.

Added the RefNoTrack and RefNoRef privacy config settings.

You may need to run the updater / patcher for this commit.
2019-08-14 20:39:04 +10:00
Azareal
377a5dc5ea Reduce boilerplate.
Prealloc in AnalyticsViews.
Remove some old debug code.
Normalise the URL ID error for CreateTopicSubmit.
Reduce the number of allocations for action posts.
Use aliases to shorten a few queries.
2019-07-29 09:19:46 +10:00
Azareal
e9e527e76a Experimenting with request state in local errors.
Move the sheet and style declarations after the initial error on the profiles.
Use a global URL ID error message for the profiles.

Updates #51
2019-07-28 14:58:01 +10:00
Azareal
a465850adb simplify the agents, forums, memory and referrer counters
move DirSize into it's own file
2019-07-28 14:01:33 +10:00
Azareal
01ccdb2087 simplify the requests, posts, topics, routes and systems counters 2019-07-28 13:46:19 +10:00
Azareal
6d805a13cf fix the instance crashing after deleting a topic due to a topic view counter error
simplify the topic view counter
2019-07-28 13:06:04 +10:00
Azareal
a287ccc3d6 WIP Conversations templates.
WIP Conversations structs.
WIP Unbound conversations routes.
Shorten more variable names.
Eliminate a few characters here and there.
Track down widget tick errors more easily.

Add the convos_head title phrase.
Add the convo_head title phrase.
Add the unit phrase.
Add the account_menu_messages phrase.
Add the convos_head phrase.
Add the convo_head phrase.
Add the create_convo_head phrase.
Add the create_convo_button phrase.
Add the profile_send_message phrase.
Add the panel_dashboard_disk_unknown phrase.
2019-07-27 09:29:42 +10:00
Azareal
093a37e3c7 Check in even more conversations stuff. 2019-07-27 09:14:37 +10:00
Azareal
7c8bb39024 Check in some more conversations stuff. 2019-07-27 09:13:43 +10:00
Azareal
1c0a3dd5b6 Accept shorter session param names as these are so common.
Prealloc in DefaultPollStore.BulkGetMap
Shorten more variable names.
Remove a bit of inline CSS in topic_alt_quick_reply
2019-07-27 08:36:06 +10:00
Azareal
fa629f4b5d fix reports
shorten some variable names
2019-07-27 08:26:52 +10:00
Azareal
22cb2701b2 Shorten a couple of attachment parameters.
Rename a mislabelled variable.
Prealloc in DefaultUserStore.BulkGetMap.
Prealloc in DefaultTopicStore.BulkGetMap.
Shorten the names of some temps.
Shorten a mssql querystring.
2019-07-25 17:00:49 +10:00
Azareal
91f12e26a4 Don't forget this bit.
Updates #59
2019-07-23 20:41:34 +10:00
Azareal
ed68c6fc04 Add a simple letter favicon.
Disable Gzip for favicons, it doesn't make them smaller anyway.
Eliminate an allocation for static files.

Fixes #59
2019-07-23 20:34:44 +10:00
Azareal
101b1c51df Fix the empty route errors.
Updates #53
2019-07-12 07:27:08 +10:00