Reviewed-on: #410 Co-authored-by: miteruzo <miteruzo@naver.com> Co-committed-by: miteruzo <miteruzo@naver.com>
このコミットはPull リクエスト #410 でマージされました.
このコミットが含まれているのは:
@@ -0,0 +1,61 @@
|
||||
class CreatePostUrlSanitisationRules < ActiveRecord::Migration[8.0]
|
||||
class PostUrlSanitisationRule < ActiveRecord::Base
|
||||
self.table_name = 'post_url_sanitisation_rules'
|
||||
end
|
||||
|
||||
def up
|
||||
create_table :post_url_sanitisation_rules, id: :integer, primary_key: :priority do |t|
|
||||
t.string :source_pattern, null: false
|
||||
t.string :replacement, null: false
|
||||
t.timestamps
|
||||
t.datetime :discarded_at
|
||||
|
||||
t.index :source_pattern, unique: true
|
||||
t.index :discarded_at
|
||||
end
|
||||
|
||||
now = Time.current
|
||||
|
||||
PostUrlSanitisationRule.insert_all!([
|
||||
{ priority: 10,
|
||||
source_pattern: '\Ahttps?://youtu\.be/([^/?#]+)(?:[?#].*)?\z',
|
||||
replacement: 'https://www.youtube.com/watch?v=\1',
|
||||
created_at: now,
|
||||
updated_at: now },
|
||||
{ priority: 20,
|
||||
source_pattern: '\Ahttps?://(?:www\.|m\.)?youtube\.com/live/([^/?#]+)(?:[?#].*)?\z',
|
||||
replacement: 'https://www.youtube.com/watch?v=\1',
|
||||
created_at: now,
|
||||
updated_at: now },
|
||||
{ priority: 30,
|
||||
source_pattern: '\Ahttps?://(?:www\.|m\.)?youtube\.com/shorts/([^/?#]+)(?:[?#].*)?\z',
|
||||
replacement: 'https://www.youtube.com/watch?v=\1',
|
||||
created_at: now,
|
||||
updated_at: now },
|
||||
{ priority: 40,
|
||||
source_pattern: '\Ahttps?://(?:www\.|m\.)?youtube\.com/embed/([^/?#]+)(?:[?#].*)?\z',
|
||||
replacement: 'https://www.youtube.com/watch?v=\1',
|
||||
created_at: now,
|
||||
updated_at: now },
|
||||
{ priority: 50,
|
||||
source_pattern:
|
||||
'\Ahttps?://(?:www\.|m\.)?youtube\.com/watch\?(?:[^#&]+&)*v=([^&#]+)(?:[&#].*)?\z',
|
||||
replacement: 'https://www.youtube.com/watch?v=\1',
|
||||
created_at: now,
|
||||
updated_at: now },
|
||||
{ priority: 60,
|
||||
source_pattern: '\Ahttps?://nico\.ms/([^/?#]+)(?:[?#].*)?\z',
|
||||
replacement: 'https://www.nicovideo.jp/watch/\1',
|
||||
created_at: now,
|
||||
updated_at: now },
|
||||
{ priority: 70,
|
||||
source_pattern: '\Ahttps?://(?:www\.)?nicovideo\.jp/watch/([^?#/]+)(?:[?#].*)?\z',
|
||||
replacement: 'https://www.nicovideo.jp/watch/\1',
|
||||
created_at: now,
|
||||
updated_at: now }])
|
||||
end
|
||||
|
||||
def down
|
||||
drop_table :post_url_sanitisation_rules
|
||||
end
|
||||
end
|
||||
新しい課題から参照
ユーザをブロックする