您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
offers to add tags from linked sentences to current sentence
// ==UserScript== // @name Tatoeba Suggest Tags of Siblings // @copyright Jakob V. <[email protected]> // @license Creative Commons Attribution 3.0 Unported (CC BY 3.0) http://creativecommons.org/licenses/by/3.0/ // @description offers to add tags from linked sentences to current sentence // @include http://tatoeba.org/*/sentences/show/* // @match http://tatoeba.org/*/sentences/show/* // @include http://tatoeba.org/*/user/profile/* // @match http://tatoeba.org/*/user/profile/* // @require http://code.jquery.com/jquery-latest.min.js // @version 0.0.1.20150423135046 // @namespace https://gf.qytechs.cn/users/10789 // ==/UserScript== $(document).ready(main); function main(){ facelang = window.location.href.split('/')[3]; GM_log('facelang: '+facelang); thisid = window.location.href.split('/')[6]; GM_log('thisid: '+thisid); //BEGIN SETTINGS direct_load = GM_getValue('direct_load'); indirect_load = GM_getValue('indirect_load'); show_doubles = GM_getValue('show_doubles'); direct_load = ( direct_load==undefined ? true : direct_load ); indirect_load = ( indirect_load==undefined ? false : indirect_load ); show_doubles = ( show_doubles==undefined ? false : show_doubles ); GM_log('direct_load: '+direct_load); GM_log('indirect_load: '+indirect_load); GM_log('show_doubles: '+show_doubles); setup = false; if(window.location.href.split('/')[4] == 'user' && window.location.href.split('/')[5] == 'profile' && window.location.href.split('/')[6] == $('.menuSection').attr('href').split('/')[4]){ setup = true; if($('.userscriptSettings').is('*')){ settings = $('.userscriptSettings'); } else{ settings = $('<div class="module profileSummary userscriptSettings"><h2>userscripts</h2></div>'); $('.profileSummary').after(settings); } settings.append('<h3>Suggest Tags of Siblings</h3>'); contentdiv = $('<div id="suggesttagsofsiblings"></div>'); settings.append(contentdiv); contentdiv.append('<table>'); contentdiv.append('<tr><td><label for="direct_load" class="field">direct_load</label></td><td><input type="checkbox" id="direct_load"></td></tr>'); contentdiv.append('<tr><td><label for="indirect_load" class="field">indirect_load</label></td><td><input type="checkbox" id="indirect_load"></td></tr>'); contentdiv.append('<tr><td><label for="show_doubles" class="field">show_doubles</label></td><td><input type="checkbox" id="show_doubles"></td></tr>'); contentdiv.append('</table>'); $('#direct_load')[0].checked = direct_load; $('#indirect_load')[0].checked = indirect_load; $('#show_doubles')[0].checked = show_doubles; $('#direct_load').change(function(){ direct_load = this.checked; GM_setValue('direct_load',direct_load); GM_log('direct_load: '+direct_load); }); $('#indirect_load').change(function(){ indirect_load = this.checked; GM_setValue('indirect_load',indirect_load); GM_log('indirect_load: '+indirect_load); }); $('#show_doubles').change(function(){ show_doubles = this.checked; GM_setValue('show_doubles',show_doubles); GM_log('show_doubles: '+show_doubles); }); } tags = {}; arrayoftags = []; thistags = $('.tagsListOnSentence .tagName'); thistags.each(function(index){ arrayoftags[index] = $(this).text(); tags[thisid] = tags[thisid] || []; tags[thisid][index] = $(this).text(); }); GM_log('tags['+thisid+']: '+tags[thisid]); thistags.hover( function(){ tagname = $(this).text(); GM_log(tagname); $(".sentence[tags*='"+tagname.replace(' ', '_')+"'], .mainSentence").css({'background-color':'#D3F3B9'}); }, function(){ tagname = $(this).text(); GM_log(tagname); $(".sentence[tags*='"+tagname.replace(' ', '_')+"'], .mainSentence").css({'background-color':'transparent'}); } ); thistags.each(function(){ var targettag = $(this); var usernumber = targettag.attr('title').split(',')[0].split(':')[1].replace(/^\s*/, "").replace(/\s*$/, ""); GM_log('http://tatoeba.org/'+facelang+'/users/show/'+usernumber); $.get( 'http://tatoeba.org/'+facelang+'/users/show/'+usernumber, function(data) { var username = $(data).find('a').attr('href').substr('/deu/user/profile/'.length); GM_log(username); targettag.attr('title', targettag.attr('title').replace(usernumber, username)); } ); }); $('.annexeLogEntry.linkAdded div:last-child a').hover( function(){ sentenceid = $(this).text(); $('.sentence[id^="translation_'+sentenceid +'"]').css({'background-color':'#D3F3B9'}); }, function(){ sentenceid = $(this).text(); $('.sentence[id^="translation_'+sentenceid +'"]').css({'background-color':'transparent'}); } ); direct_whohaswhichtag = {}; indirect_whohaswhichtag = {}; direct_div = $('<div class="directTagSuggestions"></div>'); direct_div.css({'display': 'inline-block','width': '100%'}); indirect_div = $('<div class="indirectTagSuggestions"></div>'); indirect_div.css({'display': 'inline-block','width': '100%'}); $('#TagAddTagPostForm').after(indirect_div); $('#TagAddTagPostForm').after(direct_div); direct_start = $('<a>Start loading additional tags of direct translations</a>'); direct_start.css({'display':'block'}); direct_start.click(function(){ direct_buttons = $('.directTranslation a.show.button'); GM_log(direct_buttons.length); if(direct_buttons.length>0){ direct_suggestions = []; d = 0; direct_getcount = 0; direct_waiting = $('<img src="http://flags.tatoeba.org/img/loading-small.gif">'); direct_start.html(direct_waiting); direct_buttons.each(function(index){ getsentencetags($(this).attr('href').split('/')[4], 'direct'); }); } else{ direct_start.text('Reload additional tags of direct translations'); } }); direct_div.append(direct_start); indirect_start = $('<a>Start loading additional tags of indirect translations</a>'); indirect_start.css({'display':'block', 'clear':'both'}); indirect_start.click(function(){ indirect_buttons = $('.indirectTranslation a.show.button'); GM_log(indirect_buttons.length); if(indirect_buttons.length>0){ indirect_suggestions = []; i = 0; indirect_getcount = 0; indirect_waiting = $('<img src="http://flags.tatoeba.org/img/loading-small.gif">'); indirect_start.html(indirect_waiting); indirect_buttons.each(function(index){ getsentencetags($(this).attr('href').split('/')[4], 'indirect'); }); } else{ indirect_start.text('Reload additional tags of indirect translations'); } }); indirect_div.append(indirect_start); if(direct_load){ direct_start.click(); } if(indirect_load){ indirect_start.click(); } function getsentencetags(sentenceid, getsentencetags_where){ if(sentenceid){ GM_log('getsentencetags_where: '+getsentencetags_where); getsentencetags_where = getsentencetags_where || 'direct'; $.get( //url 'http://tatoeba.org/'+facelang+'/sentences/show/'+sentenceid, //[ data ] function(data) { if(getsentencetags_where == 'direct'){ direct_getcount++; GM_log(direct_getcount); if(direct_getcount>=direct_buttons.length){ direct_start.text('Reload additional tags of direct translations'); } } else if(getsentencetags_where == 'indirect'){ indirect_getcount++; GM_log(indirect_getcount); if(indirect_getcount>=indirect_buttons.length){ indirect_start.text('Reload additional tags of indirect translations'); } } $(data).find('.tagName').each(function(){ tagname = $(this).text(); sentence = $('.sentence[id^="translation_'+sentenceid+'"]'); previoustags = sentence.attr('tags') || ''; sentence.attr('tags', previoustags + ' '+tagname.replace(' ', '_')); render(tagname, getsentencetags_where, sentenceid); }); } ); } else{ if(getsentencetags_where == 'direct'){ direct_getcount++; } else if(getsentencetags_where == 'indirect'){ indirect_getcount++; } } } function render(tagname, render_where, sentenceid){ render_where = render_where || 'direct'; GM_log('tagname: '+tagname); GM_log('render_where: '+render_where); if(true){ tags[sentenceid] = tags[sentenceid] || []; tags[sentenceid][tags[sentenceid].length] = tagname; GM_log('tags['+sentenceid+']: '+tags[sentenceid]); if(render_where == 'direct'){ GM_log($.inArray(tagname, arrayoftags)==-1); GM_log(show_doubles); if( $.inArray(tagname, direct_suggestions)==-1 && ($.inArray(tagname, arrayoftags)==-1 || show_doubles) ){ GM_log(tagname + ' not in direct_suggestions'); direct_suggestions[d] = tagname; d++; taglink = $('<span class="tag"><a class="tagName" href="/'+facelang+'/tags/show_sentences_with_tag/'+tagname.replace(' ', '_')+'">'+tagname+'</a></span>'); taglink.click(function(e){ // Cancel the default action e.preventDefault(); //put the tagname into the form field for submission by the user $('input#TagTagName').val(tagname); }); taglink.hover( function(){ tagname = $(this).text(); GM_log(tagname); $(".sentence[tags*='"+tagname.replace(' ', '_')+"']").css({'background-color':'#D3F3B9'}); if($.inArray(tagname, arrayoftags)>-1){ $(".mainSentence").css({'background-color':'#D3F3B9'}); } }, function(){ tagname = $(this).text(); GM_log(tagname); $(".sentence[tags*='"+tagname.replace(' ', '_')+"'], .mainSentence").css({'background-color':'transparent'}); } ); taglink.css({'background-color':'#D3F3B9','color':'#257D0C'}); direct_div.append(taglink); } } else if(render_where == 'indirect'){ if( $.inArray(tagname, indirect_suggestions)==-1 && ($.inArray(tagname, arrayoftags)==-1 || show_doubles) ){ GM_log(tagname + ' not in indirect_suggestions'); indirect_suggestions[i] = tagname; i++; taglink = $('<span class="tag"><a class="tagName" href="/'+facelang+'/tags/show_sentences_with_tag/'+tagname.replace(' ', '_')+'">'+tagname+'</a></span>'); taglink.click(function(e){ // Cancel the default action e.preventDefault(); //put the tagname into the form field for submission by the user $('input#TagTagName').val(tagname); }); taglink.hover( function(){ tagname = $(this).text(); GM_log(tagname); $(".sentence[tags*='"+tagname.replace(' ', '_')+"']").css({'background-color':'#D3F3B9'}); if($.inArray(tagname, arrayoftags)>-1){ $(".mainSentence").css({'background-color':'#D3F3B9'}); } }, function(){ tagname = $(this).text(); GM_log(tagname); $(".sentence[tags*='"+tagname.replace(' ', '_')+"'], .mainSentence").css({'background-color':'transparent'}); } ); taglink.css({'background-color':'#F1F1F1','color':'#849684'}); indirect_div.append(taglink); } } } } }
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址