about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--app/lib/feed_manager.rb2
-rw-r--r--app/services/fan_out_on_write_service.rb17
-rw-r--r--app/workers/after_remote_follow_request_worker.rb2
-rw-r--r--app/workers/after_remote_follow_worker.rb2
-rw-r--r--config/locales/fi.yml14
-rw-r--r--db/migrate/20170405112956_add_index_on_mentions_status_id.rb5
-rw-r--r--db/schema.rb3
-rw-r--r--docs/Running-Mastodon/Production-guide.md3
-rw-r--r--docs/Using-Mastodon/List-of-Mastodon-instances.md6
9 files changed, 34 insertions, 20 deletions
diff --git a/app/lib/feed_manager.rb b/app/lib/feed_manager.rb
index 2cca1cefe..88f6f4a46 100644
--- a/app/lib/feed_manager.rb
+++ b/app/lib/feed_manager.rb
@@ -39,7 +39,7 @@ class FeedManager
 
   def broadcast(timeline_id, options = {})
     options[:queued_at] = (Time.now.to_f * 1000.0).to_i
-    ActionCable.server.broadcast("timeline:#{timeline_id}", options)
+    redis.publish("timeline:#{timeline_id}", Oj.dump(options))
   end
 
   def trim(type, account_id)
diff --git a/app/services/fan_out_on_write_service.rb b/app/services/fan_out_on_write_service.rb
index 42222c25b..106d257ba 100644
--- a/app/services/fan_out_on_write_service.rb
+++ b/app/services/fan_out_on_write_service.rb
@@ -16,6 +16,7 @@ class FanOutOnWriteService < BaseService
 
     return if status.account.silenced? || !status.public_visibility? || status.reblog?
 
+    render_anonymous_payload(status)
     deliver_to_hashtags(status)
 
     return if status.reply? && status.in_reply_to_account_id != status.account_id
@@ -48,23 +49,23 @@ class FanOutOnWriteService < BaseService
     end
   end
 
+  def render_anonymous_payload(status)
+    @payload = FeedManager.instance.inline_render(nil, 'api/v1/statuses/show', status)
+  end
+
   def deliver_to_hashtags(status)
     Rails.logger.debug "Delivering status #{status.id} to hashtags"
 
-    payload = FeedManager.instance.inline_render(nil, 'api/v1/statuses/show', status)
-
     status.tags.pluck(:name).each do |hashtag|
-      FeedManager.instance.broadcast("hashtag:#{hashtag}", event: 'update', payload: payload)
-      FeedManager.instance.broadcast("hashtag:#{hashtag}:local", event: 'update', payload: payload) if status.account.local?
+      FeedManager.instance.broadcast("hashtag:#{hashtag}", event: 'update', payload: @payload)
+      FeedManager.instance.broadcast("hashtag:#{hashtag}:local", event: 'update', payload: @payload) if status.account.local?
     end
   end
 
   def deliver_to_public(status)
     Rails.logger.debug "Delivering status #{status.id} to public timeline"
 
-    payload = FeedManager.instance.inline_render(nil, 'api/v1/statuses/show', status)
-
-    FeedManager.instance.broadcast(:public, event: 'update', payload: payload)
-    FeedManager.instance.broadcast('public:local', event: 'update', payload: payload) if status.account.local?
+    FeedManager.instance.broadcast(:public, event: 'update', payload: @payload)
+    FeedManager.instance.broadcast('public:local', event: 'update', payload: @payload) if status.account.local?
   end
 end
diff --git a/app/workers/after_remote_follow_request_worker.rb b/app/workers/after_remote_follow_request_worker.rb
index 1f2db3061..928069211 100644
--- a/app/workers/after_remote_follow_request_worker.rb
+++ b/app/workers/after_remote_follow_request_worker.rb
@@ -13,5 +13,7 @@ class AfterRemoteFollowRequestWorker
 
     follow_request.destroy
     FollowService.new.call(follow_request.account, updated_account.acct)
+  rescue ActiveRecord::RecordNotFound
+    true
   end
 end
