Skip to content

Lección 10: Editando el archivo manifest.json correctamente

Livrädo Sandoval edited this page Sep 5, 2023 · 1 revision

Ya casi terminamos con estas series de lecciones. Nos hemos propuesto analizar cada elemento que compone un JWPUB y ya sabemos a un grado razonable cómo funciona.

Al descomprimir estos archivos, vimos qué es y cómo funcionan algunas de las tablas de nuestra base de datos del archivo *.db con ayuda del DB Browser. También aprendimos cómo enlazar nuestro documento a los archivos de imágenes *.jpg con su código HTML correspondiente. Sin embargo todavía hay un archivo dentro del JWPUB que he decidido dejar al final y que será el cierre de esta serie de lecciones: El archivo manifest.json

Los archivos en formato JSON, son utilizados por aplicaciones, y páginas web para guardar estructuras de datos simples que sean legibles en un formato de texto normal. En el caso de JW Library, los archivos manifest.json, podríamos decir de forma sencilla que son la carta de presentación del archivo JWPUB que se instalará. Pues contienen datos informativos, entre ellos, el tipo de publicación que contiene, el título, categoría, tamaño, firmas, etc.

A continuación te mostraré el archivo manifest.json de nuestro libro “Jesus—The Way, the Truth, the Life” (Jesús: el camino, la verdad y la vida.) Descarga el archivo jy_E.jwpub y descomprímelo. Abre el archivo manifest.json de la publicación con ayuda del programa Sublime Text.

Veamos las diferentes cadenas de texto coloreadas de acuerdo a los valores o atributos que contengan, facilitando así su edición.

Te mostraré a grandes rasgos para que se usa cada campo y conjunto de bloques, (aunque en JSON se les llama claves a estos objetos, pero para no confundirnos simplificaremos) a fin de que puedas comprender y aplicarlo a tus archivos una vez termines tu proyecto.

Captura de pantalla (386)

"name": "jy_E.jwpub" Nombre de la empaquetación final en el formato JWPUB. Por supuesto consiste en el símbolo de la publicación y el código de idioma. Más la extensión JWPUB.

"hash": "925a0fb987fba9a80fa86345944340d1c092622be7dd584b7afb88ab14bb176c" Firma única o hash de cada publicación empaquetada (Archivo contents) con el algoritmo SHA-256. Para conseguir esta firma solo necesitas un software que pueda calcular el hash o firma del archivo contents. Puedes hacer lo siguiente:

Cuando hayas terminado tu proyecto, selecciona todos los archivos, a excepción del archivo manifest.json para comprimir las imágenes jpg y el archivo *.db en formato ZIP. Puedes usar 7-Zip, WinRAR u otro software similar. Personalmente, uso el que viene incluido con Windows.

El archivo resultante debes renombrarlo como “contents” sin extensión: Vamos a usar la aplicación HxD, un editor hexadecimal para calcular el hash del archivo contents. Puedes abrir la aplicación y arrastrar el archivo contents sobre ésta o de la forma tradicional desde el menú de esta herramienta. A continuación ve al menú Análisis y selecciona la opción Sumas de verificación… Al abrirse el cuadro “Generar sumas de verificación”, selecciona el algoritmo SHA-256.

El programa tardará un momento dependiendo de la longitud del archivo y te arrojará una firma única o hash que no será igual al de ninguna otra publicación. Selecciónala y dale copiar. Pega esa firma en el archivo manifest, del campo “hash”. Hemos conseguido un hash o firma formado por letras y números, tal y como lo establece este algoritmo. Pero esas letras debemos convertirlas a minúsculas.

Y listo, ahora sí tendremos un hash válido para nuestra publicación. A continuación verás algunos parámetros fáciles que puedes deducir por ti mismo. Pero aún así incluyen una breve explicación. Los valores que no tengan ninguna explicación, puedes optar por poner el mismo valor en tus archivos. Otros campos incluyen además una explicación más amplia por lo que te invito a analizarlos detenidamente.

"timestamp": "2017-02-23T16:36:56Z" Fecha y hora de creación en la publicación en formato Año/Mes/Día

"version": 1,

"expandedSize": 48278439, Tamaño del archivo desempaquetado (contents) en bytes.

Este campo se refiere al tamaño que ocupa la publicación una vez que se hayan descomprimido las imágenes y la base de datos. Para obtener este valor, puedes ver el tamaño del archivo (más bien carpeta contents) haciendo clic derecho sobre este y viendo las propiedades. Copiando el tamaño en bytes, asignarás un valor exacto del tamaño de tu publicación.

Estos valores pueden dejarse como están:

"contentFormat": "z-a", "htmlValidated": false, "mepsPlatformVersion": 2.100000, "mepsBuildNumber": 7098,

Pasemos al siguiente bloque:

"publication": { "fileName": "jy_E.db", Nombre de la base de datos local. "type": 1,

Estos serán los títulos completos y abreviados que aparecerán en el catálogo de publicaciones. Por favor respeta el siguiente formato una vez que hagas tu proyecto.

"title": "Jesus—The Way, the Truth, the Life", "shortTitle": "Jesus—The Way", "displayTitle": "Jesus—The Way (jy)", "referenceTitle": "Jesus—The Way", "undatedReferenceTitle": "Jesus—The Way",

Símbolo de la publicación sin código de idioma.

"symbol": "jy", "uniqueEnglishSymbol": "jy", "uniqueSymbol": "jy", "undatedSymbol": "jy", "englishSymbol": "jy",

"language": 0, “0” Número de lenguaje correspondiente al idioma inglés.

"hash": "36ff59b6a914874aeb5f4e7d27e48655735db107", Firma única o hash de la base de datos local *.db en el algoritmo SHA-1.

Este valor se obtiene de la misma manera que el hash del archivo contents. (Revisa el procedimiento) Pero en su lugar abrirás el archivo de la base de datos (*.db con HxD y seleccionarás el algoritmo SHA-1)

"minPlatformVersion": 1,

"schemaVersion": 8, Versión del esquema de la base de datos local.

"year": 2015, Año en que se editó la publicación en el lenguaje local.

"issueId": 0,

"issueNumber": 0, Número de publicación basado en la fecha de documentos mensuales o quincenales como las revistas, ministerios y Guía de Actividades. Puedes darte una idea de su formato abriendo el archivo manifest.json de alguna de estas publicaciones y replicandolas en tus proyectos.

"variation": "", Se modifica este valor en caso de publicaciones que hayan sido editadas para una región específica. Como Nuestro Ministerio del Reino que variaba por Sucursal. Al momento no he visto una publicación oficial usando este campo.

"publicationType": "Book", Tipo de publicación en este caso “Libro”, puedes consultar las categorías en un articulo publico en esta wiki.

"rootSymbol": "jy", Símbolo de la publicación base sin el código de idioma.

"rootYear": 2015, Año en el que se editó por primera vez esta publicación, casi siempre en inglés.

"rootLanguage": 0, Número de Idioma en la que fue editada originalmente la publicación, o idioma base. Casi siempre “0” (Inglés)

A continuación el siguiente bloque corresponde a las imágenes de presentación de la publicación. (Portadas y miniaturas por ejemplo)

"signature": "220b2bd1a7a8471b75733c39b056ad62d3666ec8:1200:1543", Firma única en algoritmo SHA-1 más las dimensiones de la imagen.

Obtén la firma de la misma manera que con el archivo contents y el *.db, usando el HxD y seleccionando el algoritmo SHA-1. Después a la firma resultante agrega los valores de altura y anchura de la imagen. En el caso de las imágenes tipo T (tile) puedes obtener la firma de la imagen más grande 600×600 y repetir la firma en el resto de las imágenes del mismo tipo. Solo no olvides agregar los valores de tamaño.

"fileName": "1102014600_E_cvr.jpg", – Nombre del archivo en formato JPG

"type": "c", Tipo “c” (cover), le indica a la aplicación que se trata de la Portada de la publicación en la primera página. Tipo “t” (Tile) indica que es la imagen que aparecerá en las miniaturas del catálogo y las referencias.

Verás que hay otros tipos como “lsr” y “pnr” pero estas imágenes son opcionales. Ya que no son visibles al usuario. Así que no es necesario agregar imágenes de este tipo. Si más adelante JW Library se actualiza y hace uso de estos archivos podremos ampliar este tema en un futuro.

"attribute": "r", Archivo “only-read” (solo lectura)

"width": 1200, Anchura de la imagen en píxeles.

"height": 1543 Altura de la imagen en píxeles

Fin del bloque o ficha de la imagen. Ahora viene la parte final del archivo.

"categories": [
"bk"
],

Aquí se coloca el valor de la categoría de forma abreviada. “bk” por “book” Para ver otras categorías de las publicaciones, consulta el articulo publicado en esta wiki. El resto de los valores permanece en blanco.

Este bloque final llamado “issuesProperties” (como dije antes en JSON a este objeto con llaves o corchetes se les llama “claves”) se le agregan valores solo cuando se trata de una publicación periódica. Revisa una Guía de Actividades o revista como referencia para saber cómo debes llenar este campo.

Se cuidadoso y revisa que cada llave o corchete, así como las comas estén en su lugar, ya que una mala edición en este archivo simplemente no permitirá la instalación de tu JWPUB. Por lo que te recomiendo que siempre tengas abierta en otra pestaña un archivo manifest.json de una publicación oficial y compares mientras editas tu propio archivo.

Ya que hayas terminado de editar el archivo manifest.json no olvides guardar los cambios. Solo queda, finalizar el archivo. Recuerda que debes comprimir todos los archivos, a excepción del archivo JSON. en formato ZIP y renombrarlo a contents. Luego comprime o empaqueta nuevamente tanto el archivo contents como el archivo manifest en un nuevo archivo ZIP. Que renombrarás al nombre de tu publicación o proyecto con la extensión JWPUB.

¡Y listo! Ya tendrás un JWPUB hecho por ti, listo para ser instalado. ¡Enhorabuena! 👏👏👏

Clone this wiki locally