hitomi.la 小优化

优化在线阅读,分包下载,资源下载加速,标题自动换行,标签汉化,点击预览图新标签页打开,非搜索增加选页功能,

As of 2022-02-16. See the latest version.

// ==UserScript==
// @name         hitomi.la 小优化
// @namespace    https://greasyfork.org/zh-CN/users/200067#1
// @version      1.86
// @description  优化在线阅读,分包下载,资源下载加速,标题自动换行,标签汉化,点击预览图新标签页打开,非搜索增加选页功能,
// @author       不会英语会写点代码的小白
// @match        https://hitomi.la/*
// @run-at       document-body
// @grant        unsafeWindow
// ==/UserScript==

let main=($)=>{
    'use strict';
    if(!$){
        var _limitLists=window.limitLists
        window.limitLists=()=>{
            _limitLists.apply(this,arguments);
            main(window.jQuery);
        }
        return;
    }
    {
        let a=document.querySelectorAll('.gallery-content > div');
        if(!a.length)return;
        let bool=document.body.clientWidth<769;
        let top='6px';
        if(document.body.clientWidth==768)top='35px'
        let b,c,d;
        for(c of a){//资源标题自动换行
            c.querySelector('h1.lillie').style.whiteSpace='normal';
            d=c.querySelector('a.lillie');
            d.target='_blank';//点击预览图新标签页打开
            if(bool){
                d.querySelector('div.dj-img-cont').style.position='sticky';
                c.removeChild(d);
                b=c.querySelector('div.dj-content');
                b.prepend(d);
                b.style.paddingTop=top;
            }
        }
        a=document.querySelector('.gallery-content');
        if(location.pathname!='/search.html'){
            let aa=document.querySelector('.page-container');
            if(aa){
                a.parentNode.insertBefore(aa.cloneNode(true),a);//增加选页功能
            }
        }

        let tagT=(a)=>{
            if(!a.length)return;
            let reg=/^(.+)( [♀♂])/,b,c,d;
            for(c of a){
                d=reg.exec(c.innerHTML);
                b=tags_Table[d?d[1]:c.innerHTML];
                if(b)c.innerHTML=b+(d?d[2]:'');
            }
        }
        tagT(document.querySelectorAll('td.relatedtags a'));//标签汉化
        tagT(document.querySelectorAll('ul.tags a'));

    }
    var galleryid=window.galleryid;
    var url_from_url_from_hash=(image)=>{
        return window.url_from_url_from_hash(galleryid,image,'webp', undefined, 'a');
    }
    var get_fileName=(image)=>{
        return image.name.replace(/[^.]*$/, 'webp');
    }

    let dlbt=$('#dl-button');
    if(!dlbt.length)return;
    dlbt.attr('href','javascript:void(0);');
    let files=window.galleryinfo.files,
        files_length=files.length;

    //下载按钮扩展
    {
        newStyle:{addNewStyle(`
.cover > a , #_div-dlP_ {
    text-align: center;
    display: block;
}
#_div-dlP_ span, #_div-dlP_ label, #_div-dlP_ input {
    vertical-align: middle;
    font-size: 14px;
}
.gallery-info > table {
    table-layout: fixed;/*限制tag长度*/
}`);}

        let div1=$('<div id="_div-dlP_" style="line-height: 25px;"/>');
        dlbt.after(div1);
        let in2,in1,rd2,rd3,in3;
        div1.append([
            in2=$('<span>下载并发数:</span><input type="number" style="width:38px" value="10"/>'),
            '<input type="radio" name="is" style="" checked="1" id="_rd1_"/><label for="_rd1_">分包下载数:</label>',
            in1=$('<input type="number"  style="width:38px;" value="1"/>'),
            rd2=$('<br/><input type="radio" name="is" style="margin-left:4px;" id="_rd2_"/><label for="_rd2_">不打包下载</label>'),
            rd3=$('<input type="radio" name="is" style="margin-left:4px;" id="_rd3_"/><label for="_rd3_">按大小分包:</label>'),
            in3=$('<input type="number" style="width:55px" value="1024"/><span>M</span>')
        ]);
        in2=in2.eq(1),rd2=rd2.eq(1),rd3=rd3.eq(0),in3=in3.eq(0);
        let dlt=$('<span style="position:absolute;left:0px;right:0px;vertical-align:middle;"/>'),
            progressbar =$('#progressbar');
        progressbar.append(dlt);
        progressbar.css({
            'text-align': 'center',
            'position': 'relative'
        });
        $('.gallery h1 a').prepend('('+files_length+')');
        window.download_gallery=function(galleryname){
            let t=new Date().getTime();
            if(!galleryname)galleryname='hitomi';
            dlbt.hide();
            dlt.html('0/'+files_length);
            progressbar.show();
            progressbar.progressbar({value: false});

            let in2v=parseInt(in2.val()),
                responseType,p=[],
                rd2b=rd2.is(':checked'),
                rd3b=rd3.is(':checked');


            if(in2v<1)in2v=1;

            if(rd2b){
                responseType= 'blob'
            }else{
                responseType= 'arraybuffer'
                JSZip.prototype.length=0;
                var val_,ii4=0,ii2;
                if(rd3b){
                    var max=0,ii7=1;
                    JSZip.prototype.max=0;
                    JSZip.prototype.size=0;
                    ii4=files_length-20;
                    val_=parseInt(in3.val());
                    val_=(val_<50?50:val_>2048?2048:val_)*1048576;//限制大小50M-2048M
                }else if((val_=parseInt(in1.val()))>1){
                    ii2=1;
                    val_=parseInt(files_length/val_);
                    if(val_<50)val_=50;
                    ii4=parseInt(files_length/val_)-(files_length%val_<20?1:0);
                }
                var ii5=0,ii6=0,zipName=galleryname,pp,zip,zips = [new JSZip()];
            }

            function dl(url,index,isRetry){
                new Promise((resolve, reject) => {
                    let xhr = new XMLHttpRequest();
                    xhr.onreadystatechange = function() {
                        if (this.readyState === 4) {
                            if (this.status === 200) {
                                resolve(this.response);
                            } else {
                                reject(`dl(${url}) failed, xhr.status: ${this.status}`);
                            }
                        }
                    };
                    xhr.open('GET', url);
                    xhr.responseType=responseType;
                    xhr.send();
                }).then(re=>{
                    ii--;
                    re.index=index;
                    p.push(re);
                    dlt.html(p.length+'/'+files_length);
                    progressbar.progressbar('value',p.length/files_length*100);
                }).catch(er=>{
                    if(isRetry){
                        setTimeout(dl,500,url,index,isRetry-1);
                    }
                    console.error(er);
                });
            }
            let c=0,ii=0,ii3=0;
            function dl2(){
                do{
                    if(ii3<p.length){
                        pp=p[ii3];
                        delete p[ii3++];
                        if(rd2b){
                            saveAs(pp,galleryname+'_'+get_fileName(files[pp.index]));
                            break;
                        }
                        if(rd3b){
                            ii2=pp.byteLength;
                            ii5=ii6;
                            if(pp.index>max){
                                if(ii7){
                                    max=pp.index;
                                }else ii5++;
                            }
                        }else if(ii4){
                            ii5=Math.floor(pp.index/val_);
                            if(ii5>ii4)ii5=ii4;
                        }
                        zip=zips[ii5];
                        if(!zip){
                            zips.push(zip=new JSZip());
                            if(rd3b)zip.size=(ii7?ii7:max)+2;
                        }else if(rd3b)zip.size++;
                        zip.file(get_fileName(files[pp.index]),pp);
                        if(ii3==files_length
                           || ii4!=ii5
                           && (zip.length+=ii2)>=val_
                           && (!rd3b||zip.size<ii4&&(ii7=zip.size>max?max:0))
                          ){
                            let saveName=zipName+'.zip';
                            zip.generateAsync({type:'blob'}).then(function(content){
                                saveAs(content,saveName);
                            });
                            delete zip.length;
                            delete zips[ii5];
                            zipName=galleryname+' ('+(++ii6)+')';
                        }
                    }else break;
                }while(1);
                while(ii<in2v){
                    if(c<files_length){
                        dl(url_from_url_from_hash(files[c]),c++,100),ii++;
                    }else break;
                }
                if(ii3<files_length){
                    setTimeout(dl2,rd2b?(c==files_length?200:100):50);
                }else{
                    zip=null;
                    progressbar.hide();
                    dlbt.show();
                    p.length=0;
                    //console.log('下载时间:'+(new Date().getTime()-t)/1000+'秒');
                }
            }
            dl2();
        };
    }

    {
        newStyle:{addNewStyle(`
#_img_, #_div-loader_ {
    position: absolute;
    inset: 0px;
    margin: auto;
}
#_img_ {
    max-height: 100%;
    max-width: 100%;
}
._title_, ._page_ {
    font-weight: bold;
    text-shadow: black 0px 0px 2px, black 0px 0px 2px, black 0px 0px 2px;
    color: #fff;
    position: absolute;
    padding-top: 8px;
    padding-bottom: 8px;
    transform: translate(-50%,0%);
    -webkit-user-select:none;
    -moz-user-select:none;
    -ms-user-select:none;
    user-select:none;
}
.opacity0 {
    opacity: .0;
}
._title_:hover, ._page_:hover {
    opacity: 1
}

.lum-close-button {
    position: absolute;
    right: 5px;
    top: 5px;
    width: 32px;
    height: 32px;
    opacity: .3
}
.lum-close-button:hover {
    opacity: 1
}
.lum-close-button:after,.lum-close-button:before {
    position: absolute;
    left: 15px;
    content: " ";
    height: 33px;
    width: 2px;
    background-color: #fff;
}
.lum-close-button:before {
    transform: rotate(45deg)
}
.lum-close-button:after {
    transform: rotate(-45deg)
}

.loader-hide {
    display: none;
}
.loader {
    display: block;
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%,-50%);
    width: 66px;
    height: 20px;
    -webkit-animation: loader-rotate 1.8s linear infinite;
    animation: loader-rotate 1.8s linear infinite
}

.loader:after,.loader:before {
    content: "";
    display: block;
    width: 20px;
    height: 20px;
    position: absolute;
    top: 50%;
    margin-top: -10px;
    border-radius: 20px;
    background: hsla(0,0%,100%,.9)
}

.loader:before {
    left: 0;
    -webkit-animation: loader-before 1.8s linear infinite;
    animation: loader-before 1.8s linear infinite
}

.loader:after {
    right: 0;
    -webkit-animation: loader-after 1.8s linear infinite;
    animation: loader-after 1.8s linear infinite;
    -webkit-animation-delay: -.9s;
    animation-delay: -.9s
}
@-webkit-keyframes loader-rotate {
    0% {
        transform: translate(-50%,-50%) rotate(0)
    }

    50% {
        transform: translate(-50%,-50%) rotate(-180deg)
    }
    to {
        transform: translate(-50%,-50%) rotate(-1turn)
    }
}
@keyframes loader-rotate {
    0% {
        transform: translate(-50%,-50%) rotate(0)
    }
    50% {
        transform: translate(-50%,-50%) rotate(-180deg)
    }
    to {
        transform: translate(-50%,-50%) rotate(-1turn)
    }
}
@-webkit-keyframes loader-before {
    0% {
        transform: scale(1)
    }
    10% {
        transform: scale(1.2) translateX(6px)
    }
    25% {
        transform: scale(1.3) translateX(8px)
    }
    40% {
        transform: scale(1.2) translateX(6px)
    }
    50% {
        transform: scale(1)
    }
    60% {
        transform: scale(.8) translateX(6px)
    }
    75% {
        transform: scale(.7) translateX(8px)
    }
    90% {
        transform: scale(.8) translateX(6px)
    }
    to {
        transform: scale(1)
    }
}
@keyframes loader-before {
    0% {
        transform: scale(1)
    }
    10% {
        transform: scale(1.2) translateX(6px)
    }
    25% {
        transform: scale(1.3) translateX(8px)
    }
    40% {
        transform: scale(1.2) translateX(6px)
    }
    50% {
        transform: scale(1)
    }
    60% {
        transform: scale(.8) translateX(6px)
    }
    75% {
        transform: scale(.7) translateX(8px)
    }
    90% {
        transform: scale(.8) translateX(6px)
    }
    to {
        transform: scale(1)
    }
}
@-webkit-keyframes loader-after {
    0% {
        transform: scale(1)
    }
    10% {
        transform: scale(1.2) translateX(-6px)
    }
    25% {
        transform: scale(1.3) translateX(-8px)
    }
    40% {
        transform: scale(1.2) translateX(-6px)
    }
    50% {
        transform: scale(1)
    }
    60% {
        transform: scale(.8) translateX(-6px)
    }
    75% {
        transform: scale(.7) translateX(-8px)
    }
    90% {
        transform: scale(.8) translateX(-6px)
    }
    to {
        transform: scale(1)
    }
}
@keyframes loader-after {
    0% {
        transform: scale(1)
    }
    10% {
        transform: scale(1.2) translateX(-6px)
    }
    25% {
        transform: scale(1.3) translateX(-8px)
    }
    40% {
        transform: scale(1.2) translateX(-6px)
    }
    50% {
        transform: scale(1)
    }
    60% {
        transform: scale(.8) translateX(-6px)
    }
    75% {
        transform: scale(.7) translateX(-8px)
    }
    90% {
        transform: scale(.8) translateX(-6px)
    }
    to {
        transform: scale(1)
    }
}`);}
        $('.cover-column > a:eq(0)').attr('href','javascript:_VIEW_();');
        let view=$(`
<div tabindex="1" style="display: none;">
    <div id="_div_" style="height: 100%;width: 100%;text-align: center;position: fixed;z-index: 99999;background-color: #000000d4;">
        <div id="_div-loader_" style="width: 200px;height: 200px;">
            <div id="_loader_" class="loader-hide"/>
        </div>
        <img id="_img_" i="0"/>
        <span class="_title_"/>
        <span class="_page_" style="bottom: 0px;"/>
        <div class="lum-close-button"/>
     </div>
</div>`);
        document.body.prepend(view[0]);
        let hideView=(e)=>{
            view.hide();
            img.hide();
            e.stopPropagation();
        }
        $('.lum-close-button').click(hideView);
        let startX,startY,fx;
        $('#_div_').on('touchstart', function(e) {
            let touch = e.originalEvent;
            fx=0;
            startX = touch.changedTouches[0].pageX;
            startY = touch.changedTouches[0].pageY;
            return true;

        }).on('touchmove', (e)=> {
            let touch = e.originalEvent.changedTouches[0];
            if(fx<3){
                if (touch.pageX - startX > 10) {
                    fx=1;
                    //console.log("右划");
                } else if (touch.pageX - startX < -10) {
                    fx=2;
                    //console.log("左划");
                }
            }
            if(fx>2||fx==0){
                if (touch.pageY - startY > 10) {
                    fx=3;
                    //console.log("下划");
                } else if (touch.pageY - startY < -10) {
                    fx=4;
                    //console.log("上划");
                }
            }
            startX = touch.pageX;
            startY = touch.pageY;
            if(fx!=0)e.preventDefault();
            return fx!=0;
        }).on('touchend',()=> {
            if(fx==2||fx==4){//下一张
                img.trigger("click");
            }else if(fx!=0){//上一张
                window._VIEW_(parseInt(img.attr('i'))-1);
            }
        }).click(hideView);
        let img=$('#_img_');
        img.click((e)=>{
            window._VIEW_(parseInt(img.attr('i'))+1);
            e.stopPropagation();
        });
        img.load(()=>{
            if(sl_id){
                clearTimeout(sl_id);
                sl_id=0;
            }
            img.show();
            loader.attr('class','loader-hide');

            let i=parseInt(img.attr('i'));
            let image=files[i++];
            title.html(get_fileName(image));
            page.html(i+'/'+files_length);
            title.removeClass('opacity0');
            page.removeClass('opacity0');
            htp_id=setTimeout(hideTitleAndPage,2000);

            image=files[i];
            if(image){
                prepImg.attr('src',url_from_url_from_hash(image));
                return;
            }
            prepImg.removeAttr('src');
        });
        let prepImg=$('<img>');

        let loader=$('#_loader_');
        loader.parent().click((e)=>loader.is(':visible')&&e.stopPropagation());
        let showLoader=()=>{
            if(sl_id){
                sl_id=0;
                img[0].complete||img.hide();
                loader.attr('class','loader');
            }
        }
        let title=$('._title_'),page=$('._page_');
        let hideTitleAndPage=(is_ct)=>{
            if(htp_id){
                if(is_ct)clearTimeout(htp_id);
                htp_id=0;
                title.addClass('opacity0');
                page.addClass('opacity0');
            }
        };

        let sl_id,htp_id;
        window._VIEW_=(i)=>{
            if(typeof i=='undefined')i=parseInt(img.attr('i'));
            let image=files[i];
            if(!image)return;
            if(sl_id)clearTimeout(sl_id);
            sl_id=setTimeout(showLoader,100);
            img.attr('i',i);
            img.attr('src',url_from_url_from_hash(image));

            hideTitleAndPage(1);
            if(view.is(':hidden')){
                view.show();
                view[0].focus({preventScroll: true});
            }
        };

        let as=$('.thumbnail-list a'),reg=/#([0-9]+)$/,ex;
        for(let i=0,l=as.length;i<l;i++){
            ex=reg.exec(as[i].href);
            if(ex){
                as[i].href='javascript:_VIEW_('+(parseInt(ex[1])-1)+');';
            }
        }
        view.keydown((event)=>{//键盘事件
            if(view.is(':visible')){
                var e = event || window.event;
                var k = e.keyCode || e.which;
                //console.log(k);
                switch(k) {
                    case 27://Esc键
                        hideView();
                        break;
                    case 37://←键
                        window._VIEW_(parseInt(img.attr('i'))-1);
                        break;
                    case 32://空格键
                    case 39://→键
                        img.trigger("click");
                        break;
                    default: return;
                }
                e.stopPropagation();
                e.preventDefault();
            }
        });
    }




};