diff --git a/app/workers/after_remote_follow_worker.rb b/app/workers/after_remote_follow_worker.rb
index bdd2c2a91..d12fa3454 100644
--- a/app/workers/after_remote_follow_worker.rb
+++ b/app/workers/after_remote_follow_worker.rb
@@ -13,5 +13,7 @@ class AfterRemoteFollowWorker
 
     follow.destroy
     FollowService.new.call(follow.account, updated_account.acct)
+  rescue ActiveRecord::RecordNotFound
+    true
   end
 end
diff --git a/config/locales/fi.yml b/config/locales/fi.yml
index 3bcfe5c20..cdb2b9886 100644
--- a/config/locales/fi.yml
+++ b/config/locales/fi.yml
@@ -21,12 +21,12 @@ fi:
     features_headline: Mikä erottaa Mastodonin muista
     get_started: Aloita käyttö
     links: Linkit
-    other_instances: Muut palvelimet
+    other_instances: muuhun palvelimeen
     source_code: Lähdekoodi
-    status_count_after: statukset
-    status_count_before: Kuka loi
+    status_count_after: statusta
+    status_count_before: Ovat luoneet
     terms: Ehdot
-    user_count_after: käyttäjät
+    user_count_after: käyttäjää
     user_count_before: Koti käyttäjälle
   accounts:
     follow: Seuraa
@@ -89,7 +89,7 @@ fi:
     preface: Voit tuoda tiettyä dataa kaikista ihmisistä joita seuraat tai estät tilillesi tälle palvelimelle tiedostoista, jotka on luotu toisella palvelimella
     success: Datasi on onnistuneesti ladattu ja käsitellään pian
     types:
-      blocking: Esto lista
+      blocking: Estetyt lista
       following: Seuratut lista
     upload: Lähetä
   landing_strip_html: <strong>%{name}</strong> on käyttäjä domainilla <strong>%{domain}</strong>. Voit seurata tai vuorovaikuttaa heidän kanssaan jos sinulla on tili yleisessä verkossa. Jos sinulla ei ole tiliä, voit <a href="%{sign_up_path}">rekisteröityä täällä</a>.
@@ -132,7 +132,7 @@ fi:
     edit_profile: Muokkaa profiilia
     export: Datan vienti
     import: Datan tuonti
-    preferences: Mieltymykset
+    preferences: Ominaisuudet
     settings: Asetukset
     two_factor_auth: Kaksivaiheinen tunnistus
   statuses:
@@ -154,7 +154,7 @@ fi:
     description_html: Jos otat käyttöön <strong>kaksivaiheisen tunnistuksen</stron>, kirjautumiseen vaaditaan puhelin, joka voi generoida tokeneita kirjautumista varten.
     disable: Poista käytöstä
     enable: Ota käyttöön
-    instructions_html: "<strong>Skannaa tämä QR-koodi Google Authenticator tai samanlaiseen sovellukseen puhelimellasi</strong>. Tästä hetkestä lähtien, ohjelma generoi tokenit mikä sinun tarvitsee syöttää sisäänkirjautuessa."
+    instructions_html: "<strong>Skannaa tämä QR-koodi Google Authenticator tai samanlaiseen sovellukseen puhelimellasi</strong>. Tästä hetkestä lähtien ohjelma generoi koodin, mikä sinun tarvitsee syöttää sisäänkirjautuessa."
     plaintext_secret_html: 'Plain-text secret: <samp>%{secret}</samp>'
     warning: Jos et juuri nyt voi konfiguroida authenticator-applikaatiota juuri nyt, sinun pitäisi klikata "Poista käytöstä" tai et voi kirjautua sisään.
   users:
diff --git a/db/migrate/20170405112956_add_index_on_mentions_status_id.rb b/db/migrate/20170405112956_add_index_on_mentions_status_id.rb
new file mode 100644
index 000000000..3ed1a20cf
--- /dev/null
+++ b/db/migrate/20170405112956_add_index_on_mentions_status_id.rb
@@ -0,0 +1,5 @@
+class AddIndexOnMentionsStatusId < ActiveRecord::Migration[5.0]
+  def change
+    add_index :mentions, :status_id
+  end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 3aaa3e3ad..b5d55fa16 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
 #
 # It's strongly recommended that you check this file into your version control system.
 
