苍雪表情增强插件

DIY Emotion

当前为 2014-09-18 提交的版本,查看 最新版本

您需要先安装一个扩展,例如 篡改猴Greasemonkey暴力猴,之后才能安装此脚本。

You will need to install an extension such as Tampermonkey to install this script.

您需要先安装一个扩展,例如 篡改猴暴力猴,之后才能安装此脚本。

您需要先安装一个扩展,例如 篡改猴Userscripts ,之后才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。

您需要先安装用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name       苍雪表情增强插件
// @namespace  http://blog.eclosionstudio.com
// @version    2.0测试版
// @description  DIY Emotion
// @match       http://*.9gal.com/read.php?*
// @match       http://9gal.com/read.php?*
// @match       http://9baka.com/read.php?*
// @match       http://*.9baka.com/read.php?*
// @match       http://*.9gal.com/post.php?*
// @match       http://9gal.com/post.php?*
// @match       http://9baka.com/post.php?*
// @match       http://*.9baka.com/post.php?*
// @copyright  2014, eddie32
// ==/UserScript==

/* 自定义内容*/

// 功能栏标题

var ItemTitleArray = Array ('苍雪自带','颜文字','Lovelive小','Lovelive大','自定义');

// 链接ID, 对应, 100101开始的整数。

var loadTitleArray = Array('100101','100102','100103','100104','100105');

var totalNum = ItemTitleArray.length; // 功能栏数量

// 表情数组定义URL:
// 1:苍雪自带

// 2: 颜文字
var emotionArray = Array("(●・ 8 ・●)", "╰(๑◕ ▽ ◕๑)╯", "(﹡ˆˆ﹡)","〜♪♪",
                         "|∀゚", "(´゚Д゚`)", "(;´Д`)", "(`・ω・)", "(=゚ω゚)=", "| ω・´)", "|-` )", "|д` )", "|ー` )", "|∀` )", "(つд⊂)", "(゚Д゚≡゚Д゚)", "(^o^)ノ", "(|||゚Д゚)", "( ゚∀゚)", "( ´∀`)", "(*´∀`)", "(*゚∇゚)", "(*゚ー゚)", "( ゚ 3゚)", "( ´ー`)", "( ・_ゝ・)", "( ´_ゝ`)", "(*´д`)", "(・ー・)", "(・∀・)", "(ゝ∀・)", "(〃∀〃)", "(*゚∀゚*)", "( ゚∀。)", "( `д´)", "(`ε´ )", "(`ヮ´ )", "σ`∀´)", " ゚∀゚)σ", "゚ ∀゚)ノ", "(╬゚д゚)", "(|||゚д゚)", "( ゚д゚)", "Σ( ゚д゚)", "( ;゚д゚)", "( ;´д`)", "( д ) ゚ ゚", "( ☉д⊙)", "((( ゚д゚)))", "( ` ・´)", "( ´д`)", "( -д-)", "(>д<)", "・゚( ノд`゚)", "( TдT)", "( ̄∇ ̄)", "( ̄3 ̄)", "( ̄ー ̄)", "( ̄ .  ̄)", "( ̄皿 ̄)", "( ̄艸 ̄)", "( ̄︿ ̄)", "( ̄︶ ̄)", "ヾ(´ω゚`)", "(*´ω`*)", "(・ω・)", "( ´・ω)", "(`・ω)", "(´・ω・`)", "(`・ω・´)", "( `_っ´)", "( `ー´)", "( ´_っ`)", "( ´ρ`)", "( ゚ω゚)", "(o゚ω゚o)", "( ^ω^)", "(。◕∀◕。)", "/( ◕‿‿◕ )\\", "ヾ(´ε`ヾ)", "(ノ゚∀゚)ノ", "(σ゚д゚)σ", "(σ゚∀゚)σ", "|д゚ )", "┃電柱┃", "゚(つд`゚)", "゚Å゚ ) ", "⊂彡☆))д`)", "⊂彡☆))д´)", "⊂彡☆))∀`)", "(´∀((☆ミつ",
                         "( ◜◒◝ )","(●´3`)~♪");
// 3. lovelive专用小
var LoveliveSmalltargetURL = [];

for(var j = 0; j < 40; j++) {
    LoveliveSmalltargetURL[j] = 'http://smilell2.eclosionstudio.com/Small/Lovelive2nd' +
        (j+1) + '.png';
}

for(var j = 0; j < 40; j++) {
    LoveliveSmalltargetURL[j+40] = 'http://smilell1.eclosionstudio.com/Small/Lovelive' +
        (j+1) + '.png';
}

// 4. lovelive专用大
var LoveliveBigtargetURL = [];

for(var j = 0; j < 40; j++) {
    LoveliveBigtargetURL[j] = 'http://smilell2.eclosionstudio.com/Big/Lovelive2nd' +
        (j+1) + '.png';
}

for(var j = 0; j < 40; j++) {
    LoveliveBigtargetURL[j+40] = 'http://smilell1.eclosionstudio.com/Big/Lovelive' +
        (j+1) + '.png';
}
// 返回函数修改: 

