瀏覽代碼

Исправление автоформирования заголовка при вставке из буфера обмена

Book Pauk 6 年之前
父節點
當前提交
a4b56b477d

+ 9 - 6
client/components/Reader/LoaderPage/PasteTextPage/PasteTextPage.vue

@@ -26,6 +26,7 @@ import Component from 'vue-class-component';
 
 import Window from '../../../share/Window.vue';
 import _ from 'lodash';
+import * as utils from '../../../../share/utils';
 
 export default @Component({
     components: {
@@ -42,7 +43,7 @@ class PasteTextPage extends Vue {
         this.$refs.textArea.focus();
     }
 
-    getNonEmptyLine(text, count) {
+    getNonEmptyLine3words(text, count) {
         let result = '';
         const lines = text.split("\n");
         let i = 0;
@@ -56,21 +57,23 @@ class PasteTextPage extends Vue {
             }
             i++;
         }
-        return result;
+
+        result = result.trim().split(' ');
+        return result.slice(0, 3).join(' ');
     }
 
     calcTitle(event) {
         if (this.bookTitle == '') {
             let text = event.clipboardData.getData('text');
-            this.bookTitle = _.compact([
-                this.getNonEmptyLine(text, 1),
-                this.getNonEmptyLine(text, 2)
+            this.bookTitle = `Из буфера обмена ${utils.formatDate(new Date(), 'noDate')}: ` + _.compact([
+                this.getNonEmptyLine3words(text, 1),
+                this.getNonEmptyLine3words(text, 2)
             ]).join(' - ');
         }
     }
 
     loadBuffer() {
-        this.$emit('load-buffer', {buffer: `<title>${this.bookTitle}</title>${this.$refs.textArea.value}`});
+        this.$emit('load-buffer', {buffer: `<cut-title>${this.bookTitle}</cut-title>${this.$refs.textArea.value}`});
         this.close();
     }
 

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

@@ -9,6 +9,7 @@ export const versionHistory = [
     <li>исправлен баг - не распознавались некоторые книги формата fb2 в кодировке utf8</li>
     <li>добавлены новые варианты анимации перелистывания</li>
     <li>улучшены прогрессбары</li>
+    <li>исправления недочетов</li>
 </ul>
 `
 },

+ 2 - 0
client/share/utils.js

@@ -41,6 +41,8 @@ export function formatDate(d, format) {
                 `${d.getHours().toString().padStart(2, '0')}:${d.getMinutes().toString().padStart(2, '0')}`;
         case 'coDate':
             return `${d.getFullYear()}-${(d.getMonth() + 1).toString().padStart(2, '0')}-${d.getDate().toString().padStart(2, '0')}`;
+        case 'noDate':
+            return `${d.getDate().toString().padStart(2, '0')}.${(d.getMonth() + 1).toString().padStart(2, '0')}.${d.getFullYear()}`;
     }
     
 }

+ 6 - 3
server/core/BookConverter/ConvertHtml.js

@@ -28,7 +28,7 @@ class ConvertHtml extends ConvertBase {
         } else {
             isText = opts.isText;
         }
-        const {cutTitle} = opts;
+        let {cutTitle} = opts;
 
         let titleInfo = {};
         let desc = {_n: 'description', 'title-info': titleInfo};
@@ -123,8 +123,11 @@ class ConvertHtml extends ConvertBase {
                 }
             }
 
-            if (tag == 'title')
+            if (tag == 'title' || tag == 'cut-title') {
                 inTitle = true;
+                if (tag == 'cut-title')
+                    cutTitle = true;
+            }
 
             if (tag == 'fb2-image') {
                 inImage = true;
@@ -153,7 +156,7 @@ class ConvertHtml extends ConvertBase {
                 }
             }
 
-            if (tag == 'title')
+            if (tag == 'title' || tag == 'cut-title')
                 inTitle = false;
 
             if (tag == 'fb2-image')