From 128dcb28253a43cfc2552091f419048dd3b94a9f Mon Sep 17 00:00:00 2001 From: Ash Furrow Date: Tue, 4 Apr 2017 21:35:45 -0400 Subject: [PATCH 01/12] Adds mastodon.technology --- docs/Using-Mastodon/List-of-Mastodon-instances.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/Using-Mastodon/List-of-Mastodon-instances.md b/docs/Using-Mastodon/List-of-Mastodon-instances.md index 0cd3f18d67..dbed118425 100644 --- a/docs/Using-Mastodon/List-of-Mastodon-instances.md +++ b/docs/Using-Mastodon/List-of-Mastodon-instances.md @@ -40,5 +40,6 @@ There is also a list at [instances.mastodon.xyz](https://instances.mastodon.xyz) | [social.nasqueron.org](https://social.nasqueron.org) |Dreamers, open source developers, free culture|Yes|Yes| | [status.dissidence.ovh](https://status.dissidence.ovh)|N/A|Yes|Yes| | [mastodon.cc](https://mastodon.cc)|Art|Yes|No| +| [mastodon.technology](https://mastodon.technology)|Open registrations, federates everywhere, for tech folks|Yes|No| Let me know if you start running one so I can add it to the list! (Alternatively, add it yourself as a pull request). From fa7b74cf51e2b5c7c60aaf3ec529ba2292450d7b Mon Sep 17 00:00:00 2001 From: Jason Snell Date: Tue, 4 Apr 2017 18:43:21 -0700 Subject: [PATCH 02/12] SSL best practices for nginx --- docs/Running-Mastodon/Production-guide.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/docs/Running-Mastodon/Production-guide.md b/docs/Running-Mastodon/Production-guide.md index b1f7bd35b9..d539ddf644 100644 --- a/docs/Running-Mastodon/Production-guide.md +++ b/docs/Running-Mastodon/Production-guide.md @@ -11,10 +11,22 @@ map $http_upgrade $connection_upgrade { '' close; } +server { + listen 80; + listen [::]:80; + server_name example.com; + return 301 https://$host$request_uri; +} + server { listen 443 ssl; server_name example.com; + ssl_protocols TLSv1.2; + ssl_ciphers 'EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH'; + ssl_prefer_server_ciphers on; + ssl_session_cache shared:SSL:10m; + ssl_certificate /etc/letsencrypt/live/example.com/fullchain.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; From 7d354cc8c5eceb1289259f23ecac4d85cb6c1f74 Mon Sep 17 00:00:00 2001 From: shel Date: Tue, 4 Apr 2017 21:47:13 -0400 Subject: [PATCH 03/12] Corrected misinformation regarding Direct Posts Unless something changed recently I have no clue why this said that direct posts do not federate because they do. --- docs/Using-Mastodon/User-guide.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docs/Using-Mastodon/User-guide.md b/docs/Using-Mastodon/User-guide.md index f8018909aa..acd02f24e9 100644 --- a/docs/Using-Mastodon/User-guide.md +++ b/docs/Using-Mastodon/User-guide.md @@ -160,13 +160,13 @@ Toot privacy is handled independently of account privacy, and individually for e **Unlisted** toots are toggled with the "Do not display in public timeline" option in the Compose pane. They are visible to anyone following you and appear on your profile page to the public even without a Mastodon login, but do *not* appear to anyone viewing the Public Timeline while logged into Mastodon. -**Private** toots, finally, are toggled with the "Mark as private" switch. Private toots do not appear in the public timeline nor on your profile page to anyone viewing it unless they are on your Followers list. This means the option is of very limited use if your account is not also set to be private (as anyone can follow you without confirmation and thus see your private toots). However the separation of this means that if you *do* set your entire account to private, you can switch this option off on a toot to make unlisted or even public toots from your otherwise private account. +**Private** toots, finally, are toggled with the "Mark as private" switch. Private toots do not appear in the public timeline nor on your profile page to anyone viewing it unless they are on your Followers list. This means the option is of very limited use if your account is not also set to be private (as anyone can follow you without confirmation and thus see your private toots). However the separation of this means that if you *do* set your entire account to private, you can switch this option off on a toot to make unlisted or even public toots from your otherwise private account. Private posts are not encrypted. Make sure you trust your instance admin not to just read your private posts on the back-end. Private toots do not federate to other instances, unless you @mention a remote user. In this case, they will federate to their instance *and may appear there PUBLICLY*. A warning will be displayed if you're composing a private toot that will federate to another instance. Private toots cannot be boosted. If someone you follow makes a private toot, it will appear in your timeline with a padlock icon in place of the Boost icon. **NOTE** that remote instances may not respect this. -**Direct** messages are only visible to users you have @mentioned in them. This does *not* federate to protect your privacy (as other instances may ignore the "Direct" status and display the messages as public if they were to receive them), even if you have @mentioned a remote user. +**Direct** posts are only visible to users you have @mentioned in them and cannot be boosted. Like with private posts, you should be mindful that the remote instance may not respect this protocol. If you are discussing a sensitive matter you should move the conversation off of Mastodon. To summarise: @@ -175,7 +175,7 @@ Toot Privacy | Visible on Profile | Visible on Public Timeline | Federates to ot Public | Anyone incl. anonymous viewers | Yes | Yes Unlisted | Anyone incl. anonymous viewers | No | Yes Private | Followers only | No | Only remote @mentions -Direct | No | No | No +Direct | No | No | Only remote @mentions #### Blocking From 22dcadedb495d2e1279b834a624710d34daee6ad Mon Sep 17 00:00:00 2001 From: Kurtis Rainbolt-Greene Date: Tue, 4 Apr 2017 21:14:37 -0700 Subject: [PATCH 04/12] We're going to want these nice helper methods, lets share them with a parent class that matches Rails 5 practices (application level abstraction) --- app/workers/application_worker.rb | 5 +++++ app/workers/distribution_worker.rb | 4 ++-- 2 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 app/workers/application_worker.rb diff --git a/app/workers/application_worker.rb b/app/workers/application_worker.rb new file mode 100644 index 0000000000..f2d7c10622 --- /dev/null +++ b/app/workers/application_worker.rb @@ -0,0 +1,5 @@ +class ApplicationWorker + def info(message) + Rails.logger.info("#{self.class.name} - #{message}") + end +end diff --git a/app/workers/distribution_worker.rb b/app/workers/distribution_worker.rb index f4e738d804..9a2867ea66 100644 --- a/app/workers/distribution_worker.rb +++ b/app/workers/distribution_worker.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class DistributionWorker +class DistributionWorker < ApplicationWorker include Sidekiq::Worker def perform(status_id) @@ -9,6 +9,6 @@ class DistributionWorker FanOutOnWriteService.new.call(status) WarmCacheService.new.call(status) rescue ActiveRecord::RecordNotFound - true + info("Couldn't find the status") end end From 03adb5d7277bc1672ce3617d328280873e671b24 Mon Sep 17 00:00:00 2001 From: Kurtis Rainbolt-Greene Date: Tue, 4 Apr 2017 21:31:02 -0700 Subject: [PATCH 05/12] Mastodon isn't using jbuilder or sdoc, and it prevents an upgrade to 2.4.0 --- Gemfile | 2 -- Gemfile.lock | 11 ----------- 2 files changed, 13 deletions(-) diff --git a/Gemfile b/Gemfile index 4e7ff6621d..b5705e9d19 100644 --- a/Gemfile +++ b/Gemfile @@ -8,8 +8,6 @@ gem 'sass-rails', '~> 5.0' gem 'uglifier', '>= 1.3.0' gem 'coffee-rails', '~> 4.1.0' gem 'jquery-rails' -gem 'jbuilder', '~> 2.0' -gem 'sdoc', '~> 0.4.0', group: :doc gem 'puma' gem 'hamlit-rails' diff --git a/Gemfile.lock b/Gemfile.lock index a774a89bab..408d85ade1 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -198,9 +198,6 @@ GEM parser (>= 2.2.3.0) term-ansicolor (>= 1.3.2) terminal-table (>= 1.5.1) - jbuilder (2.6.0) - activesupport (>= 3.0.0, < 5.1) - multi_json (~> 1.2) jmespath (1.3.1) jquery-rails (4.1.1) rails-dom-testing (>= 1, < 3) @@ -231,7 +228,6 @@ GEM mimemagic (0.3.2) mini_portile2 (2.1.0) minitest (5.10.1) - multi_json (1.12.1) net-scp (1.2.1) net-ssh (>= 2.6.5) net-ssh (4.0.1) @@ -310,8 +306,6 @@ GEM thor (>= 0.18.1, < 2.0) rainbow (2.1.0) rake (12.0.0) - rdoc (4.2.2) - json (~> 1.4) react-rails (1.10.0) babel-transpiler (>= 0.7.0) coffee-script-source (~> 1.8) @@ -381,9 +375,6 @@ GEM sprockets (>= 2.8, < 4.0) sprockets-rails (>= 2.0, < 4.0) tilt (>= 1.1, < 3) - sdoc (0.4.1) - json (~> 1.7, >= 1.7.7) - rdoc (~> 4.0) sidekiq (4.2.7) concurrent-ruby (~> 1.0) connection_pool (~> 2.2, >= 2.2.0) @@ -483,7 +474,6 @@ DEPENDENCIES http httplog i18n-tasks (~> 0.9.6) - jbuilder (~> 2.0) jquery-rails letter_opener letter_opener_web @@ -514,7 +504,6 @@ DEPENDENCIES rubocop ruby-oembed sass-rails (~> 5.0) - sdoc (~> 0.4.0) sidekiq sidekiq-unique-jobs simple-navigation From 8040d1d8cef092cd5f9b3497e1514301f4ebe54e Mon Sep 17 00:00:00 2001 From: Ian McDowell Date: Tue, 4 Apr 2017 23:43:57 -0500 Subject: [PATCH 06/12] Update List-of-Mastodon-instances.md Added mastodon.network. --- docs/Using-Mastodon/List-of-Mastodon-instances.md | 1 + 1 file changed, 1 insertion(+) diff --git a/docs/Using-Mastodon/List-of-Mastodon-instances.md b/docs/Using-Mastodon/List-of-Mastodon-instances.md index 0cd3f18d67..8b8aba1240 100644 --- a/docs/Using-Mastodon/List-of-Mastodon-instances.md +++ b/docs/Using-Mastodon/List-of-Mastodon-instances.md @@ -6,6 +6,7 @@ There is also a list at [instances.mastodon.xyz](https://instances.mastodon.xyz) | Name | Theme/Notes, if applicable | Open Registrations | IPv6 | | -------------|-------------|---|---| | [mastodon.social](https://mastodon.social) |Flagship, quick updates|Yes|No| +| [mastodon.network](https://mastodon.network) |N/A|Yes|Yes| | [awoo.space](https://awoo.space) |Intentionally moderated, only federates with mastodon.social|Yes|No| | [animalliberation.social](https://animalliberation.social) |Animal Rights|Yes|No| | [socially.constructed.space](https://socially.constructed.space) |Single user|No|No| From 6a1da87cd32a077c8df2e82cbdc222c201ddda41 Mon Sep 17 00:00:00 2001 From: Brad Urani Date: Wed, 5 Apr 2017 06:02:58 +0000 Subject: [PATCH 07/12] Eliminate unnecessary queries and query clauses with none and all --- app/models/status.rb | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/models/status.rb b/app/models/status.rb index daf1285720..6948ad77c2 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -161,9 +161,9 @@ class Status < ApplicationRecord return where.not(visibility: [:private, :direct]) if account.nil? if target_account.blocking?(account) # get rid of blocked peeps - where('1 = 0') + none elsif account.id == target_account.id # author can see own stuff - where('1 = 1') + all elsif account.following?(target_account) # followers can see followers-only stuff, but also things they are mentioned in joins('LEFT OUTER JOIN mentions ON statuses.id = mentions.status_id AND mentions.account_id = ' + account.id.to_s) .where('statuses.visibility != ? OR mentions.id IS NOT NULL', Status.visibilities[:direct]) From b845ef395d2dc86f32beb7e2071cc828258816b5 Mon Sep 17 00:00:00 2001 From: JantsoP Date: Wed, 5 Apr 2017 09:51:35 +0200 Subject: [PATCH 08/12] updated reblog translation --- config/locales/simple_form.fi.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index 02943cea30..684cbe39ce 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -38,7 +38,7 @@ fi: follow: Lähetä s-posti kun joku seuraa sinua follow_request: Lähetä s-posti kun joku pyytää seurata sinua mention: Lähetä s-posti kun joku mainitsee sinut - reblog: Lähetä s-posti kun joku uudestaanblogaa julkaisusi + reblog: Lähetä s-posti kun joku reblogaa julkaisusi 'no': 'Ei' required: mark: "*" From 473e4f781318b24c1df11da36e7846080de27ea9 Mon Sep 17 00:00:00 2001 From: JantsoP Date: Wed, 5 Apr 2017 09:52:31 +0200 Subject: [PATCH 09/12] udpdated display_name translation --- config/locales/simple_form.fi.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index 684cbe39ce..7e1205fdc3 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -17,7 +17,7 @@ fi: confirm_password: Varmista salasana current_password: Nykyinen salasana data: Data - display_name: Näyttö nimi + display_name: Näykyvä nimi email: Sähköpostiosoite header: Header locale: Kieli From b8a867adcc8bfeaba7fa09204b6babd17abe225b Mon Sep 17 00:00:00 2001 From: JantsoP Date: Wed, 5 Apr 2017 09:56:10 +0200 Subject: [PATCH 10/12] updated translation Updated some translations after seeing them in service. Should be better now --- app/assets/javascripts/components/locales/fi.jsx | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/app/assets/javascripts/components/locales/fi.jsx b/app/assets/javascripts/components/locales/fi.jsx index 7b151d6f83..b3ae4bc569 100644 --- a/app/assets/javascripts/components/locales/fi.jsx +++ b/app/assets/javascripts/components/locales/fi.jsx @@ -5,9 +5,9 @@ const fi = { "status.mention": "Mainitse @{name}", "status.delete": "Poista", "status.reply": "Vastaa", - "status.reblog": "Boostaa", + "status.reblog": "Buustaa", "status.favourite": "Tykkää", - "status.reblogged_by": "{name} boostattu", + "status.reblogged_by": "{name} buustasi", "status.sensitive_warning": "Arkaluontoista sisältöä", "status.sensitive_toggle": "Klikkaa nähdäksesi", "video_player.toggle_sound": "Äänet päälle/pois", @@ -28,7 +28,7 @@ const fi = { "getting_started.open_source_notice": "Mastodon Mastodon on avoimen lähdekoodin ohjelma. Voit avustaa tai raportoida ongelmia GitHub palvelussa {github}. {apps}.", "column.home": "Koti", "column.community": "Paikallinen aikajana", - "column.public": "Yhdistetty aikajana", + "column.public": "Yleinen aikajana", "column.notifications": "Ilmoitukset", "tabs_bar.compose": "Luo", "tabs_bar.home": "Koti", @@ -41,7 +41,7 @@ const fi = { "compose_form.spoiler": "Piiloita teksti varoituksen taakse", "compose_form.private": "Merkitse yksityiseksi", "compose_form.privacy_disclaimer": "Sinun yksityinen status toimitetaan mainitsemallesi käyttäjille domaineissa {domains}. Luotatko {domainsCount, plural, one {tähän palvelimeen} other {näihin palvelimiin}}? Postauksen yksityisyys toimii van Mastodon palvelimilla. Jos {domains} {domainsCount, plural, one {ei ole Mastodon palvelin} other {eivät ole Mastodon palvelin}}, viestiin ei tule Yksityinen-merkintää, ja sitä voidaan boostata tai muuten tehdä näkyväksi muille vastaanottajille.", - "compose_form.unlisted": "Älä näytä julkisilla aikajanoilla", + "compose_form.unlisted": "Älä näytä yleisillä aikajanoilla", "navigation_bar.edit_profile": "Muokkaa profiilia", "navigation_bar.preferences": "Ominaisuudet", "navigation_bar.community_timeline": "Paikallinen aikajana", @@ -55,14 +55,14 @@ const fi = { "upload_form.undo": "Peru", "notification.follow": "{name} seurasi sinua", "notification.favourite": "{name} tykkäsi statuksestasi", - "notification.reblog": "{name} boostasi statustasi", + "notification.reblog": "{name} buustasi statustasi", "notification.mention": "{name} mainitsi sinut", "notifications.column_settings.alert": "Työpöytä ilmoitukset", "notifications.column_settings.show": "Näytä sarakkeessa", "notifications.column_settings.follow": "Uusia seuraajia:", "notifications.column_settings.favourite": "Tykkäyksiä:", "notifications.column_settings.mention": "Mainintoja:", - "notifications.column_settings.reblog": "Boosteja:", + "notifications.column_settings.reblog": "Buusteja:", }; export default fi; From 3ec221d3b7093e2a2606ec04036cca9e9f1f733d Mon Sep 17 00:00:00 2001 From: JantsoP Date: Wed, 5 Apr 2017 09:57:25 +0200 Subject: [PATCH 11/12] updated reblog to boost translation Since it is that :D --- config/locales/simple_form.fi.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml index 7e1205fdc3..2bacd6d2c8 100644 --- a/config/locales/simple_form.fi.yml +++ b/config/locales/simple_form.fi.yml @@ -38,7 +38,7 @@ fi: follow: Lähetä s-posti kun joku seuraa sinua follow_request: Lähetä s-posti kun joku pyytää seurata sinua mention: Lähetä s-posti kun joku mainitsee sinut - reblog: Lähetä s-posti kun joku reblogaa julkaisusi + reblog: Lähetä s-posti kun joku buustaa julkaisusi 'no': 'Ei' required: mark: "*" From 3504da5cac467e367e39e2310aaa5dba6b643f45 Mon Sep 17 00:00:00 2001 From: Eugen Date: Wed, 5 Apr 2017 10:25:05 +0200 Subject: [PATCH 12/12] Fix API method URL typo --- docs/Using-the-API/API.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Using-the-API/API.md b/docs/Using-the-API/API.md index bc5ca3de4c..e09d8ac9c9 100644 --- a/docs/Using-the-API/API.md +++ b/docs/Using-the-API/API.md @@ -310,7 +310,7 @@ Returns a [Status](#status). #### Getting status context: - GET /api/v1/statuses/:id/contexts + GET /api/v1/statuses/:id/context Returns a [Context](#context).