Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adding Combined modlog #5253

Merged
merged 101 commits into from
Jan 14, 2025
Merged

Adding Combined modlog #5253

merged 101 commits into from
Jan 14, 2025

Conversation

dessalines
Copy link
Member

@dessalines dessalines commented Dec 10, 2024

Context: #2444

Must come after #5251

Notes:

  • This removes all the individual modlog fetches into a single combined one, with a type_ filter.
  • 17 tables joined in total, with sometimes complicated joins required to fetch the derived data.
    • For example, mod_remove_post doesn't have the modded_person_id directly on it, it needs to get it from the post.creator_id column. I've tried to keep the joins as organized and well-commented as possible.
  • I've added a ton of tests, filtering different slices of all the filter types: community, post, comment, mod/admin, modded_person, and type. Its verbose, but its something we didn't have before.
  • Some of the mod views had missing fields that seemed important (occasionally it was missing a community or the modded person). I've added these.
  • I discovered a few errors and inconsistencies that I cleaned up.
  • There are plenty of breaking changes here, which includes the types coming back for the v3 routes. I am not going to do backwards compatibility for these types. That will have to be handled by API libraries switching on v.0.19 vs v.0.20.

dessalines and others added 30 commits November 26, 2024 09:27
* add pagination cursor

* store timestamp instead of id in cursor (partial)

* Revert "store timestamp instead of id in cursor (partial)"

This reverts commit 89359dd.

* use paginated query builder
- Separating the profile fetch from its combined content fetch.
- Starting to separate saved_only into its own combined view.
@dessalines dessalines marked this pull request as ready for review January 9, 2025 02:24
Comment on lines 1346 to 1352
let posts_mapped = &post_modlog.iter().filter_map(|p| {
if let ModlogCombinedView::ModRemovePost(v) = p {
Some(v)
} else {
None
}
});
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
let posts_mapped = &post_modlog.iter().filter_map(|p| {
if let ModlogCombinedView::ModRemovePost(v) = p {
Some(v)
} else {
None
}
});
let posts_mapped = &post_modlog.iter().filter_map(|p| {
if let ModlogCombinedView::ModRemovePost(v) = p {
Some((v.mod_remove_post.removed, v.post.removed))
} else {
None
}
}).collect::<Vec<bool>>();

then replace the things below with a single assert_eq

same can be done for the other uses of filter_map

Copy link
Member Author

@dessalines dessalines Jan 10, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

K done now. I didn't like doing it because its less clear now what they're doing, and these are just tests, where clarity should be preferred over code simplification.

Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think I came up with a style that's more simple and clear than the other two:

assert!(matches!(
  &post_modlog[..],
  [
    ModlogCombinedView::ModRemovePost(ModRemovePostView {
      mod_remove_post: ModRemovePost { removed: true, .. },
      post: Post { removed: true, .. },
      ..
    }),
    ModlogCombinedView::ModRemovePost(ModRemovePostView {
      mod_remove_post: ModRemovePost { removed: true, .. },
      post: Post { removed: true, .. },
      ..
    }),
  ],
));

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That does look much cleaner, I'll try it out.

"ModRemoveComment" => query.filter(modlog_combined::mod_remove_comment_id.eq(id)),
"ModRemoveCommunity" => query.filter(modlog_combined::mod_remove_community_id.eq(id)),
"ModRemovePost" => query.filter(modlog_combined::mod_remove_post_id.eq(id)),
"ModTransferCommunity" => query.filter(modlog_combined::mod_transfer_community_id.eq(id)),
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

EnumDiscriminants might help

crates/db_views_moderator/src/modlog_combined_view.rs Outdated Show resolved Hide resolved
crates/db_views_moderator/src/modlog_combined_view.rs Outdated Show resolved Hide resolved
crates/db_views_moderator/src/modlog_combined_view.rs Outdated Show resolved Hide resolved
@dessalines
Copy link
Member Author

dessalines commented Jan 10, 2025

Probably not worth it to do any of the enum work. All the other combined cases just use a single char for the paging, this one's unique in that there are 17 types it needs to combine.

EDIT: I'm reverting adding strum at all because of this.

@Nutomic Nutomic merged commit 9c1347c into main Jan 14, 2025
2 checks passed
@SleeplessOne1917 SleeplessOne1917 deleted the combined_modlog branch January 15, 2025 14:43
Nutomic pushed a commit that referenced this pull request Feb 4, 2025
* Combined tables try 2

* Finishing up combined report table.

* Fix ts optionals.

* Adding tests, triggers, and history updates for report_combined.

* Adding profile.

