discourse/plugins/discourse-narrative-bot/db/fixtures/001_discobot.rb
2020-05-20 10:20:08 +08:00

66 lines
1.8 KiB
Ruby

# frozen_string_literal: true
discobot_username = 'discobot'
def seed_primary_email
UserEmail.seed do |ue|
ue.id = DiscourseNarrativeBot::BOT_USER_ID
ue.email = "discobot_email"
ue.primary = true
ue.user_id = DiscourseNarrativeBot::BOT_USER_ID
end
end
unless user = User.find_by(id: DiscourseNarrativeBot::BOT_USER_ID)
suggested_username = UserNameSuggester.suggest(discobot_username)
seed_primary_email
User.seed do |u|
u.id = DiscourseNarrativeBot::BOT_USER_ID
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
# TODO Pull the user avatar from that thread for now. In the future, pull it from a local file or from some central discobot repo.
if !Rails.env.test?
begin
UserAvatar.import_url_for_user(
"https://cdn.discourse.org/dev/uploads/default/original/2X/e/edb63d57a720838a7ce6a68f02ba4618787f2299.png",
User.find(DiscourseNarrativeBot::BOT_USER_ID),
override_gravatar: true
)
rescue
# In case the avatar can't be downloaded, don't fail seed
end
end
end
bot = User.find(DiscourseNarrativeBot::BOT_USER_ID)
# ensure discobot has a primary email
unless bot.primary_email
seed_primary_email
bot.reload
end
bot.update!(admin: true, moderator: false)
bot.user_option.update!(
email_messages_level: UserOption.email_level_types[:never],
email_level: UserOption.email_level_types[:never]
)
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
Group.user_trust_level_change!(DiscourseNarrativeBot::BOT_USER_ID, TrustLevel[4])