about summary refs log tree commit diff
path: root/app/services
AgeCommit message (Collapse)Author
2023-03-15Change sidekiq-bulk's batch size from 10,000 to 1,000 jobs in one Redis call ↵Claire
(#24034)
2023-03-04Upgrade to latest redis-rb 4.x and fix deprecations (#23616)Jean byroot Boussier
Co-authored-by: Jean Boussier <jean.boussier@gmail.com>
2023-03-03Fix original account being unfollowed on migration before the follow request ↵Claire
could be sent (#21957)
2023-03-03Only offer translation for supported languages (#23879)Christian Schmidt
2023-03-03Fix “Remove all followers from the selected domains” being more ↵Claire
destructive than it claims (#23805)
2023-02-28Autofix Rubocop Style/HashConversion (#23852)Nick Schonning
2023-02-22Autofix Rubocop Rails/Blank (#23765)Nick Schonning
2023-02-22Enable Rubocop Style/StringConcatenation defaults (#23792)Nick Schonning
2023-02-20Autofix Rubocop Style/RescueStandardError (#23745)Nick Schonning
2023-02-20Autofix Rubocop remaining Layout rules (#23679)Nick Schonning
2023-02-19Autofix Rubocop Style/RedundantBegin (#23703)Nick Schonning
2023-02-18Autofix Rubocop Style/IfUnlessModifier (#23697)Nick Schonning
2023-02-18Autofix Rubocop Lint/SymbolConversion (#23683)Nick Schonning
2023-02-18Run rubocop formatting except line length (#23632)Nick Schonning
2023-02-13Add API parameter to safeguard unexpect mentions in new posts (#18350)Claire
2023-02-10Fix unbounded recursion in post discovery (#23506)Claire
* Add a limit to how many posts can get fetched as a result of a single request * Add tests * Always pass `request_id` when processing `Announce` activities --------- Co-authored-by: nametoolong <nametoolong@users.noreply.github.com>
2023-02-08Apply Rubocop Style/NegatedIfElseCondition (#23451)Nick Schonning
2023-02-07Autofix Rails/EagerEvaluationLogMessage (#23429)Nick Schonning
* Autofix Rails/EagerEvaluationLogMessage * Update spec for debug block syntax
2023-02-06Fix ActivityPub::ProcessingWorker error on incoming malformed JSON-LD (#23416)Claire
2023-01-23Suppress AddressFamilyError in link verification (#23204)Markus Unterwaditzer
* Suppress AddressFamilyError * clarify comment
2023-01-21Revert "Remove LDSignature on actor Delete activities (#21466)" (#23185)Claire
This reverts commit f4f2b062ec7827ed7749d85579aca2da2ec40593.
2023-01-18Add more specific error messages to HTTP signature verification (#21617)Claire
* Return specific error on failure to parse Date header * Add error message when preferredUsername is not set * Change error report to be JSON and include more details * Change error report to differentiate unknown account and failed refresh * Add tests
2023-01-18Add support for editing media description and focus point of already-posted ↵Claire
statuses (#20878) * Add backend support for editing media attachments of existing posts * Allow editing media attachments of already-posted toots * Add tests
2023-01-11fix: allow verification when page size exceeds 1MB (using HTML5 parser) (#22879)Markus Unterwaditzer
* fix: allow verification when page size exceeds 1MB Truncates the page after 1MB instead Closes #15316 * switch to HTML5 parser, fix rubocop errors * undo rubocop fixes Co-authored-by: Chris Zubak-Skees <chriszs@gmail.com>
2023-01-11Fix/remove calling private method with send in model (#22951)Kaspar V
* fix(status): remove send usage for private unlink_from_conversations - make unlink_from_conversations public method - rename unlink_from_conversations to unlink_from_conversations! - fix send call on private method in statuses_vacuum and batched_remove_status_service * fix(feeds_vacuum): replace find_in_batches with in_batches because active record query results should be a little more efficient than itterating with map and each. Postgres can grasp such lists of ids much quicker than ruby can. Will probably make allmost no difference, but cannot hurt either.
2023-01-05Fix possible race conditions when suspending/unsuspending accounts (#22363)Claire
* Fix possible race conditions when suspending/unsuspending accounts * Fix tests Tests were assuming SuspensionWorker and UnsuspensionWorker would do the suspending/unsuspending themselves, but this has changed.
2023-01-05Be more lenient with OEmbed detection and validation (#22533)Effy Elden
2022-12-19Fix suspension worker crashing on S3-compatible setups without ACL support ↵Claire
(#22487)
2022-12-15Ensure exact match is the first result in hashtag searches (#21315)Claire
Fixes #17494
2022-12-15Change remote media files to be downloaded outside of transactions (#21796)Claire
2022-12-15Fix idempotency when database writes are slow (#21840)Brian Campbell
There is an idempotency key generated by clients when authoring a post, and stored in Redis, to ensure that if a user or client retries posting the same status, we don't get a duplicate. Hachyderm.io has been experiencing some filesystem and database performance issues, causing database writes to be slow. This can mean that there are successful posts, but the reverse proxy returns 504 Gateway Timeout before the idempotency status has been updated; users or clients who retry (such as Tusky which retries automatically, see tuskyapp/Tusky#2951) can re-try the same post with the same idempotency key before it has actually been recorded in Redis, leading to duplicate posts. To address this issue, move all of the database updates after the initial transaction that creates the status into the `postprocess_status!` method, so we can insert the idempotency key immediately after the status has been created, significantly reducing the window in which the status could be created but the idempotency key not yet stored. Note: this has not yet been tested; I'm submitting this PR for discussion and to offer to the Hachyderm.io admins to try out to fix the multiple posting problem. Co-authored-by: Brian Campbell <brcampbell@beta.team>
2022-12-07Fix unbounded recursion in account discovery (#22025)Claire
* Fix trying to fetch posts from other users when fetching featured posts * Rate-limit discovery of new subdomains * Put a limit on recursively discovering new accounts
2022-11-27Remove LDSignature on actor Delete activities (#21466)Claire
They are currently not used for anything and represent more than half of the payload size.
2022-11-27Fix attachments of edited statuses not being fetched (#21565)Claire
* Fix attachments of edited statuses not being fetched * Fix tests
2022-11-17Handle links with no href in VerifyLinkService (#20741)Joshua Wood
Before this change, the following error would cause VerifyAccountLinksWorker to fail: NoMethodError: undefined method `downcase' for nil:NilClass [PROJECT_ROOT]/app/services/verify_link_service.rb:31 :in `block in link_back_present?`
2022-11-14Support UTF-8 Characters in Domains During CSV Import (#20592)Hampton Lintorn-Catlin
* Support UTF-8 Characters in Domains During Import * Update Changelong
2022-11-10Improve performance by avoiding regex construction (#20215)James Tucker
```ruby 10.times { p /#{FOO}/.object_id } 10.times { p FOO_RE.object_id } ```
2022-11-09Fix NameError in Webfinger redirect handling in ↵Claire
ActivityPub::FetchRemoteActorService (#20260)
2022-11-09Fix being able to spoof link verification (#20217)Eugen Rochko
- Change verification to happen in `default` queue - Change verification worker to only be queued if there's something to do - Add `link` tags from metadata fields to page header of profiles
2022-11-08Change Report category to "violation" if rule IDs are provided (#20137)trwnh
* Change Report category to "violation" if rule IDs are provided * Fix LiteralAsCondition * Add parentheses to conditional statement
2022-11-07Fix validation error in SynchronizeFeaturedTagsCollectionWorker (#20018)Claire
* Fix followers count not being updated when migrating follows Fixes #19900 * Fix validation error in SynchronizeFeaturedTagsCollectionWorker Also saves remote user's chosen case for hashtags * Limit remote featured tags before validation
2022-11-05Fix n+1 query during status removal (#19753)Eugen Rochko
2022-11-04Fix reblogs being discarded after the reblogged status (#19731)Claire
2022-11-04Add caching for payload serialization during fan-out (#19642)Eugen Rochko
2022-11-04Change mentions of blocked users to not be processed (#19725)Claire
Fixes #19698
2022-11-02Fix bookmark import stopping at the first failure (#19669)Claire
Fixes #19389
2022-10-29Fix account migration form ever using outdated account data (#18429)Eugen Rochko
2022-10-27Fix wrong math function used in search query (#19481)Eugen Rochko
2022-10-26Fix negatives values in search index causing queries to fail (#19464)Eugen Rochko
2022-10-26Change unauthenticated search to not support pagination in REST API (#19326)Eugen Rochko
- Only exact search matches for queries with < 5 characters - Do not support queries with `offset` (pagination) - Return HTTP 401 on truthy `resolve` instead of overriding to false