<link href="../fonts/font.css" rel="stylesheet" type="text/css">

<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fa">
		<id>https://wiki.imaroof.ir/index.php?action=history&amp;feed=atom&amp;title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C%3AGadget-decodesummary.js</id>
		<title>مدیاویکی:Gadget-decodesummary.js - تاریخچهٔ ویرایش‌ها</title>
		<link rel="self" type="application/atom+xml" href="https://wiki.imaroof.ir/index.php?action=history&amp;feed=atom&amp;title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C%3AGadget-decodesummary.js"/>
		<link rel="alternate" type="text/html" href="https://wiki.imaroof.ir/index.php?title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C:Gadget-decodesummary.js&amp;action=history"/>
		<updated>2026-08-03T23:22:24Z</updated>
		<subtitle>تاریخچهٔ ویرایش‌های این صفحه در ویکی</subtitle>
		<generator>MediaWiki 1.26.2</generator>

	<entry>
		<id>https://wiki.imaroof.ir/index.php?title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C:Gadget-decodesummary.js&amp;diff=238&amp;oldid=prev</id>
		<title>Admin: صفحه‌ای تازه حاوی «function deChar(ss) {     'use strict';     try {         ss = decodeURIComponent(ss.replace(             /\.([0-9A-F][0-9A-F])/g, '%$1'));...» ایجاد کرد</title>
		<link rel="alternate" type="text/html" href="https://wiki.imaroof.ir/index.php?title=%D9%85%D8%AF%DB%8C%D8%A7%D9%88%DB%8C%DA%A9%DB%8C:Gadget-decodesummary.js&amp;diff=238&amp;oldid=prev"/>
				<updated>2016-03-01T07:09:43Z</updated>
		
		<summary type="html">&lt;p&gt;صفحه‌ای تازه حاوی «function deChar(ss) {     &amp;#039;use strict&amp;#039;;     try {         ss = decodeURIComponent(ss.replace(             /\.([0-9A-F][0-9A-F])/g, &amp;#039;%$1&amp;#039;));...» ایجاد کرد&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحهٔ تازه&lt;/b&gt;&lt;/p&gt;&lt;div&gt;function deChar(ss) {&lt;br /&gt;
    'use strict';&lt;br /&gt;
    try {&lt;br /&gt;
        ss = decodeURIComponent(ss.replace(&lt;br /&gt;
            /\.([0-9A-F][0-9A-F])/g, '%$1'));&lt;br /&gt;
    } catch (ignore) {}&lt;br /&gt;
    return ss;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function decodeAnchor(link) { //simplify internal link: replace %20 and _ then decode anchor&lt;br /&gt;
    'use strict';&lt;br /&gt;
    link = link.replace(/(_|%20)/g, ' ').replace(/^ +| +$/g, '');&lt;br /&gt;
    var parts = link.split('#'),&lt;br /&gt;
        i,&lt;br /&gt;
        anchor,&lt;br /&gt;
        hidIdx = -1,&lt;br /&gt;
        hidden = [];&lt;br /&gt;
    if (parts.length !== 2) {&lt;br /&gt;
        return link; //no anchor&lt;br /&gt;
    }&lt;br /&gt;
    anchor = parts[1];&lt;br /&gt;
&lt;br /&gt;
    //decode 4, 3 and 2-byte: http://en.wikipedia.org/wiki/UTF-8&lt;br /&gt;
    anchor = anchor.replace(&lt;br /&gt;
        /\.F[0-4]\.[89AB][\dA-F]\.[89AB][\dA-F]\.[89AB][\dA-F]/g,&lt;br /&gt;
        deChar&lt;br /&gt;
    );&lt;br /&gt;
    anchor = anchor.replace(&lt;br /&gt;
        /\.E[\dA-F]\.[89AB][\dA-F]\.[89AB][\dA-F]/g,&lt;br /&gt;
        deChar&lt;br /&gt;
    );&lt;br /&gt;
    anchor = anchor.replace(/\.[CD][\dA-F]\.[89AB][\dA-F]/g,&lt;br /&gt;
        deChar&lt;br /&gt;
    );&lt;br /&gt;
    anchor = anchor.replace( //hide IPs&lt;br /&gt;
        /(?:^|[^0-9A-F\.])(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)/,&lt;br /&gt;
        function (s) {&lt;br /&gt;
            hidden[++hidIdx] = s;&lt;br /&gt;
            return '\x01' + hidIdx + '\x02';&lt;br /&gt;
        }&lt;br /&gt;
    );&lt;br /&gt;
    //decode 1-byte chars: all symbols except  -.:_  and []{} prohibited in links&lt;br /&gt;
    anchor = anchor.replace(/\.[2-7][0-9A-F]/g, function (hhh) {&lt;br /&gt;
        var ch = deChar(hhh);&lt;br /&gt;
        if ('!&amp;quot;#$%&amp;amp;\'()*+,/;&amp;lt;=&amp;gt;?@\\^`~'.indexOf(ch) &amp;gt;= 0) {&lt;br /&gt;
            return ch;&lt;br /&gt;
        }&lt;br /&gt;
        return hhh;&lt;br /&gt;
    });&lt;br /&gt;
    //unhide IPs and return&lt;br /&gt;
    for (i = hidIdx; i &amp;gt;= 0; i--) {&lt;br /&gt;
        anchor = anchor.replace('\x01' + i + '\x02', hidden[i]);&lt;br /&gt;
    }&lt;br /&gt;
    if (anchor.indexOf(&amp;quot;''&amp;quot;) !== -1) {&lt;br /&gt;
        return link; //cannot have double '' in link&lt;br /&gt;
    }&lt;br /&gt;
    return parts[0] + '#' + anchor;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
$(function () {&lt;br /&gt;
    'use strict';&lt;br /&gt;
    mw.loader.using('jquery.byteLimit', function () {&lt;br /&gt;
        $(&lt;br /&gt;
            '#wpSummary, #wpReason, [name=wpReason], #mwProtect-reason, #mw-input-wpReason-other, #wpComment'&lt;br /&gt;
        ).byteLimit(Infinity);&lt;br /&gt;
    });&lt;br /&gt;
&lt;br /&gt;
    $(&lt;br /&gt;
        '#wpSummary, #wpReason, [name=wpReason], #mwProtect-reason, #mw-input-wpReason-other, #wpComment'&lt;br /&gt;
    ).on(&lt;br /&gt;
        'paste keyup change',&lt;br /&gt;
        function (e) {&lt;br /&gt;
            var that, val, bytes;&lt;br /&gt;
            that = $(this);&lt;br /&gt;
            val = that.val();&lt;br /&gt;
            // from https://stackoverflow.com/questions/2219526/&lt;br /&gt;
            bytes = encodeURI(val).split(&lt;br /&gt;
                    /%(?:u[0-9A-F]{2})?[0-9A-F]{2}|./).length -&lt;br /&gt;
                1;&lt;br /&gt;
            that.css('background-color', bytes &amp;gt; 255 ? '#FFEBEB' :&lt;br /&gt;
                'white');&lt;br /&gt;
            val = val.replace( // place diff before oldid&lt;br /&gt;
                /(oldid=(?:\d+|next|prev|cur|))&amp;amp;(diff=(?:\d+|next|prev|cur|))/gi,&lt;br /&gt;
                '$2&amp;amp;$1'&lt;br /&gt;
            ).replace( // Special:Diff&lt;br /&gt;
                /(?:(^|[ \\^`#&amp;lt;&amp;gt;\[\]\&amp;quot;\t\n{|}])|https?:\/\/([a-z\-]+)\.(?:wikipedia|wikimedia)\.org\/[^ \\^`#&amp;lt;&amp;gt;\[\]\&amp;quot;\t\n{|}]*)&amp;amp;?diff=(\d+|next|prev|cur)(?:&amp;amp;oldid=(\d+|next|prev|cur|))?(#[^ \\^`#&amp;lt;&amp;gt;\[\]\&amp;quot;\t\n{|}]*)?(?=$|[ \\^`#&amp;lt;&amp;gt;\[\]\&amp;quot;\t\n{|}])/gi,&lt;br /&gt;
                '$1[[$2:Special:Diff/$4/$3$5]]'&lt;br /&gt;
            ).replace( // Special:Permalink&lt;br /&gt;
                /(?:(^|[ \\^`#&amp;lt;&amp;gt;\[\]\&amp;quot;\t\n{|}])|https?:\/\/([a-z\-]+)\.(?:wikipedia|wikimedia)\.org\/[^ \\^`#&amp;lt;&amp;gt;\[\]\&amp;quot;\t\n{|}]*)&amp;amp;?oldid=(\d+|next|prev|cur)(#[^ \\^`#&amp;lt;&amp;gt;\[\]\&amp;quot;\t\n{|}]*)?(?=$|[ \\^`#&amp;lt;&amp;gt;\[\]\&amp;quot;\t\n{|}])/gi,&lt;br /&gt;
                '$1[[$2:Special:Permalink/$3$4]]'&lt;br /&gt;
            ).replace( // [[Special:Diff/12345678/prev]] is equal to [[Special:Diff/12345678]]&lt;br /&gt;
                /\[\[([a-z\-]+:)Special:Diff\/(\d+|next|prev|cur)\/prev\]\]/gi,&lt;br /&gt;
                '[[$1Special:Diff/$2]]'&lt;br /&gt;
            ).replace( // no oldid&lt;br /&gt;
                'Special:Diff//',&lt;br /&gt;
                'Special:Diff/'&lt;br /&gt;
            ).replace(&lt;br /&gt;
                '[[fa:',&lt;br /&gt;
                '[['&lt;br /&gt;
            ).replace(&lt;br /&gt;
                '[[:',&lt;br /&gt;
                '[['&lt;br /&gt;
            );&lt;br /&gt;
            try {&lt;br /&gt;
                val = decodeURI(val.replace(/%20/g, '‍‍‍')).replace(/‍‍‍/g, '%20'); // three zwnj&lt;br /&gt;
                val = val.replace(/\[\[.*?\]\]/g, decodeAnchor);&lt;br /&gt;
            } catch (ignore) {}&lt;br /&gt;
            if (val !== that.val()) {&lt;br /&gt;
                that.val(val);&lt;br /&gt;
            }&lt;br /&gt;
        });&lt;br /&gt;
});&lt;/div&gt;</summary>
		<author><name>Admin</name></author>	</entry>

	</feed>