-ActiveRecord::Schema.define(version: 20170403172249) do
+ActiveRecord::Schema.define(version: 20170405112956) do
 
   # These are extensions that must be enabled in order to support this database
   enable_extension "plpgsql"
@@ -127,6 +127,7 @@ ActiveRecord::Schema.define(version: 20170403172249) do
     t.datetime "created_at", null: false
     t.datetime "updated_at", null: false
     t.index ["account_id", "status_id"], name: "index_mentions_on_account_id_and_status_id", unique: true, using: :btree
+    t.index ["status_id"], name: "index_mentions_on_status_id", using: :btree
   end
 
   create_table "mutes", force: :cascade do |t|
diff --git a/docs/Running-Mastodon/Production-guide.md b/docs/Running-Mastodon/Production-guide.md
index 3912fd2ba..90e9c0dea 100644
--- a/docs/Running-Mastodon/Production-guide.md
+++ b/docs/Running-Mastodon/Production-guide.md
@@ -88,8 +88,9 @@ It is recommended to create a special user for mastodon on the server (you could
 
 ## General dependencies
 
+    sudo apt-get install imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev nodejs file git curl
     curl -sL https://deb.nodesource.com/setup_4.x | sudo bash -
-    sudo apt-get install imagemagick ffmpeg libpq-dev libxml2-dev libxslt1-dev nodejs file
+    apt-get intall nodejs
     sudo npm install -g yarn
 
 ## Redis
diff --git a/docs/Using-Mastodon/List-of-Mastodon-instances.md b/docs/Using-Mastodon/List-of-Mastodon-instances.md
index 0b98f8552..1f5be3a61 100644
--- a/docs/Using-Mastodon/List-of-Mastodon-instances.md
+++ b/docs/Using-Mastodon/List-of-Mastodon-instances.md
@@ -20,14 +20,15 @@ There is also a list at [instances.mastodon.xyz](https://instances.mastodon.xyz)
 | [social.diskseven.com](https://social.diskseven.com) |Single user|No|Yes|
 | [social.gestaltzerfall.net](https://social.gestaltzerfall.net) |Single user|No|No|
 | [mastodon.xyz](https://mastodon.xyz) |N/A|Yes|Yes|
-| [mastodon.partipirate.org](https://mastodon.partipirate.org) |French Pirate Part Instance - Politics and stuff|Yes|No|
+| [mastodon.partipirate.org](https://mastodon.partipirate.org) |French Pirate Party Instance - Politics and stuff|Yes|No|
 | [social.targaryen.house](https://social.targaryen.house) |Federates everywhere, quick updates.|Yes|Yes|
 | [masto.themimitoof.fr](https://masto.themimitoof.fr) |N/A|Yes|Yes|
 | [mstdn.io](https://mstdn.io) |N/A|Yes|Yes|
 | [social.imirhil.fr](https://social.imirhil.fr) |N/A|No|Yes|
-| [social.wxcafe.net](https://social.wxcafe.net) |Open registrations, federates everywhere, no moderation yet|Yes|Yes|
+| [social.wxcafe.net](https://social.wxcafe.net) |Open registrations, queer people, activists, safe as much as possible |Yes|Yes|
 | [octodon.social](https://octodon.social) |Open registrations, federates everywhere, cutest instance yet|Yes|Yes|
 | [mastodon.club](https://mastodon.club)|Open Registration, Open Federation, Mostly Canadians|Yes|No|
+| [mastodon.irish](https://mastodon.irish)|Open Registration|Yes|No|
 | [hostux.social](https://hostux.social) |N/A|Yes|Yes|
 | [social.alex73630.xyz](https://social.alex73630.xyz) |Francophones|Yes|Yes|
 | [oc.todon.fr](https://oc.todon.fr) |Modérée et principalement francophone, pas de tolérances pour misogynie/LGBTphobies/validisme/etc.|Yes|Yes|
@@ -46,5 +47,6 @@ There is also a list at [instances.mastodon.xyz](https://instances.mastodon.xyz)
 | [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|
+| [mastodon.systemlab.fr](https://mastodon.systemlab.fr/)|Le mastodon Français, informatique, jeux-vidéos, gaming et hébergement.|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).