diff --git a/app/javascript/mastodon/actions/compose.js b/app/javascript/mastodon/actions/compose.js index 6b73fc90e09a1..8687ef0e733be 100644 --- a/app/javascript/mastodon/actions/compose.js +++ b/app/javascript/mastodon/actions/compose.js @@ -172,7 +172,6 @@ export function submitCompose(routerHistory) { } if (response.data.in_reply_to_id === null && response.data.visibility === 'public') { - insertIfOnline('community'); insertIfOnline('public'); } }).catch(function (error) { diff --git a/app/javascript/mastodon/actions/streaming.js b/app/javascript/mastodon/actions/streaming.js index 080d665f4eaf8..72384e8aae924 100644 --- a/app/javascript/mastodon/actions/streaming.js +++ b/app/javascript/mastodon/actions/streaming.js @@ -72,7 +72,6 @@ const refreshHomeTimelineAndNotification = (dispatch, done) => { }; export const connectUserStream = () => connectTimelineStream('home', 'user', refreshHomeTimelineAndNotification); -export const connectCommunityStream = ({ onlyMedia } = {}) => connectTimelineStream(`community${onlyMedia ? ':media' : ''}`, `public:local${onlyMedia ? ':media' : ''}`); export const connectPublicStream = ({ onlyMedia, onlyRemote } = {}) => connectTimelineStream(`public${onlyRemote ? ':remote' : ''}${onlyMedia ? ':media' : ''}`, `public${onlyRemote ? ':remote' : ''}${onlyMedia ? ':media' : ''}`); export const connectHashtagStream = (id, tag, accept) => connectTimelineStream(`hashtag:${id}`, `hashtag&tag=${tag}`, null, accept); export const connectDirectStream = () => connectTimelineStream('direct', 'direct'); diff --git a/app/javascript/mastodon/actions/timelines.js b/app/javascript/mastodon/actions/timelines.js index 01f0fb015177d..23e6ee3390c86 100644 --- a/app/javascript/mastodon/actions/timelines.js +++ b/app/javascript/mastodon/actions/timelines.js @@ -108,7 +108,6 @@ export function expandTimeline(timelineId, path, params = {}, done = noOp) { export const expandHomeTimeline = ({ maxId } = {}, done = noOp) => expandTimeline('home', '/api/v1/timelines/home', { max_id: maxId }, done); export const expandPublicTimeline = ({ maxId, onlyMedia, onlyRemote } = {}, done = noOp) => expandTimeline(`public${onlyRemote ? ':remote' : ''}${onlyMedia ? ':media' : ''}`, '/api/v1/timelines/public', { remote: !!onlyRemote, max_id: maxId, only_media: !!onlyMedia }, done); -export const expandCommunityTimeline = ({ maxId, onlyMedia } = {}, done = noOp) => expandTimeline(`community${onlyMedia ? ':media' : ''}`, '/api/v1/timelines/public', { local: true, max_id: maxId, only_media: !!onlyMedia }, done); export const expandAccountTimeline = (accountId, { maxId, withReplies } = {}) => expandTimeline(`account:${accountId}${withReplies ? ':with_replies' : ''}`, `/api/v1/accounts/${accountId}/statuses`, { exclude_replies: !withReplies, max_id: maxId }); export const expandAccountFeaturedTimeline = accountId => expandTimeline(`account:${accountId}:pinned`, `/api/v1/accounts/${accountId}/statuses`, { pinned: true }); export const expandAccountMediaTimeline = (accountId, { maxId } = {}) => expandTimeline(`account:${accountId}:media`, `/api/v1/accounts/${accountId}/statuses`, { max_id: maxId, only_media: true, limit: 40 }); diff --git a/app/javascript/mastodon/features/community_timeline/components/column_settings.js b/app/javascript/mastodon/features/community_timeline/components/column_settings.js deleted file mode 100644 index 0cb6db8836b9b..0000000000000 --- a/app/javascript/mastodon/features/community_timeline/components/column_settings.js +++ /dev/null @@ -1,29 +0,0 @@ -import React from 'react'; -import PropTypes from 'prop-types'; -import ImmutablePropTypes from 'react-immutable-proptypes'; -import { injectIntl, FormattedMessage } from 'react-intl'; -import SettingToggle from '../../notifications/components/setting_toggle'; - -export default @injectIntl -class ColumnSettings extends React.PureComponent { - - static propTypes = { - settings: ImmutablePropTypes.map.isRequired, - onChange: PropTypes.func.isRequired, - intl: PropTypes.object.isRequired, - columnId: PropTypes.string, - }; - - render () { - const { settings, onChange } = this.props; - - return ( -
-
- } /> -
-
- ); - } - -} diff --git a/app/javascript/mastodon/features/community_timeline/containers/column_settings_container.js b/app/javascript/mastodon/features/community_timeline/containers/column_settings_container.js deleted file mode 100644 index 405064c3fcba3..0000000000000 --- a/app/javascript/mastodon/features/community_timeline/containers/column_settings_container.js +++ /dev/null @@ -1,28 +0,0 @@ -import { connect } from 'react-redux'; -import ColumnSettings from '../components/column_settings'; -import { changeSetting } from '../../../actions/settings'; -import { changeColumnParams } from '../../../actions/columns'; - -const mapStateToProps = (state, { columnId }) => { - const uuid = columnId; - const columns = state.getIn(['settings', 'columns']); - const index = columns.findIndex(c => c.get('uuid') === uuid); - - return { - settings: (uuid && index >= 0) ? columns.get(index).get('params') : state.getIn(['settings', 'community']), - }; -}; - -const mapDispatchToProps = (dispatch, { columnId }) => { - return { - onChange (key, checked) { - if (columnId) { - dispatch(changeColumnParams(columnId, key, checked)); - } else { - dispatch(changeSetting(['community', ...key], checked)); - } - }, - }; -}; - -export default connect(mapStateToProps, mapDispatchToProps)(ColumnSettings); diff --git a/app/javascript/mastodon/features/community_timeline/index.js b/app/javascript/mastodon/features/community_timeline/index.js deleted file mode 100644 index b3cd39685cd79..0000000000000 --- a/app/javascript/mastodon/features/community_timeline/index.js +++ /dev/null @@ -1,137 +0,0 @@ -import React from 'react'; -import { connect } from 'react-redux'; -import { defineMessages, injectIntl, FormattedMessage } from 'react-intl'; -import PropTypes from 'prop-types'; -import StatusListContainer from '../ui/containers/status_list_container'; -import Column from '../../components/column'; -import ColumnHeader from '../../components/column_header'; -import { expandCommunityTimeline } from '../../actions/timelines'; -import { addColumn, removeColumn, moveColumn } from '../../actions/columns'; -import ColumnSettingsContainer from './containers/column_settings_container'; -import { connectCommunityStream } from '../../actions/streaming'; - -const messages = defineMessages({ - title: { id: 'column.community', defaultMessage: 'Local timeline' }, -}); - -const mapStateToProps = (state, { columnId }) => { - const uuid = columnId; - const columns = state.getIn(['settings', 'columns']); - const index = columns.findIndex(c => c.get('uuid') === uuid); - const onlyMedia = (columnId && index >= 0) ? columns.get(index).getIn(['params', 'other', 'onlyMedia']) : state.getIn(['settings', 'community', 'other', 'onlyMedia']); - const timelineState = state.getIn(['timelines', `community${onlyMedia ? ':media' : ''}`]); - - return { - hasUnread: !!timelineState && timelineState.get('unread') > 0, - onlyMedia, - }; -}; - -export default @connect(mapStateToProps) -@injectIntl -class CommunityTimeline extends React.PureComponent { - - static contextTypes = { - router: PropTypes.object, - }; - - static defaultProps = { - onlyMedia: false, - }; - - static propTypes = { - dispatch: PropTypes.func.isRequired, - shouldUpdateScroll: PropTypes.func, - columnId: PropTypes.string, - intl: PropTypes.object.isRequired, - hasUnread: PropTypes.bool, - multiColumn: PropTypes.bool, - onlyMedia: PropTypes.bool, - }; - - handlePin = () => { - const { columnId, dispatch, onlyMedia } = this.props; - - if (columnId) { - dispatch(removeColumn(columnId)); - } else { - dispatch(addColumn('COMMUNITY', { other: { onlyMedia } })); - } - } - - handleMove = (dir) => { - const { columnId, dispatch } = this.props; - dispatch(moveColumn(columnId, dir)); - } - - handleHeaderClick = () => { - this.column.scrollTop(); - } - - componentDidMount () { - const { dispatch, onlyMedia } = this.props; - - dispatch(expandCommunityTimeline({ onlyMedia })); - this.disconnect = dispatch(connectCommunityStream({ onlyMedia })); - } - - componentDidUpdate (prevProps) { - if (prevProps.onlyMedia !== this.props.onlyMedia) { - const { dispatch, onlyMedia } = this.props; - - this.disconnect(); - dispatch(expandCommunityTimeline({ onlyMedia })); - this.disconnect = dispatch(connectCommunityStream({ onlyMedia })); - } - } - - componentWillUnmount () { - if (this.disconnect) { - this.disconnect(); - this.disconnect = null; - } - } - - setRef = c => { - this.column = c; - } - - handleLoadMore = maxId => { - const { dispatch, onlyMedia } = this.props; - - dispatch(expandCommunityTimeline({ maxId, onlyMedia })); - } - - render () { - const { intl, shouldUpdateScroll, hasUnread, columnId, multiColumn, onlyMedia } = this.props; - const pinned = !!columnId; - - return ( - - - - - - } - shouldUpdateScroll={shouldUpdateScroll} - bindToDocument={!multiColumn} - /> - - ); - } - -} diff --git a/app/javascript/mastodon/features/compose/index.js b/app/javascript/mastodon/features/compose/index.js index e2de8b0e6a20d..5455aa809912f 100644 --- a/app/javascript/mastodon/features/compose/index.js +++ b/app/javascript/mastodon/features/compose/index.js @@ -23,7 +23,6 @@ const messages = defineMessages({ home_timeline: { id: 'tabs_bar.home', defaultMessage: 'Home' }, notifications: { id: 'tabs_bar.notifications', defaultMessage: 'Notifications' }, public: { id: 'navigation_bar.public_timeline', defaultMessage: 'Federated timeline' }, - community: { id: 'navigation_bar.community_timeline', defaultMessage: 'Local timeline' }, preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' }, logout: { id: 'navigation_bar.logout', defaultMessage: 'Logout' }, compose: { id: 'navigation_bar.compose', defaultMessage: 'Compose new toot' }, @@ -104,9 +103,6 @@ class Compose extends React.PureComponent { {!columns.some(column => column.get('id') === 'NOTIFICATIONS') && ( )} - {!columns.some(column => column.get('id') === 'COMMUNITY') && ( - - )} {!columns.some(column => column.get('id') === 'PUBLIC') && ( )} diff --git a/app/javascript/mastodon/features/getting_started/index.js b/app/javascript/mastodon/features/getting_started/index.js index d9838e1c7390b..d75ca6df20a83 100644 --- a/app/javascript/mastodon/features/getting_started/index.js +++ b/app/javascript/mastodon/features/getting_started/index.js @@ -20,7 +20,6 @@ const messages = defineMessages({ notifications: { id: 'tabs_bar.notifications', defaultMessage: 'Notifications' }, public_timeline: { id: 'navigation_bar.public_timeline', defaultMessage: 'Federated timeline' }, settings_subheading: { id: 'column_subheading.settings', defaultMessage: 'Settings' }, - community_timeline: { id: 'navigation_bar.community_timeline', defaultMessage: 'Local timeline' }, direct: { id: 'navigation_bar.direct', defaultMessage: 'Direct messages' }, bookmarks: { id: 'navigation_bar.bookmarks', defaultMessage: 'Bookmarks' }, preferences: { id: 'navigation_bar.preferences', defaultMessage: 'Preferences' }, @@ -98,11 +97,10 @@ class GettingStarted extends ImmutablePureComponent { if (multiColumn) { navItems.push( , - , , ); - height += 34 + 48*2; + height += 34 + 48; if (profile_directory) { navItems.push( diff --git a/app/javascript/mastodon/features/introduction/index.js b/app/javascript/mastodon/features/introduction/index.js index 754477bb992df..a961d3b976710 100644 --- a/app/javascript/mastodon/features/introduction/index.js +++ b/app/javascript/mastodon/features/introduction/index.js @@ -44,11 +44,6 @@ const FrameFederation = ({ onNext }) => (

-
-

-

-
-

diff --git a/app/javascript/mastodon/features/keyboard_shortcuts/index.js b/app/javascript/mastodon/features/keyboard_shortcuts/index.js index 666baf621f9b4..64889bcd4ece2 100644 --- a/app/javascript/mastodon/features/keyboard_shortcuts/index.js +++ b/app/javascript/mastodon/features/keyboard_shortcuts/index.js @@ -108,10 +108,6 @@ class KeyboardShortcuts extends ImmutablePureComponent { g+n - - g+l - - g+t diff --git a/app/javascript/mastodon/features/standalone/public_timeline/index.js b/app/javascript/mastodon/features/standalone/public_timeline/index.js index 19b0b14be6a35..486ba3de89d37 100644 --- a/app/javascript/mastodon/features/standalone/public_timeline/index.js +++ b/app/javascript/mastodon/features/standalone/public_timeline/index.js @@ -2,15 +2,15 @@ import React from 'react'; import { connect } from 'react-redux'; import PropTypes from 'prop-types'; import ImmutablePropTypes from 'react-immutable-proptypes'; -import { expandPublicTimeline, expandCommunityTimeline } from 'mastodon/actions/timelines'; +import { expandPublicTimeline } from 'mastodon/actions/timelines'; import Masonry from 'react-masonry-infinite'; import { List as ImmutableList, Map as ImmutableMap } from 'immutable'; import DetailedStatusContainer from 'mastodon/features/status/containers/detailed_status_container'; import { debounce } from 'lodash'; import LoadingIndicator from 'mastodon/components/loading_indicator'; -const mapStateToProps = (state, { local }) => { - const timeline = state.getIn(['timelines', local ? 'community' : 'public'], ImmutableMap()); +const mapStateToProps = (state) => { + const timeline = state.getIn(['timelines', 'public'], ImmutableMap()); return { statusIds: timeline.get('items', ImmutableList()), @@ -41,17 +41,17 @@ class PublicTimeline extends React.PureComponent { } _connect () { - const { dispatch, local } = this.props; + const { dispatch } = this.props; - dispatch(local ? expandCommunityTimeline() : expandPublicTimeline()); + dispatch(expandPublicTimeline()); } handleLoadMore = () => { - const { dispatch, statusIds, local } = this.props; + const { dispatch, statusIds } = this.props; const maxId = statusIds.last(); if (maxId) { - dispatch(local ? expandCommunityTimeline({ maxId }) : expandPublicTimeline({ maxId })); + dispatch(expandPublicTimeline({ maxId })); } } diff --git a/app/javascript/mastodon/features/ui/components/columns_area.js b/app/javascript/mastodon/features/ui/components/columns_area.js index 9b03cf26d274a..aa30c3397d318 100644 --- a/app/javascript/mastodon/features/ui/components/columns_area.js +++ b/app/javascript/mastodon/features/ui/components/columns_area.js @@ -16,7 +16,6 @@ import { Compose, Notifications, HomeTimeline, - CommunityTimeline, PublicTimeline, HashtagTimeline, DirectTimeline, @@ -38,7 +37,6 @@ const componentMap = { 'NOTIFICATIONS': Notifications, 'PUBLIC': PublicTimeline, 'REMOTE': PublicTimeline, - 'COMMUNITY': CommunityTimeline, 'HASHTAG': HashtagTimeline, 'DIRECT': DirectTimeline, 'FAVOURITES': FavouritedStatuses, diff --git a/app/javascript/mastodon/features/ui/components/navigation_panel.js b/app/javascript/mastodon/features/ui/components/navigation_panel.js index 0c12852f5b1f4..e8df1f427965b 100644 --- a/app/javascript/mastodon/features/ui/components/navigation_panel.js +++ b/app/javascript/mastodon/features/ui/components/navigation_panel.js @@ -13,7 +13,6 @@ const NavigationPanel = () => ( - diff --git a/app/javascript/mastodon/features/ui/components/tabs_bar.js b/app/javascript/mastodon/features/ui/components/tabs_bar.js index 1911da8ba3f58..8f36ef1c44a60 100644 --- a/app/javascript/mastodon/features/ui/components/tabs_bar.js +++ b/app/javascript/mastodon/features/ui/components/tabs_bar.js @@ -10,7 +10,6 @@ import NotificationsCounterIcon from './notifications_counter_icon'; export const links = [ , , - , , , , diff --git a/app/javascript/mastodon/features/ui/index.js b/app/javascript/mastodon/features/ui/index.js index 957e807375705..2204535279ae2 100644 --- a/app/javascript/mastodon/features/ui/index.js +++ b/app/javascript/mastodon/features/ui/index.js @@ -27,7 +27,6 @@ import { GettingStarted, KeyboardShortcuts, PublicTimeline, - CommunityTimeline, AccountTimeline, AccountGallery, HomeTimeline, @@ -88,7 +87,6 @@ const keyMap = { back: 'backspace', goToHome: 'g h', goToNotifications: 'g n', - goToLocal: 'g l', goToFederated: 'g t', goToDirect: 'g d', goToStart: 'g s', @@ -185,7 +183,6 @@ class SwitchingColumnsArea extends React.PureComponent { - @@ -465,10 +462,6 @@ class UI extends React.PureComponent { this.context.router.history.push('/notifications'); } - handleHotkeyGoToLocal = () => { - this.context.router.history.push('/timelines/public/local'); - } - handleHotkeyGoToFederated = () => { this.context.router.history.push('/timelines/public'); } @@ -518,7 +511,6 @@ class UI extends React.PureComponent { back: this.handleHotkeyBack, goToHome: this.handleHotkeyGoToHome, goToNotifications: this.handleHotkeyGoToNotifications, - goToLocal: this.handleHotkeyGoToLocal, goToFederated: this.handleHotkeyGoToFederated, goToDirect: this.handleHotkeyGoToDirect, goToStart: this.handleHotkeyGoToStart, diff --git a/app/javascript/mastodon/features/ui/util/async-components.js b/app/javascript/mastodon/features/ui/util/async-components.js index 986efda1ec545..40764ca162150 100644 --- a/app/javascript/mastodon/features/ui/util/async-components.js +++ b/app/javascript/mastodon/features/ui/util/async-components.js @@ -18,10 +18,6 @@ export function PublicTimeline () { return import(/* webpackChunkName: "features/public_timeline" */'../../public_timeline'); } -export function CommunityTimeline () { - return import(/* webpackChunkName: "features/community_timeline" */'../../community_timeline'); -} - export function HashtagTimeline () { return import(/* webpackChunkName: "features/hashtag_timeline" */'../../hashtag_timeline'); } diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index 3b51b1b5f14c9..201b932dd739b 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -194,7 +194,7 @@ "intervals.full.minutes": "{number, plural, one {# minute} other {# minutes}}", "introduction.federation.action": "Next", "introduction.federation.federated.headline": "Federated", - "introduction.federation.federated.text": "Public posts from other servers of the fediverse will appear in the federated timeline.", + "introduction.federation.federated.text": "Public posts from various Fediverse servers are displayed on the federation timeline.", "introduction.federation.home.headline": "Home", "introduction.federation.home.text": "Posts from people you follow will appear in your home feed. You can follow anyone on any server!", "introduction.federation.local.headline": "Local", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 026d32834fa53..5bdfd52277d3d 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -194,7 +194,7 @@ "intervals.full.minutes": "{number}分", "introduction.federation.action": "次へ", "introduction.federation.federated.headline": "連合タイムライン", - "introduction.federation.federated.text": "Fediverseの他のサーバーからの公開投稿は連合タイムラインに表示されます。", + "introduction.federation.federated.text": "Fediverseの様々なサーバーからの公開投稿が連合タイムラインに表示されます。", "introduction.federation.home.headline": "ホームタイムライン", "introduction.federation.home.text": "フォローしている人々の投稿はホームタイムラインに表示されます。どこのサーバーの誰でもフォローできます!", "introduction.federation.local.headline": "ローカルタイムライン", diff --git a/app/javascript/mastodon/reducers/settings.js b/app/javascript/mastodon/reducers/settings.js index efef2ad9a5364..86383288a2557 100644 --- a/app/javascript/mastodon/reducers/settings.js +++ b/app/javascript/mastodon/reducers/settings.js @@ -62,12 +62,6 @@ const initialState = ImmutableMap({ }), }), - community: ImmutableMap({ - regex: ImmutableMap({ - body: '', - }), - }), - public: ImmutableMap({ regex: ImmutableMap({ body: '', diff --git a/app/models/status.rb b/app/models/status.rb index a1babf85e3055..b79b3311d2146 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -379,7 +379,7 @@ def from_text(text) def timeline_scope(scope = false) starting_scope = case scope when :local, true - Status.local + Status.none when :remote Status.remote else diff --git a/app/services/batched_remove_status_service.rb b/app/services/batched_remove_status_service.rb index 2295a01dc3d61..d092fdaaf2897 100644 --- a/app/services/batched_remove_status_service.rb +++ b/app/services/batched_remove_status_service.rb @@ -73,14 +73,12 @@ def unpush_from_public_timelines(status) redis.pipelined do redis.publish('timeline:public', payload) if status.local? - redis.publish('timeline:public:local', payload) else redis.publish('timeline:public:remote', payload) end if status.media_attachments.any? redis.publish('timeline:public:media', payload) if status.local? - redis.publish('timeline:public:local:media', payload) else redis.publish('timeline:public:remote:media', payload) end diff --git a/app/services/fan_out_on_write_service.rb b/app/services/fan_out_on_write_service.rb index 276eac0c18c93..ed8c9b34ffdac 100644 --- a/app/services/fan_out_on_write_service.rb +++ b/app/services/fan_out_on_write_service.rb @@ -82,7 +82,6 @@ def deliver_to_public(status) Redis.current.publish('timeline:public', @payload) if status.local? - Redis.current.publish('timeline:public:local', @payload) else Redis.current.publish('timeline:public:remote', @payload) end @@ -93,7 +92,6 @@ def deliver_to_media(status) Redis.current.publish('timeline:public:media', @payload) if status.local? - Redis.current.publish('timeline:public:local:media', @payload) else Redis.current.publish('timeline:public:remote:media', @payload) end diff --git a/app/services/remove_status_service.rb b/app/services/remove_status_service.rb index 4f0edc3cfbaaa..ff068dbf5d35c 100644 --- a/app/services/remove_status_service.rb +++ b/app/services/remove_status_service.rb @@ -141,7 +141,6 @@ def remove_from_public redis.publish('timeline:public', @payload) if @status.local? - redis.publish('timeline:public:local', @payload) else redis.publish('timeline:public:remote', @payload) end @@ -152,7 +151,6 @@ def remove_from_media redis.publish('timeline:public:media', @payload) if @status.local? - redis.publish('timeline:public:local:media', @payload) else redis.publish('timeline:public:remote:media', @payload) end diff --git a/app/views/user_mailer/welcome.html.haml b/app/views/user_mailer/welcome.html.haml index 1f75ff48ae453..6f5cfb6932644 100644 --- a/app/views/user_mailer/welcome.html.haml +++ b/app/views/user_mailer/welcome.html.haml @@ -138,7 +138,5 @@ %span= t 'user_mailer.welcome.tip_mobile_webapp' %li %span= t 'user_mailer.welcome.tip_following' - %li - %span= t 'user_mailer.welcome.tip_local_timeline', instance: @instance %li %span= t 'user_mailer.welcome.tip_federated_timeline' diff --git a/app/views/user_mailer/welcome.text.erb b/app/views/user_mailer/welcome.text.erb index e310d7ca6f963..1bf7fbf450d2e 100644 --- a/app/views/user_mailer/welcome.text.erb +++ b/app/views/user_mailer/welcome.text.erb @@ -25,5 +25,4 @@ * <%= t 'user_mailer.welcome.tip_mobile_webapp' %> * <%= t 'user_mailer.welcome.tip_following' %> -* <%= t 'user_mailer.welcome.tip_local_timeline', instance: @instance %> * <%= t 'user_mailer.welcome.tip_federated_timeline' %> diff --git a/config/locales/en.yml b/config/locales/en.yml index 116db44985872..8c41cfd04f797 100644 --- a/config/locales/en.yml +++ b/config/locales/en.yml @@ -1290,14 +1290,14 @@ en: edit_profile_step: You can customize your profile by uploading an avatar, header, changing your display name and more. If you’d like to review new followers before they’re allowed to follow you, you can lock your account. explanation: Here are some tips to get you started final_action: Start posting - final_step: 'Start posting! Even without followers your public messages may be seen by others, for example on the local timeline and in hashtags. You may want to introduce yourself on the #introductions hashtag.' + final_step: 'Start posting! Even without followers your public messages may be seen by others, for example on the federation timeline and in hashtags. You may want to introduce yourself on the #introductions hashtag.' full_handle: Your full handle full_handle_hint: This is what you would tell your friends so they can message or follow you from another server. review_preferences_action: Change preferences review_preferences_step: Make sure to set your preferences, such as which emails you'd like to receive, or what privacy level you’d like your posts to default to. If you don’t have motion sickness, you could choose to enable GIF autoplay. subject: Welcome to Mastodon - tip_federated_timeline: The federated timeline is a firehose view of the Mastodon network. But it only includes people your neighbours are subscribed to, so it's not complete. - tip_following: You follow your server's admin(s) by default. To find more interesting people, check the local and federated timelines. + tip_federated_timeline: The federated timeline is a firehose view of the Mastodon network. But it only includes people your neighbors are subscribed to or posts sent via relay, so it's not complete. + tip_following: "You follow your server's information account by default. To find more interesting people, check the #introductions tag and federated timelines." tip_local_timeline: The local timeline is a firehose view of people on %{instance}. These are your immediate neighbours! tip_mobile_webapp: If your mobile browser offers you to add Mastodon to your homescreen, you can receive push notifications. It acts like a native app in many ways! tips: Tips diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 8a8baf7649212..56dee85a41603 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -1272,14 +1272,14 @@ ja: edit_profile_step: アイコンやヘッダーの画像をアップロードしたり、表示名を変更したりして、自分のプロフィールをカスタマイズすることができます。また、誰かからの新規フォローを許可する前にその人の様子を見ておきたい場合、アカウントを承認制にすることもできます。 explanation: 始めるにあたってのアドバイスです final_action: 始めましょう - final_step: 'さあ、始めましょう! たとえフォロワーがまだいなくても、あなたの公開した投稿はローカルタイムラインやハッシュタグなどを通じて誰かの目にとまるはずです。自己紹介をしたいときには #introductions ハッシュタグが便利かもしれません。' + final_step: 'さあ、始めましょう! たとえフォロワーがまだいなくても、あなたの公開した投稿は連合タイムラインやハッシュタグなどを通じて誰かの目にとまるはずです。自己紹介をしたいときには #introductions ハッシュタグが便利かもしれません。' full_handle: あなたの正式なユーザーID full_handle_hint: 別のサーバーの友達とフォローやメッセージをやり取りする際には、これを伝えることになります。 review_preferences_action: 設定の変更 review_preferences_step: 受け取りたいメールの種類や投稿のデフォルト公開範囲など、ユーザー設定を必ず済ませておきましょう。目が回らない自信があるなら、アニメーション GIF を自動再生する設定もご検討ください。 subject: Mastodon へようこそ - tip_federated_timeline: 連合タイムラインは Mastodon ネットワークの流れを見られるものです。ただしあなたと同じサーバーの人がフォローしている人だけが含まれるので、それが全てではありません。 - tip_following: 最初は、サーバーの管理者をフォローした状態になっています。もっと興味のある人たちを見つけるには、ローカルタイムラインと連合タイムラインを確認してみましょう。 + tip_federated_timeline: 連合タイムラインは Mastodon ネットワークの流れを見られるものです。ただしあなたと同じサーバーの人がフォローしている人や、リレーを経由して送られてくる投稿だけが含まれるので、それが全てではありません。 + tip_following: 最初は、サーバーのインフォメーションアカウントをフォローした状態になっています。もっと興味のある人たちを見つけるには、#introductions ハッシュタグタイムラインと連合タイムラインを確認してみましょう。 tip_local_timeline: ローカルタイムラインは %{instance} にいる人々の流れを見られるものです。彼らはあなたと同じサーバーにいる隣人のようなものです! tip_mobile_webapp: お使いのモバイル端末で、ブラウザから Mastodon をホーム画面に追加できますか? もし追加できる場合、プッシュ通知の受け取りなど、まるで「普通の」アプリのような機能が楽しめます! tips: 豆知識 diff --git a/streaming/index.js b/streaming/index.js index 500d577ce4ce5..67341ba9e78bd 100644 --- a/streaming/index.js +++ b/streaming/index.js @@ -532,10 +532,7 @@ const startWorker = (workerId) => { }); app.get('/api/v1/streaming/public/local', (req, res) => { - const onlyMedia = req.query.only_media === '1' || req.query.only_media === 'true'; - const channel = onlyMedia ? 'timeline:public:local:media' : 'timeline:public:local'; - - streamFrom(channel, req, streamToHttp(req, res), streamHttpEnd(req), true); + httpNotFound(res); }); app.get('/api/v1/streaming/public/remote', (req, res) => { @@ -606,18 +603,12 @@ const startWorker = (workerId) => { case 'public': streamFrom('timeline:public', req, streamToWs(req, ws), streamWsEnd(req, ws), true); break; - case 'public:local': - streamFrom('timeline:public:local', req, streamToWs(req, ws), streamWsEnd(req, ws), true); - break; case 'public:remote': streamFrom('timeline:public:remote', req, streamToWs(req, ws), streamWsEnd(req, ws), true); break; case 'public:media': streamFrom('timeline:public:media', req, streamToWs(req, ws), streamWsEnd(req, ws), true); break; - case 'public:local:media': - streamFrom('timeline:public:local:media', req, streamToWs(req, ws), streamWsEnd(req, ws), true); - break; case 'public:remote:media': streamFrom('timeline:public:remote:media', req, streamToWs(req, ws), streamWsEnd(req, ws), true); break;