2019-05-03 08:17:27 +10:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
2017-07-28 10:20:09 +09:00
|
|
|
discobot_username = 'discobot'
|
2020-05-05 16:42:48 +08:00
|
|
|
discobot_user_id = -2
|
2017-05-24 13:50:20 +08:00
|
|
|
|
2020-05-05 16:42:48 +08:00
|
|
|
def seed_primary_email(user_id)
|
2017-04-26 19:47:36 +01:00
|
|
|
UserEmail.seed do |ue|
|
2020-05-05 16:42:48 +08:00
|
|
|
ue.id = user_id
|
2017-04-26 19:47:36 +01:00
|
|
|
ue.email = "discobot_email"
|
|
|
|
ue.primary = true
|
2020-05-05 16:42:48 +08:00
|
|
|
ue.user_id = user_id
|
2017-04-26 19:47:36 +01:00
|
|
|
end
|
2017-11-23 16:54:40 +01:00
|
|
|
end
|
|
|
|
|
2020-05-05 16:42:48 +08:00
|
|
|
unless user = User.find_by(id: discobot_user_id)
|
2017-11-23 16:54:40 +01:00
|
|
|
suggested_username = UserNameSuggester.suggest(discobot_username)
|
2017-04-26 19:47:36 +01:00
|
|
|
|
2020-05-05 16:42:48 +08:00
|
|
|
seed_primary_email(discobot_user_id)
|
2017-11-23 17:00:47 +01:00
|
|
|
|
2017-05-24 13:50:20 +08:00
|
|
|
User.seed do |u|
|
2020-05-05 16:42:48 +08:00
|
|
|
u.id = discobot_user_id
|
2017-05-24 13:50:20 +08:00
|
|
|
u.name = discobot_username
|
|
|
|
u.username = suggested_username
|
|
|
|
u.username_lower = suggested_username.downcase
|
|
|
|
u.password = SecureRandom.hex
|
|
|
|
u.active = true
|
|
|
|
u.approved = true
|
|
|
|
u.trust_level = TrustLevel[4]
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
2020-05-05 16:42:48 +08:00
|
|
|
bot = User.find(discobot_user_id)
|
2017-11-23 16:54:40 +01:00
|
|
|
|
|
|
|
# ensure discobot has a primary email
|
|
|
|
unless bot.primary_email
|
2020-05-05 16:42:48 +08:00
|
|
|
seed_primary_email(discobot_user_id)
|
2017-11-23 16:54:40 +01:00
|
|
|
bot.reload
|
|
|
|
end
|
|
|
|
|
2017-07-28 10:20:09 +09:00
|
|
|
bot.update!(admin: true, moderator: false)
|
2017-05-24 13:50:20 +08:00
|
|
|
|
|
|
|
bot.user_option.update!(
|
2019-03-15 10:55:11 -04:00
|
|
|
email_messages_level: UserOption.email_level_types[:never],
|
|
|
|
email_level: UserOption.email_level_types[:never]
|
2017-05-24 13:50:20 +08:00
|
|
|
)
|
|
|
|
|
|
|
|
if !bot.user_profile.bio_raw
|
|
|
|
bot.user_profile.update!(
|
|
|
|
bio_raw: I18n.t('discourse_narrative_bot.bio', site_title: SiteSetting.title, discobot_username: bot.username)
|
|
|
|
)
|
|
|
|
end
|
|
|
|
|
2020-05-05 16:42:48 +08:00
|
|
|
if !Rails.env.test? && (bot.user_avatar&.custom_upload_id.blank?)
|
|
|
|
File.open(Rails.root.join("plugins", "discourse-narrative-bot", "assets", "images", "discobot.png"), 'r') do |file|
|
|
|
|
UserAvatar.create_custom_avatar(bot, file, override_gravatar: true)
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
Group.user_trust_level_change!(discobot_user_id, TrustLevel[4])
|