var tags_Table = {};

tags_Table['loli'] = '萝莉';
tags_Table['shota'] = '正太';
tags_Table['vtuber'] = '虚拟主播';

try{
    var window=window;
    if(unsafeWindow)window=unsafeWindow;
}catch(er){}

var URL = URL || webkitURL || window;
function saveAs(blob, filename){
    /*var type = blob.type;
                    var force_saveable_type = 'application/octet-stream';
                    if (type && type != force_saveable_type) { // 强制下载,而非在浏览器中打开
                        var slice = blob.slice || blob.webkitSlice || blob.mozSlice;
                        blob = slice.call(blob, 0, blob.size, force_saveable_type);
                    }*/
    var url = URL.createObjectURL(blob);
    var save_link = document.createElement('a');
    save_link.href = url;
    save_link.download = filename;

    /*var event = document.createEvent('MouseEvents');
                    event.initMouseEvent('click', true, false, window, 0, 0, 0, 0, 0, false, false, false, false, 0, null);
                    save_link.dispatchEvent(event);*/
    //console.log(url,save_link,filename);
    save_link.click();
    URL.revokeObjectURL(url);
}
function addNewStyle(newStyle,e) {
    var styleElement = document.getElementById('styles_js');
    if (!styleElement) {
        styleElement = document.createElement('style');
        styleElement.type = 'text/css';
        (e?e:document.body).appendChild(styleElement);
    }
    styleElement.innerHTML=newStyle;
}