function loadingHandler(loadindex, target){
    
    switch (loadindex) {
            // 1:苍雪自带
        case 1:
            newElementEx = document.createElement('p');
            newElementEx.innerHTML = "<b>测试版未完成...</b><br />"
            target.appendChild(newElementEx);
            break;
            // 2: 颜文字
        case 2:
            for (var j=0;j<emotionArray.length; j++){
                var emotiontext = emotionArray[j];
                newElementEx = document.createElement('a'); 
                newElementEx.onclick = returnEmotionHandler;
                newElementEx._target = textarea;
                newElementEx.style.cursor = 'pointer';
                newElementEx.title = emotiontext;  
                newElementEx.innerHTML =    '<b>'+newElementEx.title+' </b>';
                target.appendChild(newElementEx);
            }
            target.parentNode.insertAfter(
                document.createElement('br'));
            break;
        case 3: // Lovelive大法好Small
            for(var j = 0; j < 80; j++) {
                // 引用目标URL
                var targetURL = LoveliveSmalltargetURL[j];
                // 创建预览图像
                target.appendChild(
                    createButton(
                        textarea,     //对象
                        returnImg,   //方法
                        'LL2nd'+j,   //提示文字
                        40,
                        40,
                        targetURL) );
            }
            break;
        case 4: // Lovelive大法好Big
            for(var j = 0; j < 80; j++) {
                // 引用目标URL
                var targetURL = LoveliveBigtargetURL[j];
                // 创建预览图像
                target.appendChild(
                    createButton(
                        textarea,     //对象
                        returnImg,   //方法
                        'LL2nd'+j,   //提示文字
                        40,
                        40,
                        targetURL) );
            }
            break;
        default:
            newElementEx = document.createElement('p');
            newElementEx.innerHTML = "<b>自定义...</b><br />"
            target.appendChild(newElementEx);
            return;
    }
    
}
/* 自定义内容到此结束 */
/*------------------------------------*/

var textareas, textarea;

var emptyContainer;

textareas = document.getElementsByTagName('textarea');
if (!textareas.length) { return; }



// 返回颜文字
function returnEmotionHandler(event) {
    var link, textarea, s, selectedTarget;
    link = event.currentTarget;
    textarea = link._target;
    selectedTarget = event.target;
    //    alert(selectedTarget.innerHTML);
    textarea.value +=  selectedTarget.innerHTML;
    event.preventDefault();
}

// 返回Wincode代码
function returnImg(event) {
    var link, textarea, s, selectedTarget;
    link = event.currentTarget;
    textarea = link._target;
    selectedTarget = event.target;
    //    alert(selectedTarget.src);
    textarea.value += '[img]'+selectedTarget.src+'[/img]';
    event.preventDefault();
}

// ImgButton
function createButton(target, func, title, width, height, src,altmessage) {
    // target: 控制对象
    // func:     方法
    // title:   提示文字
    // width,height  外观
    // src:  路径
    var img, button;
    img = document.createElement('img');
    img.width = width;
    img.height = height;
    img.style.borderTop = img.style.borderLeft = "1px solid #ccc";
    img.style.borderRight = img.style.borderBottom = "1px solid #888";
    img.style.marginRight = "2px";
    img.src = src;
    button = document.createElement('a');
    button._target = target;
    button.title = title;
    button.href = '#';
    button.onclick = func;
    button.style.cursor="pointer";
    var replaceflag = 0;
    img.src.replace(/Big/,"Small");
    button.appendChild(img);
    button.style.borderBottom = '1px solid';
    return button;       
}



// 清空容器用函数
function closeHandler(event){
    var deletTarget = document.getElementById('emotioncontainer9999');
    deletTarget.parentNode.removeChild(deletTarget);
    emptyContainer = document.createElement('div');
    emptyContainer.id = 'emotioncontainer9999';
    //    emptyContainer.innerHTML = '<b style="color:orange">空白表情容器</b>';
    textarea.parentNode.insertBefore(emptyContainer, textarea);
}

//展开动作
function extendHandler(event){
    var newElement2,link,selectedTarget;
    
    /*清空当前容器*/
    closeHandler();
    
    newElement2 = document.createElement('div');
    newElement2.style.border = '3px solid red';
    newElement2.innerHTML = '&nbsp;&nbsp;';
    newElement2.style.background = 'white';
    newElement2.style.height = '80px';
    newElement2.style.width = textarea.style.width;
    newElement2.style.overflow = 'auto';
    emptyContainer.appendChild(newElement2);
    
    
    /*表情载入*/
    selectedTarget = event.target;
    var loadIndex = selectedTarget.id - '100100';
    //    alert(loadIndex);
    loadingHandler(loadIndex,newElement2);
    
    event.preventDefault();
}

//生成栏目
function createMenuItem(target,func,title, loadTitle){
    var newElement;
    newElement = document.createElement('a');
    newElement.style.height = '20px';
    newElement.style.width = '100px';
    newElement.innerHTML = '  [' +title+ ']'+'&nbsp;&nbsp;';
    newElement.onclick = func;
    newElement.style.cursor = 'pointer';
    newElement.id = loadTitle;
    target.appendChild(newElement);    
}
// 生成项目
function createMenuElement(target, listNumber){
    var newElement;
    newElement = document.createElement('div');
    newElement.style.border = '1px solid red';
    newElement.align = 'left';
    newElement.style.paddingLeft = '10px';
    newElement.innerHTML = ' <b style="color:orange">⑨_⑨ </b> ';
    newElement.style.background = '#FFD0FF';
    newElement.style.height = '22px';
    newElement.style.width = textarea.style.width;
    target.parentNode.insertBefore(newElement, target);
    
    for (var i = 0; i < listNumber; i++) {
        createMenuItem(newElement,extendHandler,ItemTitleArray[i],loadTitleArray[i]);
    }
    var additionalInfo = document.createElement('b');
    additionalInfo.innerHTML = ' <b style="color:silver"> 2014 by eddie32 </b> ';
    newElement.appendChild(additionalInfo)
   
}



//主函数
for (var i = 0; i < textareas.length; i++) {
    textarea = textareas[i];
    emptyContainer = document.createElement('div');
    emptyContainer.id = 'emotioncontainer9999';
    //    emptyContainer.innerHTML = '<b style="color:orange">空白表情容器</b>';
    createMenuElement(textarea, totalNum);
    textarea.parentNode.insertBefore(emptyContainer, textarea);
    
}