<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="ar">
	<id>https://www.copticpedia.org/index.php?action=history&amp;feed=atom&amp;title=%D9%85%D9%8A%D8%AF%D9%8A%D8%A7%D9%88%D9%8A%D9%83%D9%8A%3AGadget-Archiver.js</id>
	<title>ميدياويكي:Gadget-Archiver.js - تاريخ المراجعة</title>
	<link rel="self" type="application/atom+xml" href="https://www.copticpedia.org/index.php?action=history&amp;feed=atom&amp;title=%D9%85%D9%8A%D8%AF%D9%8A%D8%A7%D9%88%D9%8A%D9%83%D9%8A%3AGadget-Archiver.js"/>
	<link rel="alternate" type="text/html" href="https://www.copticpedia.org/index.php?title=%D9%85%D9%8A%D8%AF%D9%8A%D8%A7%D9%88%D9%8A%D9%83%D9%8A:Gadget-Archiver.js&amp;action=history"/>
	<updated>2026-04-10T02:22:26Z</updated>
	<subtitle>تاريخ التعديل لهذه الصفحة في الويكي</subtitle>
	<generator>MediaWiki 1.41.1</generator>
	<entry>
		<id>https://www.copticpedia.org/index.php?title=%D9%85%D9%8A%D8%AF%D9%8A%D8%A7%D9%88%D9%8A%D9%83%D9%8A:Gadget-Archiver.js&amp;diff=8744&amp;oldid=prev</id>
		<title>Gerges: مراجعة واحدة</title>
		<link rel="alternate" type="text/html" href="https://www.copticpedia.org/index.php?title=%D9%85%D9%8A%D8%AF%D9%8A%D8%A7%D9%88%D9%8A%D9%83%D9%8A:Gadget-Archiver.js&amp;diff=8744&amp;oldid=prev"/>
		<updated>2021-03-19T01:05:27Z</updated>

		<summary type="html">&lt;p&gt;مراجعة واحدة&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحة جديدة&lt;/b&gt;&lt;/p&gt;&lt;div&gt;//https://en.wikipedia.org/wiki/User:Σ/Testing_facility/Archiver.js&lt;br /&gt;
