From 341e2ca9988d43d76b61c8d41371723d14c82923 Mon Sep 17 00:00:00 2001 From: Genbu Hase Date: Fri, 16 Mar 2018 09:20:34 +0900 Subject: [PATCH] =?UTF-8?q?Revert=20"[Update]=20master=E3=82=92ME6?= =?UTF-8?q?=E3=81=AB=E8=BF=BD=E5=BE=93=20(#14)"?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This reverts commit 8b5dda0603fb5684957802cf14345705bc7789a4. --- .codeclimate.yml | 1 - .env.nanobox | 95 +- .env.production.sample | 81 +- .env.test | 1 + .eslintrc.yml | 19 +- .ruby-version | 2 +- .travis.yml | 36 +- AUTHORS.md | 450 -------- Dockerfile | 28 +- Gemfile | 27 +- Gemfile.lock | 131 +-- README.md | 3 +- Vagrantfile | 5 +- app/chewy/statuses_index.rb | 61 -- app/controllers/about_controller.rb | 2 +- app/controllers/accounts_controller.rb | 48 +- .../activitypub/collections_controller.rb | 57 - .../activitypub/inboxes_controller.rb | 4 +- .../activitypub/outboxes_controller.rb | 6 +- app/controllers/admin/settings_controller.rb | 4 - app/controllers/api/base_controller.rb | 6 +- app/controllers/api/salmon_controller.rb | 4 +- .../api/v1/accounts/credentials_controller.rb | 2 +- .../v1/accounts/relationships_controller.rb | 4 +- .../api/v1/accounts/search_controller.rb | 4 + .../api/v1/accounts/statuses_controller.rb | 6 +- app/controllers/api/v1/accounts_controller.rb | 6 +- .../api/v1/instances/activity_controller.rb | 6 +- app/controllers/api/v1/media_controller.rb | 2 +- app/controllers/api/v1/reports_controller.rb | 12 +- app/controllers/api/v1/search_controller.rb | 6 +- .../api/v1/statuses/pins_controller.rb | 28 +- .../api/v1/timelines/home_controller.rb | 10 +- .../api/v1/timelines/public_controller.rb | 14 +- .../api/v1/timelines/tag_controller.rb | 14 +- .../api/web/push_subscriptions_controller.rb | 1 - app/controllers/application_controller.rb | 26 +- .../auth/confirmations_controller.rb | 24 - .../auth/omniauth_callbacks_controller.rb | 33 - .../auth/registrations_controller.rb | 9 - app/controllers/auth/sessions_controller.rb | 22 +- .../authorize_follows_controller.rb | 7 +- app/controllers/concerns/localized.rb | 12 +- .../concerns/signature_authentication.rb | 11 - .../concerns/signature_verification.rb | 2 +- .../concerns/user_tracking_concern.rb | 16 + app/controllers/emojis_controller.rb | 10 +- .../follower_accounts_controller.rb | 4 +- .../following_accounts_controller.rb | 4 +- app/controllers/home_controller.rb | 3 +- app/controllers/media_controller.rb | 18 +- app/controllers/remote_follow_controller.rb | 4 - .../settings/exports_controller.rb | 14 +- .../settings/preferences_controller.rb | 1 - .../confirmations_controller.rb | 5 - app/controllers/shares_controller.rb | 5 +- app/controllers/statuses_controller.rb | 20 +- app/controllers/stream_entries_controller.rb | 5 - app/helpers/admin/action_logs_helper.rb | 2 +- app/helpers/application_helper.rb | 10 +- app/helpers/instance_helper.rb | 4 +- app/helpers/jsonld_helper.rb | 4 - app/helpers/mailer_helper.rb | 4 - app/helpers/routing_helper.rb | 5 - app/helpers/settings_helper.rb | 3 - app/helpers/stream_entries_helper.rb | 21 - app/javascript/images/elephant-fren.png | Bin 72741 -> 40859 bytes app/javascript/images/elephant-friend-1.png | Bin 0 -> 144967 bytes app/javascript/images/elephant-friend.png | Bin 0 -> 24466 bytes .../images/elephant_ui_disappointed.svg | 1 - .../images/elephant_ui_greeting.svg | 1 - app/javascript/images/elephant_ui_plane.svg | 1 - app/javascript/images/elephant_ui_working.svg | 1 - app/javascript/images/icon_cached.svg | 2 - app/javascript/images/icon_done.svg | 4 - app/javascript/images/icon_email.svg | 4 - app/javascript/images/icon_file_download.svg | 4 - app/javascript/images/icon_grade.svg | 4 - app/javascript/images/icon_lock_open.svg | 4 - app/javascript/images/icon_person_add.svg | 4 - app/javascript/images/icon_reply.svg | 4 - app/javascript/images/logo_transparent.svg | 1 - app/javascript/images/mailer/icon_cached.png | Bin 582 -> 0 bytes app/javascript/images/mailer/icon_done.png | Bin 279 -> 0 bytes app/javascript/images/mailer/icon_email.png | Bin 520 -> 0 bytes .../images/mailer/icon_file_download.png | Bin 271 -> 0 bytes app/javascript/images/mailer/icon_grade.png | Bin 541 -> 0 bytes .../images/mailer/icon_lock_open.png | Bin 550 -> 0 bytes .../images/mailer/icon_person_add.png | Bin 512 -> 0 bytes app/javascript/images/mailer/icon_reply.png | Bin 391 -> 0 bytes app/javascript/images/mailer/logo_full.png | Bin 3052 -> 0 bytes .../images/mailer/logo_transparent.png | Bin 627 -> 0 bytes app/javascript/images/mastodon-drawer.png | Bin 69988 -> 32449 bytes app/javascript/images/mastodon-not-found.png | Bin 0 -> 19560 bytes app/javascript/images/reticle.png | Bin 3053 -> 0 bytes app/javascript/images/wave-drawer.png | Bin 0 -> 3269 bytes app/javascript/mastodon/actions/UtilBtns.js | 87 -- app/javascript/mastodon/actions/compose.js | 73 +- .../mastodon/actions/dropdown_menu.js | 10 - .../mastodon/actions/notifications.js | 2 +- .../actions/push_notifications/index.js | 4 +- .../actions/push_notifications/registerer.js | 15 +- .../actions/push_notifications/setter.js | 4 +- app/javascript/mastodon/actions/reports.js | 9 - app/javascript/mastodon/actions/search.js | 2 - app/javascript/mastodon/actions/settings.js | 10 +- app/javascript/mastodon/actions/store.js | 13 +- app/javascript/mastodon/actions/timelines.js | 30 +- app/javascript/mastodon/api.js | 12 +- app/javascript/mastodon/base_polyfills.js | 5 - .../__snapshots__/display_name-test.js.snap | 16 +- app/javascript/mastodon/components/account.js | 2 +- .../mastodon/components/attachment_list.js | 36 +- .../components/autosuggest_textarea.js | 5 +- .../mastodon/components/collapsable.js | 4 +- .../components/column_back_button_slim.js | 13 +- .../mastodon/components/column_header.js | 15 +- .../mastodon/components/display_name.js | 2 +- .../mastodon/components/dropdown_menu.js | 55 +- .../components/extended_video_player.js | 8 - .../mastodon/components/icon_button.js | 4 +- .../mastodon/components/media_gallery.js | 96 +- .../mastodon/components/missing_indicator.js | 9 +- .../mastodon/components/permalink.js | 10 +- .../mastodon/components/scrollable_list.js | 12 +- app/javascript/mastodon/components/status.js | 44 +- .../mastodon/components/status_content.js | 15 +- .../mastodon/components/status_list.js | 40 +- .../containers/dropdown_menu_container.js | 19 +- .../mastodon/containers/timeline_container.js | 12 +- .../features/account/components/action_bar.js | 6 +- .../features/account/components/header.js | 24 +- .../account_gallery/components/media_item.js | 44 +- .../features/account_gallery/index.js | 9 +- .../account_timeline/components/header.js | 14 +- .../account_timeline/components/moved_note.js | 2 +- .../features/account_timeline/index.js | 40 +- .../compose/components/compose_form.js | 30 +- .../compose/components/privacy_dropdown.js | 4 +- .../features/compose/components/search.js | 5 +- .../compose/components/search_results.js | 10 +- .../features/compose/components/upload.js | 20 +- .../compose/components/user_counter.js | 10 - .../containers/compose_form_container.js | 24 +- .../compose/containers/upload_container.js | 7 +- .../compose/containers/warning_container.js | 9 +- .../mastodon/features/compose/index.js | 11 +- .../features/compose/util/url_regex.js | 192 ++-- .../features/emoji/__tests__/emoji-test.js | 4 +- .../features/favourited_statuses/index.js | 4 +- .../mastodon/features/followers/index.js | 2 +- .../mastodon/features/following/index.js | 2 +- .../features/getting_started/index.js | 62 +- .../mastodon/features/home_timeline/index.js | 37 +- .../mastodon/features/list_editor/index.js | 4 +- .../mastodon/features/list_timeline/index.js | 8 +- .../components/clear_column_button.js | 2 +- .../components/column_settings.js | 4 +- .../notifications/components/notification.js | 2 +- .../containers/column_settings_container.js | 8 +- .../mastodon/features/notifications/index.js | 10 +- .../report/components/status_check_box.js | 44 +- .../standalone/community_timeline/index.js | 74 -- .../features/status/components/card.js | 175 ++-- .../status/components/detailed_status.js | 1 - .../ui/components/__tests__/column-test.js | 4 +- .../mastodon/features/ui/components/bundle.js | 13 +- .../ui/components/bundle_column_error.js | 2 +- .../ui/components/bundle_modal_error.js | 2 +- .../features/ui/components/column_header.js | 20 +- .../features/ui/components/column_link.js | 7 +- .../features/ui/components/columns_area.js | 22 +- .../features/ui/components/embed_modal.js | 4 +- .../ui/components/focal_point_modal.js | 122 --- .../features/ui/components/image_loader.js | 32 +- .../features/ui/components/media_modal.js | 84 +- .../features/ui/components/modal_root.js | 14 +- .../ui/components/onboarding_modal.js | 70 +- .../features/ui/components/report_modal.js | 47 +- .../features/ui/components/tabs_bar.js | 15 +- .../features/ui/components/upload_area.js | 4 +- .../features/ui/components/video_modal.js | 2 +- .../features/ui/components/zoomable_image.js | 151 --- .../ui/containers/columns_area_container.js | 1 - .../ui/containers/status_list_container.js | 6 +- app/javascript/mastodon/features/ui/index.js | 164 ++- .../features/ui/util/react_router_helpers.js | 11 +- .../mastodon/features/video/index.js | 48 +- app/javascript/mastodon/initial_state.js | 2 - app/javascript/mastodon/load_polyfills.js | 1 - app/javascript/mastodon/locales/ar.json | 31 +- app/javascript/mastodon/locales/bg.json | 23 +- app/javascript/mastodon/locales/ca.json | 99 +- app/javascript/mastodon/locales/de.json | 69 +- .../mastodon/locales/defaultMessages.json | 164 +-- app/javascript/mastodon/locales/en.json | 29 +- app/javascript/mastodon/locales/eo.json | 309 +++--- app/javascript/mastodon/locales/es.json | 27 +- app/javascript/mastodon/locales/fa.json | 95 +- app/javascript/mastodon/locales/fi.json | 387 ++++--- app/javascript/mastodon/locales/fr.json | 67 +- app/javascript/mastodon/locales/gl.json | 37 +- app/javascript/mastodon/locales/he.json | 23 +- app/javascript/mastodon/locales/hr.json | 23 +- app/javascript/mastodon/locales/hu.json | 417 ++++---- app/javascript/mastodon/locales/hy.json | 278 ----- app/javascript/mastodon/locales/id.json | 23 +- app/javascript/mastodon/locales/io.json | 23 +- app/javascript/mastodon/locales/it.json | 23 +- app/javascript/mastodon/locales/ja.json | 79 +- app/javascript/mastodon/locales/ko.json | 43 +- app/javascript/mastodon/locales/nl.json | 39 +- app/javascript/mastodon/locales/no.json | 121 +-- app/javascript/mastodon/locales/oc.json | 75 +- app/javascript/mastodon/locales/pl.json | 33 +- app/javascript/mastodon/locales/pt-BR.json | 31 +- app/javascript/mastodon/locales/pt.json | 37 +- app/javascript/mastodon/locales/ru.json | 103 +- app/javascript/mastodon/locales/sk.json | 488 ++++----- app/javascript/mastodon/locales/sr-Latn.json | 278 ----- app/javascript/mastodon/locales/sr.json | 278 ----- app/javascript/mastodon/locales/sv.json | 97 +- app/javascript/mastodon/locales/th.json | 23 +- app/javascript/mastodon/locales/tr.json | 23 +- app/javascript/mastodon/locales/uk.json | 23 +- .../mastodon/locales/whitelist_hy.json | 2 - .../mastodon/locales/whitelist_sk.json | 2 - .../mastodon/locales/whitelist_sr-Latn.json | 2 - .../mastodon/locales/whitelist_sr.json | 2 - app/javascript/mastodon/locales/zh-CN.json | 35 +- app/javascript/mastodon/locales/zh-HK.json | 23 +- app/javascript/mastodon/locales/zh-TW.json | 47 +- app/javascript/mastodon/reducers/accounts.js | 2 +- app/javascript/mastodon/reducers/compose.js | 30 +- .../mastodon/reducers/dropdown_menu.js | 18 - app/javascript/mastodon/reducers/index.js | 2 - .../mastodon/reducers/push_notifications.js | 2 +- app/javascript/mastodon/reducers/reports.js | 4 - app/javascript/mastodon/reducers/settings.js | 2 +- app/javascript/mastodon/reducers/statuses.js | 2 +- app/javascript/mastodon/reducers/timelines.js | 7 +- app/javascript/mastodon/settings.js | 1 - app/javascript/packs/about.js | 2 + app/javascript/packs/admin.js | 8 +- app/javascript/packs/mailer.js | 1 - app/javascript/packs/share.js | 2 + app/javascript/styles/application.scss | 2 - app/javascript/styles/mailer.scss | 546 ---------- app/javascript/styles/mastodon/about.scss | 841 +++++---------- app/javascript/styles/mastodon/accounts.scss | 83 +- app/javascript/styles/mastodon/admin.scss | 20 +- app/javascript/styles/mastodon/basics.scss | 5 - .../styles/mastodon/components.scss | 986 ++++-------------- .../styles/mastodon/containers.scss | 2 +- app/javascript/styles/mastodon/forms.scss | 33 +- app/javascript/styles/mastodon/modal.scss | 20 - .../styles/mastodon/stream_entries.scss | 24 +- app/lib/activity_tracker.rb | 2 +- app/lib/activitypub/activity.rb | 13 +- app/lib/activitypub/activity/add.rb | 13 - app/lib/activitypub/activity/announce.rb | 9 +- app/lib/activitypub/activity/create.rb | 41 +- app/lib/activitypub/activity/delete.rb | 1 - app/lib/activitypub/activity/flag.rb | 25 - app/lib/activitypub/activity/reject.rb | 2 - app/lib/activitypub/activity/remove.rb | 14 - app/lib/activitypub/adapter.rb | 2 - app/lib/activitypub/tag_manager.rb | 2 - app/lib/exceptions.rb | 1 - app/lib/fast_geometry_parser.rb | 11 - app/lib/feed_manager.rb | 8 - app/lib/formatter.rb | 8 +- app/lib/ostatus/activity/creation.rb | 18 +- app/lib/request.rb | 19 +- app/lib/sanitize_config.rb | 8 +- app/lib/sidekiq_error_handler.rb | 11 - app/lib/status_filter.rb | 1 - app/lib/user_settings_decorator.rb | 29 +- app/mailers/admin_mailer.rb | 4 +- app/mailers/application_mailer.rb | 3 - app/mailers/notification_mailer.rb | 10 +- app/mailers/user_mailer.rb | 41 +- app/models/account.rb | 5 +- app/models/account_domain_block.rb | 10 +- app/models/admin/action_log.rb | 4 +- app/models/backup.rb | 22 - app/models/block.rb | 8 +- app/models/concerns/account_avatar.rb | 6 +- app/models/concerns/account_header.rb | 6 +- app/models/concerns/omniauthable.rb | 85 -- app/models/concerns/paginable.rb | 9 - app/models/concerns/relationship_cacheable.rb | 16 - app/models/concerns/remotable.rb | 6 +- app/models/conversation_mute.rb | 4 +- app/models/favourite.rb | 6 +- app/models/follow.rb | 6 +- app/models/follow_request.rb | 5 +- app/models/form/admin_settings.rb | 2 - app/models/form/migration.rb | 2 +- app/models/identity.rb | 22 - app/models/import.rb | 4 +- app/models/invite.rb | 4 +- app/models/list.rb | 2 +- app/models/list_account.rb | 6 +- app/models/media_attachment.rb | 77 +- app/models/mention.rb | 4 +- app/models/mute.rb | 8 +- app/models/notification.rb | 19 +- app/models/preview_card.rb | 13 +- app/models/report.rb | 6 +- app/models/session_activation.rb | 6 +- app/models/site_upload.rb | 4 +- app/models/status.rb | 46 +- app/models/status_pin.rb | 4 +- app/models/subscription.rb | 2 +- app/models/user.rb | 139 +-- app/models/web/setting.rb | 2 +- app/policies/application_policy.rb | 4 - app/policies/backup_policy.rb | 9 - .../account_relationships_presenter.rb | 68 +- app/presenters/instance_presenter.rb | 4 - .../activitypub/actor_serializer.rb | 6 +- app/serializers/activitypub/add_serializer.rb | 24 - .../activitypub/collection_serializer.rb | 6 +- .../activitypub/delete_actor_serializer.rb | 22 - .../activitypub/flag_serializer.rb | 27 - .../activitypub/image_serializer.rb | 9 - .../activitypub/note_serializer.rb | 9 - .../activitypub/outbox_serializer.rb | 8 - .../activitypub/remove_serializer.rb | 24 - app/serializers/initial_state_serializer.rb | 14 +- app/serializers/manifest_serializer.rb | 7 +- app/serializers/rest/instance_serializer.rb | 13 +- app/services/account_search_service.rb | 2 +- .../fetch_featured_collection_service.rb | 52 - .../fetch_remote_status_service.rb | 2 +- .../activitypub/process_account_service.rb | 42 +- app/services/backup_service.rb | 128 --- app/services/batched_remove_status_service.rb | 38 +- app/services/block_domain_service.rb | 37 +- app/services/concerns/author_extractor.rb | 2 +- app/services/fetch_atom_service.rb | 10 +- app/services/fetch_link_card_service.rb | 26 +- ...ce.rb => fetch_remote_resource_service.rb} | 2 +- app/services/follow_service.rb | 2 +- app/services/notify_service.rb | 2 +- app/services/post_status_service.rb | 10 +- app/services/precompute_feed_service.rb | 1 - app/services/process_mentions_service.rb | 6 +- app/services/report_service.rb | 54 - ...e.rb => resolve_remote_account_service.rb} | 2 +- app/services/search_service.rb | 59 +- app/services/suspend_account_service.rb | 12 - app/validators/status_length_validator.rb | 2 - .../unreserved_username_validator.rb | 6 - app/views/about/_forms.html.haml | 15 - app/views/about/_links.html.haml | 16 - app/views/about/_registration.html.haml | 2 +- app/views/about/more.html.haml | 33 +- app/views/about/show.html.haml | 181 ++-- app/views/about/terms.html.haml | 16 +- app/views/accounts/_follow_button.html.haml | 23 - app/views/accounts/_grid_card.html.haml | 7 +- app/views/accounts/_header.html.haml | 19 +- app/views/accounts/_og.html.haml | 2 +- app/views/accounts/show.html.haml | 16 +- app/views/admin/accounts/show.html.haml | 5 +- app/views/admin/settings/edit.html.haml | 4 - .../confirmations/finish_signup.html.haml | 14 - app/views/auth/passwords/edit.html.haml | 14 +- .../auth/registrations/_sessions.html.haml | 4 +- app/views/auth/registrations/edit.html.haml | 23 +- app/views/auth/sessions/new.html.haml | 14 +- app/views/authorize_follows/success.html.haml | 2 +- app/views/follower_accounts/index.html.haml | 4 +- app/views/following_accounts/index.html.haml | 4 +- app/views/layouts/application.html.haml | 7 +- app/views/layouts/auth.html.haml | 2 +- app/views/layouts/mailer.html.haml | 52 - app/views/layouts/mailer.text.erb | 2 +- app/views/layouts/modal.html.haml | 4 +- app/views/layouts/plain_mailer.html.haml | 1 - app/views/layouts/public.html.haml | 2 +- app/views/media/player.html.haml | 2 - .../notification_mailer/_status.html.haml | 31 - .../notification_mailer/digest.html.haml | 44 - .../notification_mailer/favourite.html.haml | 45 - .../notification_mailer/follow.html.haml | 43 - .../follow_request.html.haml | 43 - .../notification_mailer/mention.html.haml | 45 - .../notification_mailer/reblog.html.haml | 45 - app/views/settings/exports/show.html.haml | 23 - app/views/settings/preferences/show.html.haml | 4 - .../stream_entries/_detailed_status.html.haml | 4 +- .../stream_entries/_og_description.html.haml | 5 +- app/views/stream_entries/_og_image.html.haml | 29 +- .../stream_entries/_simple_status.html.haml | 4 +- app/views/stream_entries/show.html.haml | 2 +- app/views/tags/_features.html.haml | 25 - app/views/tags/show.html.haml | 61 +- app/views/user_mailer/backup_ready.html.haml | 59 -- app/views/user_mailer/backup_ready.text.erb | 7 - .../confirmation_instructions.ar.html.erb | 12 + .../confirmation_instructions.ar.text.erb | 12 + .../confirmation_instructions.ca.html.erb | 12 + .../confirmation_instructions.ca.text.erb | 12 + .../confirmation_instructions.en.html.erb | 15 + .../confirmation_instructions.en.text.erb | 12 + .../confirmation_instructions.es.html.erb | 12 + .../confirmation_instructions.es.text.erb | 12 + .../confirmation_instructions.fa.html.erb | 12 + .../confirmation_instructions.fa.text.erb | 12 + .../confirmation_instructions.fi.html.erb | 5 + .../confirmation_instructions.fi.text.erb | 5 + .../confirmation_instructions.fr.html.erb | 14 + .../confirmation_instructions.fr.text.erb | 14 + .../confirmation_instructions.he.html.erb | 14 + .../confirmation_instructions.he.text.erb | 12 + .../confirmation_instructions.html.haml | 76 -- .../confirmation_instructions.id.html.erb | 12 + .../confirmation_instructions.id.text.erb | 12 + .../confirmation_instructions.it.html.erb | 12 + .../confirmation_instructions.it.text.erb | 12 + .../confirmation_instructions.ja.html.erb | 11 + .../confirmation_instructions.ja.text.erb | 11 + .../confirmation_instructions.ko.html.erb | 13 + .../confirmation_instructions.ko.text.erb | 10 + .../confirmation_instructions.nl.html.erb | 12 + .../confirmation_instructions.nl.text.erb | 12 + .../confirmation_instructions.no.html.erb | 12 + .../confirmation_instructions.no.text.erb | 12 + .../confirmation_instructions.oc.html.erb | 14 + .../confirmation_instructions.oc.text.erb | 14 + .../confirmation_instructions.pl.html.erb | 12 + .../confirmation_instructions.pl.text.erb | 12 + .../confirmation_instructions.pt-BR.html.erb | 12 + .../confirmation_instructions.pt-BR.text.erb | 12 + .../confirmation_instructions.ru.html.erb | 12 + .../confirmation_instructions.ru.text.erb | 12 + .../confirmation_instructions.sv.html.erb | 15 + .../confirmation_instructions.sv.text.erb | 12 + .../confirmation_instructions.text.erb | 12 - .../confirmation_instructions.tr.html.erb | 15 + .../confirmation_instructions.tr.text.erb | 13 + .../confirmation_instructions.zh-cn.html.erb | 13 + .../confirmation_instructions.zh-cn.text.erb | 10 + app/views/user_mailer/email_changed.html.haml | 58 -- app/views/user_mailer/email_changed.text.erb | 9 - .../user_mailer/password_change.ar.html.erb | 3 + .../user_mailer/password_change.ar.text.erb | 3 + .../user_mailer/password_change.ca.html.erb | 3 + .../user_mailer/password_change.ca.text.erb | 3 + .../user_mailer/password_change.en.html.erb | 3 + .../user_mailer/password_change.en.text.erb | 3 + .../user_mailer/password_change.es.html.erb | 3 + .../user_mailer/password_change.es.text.erb | 3 + .../user_mailer/password_change.fa.html.erb | 3 + .../user_mailer/password_change.fa.text.erb | 3 + .../user_mailer/password_change.fi.html.erb | 3 + .../user_mailer/password_change.fi.text.erb | 3 + .../user_mailer/password_change.fr.html.erb | 3 + .../user_mailer/password_change.fr.text.erb | 3 + .../user_mailer/password_change.he.html.erb | 4 + .../user_mailer/password_change.he.text.erb | 3 + .../user_mailer/password_change.html.haml | 40 - .../user_mailer/password_change.id.html.erb | 3 + .../user_mailer/password_change.id.text.erb | 3 + .../user_mailer/password_change.it.html.erb | 3 + .../user_mailer/password_change.it.text.erb | 3 + .../user_mailer/password_change.ja.html.erb | 3 + .../user_mailer/password_change.ja.text.erb | 3 + .../user_mailer/password_change.nl.html.erb | 3 + .../user_mailer/password_change.nl.text.erb | 3 + .../user_mailer/password_change.no.html.erb | 3 + .../user_mailer/password_change.no.text.erb | 3 + .../user_mailer/password_change.oc.html.erb | 3 + .../user_mailer/password_change.oc.text.erb | 3 + .../user_mailer/password_change.pl.html.erb | 3 + .../user_mailer/password_change.pl.text.erb | 3 + .../password_change.pt-BR.html.erb | 3 + .../password_change.pt-BR.text.erb | 3 + .../user_mailer/password_change.ru.html.erb | 3 + .../user_mailer/password_change.ru.text.erb | 3 + .../user_mailer/password_change.sv.html.erb | 3 + .../user_mailer/password_change.sv.text.erb | 3 + .../user_mailer/password_change.text.erb | 7 - .../user_mailer/password_change.th.html.erb | 3 + .../user_mailer/password_change.th.text.erb | 3 + .../user_mailer/password_change.tr.html.erb | 8 + .../user_mailer/password_change.tr.text.erb | 8 + .../password_change.zh-cn.html.erb | 3 + .../password_change.zh-cn.text.erb | 3 + .../reconfirmation_instructions.html.haml | 60 -- .../reconfirmation_instructions.text.erb | 9 - .../reset_password_instructions.ar.html.erb | 8 + .../reset_password_instructions.ar.text.erb | 8 + .../reset_password_instructions.ca.html.erb | 8 + .../reset_password_instructions.ca.text.erb | 8 + .../reset_password_instructions.en.html.erb | 8 + .../reset_password_instructions.en.text.erb | 8 + .../reset_password_instructions.es.html.erb | 8 + .../reset_password_instructions.es.text.erb | 8 + .../reset_password_instructions.fa.html.erb | 8 + .../reset_password_instructions.fa.text.erb | 8 + .../reset_password_instructions.fi.html.erb | 8 + .../reset_password_instructions.fi.text.erb | 8 + .../reset_password_instructions.fr.html.erb | 8 + .../reset_password_instructions.fr.text.erb | 8 + .../reset_password_instructions.he.html.erb | 10 + .../reset_password_instructions.he.text.erb | 8 + .../reset_password_instructions.html.haml | 60 -- .../reset_password_instructions.id.html.erb | 8 + .../reset_password_instructions.id.text.erb | 8 + .../reset_password_instructions.it.html.erb | 8 + .../reset_password_instructions.it.text.erb | 8 + .../reset_password_instructions.ja.html.erb | 8 + .../reset_password_instructions.ja.text.erb | 8 + .../reset_password_instructions.nl.html.erb | 9 + .../reset_password_instructions.nl.text.erb | 9 + .../reset_password_instructions.no.html.erb | 9 + .../reset_password_instructions.no.text.erb | 9 + .../reset_password_instructions.oc.html.erb | 8 + .../reset_password_instructions.oc.text.erb | 8 + .../reset_password_instructions.pl.html.erb | 9 + .../reset_password_instructions.pl.text.erb | 9 + ...reset_password_instructions.pt-BR.html.erb | 8 + ...reset_password_instructions.pt-BR.text.erb | 8 + .../reset_password_instructions.ru.html.erb | 8 + .../reset_password_instructions.ru.text.erb | 8 + .../reset_password_instructions.sv.html.erb | 8 + .../reset_password_instructions.sv.text.erb | 8 + .../reset_password_instructions.text.erb | 9 - .../reset_password_instructions.th.html.erb | 8 + .../reset_password_instructions.th.text.erb | 8 + .../reset_password_instructions.tr.html.erb | 14 + .../reset_password_instructions.tr.text.erb | 13 + ...reset_password_instructions.zh-cn.html.erb | 8 + ...reset_password_instructions.zh-cn.text.erb | 8 + app/views/user_mailer/welcome.html.haml | 146 --- app/views/user_mailer/welcome.text.erb | 30 - app/workers/activitypub/delivery_worker.rb | 2 +- .../synchronize_featured_collection_worker.rb | 13 - app/workers/backup_worker.rb | 17 - app/workers/digest_mailer_worker.rb | 6 +- app/workers/import/relationship_worker.rb | 2 +- app/workers/pubsubhubbub/subscribe_worker.rb | 2 +- app/workers/regeneration_worker.rb | 2 +- ...er.rb => resolve_remote_account_worker.rb} | 4 +- .../scheduler/backup_cleanup_scheduler.rb | 16 - app/workers/scheduler/email_scheduler.rb | 24 - boxfile.yml | 25 +- config/application.rb | 17 +- config/brakeman.ignore | 86 +- config/environments/development.rb | 8 - config/environments/production.rb | 4 +- config/environments/test.rb | 9 - config/i18n-tasks.yml | 1 - config/initializers/assets.rb | 2 +- config/initializers/chewy.rb | 24 - config/initializers/devise.rb | 64 +- config/initializers/omniauth.rb | 66 -- config/initializers/premailer_rails.rb | 6 - config/initializers/rack_attack.rb | 2 +- config/initializers/session_store.rb | 2 +- config/initializers/sidekiq.rb | 4 - config/initializers/suppress_csrf_warnings.rb | 3 - config/initializers/twitter_regex.rb | 2 +- config/locales/activerecord.ar.yml | 4 +- config/locales/activerecord.es.yml | 13 - config/locales/activerecord.gl.yml | 13 - config/locales/activerecord.pt.yml | 13 - config/locales/activerecord.sr-Latn.yml | 13 - config/locales/activerecord.sr.yml | 13 - config/locales/ar.yml | 261 +---- config/locales/bg.yml | 3 +- config/locales/ca.yml | 261 ++--- config/locales/de.yml | 130 +-- config/locales/devise.ar.yml | 46 - config/locales/devise.ca.yml | 27 +- config/locales/devise.de.yml | 27 +- config/locales/devise.en.yml | 21 - config/locales/devise.eo.yml | 93 +- config/locales/devise.es.yml | 31 +- config/locales/devise.fr.yml | 35 +- config/locales/devise.gl.yml | 82 -- config/locales/devise.hr.yml | 3 - config/locales/devise.hu.yml | 23 +- config/locales/devise.ja.yml | 21 - config/locales/devise.nl.yml | 21 - config/locales/devise.no.yml | 21 - config/locales/devise.oc.yml | 37 +- config/locales/devise.pl.yml | 25 +- config/locales/devise.pt-BR.yml | 23 +- config/locales/devise.pt.yml | 23 +- config/locales/devise.ru.yml | 25 +- config/locales/devise.sk.yml | 41 +- config/locales/devise.sr-Latn.yml | 63 -- config/locales/devise.sr.yml | 63 -- config/locales/devise.sv.yml | 23 +- config/locales/devise.tr.yml | 2 +- config/locales/devise.zh-CN.yml | 29 +- config/locales/doorkeeper.ar.yml | 18 +- config/locales/doorkeeper.eo.yml | 54 +- config/locales/doorkeeper.es.yml | 2 +- config/locales/doorkeeper.fr.yml | 4 +- config/locales/doorkeeper.gl.yml | 86 -- config/locales/doorkeeper.hu.yml | 7 - config/locales/doorkeeper.nl.yml | 8 +- config/locales/doorkeeper.no.yml | 2 - config/locales/doorkeeper.pl.yml | 2 +- config/locales/doorkeeper.pt.yml | 42 +- config/locales/doorkeeper.ru.yml | 6 - config/locales/doorkeeper.sk.yml | 6 +- config/locales/doorkeeper.sr-Latn.yml | 119 --- config/locales/doorkeeper.sr.yml | 119 --- config/locales/doorkeeper.sv.yml | 8 +- config/locales/en.yml | 71 +- config/locales/eo.yml | 778 ++++---------- config/locales/es.yml | 59 +- config/locales/fa.yml | 121 +-- config/locales/fi.yml | 45 +- config/locales/fr.yml | 85 +- config/locales/gl.yml | 776 -------------- config/locales/he.yml | 4 +- config/locales/hr.yml | 3 +- config/locales/hu.yml | 704 +------------ config/locales/id.yml | 3 +- config/locales/io.yml | 3 +- config/locales/it.yml | 3 +- config/locales/ja.yml | 90 +- config/locales/ko.yml | 303 ++---- config/locales/nl.yml | 101 +- config/locales/no.yml | 362 +------ config/locales/oc.yml | 72 +- config/locales/pl.yml | 94 +- config/locales/pt-BR.yml | 110 +- config/locales/pt.yml | 469 +-------- config/locales/ru.yml | 159 +-- config/locales/simple_form.ar.yml | 81 +- config/locales/simple_form.bg.yml | 2 +- config/locales/simple_form.ca.yml | 78 +- config/locales/simple_form.de.yml | 4 +- config/locales/simple_form.en.yml | 6 +- config/locales/simple_form.eo.yml | 69 +- config/locales/simple_form.es.yml | 4 +- config/locales/simple_form.fa.yml | 8 +- config/locales/simple_form.fi.yml | 2 +- config/locales/simple_form.fr.yml | 8 +- config/locales/simple_form.gl.yml | 22 +- config/locales/simple_form.he.yml | 2 +- config/locales/simple_form.hr.yml | 2 +- config/locales/simple_form.hu.yml | 44 - config/locales/simple_form.id.yml | 2 +- config/locales/simple_form.io.yml | 2 +- config/locales/simple_form.it.yml | 2 +- config/locales/simple_form.ja.yml | 6 +- config/locales/simple_form.ko.yml | 8 +- config/locales/simple_form.nl.yml | 8 +- config/locales/simple_form.no.yml | 56 +- config/locales/simple_form.oc.yml | 4 +- config/locales/simple_form.pl.yml | 14 +- config/locales/simple_form.pt-BR.yml | 4 +- config/locales/simple_form.pt.yml | 75 +- config/locales/simple_form.ru.yml | 7 +- config/locales/simple_form.sk.yml | 32 +- config/locales/simple_form.sr-Latn.yml | 75 -- config/locales/simple_form.sr.yml | 75 -- config/locales/simple_form.sv.yml | 17 +- config/locales/simple_form.th.yml | 2 +- config/locales/simple_form.tr.yml | 2 +- config/locales/simple_form.uk.yml | 2 +- config/locales/simple_form.zh-CN.yml | 4 +- config/locales/simple_form.zh-HK.yml | 2 +- config/locales/simple_form.zh-TW.yml | 13 +- config/locales/sk.yml | 529 +--------- config/locales/sr-Latn.yml | 721 ------------- config/locales/sr.yml | 721 ------------- config/locales/sv.yml | 258 +---- config/locales/th.yml | 3 +- config/locales/tr.yml | 3 +- config/locales/uk.yml | 3 +- config/locales/zh-CN.yml | 49 +- config/locales/zh-HK.yml | 3 +- config/locales/zh-TW.yml | 40 +- config/navigation.rb | 2 +- config/routes.rb | 11 +- config/settings.yml | 2 - config/sidekiq.yml | 6 - config/webpack/configuration.js | 2 +- config/webpack/translationRunner.js | 2 +- ...71129172043_add_index_on_stream_entries.rb | 3 +- ...4803_more_faster_index_on_notifications.rb | 3 +- ...for_api_v1_accounts_account_id_statuses.rb | 10 - ...80109143959_add_remember_token_to_users.rb | 5 - .../20180204034416_create_identities.rb | 11 - ...180206000000_change_user_id_nonnullable.rb | 6 - db/migrate/20180211015820_create_backups.rb | 11 - ...add_featured_collection_url_to_accounts.rb | 5 - db/schema.rb | 33 +- docker-compose.yml | 47 +- docker_entrypoint.sh | 14 + lib/devise/ldap_authenticatable.rb | 49 - lib/mastodon/premailer_webpack_strategy.rb | 23 - lib/mastodon/version.rb | 2 +- lib/paperclip/gif_transcoder.rb | 2 +- lib/paperclip/lazy_thumbnail.rb | 28 - lib/tasks/assets.rake | 8 +- lib/tasks/mastodon.rake | 448 +------- nanobox/nginx-web.conf.erb | 8 +- package.json | 19 +- .../controllers/api/salmon_controller_spec.rb | 16 +- .../accounts/relationships_controller_spec.rb | 22 - .../application_controller_spec.rb | 20 +- .../auth/confirmations_controller_spec.rb | 40 +- .../authorize_follows_controller_spec.rb | 4 +- spec/controllers/concerns/localized_spec.rb | 53 +- .../concerns/user_tracking_concern_spec.rb | 46 +- spec/controllers/home_controller_spec.rb | 15 +- .../settings/imports_controller_spec.rb | 4 +- .../confirmations_controller_spec.rb | 7 - spec/fabricators/backup_fabricator.rb | 3 - spec/fabricators/identity_fabricator.rb | 5 - spec/fabricators/list_fabricator.rb | 2 +- spec/fixtures/requests/webfinger-hacker3.txt | 11 - spec/helpers/instance_helper_spec.rb | 6 + spec/lib/activitypub/activity/add_spec.rb | 29 - spec/lib/activitypub/activity/create_spec.rb | 63 +- spec/lib/activitypub/activity/flag_spec.rb | 37 - spec/lib/activitypub/activity/remove_spec.rb | 30 - spec/lib/activitypub/activity/update_spec.rb | 1 - spec/lib/feed_manager_spec.rb | 44 +- spec/lib/formatter_spec.rb | 20 +- spec/lib/request_spec.rb | 31 +- spec/mailers/notification_mailer_spec.rb | 2 +- .../previews/notification_mailer_preview.rb | 7 - spec/mailers/previews/user_mailer_preview.rb | 42 - spec/mailers/user_mailer_spec.rb | 32 +- spec/models/account_spec.rb | 8 +- spec/models/backup_spec.rb | 5 - spec/models/identity_spec.rb | 5 - spec/models/media_attachment_spec.rb | 1 + spec/models/setting_spec.rb | 15 +- spec/models/user_spec.rb | 8 - spec/presenters/instance_presenter_spec.rb | 12 +- spec/rails_helper.rb | 4 +- spec/services/account_search_service_spec.rb | 4 +- .../fetch_remote_status_service_spec.rb | 10 +- spec/services/fetch_atom_service_spec.rb | 85 -- spec/services/fetch_link_card_service_spec.rb | 10 - .../fetch_remote_account_service_spec.rb | 67 -- ... => fetch_remote_resource_service_spec.rb} | 2 +- .../fetch_remote_status_service_spec.rb | 31 - spec/services/notify_service_spec.rb | 11 +- spec/services/precompute_feed_service_spec.rb | 7 +- spec/services/report_service_spec.rb | 25 - ...=> resolve_remote_account_service_spec.rb} | 2 +- spec/services/search_service_spec.rb | 6 +- spec/spec_helper.rb | 4 - spec/views/about/show.html.haml_spec.rb | 3 - yarn.lock | 624 +++++------ 760 files changed, 5731 insertions(+), 21274 deletions(-) delete mode 100644 AUTHORS.md delete mode 100644 app/chewy/statuses_index.rb delete mode 100644 app/controllers/activitypub/collections_controller.rb delete mode 100644 app/controllers/auth/omniauth_callbacks_controller.rb delete mode 100644 app/controllers/concerns/signature_authentication.rb delete mode 100644 app/helpers/mailer_helper.rb create mode 100644 app/javascript/images/elephant-friend-1.png create mode 100644 app/javascript/images/elephant-friend.png delete mode 100644 app/javascript/images/elephant_ui_disappointed.svg delete mode 100644 app/javascript/images/elephant_ui_greeting.svg delete mode 100644 app/javascript/images/elephant_ui_plane.svg delete mode 100644 app/javascript/images/elephant_ui_working.svg delete mode 100644 app/javascript/images/icon_cached.svg delete mode 100644 app/javascript/images/icon_done.svg delete mode 100644 app/javascript/images/icon_email.svg delete mode 100644 app/javascript/images/icon_file_download.svg delete mode 100644 app/javascript/images/icon_grade.svg delete mode 100644 app/javascript/images/icon_lock_open.svg delete mode 100644 app/javascript/images/icon_person_add.svg delete mode 100644 app/javascript/images/icon_reply.svg delete mode 100644 app/javascript/images/logo_transparent.svg delete mode 100644 app/javascript/images/mailer/icon_cached.png delete mode 100644 app/javascript/images/mailer/icon_done.png delete mode 100644 app/javascript/images/mailer/icon_email.png delete mode 100644 app/javascript/images/mailer/icon_file_download.png delete mode 100644 app/javascript/images/mailer/icon_grade.png delete mode 100644 app/javascript/images/mailer/icon_lock_open.png delete mode 100644 app/javascript/images/mailer/icon_person_add.png delete mode 100644 app/javascript/images/mailer/icon_reply.png delete mode 100644 app/javascript/images/mailer/logo_full.png delete mode 100644 app/javascript/images/mailer/logo_transparent.png create mode 100644 app/javascript/images/mastodon-not-found.png delete mode 100644 app/javascript/images/reticle.png create mode 100644 app/javascript/images/wave-drawer.png delete mode 100644 app/javascript/mastodon/actions/UtilBtns.js delete mode 100644 app/javascript/mastodon/actions/dropdown_menu.js delete mode 100644 app/javascript/mastodon/features/compose/components/user_counter.js delete mode 100644 app/javascript/mastodon/features/standalone/community_timeline/index.js delete mode 100644 app/javascript/mastodon/features/ui/components/focal_point_modal.js delete mode 100644 app/javascript/mastodon/features/ui/components/zoomable_image.js delete mode 100644 app/javascript/mastodon/locales/hy.json delete mode 100644 app/javascript/mastodon/locales/sr-Latn.json delete mode 100644 app/javascript/mastodon/locales/sr.json delete mode 100644 app/javascript/mastodon/locales/whitelist_hy.json delete mode 100644 app/javascript/mastodon/locales/whitelist_sk.json delete mode 100644 app/javascript/mastodon/locales/whitelist_sr-Latn.json delete mode 100644 app/javascript/mastodon/locales/whitelist_sr.json delete mode 100644 app/javascript/mastodon/reducers/dropdown_menu.js delete mode 100644 app/javascript/packs/mailer.js delete mode 100644 app/javascript/styles/mailer.scss delete mode 100644 app/javascript/styles/mastodon/modal.scss delete mode 100644 app/lib/activitypub/activity/add.rb delete mode 100644 app/lib/activitypub/activity/flag.rb delete mode 100644 app/lib/activitypub/activity/remove.rb delete mode 100644 app/lib/fast_geometry_parser.rb delete mode 100644 app/lib/sidekiq_error_handler.rb delete mode 100644 app/models/backup.rb delete mode 100644 app/models/concerns/omniauthable.rb delete mode 100644 app/models/concerns/relationship_cacheable.rb delete mode 100644 app/models/identity.rb delete mode 100644 app/policies/backup_policy.rb delete mode 100644 app/serializers/activitypub/add_serializer.rb delete mode 100644 app/serializers/activitypub/delete_actor_serializer.rb delete mode 100644 app/serializers/activitypub/flag_serializer.rb delete mode 100644 app/serializers/activitypub/outbox_serializer.rb delete mode 100644 app/serializers/activitypub/remove_serializer.rb delete mode 100644 app/services/activitypub/fetch_featured_collection_service.rb delete mode 100644 app/services/backup_service.rb rename app/services/{resolve_url_service.rb => fetch_remote_resource_service.rb} (97%) delete mode 100644 app/services/report_service.rb rename app/services/{resolve_account_service.rb => resolve_remote_account_service.rb} (99%) delete mode 100644 app/views/about/_forms.html.haml delete mode 100644 app/views/about/_links.html.haml delete mode 100644 app/views/accounts/_follow_button.html.haml delete mode 100644 app/views/auth/confirmations/finish_signup.html.haml delete mode 100644 app/views/layouts/mailer.html.haml delete mode 100644 app/views/layouts/plain_mailer.html.haml delete mode 100644 app/views/media/player.html.haml delete mode 100644 app/views/notification_mailer/_status.html.haml delete mode 100644 app/views/notification_mailer/digest.html.haml delete mode 100644 app/views/notification_mailer/favourite.html.haml delete mode 100644 app/views/notification_mailer/follow.html.haml delete mode 100644 app/views/notification_mailer/follow_request.html.haml delete mode 100644 app/views/notification_mailer/mention.html.haml delete mode 100644 app/views/notification_mailer/reblog.html.haml delete mode 100644 app/views/tags/_features.html.haml delete mode 100644 app/views/user_mailer/backup_ready.html.haml delete mode 100644 app/views/user_mailer/backup_ready.text.erb create mode 100644 app/views/user_mailer/confirmation_instructions.ar.html.erb create mode 100644 app/views/user_mailer/confirmation_instructions.ar.text.erb create mode 100644 app/views/user_mailer/confirmation_instructions.ca.html.erb create mode 100644 app/views/user_mailer/confirmation_instructions.ca.text.erb create mode 100644 app/views/user_mailer/confirmation_instructions.en.html.erb create mode 100644 app/views/user_mailer/confirmation_instructions.en.text.erb create mode 100644 app/views/user_mailer/confirmation_instructions.es.html.erb create mode 100644 app/views/user_mailer/confirmation_instructions.es.text.erb create mode 100644 app/views/user_mailer/confirmation_instructions.fa.html.erb create mode 100644 app/views/user_mailer/confirmation_instructions.fa.text.erb create mode 100644 app/views/user_mailer/confirmation_instructions.fi.html.erb create mode 100644 app/views/user_mailer/confirmation_instructions.fi.text.erb create mode 100644 app/views/user_mailer/confirmation_instructions.fr.html.erb create mode 100644 app/views/user_mailer/confirmation_instructions.fr.text.erb create mode 100644 app/views/user_mailer/confirmation_instructions.he.html.erb create mode 100644 app/views/user_mailer/confirmation_instructions.he.text.erb delete mode 100644 app/views/user_mailer/confirmation_instructions.html.haml create mode 100644 app/views/user_mailer/confirmation_instructions.id.html.erb create mode 100644 app/views/user_mailer/confirmation_instructions.id.text.erb create mode 100644 app/views/user_mailer/confirmation_instructions.it.html.erb create mode 100644 app/views/user_mailer/confirmation_instructions.it.text.erb create mode 100644 app/views/user_mailer/confirmation_instructions.ja.html.erb create mode 100644 app/views/user_mailer/confirmation_instructions.ja.text.erb create mode 100644 app/views/user_mailer/confirmation_instructions.ko.html.erb create mode 100644 app/views/user_mailer/confirmation_instructions.ko.text.erb create mode 100644 app/views/user_mailer/confirmation_instructions.nl.html.erb create mode 100644 app/views/user_mailer/confirmation_instructions.nl.text.erb create mode 100644 app/views/user_mailer/confirmation_instructions.no.html.erb create mode 100644 app/views/user_mailer/confirmation_instructions.no.text.erb create mode 100644 app/views/user_mailer/confirmation_instructions.oc.html.erb create mode 100644 app/views/user_mailer/confirmation_instructions.oc.text.erb create mode 100644 app/views/user_mailer/confirmation_instructions.pl.html.erb create mode 100644 app/views/user_mailer/confirmation_instructions.pl.text.erb create mode 100644 app/views/user_mailer/confirmation_instructions.pt-BR.html.erb create mode 100644 app/views/user_mailer/confirmation_instructions.pt-BR.text.erb create mode 100644 app/views/user_mailer/confirmation_instructions.ru.html.erb create mode 100644 app/views/user_mailer/confirmation_instructions.ru.text.erb create mode 100644 app/views/user_mailer/confirmation_instructions.sv.html.erb create mode 100644 app/views/user_mailer/confirmation_instructions.sv.text.erb delete mode 100644 app/views/user_mailer/confirmation_instructions.text.erb create mode 100644 app/views/user_mailer/confirmation_instructions.tr.html.erb create mode 100644 app/views/user_mailer/confirmation_instructions.tr.text.erb create mode 100644 app/views/user_mailer/confirmation_instructions.zh-cn.html.erb create mode 100644 app/views/user_mailer/confirmation_instructions.zh-cn.text.erb delete mode 100644 app/views/user_mailer/email_changed.html.haml delete mode 100644 app/views/user_mailer/email_changed.text.erb create mode 100644 app/views/user_mailer/password_change.ar.html.erb create mode 100644 app/views/user_mailer/password_change.ar.text.erb create mode 100644 app/views/user_mailer/password_change.ca.html.erb create mode 100644 app/views/user_mailer/password_change.ca.text.erb create mode 100644 app/views/user_mailer/password_change.en.html.erb create mode 100644 app/views/user_mailer/password_change.en.text.erb create mode 100644 app/views/user_mailer/password_change.es.html.erb create mode 100644 app/views/user_mailer/password_change.es.text.erb create mode 100644 app/views/user_mailer/password_change.fa.html.erb create mode 100644 app/views/user_mailer/password_change.fa.text.erb create mode 100644 app/views/user_mailer/password_change.fi.html.erb create mode 100644 app/views/user_mailer/password_change.fi.text.erb create mode 100644 app/views/user_mailer/password_change.fr.html.erb create mode 100644 app/views/user_mailer/password_change.fr.text.erb create mode 100644 app/views/user_mailer/password_change.he.html.erb create mode 100644 app/views/user_mailer/password_change.he.text.erb delete mode 100644 app/views/user_mailer/password_change.html.haml create mode 100644 app/views/user_mailer/password_change.id.html.erb create mode 100644 app/views/user_mailer/password_change.id.text.erb create mode 100644 app/views/user_mailer/password_change.it.html.erb create mode 100644 app/views/user_mailer/password_change.it.text.erb create mode 100644 app/views/user_mailer/password_change.ja.html.erb create mode 100644 app/views/user_mailer/password_change.ja.text.erb create mode 100644 app/views/user_mailer/password_change.nl.html.erb create mode 100644 app/views/user_mailer/password_change.nl.text.erb create mode 100644 app/views/user_mailer/password_change.no.html.erb create mode 100644 app/views/user_mailer/password_change.no.text.erb create mode 100644 app/views/user_mailer/password_change.oc.html.erb create mode 100644 app/views/user_mailer/password_change.oc.text.erb create mode 100644 app/views/user_mailer/password_change.pl.html.erb create mode 100644 app/views/user_mailer/password_change.pl.text.erb create mode 100644 app/views/user_mailer/password_change.pt-BR.html.erb create mode 100644 app/views/user_mailer/password_change.pt-BR.text.erb create mode 100644 app/views/user_mailer/password_change.ru.html.erb create mode 100644 app/views/user_mailer/password_change.ru.text.erb create mode 100644 app/views/user_mailer/password_change.sv.html.erb create mode 100644 app/views/user_mailer/password_change.sv.text.erb delete mode 100644 app/views/user_mailer/password_change.text.erb create mode 100644 app/views/user_mailer/password_change.th.html.erb create mode 100644 app/views/user_mailer/password_change.th.text.erb create mode 100644 app/views/user_mailer/password_change.tr.html.erb create mode 100644 app/views/user_mailer/password_change.tr.text.erb create mode 100644 app/views/user_mailer/password_change.zh-cn.html.erb create mode 100644 app/views/user_mailer/password_change.zh-cn.text.erb delete mode 100644 app/views/user_mailer/reconfirmation_instructions.html.haml delete mode 100644 app/views/user_mailer/reconfirmation_instructions.text.erb create mode 100644 app/views/user_mailer/reset_password_instructions.ar.html.erb create mode 100644 app/views/user_mailer/reset_password_instructions.ar.text.erb create mode 100644 app/views/user_mailer/reset_password_instructions.ca.html.erb create mode 100644 app/views/user_mailer/reset_password_instructions.ca.text.erb create mode 100644 app/views/user_mailer/reset_password_instructions.en.html.erb create mode 100644 app/views/user_mailer/reset_password_instructions.en.text.erb create mode 100644 app/views/user_mailer/reset_password_instructions.es.html.erb create mode 100644 app/views/user_mailer/reset_password_instructions.es.text.erb create mode 100644 app/views/user_mailer/reset_password_instructions.fa.html.erb create mode 100644 app/views/user_mailer/reset_password_instructions.fa.text.erb create mode 100644 app/views/user_mailer/reset_password_instructions.fi.html.erb create mode 100644 app/views/user_mailer/reset_password_instructions.fi.text.erb create mode 100644 app/views/user_mailer/reset_password_instructions.fr.html.erb create mode 100644 app/views/user_mailer/reset_password_instructions.fr.text.erb create mode 100644 app/views/user_mailer/reset_password_instructions.he.html.erb create mode 100644 app/views/user_mailer/reset_password_instructions.he.text.erb delete mode 100644 app/views/user_mailer/reset_password_instructions.html.haml create mode 100644 app/views/user_mailer/reset_password_instructions.id.html.erb create mode 100644 app/views/user_mailer/reset_password_instructions.id.text.erb create mode 100644 app/views/user_mailer/reset_password_instructions.it.html.erb create mode 100644 app/views/user_mailer/reset_password_instructions.it.text.erb create mode 100644 app/views/user_mailer/reset_password_instructions.ja.html.erb create mode 100644 app/views/user_mailer/reset_password_instructions.ja.text.erb create mode 100644 app/views/user_mailer/reset_password_instructions.nl.html.erb create mode 100644 app/views/user_mailer/reset_password_instructions.nl.text.erb create mode 100644 app/views/user_mailer/reset_password_instructions.no.html.erb create mode 100644 app/views/user_mailer/reset_password_instructions.no.text.erb create mode 100644 app/views/user_mailer/reset_password_instructions.oc.html.erb create mode 100644 app/views/user_mailer/reset_password_instructions.oc.text.erb create mode 100644 app/views/user_mailer/reset_password_instructions.pl.html.erb create mode 100644 app/views/user_mailer/reset_password_instructions.pl.text.erb create mode 100644 app/views/user_mailer/reset_password_instructions.pt-BR.html.erb create mode 100644 app/views/user_mailer/reset_password_instructions.pt-BR.text.erb create mode 100644 app/views/user_mailer/reset_password_instructions.ru.html.erb create mode 100644 app/views/user_mailer/reset_password_instructions.ru.text.erb create mode 100644 app/views/user_mailer/reset_password_instructions.sv.html.erb create mode 100644 app/views/user_mailer/reset_password_instructions.sv.text.erb delete mode 100644 app/views/user_mailer/reset_password_instructions.text.erb create mode 100644 app/views/user_mailer/reset_password_instructions.th.html.erb create mode 100644 app/views/user_mailer/reset_password_instructions.th.text.erb create mode 100644 app/views/user_mailer/reset_password_instructions.tr.html.erb create mode 100644 app/views/user_mailer/reset_password_instructions.tr.text.erb create mode 100644 app/views/user_mailer/reset_password_instructions.zh-cn.html.erb create mode 100644 app/views/user_mailer/reset_password_instructions.zh-cn.text.erb delete mode 100644 app/views/user_mailer/welcome.html.haml delete mode 100644 app/views/user_mailer/welcome.text.erb delete mode 100644 app/workers/activitypub/synchronize_featured_collection_worker.rb delete mode 100644 app/workers/backup_worker.rb rename app/workers/{resolve_account_worker.rb => resolve_remote_account_worker.rb} (64%) delete mode 100644 app/workers/scheduler/backup_cleanup_scheduler.rb delete mode 100644 app/workers/scheduler/email_scheduler.rb delete mode 100644 config/initializers/chewy.rb delete mode 100644 config/initializers/omniauth.rb delete mode 100644 config/initializers/premailer_rails.rb delete mode 100644 config/initializers/suppress_csrf_warnings.rb delete mode 100644 config/locales/activerecord.es.yml delete mode 100644 config/locales/activerecord.gl.yml delete mode 100644 config/locales/activerecord.pt.yml delete mode 100644 config/locales/activerecord.sr-Latn.yml delete mode 100644 config/locales/activerecord.sr.yml delete mode 100644 config/locales/devise.gl.yml delete mode 100644 config/locales/devise.sr-Latn.yml delete mode 100644 config/locales/devise.sr.yml delete mode 100644 config/locales/doorkeeper.sr-Latn.yml delete mode 100644 config/locales/doorkeeper.sr.yml delete mode 100644 config/locales/gl.yml delete mode 100644 config/locales/simple_form.sr-Latn.yml delete mode 100644 config/locales/simple_form.sr.yml delete mode 100644 config/locales/sr-Latn.yml delete mode 100644 config/locales/sr.yml delete mode 100644 db/migrate/20180106000232_add_index_on_statuses_for_api_v1_accounts_account_id_statuses.rb delete mode 100644 db/migrate/20180109143959_add_remember_token_to_users.rb delete mode 100644 db/migrate/20180204034416_create_identities.rb delete mode 100644 db/migrate/20180206000000_change_user_id_nonnullable.rb delete mode 100644 db/migrate/20180211015820_create_backups.rb delete mode 100644 db/migrate/20180304013859_add_featured_collection_url_to_accounts.rb create mode 100644 docker_entrypoint.sh delete mode 100644 lib/devise/ldap_authenticatable.rb delete mode 100644 lib/mastodon/premailer_webpack_strategy.rb delete mode 100644 lib/paperclip/lazy_thumbnail.rb delete mode 100644 spec/fabricators/backup_fabricator.rb delete mode 100644 spec/fabricators/identity_fabricator.rb delete mode 100644 spec/fixtures/requests/webfinger-hacker3.txt delete mode 100644 spec/lib/activitypub/activity/add_spec.rb delete mode 100644 spec/lib/activitypub/activity/flag_spec.rb delete mode 100644 spec/lib/activitypub/activity/remove_spec.rb delete mode 100644 spec/mailers/previews/user_mailer_preview.rb delete mode 100644 spec/models/backup_spec.rb delete mode 100644 spec/models/identity_spec.rb rename spec/services/{resolve_url_service_spec.rb => fetch_remote_resource_service_spec.rb} (97%) delete mode 100644 spec/services/report_service_spec.rb rename spec/services/{resolve_account_service_spec.rb => resolve_remote_account_service_spec.rb} (99%) diff --git a/.codeclimate.yml b/.codeclimate.yml index 21e6b33bf019d2..47e3e6ab9db92d 100644 --- a/.codeclimate.yml +++ b/.codeclimate.yml @@ -27,7 +27,6 @@ plugins: enabled: true eslint: enabled: true - channel: eslint-4 rubocop: enabled: true scss-lint: diff --git a/.env.nanobox b/.env.nanobox index 0d14f8a00567fe..48204a6bf431c3 100644 --- a/.env.nanobox +++ b/.env.nanobox @@ -13,29 +13,11 @@ DB_PORT=5432 DATABASE_URL=postgresql://$DATA_DB_USER:$DATA_DB_PASS@$DATA_DB_HOST/gonano -# Optional ElasticSearch configuration -# ES_ENABLED=true -# ES_HOST=localhost -# ES_PORT=9200 - -# Optimizations -LD_PRELOAD=/data/lib/libjemalloc.so - -# ImageMagick optimizations -MAGICK_TEMPORARY_PATH=/app/tmp -MAGICK_MEMORY_LIMIT=128MiB -MAGICK_MAP_LIMIT=64MiB -MAGICK_TIME_LIMIT=15 -MAGICK_AREA_LIMIT=16MP -MAGICK_WIDTH_LIMIT=8KP -MAGICK_HEIGHT_LIMIT=8KP - # Federation -# Note: Changing LOCAL_DOMAIN at a later time will cause unwanted side effects, including breaking all existing federation. +# Note: Changing LOCAL_DOMAIN or LOCAL_HTTPS at a later time will cause unwanted side effects. # LOCAL_DOMAIN should *NOT* contain the protocol part of the domain e.g https://example.com. LOCAL_DOMAIN=${APP_NAME}.nanoapp.io - -# Changing LOCAL_HTTPS in production is no longer supported. (Mastodon will always serve https:// links) +LOCAL_HTTPS=false # Use this only if you need to run mastodon on a different domain than the one used for federation. # You can read more about this option on https://github.com/tootsuite/documentation/blob/master/Running-Mastodon/Serving_a_different_domain.md @@ -49,6 +31,7 @@ LOCAL_DOMAIN=${APP_NAME}.nanoapp.io # Application secrets # Generate each with the `rake secret` task (`nanobox run bundle exec rake secret`) +PAPERCLIP_SECRET=$PAPERCLIP_SECRET SECRET_KEY_BASE=$SECRET_KEY_BASE OTP_SECRET=$OTP_SECRET @@ -148,79 +131,9 @@ SMTP_FROM_ADDRESS=notifications@${APP_NAME}.nanoapp.io # Cluster number setting for streaming API server. # If you comment out following line, cluster number will be `numOfCpuCores - 1`. -# STREAMING_CLUSTER_NUM=1 +STREAMING_CLUSTER_NUM=1 # Docker mastodon user # If you use Docker, you may want to assign UID/GID manually. # UID=1000 # GID=1000 - -# LDAP authentication (optional) -# LDAP_ENABLED=true -# LDAP_HOST=localhost -# LDAP_PORT=389 -# LDAP_METHOD=simple_tls -# LDAP_BASE= -# LDAP_BIND_DN= -# LDAP_PASSWORD= -# LDAP_UID=cn - -# PAM authentication (optional) -# PAM authentication uses for the email generation the "email" pam variable -# and optional as fallback PAM_DEFAULT_SUFFIX -# The pam environment variable "email" is provided by: -# https://github.com/devkral/pam_email_extractor -# PAM_ENABLED=true -# Fallback Suffix for email address generation (nil by default) -# PAM_DEFAULT_SUFFIX=pam -# Name of the pam service (pam "auth" section is evaluated) -# PAM_DEFAULT_SERVICE=rpam -# Name of the pam service used for checking if an user can register (pam "account" section is evaluated) (nil (disabled) by default) -# PAM_CONTROLLED_SERVICE=rpam - -# Global OAuth settings (optional) : -# If you have only one strategy, you may want to enable this -# OAUTH_REDIRECT_AT_SIGN_IN=true - -# Optional CAS authentication (cf. omniauth-cas) : -# CAS_ENABLED=true -# CAS_URL=https://sso.myserver.com/ -# CAS_HOST=sso.myserver.com/ -# CAS_PORT=443 -# CAS_SSL=true -# CAS_VALIDATE_URL= -# CAS_CALLBACK_URL= -# CAS_LOGOUT_URL= -# CAS_LOGIN_URL= -# CAS_UID_FIELD='user' -# CAS_CA_PATH= -# CAS_DISABLE_SSL_VERIFICATION=false -# CAS_UID_KEY='user' -# CAS_NAME_KEY='name' -# CAS_EMAIL_KEY='email' -# CAS_NICKNAME_KEY='nickname' -# CAS_FIRST_NAME_KEY='firstname' -# CAS_LAST_NAME_KEY='lastname' -# CAS_LOCATION_KEY='location' -# CAS_IMAGE_KEY='image' -# CAS_PHONE_KEY='phone' - -# Optional SAML authentication (cf. omniauth-saml) -# SAML_ENABLED=true -# SAML_ACS_URL= -# SAML_ISSUER=http://localhost:3000/auth/auth/saml/callback -# SAML_IDP_SSO_TARGET_URL=https://idp.testshib.org/idp/profile/SAML2/Redirect/SSO -# SAML_IDP_CERT= -# SAML_IDP_CERT_FINGERPRINT= -# SAML_NAME_IDENTIFIER_FORMAT= -# SAML_CERT= -# SAML_PRIVATE_KEY= -# SAML_SECURITY_WANT_ASSERTION_SIGNED=true -# SAML_SECURITY_WANT_ASSERTION_ENCRYPTED=true -# SAML_SECURITY_ASSUME_EMAIL_IS_VERIFIED=true -# SAML_ATTRIBUTES_STATEMENTS_UID="urn:oid:0.9.2342.19200300.100.1.1" -# SAML_ATTRIBUTES_STATEMENTS_EMAIL="urn:oid:1.3.6.1.4.1.5923.1.1.1.6" -# SAML_ATTRIBUTES_STATEMENTS_FULL_NAME="urn:oid:2.5.4.42" -# SAML_UID_ATTRIBUTE="urn:oid:0.9.2342.19200300.100.1.1" -# SAML_ATTRIBUTES_STATEMENTS_VERIFIED= -# SAML_ATTRIBUTES_STATEMENTS_VERIFIED_EMAIL= diff --git a/.env.production.sample b/.env.production.sample index 579ad667bb885c..3f0edd72ff6430 100644 --- a/.env.production.sample +++ b/.env.production.sample @@ -9,15 +9,11 @@ DB_USER=postgres DB_NAME=postgres DB_PASS= DB_PORT=5432 -# Optional ElasticSearch configuration -# ES_ENABLED=true -# ES_HOST=es -# ES_PORT=9200 # Federation # Note: Changing LOCAL_DOMAIN at a later time will cause unwanted side effects, including breaking all existing federation. # LOCAL_DOMAIN should *NOT* contain the protocol part of the domain e.g https://example.com. -LOCAL_DOMAIN=example.com +LOCAL_DOMAIN=example.com # Changing LOCAL_HTTPS in production is no longer supported. (Mastodon will always serve https:// links) @@ -33,6 +29,7 @@ LOCAL_DOMAIN=example.com # Application secrets # Generate each with the `RAILS_ENV=production bundle exec rake secret` task (`docker-compose run --rm web rake secret` if you use docker compose) +PAPERCLIP_SECRET= SECRET_KEY_BASE= OTP_SECRET= @@ -61,7 +58,7 @@ VAPID_PUBLIC_KEY= # E-mail configuration # Note: Mailgun and SparkPost (https://sparkpo.st/smtp) each have good free tiers # If you want to use an SMTP server without authentication (e.g local Postfix relay) -# then set SMTP_AUTH_METHOD and SMTP_OPENSSL_VERIFY_MODE to 'none' and +# then set SMTP_AUTH_METHOD and SMTP_OPENSSL_VERIFY_MODE to 'none' and # *comment* SMTP_LOGIN and SMTP_PASSWORD (leaving them blank is not enough). SMTP_SERVER=smtp.mailgun.org SMTP_PORT=587 @@ -138,75 +135,3 @@ STREAMING_CLUSTER_NUM=1 # If you use Docker, you may want to assign UID/GID manually. # UID=1000 # GID=1000 - -# LDAP authentication (optional) -# LDAP_ENABLED=true -# LDAP_HOST=localhost -# LDAP_PORT=389 -# LDAP_METHOD=simple_tls -# LDAP_BASE= -# LDAP_BIND_DN= -# LDAP_PASSWORD= -# LDAP_UID=cn - -# PAM authentication (optional) -# PAM authentication uses for the email generation the "email" pam variable -# and optional as fallback PAM_DEFAULT_SUFFIX -# The pam environment variable "email" is provided by: -# https://github.com/devkral/pam_email_extractor -# PAM_ENABLED=true -# Fallback Suffix for email address generation (nil by default) -# PAM_DEFAULT_SUFFIX=pam -# Name of the pam service (pam "auth" section is evaluated) -# PAM_DEFAULT_SERVICE=rpam -# Name of the pam service used for checking if an user can register (pam "account" section is evaluated) (nil (disabled) by default) -# PAM_CONTROLLED_SERVICE=rpam - -# Global OAuth settings (optional) : -# If you have only one strategy, you may want to enable this -# OAUTH_REDIRECT_AT_SIGN_IN=true - -# Optional CAS authentication (cf. omniauth-cas) : -# CAS_ENABLED=true -# CAS_URL=https://sso.myserver.com/ -# CAS_HOST=sso.myserver.com/ -# CAS_PORT=443 -# CAS_SSL=true -# CAS_VALIDATE_URL= -# CAS_CALLBACK_URL= -# CAS_LOGOUT_URL= -# CAS_LOGIN_URL= -# CAS_UID_FIELD='user' -# CAS_CA_PATH= -# CAS_DISABLE_SSL_VERIFICATION=false -# CAS_UID_KEY='user' -# CAS_NAME_KEY='name' -# CAS_EMAIL_KEY='email' -# CAS_NICKNAME_KEY='nickname' -# CAS_FIRST_NAME_KEY='firstname' -# CAS_LAST_NAME_KEY='lastname' -# CAS_LOCATION_KEY='location' -# CAS_IMAGE_KEY='image' -# CAS_PHONE_KEY='phone' - -# Optional SAML authentication (cf. omniauth-saml) -# SAML_ENABLED=true -# SAML_ACS_URL= -# SAML_ISSUER=http://localhost:3000/auth/auth/saml/callback -# SAML_IDP_SSO_TARGET_URL=https://idp.testshib.org/idp/profile/SAML2/Redirect/SSO -# SAML_IDP_CERT= -# SAML_IDP_CERT_FINGERPRINT= -# SAML_NAME_IDENTIFIER_FORMAT= -# SAML_CERT= -# SAML_PRIVATE_KEY= -# SAML_SECURITY_WANT_ASSERTION_SIGNED=true -# SAML_SECURITY_WANT_ASSERTION_ENCRYPTED=true -# SAML_SECURITY_ASSUME_EMAIL_IS_VERIFIED=true -# SAML_ATTRIBUTES_STATEMENTS_UID="urn:oid:0.9.2342.19200300.100.1.1" -# SAML_ATTRIBUTES_STATEMENTS_EMAIL="urn:oid:1.3.6.1.4.1.5923.1.1.1.6" -# SAML_ATTRIBUTES_STATEMENTS_FULL_NAME="urn:oid:2.16.840.1.113730.3.1.241" -# SAML_ATTRIBUTES_STATEMENTS_FIRST_NAME="urn:oid:2.5.4.42" -# SAML_ATTRIBUTES_STATEMENTS_LAST_NAME="urn:oid:2.5.4.4" -# SAML_UID_ATTRIBUTE="urn:oid:0.9.2342.19200300.100.1.1" -# SAML_ATTRIBUTES_STATEMENTS_VERIFIED= -# SAML_ATTRIBUTES_STATEMENTS_VERIFIED_EMAIL= diff --git a/.env.test b/.env.test index b57f52e309bb47..e25c040ac049a2 100644 --- a/.env.test +++ b/.env.test @@ -1,3 +1,4 @@ # Federation LOCAL_DOMAIN=cb6e6126.ngrok.io LOCAL_HTTPS=true +OTP_SECRET=100c7faeef00caa29242f6b04156742bf76065771fd4117990c4282b8748ff3d99f8fdae97c982ab5bd2e6756a159121377cce4421f4a8ecd2d67bd7749a3fb4 diff --git a/.eslintrc.yml b/.eslintrc.yml index cf276a16fd3aee..7c6da9d57a0326 100644 --- a/.eslintrc.yml +++ b/.eslintrc.yml @@ -17,9 +17,11 @@ plugins: parserOptions: sourceType: module ecmaFeatures: - experimentalObjectRestSpread: true + arrowFunctions: true jsx: true - ecmaVersion: 2018 + destructuring: true + modules: true + spread: true settings: import/extensions: @@ -107,7 +109,6 @@ rules: react/self-closing-comp: error jsx-a11y/accessible-emoji: warn - jsx-a11y/alt-text: warn jsx-a11y/anchor-has-content: warn jsx-a11y/aria-activedescendant-has-tabindex: warn jsx-a11y/aria-props: warn @@ -118,22 +119,16 @@ rules: jsx-a11y/href-no-hash: warn jsx-a11y/html-has-lang: warn jsx-a11y/iframe-has-title: warn + jsx-a11y/img-has-alt: warn jsx-a11y/img-redundant-alt: warn - jsx-a11y/interactive-supports-focus: warn jsx-a11y/label-has-for: off jsx-a11y/mouse-events-have-key-events: warn jsx-a11y/no-access-key: warn jsx-a11y/no-distracting-elements: warn - jsx-a11y/no-noninteractive-element-interactions: - - warn - - handlers: - - onClick jsx-a11y/no-onchange: warn jsx-a11y/no-redundant-roles: warn - jsx-a11y/no-static-element-interactions: - - warn - - handlers: - - onClick + jsx-a11y/onclick-has-focus: warn + jsx-a11y/onclick-has-role: warn jsx-a11y/role-has-required-aria-props: warn jsx-a11y/role-supports-aria-props: off jsx-a11y/scope: warn diff --git a/.ruby-version b/.ruby-version index 437459cd94c9fa..8e8299dcc06835 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.5.0 +2.4.2 diff --git a/.travis.yml b/.travis.yml index 61d51ca21cc34f..777ca581cb248c 100644 --- a/.travis.yml +++ b/.travis.yml @@ -3,15 +3,12 @@ cache: bundler: true yarn: true directories: - - node_modules - - public/assets - - public/packs-test - - tmp/cache/babel-loader + - node_modules + - public/assets + - public/packs-test + - tmp/cache/babel-loader dist: trusty -sudo: false -branches: - only: - - master +sudo: required notifications: email: false @@ -23,24 +20,25 @@ env: - RAILS_ENV=test - NOKOGIRI_USE_SYSTEM_LIBRARIES=true - PARALLEL_TEST_PROCESSORS=2 + - "PATH=$HOME:$PATH" addons: postgresql: 9.4 apt: sources: - - trusty-media - - sourceline: deb https://dl.yarnpkg.com/debian/ stable main - key_url: https://dl.yarnpkg.com/debian/pubkey.gpg + - trusty-media + - sourceline: deb https://dl.yarnpkg.com/debian/ stable main + key_url: https://dl.yarnpkg.com/debian/pubkey.gpg packages: - - ffmpeg - - libicu-dev - - libprotobuf-dev - - protobuf-compiler - - yarn + - ffmpeg + - libicu-dev + - libprotobuf-dev + - protobuf-compiler + - yarn rvm: + - 2.3.4 - 2.4.2 - - 2.5.0 services: - redis-server @@ -51,7 +49,9 @@ install: - yarn install before_script: - - ./bin/rails parallel:create parallel:load_schema parallel:prepare assets:precompile + - bundle exec rake parallel:create parallel:load_schema parallel:prepare + - bundle exec rails assets:precompile + - ln -s /usr/bin/x86_64-linux-gnu-g++-6 "$HOME/g++" script: - travis_retry bundle exec parallel_test spec/ --group-by filesize --type rspec diff --git a/AUTHORS.md b/AUTHORS.md deleted file mode 100644 index c4bbb60140b178..00000000000000 --- a/AUTHORS.md +++ /dev/null @@ -1,450 +0,0 @@ -Mastodon is available on [GitHub](https://github.com/tootsuite/mastodon) -and provided thanks to the work of the following contributors: - -* [Gargron](https://github.com/Gargron) -* [ykzts](https://github.com/ykzts) -* [mjankowski](https://github.com/mjankowski) -* [akihikodaki](https://github.com/akihikodaki) -* [unarist](https://github.com/unarist) -* [yiskah](https://github.com/yiskah) -* [m4sk1n](https://github.com/m4sk1n) -* [nolanlawson](https://github.com/nolanlawson) -* [sorin-davidoi](https://github.com/sorin-davidoi) -* [abcang](https://github.com/abcang) -* [ThibG](https://github.com/ThibG) -* [lynlynlynx](https://github.com/lynlynlynx) -* [alpaca-tc](https://github.com/alpaca-tc) -* [nclm](https://github.com/nclm) -* [ineffyble](https://github.com/ineffyble) -* [jeroenpraat](https://github.com/jeroenpraat) -* [blackle](https://github.com/blackle) -* [Quent-in](https://github.com/Quent-in) -* [JantsoP](https://github.com/JantsoP) -* [nullkal](https://github.com/nullkal) -* [yookoala](https://github.com/yookoala) -* [ysksn](https://github.com/ysksn) -* [ashfurrow](https://github.com/ashfurrow) -* [eramdam](https://github.com/eramdam) -* [mayaeh](https://github.com/mayaeh) -* [zunda](https://github.com/zunda) -* [ticky](https://github.com/ticky) -* [masarakki](https://github.com/masarakki) -* [Wonderfall](https://github.com/Wonderfall) -* [matteoaquila](https://github.com/matteoaquila) -* [rkarabut](https://github.com/rkarabut) -* [stephenburgess8](https://github.com/stephenburgess8) -* [Kjwon15](https://github.com/Kjwon15) -* [Artoria2e5](https://github.com/Artoria2e5) -* [yukimochi](https://github.com/yukimochi) -* [marrus-sh](https://github.com/marrus-sh) -* [krainboltgreene](https://github.com/krainboltgreene) -* [renatolond](https://github.com/renatolond) -* [BoFFire](https://github.com/BoFFire) -* [clworld](https://github.com/clworld) -* [danhunsaker](https://github.com/danhunsaker) -* [patf](https://github.com/patf) -* [Quenty31](https://github.com/Quenty31) -* [MitarashiDango](https://github.com/MitarashiDango) -* [Aldarone](https://github.com/Aldarone) -* [JeanGauthier](https://github.com/JeanGauthier) -* [kschaper](https://github.com/kschaper) -* [takayamaki](https://github.com/takayamaki) -* [adbelle](https://github.com/adbelle) -* [evanminto](https://github.com/evanminto) -* [mabkenar](https://github.com/mabkenar) -* [MightyPork](https://github.com/MightyPork) -* [beatrix-bitrot](https://github.com/beatrix-bitrot) -* [yhirano55](https://github.com/yhirano55) -* [camponez](https://github.com/camponez) -* [aschmitz](https://github.com/aschmitz) -* [fpiesche](https://github.com/fpiesche) -* [gandaro](https://github.com/gandaro) -* [johnsudaar](https://github.com/johnsudaar) -* [trebmuh](https://github.com/trebmuh) -* [Sylvhem](https://github.com/Sylvhem) -* [lindwurm](https://github.com/lindwurm) -* [voidsatisfaction](https://github.com/voidsatisfaction) -* [neetshin](https://github.com/neetshin) -* [valentin2105](https://github.com/valentin2105) -* [hikari-no-yume](https://github.com/hikari-no-yume) -* [Angristan](https://github.com/Angristan) -* [seefood](https://github.com/seefood) -* [jackjennings](https://github.com/jackjennings) -* [hcmiya](https://github.com/hcmiya) -* [nightpool](https://github.com/nightpool) -* [salvadorpla](https://github.com/salvadorpla) -* [expenses](https://github.com/expenses) -* [walf443](https://github.com/walf443) -* [JoelQ](https://github.com/JoelQ) -* [mistydemeo](https://github.com/mistydemeo) -* [dunn](https://github.com/dunn) -* [xqus](https://github.com/xqus) -* [pfm-eyesightjp](https://github.com/pfm-eyesightjp) -* [fakenine](https://github.com/fakenine) -* [tsuwatch](https://github.com/tsuwatch) -* [victorhck](https://github.com/victorhck) -* [puckipedia](https://github.com/puckipedia) -* [contraexemplo](https://github.com/contraexemplo) -* [kazu9su](https://github.com/kazu9su) -* [Komic](https://github.com/Komic) -* [diomed](https://github.com/diomed) -* [rainyday](https://github.com/rainyday) -* [kadiix](https://github.com/kadiix) -* [kodacs](https://github.com/kodacs) -* [ProgVal](https://github.com/ProgVal) -* [sterdev](https://github.com/sterdev) -* [TheKinrar](https://github.com/TheKinrar) -* [AA4ch1](https://github.com/AA4ch1) -* [alexgleason](https://github.com/alexgleason) -* [cpytel](https://github.com/cpytel) -* [northerner](https://github.com/northerner) -* [hnrysmth](https://github.com/hnrysmth) -* [hugogameiro](https://github.com/hugogameiro) -* [JohnD28](https://github.com/JohnD28) -* [znz](https://github.com/znz) -* [Naouak](https://github.com/Naouak) -* [rtucker](https://github.com/rtucker) -* [reneklacan](https://github.com/reneklacan) -* [KScl](https://github.com/KScl) -* [SerCom-KC](https://github.com/SerCom-KC) -* [tcitworld](https://github.com/tcitworld) -* [geta6](https://github.com/geta6) -* [goofy-bz](https://github.com/goofy-bz) -* [happycoloredbanana](https://github.com/happycoloredbanana) -* [leopku](https://github.com/leopku) -* [SansPseudoFix](https://github.com/SansPseudoFix) -* [tomfhowe](https://github.com/tomfhowe) -* [noraworld](https://github.com/noraworld) -* [fvh-P](https://github.com/fvh-P) -* [178inaba](https://github.com/178inaba) -* [devkral](https://github.com/devkral) -* [alyssais](https://github.com/alyssais) -* [kodnaplakal](https://github.com/kodnaplakal) -* [stalker314314](https://github.com/stalker314314) -* [huertanix](https://github.com/huertanix) -* [genesixx](https://github.com/genesixx) -* [fhemberger](https://github.com/fhemberger) -* [halkeye](https://github.com/halkeye) -* [treby](https://github.com/treby) -* [d6rkaiz](https://github.com/d6rkaiz) -* [jpdevries](https://github.com/jpdevries) -* [rndm-stranger](https://github.com/rndm-stranger) -* [saper](https://github.com/saper) -* [nevillepark](https://github.com/nevillepark) -* [ornithocoder](https://github.com/ornithocoder) -* [pierreozoux](https://github.com/pierreozoux) -* [ramlmn](https://github.com/ramlmn) -* [harukasan](https://github.com/harukasan) -* [stamak](https://github.com/stamak) -* [Eychics](https://github.com/Eychics) -* [thor-the-norseman](https://github.com/thor-the-norseman) -* [0x70b1a5](https://github.com/0x70b1a5) -* [gled-rs](https://github.com/gled-rs) -* [R0ckweb](https://github.com/R0ckweb) -* [esetomo](https://github.com/esetomo) -* [foxiehkins](https://github.com/foxiehkins) -* [sdukhovni](https://github.com/sdukhovni) -* [unsmell](https://github.com/unsmell) -* [chriswmartin](https://github.com/chriswmartin) -* [vahnj](https://github.com/vahnj) -* [ikuradon](https://github.com/ikuradon) -* [AndreLewin](https://github.com/AndreLewin) -* [redtachyons](https://github.com/redtachyons) -* [thurloat](https://github.com/thurloat) -* [aaribaud](https://github.com/aaribaud) -* [estuans](https://github.com/estuans) -* [dissolve](https://github.com/dissolve) -* [PurpleBooth](https://github.com/PurpleBooth) -* [bradurani](https://github.com/bradurani) -* [wavebeem](https://github.com/wavebeem) -* [bruwalfas](https://github.com/bruwalfas) -* [foxsan48](https://github.com/foxsan48) -* [wchristian](https://github.com/wchristian) -* [muffinista](https://github.com/muffinista) -* [cdutson](https://github.com/cdutson) -* [farlistener](https://github.com/farlistener) -* [DavidLibeau](https://github.com/DavidLibeau) -* [SirCmpwn](https://github.com/SirCmpwn) -* [MasterGroosha](https://github.com/MasterGroosha) -* [Fjoerfoks](https://github.com/Fjoerfoks) -* [fmauNeko](https://github.com/fmauNeko) -* [gloaec](https://github.com/gloaec) -* [greysteil](https://github.com/greysteil) -* [unstabler](https://github.com/unstabler) -* [potato4d](https://github.com/potato4d) -* [h-izumi](https://github.com/h-izumi) -* [ErikXXon](https://github.com/ErikXXon) -* [ian-kelling](https://github.com/ian-kelling) -* [foozmeat](https://github.com/foozmeat) -* [jasonrhodes](https://github.com/jasonrhodes) -* [asm](https://github.com/asm) -* [jviide](https://github.com/jviide) -* [crakaC](https://github.com/crakaC) -* [tkbky](https://github.com/tkbky) -* [Kazhnuz](https://github.com/Kazhnuz) -* [alimony](https://github.com/alimony) -* [mig5](https://github.com/mig5) -* [ndarville](https://github.com/ndarville) -* [Abzol](https://github.com/Abzol) -* [xPaw](https://github.com/xPaw) -* [raymestalez](https://github.com/raymestalez) -* [sim6](https://github.com/sim6) -* [ekiru](https://github.com/ekiru) -* [Technowix](https://github.com/Technowix) -* [ThomasLeister](https://github.com/ThomasLeister) -* [mcat-ee](https://github.com/mcat-ee) -* [tototoshi](https://github.com/tototoshi) -* [VirtuBox](https://github.com/VirtuBox) -* [kaniini](https://github.com/kaniini) -* [vayan](https://github.com/vayan) -* [yannicka](https://github.com/yannicka) -* [ikasoumen](https://github.com/ikasoumen) -* [zacanger](https://github.com/zacanger) -* [amazedkoumei](https://github.com/amazedkoumei) -* [anon5r](https://github.com/anon5r) -* [codl](https://github.com/codl) -* [barzamin](https://github.com/barzamin) -* [fhalna](https://github.com/fhalna) -* [haoyayoi](https://github.com/haoyayoi) -* [ik11235](https://github.com/ik11235) -* [kawax](https://github.com/kawax) -* [007lva](https://github.com/007lva) -* [matsurai25](https://github.com/matsurai25) -* [mecab](https://github.com/mecab) -* [nicobz25](https://github.com/nicobz25) -* [oliverkeeble](https://github.com/oliverkeeble) -* [pinfort](https://github.com/pinfort) -* [rbaumert](https://github.com/rbaumert) -* [usagi-f](https://github.com/usagi-f) -* [vidarlee](https://github.com/vidarlee) -* [vjackson725](https://github.com/vjackson725) -* [wxcafe](https://github.com/wxcafe) -* [rinsuki](https://github.com/rinsuki) -* [cygnan](https://github.com/cygnan) -* [Awea](https://github.com/Awea) -* [halcy](https://github.com/halcy) -* [bounshi](https://github.com/bounshi) -* [8398a7](https://github.com/8398a7) -* [857b](https://github.com/857b) -* [unascribed](https://github.com/unascribed) -* [Aguay-val](https://github.com/Aguay-val) -* [knu](https://github.com/knu) -* [alxrcs](https://github.com/alxrcs) -* [console-cowboy](https://github.com/console-cowboy) -* [pointlessone](https://github.com/pointlessone) -* [a2](https://github.com/a2) -* [0xa](https://github.com/0xa) -* [virtualpain](https://github.com/virtualpain) -* [sapphirus](https://github.com/sapphirus) -* [amandavisconti](https://github.com/amandavisconti) -* [ameliavoncat](https://github.com/ameliavoncat) -* [ilpianista](https://github.com/ilpianista) -* [andydrop](https://github.com/andydrop) -* [schas002](https://github.com/schas002) -* [jumbosushi](https://github.com/jumbosushi) -* [ayumin](https://github.com/ayumin) -* [BaptisteGelez](https://github.com/BaptisteGelez) -* [bzg](https://github.com/bzg) -* [benediktg](https://github.com/benediktg) -* [blakebarnett](https://github.com/blakebarnett) -* [bradj](https://github.com/bradj) -* [brycied00d](https://github.com/brycied00d) -* [carlosjs23](https://github.com/carlosjs23) -* [cgxxx](https://github.com/cgxxx) -* [chrisheninger](https://github.com/chrisheninger) -* [chris-martin](https://github.com/chris-martin) -* [DoubleMalt](https://github.com/DoubleMalt) -* [Moosh-be](https://github.com/Moosh-be) -* [Motoma](https://github.com/Motoma) -* [chriswk](https://github.com/chriswk) -* [csu](https://github.com/csu) -* [kklleemm](https://github.com/kklleemm) -* [monsterpit-daggertooth](https://github.com/monsterpit-daggertooth) -* [watilde](https://github.com/watilde) -* [daprice](https://github.com/daprice) -* [dar5hak](https://github.com/dar5hak) -* [kant](https://github.com/kant) -* [singingwolfboy](https://github.com/singingwolfboy) -* [davidcelis](https://github.com/davidcelis) -* [yipdw](https://github.com/yipdw) -* [debanshuk](https://github.com/debanshuk) -* [dblandin](https://github.com/dblandin) -* [aranaur](https://github.com/aranaur) -* [d3vgru](https://github.com/d3vgru) -* [Elizafox](https://github.com/Elizafox) -* [ericblade](https://github.com/ericblade) -* [mikoim](https://github.com/mikoim) -* [siuying](https://github.com/siuying) -* [hattori6789](https://github.com/hattori6789) -* [algernon](https://github.com/algernon) -* [Fastbyte01](https://github.com/Fastbyte01) -* [myfreeweb](https://github.com/myfreeweb) -* [gfaivre](https://github.com/gfaivre) -* [Fiaxhs](https://github.com/Fiaxhs) -* [reedcourty](https://github.com/reedcourty) -* [anneau](https://github.com/anneau) -* [HellPie](https://github.com/HellPie) -* [Habu-Kagumba](https://github.com/Habu-Kagumba) -* [hinaloe](https://github.com/hinaloe) -* [suzukaze](https://github.com/suzukaze) -* [Hiromi-Kai](https://github.com/Hiromi-Kai) -* [musashino205](https://github.com/musashino205) -* [iwaim](https://github.com/iwaim) -* [valrus](https://github.com/valrus) -* [IMcD23](https://github.com/IMcD23) -* [yi0713](https://github.com/yi0713) -* [immae](https://github.com/immae) -* [iblech](https://github.com/iblech) -* [jack-michaud](https://github.com/jack-michaud) -* [Floppy](https://github.com/Floppy) -* [loomchild](https://github.com/loomchild) -* [docjkl](https://github.com/docjkl) -* [TrollDecker](https://github.com/TrollDecker) -* [jmontane](https://github.com/jmontane) -* [jonathanklee](https://github.com/jonathanklee) -* [jguerder](https://github.com/jguerder) -* [Jehops](https://github.com/Jehops) -* [joshuap](https://github.com/joshuap) -* [Tiwy57](https://github.com/Tiwy57) -* [xuv](https://github.com/xuv) -* [Jnsll](https://github.com/Jnsll) -* [j0k3r](https://github.com/j0k3r) -* [KEINOS](https://github.com/KEINOS) -* [futoase](https://github.com/futoase) -* [abjectio](https://github.com/abjectio) -* [mkody](https://github.com/mkody) -* [connyduck](https://github.com/connyduck) -* [k0ta0uchi](https://github.com/k0ta0uchi) -* [KrzysiekJ](https://github.com/KrzysiekJ) -* [leowzukw](https://github.com/leowzukw) -* [lmorchard](https://github.com/lmorchard) -* [cacheflow](https://github.com/cacheflow) -* [ldidry](https://github.com/ldidry) -* [jemus42](https://github.com/jemus42) -* [lfuelling](https://github.com/lfuelling) -* [Grabacr07](https://github.com/Grabacr07) -* [mistermantas](https://github.com/mistermantas) -* [wirehack7](https://github.com/wirehack7) -* [marvinkopf](https://github.com/marvinkopf) -* [otsune](https://github.com/otsune) -* [m-blc](https://github.com/m-blc) -* [matt-auckland](https://github.com/matt-auckland) -* [mattjmattj](https://github.com/mattjmattj) -* [mtparet](https://github.com/mtparet) -* [maximeborges](https://github.com/maximeborges) -* [minacle](https://github.com/minacle) -* [michaeljdeeb](https://github.com/michaeljdeeb) -* [Themimitoof](https://github.com/Themimitoof) -* [cyweo](https://github.com/cyweo) -* [M1dgard](https://github.com/M1dgard) -* [mike-burns](https://github.com/mike-burns) -* [verymilan](https://github.com/verymilan) -* [milmazz](https://github.com/milmazz) -* [Mnkai](https://github.com/Mnkai) -* [mitchhentges](https://github.com/mitchhentges) -* [moritzheiber](https://github.com/moritzheiber) -* [mouse-reeve](https://github.com/mouse-reeve) -* [lae](https://github.com/lae) -* [Nanamachi](https://github.com/Nanamachi) -* [ngerakines](https://github.com/ngerakines) -* [vonneudeck](https://github.com/vonneudeck) -* [Ninetailed](https://github.com/Ninetailed) -* [k24](https://github.com/k24) -* [noiob](https://github.com/noiob) -* [kwaio](https://github.com/kwaio) -* [norayr](https://github.com/norayr) -* [joyeusenoelle](https://github.com/joyeusenoelle) -* [OlivierNicole](https://github.com/OlivierNicole) -* [Otakan951](https://github.com/Otakan951) -* [fahy](https://github.com/fahy) -* [Pangoraw](https://github.com/Pangoraw) -* [pwoolcoc](https://github.com/pwoolcoc) -* [peterkeen](https://github.com/peterkeen) -* [petzah](https://github.com/petzah) -* [ignisf](https://github.com/ignisf) -* [rfwatson](https://github.com/rfwatson) -* [rfreebern](https://github.com/rfreebern) -* [sylph01](https://github.com/sylph01) -* [staticsafe](https://github.com/staticsafe) -* [snwh](https://github.com/snwh) -* [skoji](https://github.com/skoji) -* [ScienJus](https://github.com/ScienJus) -* [larkinscott](https://github.com/larkinscott) -* [imolein](https://github.com/imolein) -* [blinry](https://github.com/blinry) -* [Noiwex](https://github.com/Noiwex) -* [yuki764](https://github.com/yuki764) -* [shnjp](https://github.com/shnjp) -* [ernix](https://github.com/ernix) -* [rosylilly](https://github.com/rosylilly) -* [shouko](https://github.com/shouko) -* [sossii](https://github.com/sossii) -* [StefOfficiel](https://github.com/StefOfficiel) -* [svetlik](https://github.com/svetlik) -* [dereckson](https://github.com/dereckson) -* [theboss](https://github.com/theboss) -* [takp](https://github.com/takp) -* [tkusano](https://github.com/tkusano) -* [TheInventrix](https://github.com/TheInventrix) -* [shug0](https://github.com/shug0) -* [Fortyseven](https://github.com/Fortyseven) -* [tobypinder](https://github.com/tobypinder) -* [tomosm](https://github.com/tomosm) -* [TomoyaShibata](https://github.com/TomoyaShibata) -* [TrashMacNugget](https://github.com/TrashMacNugget) -* [treyssatvincent](https://github.com/treyssatvincent) -* [optikfluffel](https://github.com/optikfluffel) -* [vmincev](https://github.com/vmincev) -* [waldyrious](https://github.com/waldyrious) -* [tahnok](https://github.com/tahnok) -* [YDrogen](https://github.com/YDrogen) -* [YOSHIOKAEiichiro](https://github.com/YOSHIOKAEiichiro) -* [S-YOU](https://github.com/S-YOU) -* [YaQ00](https://github.com/YaQ00) -* [yanakend](https://github.com/yanakend) -* [orzFly](https://github.com/orzFly) -* [chansuke](https://github.com/chansuke) -* [yuntan](https://github.com/yuntan) -* [LogicalDash](https://github.com/LogicalDash) -* [ZiiX](https://github.com/ZiiX) -* [benklop](https://github.com/benklop) -* [caasi](https://github.com/caasi) -* [caesarologia](https://github.com/caesarologia) -* [chrolis](https://github.com/chrolis) -* [cormojs](https://github.com/cormojs) -* [cpsdqs](https://github.com/cpsdqs) -* [d0p1s4m4](https://github.com/d0p1s4m4) -* [evilny0](https://github.com/evilny0) -* [febrezo](https://github.com/febrezo) -* [fsubal](https://github.com/fsubal) -* [dikky1218](https://github.com/dikky1218) -* [gentarok](https://github.com/gentarok) -* [hakoai](https://github.com/hakoai) -* [chaosbunker](https://github.com/chaosbunker) -* [isati](https://github.com/isati) -* [jkap](https://github.com/jkap) -* [jirayudech](https://github.com/jirayudech) -* [jukper](https://github.com/jukper) -* [karlyeurl](https://github.com/karlyeurl) -* [kedamaDQ](https://github.com/kedamaDQ) -* [kuro5hin](https://github.com/kuro5hin) -* [maxypy](https://github.com/maxypy) -* [marcus-herrmann](https://github.com/marcus-herrmann) -* [mshrtkch](https://github.com/mshrtkch) -* [muan](https://github.com/muan) -* [rch850](https://github.com/rch850) -* [roikale](https://github.com/roikale) -* [rysiekpl](https://github.com/rysiekpl) -* [saturday06](https://github.com/saturday06) -* [scriptjunkie](https://github.com/scriptjunkie) -* [seekr](https://github.com/seekr) -* [syui](https://github.com/syui) -* [tackeyy](https://github.com/tackeyy) -* [tmyt](https://github.com/tmyt) -* [utam0k](https://github.com/utam0k) -* [vpzomtrrfrt](https://github.com/vpzomtrrfrt) -* [walfie](https://github.com/walfie) -* [y-temp4](https://github.com/y-temp4) -* [ymmtmdk](https://github.com/ymmtmdk) - -This document is provided for informational purposes only. Since it is only updated once per release, the version you are looking at may be currently out of date. To see the full list of contributors, consider looking at the [git history](https://github.com/tootsuite/mastodon/graphs/contributors) instead. diff --git a/Dockerfile b/Dockerfile index 7a195b31e6af17..7cca02ecf22fae 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,16 +1,14 @@ -FROM ruby:2.5.0-alpine3.7 +FROM ruby:2.4.2-alpine3.6 LABEL maintainer="https://github.com/tootsuite/mastodon" \ - description="Your self-hosted, globally interconnected microblogging community" + description="A GNU Social-compatible microblogging server" -ARG UID=991 -ARG GID=991 - -ENV RAILS_SERVE_STATIC_FILES=true \ +ENV UID=991 GID=991 \ + RAILS_SERVE_STATIC_FILES=true \ RAILS_ENV=production NODE_ENV=production -ARG YARN_VERSION=1.5.1 -ARG YARN_DOWNLOAD_SHA256=cd31657232cf48d57fdbff55f38bfa058d2fb4950450bd34af72dac796af4de1 +ARG YARN_VERSION=1.3.2 +ARG YARN_DOWNLOAD_SHA256=6cfe82e530ef0837212f13e45c1565ba53f5199eec2527b85ecbcd88bf26821d ARG LIBICONV_VERSION=1.15 ARG LIBICONV_DOWNLOAD_SHA256=ccf536620a45458d26ba83887a983b96827001e92a13847b45e4925cc8913178 @@ -38,10 +36,10 @@ RUN apk -U upgrade \ libidn \ libpq \ nodejs \ + nodejs-npm \ protobuf \ su-exec \ tini \ - tzdata \ && update-ca-certificates \ && mkdir -p /tmp/src /opt \ && wget -O yarn.tar.gz "https://github.com/yarnpkg/yarn/releases/download/v$YARN_VERSION/yarn-v$YARN_VERSION.tar.gz" \ @@ -69,16 +67,12 @@ RUN bundle config build.nokogiri --with-iconv-lib=/usr/local/lib --with-iconv-in && yarn --pure-lockfile \ && yarn cache clean -RUN addgroup -g ${GID} mastodon && adduser -h /mastodon -s /bin/sh -D -G mastodon -u ${UID} mastodon \ - && mkdir -p /mastodon/public/system /mastodon/public/assets /mastodon/public/packs \ - && chown -R mastodon:mastodon /mastodon/public - COPY . /mastodon -RUN chown -R mastodon:mastodon /mastodon +COPY docker_entrypoint.sh /usr/local/bin/run -VOLUME /mastodon/public/system /mastodon/public/assets /mastodon/public/packs +RUN chmod +x /usr/local/bin/run -USER mastodon +VOLUME /mastodon/public/system /mastodon/public/assets /mastodon/public/packs -ENTRYPOINT ["/sbin/tini", "--"] +ENTRYPOINT ["/usr/local/bin/run"] diff --git a/Gemfile b/Gemfile index 3fce2ddc75849b..16df1c376b7f1e 100644 --- a/Gemfile +++ b/Gemfile @@ -1,12 +1,13 @@ # frozen_string_literal: true source 'https://rubygems.org' -ruby '>= 2.3.0', '< 2.6.0' +ruby '>= 2.3.0', '< 2.5.0' gem 'pkg-config', '~> 1.2' gem 'puma', '~> 3.10' gem 'rails', '~> 5.1.4' +gem 'uglifier', '~> 3.2' gem 'hamlit-rails', '~> 0.2' gem 'pg', '~> 0.20' @@ -19,7 +20,6 @@ gem 'fog-local', '~> 0.4', require: false gem 'fog-openstack', '~> 0.1', require: false gem 'paperclip', '~> 5.1' gem 'paperclip-av-transcoder', '~> 0.6' -gem 'streamio-ffmpeg', '~> 3.0' gem 'active_model_serializers', '~> 0.10' gem 'addressable', '~> 2.5' @@ -27,25 +27,16 @@ gem 'bootsnap' gem 'browser' gem 'charlock_holmes', '~> 0.7.5' gem 'iso-639' -gem 'chewy', '~> 5.0' gem 'cld3', '~> 3.2.0' -gem 'devise', '~> 4.4' +gem 'devise', '~> 4.2' gem 'devise-two-factor', '~> 3.0' - -gem 'devise_pam_authenticatable2', '~> 8.0', install_if: -> { ENV['PAM_ENABLED'] == 'true' } -gem 'net-ldap', '~> 0.10' -gem 'omniauth-cas', '~> 1.1' -gem 'omniauth-saml', '~> 1.10' -gem 'omniauth', '~> 1.2' - gem 'doorkeeper', '~> 4.2' gem 'fast_blank', '~> 1.0' -gem 'fastimage' -gem 'goldfinger', '~> 2.1' +gem 'goldfinger', '~> 2.0' gem 'hiredis', '~> 0.6' gem 'redis-namespace', '~> 1.5' gem 'htmlentities', '~> 4.3' -gem 'http', '~> 3.0' +gem 'http', '~> 2.2' gem 'http_accept_language', '~> 2.1' gem 'httplog', '~> 0.99' gem 'idn-ruby', require: 'idn' @@ -58,7 +49,6 @@ gem 'oj', '~> 3.3' gem 'ostatus2', '~> 2.0' gem 'ox', '~> 2.8' gem 'pundit', '~> 1.1' -gem 'premailer-rails' gem 'rack-attack', '~> 5.0' gem 'rack-cors', '~> 0.4', require: 'rack/cors' gem 'rack-timeout', '~> 0.4' @@ -78,8 +68,6 @@ gem 'simple-navigation', '~> 4.0' gem 'simple_form', '~> 3.4' gem 'sprockets-rails', '~> 3.2', require: 'sprockets/railtie' gem 'strong_migrations' -gem 'tty-command' -gem 'tty-prompt' gem 'twitter-text', '~> 1.14' gem 'tzinfo-data', '~> 1.2017' gem 'webpacker', '~> 3.0' @@ -96,10 +84,6 @@ group :development, :test do gem 'rspec-rails', '~> 3.7' end -group :production, :test do - gem 'private_address_check', '~> 0.4.1' -end - group :test do gem 'capybara', '~> 2.15' gem 'climate_control', '~> 0.2' @@ -120,7 +104,6 @@ group :development do gem 'bullet', '~> 5.5' gem 'letter_opener', '~> 1.4' gem 'letter_opener_web', '~> 1.3' - gem 'memory_profiler' gem 'rubocop', require: false gem 'brakeman', '~> 4.0', require: false gem 'bundler-audit', '~> 0.6', require: false diff --git a/Gemfile.lock b/Gemfile.lock index 0640b140b17023..46c87d7f789c58 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -70,7 +70,7 @@ GEM coderay (>= 1.0.0) erubi (>= 1.0.0) rack (>= 0.9.0) - binding_of_caller (0.8.0) + binding_of_caller (0.7.3) debug_inspector (>= 0.0.1) bootsnap (1.1.5) msgpack (~> 1.0) @@ -109,12 +109,8 @@ GEM case_transform (0.2) activesupport charlock_holmes (0.7.5) - chewy (5.0.0) - activesupport (>= 4.0) - elasticsearch (>= 2.0.0) - elasticsearch-dsl chunky_png (1.3.8) - cld3 (3.2.2) + cld3 (3.2.1) ffi (>= 1.1.0, < 1.10.0) climate_control (0.2.0) cocaine (0.5.8) @@ -126,10 +122,8 @@ GEM crack (0.4.3) safe_yaml (~> 1.0.0) crass (1.0.3) - css_parser (1.6.0) - addressable debug_inspector (0.0.3) - devise (4.4.0) + devise (4.3.0) bcrypt (~> 3.0) orm_adapter (~> 0.1) railties (>= 4.1.0, < 5.2) @@ -141,9 +135,6 @@ GEM devise (~> 4.0) railties (< 5.2) rotp (~> 2.0) - devise_pam_authenticatable2 (8.0.1) - devise (>= 4.0.0) - rpam2 (~> 3.0) diff-lcs (1.3) docile (1.1.5) domain_name (0.5.20170404) @@ -158,28 +149,16 @@ GEM json thread thread_safe - elasticsearch (6.0.1) - elasticsearch-api (= 6.0.1) - elasticsearch-transport (= 6.0.1) - elasticsearch-api (6.0.1) - multi_json - elasticsearch-dsl (0.1.5) - elasticsearch-transport (6.0.1) - faraday - multi_json encryptor (3.0.0) - equatable (0.5.0) erubi (1.7.0) et-orbi (1.0.8) tzinfo excon (0.59.0) + execjs (2.7.0) fabrication (2.18.0) faker (1.8.4) i18n (~> 0.5) - faraday (0.14.0) - multipart-post (>= 1.2, < 3) fast_blank (1.0.0) - fastimage (2.1.1) ffi (1.9.18) fog-core (1.45.0) builder @@ -200,9 +179,9 @@ GEM ruby-progressbar (~> 1.4) globalid (0.4.1) activesupport (>= 4.2.0) - goldfinger (2.1.0) + goldfinger (2.0.1) addressable (~> 2.5) - http (~> 3.0) + http (~> 2.2) nokogiri (~> 1.8) oj (~> 3.0) hamlit (2.8.5) @@ -217,26 +196,24 @@ GEM hamster (3.0.0) concurrent-ruby (~> 1.0) hashdiff (0.3.7) - hashie (3.5.7) highline (1.7.10) hiredis (0.6.1) - hitimes (1.2.6) hkdf (0.3.0) htmlentities (4.3.4) - http (3.0.0) + http (2.2.2) addressable (~> 2.3) http-cookie (~> 1.0) - http-form_data (>= 2.0.0.pre.pre2, < 3) + http-form_data (~> 1.0.1) http_parser.rb (~> 0.6.0) http-cookie (1.0.3) domain_name (~> 0.5) - http-form_data (2.0.0) + http-form_data (1.0.3) http_accept_language (2.1.1) http_parser.rb (0.6.0) httplog (0.99.7) colorize rack - i18n (0.9.3) + i18n (0.9.1) concurrent-ruby (~> 1.0) i18n-tasks (0.9.19) activesupport (>= 4.0.2) @@ -295,7 +272,6 @@ GEM mini_mime (>= 0.1.1) mario-redis-lock (1.2.0) redis (~> 3, >= 3.0.5) - memory_profiler (0.9.10) method_source (0.9.0) microformats (4.0.7) json @@ -306,12 +282,9 @@ GEM mimemagic (0.3.2) mini_mime (1.0.0) mini_portile2 (2.3.0) - minitest (5.11.3) + minitest (5.10.3) msgpack (1.1.0) multi_json (1.12.2) - multipart-post (2.0.0) - necromancer (0.4.0) - net-ldap (0.16.1) net-scp (1.2.1) net-ssh (>= 2.6.5) net-ssh (4.2.0) @@ -325,24 +298,16 @@ GEM concurrent-ruby (~> 1.0.0) sidekiq (>= 3.5.0) statsd-ruby (~> 1.2.0) - oj (3.3.10) - omniauth (1.8.1) - hashie (>= 3.4.6, < 3.6.0) - rack (>= 1.6.2, < 3) - omniauth-cas (1.1.1) - addressable (~> 2.3) - nokogiri (~> 1.5) - omniauth (~> 1.2) - omniauth-saml (1.10.0) - omniauth (~> 1.3, >= 1.3.2) - ruby-saml (~> 1.7) + oj (3.3.9) + openssl (2.0.6) orm_adapter (0.5.0) - ostatus2 (2.0.3) - addressable (~> 2.5) - http (~> 3.0) - nokogiri (~> 1.8) + ostatus2 (2.0.1) + addressable (~> 2.4) + http (~> 2.0) + nokogiri (~> 1.6) + openssl (~> 2.0) ox (2.8.2) - paperclip (5.2.1) + paperclip (5.1.0) activemodel (>= 4.2.0) activesupport (>= 4.2.0) cocaine (~> 0.5.5) @@ -356,22 +321,11 @@ GEM parallel parser (2.4.0.2) ast (~> 2.3) - pastel (0.7.2) - equatable (~> 0.5.0) - tty-color (~> 0.4.0) pg (0.21.0) pghero (1.7.0) activerecord pkg-config (1.2.8) powerpack (0.1.1) - premailer (1.11.1) - addressable - css_parser (>= 1.6.0) - htmlentities (>= 4.0.0) - premailer-rails (1.10.1) - actionmailer (>= 3, < 6) - premailer (~> 1.7, >= 1.7.9) - private_address_check (0.4.1) pry (0.11.3) coderay (~> 1.1.0) method_source (~> 0.9.0) @@ -459,7 +413,6 @@ GEM actionpack (>= 4.2.0, < 5.3) railties (>= 4.2.0, < 5.3) rotp (2.1.2) - rpam2 (3.1.0) rqrcode (0.10.1) chunky_png (~> 1.0) rspec-core (3.7.0) @@ -491,8 +444,6 @@ GEM unicode-display_width (~> 1.0, >= 1.0.1) ruby-oembed (0.12.0) ruby-progressbar (1.9.0) - ruby-saml (1.7.2) - nokogiri (>= 1.5.10) rufus-scheduler (3.4.2) et-orbi (~> 1.0) safe_yaml (1.0.4) @@ -545,8 +496,6 @@ GEM net-scp (>= 1.1.2) net-ssh (>= 2.8.0) statsd-ruby (1.2.1) - streamio-ffmpeg (3.0.2) - multi_json (~> 1.8) strong_migrations (0.1.9) activerecord (>= 3.2.0) temple (0.8.0) @@ -556,29 +505,14 @@ GEM thread (0.2.2) thread_safe (0.3.6) tilt (2.0.8) - timers (4.1.2) - hitimes - tty-color (0.4.2) - tty-command (0.7.0) - pastel (~> 0.7.0) - tty-cursor (0.5.0) - tty-prompt (0.15.0) - necromancer (~> 0.4.0) - pastel (~> 0.7.0) - timers (~> 4.0) - tty-cursor (~> 0.5.0) - tty-reader (~> 0.2.0) - tty-reader (0.2.0) - tty-cursor (~> 0.5.0) - tty-screen (~> 0.6.4) - wisper (~> 2.0.0) - tty-screen (0.6.4) twitter-text (1.14.7) unf (~> 0.1.0) tzinfo (1.2.4) thread_safe (~> 0.1) tzinfo-data (1.2017.3) tzinfo (>= 1.0.0) + uglifier (3.2.0) + execjs (>= 0.3.0, < 3) unf (0.1.4) unf_ext unf_ext (0.0.7.4) @@ -600,7 +534,6 @@ GEM websocket-driver (0.6.5) websocket-extensions (>= 0.1.0) websocket-extensions (0.1.3) - wisper (2.0.0) xpath (2.1.0) nokogiri (~> 1.3) @@ -626,27 +559,24 @@ DEPENDENCIES capistrano-yarn (~> 2.0) capybara (~> 2.15) charlock_holmes (~> 0.7.5) - chewy (~> 5.0) cld3 (~> 3.2.0) climate_control (~> 0.2) - devise (~> 4.4) + devise (~> 4.2) devise-two-factor (~> 3.0) - devise_pam_authenticatable2 (~> 8.0) doorkeeper (~> 4.2) dotenv-rails (~> 2.2) fabrication (~> 2.18) faker (~> 1.7) fast_blank (~> 1.0) - fastimage fog-core (~> 1.45) fog-local (~> 0.4) fog-openstack (~> 0.1) fuubar (~> 2.2) - goldfinger (~> 2.1) + goldfinger (~> 2.0) hamlit-rails (~> 0.2) hiredis (~> 0.6) htmlentities (~> 4.3) - http (~> 3.0) + http (~> 2.2) http_accept_language (~> 2.1) httplog (~> 0.99) i18n-tasks (~> 0.9) @@ -659,16 +589,11 @@ DEPENDENCIES link_header (~> 0.0) lograge (~> 0.7) mario-redis-lock (~> 1.2) - memory_profiler microformats (~> 4.0) mime-types (~> 3.1) - net-ldap (~> 0.10) nokogiri (~> 1.8) nsa (~> 0.2) oj (~> 3.3) - omniauth (~> 1.2) - omniauth-cas (~> 1.1) - omniauth-saml (~> 1.10) ostatus2 (~> 2.0) ox (~> 2.8) paperclip (~> 5.1) @@ -677,8 +602,6 @@ DEPENDENCIES pg (~> 0.20) pghero (~> 1.7) pkg-config (~> 1.2) - premailer-rails - private_address_check (~> 0.4.1) pry-rails (~> 0.3) puma (~> 3.10) pundit (~> 1.1) @@ -709,18 +632,16 @@ DEPENDENCIES simple_form (~> 3.4) simplecov (~> 0.14) sprockets-rails (~> 3.2) - streamio-ffmpeg (~> 3.0) strong_migrations - tty-command - tty-prompt twitter-text (~> 1.14) tzinfo-data (~> 1.2017) + uglifier (~> 3.2) webmock (~> 3.0) webpacker (~> 3.0) webpush RUBY VERSION - ruby 2.5.0p0 + ruby 2.4.2p198 BUNDLED WITH 1.16.1 diff --git a/README.md b/README.md index e9fb685c41fc8c..5cf91d52ca971c 100644 --- a/README.md +++ b/README.md @@ -17,10 +17,9 @@ Click on the screenshot below to watch a demo of the UI: **Ruby on Rails** is used for the back-end, while **React.js** and Redux are used for the dynamic front-end. A static front-end for public resources (profiles and statuses) is also provided. -If you would like, you can [support the development of this project on Patreon][patreon] or [Liberapay][liberapay]. Alternatively, you can donate to this BTC address: `17j2g7vpgHhLuXhN4bueZFCvdxxieyRVWd` +If you would like, you can [support the development of this project on Patreon][patreon]. Alternatively, you can donate to this BTC address: `17j2g7vpgHhLuXhN4bueZFCvdxxieyRVWd` [patreon]: https://www.patreon.com/user?u=619786 -[liberapay]: https://liberapay.com/Mastodon/ --- diff --git a/Vagrantfile b/Vagrantfile index ddcdf351024044..0c21bed68c83b1 100644 --- a/Vagrantfile +++ b/Vagrantfile @@ -39,7 +39,6 @@ sudo apt-get install \ libidn11-dev \ libprotobuf-dev \ libreadline-dev \ - libpam0g-dev \ -y # Install rvm @@ -49,7 +48,7 @@ curl -sSL https://raw.githubusercontent.com/rvm/rvm/stable/binscripts/rvm-instal source /home/vagrant/.rvm/scripts/rvm # Install Ruby -rvm reinstall ruby-$RUBY_VERSION --disable-binary +rvm install ruby-$RUBY_VERSION # Configure database sudo -u postgres createuser -U postgres vagrant -s @@ -80,7 +79,7 @@ VAGRANTFILE_API_VERSION = "2" Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| - config.vm.box = "ubuntu/xenial64" + config.vm.box = "ubuntu/trusty64" config.vm.provider :virtualbox do |vb| vb.name = "mastodon" diff --git a/app/chewy/statuses_index.rb b/app/chewy/statuses_index.rb deleted file mode 100644 index 8bf5b4af7cf52c..00000000000000 --- a/app/chewy/statuses_index.rb +++ /dev/null @@ -1,61 +0,0 @@ -# frozen_string_literal: true - -class StatusesIndex < Chewy::Index - settings index: { refresh_interval: '15m' }, analysis: { - filter: { - english_stop: { - type: 'stop', - stopwords: '_english_', - }, - english_stemmer: { - type: 'stemmer', - language: 'english', - }, - english_possessive_stemmer: { - type: 'stemmer', - language: 'possessive_english', - }, - }, - analyzer: { - content: { - tokenizer: 'uax_url_email', - filter: %w( - english_possessive_stemmer - lowercase - asciifolding - cjk_width - english_stop - english_stemmer - ), - }, - }, - } - - define_type ::Status.without_reblogs do - crutch :mentions do |collection| - data = ::Mention.where(status_id: collection.map(&:id)).pluck(:status_id, :account_id) - data.each.with_object({}) { |(id, name), result| (result[id] ||= []).push(name) } - end - - crutch :favourites do |collection| - data = ::Favourite.where(status_id: collection.map(&:id)).pluck(:status_id, :account_id) - data.each.with_object({}) { |(id, name), result| (result[id] ||= []).push(name) } - end - - crutch :reblogs do |collection| - data = ::Status.where(reblog_of_id: collection.map(&:id)).pluck(:reblog_of_id, :account_id) - data.each.with_object({}) { |(id, name), result| (result[id] ||= []).push(name) } - end - - root date_detection: false do - field :account_id, type: 'long' - - field :text, type: 'text', value: ->(status) { [status.spoiler_text, Formatter.instance.plaintext(status)].join("\n\n") } do - field :stemmed, type: 'text', analyzer: 'content' - end - - field :searchable_by, type: 'long', value: ->(status, crutches) { status.searchable_by(crutches) } - field :created_at, type: 'date' - end - end -end diff --git a/app/controllers/about_controller.rb b/app/controllers/about_controller.rb index 4ffdfb6856c3d4..47690e81eb9253 100644 --- a/app/controllers/about_controller.rb +++ b/app/controllers/about_controller.rb @@ -31,7 +31,7 @@ def set_body_classes def initial_state_params { - settings: { known_fediverse: Setting.show_known_fediverse_at_about_page }, + settings: {}, token: current_session&.token, } end diff --git a/app/controllers/accounts_controller.rb b/app/controllers/accounts_controller.rb index 7bf35825f9b93a..75915b33712f62 100644 --- a/app/controllers/accounts_controller.rb +++ b/app/controllers/accounts_controller.rb @@ -1,11 +1,8 @@ # frozen_string_literal: true class AccountsController < ApplicationController - PAGE_SIZE = 20 - include AccountControllerConcern - - before_action :set_cache_headers + include SignatureVerification def show respond_to do |format| @@ -18,25 +15,21 @@ def show end @pinned_statuses = cache_collection(@account.pinned_statuses, Status) if show_pinned_statuses? - @statuses = filtered_status_page(params) + @statuses = filtered_statuses.paginate_by_max_id(20, params[:max_id], params[:since_id]) @statuses = cache_collection(@statuses, Status) - unless @statuses.empty? - @older_url = older_url if @statuses.last.id > filtered_statuses.last.id - @newer_url = newer_url if @statuses.first.id < filtered_statuses.first.id - end + @next_url = next_url unless @statuses.empty? end format.atom do - @entries = @account.stream_entries.where(hidden: false).with_includes.paginate_by_max_id(PAGE_SIZE, params[:max_id], params[:since_id]) + @entries = @account.stream_entries.where(hidden: false).with_includes.paginate_by_max_id(20, params[:max_id], params[:since_id]) render xml: OStatus::AtomSerializer.render(OStatus::AtomSerializer.new.feed(@account, @entries.reject { |entry| entry.status.nil? })) end format.json do - skip_session! - - render_cached_json(['activitypub', 'actor', @account.cache_key], content_type: 'application/activity+json') do - ActiveModelSerializers::SerializableResource.new(@account, serializer: ActivityPub::ActorSerializer, adapter: ActivityPub::Adapter) - end + render json: @account, + serializer: ActivityPub::ActorSerializer, + adapter: ActivityPub::Adapter, + content_type: 'application/activity+json' end end end @@ -74,22 +67,13 @@ def set_account @account = Account.find_local!(params[:username]) end - def older_url - ::Rails.logger.info("older: max_id #{@statuses.last.id}, url #{pagination_url(max_id: @statuses.last.id)}") - pagination_url(max_id: @statuses.last.id) - end - - def newer_url - pagination_url(min_id: @statuses.first.id) - end - - def pagination_url(max_id: nil, min_id: nil) + def next_url if media_requested? - short_account_media_url(@account, max_id: max_id, min_id: min_id) + short_account_media_url(@account, max_id: @statuses.last.id) elsif replies_requested? - short_account_with_replies_url(@account, max_id: max_id, min_id: min_id) + short_account_with_replies_url(@account, max_id: @statuses.last.id) else - short_account_url(@account, max_id: max_id, min_id: min_id) + short_account_url(@account, max_id: @statuses.last.id) end end @@ -100,12 +84,4 @@ def media_requested? def replies_requested? request.path.ends_with?('/with_replies') end - - def filtered_status_page(params) - if params[:min_id].present? - filtered_statuses.paginate_by_min_id(PAGE_SIZE, params[:min_id]).reverse - else - filtered_statuses.paginate_by_max_id(PAGE_SIZE, params[:max_id], params[:since_id]).to_a - end - end end diff --git a/app/controllers/activitypub/collections_controller.rb b/app/controllers/activitypub/collections_controller.rb deleted file mode 100644 index 081914016e4ebd..00000000000000 --- a/app/controllers/activitypub/collections_controller.rb +++ /dev/null @@ -1,57 +0,0 @@ -# frozen_string_literal: true - -class ActivityPub::CollectionsController < Api::BaseController - include SignatureVerification - - before_action :set_account - before_action :set_size - before_action :set_statuses - - def show - render json: collection_presenter, - serializer: ActivityPub::CollectionSerializer, - adapter: ActivityPub::Adapter, - content_type: 'application/activity+json', - skip_activities: true - end - - private - - def set_account - @account = Account.find_local!(params[:account_username]) - end - - def set_statuses - @statuses = scope_for_collection.paginate_by_max_id(20, params[:max_id], params[:since_id]) - @statuses = cache_collection(@statuses, Status) - end - - def set_size - case params[:id] - when 'featured' - @account.pinned_statuses.count - else - raise ActiveRecord::NotFound - end - end - - def scope_for_collection - case params[:id] - when 'featured' - @account.statuses.permitted_for(@account, signed_request_account).tap do |scope| - scope.merge!(@account.pinned_statuses) - end - else - raise ActiveRecord::NotFound - end - end - - def collection_presenter - ActivityPub::CollectionPresenter.new( - id: account_collection_url(@account, params[:id]), - type: :ordered, - size: @size, - items: @statuses - ) - end -end diff --git a/app/controllers/activitypub/inboxes_controller.rb b/app/controllers/activitypub/inboxes_controller.rb index af51e32d5d3114..76553a162a24b0 100644 --- a/app/controllers/activitypub/inboxes_controller.rb +++ b/app/controllers/activitypub/inboxes_controller.rb @@ -11,7 +11,7 @@ def create process_payload head 202 else - render plain: signature_verification_failure_reason, status: 401 + [signature_verification_failure_reason, 401] end end @@ -28,7 +28,7 @@ def body def upgrade_account if signed_request_account.ostatus? signed_request_account.update(last_webfingered_at: nil) - ResolveAccountWorker.perform_async(signed_request_account.acct) + ResolveRemoteAccountWorker.perform_async(signed_request_account.acct) end Pubsubhubbub::UnsubscribeWorker.perform_async(signed_request_account.id) if signed_request_account.subscribed? diff --git a/app/controllers/activitypub/outboxes_controller.rb b/app/controllers/activitypub/outboxes_controller.rb index 9ed700c1e23eb0..9f97ff6226d674 100644 --- a/app/controllers/activitypub/outboxes_controller.rb +++ b/app/controllers/activitypub/outboxes_controller.rb @@ -1,15 +1,13 @@ # frozen_string_literal: true class ActivityPub::OutboxesController < Api::BaseController - include SignatureVerification - before_action :set_account def show - @statuses = @account.statuses.permitted_for(@account, signed_request_account).paginate_by_max_id(20, params[:max_id], params[:since_id]) + @statuses = @account.statuses.permitted_for(@account, current_account).paginate_by_max_id(20, params[:max_id], params[:since_id]) @statuses = cache_collection(@statuses, Status) - render json: outbox_presenter, serializer: ActivityPub::OutboxSerializer, adapter: ActivityPub::Adapter, content_type: 'application/activity+json' + render json: outbox_presenter, serializer: ActivityPub::CollectionSerializer, adapter: ActivityPub::Adapter, content_type: 'application/activity+json' end private diff --git a/app/controllers/admin/settings_controller.rb b/app/controllers/admin/settings_controller.rb index ce32082099e384..487282dc35b8fd 100644 --- a/app/controllers/admin/settings_controller.rb +++ b/app/controllers/admin/settings_controller.rb @@ -16,11 +16,9 @@ class SettingsController < BaseController show_staff_badge bootstrap_timeline_accounts thumbnail - hero min_invite_role activity_api_enabled peers_api_enabled - show_known_fediverse_at_about_page ).freeze BOOLEAN_SETTINGS = %w( @@ -30,12 +28,10 @@ class SettingsController < BaseController show_staff_badge activity_api_enabled peers_api_enabled - show_known_fediverse_at_about_page ).freeze UPLOAD_SETTINGS = %w( thumbnail - hero ).freeze def edit diff --git a/app/controllers/api/base_controller.rb b/app/controllers/api/base_controller.rb index 7b5168b314a5df..5983c0fbe4e2ba 100644 --- a/app/controllers/api/base_controller.rb +++ b/app/controllers/api/base_controller.rb @@ -6,8 +6,8 @@ class Api::BaseController < ApplicationController include RateLimitHeaders + skip_before_action :verify_authenticity_token skip_before_action :store_current_location - protect_from_forgery with: :null_session rescue_from ActiveRecord::RecordInvalid, Mastodon::ValidationError do |e| render json: { error: e.to_s }, status: 422 @@ -51,10 +51,6 @@ def limit_param(default_limit) [params[:limit].to_i.abs, default_limit * 2].min end - def truthy_param?(key) - ActiveModel::Type::Boolean.new.cast(params[key]) - end - def current_resource_owner @current_user ||= User.find(doorkeeper_token.resource_owner_id) if doorkeeper_token end diff --git a/app/controllers/api/salmon_controller.rb b/app/controllers/api/salmon_controller.rb index ac5f3268d8c78a..143e9d3cdc6b8b 100644 --- a/app/controllers/api/salmon_controller.rb +++ b/app/controllers/api/salmon_controller.rb @@ -1,8 +1,6 @@ # frozen_string_literal: true class Api::SalmonController < Api::BaseController - include SignatureVerification - before_action :set_account respond_to :txt @@ -11,7 +9,7 @@ def update process_salmon head 202 elsif payload.present? - render plain: signature_verification_failure_reason, status: 401 + [signature_verification_failure_reason, 401] else head 400 end diff --git a/app/controllers/api/v1/accounts/credentials_controller.rb b/app/controllers/api/v1/accounts/credentials_controller.rb index 68af225295a336..da534d960e51d1 100644 --- a/app/controllers/api/v1/accounts/credentials_controller.rb +++ b/app/controllers/api/v1/accounts/credentials_controller.rb @@ -20,6 +20,6 @@ def update private def account_params - params.permit(:display_name, :note, :avatar, :header, :locked) + params.permit(:display_name, :note, :avatar, :header) end end diff --git a/app/controllers/api/v1/accounts/relationships_controller.rb b/app/controllers/api/v1/accounts/relationships_controller.rb index 70236d1a8bfc1c..91a942d7530fb5 100644 --- a/app/controllers/api/v1/accounts/relationships_controller.rb +++ b/app/controllers/api/v1/accounts/relationships_controller.rb @@ -10,7 +10,7 @@ def index accounts = Account.where(id: account_ids).select('id') # .where doesn't guarantee that our results are in the same order # we requested them, so return the "right" order to the requestor. - @accounts = accounts.index_by(&:id).values_at(*account_ids).compact + @accounts = accounts.index_by(&:id).values_at(*account_ids) render json: @accounts, each_serializer: REST::RelationshipSerializer, relationships: relationships end @@ -21,6 +21,6 @@ def relationships end def account_ids - Array(params[:id]).map(&:to_i) + @_account_ids ||= Array(params[:id]).map(&:to_i) end end diff --git a/app/controllers/api/v1/accounts/search_controller.rb b/app/controllers/api/v1/accounts/search_controller.rb index 7649da4339e7a0..11e647c3cbee84 100644 --- a/app/controllers/api/v1/accounts/search_controller.rb +++ b/app/controllers/api/v1/accounts/search_controller.rb @@ -22,4 +22,8 @@ def account_search following: truthy_param?(:following) ) end + + def truthy_param?(key) + params[key] == 'true' + end end diff --git a/app/controllers/api/v1/accounts/statuses_controller.rb b/app/controllers/api/v1/accounts/statuses_controller.rb index 7261ccd24733ab..095f6937b00eb8 100644 --- a/app/controllers/api/v1/accounts/statuses_controller.rb +++ b/app/controllers/api/v1/accounts/statuses_controller.rb @@ -28,9 +28,9 @@ def cached_account_statuses def account_statuses default_statuses.tap do |statuses| - statuses.merge!(only_media_scope) if truthy_param?(:only_media) - statuses.merge!(pinned_scope) if truthy_param?(:pinned) - statuses.merge!(no_replies_scope) if truthy_param?(:exclude_replies) + statuses.merge!(only_media_scope) if params[:only_media] + statuses.merge!(pinned_scope) if params[:pinned] + statuses.merge!(no_replies_scope) if params[:exclude_replies] end end diff --git a/app/controllers/api/v1/accounts_controller.rb b/app/controllers/api/v1/accounts_controller.rb index d6432594410406..4e73e9e8b564c3 100644 --- a/app/controllers/api/v1/accounts_controller.rb +++ b/app/controllers/api/v1/accounts_controller.rb @@ -13,9 +13,9 @@ def show end def follow - FollowService.new.call(current_user.account, @account.acct, reblogs: truthy_param?(:reblogs)) + FollowService.new.call(current_user.account, @account.acct, reblogs: params[:reblogs]) - options = @account.locked? ? {} : { following_map: { @account.id => { reblogs: truthy_param?(:reblogs) } }, requested_map: { @account.id => false } } + options = @account.locked? ? {} : { following_map: { @account.id => { reblogs: params[:reblogs] } }, requested_map: { @account.id => false } } render json: @account, serializer: REST::RelationshipSerializer, relationships: relationships(options) end @@ -26,7 +26,7 @@ def block end def mute - MuteService.new.call(current_user.account, @account, notifications: truthy_param?(:notifications)) + MuteService.new.call(current_user.account, @account, notifications: params[:notifications]) render json: @account, serializer: REST::RelationshipSerializer, relationships: relationships end diff --git a/app/controllers/api/v1/instances/activity_controller.rb b/app/controllers/api/v1/instances/activity_controller.rb index e14e0aee8341c1..36f52c38d7fbe2 100644 --- a/app/controllers/api/v1/instances/activity_controller.rb +++ b/app/controllers/api/v1/instances/activity_controller.rb @@ -21,9 +21,9 @@ def activity weeks << { week: week.to_time.to_i.to_s, - statuses: Redis.current.get("activity:statuses:local:#{week_id}") || '0', - logins: Redis.current.pfcount("activity:logins:#{week_id}").to_s, - registrations: Redis.current.get("activity:accounts:local:#{week_id}") || '0', + statuses: Redis.current.get("activity:statuses:local:#{week_id}") || 0, + logins: Redis.current.pfcount("activity:logins:#{week_id}"), + registrations: Redis.current.get("activity:accounts:local:#{week_id}") || 0, } end diff --git a/app/controllers/api/v1/media_controller.rb b/app/controllers/api/v1/media_controller.rb index d4e6337e76436b..9f330f0dfe962d 100644 --- a/app/controllers/api/v1/media_controller.rb +++ b/app/controllers/api/v1/media_controller.rb @@ -27,7 +27,7 @@ def update private def media_params - params.permit(:file, :description, :focus) + params.permit(:file, :description) end def file_type_error diff --git a/app/controllers/api/v1/reports_controller.rb b/app/controllers/api/v1/reports_controller.rb index f5095e07304538..22828217d2f0d7 100644 --- a/app/controllers/api/v1/reports_controller.rb +++ b/app/controllers/api/v1/reports_controller.rb @@ -13,14 +13,14 @@ def index end def create - @report = ReportService.new.call( - current_account, - reported_account, + @report = current_account.reports.create!( + target_account: reported_account, status_ids: reported_status_ids, - comment: report_params[:comment], - forward: report_params[:forward] + comment: report_params[:comment] ) + User.staff.includes(:account).each { |u| AdminMailer.new_report(u.account, @report).deliver_later } + render json: @report, serializer: REST::ReportSerializer end @@ -39,6 +39,6 @@ def reported_account end def report_params - params.permit(:account_id, :comment, :forward, status_ids: []) + params.permit(:account_id, :comment, status_ids: []) end end diff --git a/app/controllers/api/v1/search_controller.rb b/app/controllers/api/v1/search_controller.rb index 05754d0f2438b3..997eed6e2c5418 100644 --- a/app/controllers/api/v1/search_controller.rb +++ b/app/controllers/api/v1/search_controller.rb @@ -33,8 +33,12 @@ def search_results SearchService.new.call( params[:q], RESULTS_LIMIT, - truthy_param?(:resolve), + resolving_search?, current_account ) end + + def resolving_search? + params[:resolve] == 'true' + end end diff --git a/app/controllers/api/v1/statuses/pins_controller.rb b/app/controllers/api/v1/statuses/pins_controller.rb index bba6a6f4802023..3de1009b842810 100644 --- a/app/controllers/api/v1/statuses/pins_controller.rb +++ b/app/controllers/api/v1/statuses/pins_controller.rb @@ -11,18 +11,12 @@ class Api::V1::Statuses::PinsController < Api::BaseController def create StatusPin.create!(account: current_account, status: @status) - distribute_add_activity! render json: @status, serializer: REST::StatusSerializer end def destroy pin = StatusPin.find_by(account: current_account, status: @status) - - if pin - pin.destroy! - distribute_remove_activity! - end - + pin&.destroy! render json: @status, serializer: REST::StatusSerializer end @@ -31,24 +25,4 @@ def destroy def set_status @status = Status.find(params[:status_id]) end - - def distribute_add_activity! - json = ActiveModelSerializers::SerializableResource.new( - @status, - serializer: ActivityPub::AddSerializer, - adapter: ActivityPub::Adapter - ).as_json - - ActivityPub::RawDistributionWorker.perform_async(Oj.dump(json), current_account) - end - - def distribute_remove_activity! - json = ActiveModelSerializers::SerializableResource.new( - @status, - serializer: ActivityPub::RemoveSerializer, - adapter: ActivityPub::Adapter - ).as_json - - ActivityPub::RawDistributionWorker.perform_async(Oj.dump(json), current_account) - end end diff --git a/app/controllers/api/v1/timelines/home_controller.rb b/app/controllers/api/v1/timelines/home_controller.rb index bbbcf7f90889b3..db6cd8568b69bc 100644 --- a/app/controllers/api/v1/timelines/home_controller.rb +++ b/app/controllers/api/v1/timelines/home_controller.rb @@ -9,11 +9,7 @@ class Api::V1::Timelines::HomeController < Api::BaseController def show @statuses = load_statuses - - render json: @statuses, - each_serializer: REST::StatusSerializer, - relationships: StatusRelationshipsPresenter.new(@statuses, current_user&.account_id), - status: regeneration_in_progress? ? 206 : 200 + render json: @statuses, each_serializer: REST::StatusSerializer, relationships: StatusRelationshipsPresenter.new(@statuses, current_user&.account_id) end private @@ -61,8 +57,4 @@ def pagination_max_id def pagination_since_id @statuses.first.id end - - def regeneration_in_progress? - Redis.current.exists("account:#{current_account.id}:regeneration") - end end diff --git a/app/controllers/api/v1/timelines/public_controller.rb b/app/controllers/api/v1/timelines/public_controller.rb index d7d70b94d52e47..49887778e0962e 100644 --- a/app/controllers/api/v1/timelines/public_controller.rb +++ b/app/controllers/api/v1/timelines/public_controller.rb @@ -21,23 +21,15 @@ def cached_public_statuses end def public_statuses - statuses = public_timeline_statuses.paginate_by_max_id( + public_timeline_statuses.paginate_by_max_id( limit_param(DEFAULT_STATUSES_LIMIT), params[:max_id], params[:since_id] ) - - if truthy_param?(:only_media) - # `SELECT DISTINCT id, updated_at` is too slow, so pluck ids at first, and then select id, updated_at with ids. - status_ids = statuses.joins(:media_attachments).distinct(:id).pluck(:id) - statuses.where(id: status_ids) - else - statuses - end end def public_timeline_statuses - Status.as_public_timeline(current_account, truthy_param?(:local)) + Status.as_public_timeline(current_account, params[:local]) end def insert_pagination_headers @@ -45,7 +37,7 @@ def insert_pagination_headers end def pagination_params(core_params) - params.permit(:local, :limit, :only_media).merge(core_params) + params.permit(:local, :limit).merge(core_params) end def next_path diff --git a/app/controllers/api/v1/timelines/tag_controller.rb b/app/controllers/api/v1/timelines/tag_controller.rb index eb32611ad40509..08db04a39d27d6 100644 --- a/app/controllers/api/v1/timelines/tag_controller.rb +++ b/app/controllers/api/v1/timelines/tag_controller.rb @@ -29,24 +29,16 @@ def tagged_statuses if @tag.nil? [] else - statuses = tag_timeline_statuses.paginate_by_max_id( + tag_timeline_statuses.paginate_by_max_id( limit_param(DEFAULT_STATUSES_LIMIT), params[:max_id], params[:since_id] ) - - if truthy_param?(:only_media) - # `SELECT DISTINCT id, updated_at` is too slow, so pluck ids at first, and then select id, updated_at with ids. - status_ids = statuses.joins(:media_attachments).distinct(:id).pluck(:id) - statuses.where(id: status_ids) - else - statuses - end end end def tag_timeline_statuses - Status.as_tag_timeline(@tag, current_account, truthy_param?(:local)) + Status.as_tag_timeline(@tag, current_account, params[:local]) end def insert_pagination_headers @@ -54,7 +46,7 @@ def insert_pagination_headers end def pagination_params(core_params) - params.permit(:local, :limit, :only_media).merge(core_params) + params.permit(:local, :limit).merge(core_params) end def next_path diff --git a/app/controllers/api/web/push_subscriptions_controller.rb b/app/controllers/api/web/push_subscriptions_controller.rb index 68ccbd5e20db00..52e250d02da970 100644 --- a/app/controllers/api/web/push_subscriptions_controller.rb +++ b/app/controllers/api/web/push_subscriptions_controller.rb @@ -4,7 +4,6 @@ class Api::Web::PushSubscriptionsController < Api::BaseController respond_to :json before_action :require_user! - protect_from_forgery with: :exception def create params.require(:subscription).require(:endpoint) diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 6e504261781242..51a978f440a3a6 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -14,7 +14,6 @@ class ApplicationController < ActionController::Base helper_method :current_session helper_method :current_theme helper_method :single_user_mode? - helper_method :use_seamless_external_login? rescue_from ActionController::RoutingError, with: :not_found rescue_from ActiveRecord::RecordNotFound, with: :not_found @@ -31,11 +30,11 @@ def raise_not_found private def https_enabled? - Rails.env.production? + Rails.env.production? && ENV['LOCAL_HTTPS'] == 'true' end def store_current_location - store_location_for(:user, request.url) unless request.format == :json + store_location_for(:user, request.url) end def require_admin! @@ -76,10 +75,6 @@ def single_user_mode? @single_user_mode ||= Rails.configuration.x.single_user_mode && Account.exists? end - def use_seamless_external_login? - Devise.pam_authentication || Devise.ldap_authentication - end - def current_account @current_account ||= current_user.try(:account) end @@ -128,24 +123,11 @@ def respond_with_error(code) end def render_cached_json(cache_key, **options) - options[:expires_in] ||= 3.minutes - cache_key = cache_key.join(':') if cache_key.is_a?(Enumerable) - cache_public = options.key?(:public) ? options.delete(:public) : true - content_type = options.delete(:content_type) || 'application/json' - data = Rails.cache.fetch(cache_key, { raw: true }.merge(options)) do yield.to_json end - expires_in options[:expires_in], public: cache_public - render json: data, content_type: content_type - end - - def set_cache_headers - response.headers['Vary'] = 'Accept' - end - - def skip_session! - request.session_options[:skip] = true + expires_in options[:expires_in], public: true + render json: data end end diff --git a/app/controllers/auth/confirmations_controller.rb b/app/controllers/auth/confirmations_controller.rb index a240425cd8f40d..2fdb281f40e87b 100644 --- a/app/controllers/auth/confirmations_controller.rb +++ b/app/controllers/auth/confirmations_controller.rb @@ -2,28 +2,4 @@ class Auth::ConfirmationsController < Devise::ConfirmationsController layout 'auth' - - before_action :set_user, only: [:finish_signup] - - # GET/PATCH /users/:id/finish_signup - def finish_signup - return unless request.patch? && params[:user] - if @user.update(user_params) - @user.skip_reconfirmation! - sign_in(@user, bypass: true) - redirect_to root_path, notice: I18n.t('devise.confirmations.send_instructions') - else - @show_errors = true - end - end - - private - - def set_user - @user = current_user - end - - def user_params - params.require(:user).permit(:email) - end end diff --git a/app/controllers/auth/omniauth_callbacks_controller.rb b/app/controllers/auth/omniauth_callbacks_controller.rb deleted file mode 100644 index bbf63bed304f9e..00000000000000 --- a/app/controllers/auth/omniauth_callbacks_controller.rb +++ /dev/null @@ -1,33 +0,0 @@ -# frozen_string_literal: true - -class Auth::OmniauthCallbacksController < Devise::OmniauthCallbacksController - skip_before_action :verify_authenticity_token - - def self.provides_callback_for(provider) - provider_id = provider.to_s.chomp '_oauth2' - - define_method provider do - @user = User.find_for_oauth(request.env['omniauth.auth'], current_user) - - if @user.persisted? - sign_in_and_redirect @user, event: :authentication - set_flash_message(:notice, :success, kind: provider_id.capitalize) if is_navigational_format? - else - session["devise.#{provider}_data"] = request.env['omniauth.auth'] - redirect_to new_user_registration_url - end - end - end - - Devise.omniauth_configs.each_key do |provider| - provides_callback_for provider - end - - def after_sign_in_path_for(resource) - if resource.email_verified? - root_path - else - finish_signup_path - end - end -end diff --git a/app/controllers/auth/registrations_controller.rb b/app/controllers/auth/registrations_controller.rb index 417e2b63bddd7e..da0b6512f28afc 100644 --- a/app/controllers/auth/registrations_controller.rb +++ b/app/controllers/auth/registrations_controller.rb @@ -14,11 +14,6 @@ def destroy protected - def update_resource(resource, params) - params[:password] = nil if Devise.pam_authentication && resource.encrypted_password.blank? - super - end - def build_resource(hash = nil) super(hash) @@ -42,10 +37,6 @@ def after_inactive_sign_up_path_for(_resource) new_user_session_path end - def after_update_path_for(_resource) - edit_user_registration_path - end - def check_enabled_registrations redirect_to root_path if single_user_mode? || !allowed_registrations? end diff --git a/app/controllers/auth/sessions_controller.rb b/app/controllers/auth/sessions_controller.rb index c1ebe760c5d908..a5acb6c36fa325 100644 --- a/app/controllers/auth/sessions_controller.rb +++ b/app/controllers/auth/sessions_controller.rb @@ -10,14 +10,6 @@ class Auth::SessionsController < Devise::SessionsController prepend_before_action :authenticate_with_two_factor, if: :two_factor_enabled?, only: [:create] before_action :set_instance_presenter, only: [:new] - def new - Devise.omniauth_configs.each do |provider, config| - return redirect_to(omniauth_authorize_path(resource_name, provider)) if config.strategy.redirect_at_sign_in - end - - super - end - def create super do |resource| remember_me(resource) @@ -36,11 +28,7 @@ def find_user if session[:otp_user_id] User.find(session[:otp_user_id]) elsif user_params[:email] - if use_seamless_external_login? && Devise.check_at_sign && user_params[:email].index('@').nil? - User.joins(:account).find_by(accounts: { username: user_params[:email] }) - else - User.find_for_authentication(email: user_params[:email]) - end + User.find_for_authentication(email: user_params[:email]) end end @@ -58,14 +46,6 @@ def after_sign_in_path_for(resource) end end - def after_sign_out_path_for(_resource_or_scope) - Devise.omniauth_configs.each_value do |config| - return root_path if config.strategy.redirect_at_sign_in - end - - super - end - def two_factor_enabled? find_user.try(:otp_required_for_login?) end diff --git a/app/controllers/authorize_follows_controller.rb b/app/controllers/authorize_follows_controller.rb index 775d5f23fb32df..78b56418364723 100644 --- a/app/controllers/authorize_follows_controller.rb +++ b/app/controllers/authorize_follows_controller.rb @@ -4,7 +4,6 @@ class AuthorizeFollowsController < ApplicationController layout 'modal' before_action :authenticate_user! - before_action :set_body_classes def show @account = located_account || render(:error) @@ -41,7 +40,7 @@ def account_from_remote_fetch end def account_from_remote_follow - ResolveAccountService.new.call(acct_without_prefix) + ResolveRemoteAccountService.new.call(acct_without_prefix) end def acct_param_is_url? @@ -59,8 +58,4 @@ def acct_without_prefix def acct_params params.fetch(:acct, '') end - - def set_body_classes - @body_classes = 'modal-layout' - end end diff --git a/app/controllers/concerns/localized.rb b/app/controllers/concerns/localized.rb index e697284a8c74e8..a9ea60f7dc65e5 100644 --- a/app/controllers/concerns/localized.rb +++ b/app/controllers/concerns/localized.rb @@ -17,7 +17,11 @@ def set_locale end def default_locale - request_locale || I18n.default_locale + request_locale || env_locale || I18n.default_locale + end + + def env_locale + ENV['DEFAULT_LOCALE'] end def request_locale @@ -25,10 +29,12 @@ def request_locale end def preferred_locale - http_accept_language.preferred_language_from(I18n.available_locales) + http_accept_language.preferred_language_from([env_locale]) || + http_accept_language.preferred_language_from(I18n.available_locales) end def compatible_locale - http_accept_language.compatible_language_from(I18n.available_locales) + http_accept_language.compatible_language_from([env_locale]) || + http_accept_language.compatible_language_from(I18n.available_locales) end end diff --git a/app/controllers/concerns/signature_authentication.rb b/app/controllers/concerns/signature_authentication.rb deleted file mode 100644 index beec932238195f..00000000000000 --- a/app/controllers/concerns/signature_authentication.rb +++ /dev/null @@ -1,11 +0,0 @@ -# frozen_string_literal: true - -module SignatureAuthentication - extend ActiveSupport::Concern - - include SignatureVerification - - def current_account - super || signed_request_account - end -end diff --git a/app/controllers/concerns/signature_verification.rb b/app/controllers/concerns/signature_verification.rb index f289228d3ce78b..2baafb5bf5d0a5 100644 --- a/app/controllers/concerns/signature_verification.rb +++ b/app/controllers/concerns/signature_verification.rb @@ -114,7 +114,7 @@ def incompatible_signature?(signature_params) def account_from_key_id(key_id) if key_id.start_with?('acct:') - ResolveAccountService.new.call(key_id.gsub(/\Aacct:/, '')) + ResolveRemoteAccountService.new.call(key_id.gsub(/\Aacct:/, '')) elsif !ActivityPub::TagManager.instance.local_uri?(key_id) account = ActivityPub::TagManager.instance.uri_to_resource(key_id, Account) account ||= ActivityPub::FetchRemoteKeyService.new.call(key_id, id: false) diff --git a/app/controllers/concerns/user_tracking_concern.rb b/app/controllers/concerns/user_tracking_concern.rb index be10705fcc1d8b..1e3132941110fe 100644 --- a/app/controllers/concerns/user_tracking_concern.rb +++ b/app/controllers/concerns/user_tracking_concern.rb @@ -3,6 +3,7 @@ module UserTrackingConcern extend ActiveSupport::Concern + REGENERATE_FEED_DAYS = 14 UPDATE_SIGN_IN_HOURS = 24 included do @@ -13,10 +14,25 @@ module UserTrackingConcern def set_user_activity return unless user_needs_sign_in_update? + + # Mark as signed-in today current_user.update_tracked_fields!(request) + ActivityTracker.record('activity:logins', current_user.id) + + # Regenerate feed if needed + regenerate_feed! if user_needs_feed_update? end def user_needs_sign_in_update? user_signed_in? && (current_user.current_sign_in_at.nil? || current_user.current_sign_in_at < UPDATE_SIGN_IN_HOURS.hours.ago) end + + def user_needs_feed_update? + current_user.last_sign_in_at < REGENERATE_FEED_DAYS.days.ago + end + + def regenerate_feed! + Redis.current.setnx("account:#{current_user.account_id}:regeneration", true) == 1 && Redis.current.expire("account:#{current_user.account_id}:regeneration", 3_600 * 24) + RegenerationWorker.perform_async(current_user.account_id) + end end diff --git a/app/controllers/emojis_controller.rb b/app/controllers/emojis_controller.rb index c9725ccc0d2d26..a82b9340bf83ae 100644 --- a/app/controllers/emojis_controller.rb +++ b/app/controllers/emojis_controller.rb @@ -2,16 +2,14 @@ class EmojisController < ApplicationController before_action :set_emoji - before_action :set_cache_headers def show respond_to do |format| format.json do - skip_session! - - render_cached_json(['activitypub', 'emoji', @emoji.cache_key], content_type: 'application/activity+json') do - ActiveModelSerializers::SerializableResource.new(@emoji, serializer: ActivityPub::EmojiSerializer, adapter: ActivityPub::Adapter) - end + render json: @emoji, + serializer: ActivityPub::EmojiSerializer, + adapter: ActivityPub::Adapter, + content_type: 'application/activity+json' end end end diff --git a/app/controllers/follower_accounts_controller.rb b/app/controllers/follower_accounts_controller.rb index 2d2315034c4d42..399e79665e728b 100644 --- a/app/controllers/follower_accounts_controller.rb +++ b/app/controllers/follower_accounts_controller.rb @@ -7,9 +7,7 @@ def index @follows = Follow.where(target_account: @account).recent.page(params[:page]).per(FOLLOW_PER_PAGE).preload(:account) respond_to do |format| - format.html do - @relationships = AccountRelationshipsPresenter.new(@follows.map(&:account_id), current_user.account_id) if user_signed_in? - end + format.html format.json do render json: collection_presenter, diff --git a/app/controllers/following_accounts_controller.rb b/app/controllers/following_accounts_controller.rb index 169f9057d86815..1e73d4bd4087a0 100644 --- a/app/controllers/following_accounts_controller.rb +++ b/app/controllers/following_accounts_controller.rb @@ -7,9 +7,7 @@ def index @follows = Follow.where(account: @account).recent.page(params[:page]).per(FOLLOW_PER_PAGE).preload(:target_account) respond_to do |format| - format.html do - @relationships = AccountRelationshipsPresenter.new(@follows.map(&:target_account_id), current_user.account_id) if user_signed_in? - end + format.html format.json do render json: collection_presenter, diff --git a/app/controllers/home_controller.rb b/app/controllers/home_controller.rb index b1f8f1ad902234..21dde20ce40379 100644 --- a/app/controllers/home_controller.rb +++ b/app/controllers/home_controller.rb @@ -34,8 +34,7 @@ def authenticate_user! end end - matches = request.path.match(%r{\A/web/timelines/tag/(?.+)\z}) - redirect_to(matches ? tag_path(CGI.unescape(matches[:tag])) : default_redirect_path) + redirect_to(default_redirect_path) end def set_initial_state_json diff --git a/app/controllers/media_controller.rb b/app/controllers/media_controller.rb index 88c7232dd848b5..f652f5acef9964 100644 --- a/app/controllers/media_controller.rb +++ b/app/controllers/media_controller.rb @@ -3,26 +3,20 @@ class MediaController < ApplicationController include Authorization - before_action :set_media_attachment - before_action :verify_permitted_status! + before_action :verify_permitted_status def show - redirect_to @media_attachment.file.url(:original) - end - - def player - @body_classes = 'player' - raise ActiveRecord::RecordNotFound unless @media_attachment.video? || @media_attachment.gifv? + redirect_to media_attachment.file.url(:original) end private - def set_media_attachment - @media_attachment = MediaAttachment.attached.find_by!(shortcode: params[:id] || params[:medium_id]) + def media_attachment + MediaAttachment.attached.find_by!(shortcode: params[:id]) end - def verify_permitted_status! - authorize @media_attachment.status, :show? + def verify_permitted_status + authorize media_attachment.status, :show? rescue Mastodon::NotPermittedError # Reraise in order to get a 404 instead of a 403 error code raise ActiveRecord::RecordNotFound diff --git a/app/controllers/remote_follow_controller.rb b/app/controllers/remote_follow_controller.rb index 3b988e08d80a83..48b026aa5a08da 100644 --- a/app/controllers/remote_follow_controller.rb +++ b/app/controllers/remote_follow_controller.rb @@ -38,8 +38,4 @@ def set_account def suspended_account? @account.suspended? end - - def set_body_classes - @body_classes = 'modal-layout' - end end diff --git a/app/controllers/settings/exports_controller.rb b/app/controllers/settings/exports_controller.rb index 869e11d3bf6017..ae62f00c1e2ccc 100644 --- a/app/controllers/settings/exports_controller.rb +++ b/app/controllers/settings/exports_controller.rb @@ -1,23 +1,11 @@ # frozen_string_literal: true class Settings::ExportsController < ApplicationController - include Authorization - layout 'admin' before_action :authenticate_user! def show - @export = Export.new(current_account) - @backups = current_user.backups - end - - def create - authorize :backup, :create? - - backup = current_user.backups.create! - BackupWorker.perform_async(backup.id) - - redirect_to settings_export_path + @export = Export.new(current_account) end end diff --git a/app/controllers/settings/preferences_controller.rb b/app/controllers/settings/preferences_controller.rb index 8397631388da12..0690267151c958 100644 --- a/app/controllers/settings/preferences_controller.rb +++ b/app/controllers/settings/preferences_controller.rb @@ -39,7 +39,6 @@ def user_settings_params :setting_boost_modal, :setting_delete_modal, :setting_auto_play_gif, - :setting_display_sensitive_media, :setting_reduce_motion, :setting_system_font_ui, :setting_noindex, diff --git a/app/controllers/settings/two_factor_authentication/confirmations_controller.rb b/app/controllers/settings/two_factor_authentication/confirmations_controller.rb index 8d534960d4bf0c..4cf62db13ef76a 100644 --- a/app/controllers/settings/two_factor_authentication/confirmations_controller.rb +++ b/app/controllers/settings/two_factor_authentication/confirmations_controller.rb @@ -6,7 +6,6 @@ class ConfirmationsController < ApplicationController layout 'admin' before_action :authenticate_user! - before_action :ensure_otp_secret def new prepare_two_factor_form @@ -39,10 +38,6 @@ def prepare_two_factor_form @provision_url = current_user.otp_provisioning_uri(current_user.email, issuer: Rails.configuration.x.local_domain) @qrcode = RQRCode::QRCode.new(@provision_url) end - - def ensure_otp_secret - redirect_to settings_two_factor_authentication_path unless current_user.otp_secret - end end end end diff --git a/app/controllers/shares_controller.rb b/app/controllers/shares_controller.rb index 3ec831a72dafe0..994742c3df6b2a 100644 --- a/app/controllers/shares_controller.rb +++ b/app/controllers/shares_controller.rb @@ -14,18 +14,17 @@ def show private def initial_state_params - text = [params[:title], params[:text], params[:url]].compact.join(' ') { settings: Web::Setting.find_by(user: current_user)&.data || {}, push_subscription: current_account.user.web_push_subscription(current_session), current_account: current_account, token: current_session.token, admin: Account.find_local(Setting.site_contact_username), - text: text, + text: params[:text], } end def set_body_classes - @body_classes = 'modal-layout compose-standalone' + @body_classes = 'compose-standalone' end end diff --git a/app/controllers/statuses_controller.rb b/app/controllers/statuses_controller.rb index 45226c8d2ae4ed..e8a360fb5752eb 100644 --- a/app/controllers/statuses_controller.rb +++ b/app/controllers/statuses_controller.rb @@ -1,7 +1,6 @@ # frozen_string_literal: true class StatusesController < ApplicationController - include SignatureAuthentication include Authorization layout 'public' @@ -11,7 +10,6 @@ class StatusesController < ApplicationController before_action :set_link_headers before_action :check_account_suspension before_action :redirect_to_original, only: [:show] - before_action :set_cache_headers def show respond_to do |format| @@ -23,21 +21,19 @@ def show end format.json do - skip_session! unless @stream_entry.hidden? - - render_cached_json(['activitypub', 'note', @status.cache_key], content_type: 'application/activity+json', public: !@stream_entry.hidden?) do - ActiveModelSerializers::SerializableResource.new(@status, serializer: ActivityPub::NoteSerializer, adapter: ActivityPub::Adapter) - end + render json: @status, + serializer: ActivityPub::NoteSerializer, + adapter: ActivityPub::Adapter, + content_type: 'application/activity+json' end end end def activity - skip_session! - - render_cached_json(['activitypub', 'activity', @status.cache_key], content_type: 'application/activity+json', public: !@stream_entry.hidden?) do - ActiveModelSerializers::SerializableResource.new(@status, serializer: ActivityPub::ActivitySerializer, adapter: ActivityPub::Adapter) - end + render json: @status, + serializer: ActivityPub::ActivitySerializer, + adapter: ActivityPub::Adapter, + content_type: 'application/activity+json' end def embed diff --git a/app/controllers/stream_entries_controller.rb b/app/controllers/stream_entries_controller.rb index f81856cc6ba1c1..cc579dbc8898b1 100644 --- a/app/controllers/stream_entries_controller.rb +++ b/app/controllers/stream_entries_controller.rb @@ -10,7 +10,6 @@ class StreamEntriesController < ApplicationController before_action :set_stream_entry before_action :set_link_headers before_action :check_account_suspension - before_action :set_cache_headers def show respond_to do |format| @@ -20,10 +19,6 @@ def show end format.atom do - unless @stream_entry.hidden? - skip_session! - expires_in 3.minutes, public: true - end render xml: OStatus::AtomSerializer.render(OStatus::AtomSerializer.new.entry(@stream_entry, true)) end end diff --git a/app/helpers/admin/action_logs_helper.rb b/app/helpers/admin/action_logs_helper.rb index 4475034a508b02..e85243e57e4d3b 100644 --- a/app/helpers/admin/action_logs_helper.rb +++ b/app/helpers/admin/action_logs_helper.rb @@ -34,7 +34,7 @@ def log_target_from_history(type, attributes) link_to attributes['domain'], "https://#{attributes['domain']}" when 'Status' tmp_status = Status.new(attributes) - link_to tmp_status.account&.acct || "##{tmp_status.account_id}", TagManager.instance.url_for(tmp_status) + link_to tmp_status.account.acct, TagManager.instance.url_for(tmp_status) end end diff --git a/app/helpers/application_helper.rb b/app/helpers/application_helper.rb index bab4615a18b510..8ed5c8bdacad27 100644 --- a/app/helpers/application_helper.rb +++ b/app/helpers/application_helper.rb @@ -22,18 +22,10 @@ def open_deletion? end def add_rtl_body_class(other_classes) - other_classes = "#{other_classes} rtl" if locale_direction == 'rtl' + other_classes = "#{other_classes} rtl" if [:ar, :fa, :he].include?(I18n.locale) other_classes end - def locale_direction - if [:ar, :fa, :he].include?(I18n.locale) - 'rtl' - else - 'ltr' - end - end - def favicon_path env_suffix = Rails.env.production? ? '' : '-dev' "/favicon#{env_suffix}.ico" diff --git a/app/helpers/instance_helper.rb b/app/helpers/instance_helper.rb index dd0b25f3ef9ec5..70027cca9183f3 100644 --- a/app/helpers/instance_helper.rb +++ b/app/helpers/instance_helper.rb @@ -2,10 +2,10 @@ module InstanceHelper def site_title - Setting.site_title + Setting.site_title.presence || site_hostname end def site_hostname - @site_hostname ||= Addressable::URI.parse("//#{Rails.configuration.x.local_domain}").display_uri.host + Rails.configuration.x.local_domain end end diff --git a/app/helpers/jsonld_helper.rb b/app/helpers/jsonld_helper.rb index 9530ad9f30f7ba..6c7c38070acc2b 100644 --- a/app/helpers/jsonld_helper.rb +++ b/app/helpers/jsonld_helper.rb @@ -39,10 +39,6 @@ def supported_context?(json) !json.nil? && equals_or_includes?(json['@context'], ActivityPub::TagManager::CONTEXT) end - def unsupported_uri_scheme?(uri) - !uri.start_with?('http://', 'https://') - end - def canonicalize(json) graph = RDF::Graph.new << JSON::LD::API.toRdf(json) graph.dump(:normalize) diff --git a/app/helpers/mailer_helper.rb b/app/helpers/mailer_helper.rb deleted file mode 100644 index b7e3a8da38c482..00000000000000 --- a/app/helpers/mailer_helper.rb +++ /dev/null @@ -1,4 +0,0 @@ -# frozen_string_literal: true - -module MailerHelper -end diff --git a/app/helpers/routing_helper.rb b/app/helpers/routing_helper.rb index 998b7566fb8251..11894a8952101d 100644 --- a/app/helpers/routing_helper.rb +++ b/app/helpers/routing_helper.rb @@ -4,7 +4,6 @@ module RoutingHelper extend ActiveSupport::Concern include Rails.application.routes.url_helpers include ActionView::Helpers::AssetTagHelper - include Webpacker::Helper included do def default_url_options @@ -18,10 +17,6 @@ def full_asset_url(source, **options) URI.join(root_url, source).to_s end - def full_pack_url(source, **options) - full_asset_url(asset_pack_path(source, options)) - end - private def use_storage? diff --git a/app/helpers/settings_helper.rb b/app/helpers/settings_helper.rb index a2f5917f99daa5..634c47eaaed9b6 100644 --- a/app/helpers/settings_helper.rb +++ b/app/helpers/settings_helper.rb @@ -16,7 +16,6 @@ module SettingsHelper he: 'עברית', hr: 'Hrvatski', hu: 'Magyar', - hy: 'Հայերեն', id: 'Bahasa Indonesia', io: 'Ido', it: 'Italiano', @@ -30,8 +29,6 @@ module SettingsHelper 'pt-BR': 'Português do Brasil', ru: 'Русский', sk: 'Slovensky', - sr: 'Српски', - 'sr-Latn': 'Srpski (latinica)', sv: 'Svenska', th: 'ภาษาไทย', tr: 'Türkçe', diff --git a/app/helpers/stream_entries_helper.rb b/app/helpers/stream_entries_helper.rb index 54b92bdf4719a9..44511498577e90 100644 --- a/app/helpers/stream_entries_helper.rb +++ b/app/helpers/stream_entries_helper.rb @@ -8,27 +8,6 @@ def display_name(account) account.display_name.presence || account.username end - def account_description(account) - prepend_str = [ - [ - number_to_human(account.statuses_count, strip_insignificant_zeros: true), - t('accounts.posts'), - ].join(' '), - - [ - number_to_human(account.following_count, strip_insignificant_zeros: true), - t('accounts.following'), - ].join(' '), - - [ - number_to_human(account.followers_count, strip_insignificant_zeros: true), - t('accounts.followers'), - ].join(' '), - ].join(', ') - - [prepend_str, account.note].join(' · ') - end - def stream_link_target embedded_view? ? '_blank' : nil end diff --git a/app/javascript/images/elephant-fren.png b/app/javascript/images/elephant-fren.png index 851105508336808dd31b466cc4b223654820e653..3b64edf084c020002a00022bd188837a82ed0727 100644 GIT binary patch literal 40859 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 z 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 diff --git a/app/javascript/images/elephant-friend-1.png b/app/javascript/images/elephant-friend-1.png new file mode 100644 index 0000000000000000000000000000000000000000..2b238333092fc07fd2da91032dfe9ca98b5a12cf GIT binary patch literal 144967 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≀J-J5cEk% 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%0Awg#k;;tG=R#sL{?LAzYRbRLh zC8%p?qORXUe|ISKu^G=K!T!CzV(MY~!Itw(#0t#6`GUfd+T6^{O#7Yy0e=4W6yN!L z_7Dbk{8Dd*((j?6p&NMYfCRcvL`z)O^7BhWqx+AV_r!bT+~sAz$%@lkji0_F_X+jn z;{{q@+79waMNgc;lsC#k)bVRxu|~W=VobL!YG6mh$!i`T@<2z0s1V_JMHg%HN7v*Ke6mv(8_fBiRkj!bdgcoMWei-#7aRu8}+o2G0V4 ztA<_S{G50AERkZGO1iOCTxW8MQll{%@u`Mlad%aW)OVx)bsUcj@O7TE6*MRAX8j7G zKU=;OqapOz0?{d`y0Njb$o9bhH;-D_x6#p`PQ()I7#@31UqeGf$;rvdQ$nkY{N}Ko;7^=*3*Tlp`J*K0hLl1s#)@T29 zl~7_C-EDh(Jun3P@R?EkPaKi?wq44jmX`VX`O#$nUL#8A-I2-6va&~=t%?V~{W?24 z!!~RF9O#*vCQ(?xhfhcy4p^2UK^8}qUX9lGoo0&kqdQ7UO;}K`8S>(2)twarXFBuQ zU<<7j>EF$r!i{@puj3H^wTVFa;pBPAW~GM^l?xbun4~VNiE#n(`g2pgz9oSKSih~M z;zcs~{XHg*!QtWRsd9+#W{O<`7Oo6PDAjjyqJ2!_D;Hi}PBR7`h&JxcPyC6P{G&VYjo|zc+=H%Fm>@v!;6V ztNHDh&>{A0kw-66AvmEw_AxxYY~im?UtUU-e)Qu)45vwh|DWURQqCN;AXv^bIwnSE z7njnd#Y?_uoi}gZaOCIbj}Uu%KiKVU|4z=)Oe~Mh-T;<8il-p_7IVRV_+bHBD^2b( z@mG87glig+RPT3nb9v$csjn}(%~~w_%a<=c*Ha_22j=XJjM#dHGq`VM^=Zm+_NbP3 zc67u58A8F(p%@q#is5@59aUhMDlb%F%K?o@AI7Ij&~s)mh5pY+NP>zW5NY2(pZKVh zLvbV`S{38V=iu7wdzWJ8RtQJAH7Ud1S-$zlj0P^d0dscv{r@kI;{Uvci+pH2b`)N^ zOCh+Yf#5ca&_}+YrrgMJ;H=yH<}?6A{y9*jATSGaz0lB^OVbX4ti(pScZpPDQPSUFc8X~ zIrZxEc#Ief48TSP*tWY}aPIj)IJtYXRQ>;SJ|Nj4Td4m|5K1U*S204CkMZ&1G2 z7Xi_Q%0<-rUnneXlBV@3IK%j(r6>VoCDA+?kM&a^6a&EYFZaP3M(vu>1`?TPbqy#u z8phkmgC_&IZe6-Cx9L<`FS+P_9$|j^Hvy5}2%fRj#nJJ)u3p4MB|LM6WzY zgsQVQx37572Dbj}kUx4icVMJrZLi^F9SZ@@516Fg5!4#EbFX;l+3g($Z@vvD|K`&Fd%?$U8MljCJj8rSu^uF|UnS4WQa!<^a&0mcJj=jrc^42Dsk1Iwf zEq*+->b2tYxSq-dH0n;_d}rA`Xk*9NNV(x{VxmbDih6QR!VBS=0t$A?VB^^^1?>IX zhFsPrUip3Yn9t5sAEZ)xt@4VBiuO`w{zSg4X(S+VIS7)A5VJ@rkMJjLx5y$B-(3g+RMJp1N13C&2=eBJ zgDO03l3xFSX6Wh-vYW)4IZK?|vZ_KzBah0jwDtGvVg3C4{u{rn%o{ci&A7Hf`IU|K zRM4kS>2wF#j;hd zhJ)2F>yWa?KrOP>4P9z>BgzFDr7HZ&o*_7dkIK8E!@|O5YR8wHc-+4C&3OFcMIb~1 z4F(Gfz8MTAFX1YP3&qJMQeJFZGTB1j_=DD z7Kf>xl3{^5^W)x3YBA)F2}SFzTmtMqm-n7fkNM?w%)$?Y!8rN)UjOWTq*w8P8X04G VBwQ*MN}do1wOiWCB{v^F{Xh7q7McJ6 literal 0 HcmV?d00001 diff --git a/app/javascript/images/elephant-friend.png b/app/javascript/images/elephant-friend.png new file mode 100644 index 0000000000000000000000000000000000000000..3c5145ba987ff14621d0632cec74e02eb3886d8b GIT binary patch literal 24466 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", - } + Foo

