18 lines
823 B
Ruby
18 lines
823 B
Ruby
class MigrateInstanceTickerTheme < ActiveRecord::Migration[6.1]
|
|
THEME_CONVERSION = {
|
|
nil => 'default',
|
|
'contrast' => 'contrast',
|
|
'light' => 'mastodon-light',
|
|
}.freeze
|
|
|
|
def up
|
|
result = ActiveRecord::Base.connection.select_all("select u.id, (regexp_matches(s.value, '--- instance-ticker-(type-[0123])'))[1] as type, (regexp_matches(s.value, '--- instance-ticker-type-[0123]-?(contrast|light)'))[1] as theme from users u join settings s on s.thing_id = u.id where s.thing_type = 'User' and var = 'theme' and value ~ '--- instance-ticker-type-[0123]-?(contrast|light)?'").each do |row|
|
|
User.find(row['id']).settings['theme_instance_ticker'] = row['type']
|
|
User.find(row['id']).settings['theme'] = THEME_CONVERSION[row['theme']]
|
|
end
|
|
end
|
|
|
|
def down
|
|
# nothing to do
|
|
end
|
|
end
|