diff --git a/client/components/Reader/LoaderPage/PasteTextPage/PasteTextPage.vue b/client/components/Reader/LoaderPage/PasteTextPage/PasteTextPage.vue index b17fcd05..b42d119c 100644 --- a/client/components/Reader/LoaderPage/PasteTextPage/PasteTextPage.vue +++ b/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: `${this.bookTitle}${this.$refs.textArea.value}`}); + this.$emit('load-buffer', {buffer: `${this.bookTitle}${this.$refs.textArea.value}`}); this.close(); } diff --git a/client/components/Reader/versionHistory.js b/client/components/Reader/versionHistory.js index a8a251dc..48269565 100644 --- a/client/components/Reader/versionHistory.js +++ b/client/components/Reader/versionHistory.js @@ -9,6 +9,7 @@ export const versionHistory = [
  • исправлен баг - не распознавались некоторые книги формата fb2 в кодировке utf8
  • добавлены новые варианты анимации перелистывания
  • улучшены прогрессбары
  • +
  • исправления недочетов
  • ` }, diff --git a/client/share/utils.js b/client/share/utils.js index 612610ce..1469fbc1 100644 --- a/client/share/utils.js +++ b/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()}`; } } diff --git a/server/core/BookConverter/ConvertHtml.js b/server/core/BookConverter/ConvertHtml.js index 26c097fc..e47e23ea 100644 --- a/server/core/BookConverter/ConvertHtml.js +++ b/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')