Update ranobelib.ts (#1138)
This commit is contained in:
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user