Χρήστης:AtouBot/checkmatch.pl όποια μορφή PAGENAME
Μετάβαση στην πλοήγηση
Πήδηση στην αναζήτηση
#!/usr/bin/perl # αυτό το αρχείο πρέπει να μετονομαστεί σε checkmatch.pl πριν τρέξετε το parsexml.pl binmode(STDOUT, ":utf8"); binmode(STDIN, ":utf8"); use utf8; @cm_partsofspeech = ('ακρ', 'αντων', 'αρθρ', 'αριθ', 'αρκτ', 'εκφ', 'επιθ-εκφρ', 'επιθ', 'επι', 'επιρ', 'επιφ', 'καταλ-α-επιθ', 'καταλ-αθ-ουσ', 'καταλ-α-ουσ', 'καταλ-επιρ', 'καταλ-θ-ουσ', 'καταλ-ο-ουσ', 'καταλ-ρημ', 'μορφ-αντων', 'μορφ-αρθρ', 'μορφ-επιθ', 'μορφ-κυρ', 'μορφ-μτχ', 'μορφ-ουσ', 'μορφ-ρημ', 'κυρ', 'μτχ', 'μορ', 'ουσ', 'πολυ-ουσ', 'προθ', 'προ', 'ρημ', 'συνδ', 'συντ', 'σμμ', 'χαρ', 'συμβ'); # κρατάμε σελίδες που περιέχουν τουλάχιστον μία φορά ένα από τα παρακάτω # {{-μέρος-λόγου-}} # '''{{PAGENAME}}''' # '''{{PAGENAME}}\n # '''{{PAGENAME}} \n # {{PAGENAME}} # εκτός από τα λήμματα από τις: als, grc, διεθ, μγτ, μσν # # σημείωση: αν ένα λήμμα ανήκει στην als και σε μια άλλη γλώσσα # που δεν είναι στη λίστα εξαιρέσεων, και στην άλλη γλώσσα # κάτω από κάποιο μέρος του λόγου βρίσκεται ένα από τα # παραπάνω, το κρατάμε το λήμμα sub checkmatch { $title=$page{'title'}; foreach $lcode (keys %$contents) { %except = ('grc',1,'el',1, 'als',1,'διεθ',1,'μσν',1,'μτγ',1); # αυτές οι γλώσσες δεν έχουν {{ξεν}} (προς το παρόν) foreach $lcode (keys %$contents) { if (! ($except{$lcode})) { foreach $pc (@cm_partsofspeech) { if (defined $contents->{$lcode}->{'parts'}->{$pc}->{'text'}) { if ($contents->{$lcode}->{'parts'}->{$pc}->{'text'} =~ /^(( *)\n)+('''|)\Q{{PAGENAME}}\E(( +)|\n|''')/) { return(1); } } } } } } return(0); }