Merge branch 'master' into master

lolsob-rspec
Eugen 2017-04-05 10:29:52 +02:00 committed by GitHub
commit 3975f92b8d
11 changed files with 36 additions and 30 deletions

View File

@ -8,8 +8,6 @@ gem 'sass-rails', '~> 5.0'
gem 'uglifier', '>= 1.3.0' gem 'uglifier', '>= 1.3.0'
gem 'coffee-rails', '~> 4.1.0' gem 'coffee-rails', '~> 4.1.0'
gem 'jquery-rails' gem 'jquery-rails'
gem 'jbuilder', '~> 2.0'
gem 'sdoc', '~> 0.4.0', group: :doc
gem 'puma' gem 'puma'
gem 'hamlit-rails' gem 'hamlit-rails'

View File

@ -198,9 +198,6 @@ GEM
parser (>= 2.2.3.0) parser (>= 2.2.3.0)
term-ansicolor (>= 1.3.2) term-ansicolor (>= 1.3.2)
terminal-table (>= 1.5.1) terminal-table (>= 1.5.1)
jbuilder (2.6.0)
activesupport (>= 3.0.0, < 5.1)
multi_json (~> 1.2)
jmespath (1.3.1) jmespath (1.3.1)
jquery-rails (4.1.1) jquery-rails (4.1.1)
rails-dom-testing (>= 1, < 3) rails-dom-testing (>= 1, < 3)
@ -231,7 +228,6 @@ GEM
mimemagic (0.3.2) mimemagic (0.3.2)
mini_portile2 (2.1.0) mini_portile2 (2.1.0)
minitest (5.10.1) minitest (5.10.1)
multi_json (1.12.1)
net-scp (1.2.1) net-scp (1.2.1)
net-ssh (>= 2.6.5) net-ssh (>= 2.6.5)
net-ssh (4.0.1) net-ssh (4.0.1)
@ -310,8 +306,6 @@ GEM
thor (>= 0.18.1, < 2.0) thor (>= 0.18.1, < 2.0)
rainbow (2.1.0) rainbow (2.1.0)
rake (12.0.0) rake (12.0.0)
rdoc (4.2.2)
json (~> 1.4)
react-rails (1.10.0) react-rails (1.10.0)
babel-transpiler (>= 0.7.0) babel-transpiler (>= 0.7.0)
coffee-script-source (~> 1.8) coffee-script-source (~> 1.8)
@ -381,9 +375,6 @@ GEM
sprockets (>= 2.8, < 4.0) sprockets (>= 2.8, < 4.0)
sprockets-rails (>= 2.0, < 4.0) sprockets-rails (>= 2.0, < 4.0)
tilt (>= 1.1, < 3) tilt (>= 1.1, < 3)
sdoc (0.4.1)
json (~> 1.7, >= 1.7.7)
rdoc (~> 4.0)
sidekiq (4.2.7) sidekiq (4.2.7)
concurrent-ruby (~> 1.0) concurrent-ruby (~> 1.0)
connection_pool (~> 2.2, >= 2.2.0) connection_pool (~> 2.2, >= 2.2.0)
@ -483,7 +474,6 @@ DEPENDENCIES
http http
httplog httplog
i18n-tasks (~> 0.9.6) i18n-tasks (~> 0.9.6)
jbuilder (~> 2.0)
jquery-rails jquery-rails
letter_opener letter_opener
letter_opener_web letter_opener_web
@ -514,7 +504,6 @@ DEPENDENCIES
rubocop rubocop
ruby-oembed ruby-oembed
sass-rails (~> 5.0) sass-rails (~> 5.0)
sdoc (~> 0.4.0)
sidekiq sidekiq
sidekiq-unique-jobs sidekiq-unique-jobs
simple-navigation simple-navigation

View File

