Update ranobelib.ts (#1138)

This commit is contained in:
Rider21
2024-08-14 17:55:43 +03:00
committed by GitHub
parent dc6aac57d1
commit 0bec28790e
+16 -7
View File
@@ -18,7 +18,7 @@ class RLIB implements Plugin.PluginBase {
name = 'RanobeLib'; name = 'RanobeLib';
site = 'https://ranobelib.me'; site = 'https://ranobelib.me';
apiSite = 'https://api.lib.social/api/manga/'; apiSite = 'https://api.lib.social/api/manga/';
version = '2.0.1'; version = '2.0.2';
icon = 'src/ru/ranobelib/icon.png'; icon = 'src/ru/ranobelib/icon.png';
webStorageUtilized = true; webStorageUtilized = true;
@@ -189,7 +189,7 @@ class RLIB implements Plugin.PluginBase {
).then(res => res.json()); ).then(res => res.json());
chapterText = chapterText =
result?.data?.content?.type == 'doc' result?.data?.content?.type == 'doc'
? jsonToHtml(result.data.content.content) ? jsonToHtml(result.data.content.content, result.data.attachments)
: result?.data?.content; : result?.data?.content;
} }
@@ -477,7 +477,7 @@ class RLIB implements Plugin.PluginBase {
export default new RLIB(); export default new RLIB();
function jsonToHtml(json: HTML[], html = '') { function jsonToHtml(json: HTML[], images, html = '') {
json.forEach(element => { json.forEach(element => {
switch (element.type) { switch (element.type) {
case 'hardBreak': case 'hardBreak':
@@ -487,7 +487,16 @@ function jsonToHtml(json: HTML[], html = '') {
html += '<hr>'; html += '<hr>';
break; break;
case 'image': case 'image':
if (element.attrs) { if (element.attrs?.images?.length) {
element.attrs.images.forEach(({ image }) => {
const file = images.find(
file => file.name == image || file.id == image,
);
if (file) {
html += `<img src='${file.url}'>`;
}
});
} else if (element.attrs) {
const attrs = Object.entries(element.attrs) const attrs = Object.entries(element.attrs)
.filter(attr => attr?.[1]) .filter(attr => attr?.[1])
.map(attr => `${attr[0]}="${attr[1]}"`); .map(attr => `${attr[0]}="${attr[1]}"`);
@@ -497,13 +506,13 @@ function jsonToHtml(json: HTML[], html = '') {
case 'paragraph': case 'paragraph':
html += html +=
'<p>' + '<p>' +
(element.content ? jsonToHtml(element.content) : '<br>') + (element.content ? jsonToHtml(element.content, images) : '<br>') +
'</p>'; '</p>';
break; break;
case 'heading': case 'heading':
html += html +=
'<h2>' + '<h2>' +
(element.content ? jsonToHtml(element.content) : '<br>') + (element.content ? jsonToHtml(element.content, images) : '<br>') +
'</h2>'; '</h2>';
break; break;
case 'text': case 'text':
@@ -649,7 +658,7 @@ interface Subscription {
} }
interface Attachment { interface Attachment {
id: null; id?: string;
filename: string; filename: string;
name: string; name: string;
extension: string; extension: string;