Foydalanuvchi:Xusinboy Bekchanov/rfsd.js - Vikipediya
Article Images
Eʼtibor bering: Oʻzgartirishlaringizni koʻrish uchun, yangi moslamalaringizning saqlashdan keyin, brauzer keshini tozalash kerak:
Mozilla / Firefox: Ctrl+Shift+R, IE: Ctrl+F5, Safari: Cmd+Shift+R, Konqueror: F5, Opera: Tools → Preferences orqali keshni tozalang.
/* * Maqolani bitta bosish bilan tezda oʻchirishga qoʻyish uchun skript * Litsenziya: GNU GPL * Versiya: 1.9 02.03.2013 * Muallif: anonim dasturchi, aloqa — xzs.jx@yandex.ru */ rfsd = { $reason: null, $token: null, $rev: null, $reasons: [ { tmpl: 'nonsense', reason: 'О1: bogʻlanishsiz matn', ns: 666 }, { tmpl: 'test', reason: 'О2: test sahifasi', ns: 666, warn: 'Test' }, { tmpl: 'vand', reason: 'О3: vandal sahifa', ns: 666, warn: 'Vandalizm' }, { tmpl: 'repost', reason: 'О4: boshqatdan yaratmaslik sharti bilan oldin oʻchirilgan sahifa', ns: 666 }, { tmpl: 'author', reason: 'О5: yagona muallifi tomonidan oʻchirilishi soʻralgan', ns: 666 }, { tmpl: 'talk', reason: 'О6: oʻchirilgan sahifa bilan bogʻlangan sahifa', ns: 666 }, { tmpl: 'move', reason: 'О7: boshqa sahifani koʻchirish imkoniyati uchun', ns: 666, ni: 1 }, { tmpl: 'fork', reason: 'О8: mavjud sahifaning nusxasi', ns: 666, ni: 1 }, { tmpl: 'spam', reason: 'О9: spam, reklama', ns: 666, warn: 'spam-maqola' }, { tmpl: 'badtalk', reason: 'О10: muhokama sahifasidan notoʻgʻri maqsadda foydalanish', ns: 666 }, { tmpl: 'copyvio', reason: 'О11: mualliflik huquqining aniq buzilishi; maqola tarkibi koʻchirilgan', ns: 666, ni: 1, warn: 'Nothanks cv' }, { tmpl: 'empty', reason: 'С1: ensiklopedik tarkibsiz boʻsh yoki juda qisqa maqola', ns: 0, warn: 'RahmatQisqa' }, { tmpl: 'foreign', reason: 'С2: oʻzbek tilida boʻlmagan maqola', ns: 0, warn: 'oʻzbek tilida emas' }, { tmpl: 'badtranslt', reason: 'С2: mashina tarjimasi', ns: 0, warn: 'mashtarjima' }, { tmpl: 'nocontent', reason: 'С3: faqat havolalardan iborat maqola (ichki yoki tashqi)', ns: 666 }, { tmpl: 'nn', reason: 'С5: ensiklopedik ahamiyatga ega ekanligiga dalil yoʻq', ns: 0, warn: 'RahmatAhamiyatgaMolikEmas' }, { tmpl: 'redirnone', reason: 'П1: mavjud boʻlmagan sahifaga yoʻnaltirish', ns: 666 }, { tmpl: 'redirspace', reason: 'П2: nomfazolar oʻrtasida yoʻnaltirish', ns: 666 }, { tmpl: 'redirtypo', reason: 'П3: nomida xatolik bor yoʻnaltirish', ns: 666 }, { tmpl: 'redirflect', reason: 'П4: bosh kelishikda boʻlmagan nom bilan yoʻnaltirish', ns: 666 }, { tmpl: 'redirsense', reason: 'П5: semantik jihatdan notoʻgʻri yoʻnaltirish', ns: 666 }, { tmpl: 'redirtalk', reason: 'П6: muhokama sahifasiga yoʻnaltirish', ns: 666 }, { tmpl: 'catempty', reason: 'К1: boʻsh turkum', ns: 14 }, { tmpl: 'rencat', reason: 'К2: koʻchirilgan turkum', ns: 14, ni: 1 }, { tmpl: 'owner', reason: 'У1: egasining soʻroviga asosan', ns: 2 }, { tmpl: 'anon', reason: 'У2: anonim ishtirokchining eskirgan muhokama sahifasi', ns: 3 }, { tmpl: 'no-user', reason: 'У3: mavjud boʻlmagan ishtirokchining nomfazosidagi sahifa.', ns: 2 && 3 }, { tmpl: 'baduserpage', reason: 'У4: foydalanuvchi sahifasidan notoʻgʻri maqsadda foydalanish', ns: (2 && 3) }, { tmpl: 'inactive', reason: 'У5: nofaol foydalanuvchi ostsahifasi', ns: (2 && 3) }, { tmpl: '', reason: 'Kechiktirilgan tez oʻchirish', ns: 0, ds: 1, warn: 'Ogohlantirish-juda qisqa maqola' }, { tmpl: '', reason: 'Boshqa sabab', ns: 666, ni: 1 } ], initialise: function() { var $window = '<div xmlns="http://www.w3.org/1999/xhtml" id="rfsd-window" style="background: white; border:1px double black;'+ 'position: fixed; top: 40px; left: 180px; z-index: 2; width: 750px; height: 450px; padding: 2 2 2 3em">' + '<form name="rfsd" id="rfsd" style="height: 450px"><div style="height: 450px; overflow: auto"><p>'+ '<span style="font-weight:bold">TOʻ sababi</span></p>'; for( var $i in this.$reasons ) { var controlID = "rfsd-radiobutton" + $i; if( this.$reasons[$i].ns == 666 || this.$reasons[$i].ns == mw.config.get('wgNamespaceNumber') ) { $window += '<p><input class="rfsd-autofocus" type="radio" id="' + controlID + '" name="rfsd" value="' + $i + '" />' + '<label class="rfsd-autofocus" for="' + controlID + '">' + this.$reasons[$i].reason + '</label>' + ( this.$reasons[$i].ni ? ': <input id="rfsd-field' + $i + '" />' : '' ) + '</p>'; } } $window += '</div></form><div style="background: white"><p>Izoh (majburiy emas): <input type="text" id="rfsd-neob" size="70" value="" /></p>'+ '<input type="checkbox" id="rfsd-warn" />Sahifa muallifini muhokama sahifasida ogohlantirish, agar imkoni boʻlsa'+ ' (<a href="//ru.wikipedia.org/wiki/user_talk:Absconditus/rfsd.js\#Описание_работы_скрипта" target="_blank">?</a>)'+ '<br/><input type="checkbox" id="rfsd-forcewrap" />TOʻ andozasini <noinclude> tegi bilan oʻrash'+ ' (<a href="//ru.wikipedia.org/wiki/user_talk:Absconditus/rfsd.js\#Описание_работы_скрипта" target="_blank">?</a>)</div>' + '<div style="background: white"><input type="button" id="rfsd-confirm" value="Joʻnatish" /><input type="button" id="rfsd-cancel"'+ ' value="Bekor" /></div></div>'; $( '#bodyContent' ).append( $.parseXML( $window ).firstChild ); $( '#rfsd-confirm' )[0].onclick = function() { rfsd.execute() }; $( '.rfsd-autofocus' ).click( function() { $( "#rfsd-confirm" ).focus() } ); $( '#rfsd-cancel' )[0].onclick = function() { $( 'div#rfsd-window' ).remove() }; }, execute: function() { if( !( this.$reason = $( "#rfsd input:checked" ).val() ) ) { alert( 'Siz sababini koʻrsatmadingiz!' ); return 1; } $.getJSON( mw.config.get('wgScriptPath') + '/api.php?format=json&action=query&prop=info&titles=Foobar&meta=tokens&type=csrf', function( $x ) { rfsd.template( $x ) }); }, template: function( $data ) { if( !$data || !$data['query'] ) { return; } this.$token = $data['query']['tokens']['csrftoken']; $.getJSON( mw.config.get('wgScriptPath') + '/api.php?format=json&action=query&prop=revisions&titles=' + rfsd._ae(mw.config.get('wgPageName')) + '&rvprop=user|content&rvlimit=1', function( $data ) { for( var $rev in $data['query']['pages'] ) { if( typeof $data['query']['pages'][$rev]['revisions'] == 'undefined' ) { alert( 'Страница уже удалена или скрипт неправильно обработал её название.' ); return false; } $content = $data['query']['pages'][$rev]['revisions'][0]['*'] if( $content.match( '/{{db-' + rfsd.$reasons[rfsd.$reason].tmpl + '/ig' ) ) { alert( 'Sahifada allaqachon tanlangan tezda oʻchirish andozasi turibdi.' ); return false; } var $template = (($('#rfsd-forcewrap').is(':checked') || mw.config.get('wgNamespaceNumber') == 10) ? '<' + 'noinclude>' : '') + '{{' + ( rfsd.$reasons[rfsd.$reason].ds ? 'sub' + 'st:ds' : 'db') + ( ( rfsd.$reasons[rfsd.$reason].tmpl == '' ) ? '' : '-' + rfsd.$reasons[rfsd.$reason].tmpl ) + ( rfsd.$reasons[rfsd.$reason].ni ? '|1=' + $( "#rfsd-field" + rfsd.$reason ).val() : ( $("#rfsd-neob").val() != "" ? "|1=" + $("#rfsd-neob").val() : "" )) + '}}' + (($('#rfsd-forcewrap').is(':checked') || mw.config.get('wgNamespaceNumber') == 10) ? '<' + '\/noinclude>' : '') +'\n'; $.post( mw.config.get('wgScriptPath') + '/api.php', { action: 'edit', title: mw.config.get('wgPageName'), summary: '[[user talk:Xusinboy Bekchanov/rfsd.js|RfSD.js]] yordamida sahifani tezda oʻchirishga qoʻyish ({{' + ( rfsd.$reasons[rfsd.$reason].ds ? 'ds' : 'db') + ( ( rfsd.$reasons[rfsd.$reason].tmpl == '' ) ? '' : '-' + rfsd.$reasons[rfsd.$reason].tmpl ) + '}})', token: rfsd.$token, notminor: '1', text: $template + $content, format: 'json' }, function( $x ) { rfsd.finalf( $x ) }); } }); }, finalf: function( $data ) { this.$rev = $data['edit']['newrevid']; if( $('#rfsd-warn').is(':checked') && rfsd.$reasons[rfsd.$reason].warn ) { $.getJSON( mw.config.get('wgScriptPath') + '/api.php?format=json&action=query&rvdir=newer&prop=revisions&titles=' + rfsd._ae(mw.config.get('wgPageName')) + '&rvprop=user|content&rvlimit=1', function( $x ) { for( var $rev in $x['query']['pages'] ) { var $talk = 'User_talk:' + $x['query']['pages'][$rev]['revisions'][0]['user']; $.post( mw.config.get('wgScriptPath') + '/api.php', { action: 'edit', appendtext: '\n{{subst:' + rfsd.$reasons[rfsd.$reason].warn + ( ( rfsd.$reasons[rfsd.$reason].tmpl == 'copyvio' ) ? '|1=' + rfsd._sp(mw.config.get('wgPageName')) + '|2=' + $( "#rfsd-field" + rfsd.$reason ).val() : ( ( rfsd.$reasons[rfsd.$reason].tmpl == 'vand' ) ? '' : '|1=' + rfsd._sp(mw.config.get('wgPageName') ) ) ) + '}}' + '\n~~' + '~~', summary: '[[user talk:Xusinboy Bekchanov/rfsd.js|RfSD.js]] yordamida foydalanuvchini ogohlantirish', title: $talk, token: rfsd.$token, notminor: '1' }, function() { rfsd.review() }); }; }); } else { rfsd.review() } }, review: function( $data ) { if( !( $( "#wpReviewEdit" ).is( ':checked' ) ) ) { $.post( mw.config.get('wgScriptPath') + '/api.php', { action: 'review', token: this.$token, revid: this.$rev, comment: '[[user talk:Xusinboy Bekchanov/rfsd.js|RfSD.js]] yordamida tezda oʻchirishga qoʻyilgan sahifani patrullash' }, function() { window.location = mw.config.get('wgServer') + '/wiki/' + encodeURIComponent( mw.config.get('wgPageName') ) + '?action=purge' } ); } }, _ae: function( $i ) { return $i.replace(/\+/g,'%2B').replace(/&/g,'%26'); }, _sp: function( $i ) { return $i.replace(/\+/g,'%2B').replace(/&/g,'%26').replace(/_/g, ' '); }, }; // Если мы не на служебной странице, не на странице файла (для него отдельный гаджет), а на существующей странице, которую можно править, добавляет вкладку $( function() { if( mw.config.get('wgCanonicalNamespace') != 'Special' && mw.config.get('wgCanonicalNamespace') != 'File' && $("#ca-viewsource").length == 0 && mw.config.get('wgArticleId') ) { mw.loader.using(['mediawiki.util']).then(function () { mw.util.addPortletLink("p-cactions", "javascript: rfsd.initialise()", "Tezda oʻchirishga", "ca-contrib", "Tezda oʻchirishga qoʻyish"); }); } });