Merge branch 'release/1.2.6'
This commit is contained in:
@@ -416,7 +416,7 @@ class Reader {
|
|||||||
await wallpaperStorage.init();
|
await wallpaperStorage.init();
|
||||||
await coversStorage.init();
|
await coversStorage.init();
|
||||||
|
|
||||||
await bookManager.init(this.settings, this.restricted);
|
await bookManager.init(this.settings);
|
||||||
bookManager.addEventListener(this.bookManagerEvent);
|
bookManager.addEventListener(this.bookManagerEvent);
|
||||||
|
|
||||||
if (this.$root.getRootRoute() == '/reader') {
|
if (this.$root.getRootRoute() == '/reader') {
|
||||||
@@ -1267,6 +1267,19 @@ class Reader {
|
|||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
isUrlAllowed(url) {
|
||||||
|
const restrictedSites = this.restricted?.sites;
|
||||||
|
if (restrictedSites) {
|
||||||
|
url = url.toLowerCase();
|
||||||
|
for (const site of restrictedSites) {
|
||||||
|
if (url.indexOf(site) === 0)
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
async _loadBook(opts) {
|
async _loadBook(opts) {
|
||||||
if (!opts || !opts.url) {
|
if (!opts || !opts.url) {
|
||||||
this.mostRecentBook();
|
this.mostRecentBook();
|
||||||
@@ -1277,6 +1290,11 @@ class Reader {
|
|||||||
|
|
||||||
let url = encodeURI(decodeURI(opts.url));
|
let url = encodeURI(decodeURI(opts.url));
|
||||||
|
|
||||||
|
if (!this.isUrlAllowed(url)) {
|
||||||
|
this.$root.stdDialog.alert('Книга не загружена, причина: нарушение авторских прав.<br>Приносим извинения за неудобство.', '', {color: 'negative'});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if ((url.indexOf('http://') != 0) && (url.indexOf('https://') != 0) &&
|
if ((url.indexOf('http://') != 0) && (url.indexOf('https://') != 0) &&
|
||||||
(url.indexOf('disk://') != 0))
|
(url.indexOf('disk://') != 0))
|
||||||
url = 'http://' + url;
|
url = 'http://' + url;
|
||||||
|
|||||||
@@ -1,8 +0,0 @@
|
|||||||
export default {
|
|
||||||
restrictedData: `<?xml version="1.0" encoding="utf-8"?>
|
|
||||||
<FictionBook xmlns="http://www.gribuser.ru/xml/fictionbook/2.0" xmlns:l="http://www.w3.org/1999/xlink">
|
|
||||||
<description><title-info><book-title>Нарушение авторских прав</book-title></title-info></description>
|
|
||||||
<body><section><p>Книга не загружена по причине нарушения авторских прав.</p></section></body>
|
|
||||||
</FictionBook>`,
|
|
||||||
|
|
||||||
};
|
|
||||||
@@ -3,7 +3,6 @@ import path from 'path-browserify';
|
|||||||
import _ from 'lodash';
|
import _ from 'lodash';
|
||||||
|
|
||||||
import BookParser from './BookParser';
|
import BookParser from './BookParser';
|
||||||
import bmHelper from './bmHelper';
|
|
||||||
import readerApi from '../../../api/reader';
|
import readerApi from '../../../api/reader';
|
||||||
import coversStorage from './coversStorage';
|
import coversStorage from './coversStorage';
|
||||||
import * as utils from '../../../share/utils';
|
import * as utils from '../../../share/utils';
|
||||||
@@ -27,10 +26,9 @@ const bmRecentStoreNew = localForage.createInstance({
|
|||||||
});
|
});
|
||||||
|
|
||||||
class BookManager {
|
class BookManager {
|
||||||
async init(settings, restricted) {
|
async init(settings) {
|
||||||
this.loaded = false;
|
this.loaded = false;
|
||||||
this.settings = settings;
|
this.settings = settings;
|
||||||
this.restricted = restricted;
|
|
||||||
|
|
||||||
this.eventListeners = [];
|
this.eventListeners = [];
|
||||||
this.books = {};
|
this.books = {};
|
||||||
@@ -234,18 +232,6 @@ class BookManager {
|
|||||||
return inflator.result;
|
return inflator.result;
|
||||||
}
|
}
|
||||||
|
|
||||||
isUrlAllowed(url) {
|
|
||||||
const restrictedSites = this.restricted?.sites;
|
|
||||||
if (restrictedSites) {
|
|
||||||
for (const site of restrictedSites) {
|
|
||||||
if (url.indexOf(site) === 0)
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
async addBook(newBook, callback) {
|
async addBook(newBook, callback) {
|
||||||
let meta = {url: newBook.url, path: newBook.path};
|
let meta = {url: newBook.url, path: newBook.path};
|
||||||
|
|
||||||
@@ -362,10 +348,6 @@ class BookManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async parseBook(meta, data, callback) {
|
async parseBook(meta, data, callback) {
|
||||||
if (!this.isUrlAllowed(meta.url)) {
|
|
||||||
data = bmHelper.restrictedData;
|
|
||||||
}
|
|
||||||
|
|
||||||
const parsed = new BookParser(this.settings);
|
const parsed = new BookParser(this.settings);
|
||||||
|
|
||||||
const parsedMeta = await parsed.parse(data, callback);
|
const parsedMeta = await parsed.parse(data, callback);
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
export const versionHistory = [
|
export const versionHistory = [
|
||||||
{
|
{
|
||||||
version: '1.2.5',
|
version: '1.2.6',
|
||||||
releaseDate: '2024-10-03',
|
releaseDate: '2024-10-03',
|
||||||
showUntil: '2024-10-02',
|
showUntil: '2024-10-02',
|
||||||
content:
|
content:
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "liberama",
|
"name": "liberama",
|
||||||
"version": "1.2.5",
|
"version": "1.2.6",
|
||||||
"author": "Book Pauk <bookpauk@gmail.com>",
|
"author": "Book Pauk <bookpauk@gmail.com>",
|
||||||
"license": "CC0-1.0",
|
"license": "CC0-1.0",
|
||||||
"repository": "bookpauk/liberama",
|
"repository": "bookpauk/liberama",
|
||||||
|
|||||||
Reference in New Issue
Block a user