Χρήστης:AtouBot/μετατροπή πινάκων μεταφράσεων

Ο κώδικας για το fixes.py:

    'pinakes_mtf': {
        'regex' : True,
        'msg': {
           'el':u'αλλαγή των πινάκων μεταφράσεων σε κρυμμένους τύπους',
        },
        'replacements': [

           (u'(\{\{-μτφ-\}\})(?P<one>((?:(?!\n\{\{[^\(]+\}\})(.|\n))*))(?=\r\n\{\{)(\r\n\{\{\(\}\})(?P<two>((?:(?!\n\{\{[^\-]+\}\})(.|\n))*))(?=\r\n\{\{)(\r\n\{\{-\}\})(?P<three>((?:(?!\n\{\{[^\)]+\}\})(.|\n))*))(?=\r\n\{\{)(\r\n\{\{\)\}\})',u'{{-μτφ-}}\g<one>\r\n{{μτφ-αρχή}}\g<two>\r\n{{μτφ-μέση}}\g<three>\r\n{{μτφ-τέλος}}'),
           (u'(\{\{-μτφ-\}\})(?P<one>((?:(?!\n\{\{[^\(]+\}\})(.|\n))*))(?=\r\n\{\{)(\r\n\{\{\(\}\})(?P<two>((?:(?!\n\{\{[^\)]+\}\})(.|\n))*))(?=\r\n\{\{)(\r\n\{\{\)\}\})',u'{{-μτφ-}}\g<one>\r\n{{μτφ-αρχή}}\g<two>\r\n{{μτφ-τέλος}}'),
        ],
    },

Εξήγηση: θέλουμε να βρούμε κείμενο με μορφή:

{{-μτφ-}}

ο,τιδήποτε δεν περιέχει \n{{...}}

{{(}}

ο,τιδήποτε δεν περιέχει \n{{...}}

{{-}}

ο,τιδήποτε δεν περιέχει \n{{...}}

{{)}}

Πχ. αν έχουμε κείμενο

{{-μτφ-}}

