diff options
author | multiple creatures <dev@multiple-creature.party> | 2019-05-18 12:58:54 -0500 |
---|---|---|
committer | multiple creatures <dev@multiple-creature.party> | 2019-05-21 03:16:50 -0500 |
commit | 09b7532805a349d1a57f4a650c7f41456cda184b (patch) | |
tree | 74b52c2b91609cbf94c8442fb701dfb8e922ce36 /db/migrate | |
parent | 5c9aed40f6c046629b548df402ca2f13ba36efe0 (diff) |
split `i:am` signatures into their very own `footer` column
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 |