tags_Table['abortion'] = '堕胎';
tags_Table['absorption'] = '吞噬';
tags_Table['adventitious mouth'] = '非正常位置嘴';
tags_Table['adventitious penis'] = '非正常位置屌';
tags_Table['adventitious vagina'] = '非正常位置批';
tags_Table['afrikaans'] = '南非语';
tags_Table['afro'] = '爆炸头';
tags_Table['age progression'] = '快速成长';
tags_Table['age regression'] = '返老还童';
tags_Table['ahegao'] = '阿黑颜';
tags_Table['albanian'] = '阿尔巴尼亚语';
tags_Table['albino'] = '白化';
tags_Table['alien girl'] = '外星娘';
tags_Table['alien'] = '雄外星人';
tags_Table['all the way through'] = '头尾贯通';
tags_Table['already uploaded'] = '已上传过';
tags_Table['amputee'] = '断肢';
tags_Table['anaglyph'] = '立体';
tags_Table['anal birth'] = '肛门生育';
tags_Table['anal intercourse'] = '肛交';
tags_Table['anal prolapse'] = '脱肛';
tags_Table['anal'] = '肛门';
tags_Table['analphagia'] = '被肛门吞入';
tags_Table['angel'] = '天使';
tags_Table['anigegao'] = '二次元皮';
tags_Table['animal on animal'] = '动物X动物';
tags_Table['animal on furry'] = '兽人X动物';
tags_Table['animated'] = '动画';
tags_Table['anorexic'] = '骨瘦如柴';
tags_Table['anthology'] = '选集';
tags_Table['apparel bukkake'] = '精液衣服';
tags_Table['apron'] = '围裙';
tags_Table['arabic'] = '阿拉伯语';
tags_Table['aramaic'] = '阿拉姆语';
tags_Table['armenian'] = '亚美尼亚语';
tags_Table['armpit licking'] = '舔腋下';
tags_Table['armpit sex'] = '腋下交';
tags_Table['artbook'] = '画集';
tags_Table['asphyxiation'] = '窒息';
tags_Table['ass expansion'] = '屁股膨大';
tags_Table['assjob'] = '臀交';
tags_Table['aunt'] = '姨姑';
tags_Table['autofellatio'] = '自己口交';
tags_Table['autopaizuri'] = '自己乳交';
tags_Table['bald'] = '光头';
tags_Table['ball sucking'] = '吸睾丸';
tags_Table['balljob'] = '睾丸交';
tags_Table['balls expansion'] = '睾丸膨大';
tags_Table['bandages'] = '绷带';
tags_Table['bandaid'] = '创可贴';
tags_Table['bat boy'] = '蝙蝠人';
tags_Table['bat girl'] = '蝙蝠娘';
tags_Table['bbm'] = '胖男';
tags_Table['bbw'] = '胖女';
tags_Table['bdsm'] = '施虐受虐';
tags_Table['bear boy'] = '雄熊人';
tags_Table['bear girl'] = '熊娘';
tags_Table['bear'] = '熊';
tags_Table['beauty mark'] = '美人痣';
tags_Table['bee boy'] = '蜂人';
tags_Table['bee girl'] = '蜂娘';
tags_Table['bengali'] = '孟加拉语';
tags_Table['bestiality'] = '兽交';
tags_Table['big areolae'] = '大乳晕';
tags_Table['big ass'] = '大屁股';
tags_Table['big balls'] = '大睾丸';
tags_Table['big breasts'] = '巨乳';
tags_Table['big clit'] = '大阴蒂';
tags_Table['big lips'] = '大嘴唇';
tags_Table['big muscles'] = '大肌肉';
tags_Table['big nipples'] = '大乳头';
tags_Table['big penis'] = '大屌';
tags_Table['big vagina'] = '大阴道';
tags_Table['bike shorts'] = '骑行裤';
tags_Table['bikini'] = '比基尼';
tags_Table['birth'] = '出产';
tags_Table['bisexual'] = '双性恋';
tags_Table['blackmail'] = '勒索';
tags_Table['blind'] = '瞎子';
tags_Table['blindfold'] = '遮眼';
tags_Table['blood'] = '流血';
tags_Table['bloomers'] = '布鲁玛';
tags_Table['blowjob face'] = '口交脸';
tags_Table['blowjob'] = '口交';
tags_Table['body modification'] = '身体改造';
tags_Table['body painting'] = '人体彩绘';
tags_Table['body swap'] = '身体交换';
tags_Table['body writing'] = '身上写字';
tags_Table['bodystocking'] = '连身袜';
tags_Table['bodysuit'] = '全身紧身衣';
tags_Table['bondage'] = '捆绑';
tags_Table['bosnian'] = '波斯尼亚语';
tags_Table['braces'] = '牙套';
tags_Table['brain fuck'] = '脑交';
tags_Table['breast expansion'] = '乳房膨大';
tags_Table['breast feeding'] = '喂奶';
tags_Table['breast reduction'] = '乳房缩小';
tags_Table['bride'] = '婚纱';
tags_Table['brother'] = '兄弟';
tags_Table['bukkake'] = '颜射';
tags_Table['bulgarian'] = '保加利亚语';
tags_Table['bull'] = '公牛';
tags_Table['bunny boy'] = '雄兔人';
tags_Table['bunny girl'] = '兔娘';
tags_Table['burmese'] = '缅甸语';
tags_Table['burping'] = '打嗝';
tags_Table['business suit'] = '商务装';
tags_Table['butler'] = '男管家';
tags_Table['camel'] = '骆驼';
tags_Table['cannibalism'] = '同类相食';
tags_Table['caption'] = '增添文本';
tags_Table['cashier'] = '收银员';
tags_Table['cat'] = '猫';
tags_Table['catalan'] = '加泰罗尼亚语';
tags_Table['catboy'] = '雄猫人';
tags_Table['catfight'] = '两女相争';
tags_Table['catgirl'] = '猫娘';
tags_Table['cbt'] = '虐睾丸';
tags_Table['cebuano'] = '宿务语';
tags_Table['centaur'] = '半人马';
tags_Table['cervix penetration'] = '子宫透视';
tags_Table['cervix prolapse'] = '子宫脱垂';
tags_Table['chastity belt'] = '贞操带';
tags_Table['cheating'] = 'NTL睡别人爱人';
tags_Table['cheerleader'] = '拉拉队';
tags_Table['chikan'] = '痴汉';
tags_Table['chinese dress'] = '旗袍';
tags_Table['chinese'] = '汉语';
tags_Table['chloroform'] = '迷药';
tags_Table['christmas'] = '圣诞装';
tags_Table['clamp'] = '夹子';
tags_Table['clit growth'] = '阴蒂增长';
tags_Table['clit insertion'] = '插入阴蒂';
tags_Table['clone'] = '克隆';
tags_Table['closed eyes'] = '闭眼';
tags_Table['clothed female nude male'] = '女衣男裸';
tags_Table['clothed male nude female'] = '男衣女裸';
tags_Table['clothed paizuri'] = '穿衣乳交';
tags_Table['clown'] = '小丑';
tags_Table['coach'] = '教练';
tags_Table['cockphagia'] = '被屌吞入';
tags_Table['cockslapping'] = '用屌打脸';
tags_Table['collar'] = '项圈';
tags_Table['comic'] = '漫画';
tags_Table['compilation'] = '禁止的编辑';
tags_Table['condom'] = '避孕套';
tags_Table['conjoined'] = '连体';
tags_Table['coprophagia'] = '食粪';
tags_Table['corruption'] = '恶堕';
tags_Table['corset'] = '紧身胸衣';
tags_Table['cosplaying'] = 'Cosplay';
tags_Table['cousin'] = '表姐/妹';
tags_Table['cow'] = '牛';
tags_Table['cowgirl'] = '奶牛娘';
tags_Table['cowman'] = '雄奶牛人';
tags_Table['crab'] = '蟹';
tags_Table['croatian'] = '克罗地亚语';
tags_Table['crossdressing'] = '异性服装';
tags_Table['crotch tattoo'] = '淫纹';
tags_Table['crown'] = '王冠';
tags_Table['cum bath'] = '泡精液浴';
tags_Table['cum in eye'] = '眼射';
tags_Table['cum swap'] = '交换精液';
tags_Table['cumflation'] = '灌满精液';
tags_Table['cunnilingus'] = '舔阴';
tags_Table['cuntboy'] = '无屌有穴';
tags_Table['cuntbusting'] = '击打阴道';
tags_Table['czech'] = '捷克语';
tags_Table['dakimakura'] = '抱枕';
tags_Table['danish'] = '丹麦语';
tags_Table['dark nipples'] = '深色乳头';
tags_Table['dark sclera'] = '深色眼白';
tags_Table['dark skin'] = '深色肌肤';
tags_Table['daughter'] = '女儿';
tags_Table['deepthroat'] = '深喉';
tags_Table['deer boy'] = '雄鹿人';
tags_Table['deer girl'] = '鹿娘';
tags_Table['deer'] = '鹿';
tags_Table['defloration'] = '破处';
tags_Table['demon girl'] = '女恶魔';
tags_Table['demon'] = '恶魔';
tags_Table['denki anma'] = '用力踩裆';
tags_Table['diaper'] = '尿不湿';
tags_Table['dick growth'] = '阴茎增长';
tags_Table['dickgirl on dickgirl'] = '扶她X扶她';
tags_Table['dickgirl on male'] = '扶她X男人';
tags_Table['dickgirls only'] = '只有扶她';
tags_Table['dicknipples'] = '乳头如屌';
tags_Table['dilf'] = '熟男';
tags_Table['dinosaur'] = '恐龙';
tags_Table['dismantling'] = '机械娘拆解';
tags_Table['dog boy'] = '雄狗人';
tags_Table['dog girl'] = '犬娘';
tags_Table['dog'] = '犬';
tags_Table['doll joints'] = '人偶关节';
tags_Table['dolphin'] = '海豚';
tags_Table['donkey'] = '毛驴';
tags_Table['double anal'] = '两屌一菊';
tags_Table['double blowjob'] = '两屌一口';
tags_Table['double penetration'] = '双穴贯通';
tags_Table['double vaginal'] = '两屌一穴';
tags_Table['dougi'] = '道着';
tags_Table['draenei'] = '德莱尼';
tags_Table['dragon'] = '龙';
tags_Table['drill hair'] = '卷鬓角';
tags_Table['drugs'] = '催情药';
tags_Table['drunk'] = '醉酒';
tags_Table['dutch'] = '荷兰语';
tags_Table['ear fuck'] = '耳交';
tags_Table['eel'] = '鳗鱼';
tags_Table['eggs'] = '产卵';
tags_Table['electric shocks'] = '电击';
tags_Table['elephant'] = '大象';
tags_Table['elf'] = '精灵';
tags_Table['emotionless sex'] = '无感情性交';
tags_Table['enema'] = '灌肠';
tags_Table['english'] = '英语';
tags_Table['esperanto'] = '世界语';
tags_Table['estonian'] = '爱沙尼亚语';
tags_Table['exhibitionism'] = '露出';
tags_Table['eye penetration'] = '眼交';
tags_Table['eye-covering bang'] = '刘海遮眼';
tags_Table['eyemask'] = '眼部面具';
tags_Table['eyepatch'] = '眼罩';
tags_Table['facesitting'] = '颜面骑乘';
tags_Table['facial hair'] = '胡子';
tags_Table['fairy'] = '小妖精';
tags_Table['farting'] = '放屁';
tags_Table['father'] = '爸爸';
tags_Table['females only'] = '只有女性';
tags_Table['femdom'] = '女性主导';
tags_Table['feminization'] = '女性化';
tags_Table['fff threesome'] = '三女';
tags_Table['ffm threesome'] = '两女一男';
tags_Table['fft threesome'] = '两女一扶她';
tags_Table['figure'] = '画像';
tags_Table['filming'] = '摄像';
tags_Table['fingering'] = '指交';
tags_Table['finnish'] = '芬兰语';
tags_Table['first person perspective'] = '第一人称';
tags_Table['fish'] = '鱼';
tags_Table['fishnets'] = '渔网袜';
tags_Table['fisting'] = '拳交';
tags_Table['focus anal'] = '注重肛门';
tags_Table['focus blowjob'] = '注重口交';
tags_Table['food on body'] = '人体盛宴';
tags_Table['foot insertion'] = '足插入';
tags_Table['foot licking'] = '舔足';
tags_Table['footjob'] = '足交';
tags_Table['forbidden content'] = '禁止的内容';
tags_Table['forced exposure'] = '强制露出';
tags_Table['forniphilia'] = '人型家具';
tags_Table['fox boy'] = '雄狐人';
tags_Table['fox girl'] = '狐娘';
tags_Table['fox'] = '狐狸';
tags_Table['freckles'] = '雀斑';
tags_Table['french'] = '法语';
tags_Table['frog boy'] = '蛙人';
tags_Table['frog girl'] = '蛙娘';
tags_Table['frog'] = '青蛙';
tags_Table['frottage'] = '双屌互蹭';
tags_Table['full body tattoo'] = '全身纹身';
tags_Table['full censorship'] = '色块遮挡';
tags_Table['full color'] = '全彩';
tags_Table['fundoshi'] = '兜裆布';
tags_Table['furry'] = '兽人';
tags_Table['futanari on male'] = '扶她X男人';
tags_Table['futanari'] = '扶她';
tags_Table['gag'] = '堵嘴';
tags_Table['game sprite'] = '像素画';
tags_Table['gaping'] = '洞被扩大';
tags_Table['garter belt'] = '吊带袜';
tags_Table['gasmask'] = '防毒面具';
tags_Table['gender bender'] = '变性';
tags_Table['georgian'] = '格鲁吉亚语';
tags_Table['german'] = '德语';
tags_Table['ghost'] = '幽灵';
tags_Table['giant sperm'] = '巨大精子';
tags_Table['giant'] = '巨人';
tags_Table['giantess'] = '女巨人';
tags_Table['gigantic breasts'] = '大超巨乳';
tags_Table['gijinka'] = '拟人化';
tags_Table['giraffe boy'] = '蜂人';
tags_Table['giraffe boy‎'] = '蜂人';
tags_Table['giraffe girl'] = '长颈鹿娘';
tags_Table['giraffe girl‎'] = '长颈鹿娘';
tags_Table['glasses'] = '眼镜';
tags_Table['glory hole'] = '性运的洞';
tags_Table['gloves'] = '手套';
tags_Table['goat'] = '山羊';
tags_Table['goblin'] = '哥布林';
tags_Table['gokkun'] = '吞精';
tags_Table['gorilla'] = '猩猩';
tags_Table['gothic lolita'] = '哥特洛丽塔';
tags_Table['goudoushi'] = '合作本';
tags_Table['granddaughter'] = '孙女';
tags_Table['grandfather'] = '爷爷';
tags_Table['grandmother'] = '奶奶';
tags_Table['greek'] = '希腊语';
tags_Table['group'] = '群P';
tags_Table['growth'] = '体型增大';
tags_Table['gujarati'] = '吉吉拉特语';
tags_Table['guro'] = '猎奇';
tags_Table['gyaru'] = '太妹';
tags_Table['gyaru-oh'] = '不良';
tags_Table['gyaru-oh‎'] = '不良';
tags_Table['gymshorts'] = '运动短裤';
tags_Table['haigure'] = '高叉马步';
tags_Table['hair buns'] = '发髻';
tags_Table['hairjob'] = '发交';
tags_Table['hairy armpits'] = '腋下多毛';
tags_Table['hairy'] = '多阴毛';
tags_Table['handicapped'] = '残疾';
tags_Table['handjob'] = '手冲';
tags_Table['hardcore'] = '发生性交';
tags_Table['harem'] = '后宫';
tags_Table['harness'] = '皮带衣';
tags_Table['harpy'] = '鸟身女妖';
tags_Table['headless'] = '无头';
tags_Table['headphones'] = '耳机';
tags_Table['hebrew'] = '希伯来语';
tags_Table['heterochromia'] = '异色瞳';
tags_Table['hidden sex'] = '偷偷做爱';
tags_Table['hijab'] = '头巾';
tags_Table['hindi'] = '印地语';
tags_Table['hmong'] = '苗语';
tags_Table['hood'] = '头巾';
tags_Table['horns'] = '角';
tags_Table['horse boy'] = '雄马人';
tags_Table['horse cock'] = '马屌';
tags_Table['horse girl'] = '马娘';
tags_Table['horse'] = '马';
tags_Table['hotpants'] = '热裤';
tags_Table['how to'] = '教程';
tags_Table['huge breasts'] = '超巨乳';
tags_Table['huge penis'] = '超大阴茎';
tags_Table['human cattle'] = '人型牲畜';
tags_Table['human on furry'] = '人与兽人';
tags_Table['human pet'] = '人型宠物';
tags_Table['humiliation'] = '凌辱';
tags_Table['hungarian'] = '匈牙利语';
tags_Table['icelandic'] = '冰岛语';
tags_Table['impregnation'] = '受精';
tags_Table['incest'] = '乱伦';
tags_Table['incomplete'] = '不完整';
tags_Table['indonesian'] = '印尼语';
tags_Table['infantilism'] = '幼稚行为';
tags_Table['inflation'] = '腹部膨胀';
tags_Table['insect boy'] = '雄昆虫人';
tags_Table['insect girl'] = '昆虫娘';
tags_Table['insect'] = '昆虫';
tags_Table['inseki'] = '远亲相奸';
tags_Table['internal urination'] = '在阴道尿';
tags_Table['inverted nipples'] = '凹陷乳头';
tags_Table['invisible'] = '隐身';
tags_Table['italian'] = '意大利语';
tags_Table['japanese'] = '日语';
tags_Table['javanese'] = '爪哇语';
tags_Table['josou seme'] = '女装攻';
tags_Table['kangaroo'] = '袋鼠';
tags_Table['kannada'] = '卡纳达语';
tags_Table['kappa'] = '河童';
tags_Table['kazakh'] = '哈萨克斯坦语';
tags_Table['kemonomimi'] = '兽耳';
tags_Table['khmer'] = '高棉语';
tags_Table['kigurumi pajama'] = '玩偶睡衣';
tags_Table['kigurumi'] = '玩偶服';
tags_Table['kimono'] = '和服';
tags_Table['kindergarten uniform'] = '幼儿园校服';
tags_Table['kissing'] = '接吻';
tags_Table['kneepit sex'] = '膝交';
tags_Table['korean'] = '韩语';
tags_Table['kunoichi'] = '女忍者';
tags_Table['kurdish'] = '库尔德语';
tags_Table['lab coat'] = '白大褂';
tags_Table['lactation'] = '乳汁';
tags_Table['ladino'] = '犹太西班牙语';
tags_Table['lao'] = '老挝语';
tags_Table['large insertions'] = '巨物插入';
tags_Table['large tattoo'] = '大面积纹身';
tags_Table['latex'] = '乳胶衣';
tags_Table['latin'] = '拉丁语';
tags_Table['layer cake'] = '夹在两穴中';
tags_Table['leash'] = '牵绳';
tags_Table['leg lock'] = '腿夹住对象';
tags_Table['legjob'] = '腿交';
tags_Table['leotard'] = '连体衣';
tags_Table['lingerie'] = '情趣内衣';
tags_Table['lion'] = '雄狮';
tags_Table['lioness'] = '母狮';
tags_Table['living clothes'] = '触手服';
tags_Table['lizard girl'] = '蜥蜴娘';
tags_Table['lizard guy'] = '雄蜥蜴人';
tags_Table['lolicon'] = '萝莉控';
tags_Table['long tongue'] = '长舌';
tags_Table['low bestiality'] = '别标兽交';
tags_Table['low guro'] = '别标猎奇';
tags_Table['low lolicon'] = '别标萝莉控';
tags_Table['low scat'] = '别标排泄';
tags_Table['low shotacon'] = '别标正太控';
tags_Table['low smegma'] = '别标耻垢';
tags_Table['low toddlercon'] = '别标婴儿控';
tags_Table['machine'] = '机械';
tags_Table['maggot'] = '蛆虫';
tags_Table['magical girl'] = '魔法少女';
tags_Table['maid'] = '女仆';
tags_Table['makeup'] = '浓妆';
tags_Table['malay'] = '马来语';
tags_Table['male on dickgirl'] = '男人X扶她';
tags_Table['males only'] = '只有男性';
tags_Table['marathi'] = '马拉地语';
tags_Table['masked face'] = '戴面具';
tags_Table['masturbation'] = '手淫';
tags_Table['mecha boy'] = '机甲男';
tags_Table['mecha boy‎'] = '机甲男';
tags_Table['mecha girl'] = '机甲娘';
tags_Table['menstruation'] = '经血';
tags_Table['mermaid'] = '美人鱼';
tags_Table['merman'] = '雄人鱼';
tags_Table['mesuiki'] = '前列腺高潮';
tags_Table['mesuiki‎'] = '前列腺高潮';
tags_Table['metal armor'] = '金属盔甲';
tags_Table['midget'] = '侏儒';
tags_Table['miko'] = '巫女';
tags_Table['milf'] = '熟女';
tags_Table['military'] = '军装';
tags_Table['milking'] = '搾乳';
tags_Table['mind break'] = '精神崩溃';
tags_Table['mind control'] = '催眠';
tags_Table['minigirl'] = '袖珍女';
tags_Table['miniguy'] = '袖珍男';
tags_Table['minotaur'] = '牛头人';
tags_Table['missing cover'] = '缺失封面';
tags_Table['mmf threesome'] = '两男一女';
tags_Table['mmm threesome'] = '三男';
tags_Table['mmt threesome'] = '两男一扶她';
tags_Table['mongolian'] = '蒙语';
tags_Table['monkey boy'] = '雄猴人';
tags_Table['monkey girl'] = '猴娘';
tags_Table['monkey'] = '猴子';
tags_Table['monoeye'] = '天生独眼';
tags_Table['monster girl'] = '怪物娘';
tags_Table['monster'] = '怪物';
tags_Table['moral degeneration'] = '道德沦丧';
tags_Table['mosaic censorship'] = '马赛克';
tags_Table['mother'] = '妈妈';
tags_Table['mouse boy'] = '雄鼠人';
tags_Table['mouse girl'] = '鼠娘';
tags_Table['mouse'] = '老鼠';
tags_Table['mouth mask'] = '口罩';
tags_Table['mtf threesome'] = '一男一女一扶她';
tags_Table['multi-work series'] = '系列作品';
tags_Table['multi-work series‎'] = '系列作品';
tags_Table['multimouth blowjob'] = '多人口交';
tags_Table['multipanel sequence'] = '固定视角';
tags_Table['multiple arms'] = '复数胳膊';
tags_Table['multiple assjob'] = '多人臀交';
tags_Table['multiple breasts'] = '复数乳房';
tags_Table['multiple footjob'] = '多人足交';
tags_Table['multiple handjob'] = '多人手冲';
tags_Table['multiple nipples'] = '复数乳头';
tags_Table['multiple orgasms'] = '连续高潮';
tags_Table['multiple paizuri'] = '多人乳交';
tags_Table['multiple penises'] = '复数阴茎';
tags_Table['multiple straddling'] = '多人跨坐';
tags_Table['multiple vaginas'] = '复数阴道';
tags_Table['muscle growth'] = '肌肉增长';
tags_Table['muscle'] = '肌肉';
tags_Table['mute'] = '哑巴';
tags_Table['nakadashi'] = '中出';
tags_Table['navel fuck'] = '肚脐交';
tags_Table['nazi'] = '纳粹';
tags_Table['ndebele'] = '恩德贝莱语';
tags_Table['necrophilia'] = '奸尸';
tags_Table['nepali'] = '泥泊尔语';
tags_Table['netorare'] = 'NTR爱人被睡';
tags_Table['niece'] = '侄女';
tags_Table['ninja'] = '忍者';
tags_Table['nipple birth'] = '乳头生育';
tags_Table['nipple expansion'] = '乳头膨大';
tags_Table['nipple fuck'] = '乳头交';
tags_Table['no penetration'] = '不插入';
tags_Table['non-h imageset'] = '非色情图集';
tags_Table['non-nude'] = '无裸露';
tags_Table['norwegian'] = '挪威语';
tags_Table['nose fuck'] = '鼻交';
tags_Table['nose hook'] = '鼻钩';
tags_Table['novel'] = '小说';
tags_Table['nudity only'] = '只是裸露';
tags_Table['nun'] = '修女';
tags_Table['nurse'] = '护士';
tags_Table['octopus'] = '章鱼';
tags_Table['oil'] = '乳液';
tags_Table['old lady'] = '老女人';
tags_Table['old man'] = '老男人';
tags_Table['omorashi'] = '漏尿';
tags_Table['onahole'] = '飞机杯';
tags_Table['oni'] = '日式鬼';
tags_Table['oppai loli'] = '巨乳萝莉';
tags_Table['orc'] = '半兽人';
tags_Table['orgasm denial'] = '高潮管理';
tags_Table['oromo'] = '奥罗莫语';
tags_Table['ostrich'] = '鸵鸟';
tags_Table['otter boy'] = '水獭人';
tags_Table['otter girl'] = '水獭娘';
tags_Table['out of order'] = '乱序';
tags_Table['oyakodon'] = '母女丼';
tags_Table['oyakodon‎'] = '母女丼';
tags_Table['paizuri'] = '乳交';
tags_Table['panda boy'] = '熊猫人';
tags_Table['panda girl'] = '熊猫娘';
tags_Table['panther'] = '豹子';
tags_Table['pantyhose'] = '连裤袜';
tags_Table['pantyjob'] = '用内裤冲';
tags_Table['paperchild'] = '小纸人';
tags_Table['papiamento'] = '帕皮阿门托语';
tags_Table['parasite'] = '寄生';
tags_Table['pashto'] = '普什图语';
tags_Table['pasties'] = '乳贴';
tags_Table['pegging'] = '女插男菊';
tags_Table['penis birth'] = '阴茎生育';
tags_Table['persian'] = '波斯语';
tags_Table['petplay'] = '调教';
tags_Table['petrification'] = '石化';
tags_Table['phimosis'] = '包茎';
tags_Table['phone sex'] = '电话性爱';
tags_Table['piercing'] = '穿孔';
tags_Table['pig girl'] = '猪娘';
tags_Table['pig man'] = '雄猪人';
tags_Table['pig'] = '猪';
tags_Table['pillory'] = '颈手枷';
tags_Table['pirate'] = '海盗';
tags_Table['piss drinking'] = '喝尿';
tags_Table['pixie cut'] = '短发';
tags_Table['plant boy'] = '雄植物人';
tags_Table['plant girl'] = '植物娘';
tags_Table['pole dancing'] = '钢管舞';
tags_Table['policeman'] = '男警察';
tags_Table['policewoman'] = '女警察';
tags_Table['polish'] = '波兰语';
tags_Table['ponygirl'] = '女骑师';
tags_Table['ponytail'] = '马尾辫';
tags_Table['poor grammar'] = '语法错误';
tags_Table['portuguese'] = '葡萄牙语';
tags_Table['possession'] = '附身';
tags_Table['pregnant'] = '妊娠';
tags_Table['prehensile hair'] = '控制头发如肢体';
tags_Table['priest'] = '祭司';
tags_Table['prolapse'] = '脱肛';
tags_Table['prostate massage'] = '前列腺按摩';
tags_Table['prostitution'] = '卖淫';
tags_Table['pubic stubble'] = '阴毛茬';
tags_Table['public use'] = '肉便器';
tags_Table['punjabi'] = '旁遮普语';
tags_Table['rabbit'] = '兔子';
tags_Table['raccoon boy'] = '雄浣熊人';
tags_Table['raccoon girl'] = '浣熊娘';
tags_Table['raccoon girl‎'] = '浣熊娘';
tags_Table['race queen'] = '赛车女郎';
tags_Table['randoseru'] = '皮革硬质书包';
tags_Table['rape'] = '强奸';
tags_Table['real doll'] = '性爱娃娃';
tags_Table['realporn'] = '引流推广';
tags_Table['redraw'] = '重绘';
tags_Table['replaced'] = '有优质替代';
tags_Table['reptile'] = '爬行';
tags_Table['rewrite'] = '自创文本';
tags_Table['rhinoceros'] = '犀牛';
tags_Table['rimjob'] = '舔菊';
tags_Table['robot girl'] = '机器娘';
tags_Table['robot'] = '机器人';
tags_Table['romanian'] = '罗马尼亚语';
tags_Table['russian'] = '俄罗斯语';
tags_Table['ryona'] = '虐女萌';
tags_Table['saliva'] = '唾液';
tags_Table['sample'] = '样本';
tags_Table['sango'] = '桑戈语';
tags_Table['sanskrit'] = '梵语';
tags_Table['sarashi'] = '束胸';
tags_Table['scanmark'] = '有印记';
tags_Table['scar'] = '伤疤';
tags_Table['scat'] = '排泄';
tags_Table['school gym uniform'] = '学校体操服';
tags_Table['school swimsuit'] = '学校泳装';
tags_Table['schoolboy uniform'] = '男学生校服';
tags_Table['schoolboy'] = '男学生';
tags_Table['schoolgirl uniform'] = '女学生校服';
tags_Table['schoolgirl'] = '女学生';
tags_Table['screenshots'] = '截图';
tags_Table['scrotal lingerie'] = '情趣屌服饰';
tags_Table['selfcest'] = '自己X自己';
tags_Table['serbian'] = '塞尔维亚语';
tags_Table['sex toys'] = '性玩具';
tags_Table['shapening'] = '变形';
tags_Table['shared senses'] = '感官共享';
tags_Table['shark boy'] = '雄鲨鱼人';
tags_Table['shark girl'] = '鲨鱼娘';
tags_Table['shark'] = '鲨鱼';
tags_Table['shaved head'] = '平头';
tags_Table['sheep boy'] = '雄绵羊人';
tags_Table['sheep girl'] = '绵羊娘';
tags_Table['sheep'] = '羊';
tags_Table['shemale'] = '人妖';
tags_Table['shibari'] = '绳艺';
tags_Table['shimaidon'] = '姐妹丼';
tags_Table['shimapan'] = '条纹内裤';
tags_Table['shona'] = '绍纳语';
tags_Table['shotacon'] = '正太控';
tags_Table['shrinking'] = '体型缩小';
tags_Table['sister'] = '姐/妹';
tags_Table['sketch lines'] = '素描';
tags_Table['skinsuit'] = '人皮';
tags_Table['skunk boy'] = '臭鼬人';
tags_Table['skunk girl'] = '臭鼬娘';
tags_Table['slave'] = '奴隶';
tags_Table['sleeping'] = '睡奸';
tags_Table['slime boy'] = '雄史莱姆';
tags_Table['slime boy‎'] = '雄史莱姆';
tags_Table['slime girl'] = '史莱姆娘';
tags_Table['slime'] = '史莱姆';
tags_Table['slovak'] = '斯洛伐克语';
tags_Table['slovenian'] = '斯洛文尼亚语';
tags_Table['slug'] = '蛞蝓';
tags_Table['small breasts'] = '贫乳';
tags_Table['small penis'] = '小屌';
tags_Table['smegma'] = '耻垢';
tags_Table['smell'] = '有气味';
tags_Table['smoking'] = '事中吸烟';
tags_Table['snake boy'] = '雄蛇人';
tags_Table['snake girl'] = '蛇娘';
tags_Table['snake'] = '蛇';
tags_Table['snuff'] = '虐杀';
tags_Table['sockjob'] = '袜交';
tags_Table['sole dickgirl'] = '单扶她';
tags_Table['sole female'] = '单女';
tags_Table['sole male'] = '单男';
tags_Table['solo action'] = '自慰';
tags_Table['somali'] = '索马里语';
tags_Table['soushuuhen'] = '总集编';
tags_Table['spanish'] = '西班牙语';
tags_Table['spanking'] = '打屁股';
tags_Table['speculum'] = '内窥器';
tags_Table['speechless'] = '无文字';
tags_Table['spider boy'] = '蜘蛛人';
tags_Table['spider girl'] = '蜘蛛娘';
tags_Table['spider'] = '蜘蛛';
tags_Table['squid boy'] = '雄鱿鱼';
tags_Table['squid girl'] = '鱿鱼娘';
tags_Table['squirrel boy'] = '松鼠人';
tags_Table['squirrel girl'] = '松鼠娘';
tags_Table['squirting'] = '潮吹';
tags_Table['ssbbm'] = '巨胖男';
tags_Table['ssbbw'] = '巨胖女';
tags_Table['stereoscopic'] = '立体视觉';
tags_Table['steward'] = '男管家';
tags_Table['stewardess'] = '乘务员制服';
tags_Table['stirrup legwear'] = '踩脚袜';
tags_Table['stockings'] = '长筒袜';
tags_Table['stomach deformation'] = '胃变形';
tags_Table['story arc'] = '故事概览';
tags_Table['straitjacket'] = '拘束衣';
tags_Table['strap-on'] = '假阳具';
tags_Table['stretching'] = '扩张';
tags_Table['stuck in wall'] = '卡墙里';
tags_Table['sumata'] = '大腿交';
tags_Table['sundress'] = '背心裙';
tags_Table['sunglasses'] = '太阳镜';
tags_Table['swahili'] = '斯瓦希里语';
tags_Table['sweating'] = '出汗';
tags_Table['swedish'] = '瑞典语';
tags_Table['swimsuit'] = '泳装';
tags_Table['swinging'] = '夫妇招人';
tags_Table['syringe'] = '注射器';
tags_Table['table masturbation'] = '摩擦桌角';
tags_Table['tagalog'] = '菲律宾语';
tags_Table['tail plug'] = '肛塞';
tags_Table['tail'] = '尾巴';
tags_Table['tailjob'] = '尾交';
tags_Table['tailphagia'] = '被尾巴吞入';
tags_Table['tall girl'] = '高个女';
tags_Table['tall man'] = '高个男';
tags_Table['tamil'] = '泰米尔语';
tags_Table['tankoubon'] = '单行本';
tags_Table['tanlines'] = '晒痕';
tags_Table['teacher'] = '教师';
tags_Table['telugu'] = '泰卢固语';
tags_Table['tentacles'] = '触手';
tags_Table['text cleaned'] = '无嵌字版';
tags_Table['thai'] = '泰语';
tags_Table['themeless'] = '没有主题';
tags_Table['thick eyebrows'] = '粗眉毛';
tags_Table['thigh high boots'] = '长筒靴';
tags_Table['tiara'] = '冠状头饰';
tags_Table['tibetan'] = '藏语';
tags_Table['tickling'] = '挠痒';
tags_Table['tiger'] = '老虎';
tags_Table['tights'] = '紧身服';
tags_Table['tigrinya'] = '提格雷尼亚语';
tags_Table['time stop'] = '时间停止';
tags_Table['toddlercon'] = '婴儿控';
tags_Table['tomboy'] = '假小子';
tags_Table['tomgirl'] = '伪娘';
tags_Table['tooth brushing'] = '刷牙';
tags_Table['torture'] = '酷刑';
tags_Table['tracksuit'] = '运动服';
tags_Table['trampling'] = '踩踏';
tags_Table['transformation'] = '变形';
tags_Table['translated'] = '译制品';
tags_Table['tribadism'] = '磨镜';
tags_Table['triple anal'] = '三屌一菊';
tags_Table['triple penetration'] = '三穴贯通';
tags_Table['triple vaginal'] = '三屌一穴';
tags_Table['ttf threesome'] = '两扶她一女';
tags_Table['ttm threesome'] = '两扶她一男';
tags_Table['ttt threesome'] = '三扶她';
tags_Table['tube'] = '插管';
tags_Table['turkish'] = '土耳其语';
tags_Table['turtle'] = '乌龟';
tags_Table['tutor'] = '家教';
tags_Table['twins'] = '双胞胎';
tags_Table['twintails'] = '双马尾';
tags_Table['ukrainian'] = '乌克兰语';
tags_Table['unbirth'] = '被阴道吞入';
tags_Table['uncensored'] = '无修正';
tags_Table['uncle'] = '叔舅';
tags_Table['underwater'] = '水下性爱';
tags_Table['unicorn'] = '独角兽';
tags_Table['unusual insertions'] = '非正常插入';
tags_Table['unusual pupils'] = '非正常瞳孔';
tags_Table['unusual teeth'] = '特殊牙齿';
tags_Table['urdu'] = '乌尔都语';
tags_Table['urethra insertion'] = '尿道插入';
tags_Table['urination'] = '放尿';
tags_Table['vacbed'] = '真空床';
tags_Table['vaginal sticker'] = '小穴贴';
tags_Table['vampire'] = '吸血鬼';
tags_Table['variant set'] = '单场景CG集';
tags_Table['very long hair'] = '超长头发';
tags_Table['vietnamese'] = '越南语';
tags_Table['virginity'] = '处女';
tags_Table['vomit'] = '呕吐';
tags_Table['vore'] = '捕食';
tags_Table['voyeurism'] = '偷窥';
tags_Table['waiter'] = '男服务员';
tags_Table['waitress'] = '女服务员';
tags_Table['watermarked'] = '有水印';
tags_Table['webtoon'] = '网页多媒体漫画';
tags_Table['weight gain'] = '体重增长';
tags_Table['welsh'] = '威尔士语';
tags_Table['western cg'] = '西方CG';
tags_Table['western imageset'] = '西方图集';
tags_Table['western non-h'] = '西方非色情';
tags_Table['western non-h‎'] = '西方非色情';
tags_Table['wet clothes'] = '湿身';
tags_Table['whale'] = '鲸鱼';
tags_Table['whip'] = '鞭打';
tags_Table['widow'] = '寡妇';
tags_Table['widower'] = '鳏夫';
tags_Table['wingjob'] = '翅交';
tags_Table['wings'] = '翅膀';
tags_Table['witch'] = '女巫';
tags_Table['wolf boy'] = '雄狼人';
tags_Table['wolf girl'] = '狼娘';
tags_Table['wolf'] = '狼';
tags_Table['wooden horse'] = '三角木马';
tags_Table['worm'] = '虫子';
tags_Table['wormhole'] = '虫洞';
tags_Table['wrestling'] = '摔跤';
tags_Table['x-ray'] = '透视';
tags_Table['yandere'] = '病娇';
tags_Table['yaoi'] = '男同';
tags_Table['yiddish'] = '意第绪语';
tags_Table['yukkuri'] = '油库里';
tags_Table['yuri'] = '女同';
tags_Table['zebra'] = '斑马';
tags_Table['zombie'] = '丧尸';
tags_Table['zulu'] = '祖鲁语';

main();