mkbyme / TruyenCV.com QuickPaste

// ==UserScript==
// @name         TruyenCV.com QuickPaste
// @namespace    http://tampermonkey.net/
// @version      0.8
// @description  QuickPaste for Add Chapter
// @author       Mkbyme
// @match        http://*.truyencv.com/account/add_chapter/*
// @grant        none
// @required https://code.jquery.com/jquery-3.2.1.min.js
// @updateURL https://openuserjs.org/meta/mkbyme/TruyenCV.com_QuickPaste.meta.js
// ==/UserScript==
//create element
function ce(n)
{
    return document.createElement(n);
}
//add style
function addStyle(style)
{
    var s = ce("style"),h = document.head || document.getElementsByTagName("head")[0];
    s.type="text/css";
    s.appendChild(document.createTextNode(style));
    h.appendChild(s);
}
//add CSS
function addCss()
{
    var s = "";
    s+="#qpmk{background-color: #2d2d2d;padding: 3px 15px;color: #ebebeb;border-radius: 5px 5px 0px 0px;margin-bottom: 15px;}";
    s+="#qpmk>.form-group>div{font-size: 13px;color: #bef385;}";
    s+="#qpmk>p{font-size:13px;color: #c7c7c7;text-align: right;}";
    addStyle(s);
}
function createInjectHTML()
{
    var h = "";
    h+="<div id=\"qpmk\"><h3>Đăng Truyện Nhanh  Script</h3><div class=\"form-group\">";
    h+="<div>Ví dụ tên Chương 1, Chương 2, Chương n thì điền \"Chương \" để thực hiện dán tự động<br>";
    h+="<ol><li>Nhập số chương cần đăng = số_hiện_tại + số_chương_đăng</li>";
    h+="<li>Mở tệp chứa nội dung đã convert chọn và copy đoạn chứa số_chương_đăng</li><li>Dán vào DÁN VÀO ĐÂY</li>";
    h+="<li>Nhấn <b>1-Tiếp Tục</b></li><li>Sau khi chuyển trang lần 2 dà soát tên chương và số chương.</li><li>Nhấn <b>2-Đăng Chương</b></li></ol>";
    h+="<span style=\"color:red\">* </span>Trước khi nhấn nút <b class=\"text-info\">Đăng Chương</b> thì phải thực hiện sao chép nội dung truyện trước.</div>";

    h+="<label>Tiêu Đề Chương(để chia tách các chương truyện)</label>";
    h+="<input type=\"text\" id=\"qpmks\" class=\"form-control\" value=\"	Chương \" placeholder=\"Nhập tiêu đề chứa từ cách chương/chapter\"></div>";

    //sign
    h+="<div class=\"form-group\"><label>Chữ Ký (chèn ở cuối mỗi chương)</label><textarea placeholder=\"Nội dung chữ ký, sẽ được thêm vào ở cuối mỗi chương...\" id=\"qpsv\" class=\"form-control\" rows=\"1\"></textarea></div>";
    //end sign
    //option
    h+="<div class=\"form-group\"><label>Tùy chọn</label>";
    h+="<div class=\"form-inline\"><label>Tiêu đề chương lặp <input type=\"checkbox\" id=\"qpoloop\" class=\"form-control\"></label> (dạng Chương 1 abc Chương 1 abc - Nội dung chương)</div>";

    h+="<div class=\"form-group\"><input type=\"button\" value=\"Lưu Thiết Lập\" class=\"form-control btn btn-success\" id=\"qpsaveconfig\"></div>";
    h+="</div>";
    //end option

    h+="<div class=\"form-group\"><label>Dán Vào Đây(CTRL + V)</label>";
    h+="<textarea placeholder=\"dán nội dung vào đây - CTRL + V\" id=\"qpv\" class=\"form-control\" rows=\"5\"></textarea></div>";

    h+="<button type=\"submit\" id=\"qpmkd\" class=\"btn btn-disable\" onclick=\"javascript:;\">1-Tiếp Tục</button><span id=\"qpn\" style=\"margin:0px 15px;font-weight:bold\"></span>";
    h+="<button class=\"btn btn-read\"onclick=\"document.getElementById('btnAddchapter2').click();\">2-Đăng Chương</button><span id=\"qpn\" style=\"margin-left:15px;font-weight:bold\"></span>";
    h+="<p>© by <a href=\"fb.me/mkbyme\">Mkbyme</a></p></div>";
    $(".form-horizontal").before(h);
}
function process()
{
    $("#qpv").on("paste",function(e){
        $(this).val("");

        setTimeout(function(){
            var a = $("#qpv").val(),s=$("#qpmks").val(),st=s.trim(),ta=$("textarea[id^=url]"),loop = $("#qpoloop")[0].checked,error=false,sign=$("#qpsv").val();
            a = a.split("\n"+s).filter(function(entry){return entry.trim()!=="";});
            if(!loop && a.length < ta.length )
                error=true;
            if(loop && (a.length/2) < ta.length )
                error=true;
            //error
            if(error)
            {
                $("#qpn").html("Số chương copy chưa đủ,Cần sao thêm " + ( ta.length - 1 - (loop===true?a.length/2:a.length)) + " chương nữa, Hãy thử lại! <button class=\"btn btn-danger\" onclick=\"javascript:document.getElementById('ok').click();\">Vẫn Đăng</button>").removeClass("text-notify").addClass("text-danger");
                $("#qpv").val("");
                $("#qpmkd").attr("onclick","javascript:void();").removeClass("btn-read").addClass("btn-disable");
                //go on work
                //return false;
            }
            //not loop chapter title do
            if(!loop)
            {
                $.each(ta, (function(k, v) {    
                    if(k < a.length)
                    {
                        var at = a[k],ats=at.substring(0,300).trim().toLowerCase();
                        if(ats.startsWith(st.toLowerCase()))
                            $(this).val(at+"\r\n"+sign);
                        else
                            $(this).val(st+" "+at+"\r\n"+sign);
                    }
                    else
                    {
                        $("#qpv").val("Đã thực hiện được "+k+" /"+(ta.length )+" nhập ban đầu, có thể nhấn Vẫn Đăng để tiếp tục");
                        return false;
                    }
                }));

            }
            //loop chapter title do
            else
            {
                var j = 0,ha = a.length/2;
                $.each(ta, (function(k, v) {    
                    if(k < ha)
                    {
                        var at = a[++j],ats=at.substring(0,300).trim().toLowerCase();
                        if(ats.startsWith(st.toLowerCase()))
                            $(this).val(at+"\r\n"+sign);
                        else
                            $(this).val(st+" "+at+"\r\n"+sign);
                    }
                    else
                    {
                        $("#qpv").val("Đã thực hiện được "+k+" /"+(ta.length)+" nhập ban đầu, có thể nhấn Vẫn Đăng để tiếp tục");
                        return false;
                    }
                    j++;

                }));
            }
            //after insert do
            if(!error){
                $("#qpmkd").attr("onclick","javascript:document.getElementById('ok').click();").removeClass("btn-disable").addClass("btn-read");
                $("#qpn").removeClass("text-danger").addClass("text-notify").text("OK, 1-Nhấn Tiếp Tục sau đó nhấn 2-Đăng Chương");
                $("#qpv").val("Đã thực hiện xong, OK");
            }

        },500);
    });

    $("#qpsaveconfig").on("click",function(e){
        var value="splitTitle="+$("#qpmks").val()+"&optionLoop="+$("#qpoloop")[0].checked+"&sign="+$("#qpsv").val();
        cookieStr = "qpmkconfig=" + escape(value) + "; ";

        var today = new Date();
        var expr = new Date(today.getTime() + 30 * 24 * 60 * 60 * 1000);
        cookieStr += "expires=" + expr.toGMTString() + "; ";

        cookieStr += "path=/; ";
        cookieStr += "domain=truyencv.com; ";

        document.cookie = cookieStr;

        alert("Đã lưu lại thiết lập");
    });
    qpreadCookies();

}
function qpreadCookies()
{
    cName = "";
    pCOOKIES = new Array();
    pCOOKIES = document.cookie.split('; ');
    for(bb = 0; bb < pCOOKIES.length; bb++){
        NmeVal  = new Array();
        NmeVal  = pCOOKIES[bb].split('=');
        if(NmeVal[0] === "qpmkconfig"){
            cName = unescape(NmeVal[1]);
        }
    }

    var arr = cName.split("&");

    if(arr.length < 2)
        return;
    $("#qpmks").val(arr[0].split("=")[1]);
    $("#qpoloop")[0].checked = (arr[1].split("=")[1] == "true"?true:false);
    $("#qpsv").val(arr[2].split("=")[1]);

}
function init()
{
    addCss();
    createInjectHTML();
    process();
    $("#qpv").focus();
}
init();