{{(}}
* {{en}} : {{τ...
*...
{{-}}

{{)}}

αυτό ταιριάζει, αλλά

{{-μτφ-}}
{{βλ}} [[μπλα μπλα]]

{{-συγγ-}}
{{(}}
* [[μπλα]]
{{-}}
* [[μπλα]]
{{)}}

αυτό δεν ταιριάζει (ελπίζουμε!)

Η δεύτερη γραμμή κάνει ανάλογες αλλαγές σε κείμενο {{(}}...{{)}} που δεν περιέχουν το πρότυπο {{-}}.

Το μποτ θα τρέξει πάνω στην κατηγορία ελληνικών λέξεων.

Σημειώσεις επεξεργασία

  • Η έκφραση (?P<όνομα>....) δίνει το όνομα στις αγκύλες στο κείμενο που ταιριάζει. Αυτό είναι χρήσιμο όταν δεν θέλουμε να βάλουμε \\1 \\2 κλπ, αφού είναι πολλές οι παρενθέσεις ή πολλές οι αλλαγές στον κώδικα.
  • Η έκφραση \g<όνομα> εμφανίζει το περιεχόμενο που ανατέθηκε στο όνομα προηγουμένως.
  • Η έκφραση (?: ...) είναι σαν απλές παρενθέσεις, αλλά den μπορεί να αναφερθεί αργότερα το κείμενο που ταίριαζε.
  • Η έκφραση (?! ... ) σημαίνει ότι ψάχνουμε κείμενο που δεν ταιριάζει στην υπόλοιπη έκφραση στις παρενθέσεις, αλλά όταν το βρούμε, ο κέρσορας δεν πάει στο τέλος του, παραμένει στην αρχή. Πχ. αν έχουμε κείμενο "aaabbcde" και κώδικα aaa(?!cd)b με τον κέρσορα στο πρώτο "a", ταιριάζει: έχουμε "aaa" που δεν ακολουθείται από "cd", και αμέσως μετά από το "aaa" έχουμε "b".

Η έκφραση (?!\n\{\{[^\(]+\}\})(.|\n) σημαίνει: ψάχνουμε κείμενο (από το σημείο του κέρσορα) που δεν αρχίζει \n{{ οτιδήποτε-γράμμα-εκτός-από-( }}, και αν βρούμε, πάμε στο επόμενο γράμμα (αυτό λόγω του (.|\n) στο τέλος).

Επομένως... η έκφραση ((?:(?!\n\{\{[^\(]+\}\})(.|\n))*)) σημαίνει ότι ψάχνουμε κείμενο -- από το σημείο του κέρσορα -- που δεν περιέχει πουθενά μέσα του το \n{{..}} (εκτός αν πρόκειται για \n{{(}}). Γιατί; Διότι κάνουμε το έλεγχο για {{...}} μετά από κάθε γράμμα.

Άλλες μικρές αλλαγές επεξεργασία

Προκείμενου να έχουμε φόρμα για την εισαγωγή μεταφράσεων, τις νοικοκυρεύουμε λίγο. Αντί για

* {{βλ}}  ή 
: {{βλ}}  ή 
{{βλ}}

όταν στέλνουμε τον αναγνώστη σε άλλη σελίδα για τις μεταφράσεις, θα έχουμε ένα από τα τρία. Αν έχει κανείς διαφορετική προτίμηση από την παρακάτω επιλογή, μπορούμε να προσθέσουμε μία γραμμή στο μποτ για το "νέο σχέδιο". Εντωμεταξύ...

    'mtf-blep': {
        'regex' : True,
        'msg': {
           'el':u'μορφ βλ στις μεταφράσεις',
        },
        'replacements': [
        (u'\{\{-μτφ-\}\}\r\n: \{\{βλ\}\}', u'{{-μτφ-}}\r\n{{βλ}}'),
        (u'\{\{-μτφ-\}\}\r\n\* \{\{βλ\}\}', u'{{-μτφ-}}\r\n{{βλ}}'),
              ],
    },

Περίπου 800 λέξεις...

Από αυτές, ίσως 300 είχαν το {βλ}. Άλλες 500 έχουν άλλα "προβλήματα":

Έγιναν: επεξεργασία

λαμνοκόπος αντισφαίριση χαρακτηριστικό γλεύκος κοινοβουλευτικός καρμανιόλα βάσις γαλιφιά γαλίφικος γαλίφης άψογος ξαπλωσιά βαυκαλώ ευλογημένος απόκρυψη νίφτω βαπτίζω εξάρτηση ντεφετισμός ντεφετιστής ντοτόρος ξάγναντα ύδωρ ξίπασμα χτικιό χτένι θαμώνας ξωμάχος πολύτιμος δένδρον κενός γίδα βρόμικος τέσσερις εχθές αλεξι- πυλωρικός τερεβινθέλαιο τζιν περιτόναιο τερέβινθος τερεβινθίνη εύπεπτος επωδός κατραπακιά καταπίστευση παραγωγικότητα πυλωρός τεχνοκράτης δοκησισοφία σκρόφα κάμερα σφαλιάρα μπριζόλα μπάζα αράδα φέτα μόρφημα δαιμονοπαρμένος μεμονωμένος παρατρεχάμενος συνεπτυγμένος μορφωμένος χάμπουργκερ χρηματοκιβώτιο χαρά παράφραση ιδροκόπι τυχερό μπαγαμποντάκος φάρος εισέρχομαι φάπα ρίζα συνεργισμός συνειρμός τυρφώδης τυφικός συνεκδοχικός δεσμεύω δέσμευση συνεκπαίδευση εμμηναγωγό γαβριάς εχτές αυτομολία γνωριμία ευωχία έδικτον ρητό κλωστήριο άβαθος αυτοχθονισμός ζύθος αλκοολική λουκούμι λιγάκι ψυχαγωγός εθνοφυλακή ημερομηνία ζερβός ψύχω ιατρός ιησουίτισσα πατάκι ενδημία καθολικός ναρκομανής νόστιμος μουνούχος καζάρμα καβάκι ψεγάδι μουρμουρίζω εντελής βάζο μουσκέτο ναπολεόνι πού μη βαβούρα εντελέχεια έκφανση νταρντάνα παρά υπέρ νούντσιος ταλαιπωρώ χύνω αγριογούρουνο βάθος παγίδα ακαμάτης καλώ κινώ λαλώ προχωρώ ουδέ ούζο νικοτίνη τουαλέτες τροφή πιστός ανθρωποφαγία αντιφλεγμονώδης τετραγωνικός αλλοδαπή Ελληνιστική Περίοδος Κασμίρ περιστερά κριός νιπτήρας ασφαλιστής αγελαδινός ζωολογικός κήπος σοβατζής ξιπασμένος ξιπασιά κοινή κρατικός αποβίβαση κάλφας ατζαμής άθυρμα ελαύνω οφθαλμός αίγα ορνιθολογία οστεοδυνία οστεαλγία δασύπους οργανικός Αμαζόνιος Λίγηρας Μισσισσιπής Ροδανός Τάγος Σηκουάνας επιρρηματική έκφραση câblage ιακωβινισμός ιακωβίνος δομινικανός σύμμειγμα ολοκληρώνομαι επιθετική έκφραση μαυρογιαλούρος ΔΤΑΛ IBAN Ριζοκάρπασο προσκυνητάρι απίδι αποδείχνω αποθαρρυντικός επί τούτω κατά κόρον στρατώνα συγκέντρωση απλούστευση σουλτανίνα συγκοπή αρθρίτιδα αποφοίτηση προοδευτικά ποριά παρεμπιπτόντως τοις μετρητοίς επί πιστώσει λειώνω βολιδοσκοπώ λαμνοκόπι κλεψιά λεξικολογία φαταλισμός χαστουκιά οθνείος akuŝantino alkaligi akuŝantino dégroupage αμαρτάνω χτες κτίριο αλιεύς ζώα κέντρο κεράσι κισσός μετά μονή σαλάτα σκυλί σπόνδυλος ύπαρξη βαμβάκι ψηλός Ολλανδία αγανάκτηση Δευτέρα μαθηματική οικονομική πληθωρισμός Χρήστης:Pumpie/test Σαπφώ Σάμος φωνητικό αλφάβητο Αχιλλέας Δημόκριτος υπνική άπνοια Ιόνια νησιά Μιλτιάδης Ιπποκράτης Πλούταρχος πραγματικότητα Πηλέας Ετρούσκοι Θέτις αριθμώ εποχή του χαλκού Φράιμπουργκ πόλις-κράτος μετωνικός κύκλος προμνησία μακροοικονομία προσκοπισμός Κνωσός τηλεομοιοτυπία αποστασία ορθοδοντική Ιξίων μεσολιθική χρηματοοικονομικά Λαιστρυγόνες επιχειρηματικό σχέδιο μοριακή γενετική αλγόριθμος Ίκαρος Ιάμβλιχος Όλυμπος ατμόσφαιρα ζιζάνια Παραδείσιον Πτηνόν Σμίλη Λεοντίσκος λεβιές Χρήστης:Lou/τραπέζι δυφιοαπεικόνιση αλμπίνα Διασκορπισμένα νησιά στον Ινδικό Ωκεανό Ευρώπα Νήσος Τρομελίν Νήσος Κροζέ Νήσοι Νήσος Άμστερνταμ Νήσος Άγιος Παύλος Εβραϊστής ΓΔ καρακάξα μιτοξανδρόνη ήρως φωνηεντισμός Δράμα διπλό τυφλό τεστ -ίτις μαλαγιάλαμ βαριεστημάρα παίρνω τοις μετρητοίς τύπος και υπογραμμός τυφλοίς όμμασι αριβίστας σταυραδερφός συ αριστερισμός ανασαίνω αναρριχώμαι ανατινάσσω μεταξύ σφύρας και άκμονος στο πι και φι στο άψε σβήσε εν ευθέτω χρόνω μπάτσος μπάχαλο μπουγιουρντί σινί μπούμερανγκ μπουρτζόβλαχος μπουρζουαζία μπατζανάκαινα παρθένα παρασημοφόρηση μπερντάκι παττίχα κρήνη μείον κουμαρτζής σεζλόνγκ κοντανασαίνω κυκλαδικός κρηναίος κουμάρι κουβέλι κουμάσι σάρακας παραμαγνητισμός κινηματογραφικός μάμμη μάστιξ βιετναμέζικα έρις μάρκο ΝΑΤΟ αστεροσκοπείο αθυρματάκι σταφιδόψωμο αποχαιρετισμός τσολιάς αλίσκομαι έσο αιγοβοσκός παιγνίδι σαλέ αδιαφανώς ομού απόκτημα όποιος καεί με το χυλό φυσά και το γιαούρτι δωματιάκι Έχιδνα γδυμένος αποσυμπίεση διακρίσιμος αδωνιστής ντεμακιγιάζ αποκέντρωση Λαϊκή Δημοκρατία του Κονγκό Δημοκρατία του Κονγκό Κεντροαφρικανική Δημοκρατία Γουαδελούπη Ρεϋνιόν Αδελία Γη Οργανισμός Ηνωμένων Εθνών Καμερούν Τζιμπουτί Δυτική Σαχάρα Μάλι Άγιος Βαρθολομαίος Κεργκελέν Μαγιότ Σαιν Πιερ και Μικελόν Ουάλις και Φουτούνα Χουάν ντε Νόβα Νήσος Ένδοξοι Νήσοι Γουινέα Μπισσάου Κομόρες Νήσοι Αγίου Πέτρου και Μιχαήλ καισαρική τομή kantoteksto υπουργικό συμβούλιο αβγουλιέρα δυφιονιάδα δυφιόρρευμα Κεντρική Αμερική Νότια Αμερική Βόρεια Αμερική ΔΟΕ αδέλφι συνέντευξη τύπου Μικρά Ασία Μεσοποταμία Μικρασία Βοσνία Άπω Ανατολή Ηνωμένα Έθνη Νέα Υόρκη Παναθηναϊκός Γιαχβιστής Ιεχωβιστής Γιαχβέ Χρήστης:Pvasiliadis/Ιεχωβιστής temp ειδήμονας πάλη των τάξεων Βοσνία-Ερζεγοβίνη Μπουρκίνα Φάσο κρουασάν δε μασάω τα λόγια μου αλεξ- Δούναβης Γαρουνάς Χρήστης:ArielGlenn/Αμμοδοχείο βαλονικά πρεζάκι Μυριάνθη φρικιάω λοφνίς λυκηδόν λυκῆ Αλάσκα Χαβάη πεντάκις εκατομμύριο αφθώδης πυρετός Αιγυπτιώτης Χρήστης:ArielGlenn/περιέργεια Εύα φρικιώ μακρύτερος Θέρμο οτζίμπουε ηρεμιστικό φυλάσσω Μεσόγειος ορθ- αλληλ- κολλημένος μούλτιπλεξ σιέστα αραγκονικά γουόλοφ θιβετιανά οσσετικά ινούπιακ αϊμάρα σεμπουάνο τσαμόρο φίτζι ινούκτιτουτ σαμοανικά ταϊτιανά τόγκα μαλγασικά σπικάρω Λέρος πάστο καπαμπάγκαν διατροφικός εγκεφαλικό σκηνικό λιπαντικό χορτοκοπτικό ψυκτικό κυνικοί φοβιτσιάρης ζμπούτσαμ αυτοκράτωρ Τρώς κοντανάσασμα galben παραλλάσσω πεοθηλασμός αιδοιολειχία στέκι πυρηνικός ιατρός ραιτορομανικά λάμνω αίθριο εξωμήτριος κύηση ἀλέξω Άνδεις μάγια του Γιουκατάν Γιουκατάν μπικουτί προ- δια- πόσο μάλλον μονολεχτικά γνώθι σαυτόν αζεριανά Αναγέννηση εν δυνάμει επί τη βάσει με το αζημίωτο επί πληρωμή εν καιρώ δεν τρέχει μία συμβατικός γιαγκίνι ανδρείκελο ταρτούφος κάφρος ταμαχιάρης ΕΟΚ καφρίλα μπερντάχι γενοκτονία γκάιντα υποτονθορύζω εκσπρέσο ανα- μονο- τουρκο- τρι- πεντο- ανισο- πίκο- πρωτο- άμετε αμέτε μόνε είθε αλά συν- ιστογραφία μπαμπάρα ντογκόν παπιαμέντο ταγκαλόγκ καντόν βοσνιακά ουζμπέκικα γίντις αζερμπαϊτζανικά δένδρο σόνα Συζήτηση χρήστη:Alamot ξιπάζομαι ξιπασιάρης κουλουμούντρα νιχιλιστικός αλσατικά εξ απροόπτου επί τη εμφανίσει πορδή καλαμπούρι καλδέρα επανέκδοση αιξ γιουρούσι φρυκτωρία

βλ σε πίνακα και με παράμετρο στις μεταφράσεις επεξεργασία

Ο κώδικας:

    'mtf-blep2': {
        'regex' : True,
        'msg': {
           'el':u'πίνακας με βλ και παράμετρος στις μεταφράσεις',
        },
        'replacements': [
        (u'\{\{-μτφ-\}\}\r\n\{\{βλ\}\} \[\[([^]]+)\]\]\r\n', u'{{-μτφ-}}\r\n{{μτφ-αρχή}}\r\n{{βλ|\\1}}\r\n{{μτφ-τέλος}}\r\n'),
              ],
    },

Τρέχουμε το μποτ πάνω σε όλες τις λέξεις που περιέχουν {{βλ}}.