@ -5,9 +5,9 @@ const fi = {
"status.mention": "Mainitse @{name}", "status.mention": "Mainitse @{name}",
"status.delete": "Poista", "status.delete": "Poista",
"status.reply": "Vastaa", "status.reply": "Vastaa",
"status.reblog": "Boostaa", "status.reblog": "Buustaa",
"status.favourite": "Tykkää", "status.favourite": "Tykkää",
"status.reblogged_by": "{name} boostattu", "status.reblogged_by": "{name} buustasi",
"status.sensitive_warning": "Arkaluontoista sisältöä", "status.sensitive_warning": "Arkaluontoista sisältöä",
"status.sensitive_toggle": "Klikkaa nähdäksesi", "status.sensitive_toggle": "Klikkaa nähdäksesi",
"video_player.toggle_sound": "Äänet päälle/pois", "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}.", "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.home": "Koti",
"column.community": "Paikallinen aikajana", "column.community": "Paikallinen aikajana",
"column.public": "Yhdistetty aikajana", "column.public": "Yleinen aikajana",
"column.notifications": "Ilmoitukset", "column.notifications": "Ilmoitukset",
"tabs_bar.compose": "Luo", "tabs_bar.compose": "Luo",
"tabs_bar.home": "Koti", "tabs_bar.home": "Koti",
@ -41,7 +41,7 @@ const fi = {
"compose_form.spoiler": "Piiloita teksti varoituksen taakse", "compose_form.spoiler": "Piiloita teksti varoituksen taakse",
"compose_form.private": "Merkitse yksityiseksi", "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.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.edit_profile": "Muokkaa profiilia",
"navigation_bar.preferences": "Ominaisuudet", "navigation_bar.preferences": "Ominaisuudet",
"navigation_bar.community_timeline": "Paikallinen aikajana", "navigation_bar.community_timeline": "Paikallinen aikajana",
@ -55,14 +55,14 @@ const fi = {
"upload_form.undo": "Peru", "upload_form.undo": "Peru",
"notification.follow": "{name} seurasi sinua", "notification.follow": "{name} seurasi sinua",
"notification.favourite": "{name} tykkäsi statuksestasi", "notification.favourite": "{name} tykkäsi statuksestasi",
"notification.reblog": "{name} boostasi statustasi", "notification.reblog": "{name} buustasi statustasi",
"notification.mention": "{name} mainitsi sinut", "notification.mention": "{name} mainitsi sinut",
"notifications.column_settings.alert": "Työpöytä ilmoitukset", "notifications.column_settings.alert": "Työpöytä ilmoitukset",
"notifications.column_settings.show": "Näytä sarakkeessa", "notifications.column_settings.show": "Näytä sarakkeessa",
"notifications.column_settings.follow": "Uusia seuraajia:", "notifications.column_settings.follow": "Uusia seuraajia:",
"notifications.column_settings.favourite": "Tykkäyksiä:", "notifications.column_settings.favourite": "Tykkäyksiä:",
"notifications.column_settings.mention": "Mainintoja:", "notifications.column_settings.mention": "Mainintoja:",
"notifications.column_settings.reblog": "Boosteja:", "notifications.column_settings.reblog": "Buusteja:",
}; };
export default fi; export default fi;

View File

@ -161,9 +161,9 @@ class Status < ApplicationRecord
return where.not(visibility: [:private, :direct]) if account.nil? return where.not(visibility: [:private, :direct]) if account.nil?
if target_account.blocking?(account) # get rid of blocked peeps 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 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 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) 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]) .where('statuses.visibility != ? OR mentions.id IS NOT NULL', Status.visibilities[:direct])

View File

@ -0,0 +1,5 @@
class ApplicationWorker
def info(message)
Rails.logger.info("#{self.class.name} - #{message}")
end
end

View File

@ -1,6 +1,6 @@
# frozen_string_literal: true # frozen_string_literal: true
class DistributionWorker class DistributionWorker < ApplicationWorker
include Sidekiq::Worker include Sidekiq::Worker
def perform(status_id) def perform(status_id)
@ -9,6 +9,6 @@ class DistributionWorker
FanOutOnWriteService.new.call(status) FanOutOnWriteService.new.call(status)
WarmCacheService.new.call(status) WarmCacheService.new.call(status)
rescue ActiveRecord::RecordNotFound rescue ActiveRecord::RecordNotFound
true info("Couldn't find the status")
end end
end end

View File

@ -17,7 +17,7 @@ fi:
confirm_password: Varmista salasana confirm_password: Varmista salasana
current_password: Nykyinen salasana current_password: Nykyinen salasana
data: Data data: Data
display_name: Näyttö nimi display_name: Näykyvä nimi
email: Sähköpostiosoite email: Sähköpostiosoite
header: Header header: Header
locale: Kieli locale: Kieli
@ -38,7 +38,7 @@ fi:
follow: Lähetä s-posti kun joku seuraa sinua follow: Lähetä s-posti kun joku seuraa sinua
follow_request: Lähetä s-posti kun joku pyytää seurata sinua follow_request: Lähetä s-posti kun joku pyytää seurata sinua
mention: Lähetä s-posti kun joku mainitsee sinut 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 buustaa julkaisusi
'no': 'Ei' 'no': 'Ei'
required: required:
mark: "*" mark: "*"

View File

@ -11,10 +11,22 @@ map $http_upgrade $connection_upgrade {
'' close; '' close;
} }
server {
listen 80;
listen [::]:80;
server_name example.com;
return 301 https://$host$request_uri;
}
server { server {
listen 443 ssl; listen 443 ssl;
server_name example.com; 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 /etc/letsencrypt/live/example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem; ssl_certificate_key /etc/letsencrypt/live/example.com/privkey.pem;

View File

@ -5,8 +5,9 @@ There is also a list at [instances.mastodon.xyz](https://instances.mastodon.xyz)
| Name | Theme/Notes, if applicable | Open Registrations | IPv6 | | Name | Theme/Notes, if applicable | Open Registrations | IPv6 |
| -------------|-------------|---|---| | -------------|-------------|---|---|
| [mastodon.social](https://mastodon.social) |Flagship, quick updates|Yes|No| | [mastodon.social](https://mastodon.social) |Flagship, quick updates|No|No|
| [securitymastod.one](https://securitymastod.one/) |Information security enthusiasts and pros|Yes|Yes| | [securitymastod.one](https://securitymastod.one/) |Information security enthusiasts and pros|Yes|Yes|
| [mastodon.network](https://mastodon.network) |N/A|Yes|Yes|
| [awoo.space](https://awoo.space) |Intentionally moderated, only federates with mastodon.social|Yes|No| | [awoo.space](https://awoo.space) |Intentionally moderated, only federates with mastodon.social|Yes|No|
| [animalliberation.social](https://animalliberation.social) |Animal Rights|Yes|No| | [animalliberation.social](https://animalliberation.social) |Animal Rights|Yes|No|
| [socially.constructed.space](https://socially.constructed.space) |Single user|No|No| | [socially.constructed.space](https://socially.constructed.space) |Single user|No|No|
@ -41,5 +42,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| | [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| | [status.dissidence.ovh](https://status.dissidence.ovh)|N/A|Yes|Yes|
| [mastodon.cc](https://mastodon.cc)|Art|Yes|No| | [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). Let me know if you start running one so I can add it to the list! (Alternatively, add it yourself as a pull request).

View File

@ -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. **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 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. 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: 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 Public | Anyone incl. anonymous viewers | Yes | Yes
Unlisted | Anyone incl. anonymous viewers | No | Yes Unlisted | Anyone incl. anonymous viewers | No | Yes
Private | Followers only | No | Only remote @mentions Private | Followers only | No | Only remote @mentions
Direct | No | No | No Direct | No | No | Only remote @mentions
#### Blocking #### Blocking

View File

@ -310,7 +310,7 @@ Returns a [Status](#status).
#### Getting status context: #### Getting status context:
GET /api/v1/statuses/:id/contexts GET /api/v1/statuses/:id/context
Returns a [Context](#context). Returns a [Context](#context).