利用者:84story64/common.js
表示
お知らせ: 保存した後、ブラウザのキャッシュをクリアしてページを再読み込みする必要があります。
多くの Windows や Linux のブラウザ
- Ctrl を押しながら F5 を押す。
Mac における Safari
Mac における Chrome や Firefox
- ⌘ Cmd と ⇧ Shift を押しながら R を押す。
詳細についてはWikipedia:キャッシュを消すをご覧ください。
//////////// ここからナビゲーション・ポップアップ [[:en:User:Lupin/popups.js]] ///////////////////////
// 邦訳を指定します。
mw.loader.load('https://ja-two.iwiki.icu/w/index.php?title=User:Was_a_bee/strings-ja.js' + '&action=raw&ctype=text/javascript');
// スクリプトの本体を取り込みます
mw.loader.load('https://en-two.iwiki.icu/w/index.php?title=User:Lupin/popups.js' + '&action=raw&ctype=text/javascript');
//削除や保護ログへのリンクを表示します
popupAdminLinks=true;
//外装の基本スタイルを指定します (選択肢:'original', 'fancy', 'fancy2', 'menus', 'shortmenus', 'lite', 'nostalgia')
popupStructure='menus';
//ショートカットキーを有効にします
popupShortcutKeys=true;
//リンクにマウスを重ねてからポップアップが表示されるまでのタイムラグを秒で指定します
//低速回線や低スペックPCで予期せぬポップアップを負荷に感じる場合は、この数字を「0.8」、「1.0」などと大きくしてください
popupDelay=0.5;
//ポップアップが消えるまでの時間を秒で指定します。消えるのが遅く感じる場合は、この数字を「0.3」、「0」などと小さくしてください
popupHideDelay=0.5;
////下のコメントアウトを外すと(popupDragHandleの先頭の斜線2本を消して保存すると)
////ドラッグだけでポップアップ・ウィンドウを移動できるようになります。
////ただし画像やメニュー部分を掴んでドラッグしようとすると位置がおかしくなります。
////おかしくなった時はブラウザの更新ボタンまたは戻るボタンを押すと元に戻ります。
//popupDragHandle=true;
//////////// ここまでナビゲーション・ポップアップ /////////////////////////////////////////////////////
//Hotcat
var hotcat_no_autocommit = true;
//脚注を表示
mw.loader.load('//ja-two.iwiki.icu/w/index.php?title=User:Marine-Blue/Gadget-ReferenceTooltips.js&action=raw&ctype=text/javascript');
//LiveRC
if(wgPageName=="Wikipedia:LiveRC"){importScript('User:Was_a_bee/LiveRC.js')};
importScript('User:Jkr2255/unWatchList.js')
importScript('User:Jkr2255/HideClosedvfd.js');
/*
////////////////////////////////////////////////////////////////////////////////////////
//
// toolbox block log.js
//
// last update 2012-08-23
//
////////////////////////////////////////////////////////////////////////////////////////
利用者ページ、または会話ページのツールボックスに「投稿ブロック記録」へのリンクを追加する。
アカウントが存在する場合のみ有効。
管理者権限のあるユーザーは利用者ページから投稿ブロックの特別ページへ移動してページで投稿ブロック記録を参照できるが、
管理者権限のないユーザーは[[特別:投稿記録]]を表示しないとブロック記録を参照できないため、その代替機能として。
チェックユーザー権限持ち専用としてチェックユーザー記録参照機能も付けてみた。
*/
function blockLogItem() {
var username = "";
if(document.getElementById("t-contributions")) {
// 投稿記録のページであればボックスから利用者名を取得
if(wgCanonicalSpecialPageName == "Contributions" || wgCanonicalSpecialPageName == "DeletedContributions"){
username = document.getElementsByName("target")[0].value;
}
// 利用者ページであれば変数から利用者名を取得
else {
username = wgTitle.replace(/\/.*/,"");
}
var contribsItem = document.getElementById("t-contributions");
var blockLog = document.createElement("li");
blockLog.setAttribute("id","t-blocklog");
var blockLogLink = document.createElement("a");
blockLogLink.setAttribute("href", wgScript + "?title=%E7%89%B9%E5%88%A5:%E3%83%AD%E3%82%B0&type=block&page=%E5%88%A9%E7%94%A8%E8%80%85:" + encodeURIComponent(username));
var blockLogText = document.createTextNode("投稿ブロック記録");
blockLogLink.appendChild(blockLogText);
blockLog.appendChild(blockLogLink);
contribsItem.parentNode.insertBefore(blockLog,contribsItem.nextSibling);
// チェックユーザー記録参照(権限持ちのユーザーにのみ表示)
for (i = 0; i < wgUserGroups.length; i++) {
if(wgUserGroups[i] == "checkuser") {
var checkLog = document.createElement("li");
checkLog.setAttribute("id","t-checkuserlog");
var checkLogLink = document.createElement("a");
checkLogLink.setAttribute("href", wgScript + "?title=%E7%89%B9%E5%88%A5:%E3%83%81%E3%82%A7%E3%83%83%E3%82%AF%E3%83%A6%E3%83%BC%E3%82%B6%E3%83%BC%E8%A8%98%E9%8C%B2&cuSearchType=target&cuSearch=" + encodeURIComponent(username));
var checkLogText = document.createTextNode("チェックユーザー記録");
checkLogLink.appendChild(checkLogText);
checkLog.appendChild(checkLogLink);
contribsItem.parentNode.insertBefore(checkLog,blockLog.nextSibling);
}
}
}
}
$(blockLogItem);
// マークブロック
function markBlocked( container ) {
var contentLinks = container ? $(container).find('a') : mw.util.$content.find('a').add('#ca-nstab-user a')
mw.util.addCSS('\
.user-blocked-temp{' + (window.mbTempStyle||'opacity: 0.7; text-decoration: line-through') + '}\
.user-blocked-indef{' + (window.mbIndefStyle||'opacity: 0.4; font-style: italic; text-decoration: line-through') + '}\
.user-blocked-tipbox{' + (window.mbTipBoxStyle||'font-size:smaller; background:#FFFFF0; border:1px solid #FEA; padding:0 0.3em; color:#AAA') + '}\
')
var mbTooltip = window.mbTooltip || '; blocked ($1) by $2: $3 ($4 ago)'
//get all aliases for user: & user_talk:
var userNS = []
for( var ns in wgNamespaceIds)
if( wgNamespaceIds[ns] == 2 || wgNamespaceIds[ns] == 3 )
userNS.push( ns.replace(/_/g, ' ') + ':' )
//RegExp for all titles that are User:| User_talk: | Special:Contributions/ (localized) | Special:Contributions/ (for userscripts)
var userTitleRX = new RegExp('^'
+ '(' + userNS.join('|')
+ '|Служебная:Вклад\\/|Special:Contributions\\/'
+ ')'
+ '([^\\/#]+)$', 'i')
//RegExp for links
var articleRX = new RegExp( '^' + wgArticlePath.replace('$1', '') + '([^#]+)' )
var scriptRX = new RegExp( '^' + wgScript + '\\?title=([^#&]+)' )
var userLinks = {}
var url, ma, pgTitle
//find all "user" links and save them in userLinks : { 'users': [<link1>, <link2>, ...], 'user2': [<link3>, <link3>, ...], ... }
contentLinks.each(function(i, lnk){
url = $(lnk).attr('href')
if( !url || url.charAt(0) != '/' ) return
else if( ma = articleRX.exec(url) ) pgTitle = ma[1]
else if( ma = scriptRX.exec(url) ) pgTitle = ma[1]
else return
pgTitle = decodeURIComponent(pgTitle).replace(/_/g, ' ')
user = userTitleRX.exec(pgTitle)
if( !user ) return
user = user[2]
$(lnk).addClass('userlink')
if ( !userLinks[user] ) userLinks[user] = []
userLinks[user].push(lnk)
})
//convert users into array
var users = []
for (var u in userLinks) users.push(u)
if( users.length == 0 ) return
//API request
var wgServerTime, apiRequests = 0
var waitingCSS = mw.util.addCSS('a.userlink {opacity:' + (window.mbLoadingOpacity||0.85) + '}')
while( users.length > 0 ){
apiRequests++
$.post(
mw.util.wikiScript('api') + '?format=json&action=query',
{ list: 'blocks', bklimit: 100, bkusers: users.splice(0,50).join('|'),
bkprop: 'user|by|timestamp|expiry|reason' }, //no need for 'id|flags'
markLinks
)
}
return //the end
//callback: receive data and mark links
function markLinks(resp, status, xhr){
wgServerTime = new Date( xhr.getResponseHeader('Date') )
var list, blk, tip, links, lnk
if( !resp || !(list=resp.query) || !(list=list.blocks) ) return
for( var i=0; i<list.length; i++){
blk = list[i]
if( /^in/.test(blk.expiry) ){
clss = 'user-blocked-indef'
blTime = blk.expiry
}else{
clss = 'user-blocked-temp'
blTime = inHours ( parseTS(blk.expiry) - parseTS(blk.timestamp) )
}
tip = mbTooltip.replace('$1', blTime).replace('$2', blk.by).replace('$3', blk.reason)
.replace('$4', inHours ( wgServerTime - parseTS(blk.timestamp) ) )
links = userLinks[blk.user]
for (var k=0; k<links.length; k++){
lnk = $(links[k]).addClass(clss)
if( window.mbTipBox )
$('<span class=user-blocked-tipbox>#</span>').attr('title', tip).insertBefore(lnk)
else
lnk.attr( 'title', lnk.attr('title') + tip )
}
}
if( --apiRequests == 0 ){ //last response
waitingCSS.disabled = true
$('#ca-showblocks').parent().remove() // remove added portlet link
}
}
//--------AUX functions
//20081226220605 or 2008-01-26T06:34:19Z -> date
function parseTS(ts){
var m = ts.replace(/\D/g,'').match(/(\d\d\d\d)(\d\d)(\d\d)(\d\d)(\d\d)(\d\d)/)
return new Date ( Date.UTC(m[1], m[2]-1, m[3], m[4], m[5], m[6]) )
}
function inHours(ms){ //milliseconds -> "2:30" or 5,06d or 21d
var mm = Math.floor(ms/60000)
if( !mm ) return Math.floor(ms/1000)+'s'
var hh = Math.floor(mm/60); mm = mm % 60
var dd = Math.floor(hh/24); hh = hh % 24
if (dd) return dd + (dd<10?'.'+zz(hh):'') + 'd'
else return hh + ':' + zz(mm)
}
function zz(v){ // 6 -> '06'
if( v <= 9 ) v = '0' + v
return v
}
}// -- end of main function
//start on some pages
switch( wgAction ){
case 'edit':
case 'submit':
break
case 'view':
if( wgNamespaceNumber == 0 ) break
//otherwise continue with default
default: // 'history', 'purge'
$(function(){
if( window.mbNoAutoStart )
mw.util.addPortletLink('p-cactions', 'javascript:markBlocked()', 'XX', 'ca-showblocks')
else
markBlocked()
})
}
//マークアドミン
if ( !(wgNamespaceNumber == 0 && (wgAction == "view" || wgAction == "edit")) ){//記事の閲覧時および編集時は読み込みをしない。軽量化のため。
mw.loader.load('//ja-two.iwiki.icu/w/index.php?title=User:Was_a_bee/markAdmins.js&action=raw&ctype=text/javascript');
}
//版数表示
mw.loader.load('https://de.wikipedia.org/w/index.php?title=MediaWiki:Gadget-revisionCounter.js&action=raw&ctype=text/javascript');