Merge branch 'develop' of https://code.gab.com/gab/social/gab-social into feature/removing_ruby_junk
This commit is contained in:
commit
20d4fc09af
2
Gemfile
2
Gemfile
@ -74,7 +74,7 @@ gem 'redis', '~> 4.1', require: ['redis', 'redis/connection/hiredis']
|
|||||||
gem 'mario-redis-lock', '~> 1.2', require: 'redis_lock'
|
gem 'mario-redis-lock', '~> 1.2', require: 'redis_lock'
|
||||||
gem 'rqrcode', '~> 0.10'
|
gem 'rqrcode', '~> 0.10'
|
||||||
gem 'sanitize', '~> 5.0'
|
gem 'sanitize', '~> 5.0'
|
||||||
gem 'sidekiq', '~> 5.2'
|
gem 'sidekiq', '~> 6.0'
|
||||||
gem 'sidekiq-scheduler', '~> 3.0'
|
gem 'sidekiq-scheduler', '~> 3.0'
|
||||||
gem 'sidekiq-unique-jobs', '~> 6.0'
|
gem 'sidekiq-unique-jobs', '~> 6.0'
|
||||||
gem 'sidekiq-bulk', '~>0.2.0'
|
gem 'sidekiq-bulk', '~>0.2.0'
|
||||||
|
19
Gemfile.lock
19
Gemfile.lock
@ -152,7 +152,7 @@ GEM
|
|||||||
climate_control (>= 0.0.3, < 1.0)
|
climate_control (>= 0.0.3, < 1.0)
|
||||||
coderay (1.1.2)
|
coderay (1.1.2)
|
||||||
concurrent-ruby (1.1.5)
|
concurrent-ruby (1.1.5)
|
||||||
connection_pool (2.2.2)
|
connection_pool (2.2.3)
|
||||||
crack (0.4.3)
|
crack (0.4.3)
|
||||||
safe_yaml (~> 1.0.0)
|
safe_yaml (~> 1.0.0)
|
||||||
crass (1.0.4)
|
crass (1.0.4)
|
||||||
@ -426,12 +426,10 @@ GEM
|
|||||||
pundit (2.0.1)
|
pundit (2.0.1)
|
||||||
activesupport (>= 3.0.0)
|
activesupport (>= 3.0.0)
|
||||||
raabro (1.1.6)
|
raabro (1.1.6)
|
||||||
rack (2.0.7)
|
rack (2.2.3)
|
||||||
rack-attack (6.0.0)
|
rack-attack (6.0.0)
|
||||||
rack (>= 1.0, < 3)
|
rack (>= 1.0, < 3)
|
||||||
rack-cors (1.0.3)
|
rack-cors (1.0.3)
|
||||||
rack-protection (2.0.5)
|
|
||||||
rack
|
|
||||||
rack-proxy (0.6.5)
|
rack-proxy (0.6.5)
|
||||||
rack
|
rack
|
||||||
rack-test (1.1.0)
|
rack-test (1.1.0)
|
||||||
@ -480,7 +478,7 @@ GEM
|
|||||||
rdf-normalize (0.3.3)
|
rdf-normalize (0.3.3)
|
||||||
rdf (>= 2.2, < 4.0)
|
rdf (>= 2.2, < 4.0)
|
||||||
redcarpet (3.4.0)
|
redcarpet (3.4.0)
|
||||||
redis (4.1.2)
|
redis (4.2.5)
|
||||||
redis-actionpack (5.0.2)
|
redis-actionpack (5.0.2)
|
||||||
actionpack (>= 4.0, < 6)
|
actionpack (>= 4.0, < 6)
|
||||||
redis-rack (>= 1, < 3)
|
redis-rack (>= 1, < 3)
|
||||||
@ -554,11 +552,10 @@ GEM
|
|||||||
scss_lint (0.58.0)
|
scss_lint (0.58.0)
|
||||||
rake (>= 0.9, < 13)
|
rake (>= 0.9, < 13)
|
||||||
sass (~> 3.5, >= 3.5.5)
|
sass (~> 3.5, >= 3.5.5)
|
||||||
sidekiq (5.2.7)
|
sidekiq (6.1.2)
|
||||||
connection_pool (~> 2.2, >= 2.2.2)
|
connection_pool (>= 2.2.2)
|
||||||
rack (>= 1.5.0)
|
rack (~> 2.0)
|
||||||
rack-protection (>= 1.5.0)
|
redis (>= 4.2.0)
|
||||||
redis (>= 3.3.5, < 5)
|
|
||||||
sidekiq-bulk (0.2.0)
|
sidekiq-bulk (0.2.0)
|
||||||
sidekiq
|
sidekiq
|
||||||
sidekiq-scheduler (3.0.0)
|
sidekiq-scheduler (3.0.0)
|
||||||
@ -751,7 +748,7 @@ DEPENDENCIES
|
|||||||
rubocop (~> 0.71)
|
rubocop (~> 0.71)
|
||||||
sanitize (~> 5.0)
|
sanitize (~> 5.0)
|
||||||
scss_lint (~> 0.58)
|
scss_lint (~> 0.58)
|
||||||
sidekiq (~> 5.2)
|
sidekiq (~> 6.0)
|
||||||
sidekiq-bulk (~> 0.2.0)
|
sidekiq-bulk (~> 0.2.0)
|
||||||
sidekiq-scheduler (~> 3.0)
|
sidekiq-scheduler (~> 3.0)
|
||||||
sidekiq-unique-jobs (~> 6.0)
|
sidekiq-unique-jobs (~> 6.0)
|
||||||
|
@ -18,6 +18,7 @@ class Api::V1::Timelines::ListController < Api::BaseController
|
|||||||
|
|
||||||
def set_list
|
def set_list
|
||||||
@list = List.where(account: current_account).find(params[:id])
|
@list = List.where(account: current_account).find(params[:id])
|
||||||
|
@accounts = ListAccount.select('account_id').where(list_id: @list)
|
||||||
end
|
end
|
||||||
|
|
||||||
def set_statuses
|
def set_statuses
|
||||||
@ -29,16 +30,14 @@ class Api::V1::Timelines::ListController < Api::BaseController
|
|||||||
end
|
end
|
||||||
|
|
||||||
def list_statuses
|
def list_statuses
|
||||||
list_feed.get(
|
statuses = Status.where(
|
||||||
|
account: @accounts, reply: false
|
||||||
|
).where(
|
||||||
|
'updated_at > ?', 10.days.ago
|
||||||
|
).paginate_by_id(
|
||||||
limit_param(DEFAULT_STATUSES_LIMIT),
|
limit_param(DEFAULT_STATUSES_LIMIT),
|
||||||
params[:max_id],
|
params_slice(:max_id, :since_id, :min_id)
|
||||||
params[:since_id],
|
).reject { |status| FeedManager.instance.filter?(:home, status, current_account.id) }
|
||||||
params[:min_id]
|
|
||||||
)
|
|
||||||
end
|
|
||||||
|
|
||||||
def list_feed
|
|
||||||
ListFeed.new(@list)
|
|
||||||
end
|
end
|
||||||
|
|
||||||
def insert_pagination_headers
|
def insert_pagination_headers
|
||||||
|
@ -98,8 +98,8 @@ class EditProfileModal extends ImmutablePureComponent {
|
|||||||
if (account.get('avatar_static') !== avatarSrc) obj.avatar = avatarSrc
|
if (account.get('avatar_static') !== avatarSrc) obj.avatar = avatarSrc
|
||||||
if (account.get('header_static') !== headerSrc) obj.header = headerSrc
|
if (account.get('header_static') !== headerSrc) obj.header = headerSrc
|
||||||
|
|
||||||
this.props.onSave(obj)
|
this.props.onSave(obj, this.handleOnClose)
|
||||||
this.handleOnClose()
|
//this.handleOnClose()
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
@ -210,7 +210,7 @@ const mapStateToProps = (state) => ({
|
|||||||
})
|
})
|
||||||
|
|
||||||
const mapDispatchToProps = (dispatch) => ({
|
const mapDispatchToProps = (dispatch) => ({
|
||||||
onSave: (data) => dispatch(saveUserProfileInformation(data)),
|
onSave: (data, closer) => dispatch(saveUserProfileInformation(data, closer)),
|
||||||
})
|
})
|
||||||
|
|
||||||
EditProfileModal.propTypes = {
|
EditProfileModal.propTypes = {
|
||||||
|
@ -56,12 +56,14 @@ class GroupTimelineSortTopOptionsPopover extends React.PureComponent {
|
|||||||
title: intl.formatMessage(messages.topYearTitle),
|
title: intl.formatMessage(messages.topYearTitle),
|
||||||
onClick: () => this.handleOnClick(GROUP_TIMELINE_SORTING_TYPE_TOP_OPTION_YEARLY),
|
onClick: () => this.handleOnClick(GROUP_TIMELINE_SORTING_TYPE_TOP_OPTION_YEARLY),
|
||||||
},
|
},
|
||||||
|
/*
|
||||||
{
|
{
|
||||||
hideArrow: true,
|
hideArrow: true,
|
||||||
isActive: sortByTopValue === GROUP_TIMELINE_SORTING_TYPE_TOP_OPTION_ALL_TIME,
|
isActive: sortByTopValue === GROUP_TIMELINE_SORTING_TYPE_TOP_OPTION_ALL_TIME,
|
||||||
title: intl.formatMessage(messages.topAllTitle),
|
title: intl.formatMessage(messages.topAllTitle),
|
||||||
onClick: () => this.handleOnClick(GROUP_TIMELINE_SORTING_TYPE_TOP_OPTION_ALL_TIME),
|
onClick: () => this.handleOnClick(GROUP_TIMELINE_SORTING_TYPE_TOP_OPTION_ALL_TIME),
|
||||||
},
|
},
|
||||||
|
*/
|
||||||
]
|
]
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
@ -19,6 +19,7 @@ export default function (state = initialState, action) {
|
|||||||
case SAVE_USER_PROFILE_INFORMATION_FETCH_SUCCESS:
|
case SAVE_USER_PROFILE_INFORMATION_FETCH_SUCCESS:
|
||||||
return state
|
return state
|
||||||
case SAVE_USER_PROFILE_INFORMATION_FETCH_FAIL:
|
case SAVE_USER_PROFILE_INFORMATION_FETCH_FAIL:
|
||||||
|
alert('Failed to update your profile. Max profile image size is 2MB. Please update and try again.')
|
||||||
return state.set('isError', true)
|
return state.set('isError', true)
|
||||||
case RESEND_USER_CONFIRMATION_EMAIL_SUCCESS:
|
case RESEND_USER_CONFIRMATION_EMAIL_SUCCESS:
|
||||||
return state.set('emailConfirmationResends', state.get('emailConfirmationResends') + 1)
|
return state.set('emailConfirmationResends', state.get('emailConfirmationResends') + 1)
|
||||||
|
@ -90,7 +90,7 @@ class Status < ApplicationRecord
|
|||||||
|
|
||||||
default_scope { recent }
|
default_scope { recent }
|
||||||
|
|
||||||
scope :recent, -> { reorder(created_at: :desc) }
|
scope :recent, -> { reorder(updated_at: :desc) }
|
||||||
scope :remote, -> { where(local: false).or(where.not(uri: nil)) }
|
scope :remote, -> { where(local: false).or(where.not(uri: nil)) }
|
||||||
scope :local, -> { where(local: true).or(where(uri: nil)) }
|
scope :local, -> { where(local: true).or(where(uri: nil)) }
|
||||||
|
|
||||||
@ -290,13 +290,14 @@ class Status < ApplicationRecord
|
|||||||
end
|
end
|
||||||
|
|
||||||
def as_home_timeline(account)
|
def as_home_timeline(account)
|
||||||
query = where('updated_at > ?', 30.days.ago)
|
query = where('updated_at > ?', 5.days.ago)
|
||||||
query.where(visibility: [:public, :unlisted, :private])
|
query.where(visibility: [:public, :unlisted, :private])
|
||||||
query.where(account: [account] + account.following).without_replies
|
query.where(account: [account] + account.following).without_replies
|
||||||
end
|
end
|
||||||
|
|
||||||
def as_group_timeline(group)
|
def as_group_timeline(group)
|
||||||
where(group: group).without_replies
|
query = where('updated_at > ?', 5.days.ago)
|
||||||
|
query.where(group: group).without_replies
|
||||||
end
|
end
|
||||||
|
|
||||||
def as_group_collection_timeline(groupIds)
|
def as_group_collection_timeline(groupIds)
|
||||||
|
@ -2,9 +2,17 @@
|
|||||||
|
|
||||||
class FanOutOnWriteService < BaseService
|
class FanOutOnWriteService < BaseService
|
||||||
|
|
||||||
|
# Push a status into home and mentions feeds
|
||||||
|
# @param [Status] status
|
||||||
def call(status)
|
def call(status)
|
||||||
|
raise GabSocial::RaceConditionError if status.visibility.nil?
|
||||||
|
|
||||||
|
if status.direct_visibility? || status.limited_visibility?
|
||||||
|
#
|
||||||
|
else
|
||||||
deliver_to_self(status) if status.account.local?
|
deliver_to_self(status) if status.account.local?
|
||||||
end
|
end
|
||||||
|
end
|
||||||
|
|
||||||
private
|
private
|
||||||
|
|
||||||
|
@ -37,7 +37,7 @@ if ENV['S3_ENABLED'] == 'true'
|
|||||||
s3_options: {
|
s3_options: {
|
||||||
signature_version: ENV.fetch('S3_SIGNATURE_VERSION') { 'v4' },
|
signature_version: ENV.fetch('S3_SIGNATURE_VERSION') { 'v4' },
|
||||||
http_open_timeout: 5,
|
http_open_timeout: 5,
|
||||||
http_read_timeout: 5,
|
http_read_timeout: 30,
|
||||||
http_idle_timeout: 5,
|
http_idle_timeout: 5,
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
@ -19,4 +19,4 @@ Sidekiq.configure_client do |config|
|
|||||||
config.redis = redis_params
|
config.redis = redis_params
|
||||||
end
|
end
|
||||||
|
|
||||||
Sidekiq::Logging.logger.level = ::Logger.const_get(ENV.fetch('RAILS_LOG_LEVEL', 'info').upcase.to_s)
|
Sidekiq.logger.level = ::Logger.const_get(ENV.fetch('RAILS_LOG_LEVEL', 'info').upcase.to_s)
|
||||||
|
@ -39,6 +39,34 @@ module GabSocial
|
|||||||
say("Removed #{custom_emojis_count} custom emojis", :green)
|
say("Removed #{custom_emojis_count} custom emojis", :green)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
option :dry_run, type: :boolean
|
||||||
|
desc 'deleteallremote', 'Remove all remote data'
|
||||||
|
def deleteallremote
|
||||||
|
dry_run = options[:dry_run] ? ' (DRY RUN)' : ''
|
||||||
|
|
||||||
|
Account.remote.by_domain_accounts.find_in_batches do |acct|
|
||||||
|
domain = acct.domain
|
||||||
|
|
||||||
|
say("\n\n\n - Starting domain block for #{domain} #{dry_run}", :green)
|
||||||
|
|
||||||
|
if domain.present?
|
||||||
|
existing_domain_block = DomainBlock.find_by(domain: domain)
|
||||||
|
|
||||||
|
unless existing_domain_block.present?
|
||||||
|
say("\nDomain block for #{domain} is starting #{dry_run}", :green)
|
||||||
|
unless options[:dry_run]
|
||||||
|
domain_block = DomainBlock.new(domain: domain, severity: :suspend)
|
||||||
|
DomainBlockWorker.perform_async(domain_block.id)
|
||||||
|
end
|
||||||
|
else
|
||||||
|
say("\nDomain block for #{domain} is already implemented #{dry_run}", :red)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
say('\n\n - Domain block deleteallremote done', :green)
|
||||||
|
end
|
||||||
|
|
||||||
option :concurrency, type: :numeric, default: 50, aliases: [:c]
|
option :concurrency, type: :numeric, default: 50, aliases: [:c]
|
||||||
option :silent, type: :boolean, default: false, aliases: [:s]
|
option :silent, type: :boolean, default: false, aliases: [:s]
|
||||||
option :format, type: :string, default: 'summary', aliases: [:f]
|
option :format, type: :string, default: 'summary', aliases: [:f]
|
||||||
|
Loading…
Reference in New Issue
Block a user