Add script to migrate clients from wordpress mirror

This script iterates over all of the coops to pull their clients from
the individual co-op pages, normalises the filenames of the images and
creates an entry under `_clients`.
This commit is contained in:
Chris Lowis 2018-11-11 21:11:19 +00:00
parent b41eb0f80e
commit 146177184c
2 changed files with 25 additions and 1 deletions

View File

@ -67,7 +67,12 @@ class Coop
def clients def clients
doc.css('div.client-thumb-container').map do |node| doc.css('div.client-thumb-container').map do |node|
node.xpath('h5').text&.parameterize style = node.xpath('div/@style')
{
title: node.xpath('h5').text,
slug: node.xpath('h5').text&.parameterize,
logo: style.text.match(/background-image: url\((.*)\)/)[1]
}
end end
end end

View File

@ -0,0 +1,19 @@
require_relative 'coop'
require 'fileutils'
Coop.all.each do |coop|
coop.clients.each do |client|
current_logo_path = File.join(File.dirname(__FILE__), 'mirror', 'coops.tech.archived.website', 'co-op', client[:logo])
new_logo_path = File.join(File.dirname(__FILE__), '..', 'images', 'clients', client[:slug] + File.extname(current_logo_path))
FileUtils.cp(current_logo_path, new_logo_path)
client_md_path = File.join(File.dirname(__FILE__), '..', '_clients', client[:slug] + '.md')
File.open(client_md_path, 'w') do |file|
file.write("---\n")
file.write("title: #{client[:title]}\n")
file.write("---\n")
end
end
end