mirror of
https://github.com/mastodon/mastodon.git
synced 2025-05-11 20:21:10 +00:00
Merge 9457283db1
into fbe9728f36
This commit is contained in:
commit
7d57566d18
|
@ -26,6 +26,7 @@ export interface BaseApiAccountJSON {
|
||||||
fields: ApiAccountFieldJSON[];
|
fields: ApiAccountFieldJSON[];
|
||||||
followers_count: number;
|
followers_count: number;
|
||||||
following_count: number;
|
following_count: number;
|
||||||
|
used_languages: string[];
|
||||||
group: boolean;
|
group: boolean;
|
||||||
header: string;
|
header: string;
|
||||||
header_static: string;
|
header_static: string;
|
||||||
|
|
|
@ -20,10 +20,10 @@ const messages = defineMessages({
|
||||||
});
|
});
|
||||||
|
|
||||||
const getAccountLanguages = createSelector([
|
const getAccountLanguages = createSelector([
|
||||||
(state, accountId) => state.getIn(['timelines', `account:${accountId}`, 'items'], ImmutableList()),
|
(state, accountId) => state.getIn(['accounts', accountId, 'used_languages']),
|
||||||
state => state.get('statuses'),
|
], (used_languages) => {
|
||||||
], (statusIds, statuses) =>
|
return ImmutableSet(used_languages);
|
||||||
ImmutableSet(statusIds.map(statusId => statuses.get(statusId)).filter(status => !status.get('reblog')).map(status => status.get('language'))));
|
});
|
||||||
|
|
||||||
const mapStateToProps = (state, { accountId }) => ({
|
const mapStateToProps = (state, { accountId }) => ({
|
||||||
acct: state.getIn(['accounts', accountId, 'acct']),
|
acct: state.getIn(['accounts', accountId, 'acct']),
|
||||||
|
|
|
@ -97,6 +97,7 @@ export const accountDefaultValues: AccountShape = {
|
||||||
// This comes from `ApiMutedAccountJSON`, but we should eventually
|
// This comes from `ApiMutedAccountJSON`, but we should eventually
|
||||||
// store that in a different object.
|
// store that in a different object.
|
||||||
mute_expires_at: null,
|
mute_expires_at: null,
|
||||||
|
used_languages: []
|
||||||
};
|
};
|
||||||
|
|
||||||
const AccountFactory = ImmutableRecord<AccountShape>(accountDefaultValues);
|
const AccountFactory = ImmutableRecord<AccountShape>(accountDefaultValues);
|
||||||
|
|
|
@ -36,4 +36,12 @@ class AccountStat < ApplicationRecord
|
||||||
def statuses_count
|
def statuses_count
|
||||||
[attributes['statuses_count'], 0].max
|
[attributes['statuses_count'], 0].max
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def used_languages
|
||||||
|
list = Status.where(account_id: attributes['account_id'])
|
||||||
|
.distinct
|
||||||
|
.reorder(:language)
|
||||||
|
.pluck(:language)
|
||||||
|
list
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
|
@ -17,6 +17,7 @@ module Account::Counters
|
||||||
:followers_count,
|
:followers_count,
|
||||||
:followers_count=,
|
:followers_count=,
|
||||||
:last_status_at,
|
:last_status_at,
|
||||||
|
:used_languages,
|
||||||
to: :account_stat
|
to: :account_stat
|
||||||
|
|
||||||
# @param [Symbol] key
|
# @param [Symbol] key
|
||||||
|
|
|
@ -7,7 +7,7 @@ class REST::AccountSerializer < ActiveModel::Serializer
|
||||||
# Please update `app/javascript/mastodon/api_types/accounts.ts` when making changes to the attributes
|
# Please update `app/javascript/mastodon/api_types/accounts.ts` when making changes to the attributes
|
||||||
|
|
||||||
attributes :id, :username, :acct, :display_name, :locked, :bot, :discoverable, :indexable, :group, :created_at,
|
attributes :id, :username, :acct, :display_name, :locked, :bot, :discoverable, :indexable, :group, :created_at,
|
||||||
:note, :url, :uri, :avatar, :avatar_static, :header, :header_static,
|
:note, :url, :uri, :avatar, :avatar_static, :header, :header_static, :used_languages,
|
||||||
:followers_count, :following_count, :statuses_count, :last_status_at, :hide_collections
|
:followers_count, :following_count, :statuses_count, :last_status_at, :hide_collections
|
||||||
|
|
||||||
has_one :moved_to_account, key: :moved, serializer: REST::AccountSerializer, if: :moved_and_not_nested?
|
has_one :moved_to_account, key: :moved, serializer: REST::AccountSerializer, if: :moved_and_not_nested?
|
||||||
|
|
Loading…
Reference in New Issue
Block a user