* Add cursor pagination to report_combined view (#5244)

* add pagination cursor

* store timestamp instead of id in cursor (partial)

* Revert "store timestamp instead of id in cursor (partial)"

This reverts commit 89359dd.

* use paginated query builder

* Fixing migration and paged API.

* Using dullbananas trigger procedure

* Removing pointless list routes, reorganizing tests.

* Fixing column XOR check.

* Forgot to remove list report actions.

* Cleanup.

* Use internal tagging.

* Fixing api tests.

* Adding a few indexes.

* Fixing migration name.

* Fixing unique constraints.

* Addressing PR comments.

* Start working on profile combined

* Adding views and replaceable schema.

* A few changes to profile view.

- Separating the profile fetch from its combined content fetch.
- Starting to separate saved_only into its own combined view.

* Finishing up combined person_saved and person_content.

* Fixing api tests.

* Moving to api-v4 routes.

* Fixing imports.

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update migrations/2024-12-02-181601_add_report_combined_table/up.sql

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update migrations/2024-12-02-181601_add_report_combined_table/up.sql

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Fixing import and fmt.

* Fixing null types in postgres.

* Comment out err.

* Fixing TS issues.

* Adding types, fixing allow and blocklist crud.

* Starting to work on combined views.

* Using dullbananas trigger procedure

* Adding the full combined view queries.

* Adding tests.

* taplo fmt.

* Upgrading package.json deps.

* Updating pnpm

* Addressing PR comments.

* Removing serialization

* Removing serialization

* Fixing duped trigger.

* Remove saved_only test.

* Remove pointless post_tags types.

* Remove pointless index.

* Changing published to saved for person_saved_combined.

* Removing comment.

* Renaming modlog when_ columns to published.

- Fixes #5312

* Adding strum and simplifying imports.

* Avoiding clone in map_to_enum

* Changing modded_person to other_person.

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Addressing PR comments.

* Fixing split.

* Revert "Adding strum and simplifying imports."

This reverts commit 15f1671.

* Running fmt.

* Using assert + matches instead of filter_map.

* Adding listPersonContent check.

---------

Co-authored-by: dullbananas <dull.bananas0@gmail.com>
dessalines added a commit that referenced this pull request Feb 5, 2025
* Improve email notification text

* fix translations

* Add markdown-it-footnotes (#5303)

* Remove unused param Create/EditSite.enable_nsfw

* Remove unnecessary Cargo.toml entry (#5279)

* Running cargo-wizard to speed up compilation times.

* Fix 1.

* Fix 2

* Removing panic abort, and config.toml file.

* Add custom migration runner, forbid some `diesel migration` commands, fix old migrations (#4673)

* Update schema.rs

* rename

* stuff

* finish new implementation of schema_setup::run (not including revert, test, etc.)

* fmt

* refactor

* fix sql

* migriation run command

* use trigger on migrations table

* add Options with disable_migrations field for test

* rename to enable_forbid_diesel_cli_trigger

* fix

* fix merge

* diff_checker (partial)

* Revert "diff_checker (partial)"

This reverts commit 6709882.

* Revert "Revert "diff_checker (partial)""

This reverts commit d4bdda5.

* diff check

* improve schema diff

* timestamp replacement

* ignore column order

* remove fedi_name default

* stuff

* improve diff

* stuff

* attempt parallel pg_dump

* attempt 2

* Revert "attempt 2"

This reverts commit a909d2d.

* Revert "attempt parallel pg_dump"

This reverts commit 592a127.

* improve diff check

* finish fixing migrations

* stuff

* use advisory lock

* stuff

* Update lib.rs

* fmt

* fmt

* clippy

* Update diff_check.rs

* Update .woodpecker.yml

* Update lib.rs

* Update lib.rs

* Update lib.rs

* Update .woodpecker.yml

* Update .woodpecker.yml

* Update lib.rs

* re-run ci

* fmt

* fmt

* Update .woodpecker.yml

* Update .woodpecker.yml

* create separate database in ci

* Update .woodpecker.yml

* Update .woodpecker.yml

* Update .woodpecker.yml

* Update .woodpecker.yml

* try to fix env var

* Update diff_check.rs

* Remove condition that's not needed anymore

* clippy

* exclude views and fast tables

* revert some migration changes

* fix

* fmt

* re-attempt checking character after skipped trigger name, and make code less confusing

* fmt

* fix

* rerun ci

* rerun ci

* fix strip_prefix order

* fix weird big Cargo.lock change by running `git checkout upstream/main Cargo.lock` then letting it auto update again

* fix

* remove installation commands that were removed in main branch

* Revert "remove installation commands that were removed in main branch"

This reverts commit fd65234.

* move create_database_user woodpecker step to make diff less weird

* fix clippy

* Make diff check work just like before

* Move new migrations to the end

* Revert changes to old migrations

* don't assume that migrations are already sorted

* retry CI

* fix merge

* find migrations dir in debug mode using CARGO_MANIFEST_DIR variable instead of current working directory

* always use embedded migrations

* improve doc comments for migration subcommand

* clippy fix

* move cfg(test) attribute to diff_check.rs

* copy `o` variable instead of calling `o` function

* use chrono::TimeDelta Display implementation to show migration duration

* Remove unused params on CreateSite/EditSite (#5311)

* Automatically marking posts created in an NSFW community as NSFW. (#5310)

* Automatically marking posts created in an NSFW community as NSFW.

- Context: LemmyNet/lemmy-ui#2885

* Update crates/api_crud/src/post/create.rs

Co-authored-by: Nutomic <me@nutomic.com>

---------

Co-authored-by: Nutomic <me@nutomic.com>

* Correct HTTP status for NotFound error (fixes #5309) (#5313)

* Fix incorrectly using delete instead of uplete in update_banned_when_expired (#5316)

* Remove unused apub audience field (fixes #5278) (#5315)

* Remove unused apub audience field (fixes #5278)

* fix

* fix test

* remove comments

* Change default image_mode to proxy, remove deprecated option (#5176)

* Change default image_mode to proxy, remove deprecated option

* fix api test

* Add community reports (only the database part) (#4996)

* database stuff, not including tests

* change migration date

* fix community_report_view

* update stuff related to report_combined

* add db_schema/src/impls/community_report.rs

* add report counts to community_aggregates

* fix community_report columns and update report_combined_view::tests::test_combined

* add column for original sidebar; use None instead of clone; add report_combined_view::tests::test_community_reports

* use ts(optional) in CommunityReportView

* remove CommunityReportView::read

* Correctly paginate PostView when read_only is enabled (#5320)

* Image api rework (#5260)

* Split image endpoints into API v3 and v4

* Move into subfolders

* Upload avatar endpoint and other changes

* Various other changes

fixes #1772
fixes #4001

* clippy

* config options

* fix ts bindings

* fix api tests

* Add option to disable image upload (fixes #1118)

* split files into upload, download

* move sitemap to top level, not in api

* simplify code

* add upload user banner

* community icon/banner

* site icon/banner

* update js client

* wip

* add delete endpoints

* change comment

* optimization

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* move fn

* 1024px banner

* dont use static client

* fix api tests

* shear

* proxy pictrs in request.rs (fixes #5270)

* clippy

* try to fix api tests

* skip api tests

* create user

* debug

* dbg

* test

* image

* run another

* fixed?

* clippy

* fix

* fix health check

---------

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Optimize migrations (#5301)

* Optimize migrations

* update smoosh migration

---------

Co-authored-by: Dessalines <tyhou13@gmx.com>

* Adding Combined modlog (#5253)

* Combined tables try 2

* Finishing up combined report table.

* Fix ts optionals.

* Adding tests, triggers, and history updates for report_combined.

* Adding profile.

* Add cursor pagination to report_combined view (#5244)

* add pagination cursor

* store timestamp instead of id in cursor (partial)

* Revert "store timestamp instead of id in cursor (partial)"

This reverts commit 89359dd.

* use paginated query builder

* Fixing migration and paged API.

* Using dullbananas trigger procedure

* Removing pointless list routes, reorganizing tests.

* Fixing column XOR check.

* Forgot to remove list report actions.

* Cleanup.

* Use internal tagging.

* Fixing api tests.

* Adding a few indexes.

* Fixing migration name.

* Fixing unique constraints.

* Addressing PR comments.

* Start working on profile combined

* Adding views and replaceable schema.

* A few changes to profile view.

- Separating the profile fetch from its combined content fetch.
- Starting to separate saved_only into its own combined view.

* Finishing up combined person_saved and person_content.

* Fixing api tests.

* Moving to api-v4 routes.

* Fixing imports.

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update migrations/2024-12-02-181601_add_report_combined_table/up.sql

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update migrations/2024-12-02-181601_add_report_combined_table/up.sql

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Fixing import and fmt.

* Fixing null types in postgres.

* Comment out err.

* Fixing TS issues.

* Adding types, fixing allow and blocklist crud.

* Starting to work on combined views.

* Using dullbananas trigger procedure

* Adding the full combined view queries.

* Adding tests.

* taplo fmt.

* Upgrading package.json deps.

* Updating pnpm

* Addressing PR comments.

* Removing serialization

* Removing serialization

* Fixing duped trigger.

* Remove saved_only test.

* Remove pointless post_tags types.

* Remove pointless index.

* Changing published to saved for person_saved_combined.

* Removing comment.

* Renaming modlog when_ columns to published.

- Fixes #5312

* Adding strum and simplifying imports.

* Avoiding clone in map_to_enum

* Changing modded_person to other_person.

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Addressing PR comments.

* Fixing split.

* Revert "Adding strum and simplifying imports."

This reverts commit 15f1671.

* Running fmt.

* Using assert + matches instead of filter_map.

* Adding listPersonContent check.

---------

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Fixing person_content_combined migration uniques. (#5324)

* Upgrading deps. (#5326)

* Upgrading deps.

* Upgrading a few more.

* A few more

* Pictrs delete token (#5317)

* Split image endpoints into API v3 and v4

* Move into subfolders

* Upload avatar endpoint and other changes

* Various other changes

fixes #1772
fixes #4001

* clippy

* config options

* fix ts bindings

* fix api tests

* Add option to disable image upload (fixes #1118)

* split files into upload, download

* move sitemap to top level, not in api

* simplify code

* add upload user banner

* community icon/banner

* site icon/banner

* update js client

* wip

* add delete endpoints

* change comment

* optimization

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* move fn

* 1024px banner

* dont use static client

* fix api tests

* shear

* proxy pictrs in request.rs (fixes #5270)

* clippy

* Get rid of pictrs delete token

* remove delete token params

* try to fix api tests

* fmt

* skip api tests

* clippy

* create user

* debug

* dbg

* ignore test

* test

* image

* run another

* fixed?

* clippy

* fix

* migration with column order

* drop default

* fix health check

* update client

* remove unused

* fix

* reuse delete_image_from_pictrs

* update lib

---------

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Adding combined inbox (#5257)

* Renaming person_mention to person_comment_mention.

* Finishing up post body mentions.

* Combined tables try 2

* Finishing up combined report table.

* Fix ts optionals.

* Adding tests, triggers, and history updates for report_combined.

* Adding profile.

* Add cursor pagination to report_combined view (#5244)

* add pagination cursor

* store timestamp instead of id in cursor (partial)

* Revert "store timestamp instead of id in cursor (partial)"

This reverts commit 89359dd.

* use paginated query builder

* Fixing migration and paged API.

* Using dullbananas trigger procedure

* Removing pointless list routes, reorganizing tests.

* Fixing column XOR check.

* Forgot to remove list report actions.

* Cleanup.

* Use internal tagging.

* Fixing api tests.

* Adding a few indexes.

* Fixing migration name.

* Fixing unique constraints.

* Addressing PR comments.

* Start working on profile combined

* Adding views and replaceable schema.

* A few changes to profile view.

- Separating the profile fetch from its combined content fetch.
- Starting to separate saved_only into its own combined view.

* Finishing up combined person_saved and person_content.

* Fixing api tests.

* Moving to api-v4 routes.

* Fixing imports.

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update migrations/2024-12-02-181601_add_report_combined_table/up.sql

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update migrations/2024-12-02-181601_add_report_combined_table/up.sql

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Fixing import and fmt.

* Fixing null types in postgres.

* Comment out err.

* Fixing TS issues.

* Adding types, fixing allow and blocklist crud.

* Starting to work on combined views.

* Using dullbananas trigger procedure

* Adding the full combined view queries.

* Adding tests.

* taplo fmt.

* Upgrading package.json deps.

* Updating pnpm

* Most of the bulk work done, need to add tests yet.

* Finishing up inbox.

* Using assert_length

* Fixing sql_format.

* Running fmt.

* Fixing cargo shear.

* Fixing clippy.

* Addressing PR comments.

* Removing serialization

* Removing serialization

* Fixing duped trigger.

* Remove saved_only test.

* Remove pointless post_tags types.

* Remove pointless index.

* Changing published to saved for person_saved_combined.

* Removing comment.

* Renaming modlog when_ columns to published.

- Fixes #5312

* Adding strum and simplifying imports.

* Avoiding clone in map_to_enum

* Changing modded_person to other_person.

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Addressing PR comments.

* Fixing split.

* Revert "Adding strum and simplifying imports."

This reverts commit 15f1671.

* Running fmt.

* Using assert + matches instead of filter_map.

* Adding listPersonContent check.

* Updating lemmy-js-client

* Fixing mark all as read route, changing mark read to SuccessResponse.

* Adding post body mention api test, fixing api tests.

* Fixing route locations, and api tests.

---------

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Add media filter setting (#5325)

* Add hide_media filter

* Test media is returned when hide_media is false

* Add GIN index

* SQL fmt

* Drop GIN index in migration

* Changes to get_random_community_id: add filters for nsfw and private, use algorthm that doesn't scan the entire table (#5267)

* get_random_community_id: add filters for nsfw and private, use algorithm that doesn't scan the entire table

* only call random_smallint once for filter

* change migration date

* make random_smallint function work in postgresql 16

* replace "32768 + 32767 + 1" with "65536" and improve comments

---------

Co-authored-by: Dessalines <dessalines@users.noreply.github.com>

* Add support for donation dialog (fixes #4856) (#5318)

* Add support for donation dialog (fixes #4856)

* more changes

* test

* remove files

* default value for new user last_donation_notification

* move disable_donation_dialog to local_site

* restore formatting

* Clean up LemmyError::status_code (#5330)

* Return correct status code for rate limit error (ref #5332) (#5333)

* Upgrading html2text. (#5336)

* Prevent incorrectly using delete instead of uplete (#5331)

* implement check and test it by modifying PostLike::remove

* revert change in PostLike::remove

* Implement request idempotency (fixes #4735) (#5329)

* Implement request idempotency (fixes #4735)

* delete old items

* clippy

* remove todo

* Skip api test for community follower count (fixes #5179) (#5339)

* Change federation community restricted check to apply only locally (#5343)

* Revert "Fetch community mods synchronously (#5169)"

This reverts commit 542e59b.

* change restricted check (fixes #5337)

* Send federated reports to all community mods (#5342)

* Move middleware code into api_routes for faster compilation (#5341)

* Move middleware code into api_routes for faster compilation

* fix wasm

* cleanup

* Hash check and retry for pictrs binary (#5345)

* Hash check and retry for pictrs binary

* retry limit

* Adding a slim comment_view variant, without post or community. (#5335)

* Adding a slim comment_view variant, without post or community.

- Fixes #2957

* Alternate version.

* Only clone if check.

* Revert "Alternate version."

This reverts commit 6449395.

* Remove trait.

* Change println! to debug! (#5346)

* Adding post_id and type_ filters to combined reports. (#5348)

* Adding post_id and type_ filters to combined reports.

- Added tests for these also.
- Some additional cleanup of the joins in reports_combined.
- Fixes #5265

* Adding period.

* Allow setting multiple values for cors_origin (fixes #5198) (#5353)

* Allow setting multiple values for cors_origin (fixes #5198)

* fmt

* mention env var

* Search combined (#5271)

* Renaming person_mention to person_comment_mention.

* Finishing up post body mentions.

* Combined tables try 2

* Finishing up combined report table.

* Fix ts optionals.

* Adding tests, triggers, and history updates for report_combined.

* Adding profile.

* Add cursor pagination to report_combined view (#5244)

* add pagination cursor

* store timestamp instead of id in cursor (partial)

* Revert "store timestamp instead of id in cursor (partial)"

This reverts commit 89359dd.

* use paginated query builder

* Fixing migration and paged API.

* Using dullbananas trigger procedure

* Removing pointless list routes, reorganizing tests.

* Fixing column XOR check.

* Forgot to remove list report actions.

* Cleanup.

* Use internal tagging.

* Fixing api tests.

* Adding a few indexes.

* Fixing migration name.

* Fixing unique constraints.

* Addressing PR comments.

* Start working on profile combined

* Adding views and replaceable schema.

* A few changes to profile view.

- Separating the profile fetch from its combined content fetch.
- Starting to separate saved_only into its own combined view.

* Finishing up combined person_saved and person_content.

* Fixing api tests.

* Moving to api-v4 routes.

* Fixing imports.

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update migrations/2024-12-02-181601_add_report_combined_table/up.sql

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update migrations/2024-12-02-181601_add_report_combined_table/up.sql

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Fixing import and fmt.

* Fixing null types in postgres.

* Comment out err.

* Fixing TS issues.

* Adding types, fixing allow and blocklist crud.

* Starting to work on combined views.

* Using dullbananas trigger procedure

* Adding the full combined view queries.

* Adding tests.

* taplo fmt.

* Upgrading package.json deps.

* Updating pnpm

* Most of the bulk work done, need to add tests yet.

* Finishing up inbox.

* Using assert_length

* Fixing sql_format.

* Running fmt.

* Fixing cargo shear.

* Fixing clippy.

* Addressing PR comments.

* Starting to work on search combined.

* Fix

* Removing serialization

* Removing serialization

* Moving db_views_actor and _moderator into db_views.

- This is necessary because the combined views use both, and that
  separation was arbitrary to begin with. db_schema has no such crate
  separation.

* Adding search combined view, need to write tests yet.

* Filters done, working on tests.

* Adding tests for person, post, and community.

* Finishing up tests.

* Fixing duped trigger.

* Remove saved_only test.

* Remove pointless post_tags types.

* Remove pointless index.

* Changing published to saved for person_saved_combined.

* Removing comment.

* Renaming modlog when_ columns to published.

- Fixes #5312

* Adding strum and simplifying imports.

* Avoiding clone in map_to_enum

* Changing modded_person to other_person.

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Addressing PR comments.

* Fixing split.

* Revert "Adding strum and simplifying imports."

This reverts commit 15f1671.

* Running fmt.

* Using assert + matches instead of filter_map.

* Adding listPersonContent check.

* Updating lemmy-js-client

* Fixing mark all as read route, changing mark read to SuccessResponse.

* Adding post body mention api test, fixing api tests.

* Fixing route locations, and api tests.

* Formatting sql.

* Formatting sql 2.

* Fixing search result, running clippy.

* Fixing ts_option.

* Adding search_combined.score column, and DB triggers.

* Fixing API tests.

* Adding an index for score.

* Update crates/db_schema/src/newtypes.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Avoiding inner joins for up.sql

* Adding person_aggregates.published column.

---------

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Add some url validation (#5338)

* Add some url validation

* use library fn

* manually follow redirects

* remove log

* avoid infinite redirect/infinite recursion

* fix

* upgrade lib

* check url scheme

* Only list local banned users (fixes #2961) (#5364)

* Remove instrument macros (#5368)

* Remove instrument macros

* shear

* revert test change

* clippy, another unused function

* Remove unused files (#5366)

* Deny unknown config fields (#5370)

* Only print migration output when running migrate command (#5363)

* Revert "Change println! to debug! (#5346)"

This reverts commit 8ee81a3.

* Using a custom print command.

* Fix missing word in create_triggers comment (#5375)

* Adding listing_type.ModeratorView for list communities. (#5377)

- Fixes #5352

* Use different counts for denominator in scaled rank for posts (#5261)

* Change 'Scaled' sort to use total interactions instead of monthly users

* Misc SQL fixes

* Fix formatting of error message

* Run rustfmt

* Using different corepack install method to fix corepack bug. (#5379)

- nodejs/corepack#612

* Federate "resolve report" action (#5367)

* Federete resolve report action (fixes #4744)

* working

* clippy and fixes

* fix test

* verify mod action

* add workaround for test

---------

Co-authored-by: Dessalines <dessalines@users.noreply.github.com>

* Use mimalloc as memory allocator (#5378)

Co-authored-by: Dessalines <dessalines@users.noreply.github.com>

* Converting joins, filters, and selects to common functions for DB views. (#5359)

* Renaming person_mention to person_comment_mention.

* Finishing up post body mentions.

* Combined tables try 2

* Finishing up combined report table.

* Fix ts optionals.

* Adding tests, triggers, and history updates for report_combined.

* Adding profile.

* Add cursor pagination to report_combined view (#5244)

* add pagination cursor

* store timestamp instead of id in cursor (partial)

* Revert "store timestamp instead of id in cursor (partial)"

This reverts commit 89359dd.

* use paginated query builder

* Fixing migration and paged API.

* Using dullbananas trigger procedure

* Removing pointless list routes, reorganizing tests.

* Fixing column XOR check.

* Forgot to remove list report actions.

* Cleanup.

* Use internal tagging.

* Fixing api tests.

* Adding a few indexes.

* Fixing migration name.

* Fixing unique constraints.

* Addressing PR comments.

* Start working on profile combined

* Adding views and replaceable schema.

* A few changes to profile view.

- Separating the profile fetch from its combined content fetch.
- Starting to separate saved_only into its own combined view.

* Finishing up combined person_saved and person_content.

* Fixing api tests.

* Moving to api-v4 routes.

* Fixing imports.

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update migrations/2024-12-02-181601_add_report_combined_table/up.sql

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update migrations/2024-12-02-181601_add_report_combined_table/up.sql

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Fixing import and fmt.

* Fixing null types in postgres.

* Comment out err.

* Fixing TS issues.

* Adding types, fixing allow and blocklist crud.

* Starting to work on combined views.

* Using dullbananas trigger procedure

* Adding the full combined view queries.

* Adding tests.

* taplo fmt.

* Upgrading package.json deps.

* Updating pnpm

* Most of the bulk work done, need to add tests yet.

* Finishing up inbox.

* Using assert_length

* Fixing sql_format.

* Running fmt.

* Fixing cargo shear.

* Fixing clippy.

* Addressing PR comments.

* Starting to work on search combined.

* Fix

* Removing serialization

* Removing serialization

* Moving db_views_actor and _moderator into db_views.

- This is necessary because the combined views use both, and that
  separation was arbitrary to begin with. db_schema has no such crate
  separation.

* Adding search combined view, need to write tests yet.

* Filters done, working on tests.

* Adding tests for person, post, and community.

* Finishing up tests.

* Fixing duped trigger.

* Remove saved_only test.

* Remove pointless post_tags types.

* Remove pointless index.

* Changing published to saved for person_saved_combined.

* Removing comment.

* Renaming modlog when_ columns to published.

- Fixes #5312

* Adding strum and simplifying imports.

* Avoiding clone in map_to_enum

* Changing modded_person to other_person.

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Addressing PR comments.

* Fixing split.

* Revert "Adding strum and simplifying imports."

This reverts commit 15f1671.

* Running fmt.

* Using assert + matches instead of filter_map.

* Adding listPersonContent check.

* Updating lemmy-js-client

* Fixing mark all as read route, changing mark read to SuccessResponse.

* Adding post body mention api test, fixing api tests.

* Fixing route locations, and api tests.

* Formatting sql.

* Formatting sql 2.

* Fixing search result, running clippy.

* Fixing ts_option.

* Adding search_combined.score column, and DB triggers.

* Fixing API tests.

* Adding an index for score.

* Using next_back instead of last.

* Converting local_user_view to use diesel auto_type.

* Use AllColumns as suggested by weiznich to simplify Type.

* Registration application view.

* Person view simplifying.

* Community view.

* Community moderator view.

* Community view.

* Community follower view.

* Community moderator view.

* Person view.

* Custom emoji view.

* Local image view.

* Removing strum from db_views.

* Update crates/db_schema/src/newtypes.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Adding an action_utils.

* Avoiding inner joins for up.sql

* Adding person_aggregates.published column.

* Remove unused private message view.

* Implementing Selectable for DB views, moving joins inside impl.

* Adding a few more.

* Fixing imports.

* fmt.

* Post view.

* Comment view.

* Inbox combined view.

* Modlog combined view.

* The rest of the combined tables.

* Finishing up.

* Fixing shear.

* Fixing cargo.toml.

* Use 1.81 image.

* Fix api common.

* Fixing merge issues.

---------

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Version 0.20.0-alpha.0

* lint

* fix braces

---------

Co-authored-by: James Hoffman <purpledungeoncrab@protonmail.com>
Co-authored-by: flamingos-cant <45780476+flamingo-cant-draw@users.noreply.github.com>
Co-authored-by: Dessalines <dessalines@users.noreply.github.com>
Co-authored-by: dullbananas <dull.bananas0@gmail.com>
Co-authored-by: Dessalines <tyhou13@gmx.com>
Co-authored-by: andrewmoise <andrew.moise@gmail.com>
Nutomic added a commit that referenced this pull request Feb 6, 2025
* Improve email notification text

* fix translations

* Add markdown-it-footnotes (#5303)

* Remove unused param Create/EditSite.enable_nsfw

* Remove unnecessary Cargo.toml entry (#5279)

* Running cargo-wizard to speed up compilation times.

* Fix 1.

* Fix 2

* Removing panic abort, and config.toml file.

* Add custom migration runner, forbid some `diesel migration` commands, fix old migrations (#4673)

* Update schema.rs

* rename

* stuff

* finish new implementation of schema_setup::run (not including revert, test, etc.)

* fmt

* refactor

* fix sql

* migriation run command

* use trigger on migrations table

* add Options with disable_migrations field for test

* rename to enable_forbid_diesel_cli_trigger

* fix

* fix merge

* diff_checker (partial)

* Revert "diff_checker (partial)"

This reverts commit 6709882.

* Revert "Revert "diff_checker (partial)""

This reverts commit d4bdda5.

* diff check

* improve schema diff

* timestamp replacement

* ignore column order

* remove fedi_name default

* stuff

* improve diff

* stuff

* attempt parallel pg_dump

* attempt 2

* Revert "attempt 2"

This reverts commit a909d2d.

* Revert "attempt parallel pg_dump"

This reverts commit 592a127.

* improve diff check

* finish fixing migrations

* stuff

* use advisory lock

* stuff

* Update lib.rs

* fmt

* fmt

* clippy

* Update diff_check.rs

* Update .woodpecker.yml

* Update lib.rs

* Update lib.rs

* Update lib.rs

* Update .woodpecker.yml

* Update .woodpecker.yml

* Update lib.rs

* re-run ci

* fmt

* fmt

* Update .woodpecker.yml

* Update .woodpecker.yml

* create separate database in ci

* Update .woodpecker.yml

* Update .woodpecker.yml

* Update .woodpecker.yml

* Update .woodpecker.yml

* try to fix env var

* Update diff_check.rs

* Remove condition that's not needed anymore

* clippy

* exclude views and fast tables

* revert some migration changes

* fix

* fmt

* re-attempt checking character after skipped trigger name, and make code less confusing

* fmt

* fix

* rerun ci

* rerun ci

* fix strip_prefix order

* fix weird big Cargo.lock change by running `git checkout upstream/main Cargo.lock` then letting it auto update again

* fix

* remove installation commands that were removed in main branch

* Revert "remove installation commands that were removed in main branch"

This reverts commit fd65234.

* move create_database_user woodpecker step to make diff less weird

* fix clippy

* Make diff check work just like before

* Move new migrations to the end

* Revert changes to old migrations

* don't assume that migrations are already sorted

* retry CI

* fix merge

* find migrations dir in debug mode using CARGO_MANIFEST_DIR variable instead of current working directory

* always use embedded migrations

* improve doc comments for migration subcommand

* clippy fix

* move cfg(test) attribute to diff_check.rs

* copy `o` variable instead of calling `o` function

* use chrono::TimeDelta Display implementation to show migration duration

* Remove unused params on CreateSite/EditSite (#5311)

* Automatically marking posts created in an NSFW community as NSFW. (#5310)

* Automatically marking posts created in an NSFW community as NSFW.

- Context: LemmyNet/lemmy-ui#2885

* Update crates/api_crud/src/post/create.rs

Co-authored-by: Nutomic <me@nutomic.com>

---------

Co-authored-by: Nutomic <me@nutomic.com>

* Correct HTTP status for NotFound error (fixes #5309) (#5313)

* Fix incorrectly using delete instead of uplete in update_banned_when_expired (#5316)

* Remove unused apub audience field (fixes #5278) (#5315)

* Remove unused apub audience field (fixes #5278)

* fix

* fix test

* remove comments

* Change default image_mode to proxy, remove deprecated option (#5176)

* Change default image_mode to proxy, remove deprecated option

* fix api test

* Add community reports (only the database part) (#4996)

* database stuff, not including tests

* change migration date

* fix community_report_view

* update stuff related to report_combined

* add db_schema/src/impls/community_report.rs

* add report counts to community_aggregates

* fix community_report columns and update report_combined_view::tests::test_combined

* add column for original sidebar; use None instead of clone; add report_combined_view::tests::test_community_reports

* use ts(optional) in CommunityReportView

* remove CommunityReportView::read

* Correctly paginate PostView when read_only is enabled (#5320)

* Image api rework (#5260)

* Split image endpoints into API v3 and v4

* Move into subfolders

* Upload avatar endpoint and other changes

* Various other changes

fixes #1772
fixes #4001

* clippy

* config options

* fix ts bindings

* fix api tests

* Add option to disable image upload (fixes #1118)

* split files into upload, download

* move sitemap to top level, not in api

* simplify code

* add upload user banner

* community icon/banner

* site icon/banner

* update js client

* wip

* add delete endpoints

* change comment

* optimization

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* move fn

* 1024px banner

* dont use static client

* fix api tests

* shear

* proxy pictrs in request.rs (fixes #5270)

* clippy

* try to fix api tests

* skip api tests

* create user

* debug

* dbg

* test

* image

* run another

* fixed?

* clippy

* fix

* fix health check

---------

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Optimize migrations (#5301)

* Optimize migrations

* update smoosh migration

---------

Co-authored-by: Dessalines <tyhou13@gmx.com>

* Adding Combined modlog (#5253)

* Combined tables try 2

* Finishing up combined report table.

* Fix ts optionals.

* Adding tests, triggers, and history updates for report_combined.

* Adding profile.

* Add cursor pagination to report_combined view (#5244)

* add pagination cursor

* store timestamp instead of id in cursor (partial)

* Revert "store timestamp instead of id in cursor (partial)"

This reverts commit 89359dd.

* use paginated query builder

* Fixing migration and paged API.

* Using dullbananas trigger procedure

* Removing pointless list routes, reorganizing tests.

* Fixing column XOR check.

* Forgot to remove list report actions.

* Cleanup.

* Use internal tagging.

* Fixing api tests.

* Adding a few indexes.

* Fixing migration name.

* Fixing unique constraints.

* Addressing PR comments.

* Start working on profile combined

* Adding views and replaceable schema.

* A few changes to profile view.

- Separating the profile fetch from its combined content fetch.
- Starting to separate saved_only into its own combined view.

* Finishing up combined person_saved and person_content.

* Fixing api tests.

* Moving to api-v4 routes.

* Fixing imports.

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update migrations/2024-12-02-181601_add_report_combined_table/up.sql

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update migrations/2024-12-02-181601_add_report_combined_table/up.sql

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Fixing import and fmt.

* Fixing null types in postgres.

* Comment out err.

* Fixing TS issues.

* Adding types, fixing allow and blocklist crud.

* Starting to work on combined views.

* Using dullbananas trigger procedure

* Adding the full combined view queries.

* Adding tests.

* taplo fmt.

* Upgrading package.json deps.

* Updating pnpm

* Addressing PR comments.

* Removing serialization

* Removing serialization

* Fixing duped trigger.

* Remove saved_only test.

* Remove pointless post_tags types.

* Remove pointless index.

* Changing published to saved for person_saved_combined.

* Removing comment.

* Renaming modlog when_ columns to published.

- Fixes #5312

* Adding strum and simplifying imports.

* Avoiding clone in map_to_enum

* Changing modded_person to other_person.

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Addressing PR comments.

* Fixing split.

* Revert "Adding strum and simplifying imports."

This reverts commit 15f1671.

* Running fmt.

* Using assert + matches instead of filter_map.

* Adding listPersonContent check.

---------

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Fixing person_content_combined migration uniques. (#5324)

* Upgrading deps. (#5326)

* Upgrading deps.

* Upgrading a few more.

* A few more

* Pictrs delete token (#5317)

* Split image endpoints into API v3 and v4

* Move into subfolders

* Upload avatar endpoint and other changes

* Various other changes

fixes #1772
fixes #4001

* clippy

* config options

* fix ts bindings

* fix api tests

* Add option to disable image upload (fixes #1118)

* split files into upload, download

* move sitemap to top level, not in api

* simplify code

* add upload user banner

* community icon/banner

* site icon/banner

* update js client

* wip

* add delete endpoints

* change comment

* optimization

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* move fn

* 1024px banner

* dont use static client

* fix api tests

* shear

* proxy pictrs in request.rs (fixes #5270)

* clippy

* Get rid of pictrs delete token

* remove delete token params

* try to fix api tests

* fmt

* skip api tests

* clippy

* create user

* debug

* dbg

* ignore test

* test

* image

* run another

* fixed?

* clippy

* fix

* migration with column order

* drop default

* fix health check

* update client

* remove unused

* fix

* reuse delete_image_from_pictrs

* update lib

---------

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Adding combined inbox (#5257)

* Renaming person_mention to person_comment_mention.

* Finishing up post body mentions.

* Combined tables try 2

* Finishing up combined report table.

* Fix ts optionals.

* Adding tests, triggers, and history updates for report_combined.

* Adding profile.

* Add cursor pagination to report_combined view (#5244)

* add pagination cursor

* store timestamp instead of id in cursor (partial)

* Revert "store timestamp instead of id in cursor (partial)"

This reverts commit 89359dd.

* use paginated query builder

* Fixing migration and paged API.

* Using dullbananas trigger procedure

* Removing pointless list routes, reorganizing tests.

* Fixing column XOR check.

* Forgot to remove list report actions.

* Cleanup.

* Use internal tagging.

* Fixing api tests.

* Adding a few indexes.

* Fixing migration name.

* Fixing unique constraints.

* Addressing PR comments.

* Start working on profile combined

* Adding views and replaceable schema.

* A few changes to profile view.

- Separating the profile fetch from its combined content fetch.
- Starting to separate saved_only into its own combined view.

* Finishing up combined person_saved and person_content.

* Fixing api tests.

* Moving to api-v4 routes.

* Fixing imports.

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update migrations/2024-12-02-181601_add_report_combined_table/up.sql

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update migrations/2024-12-02-181601_add_report_combined_table/up.sql

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Fixing import and fmt.

* Fixing null types in postgres.

* Comment out err.

* Fixing TS issues.

* Adding types, fixing allow and blocklist crud.

* Starting to work on combined views.

* Using dullbananas trigger procedure

* Adding the full combined view queries.

* Adding tests.

* taplo fmt.

* Upgrading package.json deps.

* Updating pnpm

* Most of the bulk work done, need to add tests yet.

* Finishing up inbox.

* Using assert_length

* Fixing sql_format.

* Running fmt.

* Fixing cargo shear.

* Fixing clippy.

* Addressing PR comments.

* Removing serialization

* Removing serialization

* Fixing duped trigger.

* Remove saved_only test.

* Remove pointless post_tags types.

* Remove pointless index.

* Changing published to saved for person_saved_combined.

* Removing comment.

* Renaming modlog when_ columns to published.

- Fixes #5312

* Adding strum and simplifying imports.

* Avoiding clone in map_to_enum

* Changing modded_person to other_person.

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Addressing PR comments.

* Fixing split.

* Revert "Adding strum and simplifying imports."

This reverts commit 15f1671.

* Running fmt.

* Using assert + matches instead of filter_map.

* Adding listPersonContent check.

* Updating lemmy-js-client

* Fixing mark all as read route, changing mark read to SuccessResponse.

* Adding post body mention api test, fixing api tests.

* Fixing route locations, and api tests.

---------

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Add media filter setting (#5325)

* Add hide_media filter

* Test media is returned when hide_media is false

* Add GIN index

* SQL fmt

* Drop GIN index in migration

* Changes to get_random_community_id: add filters for nsfw and private, use algorthm that doesn't scan the entire table (#5267)

* get_random_community_id: add filters for nsfw and private, use algorithm that doesn't scan the entire table

* only call random_smallint once for filter

* change migration date

* make random_smallint function work in postgresql 16

* replace "32768 + 32767 + 1" with "65536" and improve comments

---------

Co-authored-by: Dessalines <dessalines@users.noreply.github.com>

* Add support for donation dialog (fixes #4856) (#5318)

* Add support for donation dialog (fixes #4856)

* more changes

* test

* remove files

* default value for new user last_donation_notification

* move disable_donation_dialog to local_site

* restore formatting

* Clean up LemmyError::status_code (#5330)

* Return correct status code for rate limit error (ref #5332) (#5333)

* Upgrading html2text. (#5336)

* Prevent incorrectly using delete instead of uplete (#5331)

* implement check and test it by modifying PostLike::remove

* revert change in PostLike::remove

* Implement request idempotency (fixes #4735) (#5329)

* Implement request idempotency (fixes #4735)

* delete old items

* clippy

* remove todo

* Skip api test for community follower count (fixes #5179) (#5339)

* Change federation community restricted check to apply only locally (#5343)

* Revert "Fetch community mods synchronously (#5169)"

This reverts commit 542e59b.

* change restricted check (fixes #5337)

* Send federated reports to all community mods (#5342)

* Move middleware code into api_routes for faster compilation (#5341)

* Move middleware code into api_routes for faster compilation

* fix wasm

* cleanup

* Hash check and retry for pictrs binary (#5345)

* Hash check and retry for pictrs binary

* retry limit

* Adding a slim comment_view variant, without post or community. (#5335)

* Adding a slim comment_view variant, without post or community.

- Fixes #2957

* Alternate version.

* Only clone if check.

* Revert "Alternate version."

This reverts commit 6449395.

* Remove trait.

* Change println! to debug! (#5346)

* Adding post_id and type_ filters to combined reports. (#5348)

* Adding post_id and type_ filters to combined reports.

- Added tests for these also.
- Some additional cleanup of the joins in reports_combined.
- Fixes #5265

* Adding period.

* Allow setting multiple values for cors_origin (fixes #5198) (#5353)

* Allow setting multiple values for cors_origin (fixes #5198)

* fmt

* mention env var

* Search combined (#5271)

* Renaming person_mention to person_comment_mention.

* Finishing up post body mentions.

* Combined tables try 2

* Finishing up combined report table.

* Fix ts optionals.

* Adding tests, triggers, and history updates for report_combined.

* Adding profile.

* Add cursor pagination to report_combined view (#5244)

* add pagination cursor

* store timestamp instead of id in cursor (partial)

* Revert "store timestamp instead of id in cursor (partial)"

This reverts commit 89359dd.

* use paginated query builder

* Fixing migration and paged API.

* Using dullbananas trigger procedure

* Removing pointless list routes, reorganizing tests.

* Fixing column XOR check.

* Forgot to remove list report actions.

* Cleanup.

* Use internal tagging.

* Fixing api tests.

* Adding a few indexes.

* Fixing migration name.

* Fixing unique constraints.

* Addressing PR comments.

* Start working on profile combined

* Adding views and replaceable schema.

* A few changes to profile view.

- Separating the profile fetch from its combined content fetch.
- Starting to separate saved_only into its own combined view.

* Finishing up combined person_saved and person_content.

* Fixing api tests.

* Moving to api-v4 routes.

* Fixing imports.

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update migrations/2024-12-02-181601_add_report_combined_table/up.sql

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update migrations/2024-12-02-181601_add_report_combined_table/up.sql

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Fixing import and fmt.

* Fixing null types in postgres.

* Comment out err.

* Fixing TS issues.

* Adding types, fixing allow and blocklist crud.

* Starting to work on combined views.

* Using dullbananas trigger procedure

* Adding the full combined view queries.

* Adding tests.

* taplo fmt.

* Upgrading package.json deps.

* Updating pnpm

* Most of the bulk work done, need to add tests yet.

* Finishing up inbox.

* Using assert_length

* Fixing sql_format.

* Running fmt.

* Fixing cargo shear.

* Fixing clippy.

* Addressing PR comments.

* Starting to work on search combined.

* Fix

* Removing serialization

* Removing serialization

* Moving db_views_actor and _moderator into db_views.

- This is necessary because the combined views use both, and that
  separation was arbitrary to begin with. db_schema has no such crate
  separation.

* Adding search combined view, need to write tests yet.

* Filters done, working on tests.

* Adding tests for person, post, and community.

* Finishing up tests.

* Fixing duped trigger.

* Remove saved_only test.

* Remove pointless post_tags types.

* Remove pointless index.

* Changing published to saved for person_saved_combined.

* Removing comment.

* Renaming modlog when_ columns to published.

- Fixes #5312

* Adding strum and simplifying imports.

* Avoiding clone in map_to_enum

* Changing modded_person to other_person.

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Addressing PR comments.

* Fixing split.

* Revert "Adding strum and simplifying imports."

This reverts commit 15f1671.

* Running fmt.

* Using assert + matches instead of filter_map.

* Adding listPersonContent check.

* Updating lemmy-js-client

* Fixing mark all as read route, changing mark read to SuccessResponse.

* Adding post body mention api test, fixing api tests.

* Fixing route locations, and api tests.

* Formatting sql.

* Formatting sql 2.

* Fixing search result, running clippy.

* Fixing ts_option.

* Adding search_combined.score column, and DB triggers.

* Fixing API tests.

* Adding an index for score.

* Update crates/db_schema/src/newtypes.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Avoiding inner joins for up.sql

* Adding person_aggregates.published column.

---------

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Add some url validation (#5338)

* Add some url validation

* use library fn

* manually follow redirects

* remove log

* avoid infinite redirect/infinite recursion

* fix

* upgrade lib

* check url scheme

* Only list local banned users (fixes #2961) (#5364)

* Remove instrument macros (#5368)

* Remove instrument macros

* shear

* revert test change

* clippy, another unused function

* Remove unused files (#5366)

* Deny unknown config fields (#5370)

* Only print migration output when running migrate command (#5363)

* Revert "Change println! to debug! (#5346)"

This reverts commit 8ee81a3.

* Using a custom print command.

* Fix missing word in create_triggers comment (#5375)

* Adding listing_type.ModeratorView for list communities. (#5377)

- Fixes #5352

* Use different counts for denominator in scaled rank for posts (#5261)

* Change 'Scaled' sort to use total interactions instead of monthly users

* Misc SQL fixes

* Fix formatting of error message

* Run rustfmt

* Using different corepack install method to fix corepack bug. (#5379)

- nodejs/corepack#612

* Federate "resolve report" action (#5367)

* Federete resolve report action (fixes #4744)

* working

* clippy and fixes

* fix test

* verify mod action

* add workaround for test

---------

Co-authored-by: Dessalines <dessalines@users.noreply.github.com>

* Use mimalloc as memory allocator (#5378)

Co-authored-by: Dessalines <dessalines@users.noreply.github.com>

* Converting joins, filters, and selects to common functions for DB views. (#5359)

* Renaming person_mention to person_comment_mention.

* Finishing up post body mentions.

* Combined tables try 2

* Finishing up combined report table.

* Fix ts optionals.

* Adding tests, triggers, and history updates for report_combined.

* Adding profile.

* Add cursor pagination to report_combined view (#5244)

* add pagination cursor

* store timestamp instead of id in cursor (partial)

* Revert "store timestamp instead of id in cursor (partial)"

This reverts commit 89359dd.

* use paginated query builder

* Fixing migration and paged API.

* Using dullbananas trigger procedure

* Removing pointless list routes, reorganizing tests.

* Fixing column XOR check.

* Forgot to remove list report actions.

* Cleanup.

* Use internal tagging.

* Fixing api tests.

* Adding a few indexes.

* Fixing migration name.

* Fixing unique constraints.

* Addressing PR comments.

* Start working on profile combined

* Adding views and replaceable schema.

* A few changes to profile view.

- Separating the profile fetch from its combined content fetch.
- Starting to separate saved_only into its own combined view.

* Finishing up combined person_saved and person_content.

* Fixing api tests.

* Moving to api-v4 routes.

* Fixing imports.

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views/src/report_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update migrations/2024-12-02-181601_add_report_combined_table/up.sql

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update migrations/2024-12-02-181601_add_report_combined_table/up.sql

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Fixing import and fmt.

* Fixing null types in postgres.

* Comment out err.

* Fixing TS issues.

* Adding types, fixing allow and blocklist crud.

* Starting to work on combined views.

* Using dullbananas trigger procedure

* Adding the full combined view queries.

* Adding tests.

* taplo fmt.

* Upgrading package.json deps.

* Updating pnpm

* Most of the bulk work done, need to add tests yet.

* Finishing up inbox.

* Using assert_length

* Fixing sql_format.

* Running fmt.

* Fixing cargo shear.

* Fixing clippy.

* Addressing PR comments.

* Starting to work on search combined.

* Fix

* Removing serialization

* Removing serialization

* Moving db_views_actor and _moderator into db_views.

- This is necessary because the combined views use both, and that
  separation was arbitrary to begin with. db_schema has no such crate
  separation.

* Adding search combined view, need to write tests yet.

* Filters done, working on tests.

* Adding tests for person, post, and community.

* Finishing up tests.

* Fixing duped trigger.

* Remove saved_only test.

* Remove pointless post_tags types.

* Remove pointless index.

* Changing published to saved for person_saved_combined.

* Removing comment.

* Renaming modlog when_ columns to published.

- Fixes #5312

* Adding strum and simplifying imports.

* Avoiding clone in map_to_enum

* Changing modded_person to other_person.

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Update crates/db_views_moderator/src/modlog_combined_view.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Addressing PR comments.

* Fixing split.

* Revert "Adding strum and simplifying imports."

This reverts commit 15f1671.

* Running fmt.

* Using assert + matches instead of filter_map.

* Adding listPersonContent check.

* Updating lemmy-js-client

* Fixing mark all as read route, changing mark read to SuccessResponse.

* Adding post body mention api test, fixing api tests.

* Fixing route locations, and api tests.

* Formatting sql.

* Formatting sql 2.

* Fixing search result, running clippy.

* Fixing ts_option.

* Adding search_combined.score column, and DB triggers.

* Fixing API tests.

* Adding an index for score.

* Using next_back instead of last.

* Converting local_user_view to use diesel auto_type.

* Use AllColumns as suggested by weiznich to simplify Type.

* Registration application view.

* Person view simplifying.

* Community view.

* Community moderator view.

* Community view.

* Community follower view.

* Community moderator view.

* Person view.

* Custom emoji view.

* Local image view.

* Removing strum from db_views.

* Update crates/db_schema/src/newtypes.rs

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Adding an action_utils.

* Avoiding inner joins for up.sql

* Adding person_aggregates.published column.

* Remove unused private message view.

* Implementing Selectable for DB views, moving joins inside impl.

* Adding a few more.

* Fixing imports.

* fmt.

* Post view.

* Comment view.

* Inbox combined view.

* Modlog combined view.

* The rest of the combined tables.

* Finishing up.

* Fixing shear.

* Fixing cargo.toml.

* Use 1.81 image.

* Fix api common.

* Fixing merge issues.

---------

Co-authored-by: dullbananas <dull.bananas0@gmail.com>

* Version 0.20.0-alpha.0

* lint

* fix braces

---------

Co-authored-by: James Hoffman <purpledungeoncrab@protonmail.com>
Co-authored-by: flamingos-cant <45780476+flamingo-cant-draw@users.noreply.github.com>
Co-authored-by: Dessalines <dessalines@users.noreply.github.com>
Co-authored-by: dullbananas <dull.bananas0@gmail.com>
Co-authored-by: Dessalines <tyhou13@gmx.com>
Co-authored-by: andrewmoise <andrew.moise@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants