Exportar datos de Google Books e importar a GoodReads
Google Books parece abocado a desaparecer cualquier dia de estos tal como Google nos tiene acostumbrados. GoodReads está bien pensado y esperemos dure algo más.
Se trata de pasar nuestros datos de Google Books y pasarlos a GoodReads de la forma más fácil posible.
- exportar a xml de GoogleBooks
- pasar script de lua
- con los datos de salida de ese script grabar fichero .csv (recomienda GoodReads separador la ",")
- importar a GoodReads
Exportar
GoogleBooks permite exportar los datos que tengamos de libros exportando de librería en librería (prime problema como tengamos varias "Estanterías") en formato XML. Tenemos que ir a la estantería que queramos y en el botón de configuración escoger la opción de exportar a xml.
Obtendremos ficheros xml de esta pinta
Script en Lua
Pasar el siguiente script de forma './xml_googlebooks.lua ficheroxmlexportado'
#!/usr/bin/env lua
--[[ 29.07.2021
* exporto estantería a estantería de google books
* prefiero pasar: './xml_books.lua tintin.xml>> tsv_biblioteca.csv' uno a uno
* ese fichero tsv pasarlo a formato columnas goodreads que parece más normal
--]]
local xml2lua = require("xml2lua")
local handler = require("xmlhandler.tree")
function resumenxml(fichero)
--print(fichero)
local i, p
local libreria, titulo, autor, idtipo, idvalor
local xml = xml2lua.loadFile(fichero)
local parser = xml2lua.parser(handler)
parser:parse(xml)
libreria = handler.root.library.list_title
print("FICHERO\tLIBRERÍA\tTÍTULO\tAUTOR\tidTIPO\tISBN")
for i, p in pairs(handler.root.library.books.book) do
titulo = p.title
autor = p.contributor
idtipo = ''
idvalor = ''
if (p.identifier ~= nil) then
idtipo = p.identifier.type
idvalor = p.identifier.value
end
print(string.format("%s\t%s\t%s\t%s\t%s\t%s", fichero, libreria, titulo, autor, idtipo, idvalor))
end
end
resumenxml(arg[1])
Obtendremos una salida del tipo
que podremos redireccionar a fichero o lo que queramos. Las cabeceras que he puesto en el script no coinciden con las que GoodReads quiere pero prefiero así para tener más claro lo que meter en cada columna del siguiente paso.
Genera tu fichero para importar como tú quieras
Por último se recomienda generar un '*.csv' con la cabecera de columnas que recomienda GoodReads pero con los datos obtenidos anteriormente.
Title, Author, ISBN, My Rating, Average Rating, Publisher, Binding, Year Published, Original Publication Year, Date Read, Date Added, Bookshelves, My Review
Ya podemos ir a GoodReads a importar el fichero.
https://www.goodreads.com/review/import