// Translated by: [[User:Zaher.Kadour/Archiver.js]]&lt;br /&gt;
$(document).ready(function() {&lt;br /&gt;
    if (mw.config.get(&amp;quot;wgNamespaceNumber&amp;quot;) % 2 === 0 &amp;amp;&amp;amp; ![4].includes(mw.config.get(&amp;quot;wgNamespaceNumber&amp;quot;)))&lt;br /&gt;
        // ليس صفحة نقاش وليس صفحة خاصة&lt;br /&gt;
        return;&lt;br /&gt;
    $(&amp;quot;head&amp;quot;).append(&amp;quot;&amp;lt;style&amp;gt;a.arkylink { font-weight:bold } .arkyhighlight { background-color:#D9E9FF }&amp;lt;/style&amp;gt;&amp;quot;);&lt;br /&gt;
    var validSections = new Object();&lt;br /&gt;
    var fromTos = new Object();&lt;br /&gt;
    var wikiText = &amp;quot;&amp;quot;;&lt;br /&gt;
    var revStamp;&lt;br /&gt;
    var startArchiveButton = mw.util.addPortletLink(&amp;quot;p-cactions&amp;quot;, &amp;quot;#&amp;quot;, &amp;quot;أرشفة&amp;quot;, &amp;quot;pt-oeca&amp;quot;, &amp;quot;بدء/إنهاء معالج الأرشفة&amp;quot;, null, null);&lt;br /&gt;
    var overlay = $(document.createElement(&amp;quot;button&amp;quot;));&lt;br /&gt;
    $(startArchiveButton).click(function(e) {&lt;br /&gt;
        $(&amp;quot;.arkylink&amp;quot;).click();&lt;br /&gt;
        $(&amp;quot;.arky&amp;quot;).toggle();&lt;br /&gt;
        $(&amp;quot;#archivebutton&amp;quot;).toggle();&lt;br /&gt;
    });&lt;br /&gt;
    overlay.html(&amp;quot;أرشف جميع الأقسام المحددة&amp;quot;)&lt;br /&gt;
        .attr(&amp;quot;id&amp;quot;, 'archivebutton')&lt;br /&gt;
        .css(&amp;quot;position&amp;quot;, 'fixed')&lt;br /&gt;
        .css(&amp;quot;bottom&amp;quot;, 0)&lt;br /&gt;
        .css(&amp;quot;height&amp;quot;, '44px')&lt;br /&gt;
        .css(&amp;quot;width&amp;quot;, '100%')&lt;br /&gt;
        .css(&amp;quot;font-size&amp;quot;, '200%');&lt;br /&gt;
    $(document.body).append(overlay);&lt;br /&gt;
    overlay.toggle();&lt;br /&gt;
    overlay.click(function(e) {&lt;br /&gt;
        var numOfThreads, archiveTarget;&lt;br /&gt;
        var sections, archiveThis;&lt;br /&gt;
        var cutOffset, revisedPage;&lt;br /&gt;
        function cut(s, start, end) {&lt;br /&gt;
            return s.substr(0, start) + s.substring(end);&lt;br /&gt;
        }&lt;br /&gt;
        cutOffset = numOfThreads = 0;&lt;br /&gt;
        revisedPage = wikiText;&lt;br /&gt;
        sections = $(&amp;quot;a.arkylink&amp;quot;).map(function() {&lt;br /&gt;
            return $(this).attr(&amp;quot;data-section&amp;quot;);&lt;br /&gt;
        });&lt;br /&gt;
        if (!(numOfThreads = sections.length))&lt;br /&gt;
            return alert(&amp;quot;لم تحدد أي قسم، إلغاء&amp;quot;);&lt;br /&gt;
        archiveTarget = prompt(&amp;quot;أرشفة &amp;quot; + numOfThreads + &amp;quot; أقسام: ما هو عنوان صفحة الأرشيف؟&amp;quot;, mw.config.get(&amp;quot;wgPageName&amp;quot;));&lt;br /&gt;
        if (!archiveTarget || archiveTarget == mw.config.get(&amp;quot;wgPageName&amp;quot;))&lt;br /&gt;
            return alert(&amp;quot;لم تحدد صفحة الأرشيف، إلغاء&amp;quot;);&lt;br /&gt;
        sections.each(function(i, n) {&lt;br /&gt;
            revisedPage = cut(&lt;br /&gt;
                    revisedPage,&lt;br /&gt;
                    fromTos[n][0] - cutOffset,&lt;br /&gt;
                    fromTos[n][1] - cutOffset&lt;br /&gt;
            );&lt;br /&gt;
            cutOffset += fromTos[n][1] - fromTos[n][0];&lt;br /&gt;
        });&lt;br /&gt;
        archiveThis = sections.map(function() {&lt;br /&gt;
            return wikiText.substring(fromTos[this][0], fromTos[this][1]);&lt;br /&gt;
        }).toArray().join(&amp;quot;&amp;quot;);&lt;br /&gt;
        console.log(&amp;quot;archive this:&amp;quot; + archiveThis);&lt;br /&gt;
        console.log(&amp;quot;revised page:&amp;quot; + revisedPage);&lt;br /&gt;
        if (1) new mw.Api().postWithToken(&amp;quot;csrf&amp;quot;, {action: 'edit', title: mw.config.get(&amp;quot;wgPageName&amp;quot;), text: revisedPage, summary: &amp;quot;أرشفة &amp;quot; + numOfThreads + &amp;quot; أقسام إلى [[&amp;quot; + archiveTarget + &amp;quot;]]&amp;quot;, basetimestamp: revStamp, starttimestamp: revStamp})&lt;br /&gt;
            .done(function(res1) {&lt;br /&gt;
                alert(&amp;quot;تم نقل القسم بنجاح&amp;quot;);&lt;br /&gt;
                console.log(res1);&lt;br /&gt;
                new mw.Api().postWithToken(&amp;quot;csrf&amp;quot;, {action: 'edit', title: archiveTarget, appendtext: &amp;quot;\n&amp;quot; + archiveThis, summary: &amp;quot;أرشفة من [[&amp;quot; + mw.config.get(&amp;quot;wgPageName&amp;quot;) + &amp;quot;]]&amp;quot;})&lt;br /&gt;
                    .done(function(res2) {&lt;br /&gt;
                        alert(&amp;quot;تم إضافة الأقسام إلى صفحة الأرشيف بنجاح&amp;quot;);&lt;br /&gt;
                    })&lt;br /&gt;
                    .fail(function(res2) {&lt;br /&gt;
                        alert(&amp;quot;فشل إضافة القسم إلى صفحة الأرشيف. التدقيق اليدوي مطلوب.&amp;quot;);&lt;br /&gt;
                    })&lt;br /&gt;
                    .always(function(res2) {&lt;br /&gt;
                        console.log(res2);&lt;br /&gt;
                        window.location.reload();&lt;br /&gt;
                    });&lt;br /&gt;
            })&lt;br /&gt;
            .fail(function(res1) {&lt;br /&gt;
                alert(&amp;quot;فشل نقل القسم من صفحة النقاش. إلغاء عملية الأرشفة.&amp;quot;);&lt;br /&gt;
                console.log(res1);&lt;br /&gt;
                window.location.reload();&lt;br /&gt;
            });&lt;br /&gt;
    });&lt;br /&gt;
    new mw.Api().get({action: 'parse', page: mw.config.get(&amp;quot;wgPageName&amp;quot;)}).done(function(dataShit) {&lt;br /&gt;
        new mw.Api().get({action: 'query', pageids: mw.config.get(&amp;quot;wgArticleId&amp;quot;), prop: ['revisions'], rvprop: ['content', 'timestamp']}).done(function(shit) {&lt;br /&gt;
            var rv;&lt;br /&gt;
            rv = shit.query.pages[mw.config.get(&amp;quot;wgArticleId&amp;quot;)].revisions[0];&lt;br /&gt;
            wikiText = rv[&amp;quot;*&amp;quot;];&lt;br /&gt;
            revStamp = rv['timestamp'];&lt;br /&gt;
        });&lt;br /&gt;
        $(dataShit.parse.sections)&lt;br /&gt;
            .filter(function(i, s) { return s.index == parseInt(s.index) })&lt;br /&gt;
            .each(function(i, s) { validSections[s.index] = s });&lt;br /&gt;
        for (var i in validSections) {&lt;br /&gt;
            i = parseInt(i);&lt;br /&gt;
            fromTos[i] = [&lt;br /&gt;
                validSections[i].byteoffset,&lt;br /&gt;
                validSections.hasOwnProperty(i+1)?validSections[i+1].byteoffset:Infinity&lt;br /&gt;
            ];&lt;br /&gt;
        }&lt;br /&gt;
        $(&amp;quot;#mw-content-text&amp;quot;).find(&amp;quot;:header&amp;quot;).find(&amp;quot;span.mw-headline&amp;quot;).each(function(i, title) {&lt;br /&gt;
            var header, editSection, sectionNumber;&lt;br /&gt;
            header = $(this).parent();&lt;br /&gt;
            editSection = header.find(&amp;quot;.mw-editsection&amp;quot;); // 1st child&lt;br /&gt;
            sectionNumber = header.find(&amp;quot;.mw-editsection a:first&amp;quot;);&lt;br /&gt;
            if (sectionNumber[0]) {&lt;br /&gt;
                sectionNumber = sectionNumber.attr(&amp;quot;href&amp;quot;).match(/&amp;amp;section=(\d+)/);&lt;br /&gt;
                if (sectionNumber)&lt;br /&gt;
                    sectionNumber = sectionNumber[1];&lt;br /&gt;
            } else // eg &amp;lt;h2&amp;gt;not a real section&amp;lt;/h2&amp;gt;&lt;br /&gt;
                sectionNumber = undefined;&lt;br /&gt;
            if (validSections.hasOwnProperty(sectionNumber))&lt;br /&gt;
                editSection[0].innerHTML += &amp;quot;&amp;amp;nbsp;&amp;lt;span class=arky style=display:none&amp;gt;&amp;lt;span class=mw-editsection-bracket&amp;gt;[&amp;lt;/span&amp;gt;&amp;lt;a data-section=&amp;quot; + sectionNumber + &amp;quot; &amp;quot; + &amp;quot;onclick=$(this).closest(':header').toggleClass('arkyhighlight');$(this).toggleClass('arkylink');&amp;gt;أرشف&amp;lt;/a&amp;gt;&amp;lt;span class=mw-editsection-bracket&amp;gt;]&amp;lt;/span&amp;gt;&amp;lt;/span&amp;gt;&amp;quot;;&lt;br /&gt;
        });&lt;br /&gt;
    });&lt;br /&gt;
});&lt;/div&gt;</summary>
		<author><name>Gerges</name></author>
	</entry>
</feed>