Eugen Rochko [Fri, 13 Oct 2017 14:44:29 +0000 (16:44 +0200)]
Fix UserTrackingConcern firing on every request, optimize some queries (#5368)
- For some reason, :if option on before_action did not work. It got
executed every time, returned false, and the action run anyway,
which led to the current_sign_in_at and sign_in_count being
updated on every request
- Return "do not filter" early in FeedManager#filter_from_home? if
the status is authored by receiver. Usually this method is not
called for own statuses at all, but it is called when Feed#get
uses the database
- Return early if #reload_stale_associations! has nothing to load
to save a database query with WHERE 1=0
Eugen Rochko [Fri, 13 Oct 2017 14:44:02 +0000 (16:44 +0200)]
When unfollowing, remove from home in web UI immediately (#5369)
Do NOT send "delete" through streaming API when unmerging from
home timeline. "delete" implies that the original status was
deleted, which is not true!
ThibG [Fri, 13 Oct 2017 10:58:13 +0000 (12:58 +0200)]
Fix remote status fetching for “pure” ActivityPub WEB_ACCOUNT users (#5372)
Remote ActivityPub users that have never been known as OStatus users
(whether or not they support it) will not have a “remote_url” attribute
set. In case they reside on an instance with WEB_DOMAIN ≠ LOCAL_DOMAIN,
the current check did rely on “remote_url” to verify the user's domain.
Lex Alexander [Fri, 13 Oct 2017 00:52:09 +0000 (14:52 -1000)]
Retoot count increases without reason (#5363)
* Retoot count increases without reason
-The store_uri method for Statuses was being called on after_create and causing reblogs to be incremented twice.
-This calls it when the transaction is finished by using after_create_commit.
-Fixes #4916.
* Added test case for after_create_commit callback for checking reblog count.
* Rewrote test to keep original, but added one for only the after_create_commit callback.
unarist [Thu, 12 Oct 2017 10:01:32 +0000 (19:01 +0900)]
Fix some failure cases on FetchLinkCardService (#5347)
* If OEmbed response doesn't have a required property `type`, ignore it.
e.g. `NoMethodError: undefined method 'type' for ...`
* If we failed to detect encoding, fallback to default behavior of Nokogiri.
e.g. `KeyError: key not found: :encoding`
Sylvhem [Wed, 11 Oct 2017 22:58:01 +0000 (00:58 +0200)]
Fixes and updates for the French translation (#5340)
* Ajout du support des thèmes multiples
Ajoute des traductions pour les nouvelles chaînes permettant le support de thèmes multiples.
Add translations for the new strings allowing support for multiple themes.
* Mise à jour de la traduction
Met à jour les chaînes modifiées et ajoute des traductions pour celle n’en ayant pas.
Update modified strings and add new translations for the ones who are missing them.
* Remplace « ' » par « ’ »
Retire de la traduction les apostrophes droites « ' » (U+0027) au profit des apostrophes typographiques « ’ » (U+2019).
En typographie française, les apostrophes typographiques sont utilisées à la place des apostrophes droites. La traduction était incohérente et utilisait les deux.
Remove from the translation all the vertical apostrophes (U+0027) in favor of the curly ones (U+2019).
In French typography, typographic apostrophes are used instead of vertical ones. The translation was incoherent and used both.
unarist [Wed, 11 Oct 2017 09:25:15 +0000 (18:25 +0900)]
Fix an error when ancestors get loaded before the status itself (#5312)
When ancestors get loaded, we scroll to the target status (i.e. skip
ancestors). However, ancestors may get loaded before the status itself,
then it causes TypeError because `this.node` is undefined yet.
Since we don't show anything until the status gets loaded, we don't need
to scroll to the target status in this time. If we get the status itslef
later, it causes `componentDidUpdate` and scrolling correctly.
Eugen Rochko [Sun, 8 Oct 2017 15:34:34 +0000 (17:34 +0200)]
Set snowflake IDs for backdated statuses (#5260)
- Rename Mastodon::TimestampIds into Mastodon::Snowflake for clarity
- Skip for statuses coming from inbox, aka delivered in real-time
- Skip for statuses that claim to be from the future
Eugen Rochko [Sun, 8 Oct 2017 00:34:49 +0000 (02:34 +0200)]
Dynamically calculate card height for embeds instead of padding (#5265)
The padding trick was hard-coded to a 16:9 ratio, but we can use
width and height provided from OEmbed information and width
of the card itself to calculate a new height
unarist [Fri, 6 Oct 2017 18:37:17 +0000 (03:37 +0900)]
Specify middleware versions in docker-compose.yml (#5247)
PostgreSQL10 has been released, but upgrading from older versions needs dump/restore. If you pull new version without those handling, db service will fail to launch.
To prevent accidentally upgrading, and as a recommended version, this patch specifies PostgreSQL and Redis version.
Eugen Rochko [Thu, 5 Oct 2017 23:07:59 +0000 (01:07 +0200)]
Implement hotkeys for web UI (#5164)
* Fix #2102 - Implement hotkeys
Hotkeys on status list:
- r to reply
- m to mention author
- f to favourite
- b to boost
- enter to open status
- p to open author's profile
- up or k to move up in the list
- down or j to move down in the list
- 1-9 to focus a status in one of the columns
- n to focus the compose textarea
- alt+n to start a brand new toot
- backspace to navigate back