", } - /> - + } + /> ); - } else if (!account.get('moved') || following) { + } else if (!account.get('moved')) { buttons = ; } } diff --git a/app/javascript/mastodon/components/attachment_list.js b/app/javascript/mastodon/components/attachment_list.js index 8e5bb0e0be85b1..b3d00b335730e6 100644 --- a/app/javascript/mastodon/components/attachment_list.js +++ b/app/javascript/mastodon/components/attachment_list.js @@ -1,6 +1,5 @@ import React from 'react'; import ImmutablePropTypes from 'react-immutable-proptypes'; -import PropTypes from 'prop-types'; import ImmutablePureComponent from 'react-immutable-pure-component'; const filename = url => url.split('/').pop().split('#')[0].split('?')[0]; @@ -9,29 +8,10 @@ export default class AttachmentList extends ImmutablePureComponent { static propTypes = { media: ImmutablePropTypes.list.isRequired, - compact: PropTypes.bool, }; render () { - const { media, compact } = this.props; - - if (compact) { - return ( -
- ); - } + const { media } = this.props; return (
@@ -40,15 +20,11 @@ export default class AttachmentList extends ImmutablePureComponent {
); diff --git a/app/javascript/mastodon/components/autosuggest_textarea.js b/app/javascript/mastodon/components/autosuggest_textarea.js index 34904194f73414..6a16e2fc7aedb0 100644 --- a/app/javascript/mastodon/components/autosuggest_textarea.js +++ b/app/javascript/mastodon/components/autosuggest_textarea.js @@ -20,7 +20,7 @@ const textAtCursorMatchesToken = (str, caretPosition) => { word = str.slice(left, right + caretPosition); } - if (!word || word.trim().length < 3 || ['@', ':', '#'].indexOf(word[0]) === -1) { + if (!word || word.trim().length < 3 || ['@', ':'].indexOf(word[0]) === -1) { return [null, null]; } @@ -170,9 +170,6 @@ export default class AutosuggestTextarea extends ImmutablePureComponent { if (typeof suggestion === 'object') { inner = ; key = suggestion.id; - } else if (suggestion[0] === '#') { - inner = suggestion; - key = suggestion; } else { inner = ; key = suggestion; diff --git a/app/javascript/mastodon/components/collapsable.js b/app/javascript/mastodon/components/collapsable.js index d5d431186484f0..42ea37ec229cc2 100644 --- a/app/javascript/mastodon/components/collapsable.js +++ b/app/javascript/mastodon/components/collapsable.js @@ -5,11 +5,11 @@ import PropTypes from 'prop-types'; const Collapsable = ({ fullHeight, isVisible, children }) => ( - {({ opacity, height }) => ( + {({ opacity, height }) =>
{children}
- )} + }
); diff --git a/app/javascript/mastodon/components/column_back_button_slim.js b/app/javascript/mastodon/components/column_back_button_slim.js index 964c100befe446..3b4f46d99f44de 100644 --- a/app/javascript/mastodon/components/column_back_button_slim.js +++ b/app/javascript/mastodon/components/column_back_button_slim.js @@ -1,8 +1,17 @@ import React from 'react'; import { FormattedMessage } from 'react-intl'; -import ColumnBackButton from './column_back_button'; +import PropTypes from 'prop-types'; -export default class ColumnBackButtonSlim extends ColumnBackButton { +export default class ColumnBackButtonSlim extends React.PureComponent { + + static contextTypes = { + router: PropTypes.object, + }; + + handleClick = () => { + if (window.history && window.history.length === 1) this.context.router.history.push('/'); + else this.context.router.history.goBack(); + } render () { return ( diff --git a/app/javascript/mastodon/components/column_header.js b/app/javascript/mastodon/components/column_header.js index 6b79ec02daa092..80a8fbdb3a635f 100644 --- a/app/javascript/mastodon/components/column_header.js +++ b/app/javascript/mastodon/components/column_header.js @@ -23,6 +23,7 @@ export default class ColumnHeader extends React.PureComponent { icon: PropTypes.string.isRequired, active: PropTypes.bool, multiColumn: PropTypes.bool, + focusable: PropTypes.bool, showBackButton: PropTypes.bool, children: PropTypes.node, pinned: PropTypes.bool, @@ -31,6 +32,10 @@ export default class ColumnHeader extends React.PureComponent { onClick: PropTypes.func, }; + static defaultProps = { + focusable: true, + } + state = { collapsed: true, animating: false, @@ -63,7 +68,7 @@ export default class ColumnHeader extends React.PureComponent { } render () { - const { title, icon, active, children, pinned, onPin, multiColumn, showBackButton, intl: { formatMessage } } = this.props; + const { title, icon, active, children, pinned, onPin, multiColumn, focusable, showBackButton, intl: { formatMessage } } = this.props; const { collapsed, animating } = this.state; const wrapperClassName = classNames('column-header__wrapper', { @@ -130,11 +135,11 @@ export default class ColumnHeader extends React.PureComponent { return (
-

- +
{backButton} diff --git a/app/javascript/mastodon/components/display_name.js b/app/javascript/mastodon/components/display_name.js index a1c56ae359b63f..2cf84f8f4a0368 100644 --- a/app/javascript/mastodon/components/display_name.js +++ b/app/javascript/mastodon/components/display_name.js @@ -12,7 +12,7 @@ export default class DisplayName extends React.PureComponent { return ( - @{this.props.account.get('acct')} + @{this.props.account.get('acct')} ); } diff --git a/app/javascript/mastodon/components/dropdown_menu.js b/app/javascript/mastodon/components/dropdown_menu.js index c5c6f73b337b6a..43dc0d6e3e63ce 100644 --- a/app/javascript/mastodon/components/dropdown_menu.js +++ b/app/javascript/mastodon/components/dropdown_menu.js @@ -8,7 +8,6 @@ import spring from 'react-motion/lib/spring'; import detectPassiveEvents from 'detect-passive-events'; const listenerOptions = detectPassiveEvents.hasSupport ? { passive: true } : false; -let id = 0; class DropdownMenu extends React.PureComponent { @@ -30,10 +29,6 @@ class DropdownMenu extends React.PureComponent { placement: 'bottom', }; - state = { - mounted: false, - }; - handleDocumentClick = e => { if (this.node && !this.node.contains(e.target)) { this.props.onClose(); @@ -43,7 +38,6 @@ class DropdownMenu extends React.PureComponent { componentDidMount () { document.addEventListener('click', this.handleDocumentClick, false); document.addEventListener('touchend', this.handleDocumentClick, listenerOptions); - this.setState({ mounted: true }); } componentWillUnmount () { @@ -88,15 +82,11 @@ class DropdownMenu extends React.PureComponent { render () { const { items, style, placement, arrowOffsetLeft, arrowOffsetTop } = this.props; - const { mounted } = this.state; return ( {({ opacity, scaleX, scaleY }) => ( - // It should not be transformed when mounting because the resulting - // size will be used to determine the coordinate of the menu by - // react-overlays -
+
    @@ -125,10 +115,8 @@ export default class Dropdown extends React.PureComponent { status: ImmutablePropTypes.map, isUserTouching: PropTypes.func, isModalOpen: PropTypes.bool.isRequired, - onOpen: PropTypes.func.isRequired, - onClose: PropTypes.func.isRequired, - dropdownPlacement: PropTypes.string, - openDropdownId: PropTypes.number, + onModalOpen: PropTypes.func, + onModalClose: PropTypes.func, }; static defaultProps = { @@ -136,28 +124,37 @@ export default class Dropdown extends React.PureComponent { }; state = { - id: id++, + expanded: false, }; - handleClick = ({ target }) => { - if (this.state.id === this.props.openDropdownId) { - this.handleClose(); - } else { - const { top } = target.getBoundingClientRect(); - const placement = top * 2 < innerHeight ? 'bottom' : 'top'; + handleClick = () => { + if (!this.state.expanded && this.props.isUserTouching() && this.props.onModalOpen) { + const { status, items } = this.props; - this.props.onOpen(this.state.id, this.handleItemClick, placement); + this.props.onModalOpen({ + status, + actions: items, + onClick: this.handleItemClick, + }); + + return; } + + this.setState({ expanded: !this.state.expanded }); } handleClose = () => { - this.props.onClose(this.state.id); + if (this.props.onModalClose) { + this.props.onModalClose(); + } + + this.setState({ expanded: false }); } handleKeyDown = e => { switch(e.key) { case 'Enter': - this.handleClick(e); + this.handleClick(); break; case 'Escape': this.handleClose(); @@ -189,22 +186,22 @@ export default class Dropdown extends React.PureComponent { } render () { - const { icon, items, size, title, disabled, dropdownPlacement, openDropdownId } = this.props; - const open = this.state.id === openDropdownId; + const { icon, items, size, title, disabled } = this.props; + const { expanded } = this.state; return (
    - +
    diff --git a/app/javascript/mastodon/components/extended_video_player.js b/app/javascript/mastodon/components/extended_video_player.js index 9e2f6835a8bdf9..f8bd067e8e5165 100644 --- a/app/javascript/mastodon/components/extended_video_player.js +++ b/app/javascript/mastodon/components/extended_video_player.js @@ -11,7 +11,6 @@ export default class ExtendedVideoPlayer extends React.PureComponent { time: PropTypes.number, controls: PropTypes.bool.isRequired, muted: PropTypes.bool.isRequired, - onClick: PropTypes.func, }; handleLoadedData = () => { @@ -32,12 +31,6 @@ export default class ExtendedVideoPlayer extends React.PureComponent { this.video = c; } - handleClick = e => { - e.stopPropagation(); - const handler = this.props.onClick; - if (handler) handler(); - } - render () { const { src, muted, controls, alt } = this.props; @@ -53,7 +46,6 @@ export default class ExtendedVideoPlayer extends React.PureComponent { muted={muted} controls={controls} loop={!controls} - onClick={this.handleClick} />
); diff --git a/app/javascript/mastodon/components/icon_button.js b/app/javascript/mastodon/components/icon_button.js index b96e48fd099373..06f53841d2362c 100644 --- a/app/javascript/mastodon/components/icon_button.js +++ b/app/javascript/mastodon/components/icon_button.js @@ -93,7 +93,7 @@ export default class IconButton extends React.PureComponent { return ( - {({ rotate }) => ( + {({ rotate }) =>

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 \ No newline at end of file diff --git a/app/javascript/images/elephant_ui_greeting.svg b/app/javascript/images/elephant_ui_greeting.svg deleted file mode 100644 index f3eb4b142a10f5..00000000000000 --- a/app/javascript/images/elephant_ui_greeting.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/app/javascript/images/elephant_ui_plane.svg b/app/javascript/images/elephant_ui_plane.svg deleted file mode 100644 index 4015a6f862a736..00000000000000 --- a/app/javascript/images/elephant_ui_plane.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/app/javascript/images/elephant_ui_working.svg b/app/javascript/images/elephant_ui_working.svg deleted file mode 100644 index 8ba475db0a07c4..00000000000000 --- a/app/javascript/images/elephant_ui_working.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/app/javascript/images/icon_cached.svg b/app/javascript/images/icon_cached.svg deleted file mode 100644 index 1087c43503ff5c..00000000000000 --- a/app/javascript/images/icon_cached.svg +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/app/javascript/images/icon_done.svg b/app/javascript/images/icon_done.svg deleted file mode 100644 index 446af14d9970b9..00000000000000 --- a/app/javascript/images/icon_done.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/javascript/images/icon_email.svg b/app/javascript/images/icon_email.svg deleted file mode 100644 index 6d0ad9d9ba6e80..00000000000000 --- a/app/javascript/images/icon_email.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/javascript/images/icon_file_download.svg b/app/javascript/images/icon_file_download.svg deleted file mode 100644 index 53e97e4f8af1f2..00000000000000 --- a/app/javascript/images/icon_file_download.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/javascript/images/icon_grade.svg b/app/javascript/images/icon_grade.svg deleted file mode 100644 index f48b468899a4b3..00000000000000 --- a/app/javascript/images/icon_grade.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/javascript/images/icon_lock_open.svg b/app/javascript/images/icon_lock_open.svg deleted file mode 100644 index 3288b46d673bd5..00000000000000 --- a/app/javascript/images/icon_lock_open.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/javascript/images/icon_person_add.svg b/app/javascript/images/icon_person_add.svg deleted file mode 100644 index 068b8ae7cc1615..00000000000000 --- a/app/javascript/images/icon_person_add.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/javascript/images/icon_reply.svg b/app/javascript/images/icon_reply.svg deleted file mode 100644 index cf6a09abc602a5..00000000000000 --- a/app/javascript/images/icon_reply.svg +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/app/javascript/images/logo_transparent.svg b/app/javascript/images/logo_transparent.svg deleted file mode 100644 index abd6d1f67d07e8..00000000000000 --- a/app/javascript/images/logo_transparent.svg +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/app/javascript/images/mailer/icon_cached.png b/app/javascript/images/mailer/icon_cached.png deleted file mode 100644 index 210833d3481426a35ecb300763c294e02ede20a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 582 zcmV-M0=fN(P)Mb(6oM?ag8zeoG-+aj zV4sk}2wG@k;U8cjW)0}(Soj7WkD1xG+0|-JGt7N=?$^2ZzJUe}8bq+I@O9|v}VT!lYi0{9qx za~b$C1he~fhaKCJWZ-=fPy~e_&e?t=>6WBD+b4muK)=GSfbYN);C>G88w0p4d~v2QA=X;$#qii{l*q4loN`2YvO|90=kPReCrn2VxRR($*`5cE0f&Ii&X^0h z4xBIPqavy4KxbvPqoSKp(PF^?yvzfyN##%USHz9#SG=W6q=Tb1~?*|lu`{c_Tyr5;@Z`3v@@Py7A%nC0nB z{}dOnuhad=vgW{AR=JzAwtQ6i!2W>O{Ev@K*x^QQ17>IL8kT7_I!p^ctPXR>4C*VHtv1`8$tDHL# zu^thonrCO|LN+Kz>biO(+kdS7>S4(KsB>A~b@iQkm}!>k3?z2dRW&M2TYahS7qkcJ zTlHF2^O?F+(DrN~v8B#r+S}^JIrcAXAf52F+Rk#8)#WU1SDJ>15kkHA#sR@3@Z{ zIbmR|yHF2I1D~yi)N06pFTmaN7Hic@iUhC%JgMUUe_}&0km$Q{;;cX6$mnMV8Ut6? zz`qgp-6{pvN#6HL}phZhA&$H0000< KMNUMnLSTZd&)@O@ diff --git a/app/javascript/images/mailer/icon_file_download.png b/app/javascript/images/mailer/icon_file_download.png deleted file mode 100644 index 8a6a8673bcba80ab57027efa0ed7bd8453bcec50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 271 zcmeAS@N?(olHy`uVBq!ia0vp^3LwnE1|*BCs=fdzmSQK*5Dp-y;YjHK@;M7UB8wRq zgi1h|@m`vI1yE43#5JNMI6tkVJh3R1p}f3YFEcN@I61K(RWH9NefB#WDWIYrPZ!6K zh}O4L5ArrB2(a)!K7ZuhnoC-LZg8~r#3!>@+L&CNy?%$Wd{f8g@}_U>4Q~=SR-N^e zPUvN?Xkb@iZeWbCC@`(C;a_tgB6NCJK!Cn^#}57df{E(uJ2p($R=RbPTj|zmW5M$$ z{gviTf3I}x`jh+YGq~Q>Xa=A9{44uL`aV~|nY}g_GmaO&xyjHee#I`iAbJVVT@0SC KelF{r5}E+IIAO8? diff --git a/app/javascript/images/mailer/icon_grade.png b/app/javascript/images/mailer/icon_grade.png deleted file mode 100644 index 895b57d0a479cd084589866a6d48d346b8a23a95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 541 zcmV+&0^O$%V7+Tm&7(E`W;Z9ZPUhj3m}z4crtY1Y%L zJOK&doUgh7YO4V-9ui*ASh;>BiGhTqw4~PHY7g!+5q`@+r=+Z;o8X?6bZd-x4Qnt~ zU`o=uq#i5Sgf)4H0*Is&Npr@Shp$!81)N5VIIhls?r2nK2KIj-{18aH%`5+t*{Wdp zE>Qn{@@EJGtN?E@!`A@+vjj{7PaeT9z=C&h5yY?uz_5$A>nhH9a6eWOV8{c&smB#y z&;!7!=iAdsekI>YYAO@pUQ$b`67V8=2%0D2;7yMaBce!CI?S3m}s!f~SkBfuqa9XGrKShdGpMsF(U f?T7{OuRpJMtFr%gO(CSK00000NkvXXu0mjfD1+c9 diff --git a/app/javascript/images/mailer/icon_lock_open.png b/app/javascript/images/mailer/icon_lock_open.png deleted file mode 100644 index 9f62eadc2fa86656f7279d67ba79aebdac9531e5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 550 zcmV+>0@?kEP)JUr%(1;OZ`qp&}jt9Z`x`p%PKh zD1{f`cK$^oQBt6%aQzf!WiC6+u3cOBlFgo(IeWfu=FHBXl`4kic?cMjG$U!mbzMu^ zH?ymvgoTLvfF0nKuXqKvf!;F7&pwgfyUWLEDI(m=6C42J-q-|i=#6g`O+Mx=`vK6N z;?oWsdFdD}Qoy=5yYX-QYM$R(OzgHu4MXn!U}l#gCo?;j^yr$yk+F*faN|~BH^x79 z1xiClXaMMtG%cw=W6Umh9|UG4-AOtzvzO=yKo8JJIc)Oc1n5rV3Z-C0Qa#JGf54Qa z<+OoN3TmD`_e=6*Gfrj^@Ub#xw)Y!$AThrjUM)mbp>hGi*YGC*HAxGuxnX7(ew2SwU1yY zK7rPvkiyPdD-jec5g$No)I<}A5dxn@b|u8@&m_Cp9q5+cBu zq-{yF-q5|IGc$WjLO;rU6R7c*PhdT5^Ch6w!`!C@ET&~{z*C61&m-Wr)xaK52Ff8d zr5NTu(?L4ffbls=QTsO;{VTsrNqXotG2$T7&4)v6HE3dx0JoCrG3siP?t&(>QhU$U zUUr{(|E0SR%xuGZegTJ)_9Frum{~Kl!fUu#bbXfrPD9F1fJ{Wd{sVa58n6Rg0d?A! z(j~Bk>+$Oqs4oEr25G`X2)YNH07fN^ODcLp&yrrutddFqATMc6(z2ulNriyAS4r2B zE+n0s*?T{Joq`jFGn+mYvYCZ!r5-|5^03|8@DcF^i zb6m7Aa-L@F0Qm&XeF`oCQX}p$yh*`34b34#-1z}{sb_xetc)c90000x(${t6;t)+@QcPhWt^P)DJlK??Mzlyb;TCzopr0MCGt!2kdN diff --git a/app/javascript/images/mailer/logo_full.png b/app/javascript/images/mailer/logo_full.png deleted file mode 100644 index 1c4f332872011decb9658a01e0d4d9e26500485d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3052 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 N002ovPDHLkV1nMp2l4;_ diff --git a/app/javascript/images/mastodon-drawer.png b/app/javascript/images/mastodon-drawer.png index 3f9c72df9ef12b64452cc5d6bfd8f725c3b82889..a1fb642a003b2e2b652b1e6022a84f08dc76105f 100644 GIT binary patch literal 32449 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%0Arc|r&DC@j0pAQE7yV9T$8x=q-T1FG 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 Cr$1f* literal 69988 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≥RrCL!^{aX1%u}X0h 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 literal 0 HcmV?d00001 diff --git a/app/javascript/images/reticle.png b/app/javascript/images/reticle.png deleted file mode 100644 index 998994f5c00a37ee9b422af049ba1320e98f1ce9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3053 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 ZL7pthq3q3=v{?KBcX#!q7rTTU{ttCeA~OI0 diff --git a/app/javascript/images/wave-drawer.png b/app/javascript/images/wave-drawer.png new file mode 100644 index 0000000000000000000000000000000000000000..ca9f9e1d85d222e7bf80649c55783db928cc79d4 GIT binary patch literal 3269 zcmV;$3_A0PP)001ut1^@s6g=d3U000U7X+uL$Nkc;* zaB^>EX>4Tx07!|ImUmPXSsKM(Rp&%%Xfiah$vGp?EXLrxe*|WFK_v&}P^Ui(m)%&9^03-)i za&jUp1V9oujpyrZM-L7OrQ@Ce67q-u9MEL3Q3mz zB+Q9QWg|A;2uE^K*+~eWMOcHK%u7R<<8*%wq9k03b#neR>8v2Js>0BCN;d#BmWmg|Ia{mc>DM0b#AAq|FGEWDr)1 z{1=~?fAfs|=E-8keB-sVd==h5Dm5*NuK$02j{mKs#PmPcSpDkcC~kls@)kf!2Ka+0 zkP6a}kq(fh)1tD{RwvqTPTs>}-;JEv?ysKOApnGE09?P$PUmH;^;WM7U;q&a0#P6d;wg%2n4*SC!;TSjt z&W7{hy>JCw2cLjD;4APgcns#lFW^NKK#@>1lmbc{Wrngxd7(m4(I_5jJE{;>j;ceo zqPkK2s5>Y=Y993gjYU(@bhI|w677NxK(o;)=nxirdsz0W?7SRJjwu%}S0;B!Zcd&mZ!I4uUnYN9 z{yANYZc9(3SJ3>SGXkoO>wYXY!S`*r2ZCmXO?H27x9h#1ZPM%Ju z&P!co-B8{Ay8XIe^o;cq^^WU3)ECir)6diI)_-lFVZb)1GPr9!z#}tyosIR(xx^b%gbg)_fZU8$Fpm_V!QC3ld$!)gVYPUn%Be(bNP}-5dV>;J4w{a(NXTr{3^7Qgb z^WN?X+SQ#eo1dFM^_}x~Ed>Gvyn>0{mb+`dM}Hsp{m>r6J%{&vDdZI1EYd3~FZxu> zF24DL{tp#Dtn7{6J5*v)a&#YdA9vsQew+P`rNX7zrBeqy4|J5#%L>ch9t=M?P;OLS zbBK5-{Sd#xqoV7u^5K1lKUKz7j#b%JwN=Yh@2Oro!Z|W}lzFtZMz*G?=HriXKi;c# zuI;E(tt&rR{Xd!g)Ko83UsV6Of!n}u^lj{GGHq&VmT4|&fm_mB=1zp2 z7(VH6va40QwYH7cR&)xSNUL^-VF%Q)rDLHpwv*o# z(lv6X&LS&;G&uV{jpOVfq#C)ynJQH1b@ z$@h&P%s%vg4Ei{;ocRg&sp7Nx=k71=UmmR_t*j)oc&x8c0EHAB9Sy+i1^_4_08odK z{2;KF$NtPR(^}tB&EN1^X8S4=0BUmq2w?&cgj5YujMW&_1AsTe{!9R;D}JkgDmB{B zV9krviA0m~m6bO^0N~UC_&l+)vfR0{^0^+_>;nLL-mT@pRmmZlGpO+#zSV*mgGgGod|RCwC$+)HlUKn#T8w2+f{J5XdXm-p z{^bB86)CdVtN9tshCNPSPr(2!; zPixn@{!aH1T7NR0b1%}%>)SiC%xH#6<4L>@Y34rViqZtWR(FD#C)LE(2Cj}FP489x zx0t~9jOnwU?m2%(U-uk$uah*rYtFw{rwMEVTa`5&j9167M{iZWw`ks~btE@L;)SYi z^Rbl{it)SJ(Ts}h@L5-G<`G@7bD zNxFAC+ikFMVgj4M6?!XwQQvy*^hfDD zMz>w-IQ##zCh)vkx9aWEJkM(H+U#p`Um3&N8mZ3rS9-^@qLLdTP5)N2OwilSbpEA1 zVKwwj?voZPU5DscBg_OgfwyYzY&svcC;ph3V)kh@@=@ item.get('id')), + media_ids: getState().getIn(['compose', 'media_attachments']).map(item => item.get('id')), sensitive: getState().getIn(['compose', 'sensitive']), spoiler_text: getState().getIn(['compose', 'spoiler_text'], ''), visibility: getState().getIn(['compose', 'privacy']), @@ -116,7 +111,6 @@ export function submitCompose() { 'Idempotency-Key': getState().getIn(['compose', 'idempotencyKey']), }, }).then(function (response) { - dispatch(insertIntoTagHistory(response.data.tags)); dispatch(submitComposeSuccess({ ...response.data })); // To make the app more responsive, immediately get the status into the columns @@ -184,11 +178,11 @@ export function uploadCompose(files) { }; }; -export function changeUploadCompose(id, params) { +export function changeUploadCompose(id, description) { return (dispatch, getState) => { dispatch(changeUploadComposeRequest()); - api(getState).put(`/api/v1/media/${id}`, params).then(response => { + api(getState).put(`/api/v1/media/${id}`, { description }).then(response => { dispatch(changeUploadComposeSuccess(response.data)); }).catch(error => { dispatch(changeUploadComposeFail(id, error)); @@ -279,22 +273,12 @@ const fetchComposeSuggestionsEmojis = (dispatch, getState, token) => { dispatch(readyComposeSuggestionsEmojis(token, results)); }; -const fetchComposeSuggestionsTags = (dispatch, getState, token) => { - dispatch(updateSuggestionTags(token)); -}; - export function fetchComposeSuggestions(token) { return (dispatch, getState) => { - switch (token[0]) { - case ':': + if (token[0] === ':') { fetchComposeSuggestionsEmojis(dispatch, getState, token); - break; - case '#': - fetchComposeSuggestionsTags(dispatch, getState, token); - break; - default: + } else { fetchComposeSuggestionsAccounts(dispatch, getState, token); - break; } }; }; @@ -324,9 +308,6 @@ export function selectComposeSuggestion(position, token, suggestion) { startPosition = position - 1; dispatch(useEmoji(suggestion)); - } else if (suggestion[0] === '#') { - completion = suggestion; - startPosition = position - 1; } else { completion = getState().getIn(['accounts', suggestion, 'acct']); startPosition = position; @@ -341,48 +322,6 @@ export function selectComposeSuggestion(position, token, suggestion) { }; }; -export function updateSuggestionTags(token) { - return { - type: COMPOSE_SUGGESTION_TAGS_UPDATE, - token, - }; -} - -export function updateTagHistory(tags) { - return { - type: COMPOSE_TAG_HISTORY_UPDATE, - tags, - }; -} - -export function hydrateCompose() { - return (dispatch, getState) => { - const me = getState().getIn(['meta', 'me']); - const history = tagHistory.get(me); - - if (history !== null) { - dispatch(updateTagHistory(history)); - } - }; -} - -function insertIntoTagHistory(tags) { - return (dispatch, getState) => { - const state = getState(); - const oldHistory = state.getIn(['compose', 'tagHistory']); - const me = state.getIn(['meta', 'me']); - const names = tags.map(({ name }) => name); - const intersectedOldHistory = oldHistory.filter(name => !names.includes(name)); - - names.push(...intersectedOldHistory.toJS()); - - const newHistory = names.slice(0, 1000); - - tagHistory.set(me, newHistory); - dispatch(updateTagHistory(newHistory)); - }; -} - export function mountCompose() { return { type: COMPOSE_MOUNT, diff --git a/app/javascript/mastodon/actions/dropdown_menu.js b/app/javascript/mastodon/actions/dropdown_menu.js deleted file mode 100644 index 217ba4e74a58a8..00000000000000 --- a/app/javascript/mastodon/actions/dropdown_menu.js +++ /dev/null @@ -1,10 +0,0 @@ -export const DROPDOWN_MENU_OPEN = 'DROPDOWN_MENU_OPEN'; -export const DROPDOWN_MENU_CLOSE = 'DROPDOWN_MENU_CLOSE'; - -export function openDropdownMenu(id, placement) { - return { type: DROPDOWN_MENU_OPEN, id, placement }; -} - -export function closeDropdownMenu(id) { - return { type: DROPDOWN_MENU_CLOSE, id }; -} diff --git a/app/javascript/mastodon/actions/notifications.js b/app/javascript/mastodon/actions/notifications.js index 502690045dba42..b24ac8b733858b 100644 --- a/app/javascript/mastodon/actions/notifications.js +++ b/app/javascript/mastodon/actions/notifications.js @@ -31,7 +31,7 @@ const fetchRelatedRelationships = (dispatch, notifications) => { const unescapeHTML = (html) => { const wrapper = document.createElement('div'); - html = html.replace(/
|
|\n/g, ' '); + html = html.replace(/
|
|\n/, ' '); wrapper.innerHTML = html; return wrapper.textContent; }; diff --git a/app/javascript/mastodon/actions/push_notifications/index.js b/app/javascript/mastodon/actions/push_notifications/index.js index 2ffec500a9573e..376b55b625f201 100644 --- a/app/javascript/mastodon/actions/push_notifications/index.js +++ b/app/javascript/mastodon/actions/push_notifications/index.js @@ -15,9 +15,9 @@ export { register, }; -export function changeAlerts(path, value) { +export function changeAlerts(key, value) { return dispatch => { - dispatch(setAlerts(path, value)); + dispatch(setAlerts(key, value)); dispatch(saveSettings()); }; } diff --git a/app/javascript/mastodon/actions/push_notifications/registerer.js b/app/javascript/mastodon/actions/push_notifications/registerer.js index 51e68cad1403ff..1d040bc8c8f0f3 100644 --- a/app/javascript/mastodon/actions/push_notifications/registerer.js +++ b/app/javascript/mastodon/actions/push_notifications/registerer.js @@ -1,7 +1,6 @@ -import api from '../../api'; +import axios from 'axios'; import { pushNotificationsSetting } from '../../settings'; import { setBrowserSupport, setSubscription, clearSubscription } from './setter'; -import { me } from '../../initial_state'; // Taken from https://www.npmjs.com/package/web-push const urlBase64ToUint8Array = (base64String) => { @@ -36,7 +35,7 @@ const subscribe = (registration) => const unsubscribe = ({ registration, subscription }) => subscription ? subscription.unsubscribe().then(() => registration) : registration; -const sendSubscriptionToBackend = (getState, subscription) => { +const sendSubscriptionToBackend = (subscription, me) => { const params = { subscription }; if (me) { @@ -46,7 +45,7 @@ const sendSubscriptionToBackend = (getState, subscription) => { } } - return api(getState).post('/api/web/push_subscriptions', params).then(response => response.data); + return axios.post('/api/web/push_subscriptions', params).then(response => response.data); }; // Last one checks for payload support: https://web-push-book.gauntface.com/chapter-06/01-non-standards-browsers/#no-payload @@ -55,6 +54,7 @@ const supportsPushNotifications = ('serviceWorker' in navigator && 'PushManager' export function register () { return (dispatch, getState) => { dispatch(setBrowserSupport(supportsPushNotifications)); + const me = getState().getIn(['meta', 'me']); if (me && !pushNotificationsSetting.get(me)) { const alerts = getState().getIn(['push_notifications', 'alerts']); @@ -85,13 +85,13 @@ export function register () { } else { // Something went wrong, try to subscribe again return unsubscribe({ registration, subscription }).then(subscribe).then( - subscription => sendSubscriptionToBackend(getState, subscription)); + subscription => sendSubscriptionToBackend(subscription, me)); } } // No subscription, try to subscribe return subscribe(registration).then( - subscription => sendSubscriptionToBackend(getState, subscription)); + subscription => sendSubscriptionToBackend(subscription, me)); }) .then(subscription => { // If we got a PushSubscription (and not a subscription object from the backend) @@ -137,9 +137,10 @@ export function saveSettings() { const alerts = state.get('alerts'); const data = { alerts }; - api(getState).put(`/api/web/push_subscriptions/${subscription.get('id')}`, { + axios.put(`/api/web/push_subscriptions/${subscription.get('id')}`, { data, }).then(() => { + const me = getState().getIn(['meta', 'me']); if (me) { pushNotificationsSetting.set(me, data); } diff --git a/app/javascript/mastodon/actions/push_notifications/setter.js b/app/javascript/mastodon/actions/push_notifications/setter.js index 5561766bff42b3..a2cc41c5a3bbf8 100644 --- a/app/javascript/mastodon/actions/push_notifications/setter.js +++ b/app/javascript/mastodon/actions/push_notifications/setter.js @@ -23,11 +23,11 @@ export function clearSubscription () { }; } -export function setAlerts (path, value) { +export function setAlerts (key, value) { return dispatch => { dispatch({ type: SET_ALERTS, - path, + key, value, }); }; diff --git a/app/javascript/mastodon/actions/reports.js b/app/javascript/mastodon/actions/reports.js index afa0c341218b4b..b19a07285bd1c0 100644 --- a/app/javascript/mastodon/actions/reports.js +++ b/app/javascript/mastodon/actions/reports.js @@ -10,7 +10,6 @@ export const REPORT_SUBMIT_FAIL = 'REPORT_SUBMIT_FAIL'; export const REPORT_STATUS_TOGGLE = 'REPORT_STATUS_TOGGLE'; export const REPORT_COMMENT_CHANGE = 'REPORT_COMMENT_CHANGE'; -export const REPORT_FORWARD_CHANGE = 'REPORT_FORWARD_CHANGE'; export function initReport(account, status) { return dispatch => { @@ -46,7 +45,6 @@ export function submitReport() { account_id: getState().getIn(['reports', 'new', 'account_id']), status_ids: getState().getIn(['reports', 'new', 'status_ids']), comment: getState().getIn(['reports', 'new', 'comment']), - forward: getState().getIn(['reports', 'new', 'forward']), }).then(response => { dispatch(closeModal()); dispatch(submitReportSuccess(response.data)); @@ -80,10 +78,3 @@ export function changeReportComment(comment) { comment, }; }; - -export function changeReportForward(forward) { - return { - type: REPORT_FORWARD_CHANGE, - forward, - }; -}; diff --git a/app/javascript/mastodon/actions/search.js b/app/javascript/mastodon/actions/search.js index 73cb106ec4f831..78c6109f7291ad 100644 --- a/app/javascript/mastodon/actions/search.js +++ b/app/javascript/mastodon/actions/search.js @@ -1,5 +1,4 @@ import api from '../api'; -import { fetchRelationships } from './accounts'; export const SEARCH_CHANGE = 'SEARCH_CHANGE'; export const SEARCH_CLEAR = 'SEARCH_CLEAR'; @@ -39,7 +38,6 @@ export function submitSearch() { }, }).then(response => { dispatch(fetchSearchSuccess(response.data)); - dispatch(fetchRelationships(response.data.accounts.map(item => item.id))); }).catch(error => { dispatch(fetchSearchFail(error)); }); diff --git a/app/javascript/mastodon/actions/settings.js b/app/javascript/mastodon/actions/settings.js index b96383daa2f7f5..79adca18c6ea90 100644 --- a/app/javascript/mastodon/actions/settings.js +++ b/app/javascript/mastodon/actions/settings.js @@ -1,14 +1,14 @@ -import api from '../api'; +import axios from 'axios'; import { debounce } from 'lodash'; export const SETTING_CHANGE = 'SETTING_CHANGE'; export const SETTING_SAVE = 'SETTING_SAVE'; -export function changeSetting(path, value) { +export function changeSetting(key, value) { return dispatch => { dispatch({ type: SETTING_CHANGE, - path, + key, value, }); @@ -21,9 +21,9 @@ const debouncedSave = debounce((dispatch, getState) => { return; } - const data = getState().get('settings').filter((_, path) => path !== 'saved').toJS(); + const data = getState().get('settings').filter((_, key) => key !== 'saved').toJS(); - api(getState).put('/api/web/settings', { data }).then(() => dispatch({ type: SETTING_SAVE })); + axios.put('/api/web/settings', { data }).then(() => dispatch({ type: SETTING_SAVE })); }, 5000, { trailing: true }); export function saveSettings() { diff --git a/app/javascript/mastodon/actions/store.js b/app/javascript/mastodon/actions/store.js index 2dd94a9983268f..a1db0fdd51c60c 100644 --- a/app/javascript/mastodon/actions/store.js +++ b/app/javascript/mastodon/actions/store.js @@ -1,5 +1,4 @@ import { Iterable, fromJS } from 'immutable'; -import { hydrateCompose } from './compose'; export const STORE_HYDRATE = 'STORE_HYDRATE'; export const STORE_HYDRATE_LAZY = 'STORE_HYDRATE_LAZY'; @@ -9,14 +8,10 @@ const convertState = rawState => Iterable.isIndexed(v) ? v.toList() : v.toMap()); export function hydrateStore(rawState) { - return dispatch => { - const state = convertState(rawState); + const state = convertState(rawState); - dispatch({ - type: STORE_HYDRATE, - state, - }); - - dispatch(hydrateCompose()); + return { + type: STORE_HYDRATE, + state, }; }; diff --git a/app/javascript/mastodon/actions/timelines.js b/app/javascript/mastodon/actions/timelines.js index f0ab16a2d76852..f8843d1d90241a 100644 --- a/app/javascript/mastodon/actions/timelines.js +++ b/app/javascript/mastodon/actions/timelines.js @@ -19,14 +19,13 @@ export const TIMELINE_DISCONNECT = 'TIMELINE_DISCONNECT'; export const TIMELINE_CONTEXT_UPDATE = 'CONTEXT_UPDATE'; -export function refreshTimelineSuccess(timeline, statuses, skipLoading, next, partial) { +export function refreshTimelineSuccess(timeline, statuses, skipLoading, next) { return { type: TIMELINE_REFRESH_SUCCESS, timeline, statuses, skipLoading, next, - partial, }; }; @@ -89,7 +88,7 @@ export function refreshTimeline(timelineId, path, params = {}) { return function (dispatch, getState) { const timeline = getState().getIn(['timelines', timelineId], ImmutableMap()); - if (timeline.get('isLoading') || (timeline.get('online') && !timeline.get('isPartial'))) { + if (timeline.get('isLoading') || timeline.get('online')) { return; } @@ -105,26 +104,21 @@ export function refreshTimeline(timelineId, path, params = {}) { dispatch(refreshTimelineRequest(timelineId, skipLoading)); api(getState).get(path, { params }).then(response => { - if (response.status === 206) { - dispatch(refreshTimelineSuccess(timelineId, [], skipLoading, null, true)); - } else { - const next = getLinks(response).refs.find(link => link.rel === 'next'); - dispatch(refreshTimelineSuccess(timelineId, response.data, skipLoading, next ? next.uri : null, false)); - } + const next = getLinks(response).refs.find(link => link.rel === 'next'); + dispatch(refreshTimelineSuccess(timelineId, response.data, skipLoading, next ? next.uri : null)); }).catch(error => { dispatch(refreshTimelineFail(timelineId, error, skipLoading)); }); }; }; -export const refreshHomeTimeline = () => refreshTimeline('home', '/api/v1/timelines/home'); -export const refreshPublicTimeline = () => refreshTimeline('public', '/api/v1/timelines/public'); -export const refreshCommunityTimeline = () => refreshTimeline('community', '/api/v1/timelines/public', { local: true }); -export const refreshAccountTimeline = (accountId, withReplies) => refreshTimeline(`account:${accountId}${withReplies ? ':with_replies' : ''}`, `/api/v1/accounts/${accountId}/statuses`, { exclude_replies: !withReplies }); -export const refreshAccountFeaturedTimeline = accountId => refreshTimeline(`account:${accountId}:pinned`, `/api/v1/accounts/${accountId}/statuses`, { pinned: true }); -export const refreshAccountMediaTimeline = accountId => refreshTimeline(`account:${accountId}:media`, `/api/v1/accounts/${accountId}/statuses`, { only_media: true }); -export const refreshHashtagTimeline = hashtag => refreshTimeline(`hashtag:${hashtag}`, `/api/v1/timelines/tag/${hashtag}`); -export const refreshListTimeline = id => refreshTimeline(`list:${id}`, `/api/v1/timelines/list/${id}`); +export const refreshHomeTimeline = () => refreshTimeline('home', '/api/v1/timelines/home'); +export const refreshPublicTimeline = () => refreshTimeline('public', '/api/v1/timelines/public'); +export const refreshCommunityTimeline = () => refreshTimeline('community', '/api/v1/timelines/public', { local: true }); +export const refreshAccountTimeline = accountId => refreshTimeline(`account:${accountId}`, `/api/v1/accounts/${accountId}/statuses`); +export const refreshAccountMediaTimeline = accountId => refreshTimeline(`account:${accountId}:media`, `/api/v1/accounts/${accountId}/statuses`, { only_media: true }); +export const refreshHashtagTimeline = hashtag => refreshTimeline(`hashtag:${hashtag}`, `/api/v1/timelines/tag/${hashtag}`); +export const refreshListTimeline = id => refreshTimeline(`list:${id}`, `/api/v1/timelines/list/${id}`); export function refreshTimelineFail(timeline, error, skipLoading) { return { @@ -162,7 +156,7 @@ export function expandTimeline(timelineId, path, params = {}) { export const expandHomeTimeline = () => expandTimeline('home', '/api/v1/timelines/home'); export const expandPublicTimeline = () => expandTimeline('public', '/api/v1/timelines/public'); export const expandCommunityTimeline = () => expandTimeline('community', '/api/v1/timelines/public', { local: true }); -export const expandAccountTimeline = (accountId, withReplies) => expandTimeline(`account:${accountId}${withReplies ? ':with_replies' : ''}`, `/api/v1/accounts/${accountId}/statuses`, { exclude_replies: !withReplies }); +export const expandAccountTimeline = accountId => expandTimeline(`account:${accountId}`, `/api/v1/accounts/${accountId}/statuses`); export const expandAccountMediaTimeline = accountId => expandTimeline(`account:${accountId}:media`, `/api/v1/accounts/${accountId}/statuses`, { only_media: true }); export const expandHashtagTimeline = hashtag => expandTimeline(`hashtag:${hashtag}`, `/api/v1/timelines/tag/${hashtag}`); export const expandListTimeline = id => expandTimeline(`list:${id}`, `/api/v1/timelines/list/${id}`); diff --git a/app/javascript/mastodon/api.js b/app/javascript/mastodon/api.js index 0be08d7fdd8fdd..ecc703c0aa36a6 100644 --- a/app/javascript/mastodon/api.js +++ b/app/javascript/mastodon/api.js @@ -1,5 +1,4 @@ import axios from 'axios'; -import ready from './ready'; import LinkHeader from './link_header'; export const getLinks = response => { @@ -12,17 +11,10 @@ export const getLinks = response => { return LinkHeader.parse(value); }; -let csrfHeader = {}; -function setCSRFHeader() { - const csrfToken = document.querySelector('meta[name=csrf-token]').content; - csrfHeader['X-CSRF-Token'] = csrfToken; -} -ready(setCSRFHeader); - export default getState => axios.create({ - headers: Object.assign(csrfHeader, getState ? { + headers: { 'Authorization': `Bearer ${getState().getIn(['meta', 'access_token'], '')}`, - } : {}), + }, transformResponse: [function (data) { try { diff --git a/app/javascript/mastodon/base_polyfills.js b/app/javascript/mastodon/base_polyfills.js index 8fbb17785811c5..7856b26f9d8860 100644 --- a/app/javascript/mastodon/base_polyfills.js +++ b/app/javascript/mastodon/base_polyfills.js @@ -3,7 +3,6 @@ import 'intl/locale-data/jsonp/en'; import 'es6-symbol/implement'; import includes from 'array-includes'; import assign from 'object-assign'; -import values from 'object.values'; import isNaN from 'is-nan'; if (!Array.prototype.includes) { @@ -14,10 +13,6 @@ if (!Object.assign) { Object.assign = assign; } -if (!Object.values) { - values.shim(); -} - if (!Number.isNaN) { Number.isNaN = isNaN; } diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.js.snap index 29fdc2412db4fc..533359ffea0763 100644 --- a/app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.js.snap +++ b/app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.js.snap @@ -4,16 +4,14 @@ exports[` renders display name + account name 1`] = ` - - Foo