[Userscript] TruyenCV downloader

  Bài viết hay nhất1
Tải truyện từ TruyenCV.com định dạng epub.

Demo


[Userscript] TruyenCV downloader Truyen11
Tải truyện từ TruyenCV

Cài đặt


Dùng một trong các link sau:

  1. https://greasyfork.org/vi/scripts/17826-truyencv-downloader
  2. https://openuserjs.org/scripts/baivong/TruyenCV_downloader
  3. https://github.com/baivong/Userscript/raw/master/truyenCV_downloader/truyenCV_downloader.user.js

Mã nguồn


Code:
// ==UserScript==
// @name        TruyenCV downloader
// @namespace    http://devs.forumvi.com/
// @description  Tải truyện từ truyencv.com định dạng epub
// @version      4.4.0
// @icon        http://i.imgur.com/o5cmtkU.png
// @author      Zzbaivong
// @oujs:author  baivong
// @license      MIT; https://baivong.mit-license.org/license.txt
// @match        http://truyencv.com/*/
// @require      https://code.jquery.com/jquery-3.3.1.min.js
// @require      https://unpkg.com/jepub@1.2.1/dist/jepub.min.js
// @require      https://unpkg.com/file-saver@1.3.8/FileSaver.min.js
// @noframes
// @connect      self
// @supportURL  https://github.com/lelinhtinh/Userscript/issues
// @run-at      document-idle
// @grant        none
// ==/UserScript==
(function ($, window, document) {
    'use strict';

    /**
    * Nhận cảnh báo khi có chương bị lỗi
    */
    var errorAlert = true;

    /**
    * Những đoạn ghi chú cuối chương của converter
    * Chỉ cần ghi phần bắt đầu, không phân biệt hoa thường
    * Ngăn cách các đoạn bằng dấu |
    */
    var converter = 'ps:|hoan nghênh quảng đại bạn đọc quang lâm|Huyền ảo khoái trí ân cừu';


    converter = new RegExp('(' + converter + ')', 'i');

    function cleanHtml(str) {
        str = str.replace(/\s*Chương\s*\d+\s?:[^<\n]/, '');
        str = str.replace(/[^\x09\x0A\x0D\x20-\uD7FF\uE000-\uFFFD\u10000-\u10FFFF]+/gm, ''); // eslint-disable-line
        str = str.replace(/\s[a-zA-Z0-9]{6,8}(="")?\s/gm, function (key, attr) {
            if (attr) return ' ';
            if (!isNaN(key)) return key;
            if (key.split(/[A-Z]/).length > 2) return ' ';
            if (key.split(/\d/).length > 1) return ' ';
            return key;
        });
        str = str.replace(/\([^(]+<button[^/]+<\/button>[^)]*\)\s*/gi, '');
        str = str.split(converter)[0];
        return '<div>' + str + '</div>';
    }

    function downloadError(mess, err) {
        downloadStatus('danger');
        titleError.push(chapTitle);
        if (errorAlert) errorAlert = confirm('Lỗi! ' + mess + '\nBạn có muốn tiếp tục nhận cảnh báo?');

        if (err) console.error(mess);
        return '<p class="no-indent"><a href="' + referrer + chapId + '">' + mess + '</a></p>';
    }

    function saveEbook() {
        if (endDownload) return;
        endDownload = true;
        $download.html('Đang nén EPUB');

        if (titleError.length) {
            titleError = '<p class="no-indent"><strong>Các chương lỗi: </strong>' + titleError.join(', ') + '</p>';
        } else {
            titleError = '';
        }
        beginEnd = '<p class="no-indent">Nội dung từ <strong>' + begin + '</strong> đến <strong>' + end + '</strong></p>';

        jepub.notes(beginEnd + titleError + '<br /><br />' + credits);

        jepub.generate().then(function (epubZipContent) {
            document.title = '[⇓] ' + ebookTitle;
            $win.off('beforeunload');

            $download.attr({
                href: window.URL.createObjectURL(epubZipContent),
                download: ebookFilename
            }).text('Hoàn thành').off('click');
            if (!$download.hasClass('btn-danger')) downloadStatus('success');

            saveAs(epubZipContent, ebookFilename);
        }).catch(function (err) {
            downloadStatus('danger');
            console.error(err);
        });
    }

    function getContent() {
        if (endDownload) return;
        chapId = chapList[count];

        $.ajax({
            url: pathname + chapId + '/',
            xhrFields: {
                withCredentials: true
            }
        }).done(function (response) {
            var $data = $(response),
                $chapter = $data.find('#js-truyencv-content'),
                $notContent = $chapter.find('iframe, script, style, a, div, p:has(a[href*="truyencv.com"])'),
                $referrer = $chapter.find('[style]').filter(function () {
                    return (this.style.fontSize === '1px' || this.style.fontSize === '0px' || this.style.color === 'white');
                }),
                chapContent;

            if (endDownload) return;

            chapTitle = $data.find('#js-truyencv-read-content .title').text().trim();
            if (chapTitle === '') chapTitle = 'Chương ' + chapId.match(/\d+/)[0];

            if (!$chapter.length) {
                chapContent = downloadError('Không có nội dung');
            } else {
                if ($chapter.find('#btnChapterVip').length) {
                    chapContent = downloadError('Chương VIP');
                } else if ($chapter.filter(function () {
                        return (this.textContent.toLowerCase().indexOf('vui lòng đăng nhập để đọc chương này') !== -1);
                    }).length) {
                    chapContent = downloadError('Chương yêu cầu đăng nhập');
                } else {
                    var $img = $chapter.find('img');
                    if ($img.length) $img.replaceWith(function () {
                        return '<br /><a href="' + this.src + '">Click để xem ảnh</a><br />';
                    });

                    if ($notContent.length) $notContent.remove();
                    if ($referrer.length) $referrer.remove();

                    if ($chapter.text().trim() === '') {
                        chapContent = downloadError('Nội dung không có');
                    } else {
                        if (!$download.hasClass('btn-danger')) downloadStatus('warning');
                        chapContent = cleanHtml($chapter.html());
                    }
                }
            }

            jepub.add(chapTitle, chapContent);

            if (count === 0) begin = chapTitle;
            end = chapTitle;

            $download.html('Đang tải: ' + Math.floor((count / chapListSize) * 100) + '%');

            count++;
            document.title = '[' + count + '] ' + pageName;
            if (count >= chapListSize) {
                saveEbook();
            } else {
                getContent();
            }
        }).fail(function (err) {
            downloadError('Kết nối không ổn định', err);
            saveEbook();
        });
    }


    var pageName = document.title,
        $win = $(window),
        $download = $('<a>', {
            class: 'btn btn-info',
            href: '#download',
            text: 'Tải xuống'
        }),
        downloadStatus = function (status) {
            $download.removeClass('btn-primary btn-success btn-info btn-warning btn-danger').addClass('btn-' + status);
        },

        $novelId = $('.basic'),
        chapList = [],
        chapListSize = 0,
        chapId = '',
        chapTitle = '',
        count = 0,
        begin = '',
        end = '',
        endDownload = false,

        ebookTitle = '',
        ebookAuthor = '',
        // ebookCover = '',
        ebookDesc = '',
        ebookType = [],
        beginEnd = '',
        titleError = [],

        host = location.host,
        pathname = location.pathname,
        referrer = location.protocol + '//' + host + pathname,

        ebookFilename = pathname.slice(1, -1) + '.epub',

        credits = '<p>Truyện được tải từ <a href="' + referrer + '">TruyenCV</a></p><p>Userscript được viết bởi: <a href="https://lelinhtinh.github.io/jEpub/">Zzbaivong</a></p>',

        jepub;


    if (!$novelId.length) return;

    var $infoBlock = $('.truyencv-detail-info-block');

    ebookTitle = $infoBlock.find('h1').text().trim();
    ebookAuthor = $infoBlock.find('.author').text().trim();
    // ebookCover = $infoBlock.find('.img-responsive').attr('src');
    ebookDesc = $('.brief').html();

    var $ebookType = $infoBlock.find('.categories a');
    if ($ebookType.length)
        $ebookType.each(function () {
            ebookType.push($(this).text().trim());
        });

    jepub = new jEpub({
        title: ebookTitle,
        author: ebookAuthor,
        publisher: host,
        description: ebookDesc,
        tags: ebookType
    }).uuid(referrer);

    $download.insertAfter('#btnregistRecentReadingStory');
    $download.one('click contextmenu', function (e) {
        e.preventDefault();
        var showChapList = $('.truyencv-detail-block a[href="#truyencv-detail-chap"]');

        document.title = '[...] Vui lòng chờ trong giây lát';

        showChapList = showChapList.attr('onclick');
        showChapList = showChapList.match(/\(([^()]+)\)/)[1];
        showChapList = showChapList.match(/[^',]+/g);

        $.ajax({
            type: 'POST',
            url: '/index.php',
            data: {
                showChapter: 1,
                media_id: showChapList[0],
                number: showChapList[1],
                page: showChapList[2],
                type: showChapList[3]
            },
            contentType: 'application/x-www-form-urlencoded'
        }).done(function (response) {
            chapList = response.match(/(?:href=")[^")]+(?=")/g);
            if (response.indexOf('panel panel-vip') === -1) chapList = chapList.reverse();
            chapList = chapList.map(function (val) {
                val = val.slice(6, -1);
                val = val.replace(referrer, '');
                return val;
            });

            if (e.type === 'contextmenu') {
                $download.off('click');
                var startFrom = prompt('Nhập ID chương truyện bắt đầu tải:', chapList[0]);
                startFrom = chapList.indexOf(startFrom);
                if (startFrom !== -1) chapList = chapList.slice(startFrom);
            } else {
                $download.off('contextmenu');
            }

            chapListSize = chapList.length;
            if (chapListSize > 0) {
                $win.on('beforeunload', function () {
                    return 'Truyện đang được tải xuống...';
                });

                $download.one('click', function (e) {
                    e.preventDefault();
                    saveEbook();
                });

                getContent();
            }
        }).fail(function (err) {
            $download.text('Lỗi danh mục');
            downloadStatus('danger');
            console.error(err);
        });
    });

})(jQuery, window, document);

Hướng dẫn


Tải truyện


Script hoạt động sẽ tạo ra nút Tải xuống tại trang giới thiệu truyện, click vào sẽ tải bộ truyện đó.
Click chuột phải trên nút Tải xuống và nhập ID của chương cần bắt đầu vào khung nhập liệu, tiến trình sẽ bắt đầu từ chương đó đến cuối danh sách.
Bạn có thể dừng và tải truyện ngay lập tức bằng cách click vào nút Tải xuống khi tiến trình đang chạy.

Đọc truyện


  1. Windows: Bookviser Reader.
  2. Linux: FBReader.
  3. Android: AlReader.

Tags: #userscript #truyencv #download #ebook
  Bài viết hay nhất2
Lưu ý rằng là file ebook mobi cỡ 20mb là các web convert online như zamzar sẽ báo lỗi nên với các truyên có số chương lớn thì các bạn nên chia ra sao cho các file còn lại cơ 15mb thôi để có thể convert online. Nếu các bạn muốn 1 file nguyên luôn thì tốt nhất là dùng máy của mình convert.
  Bài viết hay nhất3
Cái files htm mà bạn download về nhiều khi lẫn lộn nhiều code khác nhau nên cần được edit lại trước khi đưa vào MobipocketCreator.

Đây thì mình sẽ chỉ cách làm với Notepad++

Đầu tiên là mở file htm bằng NP++, bạn có thể dùng notepad++ để Open hay là nhấp chuột phải lên file/các file htm cần làm để hiện bảng chọn và ấn vào "Edit with notepad++" ngay dưới "Open"
Khi mở ra bạn sẽ thấy thế này
[Userscript] TruyenCV downloader WCTxMV9
Trong file co cả <p> và <br> , có các <br> liền nhau làm cho các khoảng giữa dòng bị rộng ra...

Đầu tiên, ta cần chỉnh lại các dòng tiêu đề. Thực tế thì chỉ cần chỉnh lại dòng "<h2 class="title">Chương 1: trong núi thiếu niên</h2>" nhưng nếu bạn muốn dễ quay lại copy tên sách khi làm metadata thì nên làm thế này.
[Userscript] TruyenCV downloader A25BfP4
Sau đó thì bỏ các khoảng tab và các khoảng trống liền nhau bằng cách Replace( Ctrl+H). Với khoảng tab thì phải đánh 1 khoảng tab trong văn bản rồi copy vào "Find What:" vì nếu mở bảng Replace thì nó sẽ là phím xuống dòng. Phía dưới "Replace with:" để 1 khoảng spacebar. Sau khi thay thế hết khoảng tab thì thay vào đó bằng 2 khoảng spacebar liền nhau và tiếp tục replace.
[Userscript] TruyenCV downloader DWUlZG5
***Lưu ý : Ta có thể replace trong nhiều văn bản ở nhiều tab khác nhau khi dùng Notepad++ bằng cách nhấn vào " Replace all in Al opened Documents"
[Userscript] TruyenCV downloader AD6sjvn
Số chỗ mới vừa được Replace ở dưới ô bên trái. Tốt nhất là nhấn đến khi số này về 0.

Thứ 2: bỏ code  <p> vì truyệncv chủ yếu là sử dụng code <br>. khi sử dụng chung 2 code thì có khi bản truyện của bạn se không đồng nhất  và rất khó điều chỉnh để hòa hợp nhau nên ta chỉ chọn 1 code để lại. Ngoài ra thì sửa dùng code <p> quá tốn thời gian, công sức
Ta cũng dùng Replace : <p> replace with (Ko có gì) và </p> replace with  <br>. Làm đến khi giá trị chỗ sửa về zero.

Thứ 3: xóa các code quảng cáo( mình không rõ lắm là mấy cái này có hiện lên ebook ko do mình toàn xóa hết). Để Replace with: <br> vì một số code sẽ không ở dòng riêng mà ở cuối 1 dòng text. Các code này chủ yếu có div trong đó nên có thê dùng Find(Ctrl+F)"div" để kiểm tra còn chỗ nào có quảng cáo ko
[Userscript] TruyenCV downloader WSFK1Ky

Thứ 4: rút lại số code <br>. Trước khi làm thì hãy nhấn vào đây để loại bỏ hết tất cả các dòng trống có thể có trong file htm (1 số có thể là do edit tạo ra)
[Userscript] TruyenCV downloader TB64NNn
[Userscript] TruyenCV downloader MqrleEg
[Userscript] TruyenCV downloader LPrt3KM
2 Replace trên thì trên cùng 1 dòng nên ta có thể để ở "Normal mode" còn các replace sau thì phải dùng Extended hay Regular expression mode( Code "\n" là code quy định. sự xuống dòng trong notepad++).
*** Có nhiều khi replace thứ gì đó ở Extended mode ko đc mà bạn phải chuyển về Regular mode
[Userscript] TruyenCV downloader SDyw3rW

[Userscript] TruyenCV downloader ZREY3Ff
[Userscript] TruyenCV downloader 0juX1Yg
[Userscript] TruyenCV downloader ZaXO0w0

Thứ 5: loại bỏ một số phần ko cần thiết do converter làm ra.
[Userscript] TruyenCV downloader GaUEXhB

Trong văn bản có thể có 1 số code lạ làm ảnh hướng

***Lưu ý:
- TRên thanh công cụ có 2 ký hiệu cho 2 kiểu save khác nhau : 1 tờ giấy là chỉ save văn bản đang mở, 3 tờ là save toàn bộ các file đang được mở trong các tab.
[Userscript] TruyenCV downloader OFEnOs8
- Màu đỏ đỏ của file trên 1 tab là biểu thị file đó đã bị chỉnh sửa mà chưa save lại còn xanh là chưa tác động hay là đã save rồi
[Userscript] TruyenCV downloader Zlf7SYx

Mở New tab trong Notepad++, Copy các mã phần đầu(<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body>) và cuối (</body></html>)của file html vào cái tab mới này. Thich thì copy luôn tiêu đê và tác giả qua luôn.
Sau đó chuyển 1 số chương qua sao cho số chương mỗi file vào khoảng 700-800 chương
Save các file mới ở đinh dạng html

Với mobipocket, để chế độ mặc đinh là VIetnamese - International UTF8 vì mặc định của Mobipocket không code đúng tiếng Việt (Nhiều nhất là "Â" đầu từ bị mất)  và nếu không đổi mặc định thì có thể bạn sẽ quên rồi ko hiểu sao ebook mình làm ra lại lạ thế này.
[Userscript] TruyenCV downloader TrJGNhB
Để thêm 1 file html vào, nhấn vào "html documents"
[Userscript] TruyenCV downloader NQZ4Tqs
Trong phần "choose a file" dùng Browse để chọn file html cần làm prc. Nếu chưa chọn ngôn ngữ mặc định là Vietnamese thì lúc này bạn phải chọn nó trong phần Langague.
[Userscript] TruyenCV downloader 0WYAfMK
Image Cover, Nhấn vào "Add an image cover" để chọn cover rồi phải nhớ nhấn Update để lưu cover
[Userscript] TruyenCV downloader HPythkB
[Userscript] TruyenCV downloader 2WtwErQ

Mục Lục: Để tạo mục lục cho sách  ta vào "Table of contents"
Click vào "Add a Table of contents"
[Userscript] TruyenCV downloader DaHSG4r
Thay "Table of contents" trong khung thành "Mục Lục"
Do đầu các chương chỉ ở mức h2 nên chỉ cân nhập "h2" vào ô First Level:
[Userscript] TruyenCV downloader Q1Kl7zL
Metada: Ebook Title (tên sách) , Author( tác giả) .Phải nhớ nhấn Update để lưu cover
[Userscript] TruyenCV downloader 4fKa7EC
[Userscript] TruyenCV downloader Mt65OVd
Build(Hàng trên-Nhấn vào) : "Standard Compression" có vẻ như là dễ được zamzar chấp nhận hơn

Mở folder chứa file prc mới tạo, sau khi làm xong thì có lựa chọn để mở folder đó ra( Folder đó mặc đinh là My Documents/My Publications)
[Userscript] TruyenCV downloader BhCzKlE
[Userscript] TruyenCV downloader X5MSwJQ
Lấy File Prc đó đem đi convert bằng zamzar thành epub
Nhớ là chỉ lấy khoảng cỡ 700-800 chương trong 1 file html thì zamzar mới convert đc
[Userscript] TruyenCV downloader 8ZsltLV
  Bài viết hay nhất4
Nếu trong nội dung truyện có dính quảng cáo, lệch dòng, ... bạn cứ báo lỗi trên Github, mình sẽ loại trừ nó ra hết.

Gần đây mình có cập nhật TruyenFull downloader, tải xuống dạng epub, có mục lục, đọc luôn không cần làm thêm gì.
Bạn thử dùng script đó tải vài truyện đọc xem, nếu ổn, mình sẽ cập nhật luôn cho các script khác như: truyenyy, truyencv, yyapp
  Bài viết hay nhất5

Zzbaivong wrote:Nếu trong nội dung truyện có dính quảng cáo, lệch dòng, ... bạn cứ báo lỗi trên Github, mình sẽ loại trừ nó ra hết.

Gần đây mình có cập nhật TruyenFull downloader, tải xuống dạng epub, có mục lục, đọc luôn không cần làm thêm gì.
Bạn thử dùng script đó tải vài truyện đọc xem, nếu ổn, mình sẽ cập nhật luôn cho các script khác như: truyenyy, truyencv, yyapp

có tải về thành dạng pdf được hem anh :D em rất thích trang truyện full, đọc dịch khá chuẩn
  Bài viết hay nhất6
Được nhưng không làm đâu, truyện chữ thì epub là chuẩn nhất, xem trên điện thoại vẫn tốt. Còn pdf dung lượng file sẽ lớn hơn rất nhiều, xem trên điện thoại chữ bị nhỏ, không hỗ trợ khả năng cuộn theo khung nhìn.
  Bài viết hay nhất7
trước giờ cứ tưởng foxit reader không hỗ trợ file ePub, mới xem thì thấy có  [Userscript] TruyenCV downloader 1f637, làm hồi trước giờ có mấy quyển sách chỉ có file epub làm mình không tải được [Userscript] TruyenCV downloader 1f614, cảm ơn anh Vong
  Bài viết hay nhất8
Ah, nếu mà bạn nào làm theo kiểu mình thì trên Calibre viewer sẽ hơi khó nhìn do các paragraph liên nhau quá (do điều chỉnh của zamzar nên ko có cách nào).

Để xem rõ hơn thì có thể thêm dòng này vào phần css stylesheet(Nhấn vào Preferences(bánh răng)--> (Tab) User Stylesheet---> Copy&Paste p {margin: 5; padding: 5;}
  Bài viết hay nhất9
Cập nhật v2.0.2:

Sửa lỗi do truyencv cập nhật giao diện.
Tải xuống định dạng epub.
  Bài viết hay nhất10
Nếu bạn nào muốn có file html để tự làm như bản cũ thì có thể extract file epub ra và lấy file xhtml để chuyển vào Mobipcoket Creator
Cho File Tai về đc là cửu tinh bá thể quyết.epub
Bước 1: Lấy file text ra
Nếu bạn ko có 7z hay winrar mà chỉ có mỗi winzip thì đổi đuôi về Cuu Tinh Ba The.zip rồi chọn Extract to "cửu tinh bá thể quyết/". Ta sẽ đc folder chứa các thành phần của file epub.

Mở Folder, CÓ 2 folder" Epub" và " "Meta-Inf" . Mở "EPUB" ra thì ta ta thấy các thành phần
[Userscript] TruyenCV downloader A8kVMht
"cửu tinh bá thể quyết-content.xhtml" là file text ta cần lấy. Copy ra nơi khác nếu muốn dùng lại file epub này còn ko thì cứ để đó

Trong này thì có file opf có thể đc mở bởi Mobipocket Creator để sửa lại metadata.Có thể sửa tên truyện, tác giả, nhà xuất bản..(vài thong tin xuất hiện trên thanh thông tin khi mở ebook)

Có cover của truyện

cửu tinh bá thể quyết-nav.xhtml là phần mục lục của truyện khi hiện lên trong khi đọc. Còn cửu tinh bá thể quyết.ncx mới là file Mục Lục mà epub sử dụng( vẫn có thể edit bằng Notepadd++)

Sau khi xử lý xong (thay dổi metadata,thay cover...) thì nén lại thư mục về zip rồi chuyển .zip-->.epub. Ta lại có file epub

Bước  2: xử lý text
Mở bằng Notepad++,ta được kiểu như thế này:
[Userscript] TruyenCV downloader 2HlMBDp
Del phần "Delete"(Từ đầu tới "Giới Thệu")  rồi thay code này vào:
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head><body>
Bỏ các khoảng trống bằng
[Userscript] TruyenCV downloader TB64NNn
Ta được
[Userscript] TruyenCV downloader PNGweOE
Tiếp theo là loại bỏ code section. Trước hết phải mark các line có chữ"section": (Ctrl+F)--> tab "Mark"--> Gõ "section" vào ô Find What:--->Nhớ nhấn chọn ô Bookmark line----> Nhấn "Mark All". Lúc này thì toàn bộ các line có chữ "section" sẽ bị marked
[Userscript] TruyenCV downloader FEOvkqK
Bỏ các line nay bằng cách vào Menu Bar: "Search"---> Bookmark--->Remove bookmarked lines
[Userscript] TruyenCV downloader IBjk4nw
Thay "<br /><br />" bằng "<br />"
Thay <br /> bằng <br>
Thay "<br>" bằng "<br>\n". Làm thế này là để cho tách line dài thành các line nhỏ hơn để dễ nhìn và chỉnh sửa. ( Nhớ là phải đánh dấu vào Extended hay Regular expression mới có tác dụng do có thên code "\n" )
[Userscript] TruyenCV downloader MFqVkki
Có thể mark các line là tiêu đề chương với key là  <h2> cho dễ phân biệt

Sau đó thì cứ làm như mình chỉ dẫn ở trên để có được file html để cho vào Mobipocket creator
  Bài viết hay nhất11
Do file epub mới tạo ra thực tế chủ yếu là 1 file html thêm chút mắm muối để chuyển thành epub nên sẽ load khá chậm so với file epub hoàn chỉnh. Đ
Đó là do chương trình đọc phải load cả file html với epub mới tạo trong khi Epub chuẩn có nhiều file html nhỏ, ở mội vị trí đọc thì chương trình chỉ load file html tại vị trí đó.

Cách nhanh nhất là convert lại epub này.

Bằng zamzar thì bạn có thể convert nó vế Mobi/PRC/AZW3 (3 cái này thuộc về cùng 1 loại thôi) các định dạng khác chỉ xử lý đc mấy file cỡ nhỏ cỡ 300-400 chương.
Sau khi đã convert ra xong thì down load cai file Mobi/PRC/AZW3 mới tạo về và tiếp tục convert trở lại thành Epub.

Lúc này thì file content sẽ bị chia thành các file nhỏ và Cover là cover mới do máy tạo ra.
Để thay cover thì extract file epub mới tải về ra và thay thế cover_image.jpg bằng cover mà ta mong muốn rồi nén lại, chuyển đuôi từ .zip về .epub
  Bài viết hay nhất12
ZBaivong ơi, phiên bản sau có thể bỏ đi cái date trong opf đc ko?

Do khi sửa metadata bằng mobipocket thì nó luôn báo lỗi format error và phải xóa đi.
  Bài viết hay nhất13
Vấn đề đó mình đã biết, nhưng do dùng thư viện bên thứ 3 nên không chỉnh được nhiều.
Mình cũng phải dùng Calibre chuyển lại epub lần nữa mới đọc trên WP được. PC và Android vẫn đọc được bình thường.
Có thời gian mình sẽ làm lại bộ build epub từ đầu.

Nếu build prc lại bằng Mobipocket thì bạn lấy file content.xhtml replace <h2> thành <h2 class="title">. Sau đó làm theo như hướng dẫn Tạo ebook prc là được. Có điều bị lỗi ký tự phần mục lục, chưa biết tại sao.
Nếu build epub thì cứ để nguyên vậy, dùng Calibre chuyển về epub lần nữa là được.
  Bài viết hay nhất14
Hiện tại hình như Truyencv có sự điều chỉnh nên rất khó có thể cắm máy để download đc nữa.  [Userscript] TruyenCV downloader 1f62d

Lúc đc lúc ko.

baivong ơi, có thể update lại cho chọn chương để tải đc ko. với truyện 3k  trở lên thì mệt nghỉ [Userscript] TruyenCV downloader 1f629
  Bài viết hay nhất15
Nhấp chuột phải lên nút Tải xuống, mình có ghi trong phần Hướng dẫn rồi mà.

Về lỗi, hay điều chỉnh gì đó, bạn có thể nói cụ thể hơn không? TruyenCV bình thường vốn tải chậm, cũng có thể là dạo này đứt cáp nên bị chậm hơn.
  Bài viết hay nhất16
Ặc, tưởng như bản mới nếu có cũng như version cũ nên ko đọc....

Cả tháng nay cố gằng đợi cho nó load đủ mỗi lần cả ngàn chương.....[Userscript] TruyenCV downloader 1f62d[Userscript] TruyenCV downloader 1f62d[Userscript] TruyenCV downloader 1f62d
  Bài viết hay nhất17
Đối với bạn nào mà máy yếu chỉ dùng được Online Converter như Zamzar thì có thể sử dụng pugin  EpubMerge của Calibre để nối các phần truyện lại với nhau thành 1 file Epub hoàn chỉnh.
[Userscript] TruyenCV downloader 01
Đầu tiên là tải về bằng cách vào phần Preferences của Calibre rồi chọn Get Plugins to enhance Calibre.
[Userscript] TruyenCV downloader 02
Trong này thì chọn EpubMerge trong mục các plugins chưa install rồi ấn install phía dưới. Sẽ có tab EpubMerge trên thanh công cụ ở ngoài(sẽ bị che khuất nếu thanh công cụ chưa chỉnh sửa nên phải ấn dấu "mũi tên" phía trên phải tab"preferences", nếu muốn sửa thì vào "Preferences"-->"Toobars and Menus"--->Trong phần "Click to choose toolbars and menus to customize"---->"The main toolbar"----> thay đổi icon có trên toolbar)
[Userscript] TruyenCV downloader 03
Vd như ở đây có 2 phần của Truyện "Độc Bộ" thì giữ "shift" rồi chọn cả hai rồi nhấn vào "EpubMerge"
[Userscript] TruyenCV downloader 04
Chọn trình tự để merge epub rôi nhấn "Ok". Sẽ có hội thoại nhắc là Epub sẽ chưa hiện đến khi bạn đã hoàn chỉnh metadata.
Bảng điều chỉnh metadata hiên ra.
[Userscript] TruyenCV downloader 05
  Cột 1:Title là tên Epub, Author là tác giả , Series tức là tên của loạt truyện.
  Cột 2: 2 dòng đầu bạn phải nhấn vào ">" phía sau các dòng của cột 1 sau khi đã điền đủ vào các dòng này dể app tự chuyển. Dòng thứ 3 là số thứ tự của sách trong loạt truyện.

Phía dưới là "Change cover" thay đổi bìa của truyện. Có thể "Browse" trong máy để lấy bìa hoặc là tự tạo cover từ tiêu đề và tác giả bằng "Generate cover"

Bên dưới nữa là các thông tin khác:(tự tìm hiểu)

Bên phải là phần giới thiệu cho sách. Cứ "Copy & Patse" phần giới thiệu cho từng sách trong truyencv là đc.
Nhấn "OK" là sách đã xong.
  Bài viết hay nhất18
Mình lính mới, mò mẫn cho vui thui. Hỏi cái hihi.
Chỗ mình lấy nội dung danh sách tất cả chương của tcv dùng xmlhttprequest để lấy ra ạ. Có thể chuyển qua script của web k ạ. Mò chuyển qua html mãi k dc, cảm ơn a. [Userscript] TruyenCV downloader 1f601
  Bài viết hay nhất19
Ý bạn là làm gì? Chạy script TruyenCV downloader từ trang web của bạn hay là sửa script để download truyện của trang web bạn?
  Bài viết hay nhất20

Zzbaivong wrote:Ý bạn là làm gì? Chạy script TruyenCV downloader từ trang web của bạn hay là sửa script để download truyện của trang web bạn?

ý mình là có thể chuyển qua script thông thường của web đc k ý chứ k phải script của chrome nữa. mình đang rất muốn lấy cái danh sách chương của tcv nhưng gà quá k làm đc [Userscript] TruyenCV downloader 1f605
  Bài viết hay nhất21

fivegins wrote:
Zzbaivong wrote:Ý bạn là làm gì? Chạy script TruyenCV downloader từ trang web của bạn hay là sửa script để download truyện của trang web bạn?

ý mình là có thể chuyển qua script thông thường của web đc k ý chứ k phải script của chrome nữa. mình đang rất muốn lấy cái danh sách chương của tcv nhưng gà quá k làm đc  [Userscript] TruyenCV downloader 1f605

Vậy thì không được đâu, do bảo mật của trình duyệt không cho phép JavaScript truy cập dữ liệu của trang khác, trừ khi trang web đó cấp quyền. Xem Cross-Origin Resource Sharing để biết thêm.
You cannot reply to topics in this forum