Χρήστης:ArielGlenn/bl-xml-check-l2-el-oldstyle.pl

Από Βικιλεξικό
Μετάβαση στην πλοήγηση Πήδηση στην αναζήτηση

Η έξοδος του script περιέχει και άρθρα με ==Αριθμητικό==, ==Βλέπε επίσης==, κλπ... Μάζεψα τα ονόματα γλωσσών

Αγγλικά
Βουλγαρικά
Δανικά
Ελληνικά
Εσθονικά
Εσπεράντο
Ισλανδικά
Ισπανικά
Ιταλικά
Καταλανικά
Λατινικά
Λιθουανική
Μαλαισιακά
Νορβηγικά
Ουκρανικά
Πολωνικά
Πορτογαλικά
Ρουμανικά
Σλοβακικά
Σουηδικά
Τουρκικά
Τσεχικά
Φινλανδικά

και έκανα grep για αυτούς τους τίτλους μόνο.

binmode(STDOUT, ":utf8");
binmode(STDIN, ":utf8");

use encoding(UTF8);

use utf8;

# για κάθε σελίδα που δεν περιέχει {{=nn=}}
# και που αρχίζει με ==Ελληνικά==, ==Γαλλικά== κλπ
# γράφουμε τον τίτλο

while (<STDIN>) {
    $γραμμή=$_;
    if ($γραμμή =~ /<page>/) {
        $τομέας="";
        $τίτλος="";
        $επικεφαλίδα_γλώσσας="";
        $ανακατεύθυνση="";
        $παλιά_επικεφαλίδα="";
        $γλώσσα="";
    }
    elsif ($γραμμή =~ /<title>/) {
           if ($γραμμή =~ /<title>([^:]+):(.+)<\/title>/) {
               $τομέας=$1;
               $τίτλος=$2;
           }
           elsif ($γραμμή =~ /<title>(.*)<\/title>/) {
               $τομέας="κύριος";
               $τίτλος=$1;
           } 
    }
    elsif ($γραμμή =~ /\{\{=([a-z\-]+)=\}\}/) {
        $επικεφαλίδα_γλώσσας="set";
    }
    elsif ($γραμμή =~ /==([^=]+)==/) {
        if ($παλιά_επικεφαλίδα !~ /set/) {
            $παλιά_επικεφαλίδα="set";
            $γλώσσα=$1;
        }
    }
    elsif ($γραμμή =~/#REDIRECT/i) {
        $ανακατεύθυνση="set";
    }
    elsif ($γραμμή =~ /<\/page>/) {
        if (($επικεφαλίδα_γλώσσας !~ /set/) && ($τομέας =~ /κύριος/) && ($ανακατεύθυνση !~ /set/) && ($παλιά_επικεφαλίδα =~ /set/)) {
            print "$γλώσσα: $τίτλος\n";
        }
    }
}