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

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 imagenes *.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

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.)

Ve a la ruta de publicaciones instaladas de JW Library y ubica la carpeta jy_E . O descarga el archivo jy_E.jwpub y descomprímelo. Abre el archivo manifest.json de la publicación con ayuda del programa Notepad++.

Muy similar al conocido Notepad o Bloc de Notas que se incluye en las versiones de Windows para PC, pero con muchas más funciones y herramientas, Notepad++ (o plus plus) nos proporciona un entorno avanzado para editar archivos en diferentes lenguajes de programación.

Y veremos las diferentes cadenas de texto coloreadas de acuerdo a los valores o atributos que contengan, muy similar a Sigil, 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 comprenderlo y aplicarlo a tus archivos una vez termines tu proyecto.

"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 winrar u otro software similar.

El archivo resultante debes renombralo 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.

Seguro estás pensando que cambiarlas una por una sería algo tedioso, y es verdad. Pero no te preocupes, usaremos una opción de notepad++ para arreglar esto.

Ve al menú Editar y selecciona la opción MAYÚSCULAS/minúsculas > y luego Convertir 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. 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 públicació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. Para ver el número de tu idioma consulta acá.

"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 disponibles en este tema.

"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)

"images": [

{

"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 imagenes tipo T (tile) puedes obtener la firma de la imagen más grande 600×600 y repetir la firma en el resto de las imagenes 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 acá.

El resto de los valores permanece en blanco.
"attributes": [

],


"issueAttributes": [


],

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 periodica. Revisa una Guía de Actividades o revista como referencia para saber cómo debes llenar este campo.

"issueProperties": {

"title": "",


"undatedTitle": "",


"coverTitle": "",


"symbol": "",


"undatedSymbol": ""


}

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! 👏👏👏

Ahora que ya tienes los conocimientos principales para crear publicaciones en este formato te invito a que te hagas miembro JW Creador. Esto te permitirá solicitar tus propios JWTokens y será un gran apoyo para mí, pues me permitirá seguir sosteniendo este sitio web además de muchos otros proyectos que tengo en mente, y por supuesto tu obtendrás grandes beneficios. Mira más información al respecto en esta página.

Sigue atento a mi sitio web, pues hay muchas otras cosas que aprender. Mientras tanto, seguiré actualizando y dando soporte al formato JWPUB mediante otras aplicaciones. Espero que al momento esta información te haya beneficiado. Ahora lo que sigue… ¡Apliquemos lo aprendido! ✌️

 

 

Anterior

You may also like...

Deja un comentario