From 09b7532805a349d1a57f4a650c7f41456cda184b Mon Sep 17 00:00:00 2001 From: multiple creatures Date: Sat, 18 May 2019 12:58:54 -0500 Subject: split `i:am` signatures into their very own `footer` column --- db/migrate/20190518044851_add_footer_to_statuses.rb | 5 +++++ db/migrate/20190518150215_reformat_local_statuses.rb | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+) create mode 100644 db/migrate/20190518044851_add_footer_to_statuses.rb create mode 100644 db/migrate/20190518150215_reformat_local_statuses.rb (limited to 'db/migrate') 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 -- cgit