Մասնակից:ATaguhi/getDatesFromArticleText.js
Ծանուցում. Հիշելուց հետո կատարված փոփոխությունները տեսնելու համար մաքրեք ձեր զննարկիչի հիշապահեստը. Mozilla / Firefox / Safari՝ Ctrl+Shift+R (Cmd+Shift+R Mac OS X-ում) Konqueror՝ F5 Opera՝ Tools→Preferences ընտրացանկից։ Internet Explorer՝ Ctrl+F5
var WikiAutoDates=WikiAutoDates || {};
WikiAutoDates.getDatesFromArticleText=function(text){
debugger;
var DayObject=function() {
this.day=null;
this.month=null;
this.year=null;
};
var men={
birth:new DayObject, //ծննդյան տվյալներ
death:new DayObject //մահվան տվյալներ
};
var IndexFirstText=text.indexOf("'''");
var textbiog=text.substring(IndexFirstText,IndexFirstText+195); //առանձնացնում ենք կենսագրությունը
textbiog=textbiog.toLowerCase();
var monthArray=["հունվար","փետրվար","մարտ","ապրիլ","մայիս","հունիս","հուլիս","օգոստոս","սեպտեմբեր","հոկտեմբեր","նոյեմբեր","դեկտեմբեր"];
/////////////////////////////
var monthDay=null;
var birthYear=null;
var birthMonth=null;
var birthDay=null;
var deathYear=null;
var deathMonth=null;
var deathDay=null;
var birthDatas; /// tsnndyan tvyalner ete bolory tverov en trvac
var deathDatas; /// mahvan tvyalner ete bolory tverov en trvac
//stugenq taretiv ka te che
if(/[0-9]{3,4}/g.test(textbiog))
{
var yearGlobal=textbiog.match(/[0-9]{3,4}/g); //gtnum enq 3 kam 4 nishanoc tvery
birthYear=yearGlobal[0]; // hamarenq tsnndyan taretiv
if(yearGlobal[1]){ //hamarenq mahvan taretiv
deathYear=yearGlobal[1];
}
}
if(/([0-9]{1,2})?\s*?(հունվար|փետրվար|մարտ|ապրիլ|մայիս|հունիս|հուլիս|օգոստոս|սեպտեմբեր|հոկտեմբեր|նոյեմբեր|դեկտեմբեր)ի?(\s*[0-9]{1,2})?/g.test(textbiog))
{
monthDay = textbiog.match(/([0-9]{1,2})?\s*?(հունվար|փետրվար|մարտ|ապրիլ|մայիս|հունիս|հուլիս|օգոստոս|սեպտեմբեր|հոկտեմբեր|նոյեմբեր|դեկտեմբեր)ի?(\s*[0-9]{1,2})?/g);
//amboxj textbiogu-um gtnum enq amis -amsatvery
var birthMonthDay = null;
var deathMonthDay = null;
if (monthDay.length === 2)
{
birthMonthDay = monthDay[0];
deathMonthDay = monthDay[1];
} else
// ete mi hat amis-amsativ e apa da tsnndyann e; ,isk mahvan chka
if (monthDay.length === 1 || monthDay[0]===monthDay[1]) {
birthMonthDay= monthDay[0];
}
//tsnndyan tvyalner//
birthDatas=birthMonthDay.split(" "); // ապա ըստ պռոբելի կտրենք
birthMonth=birthDatas[0]; //birthMonth=ստացված "ամիսը"
birthDay=birthDatas[1]; //birthDay=ստացված "օրը"
if(birthMonth.length<4){
var swap1=birthMonth; //ստուգել եթե ամսվա երկարությունը <4 ապա դա ամսաթիվն է
birthMonth=birthDay;
birthDay=swap1;
}
//mahvan tvyalner//
if(deathMonthDay) //// stugenq ete mahvan tvyaln[er kan nor sharunakenq
{ /// hakarak depqum mahvan amis amsativ@ kmna NULL;
deathDatas = deathMonthDay.split(" "); //ապա ըստ պռոբելի կտրենք
deathMonth = deathDatas[0]; //այս 2 տողերը Birth-ի նման
deathDay = deathDatas[1];
//"ամիս" "օրը" հնարավոր է հակառակը լինեն
if (deathMonth.length < 4) {
var swap2 = deathMonth;
deathMonth = deathDay;
deathDay = swap2;
}
}
// stugenq ete amsva verjum ի tary ka jnjenq
if(birthMonth[birthMonth.length-1]==="ի"){ //եթե ամիսը վերյանում է ի տառով ապա
birthMonth=birthMonth.substring(0,birthMonth.length-1);//այդ ի տառը հանում ենք
if(deathMonth) {
deathMonth = deathMonth.substring(0, deathMonth.length - 1);
}
}
/// amisy poxenq tverov
for(var i=0;i<monthArray.length;i++){
if(birthMonth===monthArray[i]){
birthMonth=i+1;}
if(deathMonth===monthArray[i]){
deathMonth=i+1;}
}
}
///
//ete voch mi hat amis-amsativ chi gtnvel apa porcenq man gal tveri tesqov;
else {
var rezultTest=0;
if (/[0-9]{3,4}\|[0-9]{1,2}\|[0-9]{1,2}/g.test(textbiog)) {
rezultTest = 1; /// tiv|tiv|tiv
}
else if(/[0-9]{3,4}\.[0-9]{1,2}\.[0-9]{1,2}/.test(textbiog)){
rezultTest=2; /// tiv.tiv.tiv
}
if(rezultTest===1){
monthDay=textbiog.match(/[0-9]{3,4}\|[0-9]{1,2}\|[0-9]{1,2}/g);
}
else if(rezultTest===2){
monthDay=textbiog.match(/[0-9]{3,4}\.[0-9]{1,2}\.[0-9]{1,2}/g);
monthDay[0]=monthDay[0].replace(".","|");
}
if(rezultTest) {
birthDatas = monthDay[0].split("|");
birthYear = birthDatas[0];
birthMonth = birthDatas[1];
birthDay = birthDatas[2];
if (monthDay.length === 2) //aysinqn hamvan tvyalnern el kan
{
monthDay[1] = monthDay[1].replace(".", "|");
deathDatas = monthDay[1].split("|");
deathYear = deathDatas[0];
deathMonth = deathDatas[1];
deathDay = deathDatas[2];
}
}
}
if(birthYear===deathYear){
deathYear=null;
}
//
men.birth.year=birthYear;
men.birth.month=birthMonth;
men.birth.day=birthDay;
men.death.year=deathYear;
men.death.month=deathMonth;
men.death.day=deathDay;
return men;
}