انتقل إلى المحتوى

مستخدم:ASammour/cosmetics-staging.js

يرجى فتح الوصلات الداخلية للمقالات المتعلّقة بموضوع المقالة.
هذه الصفحة لم تصنف بعد. أضف تصنيفًا لها لكي تظهر في قائمة الصفحات المتعلقة بها.
من ويكيبيديا، الموسوعة الحرة

ملاحظة: بعد الحفظ، قد يلزمك إفراغ الكاش لرؤية التغييرات (إفراغ الكاش الآن).

/**
 * هذا السكريبت يقوم بعمليات تجميلية عند الضغط على زر نشر التغييرات
 * أو زر أظهر معاينة؛ وذلك فقط عندما يقوم المستخدم بأي تعديل على الصفحة ذاتها
 * 
 * 
 * قائمة التعديلات:
 *
 *
 **تصحيح الفاصلة الأجنبية
 **إزالة المسافة بين القوسين
 **إزالة الفراغات والمسافات المتكررة
 **إزالة الأسطر المتكررة
 **توحيد عناوين الأقسام في المقالات، كالمراجع، والوصلات الخارجية
 **ترتيب التصنيفات
 **تعريب خواص الصور
 **ترتيب القوالب في أسفل الصفحة
 **إضافة أو  إزالة قوالب الصيانة
 **إضافة قالب محمية أو إزالته
 **إزالة قالب وفاة حديثة، أو تحرير كثيف بعد مرور فترة
 **إزالة وصلات لغات موجودة
 **إزالة قوالب الصيانة من صفحات التوضيح
 **تصنيف التحويلات
 **ترحيل التحويلات إلى ويكي بيانات
 **إضافة قوالب المشاريع الشقيقة
 **إضافة بوابة أو بذرة من التصانيف
 **إزالة بوابات او تصانيف حمراء
 **إضافة ضبط استنادي، روابط فنية، مواقع التواصل الاجتماعي
 **تدقيق لغوي محدد
 **تصانيف معادلة من الإنجليزي
 **إزالة صور محذوفة
 **إزالة تصنيف:أشخاص على قيد الحياة للمتوفين
 **تعريب وصلات
 **إزالة وصلات ويكي بيانات زرقاء
 **تعريب الأرقام الهندية
 **إضافة بوابات معادلة
 *إزاالة التعليقات من المقالات
 * التحقق من إغلاق الوصلات والقوالب
 * */

/*التحقق إذا ما كان المستخدم قد قام بأي تعديل على الصفحة*/
/*التحقق إذا كان المستخدم يعدل في النطاق الرئيسي*/
if (mw.config.get( 'wgNamespaceNumber' ) === 0
	&& mw.config.get('wgAction') === "edit"){
	/*هل غير المستخدم أي شيء في نص المقالة؟*/
   $('#wpTextbox1').change(function() { 
   	
   	/*عند الضغط على زر الحفظ، أو المعاينة ستتم العمليات*/
	$('#wpSave,#wpPreview').click (function(){
		run ();	
	});
   });
}

/*الدالة الرئيسية*/

