pythonΕπεξεργασία

Πρώτα απ'όλα, πρέπει να εγκαταστήσουμε τη « γλώσσα » python: όλα τα scripts της pywikipedia είναι γραμμένα σ'αυτή τη γλώσσα.

Πηγαίνουμε στο http://www.python.org: εκεί, εκτός από το python, θα βρούμε και μια πληθώρα από πληροφορίες γι'αυτή τη γλώσσα. Κάνουμε κλικ στο DOWNLOAD και διαλέγουμε το νεότερο python: αυτή τη στιγμή είναι το 3.0.1. Εφόσον έχουμε Windows, διαλέγουμε το Windows (...) MSI Installer (3.0.1).

Το εγκαθιστούμε όπως λέει (εγώ το έβαλα στο c:\python, για ευκολία) και... είμαστε έτοιμοι!

pywikipediaΕπεξεργασία

Το δεύτερο βήμα είναι η εγκατάσταση της pywikipedia, δηλαδή όλων των script (bot = script, με κάποιες δικές μας αλλαγές).

Ο παρακάτω σύνδεσμος μας επιτρέπει να διαλέξουμε ποια μορφή θέλουμε: http://toolserver.org/~valhallasw/pywiki/

Το κατεβάζουμε, το αποσυμπιέζουμε κάπου και... εγώ προσωπικά το βάζω σε ένα φάκελο (που αποκαλώ wiki) μέσα στο φάκελο python (με copy-paste).

user-config.pyΕπεξεργασία

Πρώτ' απ' όλα, χρειάζεται να δώσουμε μερικές πληροφορίες. Τις γράφουμε στο αρχείο « user-config.py ».

mylang = 'el'
family = 'wiktionary'
usernames['wiktionary']['el'] = 'Lou bot'
console_encoding = 'utf-8'

Στη θέση του 'Lou bot' πρέπει, φυσικά, να βάλουμε το όνομα του δικού μας μποτ...

Προσοχή, όμως: εάν χρησιμοποιούμε το notepad των Windows, πρέπει να αποθηκεύσουμε το κείμενο:

1. διαλέγοντας all files (κι όχι το προτεινόμενο .txt: μόνο έτσι μπορούμε να καλέσουμε το αρχείο μας fixes.py (και όχι fixes.py.txt...)
2. διαλέγοντας το utf-8 (κι όχι το προτεινόμενο ANSI). Εάν δεν το κάνουμε, ναι μεν δεν θα δούμε τη διαφορά, όμως το replace.py δεν θα δεχτεί ποτέ να κάνει τις αλλαγές του, βγάζοντας διάφορα μηνύματα για λάθη...

login.pyΕπεξεργασία

Πρώτα απ'όλα, ό,τι ακολουθεί ισχύει για τους χρήστες Windows.
Οι εντολές για τα bot δίνονται σε ένα παράθυρο DOS, που ανοίγουμε πληκτρολογώντας cmd στο κουτάκι run.

Το login.py είναι το πρώτο script που τρέχουμε. Μας ανοίγει την πόρτα στο ΒΛ: αυτή η πόρτα δεν θα κλείσει, ακόμα και αν κλείσουμε το παράθυρο (σταματώντας έτσι το bot). Μόνο αν επανεκκινήσουμε τον Η/Υ, θα πρέπει να ξανατρέξουμε το login.py.

Δεν χρειάζεται να πούμε τίποτα το ιδιαίτερο για αυτό το script: αφού πληκτρολογήσουμε:

login.py

μας ζητάει το συνθηματικό μας (password). Του το δίνουμε και... έτοιμοι για να δουλέψουμε!

Στο linux, πληκτρολογούμε:

python login.py

(Για περισσότερες πληροφορίες, δείτε εδώ.)

replace.pyΕπεξεργασία

Το replace.py χρησιμοποιείται για να κάνει μαζικές αλλαγές (πχ. διορθώσεις) στο ΒΛ.

Αρχίζει τη δουλειά του « διαβάζοντας » το αρχείο fixes.py που βρίσκεται στον ίδιο φάκελο με το ίδιο το script. Αυτό το αρχείο το ετοιμάζουμε εμείς, βάζοντας μέσα όλες τις αλλαγές που θέλουμε να κάνουμε. Ακολουθεί ένα παράδειγμα ενός τέτοιου αρχείου:

# -*- coding: utf-8  -*-
import codecs
import sys, re


fixes = {
    'katigories': {
        'regex': False,
        'msg': {
               'el':u'Μετονομασία κατηγορίας',
              },
        'replacements': [
            (u'[[Κατηγορία:Ανθρώπινο σώμα στα γαλλικά]]', u'[[Κατηγορία:Ανθρώπινο σώμα (γαλλικά)]]'),
            (u'[[Κατηγορία:Αστερισμοί στα γαλλικά]]', u'[[Κατηγορία:Αστερισμοί (γαλλικά)''),
        ]
    }, 
}

Μερικές εξηγήσειςΕπεξεργασία

Όταν ετοιμάζω ένα αρχείο fixes.py, αντιγράφω αυτό το μοντέλο, αλλάζοντας μόνο μερικά πράγματα.

  • Το 'katigories' είναι το γενικό όνομα που θα γράψω στην εντολή.
Υπάρχει τέτοιο όνομα διότι μπορεί το αρχείο να περιέχει πολλές τέτοιες κατηγορίες
(διευκολύνεται έτσι η ανάγνωσή του).
  • Το 'el' σημαίνει βέβαια ότι... μιλάμε ελληνικά!
  • Ακολουθεί ο τίτλος της εργασίας που κάνουμε. Αυτός θα εμφανιστεί στις « Πρόσφατες αλλαγές » (εδώ: Μετονομασία κατηγορίας)
  • Κάτω από το 'replacements', βλέπουμε τις αλλαγές.
Αρχίζουν με u': αυτό λέει στο bot ότι ό,τι ακολουθεί είναι γραμμένο σε Unicode.
Μετά βλέπουμε αυτά που θέλουμε να αλλάξουμε: πρώτα, το παλιό κείμενο, μετά, το νέο.

ΕντολήΕπεξεργασία

Η εντολή που γράφω συνήθως είναι:

replace.py -fix:katigories -xml:el-dump

ΕξηγήσειςΕπεξεργασία

  • Πρώτα γράφουμε το όνομα του script : replace.py
  • Του δίνουμε την πρώτη του εντολή: -fix:katigories
Αυτό λέει στο bot να διαβάσει το αρχείο fixes.py, να βρει την κατηγορία που θέλουμε (εδώ: katigories), και να κάνει ό,τι γράφεται κάτω από αυτόν τον τίτλο.
  • Ακολουθεί το : xml:el-dump
Αυτό δίνει την εντολή στο replace.py να διαβάσει το dump (= το συμπιεσμένο σύνολο των λέξεων του ΒΛ).
Το el-dump είναι το όνομα που του έδωσα εγώ, για ευκολία. Το κανονικό είναι κάτι σαν elwiktionary.20070819-pages-articles.xml.bz2!
  • Πατάμε το "enter" ! Το replace.py διαβάζει ό,τι πρέπει να κάνει, περνάει μερικά λεπτά να διαβάζει το xml, βρίσκει τις λέξεις που χρειάζονται αλλαγή και...
  • ...προτείνει την αλλαγή της λέξης! Απαντούμε « ναι », περιμένει μερικά δευτερόλεπτα, κάνει την αλλαγή και... προτείνει κι άλλη λέξη! Εδώ σταματάμε, ανοίγουμε τις « Πρόσφατες αλλαγές », ζητούμε την « εμφάνιση των bots », και ελέγχουμε αν η αλλαγή είναι σύμφωνη με αυτό που ζητήσαμε.
(Για ευκολία, ανοίγουμε την επιτήρηση IRC, όπου αρκεί να κάνουμε κλικ στη λέξη που μόλις τροποποιήθηκε, για να την δούμε μέσα στον browser μας.)
Ξαναρχίζουμε με μερικές ακόμα λέξεις και...
  • ... μετά, αφού βεβαιωθούμε ότι όλα πάνε καλά, πληκτρολογούμε a (= always).
Προσοχή, κίνδυνος: το always λέει στο bot να κάνει όλες τις αλλαγές χωρίς να ζητάει άδεια για κάθε λέξη... εξού ο κίνδυνος!)

ΠαρατηρήσειςΕπεξεργασία

  • Για τη μετονομασία κατηγοριών, θα μπορούσαμε να χρησιμοποιήσουμε άλλο bot...
  • Να μην ξεχάσετε να αποθηκεύσετε το fixes.py σε utf-8!
  • Για περισσότερες πληροφορίες, δείτε εδώ.

pagefromfile.pyΕπεξεργασία

Το pagefromfile.py χρησιμοποιείται για τη δημιουργία πολλαπλών σελίδων με βάση ένα αρχείο που τις περιέχει.
Μπορεί να χρησιμοποιηθεί, για παράδειγμα, για την εισαγωγή κλιτών μορφών.

Ας δούμε πρώτα με τι μοιάζει ένα αρχείο σελίδων:

0000
333jour333
=={{-fr-}}==

==={{ουσιαστικό|fr}}===
{{fr-κλίσ-rég}}
{{τ|fr|{{PAGENAME}}}} {{α}}
# [[μέρα]]
1111

0000
333nuit333
=={{-fr-}}==

==={{ουσιαστικό|fr}}===
{{fr-κλίσ-rég}}
{{τ|fr|{{PAGENAME}}}} {{θ}}
* [[νύχτα]]
1111

Ορίστε η εντολή που συνηθίζω να γράφω:

pagefromfile.py -start:0000 -end:1111 -titlestart:333 -titleend:333 -file:arxeio.txt -log -notitle
  • Το -start: λέει στο bot πού αρχίζει κάθε σελίδα που θέλουμε να βάλουμε (εδώ: 0000).
  • Το -end: κάνει το ίδιο με το τέλος της σελίδας (εδώ: 1111).
  • Το -titlestart και -titleend του λένε πού αρχίζει και πού τελειώνει ο τίτλος της σελίδας που θέλουμε να δημιουργήσουμε (εδώ: αρχίζει με « 333 » και τελειώνει επίσης με « 333 (για κάποιον άγνωστο λόγο, δεν δέχεται το προτεινόμενο από το πρόγραμμα " ''' " - τουλάχιστον, εγώ δεν το κατάφερα να το κάνω να δουλέψει!»).
  • Το -file: παρουσιάζει το όνομα του αρχείου που περιέχει τις σελίδες που βάζουμε (εδώ: arxeio.txt).
  • Το -log δεν είναι υποχρεωτικό: μας επιτρέπει να δούμε ποιες λέξεις δημιουργήθηκαν<
  • Τέλος, το -notitle λέει στο bot να μην βάλει τον τίτλο μέσα στη σελίδα που δημιουργεί.
(Εξήγηση: ο « τίτλος » δεν χρειάζεται να βρίσκεται στην αρχή του κειμένου που εισάγουμε. Μπορούμε να τον βάλουμε στο τέλος! Εκεί που είναι εξαιρετικά χρήσιμο είναι η δημιουργία ανακατευθύνσεων.)

ΠαρατηρήσειςΕπεξεργασία

  • Εάν η σελίδα υπάρχει ήδη, το bot την παραλείπει (εκτός κι αν βάλουμε την παράμετρο -force - αποφεύγεται!).
  • Για τη δημιουργία του αρχείου σελίδων, υπάρχουν διάφορες μέθοδοι. Μπορείτε πχ. να συμβουλευτείτε τη σελίδα του Geraki (διαχειριστή στην Βικιπαίδεια).
  • Καλά θα είναι να αλλάξετε ελαφρά το αρχείο pagefromfile.py. Το επεξεργάζεστε με ένα απλό πρόγραμμα (πχ. το notepad των windows) και, στα μηνύματα (msg), προσθέτετε τη γραμμή
    'el': u'Αυτόματη εισαγωγή άρθρων'
    (ή ιταλικών ουσιαστικών, ή αγγλικών ρημάτων, ή οτιδήποτε άλλο).
  • Για εισαγωγή ανακατευθύνσεων, μην ξεχνάτε:
  • να βάλετε τον ανάλογο τίτλο στο pagefromfile.py (πχ. 'el' : 'Αυτόματη εισαγωγή ανακατευθύνσεων eo')
  • να γράψετε το αρχείο λέξεων σαν κι αυτό:
1111
'''visxi'''#ΑΝΑΚΑΤΕΥΘΥΝΣΗ [[viŝi]]
9999
δηλαδή βάζοντας τον τίτλο (που θα αφαιρέσετε στην εντολή μέσω του -notitle) στην ίδια γραμμή με το #ΑΝΑΚΑΤΕΥΘΥΝΣΗ)
(μη με ρωτάτε γιατί, δεν ξέρω, με μένα αρνήθηκε να δουλέψει διαφορετικά!)
  • Για περισσότερες πληροφορίες, δείτε εδώ (στα αγγλικά).

tranInter.pyΕπεξεργασία

Αυτό το bot έχει φτιαχτεί από τον fr:Utilisateur:Kipmaster και βελτιωθεί από το fr:Utilisateur:Ftiercel. Θα χρησιμοποιηθεί στο ελληνικό ΒΛ μόλις αποφασιστεί.

Η δυσκολία προέρχεται απ'το ότι είναι γραμμένο για σύστημα linux, εκτός και αν κάποιος προγραμματιστής το μεταφράσει στα windows...

Εδώ θα βρείτε το tradInter doubleTracker.py, που προσέχει (και αφαιρεί) τις διπλές μεταφράσεις.

ΧρήσηΕπεξεργασία

  • Εγκαθιστούμε (αν δεν έχει ήδη γίνει) τη γλώσσα perl: http://www.perl.org'. Ο απευθείας σύνδεσμος είναι: http://www.activestate.com/store/activeperl/download/. Γράφουμε τα στοιχεία μας (δεν είναι υποχρεωτικό) και, μετά, κλικ στο "Continue". Διαλέγουμε αυτό που χρειαζόμαστε (Windows x86 msi, για να το δοκιμάσουμε στα windows - αλλιώς, το package που ταιριάζει στο linux μας). Το εγκαθιστούμε.
  • Τρέχουμε το script getall.pl. Αυτό δημιουργεί ένα αρχείο που περιέχει όλες τις λέξεις, σε όλες τις γλώσσες.
  • Μέσα στο tranInter.py, αλλάζουμε τη γραμμή
    ftout = open ('./2007-7-25.txt', 'r')
    και βάζουμε το όνομα του αρχείου που μόλις αποκτήσαμε (δες την προηγούμενη γραμμή) από το getall.pl.
  • Μετά, γράφουμε την εντολή: tranInter.py και...

catauto.pyΕπεξεργασία

Αυτό είναι μια προσπάθεια αυτόματης κατηγοριοποίησης των λέξεων. Έχει εφαρμοστεί στα ελληνικά από το γαλλικό.

Το script βρίσκεται εδώ.