Skip to content

Instantly share code, notes, and snippets.

@ksolvesnutra
Created July 3, 2020 12:58
Show Gist options
  • Save ksolvesnutra/d0d44dc5f3c888513b7c045523634528 to your computer and use it in GitHub Desktop.
Save ksolvesnutra/d0d44dc5f3c888513b7c045523634528 to your computer and use it in GitHub Desktop.
[issue#549] Script to update Videos related URLs in the content of various sections such as Products, Articles, Videos, Faqs, Studies Redirect-Pages, Sliding-Images.
artical_arr = []
faq_arr = []
study_arr = []
video_arr = []
product_arr = []
trnsf_pg = []
sliding_img = []
Video.find_each do |vid|
Article.where("
content LIKE '%videos/#{vid.id}-#{vid.title.parameterize}%' OR
content LIKE '%videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}%'
").each do |article|
artical_arr << article
end
Faq.where("
answer LIKE '%videos/#{vid.id}-#{vid.title.parameterize}%' OR
answer LIKE '%videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}%'
").each do |faq|
faq_arr << faq
end
Study.where("
brief_description LIKE '%videos/#{vid.id}-#{vid.title.parameterize}%' OR
brief_description LIKE '%videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}%'
").each do |study|
study_arr << study
end
Video.where("
description LIKE '%videos/#{vid.id}-#{vid.title.parameterize}%' OR
description LIKE '%videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}%'
").each do |video|
video_arr << video
end
Product.where("
description LIKE '%videos/#{vid.id}-#{vid.title.parameterize}%' OR
description LIKE '%videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}%' OR
highlights LIKE '%videos/#{vid.id}-#{vid.title.parameterize}%' OR
highlights LIKE '%videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}%' OR
suggested_use LIKE '%videos/#{vid.id}-#{vid.title.parameterize}%' OR
suggested_use LIKE '%videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}%' OR
supplement_facts LIKE '%videos/#{vid.id}-#{vid.title.parameterize}%' OR
supplement_facts LIKE '%videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}%' OR
quality LIKE '%videos/#{vid.id}-#{vid.title.parameterize}%' OR
quality LIKE '%videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}%' OR
verbiage LIKE '%videos/#{vid.id}-#{vid.title.parameterize}%' OR
verbiage LIKE '%videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}%'
").each do |product|
product_arr << product
end
TransferPage.where("
url LIKE '%videos/#{vid.id}-#{vid.title.parameterize}%' OR
url LIKE '%videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}%'
").each do |transfer_page|
trnsf_pg << transfer_page
end
SlidingImage.where("
url LIKE '%videos/#{vid.id}-#{vid.title.parameterize}%' OR
url LIKE '%videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}%'
").each do |slid_img|
sliding_img << slid_img
end
end
Disorder.related_with_video.each do |dis_obj|
Article.where("
content LIKE '%videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}%' OR
content LIKE '%videos/disorder/#{dis_obj.id}%'
").each do |article|
artical_arr << article
end
Faq.where("
answer LIKE '%videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}%' OR
answer LIKE '%videos/disorder/#{dis_obj.id}%'
").each do |faq|
faq_arr << faq
end
Study.where("
brief_description LIKE '%videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}%' OR
brief_description LIKE '%videos/disorder/#{dis_obj.id}%'
").each do |study|
study_arr << study
end
Video.where("
description LIKE '%videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}%' OR
description LIKE '%videos/disorder/#{dis_obj.id}%'
").each do |video|
video_arr << video
end
Product.where("
description LIKE '%videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}%' OR
description LIKE '%videos/disorder/#{dis_obj.id}%' OR
highlights LIKE '%videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}%' OR
highlights LIKE '%videos/disorder/#{dis_obj.id}%' OR
suggested_use LIKE '%videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}%' OR
suggested_use LIKE '%videos/disorder/#{dis_obj.id}%' OR
supplement_facts LIKE '%videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}%' OR
supplement_facts LIKE '%videos/disorder/#{dis_obj.id}%' OR
quality LIKE '%videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}%' OR
quality LIKE '%videos/disorder/#{dis_obj.id}%' OR
verbiage LIKE '%videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}%' OR
verbiage LIKE '%videos/disorder/#{dis_obj.id}%'
").each do |product|
product_arr << product
end
TransferPage.where("
url LIKE '%videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}%' OR
url LIKE '%videos/disorder/#{dis_obj.id}%'
").each do |transfer_page|
trnsf_pg << transfer_page
end
SlidingImage.where("
url LIKE '%videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}%' OR
url LIKE '%videos/disorder/#{dis_obj.id}%'
").each do |slid_img|
sliding_img << slid_img
end
end
[ artical_arr.uniq.count, faq_arr.uniq.count, study_arr.uniq.count, video_arr.uniq.count, product_arr.uniq.count, trnsf_pg.uniq.count, sliding_img.uniq.count ]
Video.find_each do |vid|
puts "Current Video: '#{vid.title}'";
puts "Video id: '#{vid.id}'";
Article.where("
content LIKE '%videos/#{vid.id}-#{vid.title.parameterize}%' OR
content LIKE '%videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}%'
").each do |article|
article.update_attributes(
content: article.content.gsub("videos/#{vid.id}-#{vid.title.parameterize}", "videos/#{vid.slug}").gsub("videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}", "videos/#{vid.slug}")
)
puts "updated article: { #{article.title}, #{article.id} }";
end
Faq.where("
answer LIKE '%videos/#{vid.id}-#{vid.title.parameterize}%' OR
answer LIKE '%videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}%'
").each do |faq|
faq.update_attributes(
answer: faq.answer.gsub("videos/#{vid.id}-#{vid.title.parameterize}", "videos/#{vid.slug}").gsub("videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}", "videos/#{vid.slug}")
)
puts "updated faq: { #{faq.question}, #{faq.id} }";
end
Study.where("
brief_description LIKE '%videos/#{vid.id}-#{vid.title.parameterize}%' OR
brief_description LIKE '%videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}%'
").each do |study|
study.update_attributes(
brief_description: study.brief_description.gsub("videos/#{vid.id}-#{vid.title.parameterize}", "videos/#{vid.slug}").gsub("videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}", "videos/#{vid.slug}")
)
puts "updated study: { #{study.title}, #{study.id} }";
end
Video.where("
description LIKE '%videos/#{vid.id}-#{vid.title.parameterize}%' OR
description LIKE '%videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}%'
").each do |video|
video.update_attributes(
description: video.description.gsub("videos/#{vid.id}-#{vid.title.parameterize}", "videos/#{vid.slug}").gsub("videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}", "videos/#{vid.slug}")
)
puts "updated video: { #{video.title}, #{video.id} }";
end
Product.where("
description LIKE '%videos/#{vid.id}-#{vid.title.parameterize}%' OR
description LIKE '%videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}%' OR
highlights LIKE '%videos/#{vid.id}-#{vid.title.parameterize}%' OR
highlights LIKE '%videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}%' OR
suggested_use LIKE '%videos/#{vid.id}-#{vid.title.parameterize}%' OR
suggested_use LIKE '%videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}%' OR
supplement_facts LIKE '%videos/#{vid.id}-#{vid.title.parameterize}%' OR
supplement_facts LIKE '%videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}%' OR
quality LIKE '%videos/#{vid.id}-#{vid.title.parameterize}%' OR
quality LIKE '%videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}%' OR
verbiage LIKE '%videos/#{vid.id}-#{vid.title.parameterize}%' OR
verbiage LIKE '%videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}%'
").each do |product|
product.update_attributes(
description: product.description.gsub("videos/#{vid.id}-#{vid.title.parameterize}", "videos/#{vid.slug}").gsub("videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}", "videos/#{vid.slug}"),
highlights: product.highlights.gsub("videos/#{vid.id}-#{vid.title.parameterize}", "videos/#{vid.slug}").gsub("videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}", "videos/#{vid.slug}"),
suggested_use: product.suggested_use.gsub("videos/#{vid.id}-#{vid.title.parameterize}", "videos/#{vid.slug}").gsub("videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}", "videos/#{vid.slug}"),
supplement_facts: product.supplement_facts.gsub("videos/#{vid.id}-#{vid.title.parameterize}", "videos/#{vid.slug}").gsub("videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}", "videos/#{vid.slug}"),
quality: product.quality.gsub("videos/#{vid.id}-#{vid.title.parameterize}", "videos/#{vid.slug}").gsub("videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}", "videos/#{vid.slug}"),
verbiage: product.verbiage.gsub("videos/#{vid.id}-#{vid.title.parameterize}", "videos/#{vid.slug}").gsub("videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}", "videos/#{vid.slug}")
)
puts "updated product: { #{product.name}, #{product.id} }";
end
TransferPage.where("
url LIKE '%videos/#{vid.id}-#{vid.title.parameterize}%' OR
url LIKE '%videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}%'
").each do |transfer_page|
transfer_page.update_attributes(
url: transfer_page.url.gsub("videos/#{vid.id}-#{vid.title.parameterize}", "videos/#{vid.slug}").gsub("videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}", "videos/#{vid.slug}")
)
puts "updated transfer_page: { #{transfer_page.name}, #{transfer_page.id} }";
end
SlidingImage.where("
url LIKE '%videos/#{vid.id}-#{vid.title.parameterize}%' OR
url LIKE '%videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}%'
").each do |slid_img|
slid_img.update_attributes(
url: slid_img.url.gsub("videos/#{vid.id}-#{vid.title.parameterize}", "videos/#{vid.slug}").gsub("videos/#{vid.id}-#{CGI.escape(vid.title.downcase.gsub(" ", "-"))}", "videos/#{vid.slug}")
)
puts "updated sliding_img: { #{slid_img.id} }";
end
end
Disorder.related_with_video.each do |dis_obj|
Article.where("
content LIKE '%videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}%' OR
content LIKE '%videos/disorder/#{dis_obj.id}%'
").each do |article|
article.update_attributes(
content: article.content.gsub("videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}", "videos/disorder/#{dis_obj.slug}").gsub("videos/disorder/#{dis_obj.id}", "videos/disorder/#{dis_obj.slug}")
)
puts "updated article: { #{article.title}, #{article.id} }";
end
Faq.where("
answer LIKE '%videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}%' OR
answer LIKE '%videos/disorder/#{dis_obj.id}%'
").each do |faq|
faq.update_attributes(
answer: faq.answer.gsub("videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}", "videos/disorder/#{dis_obj.slug}").gsub("videos/disorder/#{dis_obj.id}", "videos/disorder/#{dis_obj.slug}")
)
puts "updated faq: { #{faq.question}, #{faq.id} }";
end
Study.where("
brief_description LIKE '%videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}%' OR
brief_description LIKE '%videos/disorder/#{dis_obj.id}%'
").each do |study|
study.update_attributes(
brief_description: study.brief_description.gsub("videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}", "videos/disorder/#{dis_obj.slug}").gsub("videos/disorder/#{dis_obj.id}", "videos/disorder/#{dis_obj.slug}")
)
puts "updated study: { #{study.title}, #{study.id} }";
end
Video.where("
description LIKE '%videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}%' OR
description LIKE '%videos/disorder/#{dis_obj.id}%'
").each do |video|
video.update_attributes(
description: video.description.gsub("videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}", "videos/disorder/#{dis_obj.slug}").gsub("videos/disorder/#{dis_obj.id}", "videos/disorder/#{dis_obj.slug}")
)
puts "updated video: { #{video.title}, #{video.id} }";
end
Product.where("
description LIKE '%videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}%' OR
description LIKE '%videos/disorder/#{dis_obj.id}%' OR
highlights LIKE '%videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}%' OR
highlights LIKE '%videos/disorder/#{dis_obj.id}%' OR
suggested_use LIKE '%videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}%' OR
suggested_use LIKE '%videos/disorder/#{dis_obj.id}%' OR
supplement_facts LIKE '%videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}%' OR
supplement_facts LIKE '%videos/disorder/#{dis_obj.id}%' OR
quality LIKE '%videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}%' OR
quality LIKE '%videos/disorder/#{dis_obj.id}%' OR
verbiage LIKE '%videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}%' OR
verbiage LIKE '%videos/disorder/#{dis_obj.id}%'
").each do |product|
product.update_attributes(
description: product.description.gsub("videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}", "videos/disorder/#{dis_obj.slug}").gsub("videos/disorder/#{dis_obj.id}", "videos/disorder/#{dis_obj.slug}"),
highlights: product.highlights.gsub("videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}", "videos/disorder/#{dis_obj.slug}").gsub("videos/disorder/#{dis_obj.id}", "videos/disorder/#{dis_obj.slug}"),
suggested_use: product.suggested_use.gsub("videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}", "videos/disorder/#{dis_obj.slug}").gsub("videos/disorder/#{dis_obj.id}", "videos/disorder/#{dis_obj.slug}"),
supplement_facts: product.supplement_facts.gsub("videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}", "videos/disorder/#{dis_obj.slug}").gsub("videos/disorder/#{dis_obj.id}", "videos/disorder/#{dis_obj.slug}"),
quality: product.quality.gsub("videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}", "videos/disorder/#{dis_obj.slug}").gsub("videos/disorder/#{dis_obj.id}", "videos/disorder/#{dis_obj.slug}"),
verbiage: product.verbiage.gsub("videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}", "videos/disorder/#{dis_obj.slug}").gsub("videos/disorder/#{dis_obj.id}", "videos/disorder/#{dis_obj.slug}")
)
puts "updated product: { #{product.name}, #{product.id} }";
end
TransferPage.where("
url LIKE '%videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}%' OR
url LIKE '%videos/disorder/#{dis_obj.id}%'
").each do |transfer_page|
transfer_page.update_attributes(
url: transfer_page.url.gsub("videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}", "videos/disorder/#{dis_obj.slug}").gsub("videos/disorder/#{dis_obj.id}", "videos/disorder/#{dis_obj.slug}")
)
puts "updated transfer_page: { #{transfer_page.name}, #{transfer_page.id} }";
end
SlidingImage.where("
url LIKE '%videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}%' OR
url LIKE '%videos/disorder/#{dis_obj.id}%'
").each do |slid_img|
slid_img.update_attributes(
url: slid_img.url.gsub("videos?q%5Bvideo_disorders_disorder_id_eq%5D=#{dis_obj.id}", "videos/disorder/#{dis_obj.slug}").gsub("videos/disorder/#{dis_obj.id}", "videos/disorder/#{dis_obj.slug}")
)
puts "updated sliding_img: { #{slid_img.id} }";
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment