瀏覽代碼

Merge branch 'release/1.2.6'

Book Pauk 7 月之前
父節點
當前提交
6667688193

+ 19 - 1
client/components/Reader/Reader.vue

@@ -416,7 +416,7 @@ class Reader {
             await wallpaperStorage.init();
             await coversStorage.init();
             
-            await bookManager.init(this.settings, this.restricted);
+            await bookManager.init(this.settings);
             bookManager.addEventListener(this.bookManagerEvent);
 
             if (this.$root.getRootRoute() == '/reader') {
@@ -1267,6 +1267,19 @@ class Reader {
         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) {
         if (!opts || !opts.url) {
             this.mostRecentBook();
@@ -1277,6 +1290,11 @@ class Reader {
 
         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) &&
             (url.indexOf('disk://') != 0))
             url = 'http://' + url;

+ 0 - 8
client/components/Reader/share/bmHelper.js

@@ -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>`,
-
-};

+ 1 - 19
client/components/Reader/share/bookManager.js

@@ -3,7 +3,6 @@ import path from 'path-browserify';
 import _ from 'lodash';
 
 import BookParser from './BookParser';
-import bmHelper from './bmHelper';
 import readerApi from '../../../api/reader';
 import coversStorage from './coversStorage';
 import * as utils from '../../../share/utils';
@@ -27,10 +26,9 @@ const bmRecentStoreNew = localForage.createInstance({
 });
 
 class BookManager {
-    async init(settings, restricted) {
+    async init(settings) {
         this.loaded = false;
         this.settings = settings;
-        this.restricted = restricted;
 
         this.eventListeners = [];
         this.books = {};
@@ -234,18 +232,6 @@ class BookManager {
         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) {        
         let meta = {url: newBook.url, path: newBook.path};
 
@@ -362,10 +348,6 @@ class BookManager {
     }
 
     async parseBook(meta, data, callback) {
-        if (!this.isUrlAllowed(meta.url)) {
-            data = bmHelper.restrictedData;
-        }
-
         const parsed = new BookParser(this.settings);
 
         const parsedMeta = await parsed.parse(data, callback);

+ 1 - 1
client/components/Reader/versionHistory.js

@@ -1,6 +1,6 @@
 export const versionHistory = [
 {
-    version: '1.2.5',
+    version: '1.2.6',
     releaseDate: '2024-10-03',
     showUntil: '2024-10-02',
     content:

+ 1 - 1
package.json

@@ -1,6 +1,6 @@
 {
   "name": "liberama",
-  "version": "1.2.5",
+  "version": "1.2.6",
   "author": "Book Pauk <bookpauk@gmail.com>",
   "license": "CC0-1.0",
   "repository": "bookpauk/liberama",