diff options
Diffstat (limited to 'db/migrate')
-rw-r--r-- | db/migrate/20190518044851_add_footer_to_statuses.rb | 5 | ||||
-rw-r--r-- | db/migrate/20190518150215_reformat_local_statuses.rb | 19 |
2 files changed, 24 insertions, 0 deletions
diff --git a/db/migrate/20190518044851_add_footer_to_statuses.rb b/db/migrate/20190518044851_add_footer_to_statuses.rb new file mode 100644 index 000000000..e85d225bc --- /dev/null +++ b/db/migrate/20190518044851_add_footer_to_statuses.rb @@ -0,0 +1,5 @@ +class AddFooterToStatuses < ActiveRecord::Migration[5.2] + def change + add_column :statuses, :footer, :text + end +end diff --git a/db/migrate/20190518150215_reformat_local_statuses.rb b/db/migrate/20190518150215_reformat_local_statuses.rb new file mode 100644 index 000000000..c9433a044 --- /dev/null +++ b/db/migrate/20190518150215_reformat_local_statuses.rb @@ -0,0 +1,19 @@ +class ReformatLocalStatuses < ActiveRecord::Migration[5.2] + disable_ddl_transaction! + def up + Status.local.without_reblogs.find_each do |status| + status.content_type = 'text/x-bbcode+markdown' + text = status.text + matches = text.match(/\[(right|rfloat)\][\u200c\u200b—–-]+ *(.*?)\[\/\1\]\u200c?\Z/) + if matches + status.footer = matches[2].strip + text = text.sub(/\[(right|rfloat)\][\u200c\u200b—–-]+.*?\[\/\1\]\u200c?\Z/, '').rstrip + end + text = text.gsub(/\[(color|colorhex|hexcolor)=\w+\](.*?)\[\/\1\]/, '[b]\2[/b]') + text = text.gsub(/\[(spin|pulse)\](.*?)\[\/\1\]/, '[b]\2[/b]') + status.text = text unless text.blank? + Rails.logger.info("Rewrote status ID #{status.id}") + status.save + end + end +end |