Squashed commit of the following:
commit 7b2ba61c4841e23081552fb79270e4e430dd1fe0
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 16:03:52 2020 +0900
Add the ability to change to a new circle by replying to a circle
commit 7013a228c65c7bd147885de458b50095f3c24334
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 16:10:57 2020 +0900
fixup! add-limited-visibility-icon-to-status
commit 679aa8a7f9bef42ee5d0b326d9ae4925a1999939
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 15:12:53 2020 +0900
Fix 14666
commit b3addd8220d8bb3512ff345b32ca83c714dadd2a
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 11:44:12 2020 +0900
Add Japanese translation for circle
commit b7f4b773a0cd554084d5ad6a5923adb06b3acfc4
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 11:40:12 2020 +0900
Squashed commit of the following:
commit b85a4685b27c49462288aba5f38723b91e936c4a
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 10:50:03 2020 +0900
Changed to remove restrictions on privacy options and allow users to switch circles when replying
commit 0a8c0140c73d7c5333e4f8017964adb5061a7cf1
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 09:33:07 2020 +0900
Change limited visibility icon
commit b64adf19788d828249408454ec6afa9beb3d4872
Author: noellabo <noel.yoshiba@gmail.com>
Date: Mon Aug 31 06:50:56 2020 +0900
Fix a change to limited-visibility-bearcaps replies
commit ed361405b5e38857a2f42b0515a599ddcdd412cf
Author: noellabo <noel.yoshiba@gmail.com>
Date: Thu Aug 27 15:53:18 2020 +0900
Fix composer text when change visibility
commit 4da3adddb6ffde43070d743e34c5b56e06579b30
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Aug 22 22:34:23 2020 +0900
Fix wrong circle_id when changing visibility
commit 752d7fc2a3c9e34fab9993d767f83c6eae7ba55a
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sun Aug 9 13:12:51 2020 +0900
Add circle reply and redraft
commit 5978bc04a24695edce6717bda89dcf6f861ef2c4
Author: noellabo <noel.yoshiba@gmail.com>
Date: Mon Jul 27 01:07:52 2020 +0900
Fix remove unused props
commit 7970f69676c24b4aa9385fee8b1635c46ba52fcd
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sun Jul 26 21:17:07 2020 +0900
Separate circle choice from privacy
commit 36f6a684c0b0c895d4d0f1b9d09b05c91b104666
Author: noellabo <noel.yoshiba@gmail.com>
Date: Thu Jul 23 10:54:25 2020 +0900
Add UI for posting to circles
commit 7ef48003c1407275663dd603b124d292db2aa93a
Author: noellabo <noel.yoshiba@gmail.com>
Date: Fri Jul 24 12:55:10 2020 +0900
Fix silent mention by circle
commit 7a1caed49333c3d3241301afb77639cdf1cabdc0
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 11:38:10 2020 +0900
Squashed commit of the following:
commit dca71fab86c830932ca760b7d8b3f89cc25c453e
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 09:31:26 2020 +0900
Revert "Add focus setting when opening the circle column"
This reverts commit 3a93ac99312a13b68b7edc2b81313fb0ffb7bcdc.
commit 0a1bc8307bb699c7eb3024072ce14a440df1fc87
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 09:31:11 2020 +0900
Change limited visibility icon
commit 9784f8b562f6592e9d9190ca29d2b2e870006d10
Author: noellabo <noel.yoshiba@gmail.com>
Date: Thu Aug 13 21:52:07 2020 +0900
Add focus setting when opening the circle column
commit a84f680c167fab9276550850c60f9108d251144e
Author: noellabo <noel.yoshiba@gmail.com>
Date: Thu Aug 13 15:55:27 2020 +0900
Fix message
commit e3f11c4adac57b6e6a15c981ed6f4721a1634212
Author: noellabo <noel.yoshiba@gmail.com>
Date: Mon Jul 27 01:01:23 2020 +0900
Fix light-theme
commit d7d96eda5b86d3e3f654ce79888e7cf5aa535db5
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sun Jul 26 21:50:56 2020 +0900
Fix circles loading in share page and followers search
commit 10b821f7b8c0a87cea3df51f09deeadc2cb40b32
Author: noellabo <noel.yoshiba@gmail.com>
Date: Fri Jul 24 14:08:00 2020 +0900
Refactor list items
commit e020072915572ce409039ccf799d08f8d8b5b393
Author: noellabo <noel.yoshiba@gmail.com>
Date: Thu Jul 23 20:15:38 2020 +0900
Fixed a bug that circle name change is not reflected in the list
commit 735bc41161b4c09a8dafe2c0064096b3ca79f2a0
Author: noellabo <noel.yoshiba@gmail.com>
Date: Wed Jul 22 08:49:47 2020 +0900
Add UI for managing circle members
commit d7c3145b8fa84be0631bf7f41bb229f3e6d03ff1
Author: noellabo <noel.yoshiba@gmail.com>
Date: Wed Jul 22 07:34:52 2020 +0900
Add the followers option to AccountSearchSercive
commit 65e2b0c4299b72ede440b50089c1bd6afa6c9c05
Author: noellabo <noel.yoshiba@gmail.com>
Date: Wed Jul 22 07:05:56 2020 +0900
Add CircleSerializer
commit a639e1803abf5590068846dbe98bc5edfaa2ad82
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 11:37:30 2020 +0900
Squashed commit of the following:
commit 9cb3fb9d980e3ee066083076f508c5ab1447176a
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 07:15:19 2020 +0900
Move the link to the mention list to the menu
commit b32dd87b43f4e09b8e2c437f1fb5d3ebd6221215
Author: noellabo <noel.yoshiba@gmail.com>
Date: Sat Sep 5 00:56:12 2020 +0900
Change limited visibility icon
commit 8db0d024119d1c2cef8de849f2501496a166a2dd
Author: noellabo <noel.yoshiba@gmail.com>
Date: Tue Sep 1 01:42:13 2020 +0900
Fix to disallow getting the list of mentions in limited replies
commit 490a9d65a59a3dd0d86e81f6780e879dc4313dff
Author: noellabo <noel.yoshiba@gmail.com>
Date: Fri Jul 24 11:36:24 2020 +0900
Add column to list mentioned accounts of limited status
commit 62a423ac2729c16f26fafe111f257bc373218df2
Author: noellabo <noel.yoshiba@gmail.com>
Date: Thu Jul 23 13:30:17 2020 +0900
Fix visibility compatibility more
commit a5cfa54b259054f41e89037f299fa928a2361818
Author: noellabo <noel.yoshiba@gmail.com>
Date: Mon Jul 20 05:39:49 2020 +0900
Fix visibility compatibility
commit 7900ca5650c77565b86ddc594a221dfa3b5321b4
Author: noellabo <noel.yoshiba@gmail.com>
Date: Mon Jul 20 02:01:27 2020 +0900
Add limited visibility icon to status
commit 66b83965ef068e9ee8c940249c68bcbde15731fe
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Wed Aug 26 03:16:47 2020 +0200
Add conversation-based forwarding for limited visibility statuses through bearcaps
commit 561abc65e0ace89318b3952047025b8d98515fbb
Author: Eugen Rochko <eugen@zeonfederated.com>
Date: Sun Jul 19 02:05:16 2020 +0200
Add REST API for managing and posting to circles
Circles are the conceptual opposite of lists. A list is a subdivision
of your follows, a circle is a subdivision of your followers. Posting
to a circle means making content available to only some of your
followers. Circles have been internally supported in Mastodon for
the purposes of federation since #8950, this adds the REST API
necessary for making use of them in Mastodon itsef.
* Add tests
* Ensure deleted statuses are marked as such
* Save some redis memory by not storing URIs in delete_upon_arrival values
* Avoid possible race condition when processing incoming Deletes
* Avoid potential duplicate Delete forwards
* Lower lock durations to reduce issues in case of hard crash of the Rails process
* Check for `lock.aquired?` and improve comment
* Refactor RedisLock usage in app/lib/activitypub
* Fix using incorrect or non-existent sender for relaying Deletes
* Prepare Mastodon for zeitwerk autoloader (Rails 6)
Add inflections and rename/move a few classes.
In particular, app/lib/exceptions.rb and app/lib/sanitize_config.rb
were manually loaded while still in autoload paths.
* Add inflection for Url → URL
* Update twitter-text from 1.14 to 3.1.0
* Disable emoji parsing
* Properly depend on twitter-text for url detection
* Fix some URLs being wrongly detected client-side
* Add test for server-side validation of non-autolinkable URLs
* Fix server-side status length counting
* Fix URI of repeat follow requests not being recorded
In case we receive a “repeat” or “duplicate” follow request, we automatically
fast-forward the accept with the latest received Activity `id`, but we don't
record it.
In general, a “repeat” or “duplicate” follow request may happen if for some
reason (e.g. inconsistent handling of Block or Undo Accept activities, an
instance being brought back up from the dead, etc.) the local instance thought
the remote actor were following them while the remote actor thought otherwise.
In those cases, the remote instance does not know about the older Follow
activity `id`, so keeping that record serves no purpose, but knowing the most
recent one is useful if the remote implementation at some point refers to it
by `id` without inlining it.
* Add tests
* Added .deepsource.toml
* Removed bad use of `alias`
* Fixed operand order in the binary expression
* Prefixed unused method arguments with an underscore
* Replaced the old OpenSSL algorithmic constants with the newer strings initializers.
* Removed unnecessary UTF-8 encoding comment
There are edge cases where requests to certain hosts timeout when
using the vanilla HTTP.rb gem, which the goldfinger gem uses. Now
that we no longer need to support OStatus servers, webfinger logic
is so simple that there is no point encapsulating it in a gem, so
we can just use our own Request class. With that, we benefit from
more robust timeout code and IPv4/IPv6 resolution.
Fix#14091
* Check for and record reblog info atomically
Instead of using ZREVRANK to determine whether a reblog is a new reblog or not,
use ZADD's NX option to perform the check/addition option atomically.
* Replace ZREVRANK call with ZSCORE key which is more efficient
* Make tests a bit stricter
* Fix off-by-one
* Add database support for list show-reply preferences
* Add backend support to read and update list-specific show_replies settings
* Add basic UI to set list replies setting
* Add specs for list replies policy
* Switch "cycling" reply policy link to a set of radio inputs
* Capitalize replies_policy strings
* Change radio button design to be consistent with that of the directory explorer
* Change content-type to be always computed from file data
Restore previous behavior, detecting the content-type isn't very
expensive, and some instances may serve files as application/octet-stream
regardless of their true type, making fetching media from them fail, while
it used to work pre-3.2.0.
* Add test
* Fix not handling Undo on some activity types when they aren't inlined
When receiving an Undo for a non-inlined activity, try looking it up in
database using the URI. The queries are ad-hoc because we don't have a global
index of object URIs, and not all activity types are stored in database with
an index on their URI.
Announces are just statuses, and have an index on URIs, so this check can
be done efficiently.
Accepts cannot be handled at all because we don't record their URI at any
point.
Follows don't have an index on URI, but they have an index on the issuing
account, which should make such queries largely manageable.
Likes don't have an index on URI, they have an index on the issuing account,
but the number of favs per account may be very high, so I decided not to
handle that.
Blocks don't have an index on URI, but they have an index on the issuing
account, which should make such queries largely manageable.
In all cases, if an Undo could not be handled properly, we call `delete_later!`
because that does not require us to know more than the URI of the undone
property.
* Add tests
* Make newer blocks overwrite older ones
Allows re-synchronizing block info by re-blocking and un-blocking again
when the original Undo Block has been lost.
* Improve RSS entries for statuses
- Render polls in both accounts and tags serializers
- Refactor RSS serializers
- Change title preview to include ellipsis when truncated
- Change title preview to show CW instead of toot text
- Add tests
* Remove title from OEmbed serialization
Twitter doesn't serialize title either, and tihs allows us to move the
title formatting code to the RSS serializers.
* Fix wrong grouping in Twitter valid_url regex
* Add support for xmpp URIs
Fixes#9776
The difficult part is autolinking, because Twitter-text's extractor does
some pretty ad-hoc stuff to find things that “look like” URLs, and XMPP
URIs do not really match the assumptions of that lib, so it doesn't sound
wise to try to shoehorn it into the existing regex.
This is why I used a specific regex (very close, although slightly more
permissive than the RFC), and a specific scan function (a simplified version
of the generalized one from Twitter).
* Remove leading “xmpp:” from auto-linked text
* Revert "Fix ignoring whole status because of one invalid hashtag (#11621)"
This reverts commit dff46b260b.
* Fix statuses being rejected because of invalid hashtag names
* Add spec for invalid hashtag names in statuses
* Add test for featured tags controller
* Change silenced accounts to require approval on follow
* Also require approval for follows by people explicitly muted by target accounts
* Do not auto-accept silenced or muted accounts when switching from locked to unlocked
* Add `follow_requests_count` to verify_credentials
* Show “Follow requests” menu item if needed even if account is locked
* Add tests
* Correctly reflect that follow requests weren't auto-accepted when local account is silenced
* Accept follow requests from user-muted accounts to avoid leaking mutes
* Play animated custom emoji on hover in status
* Play animated custom emoji on hover in display names
* Play animated custom emoji on hover in bios/bio fields
* Add support for animation on hover on public pages emojis too
* Fix tests
* Code style cleanup
* Add a spam check
* Use Nilsimsa to generate locality-sensitive hashes and compare using Levenshtein distance
* Add more tests
* Add exemption when the message is a reply to something that mentions the sender
* Use Nilsimsa Compare Value instead of Levenshtein distance
* Use MD5 for messages shorter than 10 characters
* Add message to automated report, do not add non-public statuses to
automated report, add trust level to accounts and make unsilencing
raise the trust level to prevent repeated spam checks on that account
* Expire spam check data after 3 months
* Add support for local statuses, reduce expiration to 1 week, always create a report
* Add content warnings to the spam check and exempt empty statuses
* Change Nilsimsa threshold to 95 and make sure removed statuses are removed from the spam check
* Add all matched statuses into automatic report
* Remove Salmon and PubSubHubbub endpoints
* Add error when trying to follow OStatus accounts
* Fix new accounts not being created in ResolveAccountService
* Add request pool to improve delivery performance
Fix#7909
* Ensure connection is closed when exception interrupts execution
* Remove Timeout#timeout from socket connection
* Fix infinite retrial loop on HTTP::ConnectionError
* Close sockets on failure, reduce idle time to 90 seconds
* Add MAX_REQUEST_POOL_SIZE option to limit concurrent connections to the same server
* Use a shared pool size, 512 by default, to stay below open file limit
* Add some tests
* Add more tests
* Reduce MAX_IDLE_TIME from 90 to 30 seconds, reap every 30 seconds
* Use a shared pool that returns preferred connection but re-purposes other ones when needed
* Fix wrong connection being returned on subsequent calls within the same thread
* Reduce mutex calls on flushes from 2 to 1 and add test for reaping