function run (){
	var content = $('#wpTextbox1').val();

	/*التحقق إذا كان المستخدم لا يعدل في التحويلات وصفحات التوضيح*/
	if (!content.match (/\#تحويل/g) 
	&& !content.match (/\#REDIRECT/g)
	&& !content.match (/\{\{توضيح\}\}/g)
	&& !mw.config.get('wgTitle').match (/توضيح/g)){
	content = commaFix (content);
	content = arDate (content);
	//content = tagging (content);
	content = decodeUrl (content);
	content = sorting (content);
	content = replacing (content);
	$('#wpTextbox1').val(content);
	}
}


/*تصحيح الفاصلة الأجنبية*/
function commaFix (content){
	var commaPattern = content.match(/.{3},.{3}/g);
	if (commaPattern) {
		for (var i = 0; i < commaPattern.length; i++) {
			 var is = new RegExp(".*[ا-ي].*");
			 var num = new RegExp(".*\\d+.*");
			 /*التحقق أن الفاصلة الأجنبية موجودة داخل نص عربي*/
			 if (is.test(commaPattern[i]) && !num.test(commaPattern[i])) {
				content = content.replace(commaPattern[i],commaPattern[i].replace(/ ,/g, ",").replace(/,/g, ", ").replace (/\s{2,}/g," "));
	            content = content.replace(commaPattern[i], commaPattern[i].replace(" , ", "، "));
	            content = content.replace(commaPattern[i], commaPattern[i].replace(" ,", "،"));
	            content = content.replace(commaPattern[i], commaPattern[i].replace(", ", "، "));
	            content = content.replace(" , ", ", ");
	            content = content.replace(" ، ", "، ");
                content = fixSpaceComma (content);
			 }
		}
	}
	return content;
}

/**
 * دالة لتعريب التاريخ المنقول من الويكيات الأجنبية
 * على سبيل المثال
 * يناير 26,
 * ستصبح
 * 26 يناير
 */

function arDate (content){
	var arDate = content.match(/(يناير|فبراير|مارس|أبريل|إبريل|مايو|يونيو|يوليو|أغسطس|سبتمبر|أكتوبر|نوفمبر|ديسمبر) \d{1,2},/g );
	if (arDate) {
		for (var i = 0; i < arDate.length; i++) {
			content = content.replace (arDate[0], arDate[0].match(/\d+/g).map(Number)+" "+arDate[0].replace (/\d{1,2},/g,"").trim()); 
		}
	}
	return content;
}

function fixSpaceComma (content){
	var commaPattern = content.match(/.{3}،.{3}/g);
	if (commaPattern) {
		for (var i = 0; i < commaPattern.length; i++) {
			 var num = new RegExp(".*\\d+.*");
			 if (!num.test(commaPattern[i])) {
				content = content.replace(commaPattern[i],commaPattern[i].replace(/ ،/g, "،").replace(/،/g, "، ").replace (/\s{2,}/g," "));
			 }
		}
	}
	return content;
}

/*جلب الشهر والتاريخ لاستخدامهما في قوالب الصيانة*/
function getMonthYear (){
	var months = ["يناير", "فبراير", "مارس", "إبريل", "مايو", "يونيو",
              "يوليو", "أغسطس", "سبتمبر", "أكتوبر", "نوفمبر", "ديسمبر"];
	var date = new Date();
	var currentDate = months[date.getMonth()]+" "+date.getFullYear();
	return currentDate;
}


/*وسم المقالات*/
function tagging (content){
	/*وسم المقالات التي لا تحتوي على شريط بوابات*/
	if (!content.includes ("{{شريط بوابات") && !content.includes ("مقالات بحاجة لشريط بوابات")
	&& !$("#firstHeading").text().includes ("تعديل قسم")){
		content  = content + "\n[[تصنيف:مقالات بحاجة لشريط بوابات]]\n";
	}
	

	/*وسم المقالات التي لا تحتوي على وصلات داخلية*/
	if (!content.includes ("\[\\[") && !content.includes ("{{نهاية مسدودة")
	&& !$("#firstHeading").text().includes ("تعديل قسم")){
		content  = "{{نهاية مسدودة|"+getMonthYear()+"}}\n"+content;
	}
	
	/*وسم المقالات التي لا تحتوي تصانيف*/
	if (!content.includes ("\[\\[تصنيف:") && !content.includes ("{{غير مصنفة")
	&& !$("#firstHeading").text().includes ("تعديل قسم")){
		content = content.replace ("[[تصنيف:","{{غير مصنفة|"+getMonthYear()+"}}\n"+"[[تصنيف:");
	}
	return content;	
}

/*تدقيق إملائي*/
function spellCheck (content){
	content = content.replace (/إست.{3}/g, function replacer(match){
    	return match.replace ("إست","است");
	}); //استفعال
	
	content = content.replace (" الى ", " إلى ");
	content = content.replace (" فى ", " في ");
	content = content.replace (" اول ", " أول ");
	content = content.replace (" اكثر ", " أكثر ");
	content = content.replace (" امريكي ", " أمريكي ");
	content = content.replace (" اول ", " أول ");
	content = content.replace (" إثنان ", " اثنان ");
	content = content.replace (" إمرأة ", " امرأة ");
	content = content.replace (" إبنة ", " ابنة ");
	content = content.replace (" إبن ", " ابن ");
	content = content.replace (" إثنتان ", " اثنتان ");
	content = content.replace (" إسم ", " اسم ");
}

/*استبدالات*/
function replacing (content){
	content = content.replace(/ \( /g, " (");
	content = content.replace(/ \. /g, ". ");
	content = content.replace(/ \) /g, ") ");
	content = content.replace(/\[file:/g, "[ملف:");
	content = content.replace(/\[File:/g, "[ملف:");
	content = content.replace(/\|thumbnail/g, "|تصغير");
	content = content.replace(/\|thumb/g, "|تصغير");
	content = content.replace(/\|left\|/g, "|يسار|");
	content = content.replace(/\|right\|/g, "|يمين|");
	content = content.replace(/\|center\|/g, "|مركز|");
	content = content.replace("==اقرأ أيضاً==", "==انظر أيضًا==");
	content = content.replace("==طالع أيضاً==", "==انظر أيضًا==");
	content = content.replace("==مقالات متعلقة==", "==انظر أيضًا==");
	content = content.replace("==صفحات ذات صلة==", "==انظر أيضًا==");
	content = content.replace("==See also==", "==انظر أيضًا==");
	content = content.replace("==المصادر==", "==مصادر==");
	content = content.replace("==الهوامش==", "==هوامش==");
	content = content.replace("==المراجع==", "==مراجع==");
	content = content.replace("==روابط خارجية==", "==وصلات خارجية==");
	content = content.replace("==مصادر خارجية==", "==وصلات خارجية==");
	content = content.replace(/ \)\./g, ").");
	content = content.replace(/ \)،/g, ")،");
	content = content.replace(/ و /g, " و");
	content = content.replace(/ {3,}/g,' ');
	content = content.replace(/\{\{قالب:/g, "{{");
	content = content.replace(/\[\[Category:/g, "[[تصنيف:");
	content = content.replace(/\[\[ /g, "[[");
	content = content.replace(/ \]\]/g, "]]");
	content = content.replace(/\<references \/\>/g, "{{مراجع}}");
	content = content.replace(new RegExp('(\n){3,}', 'gim') , '\n\n');
	content = content.replace(/\{\{قالب:/g, "{{");
	content = content.replace(/\{\{ /g, "{{");
	content = content.replace(/ \}\}/g, "}}");
	content = content.replace(/\[\[ /g, "[[");
	content = content.replace(/ \]\]/g, "]]");
	content = content.replace(/\<br\\\>/g, "<br />");
	content = content.replace(/\<\\br\>/g, "<br />");
	content = content.replace(/\<br\.\>/g, "<br />");
	content = content.replace (/([\uE000-\uF8FF])/g, "");
	content = content.replace (/ \n/g, "\n");
	content = content.replace (/\[\[تصنيف : /g, "[[تصنيف:");
	content = content.replace (/\[\[تصنيف :/g, "[[تصنيف:");
	content = content.replace (/\[\[تصنيف: /g, "[[تصنيف:");
	content = content.replace (/&ndash;/g, "–");
	content = content.replace (/&mdash;/g, "—");
	content = content.replace (/\{\{بذرة\|.{1,}}\n/g, "{{بذرة}}");
	content = content.replace (/\{\{شريط بوابات\}\}\n/g, "");
	content = content.replace (/\[\[تصنيف:بذرة.{1,}\]\]\n/g, ""); //إزالة تصنيفات البذور من المقالات

	/**أخطاء 16**/
	content = content.replace(/\u00A0/g, ' '); // خطأ 16
	content = content.replace(/\u200B/g, ''); // خطأ 16
	content = content.replace(/\u007F/g, ''); // خطأ 16
	content = content.replace(/\u200E/g, ''); // خطأ 16
	content = content.replace(/\u202C/g, ''); // خطأ 16
	content = content.replace(/\u202D/g, ''); // خطأ 16


	return content;
}


/*ترتيب القوالب في أسفل المقالة، وترتيب التصنيفات*/
function sorting (content){

	var portal = content.match (/\{\{شريط بوابات.{1,}\}\}/g);
	
	var stub = content.match (/\{\{بذرة.{0,}\}\}/g);
	
	var auth = content.match (/\{\{ضبط استنادي{0,}\}\}/g);
	
	var feature = content.match (/\{\{شريط محتوى متميز.{1,}\}\}/g);
	
	var finals = "";
	
	if (auth){
		for (var i=0;i<auth.length;i++){
		    finals = finals + auth[i]+"\n";
		    content = content.replace (auth[i],"");
		}
	}
	
	if (portal){
		for (var i=0;i<portal.length;i++){
		    finals = finals + portal[i]+"\n";
		    content = content.replace (portal[i],"");
		}
	}

	if (feature){
		for (var i=0;i<feature.length;i++){
		    finals = finals + feature[i]+"\n";
		    content = content.replace (feature[i],"");
		}
	}
	
	if (stub){
		for (var i=0;i<stub.length;i++){
		    finals = finals + stub[i]+"\n";
		    content = content.replace (stub[i],"");
		}
	}
	
	var cats = content.match(/\[\[تصنيف:.{3,}\]\]/g);
	
	if (cats){	
		for (var i=0;i<cats.length;i++){
		     content = content.replace (cats[i],"");
		}
		
		cats.sort();
		
		cats = cats.filter (function (value, index, array) { 
    		return array.indexOf (value) == index;
		});
		
		for (var i=0;i<cats.length;i++){
		     finals = finals + "\n" +cats[i];
		}
	}

	content = content + "\n"+finals;
	return content;
}


/*جلب الوصلات داخل المقالة*/
function getLinks (content){
	
}


/*تخصيص البذور، والبوابات*/
function specify (cats){
	
}


/*فك تشفير الروابط العربية*/
function decodeUrl (content){
	content = content.replace(/\%D8%A7/g, "ا");
    content = content.replace(/\%D9%B1/g, "ٱ");
    content = content.replace(/\%D8%A5/g, "إ");
    content = content.replace(/\%D8%A3/g, "أ");
    content = content.replace(/\%D8%A2/g, "آ");
    content = content.replace(/\%D8%A1/g, "ء");
    content = content.replace(/\%D9%94/g, " ٔ");
    content = content.replace(/\%D9%B4/g, "ٴ");
    content = content.replace(/\%D9%95/g, "ٕ");
    content = content.replace(/\%D8%A6/g, "ئ");
    content = content.replace(/\%D8%A4/g, "ؤ");
    content = content.replace(/\%D8%A8/g, "ب");
    content = content.replace(/\%D8%AA/g, "ت");
    content = content.replace(/\%D8%A9/g, "ة");
    content = content.replace(/\%D8%AB/g, "ث");
    content = content.replace(/\%D8%AC/g, "ج");
    content = content.replace(/\%D8%AD/g, "ح");
    content = content.replace(/\%D8%AE/g, "خ");
    content = content.replace(/\%D8%AF/g, "د");
    content = content.replace(/\%D8%B0/g, "ذ");
    content = content.replace(/\%D8%B1/g, "ر");
    content = content.replace(/\%D8%B2/g, "ز");
    content = content.replace(/\%D8%B3/g, "س");
    content = content.replace(/\%D8%B4/g, "ش");
    content = content.replace(/\%D8%B5/g, "ص");
    content = content.replace(/\%D8%B6/g, "ض");
    content = content.replace(/\%D8%B7/g, "ط");
    content = content.replace(/\%D8%B8/g, "ظ");
    content = content.replace(/\%D8%B9/g, "ع");
    content = content.replace(/\%D8%BA/g, "غ");
    content = content.replace(/\%D9%81/g, "ف");
    content = content.replace(/\%D9%82/g, "ق");
    content = content.replace(/\%D9%83/g, "ك");
    content = content.replace(/\%DA%A9/g, "ک");
    content = content.replace(/\%D9%84/g, "ل");
    content = content.replace(/\%D9%85/g, "م");
    content = content.replace(/\%D9%86/g, "ن");
    content = content.replace(/\%D9%87/g, "ه");
    content = content.replace(/\%D9%87%E2%80%8D/g, "ه‍");
    content = content.replace(/\%D9%88/g, "و");
    content = content.replace(/\%D9%8A/g, "ي");
    content = content.replace(/\%D9%89/g, "ى");
    content = content.replace(/\%D9%80/g, "ـ");
    content = content.replace(/\%D9%AA/g, "٪");
    content = content.replace(/\%D9%AD/g, "٭");
    content = content.replace(/\%D8%8C/g, "،");
    content = content.replace(/\%D9%A0/g, "٠");
    content = content.replace(/\%D9%A1/g, "١");
    content = content.replace(/\%D9%A2/g, "٢");
    content = content.replace(/\%D9%A3/g, "٣");
    content = content.replace(/\%D9%A4/g, "٤");
    content = content.replace(/\%D9%A5/g, "٥");
    content = content.replace(/\%D9%A6/g, "٦");
    content = content.replace(/\%D9%A7/g, "٧");
    content = content.replace(/\%D9%A8/g, "٨");
    content = content.replace(/\%D9%A9/g, "٩");

	return content;
}