Ejemplo n.º 1
0
def pripremi_ispis(ispis, hasek_izlaz, brojac, broj_gresaka, unos):

    pogreske = len(hasek_izlaz)
    ispis.append("\t<results errors=\"" + str(pogreske) + "\">")
    for redak in hasek_izlaz:
        #zamijeni cudne znakove hrvatskim slovima
        import hrv_slova
        redak = hrv_slova.popravi(redak)

        m = re.search(r"^-([xlmskgcGP][xlmskgcGP])- ([^\s]*) (\d*)", redak)
        if (m):
            if ((m.group(1) != "GG") and (m.group(1) != "PP")):
                brojac["-" + m.group(1) + "-"] += int(m.group(3))
                broj_gresaka += int(m.group(3))

            ispis.append("\t\t<error occurrences=\"" + m.group(3) +
                         "\" severity=\"" + m.group(1) + "\">")

            sumnjivo = m.group(2)
            if ((m.group(1) == "GG") or (m.group(1) == "PP")):
                sumnjivo = re.sub("#", " ", sumnjivo)
            lista_pozicija = [
                p.start() for p in re.finditer(
                    re.compile(r"\b%s\b" % sumnjivo, re.UNICODE), unos)
            ]
            for pozicija in lista_pozicija:
                ispis.append("\t\t\t<position>" + str(pozicija) +
                             "</position>")

            duljina_sumnjivo = len(sumnjivo)
            ispis.append("\t\t\t<length>" + str(duljina_sumnjivo) +
                         "</length>")
            ispis.append("\t\t\t<suspicious>" + sumnjivo + "</suspicious>")

            m = re.search(r"=> (.*)", redak)
            if (m):
                ponuda = m.group(1)
                prijedlozi = []
                prijedlozi = re.split(r"\?\s?", ponuda)
                if ((re.search("^\!(.*?)\!?\?", ponuda))
                        or (re.search("(.*obliku.*)\?", ponuda))):
                    tip = m.group(1).lower()
                    ispis.append("\t\t\t\t<possible type=\"" + tip + "\"/>")
                else:
                    ispis.append("\t\t\t<suggestions>")
                    for prijedlog in prijedlozi:
                        if (
                                prijedlog
                        ):  #to zato jer je zadnji element liste prazan zbog splitanja
                            ispis.append("\t\t\t\t<word>" + prijedlog +
                                         "</word>")
                    ispis.append("\t\t\t</suggestions>")
            ispis.append("\t\t</error>")
    ispis.append("\t</results>")

    return (ispis, brojac, broj_gresaka)
Ejemplo n.º 2
0
def pripremi_ispis(ispis, hasek_izlaz, brojac, broj_gresaka, unos):

    pogreske = len(hasek_izlaz)
    ispis.append("\t<results errors=\"" + str(pogreske) + "\">")
    for redak in hasek_izlaz:
        #zamijeni cudne znakove hrvatskim slovima
        import hrv_slova
        redak = hrv_slova.popravi(redak)

        m = re.search(r"^-([xlmskgcGP][xlmskgcGP])- ([^\s]*) (\d*)", redak)
        if (m):
            if ((m.group(1) != "GG") and (m.group(1) != "PP")):
                brojac["-" + m.group(1) + "-"] += int(m.group(3))
                broj_gresaka += int(m.group(3))

            ispis.append("\t\t<error occurrences=\"" + m.group(3) + "\" severity=\"" + m.group(1)+ "\">")

            sumnjivo = m.group(2)
            if ((m.group(1) == "GG") or (m.group(1) == "PP")):
                sumnjivo = re.sub("#"," ",sumnjivo)
            lista_pozicija = [p.start() for p in re.finditer(re.compile(r"\b%s\b" % sumnjivo, re.UNICODE) , unos)]
            for pozicija in lista_pozicija:
                ispis.append("\t\t\t<position>" + str(pozicija) + "</position>")

            duljina_sumnjivo = len(sumnjivo)
            ispis.append("\t\t\t<length>" + str(duljina_sumnjivo) + "</length>")
            ispis.append("\t\t\t<suspicious>" + sumnjivo + "</suspicious>")

            m = re.search(r"=> (.*)", redak)
            if (m):
                ponuda = m.group(1)
                prijedlozi = []
                prijedlozi = re.split(r"\?\s?", ponuda)
                if ((re.search("^\!(.*?)\!?\?", ponuda)) or (re.search("(.*obliku.*)\?", ponuda))):
                    tip = m.group(1).lower()
                    ispis.append("\t\t\t\t<possible type=\"" + tip + "\"/>")
                else:
                    ispis.append("\t\t\t<suggestions>")
                    for prijedlog in prijedlozi:
                        if(prijedlog):          #to zato jer je zadnji element liste prazan zbog splitanja
                            ispis.append("\t\t\t\t<word>" + prijedlog + "</word>")
                    ispis.append("\t\t\t</suggestions>")
            ispis.append("\t\t</error>")
    ispis.append("\t</results>")

    return(ispis, brojac, broj_gresaka)
Ejemplo n.º 3
0
    (ispis, brojac, broj_gresaka) = obrada_xml.pripremi_ispis(ispis, hasek_izlaz, brojac, broj_gresaka, unos)
else:       #nema gresaka
    ispis.append("\t<results errors=\"0\">")
    ispis.append("\t</results>")

vrijeme_kraja = datetime.now()
vremenski_interval = vrijeme_kraja-vrijeme_pocetka
sekunde = str(vremenski_interval.seconds)
mikrosekunde = str(vremenski_interval.microseconds).zfill(6)

ispis.append("\t<time>" + sekunde + "." + mikrosekunde + "</time>")
original_hrvatski = " ".join(hasek_izlaz)

#popravi hrvatska slova
import hrv_slova
original_hrvatski = hrv_slova.popravi(original_hrvatski)

ispis.append("\t<orig>\n" + original_hrvatski + "\t</orig>")
ispis.append("</hacheck>")

for i in ispis:
    print (i.encode('utf-8'))

#izrada statistike
if (ip != "161.53.19.189"):
    trenutno_vrijeme = time.time()
    datum = time.strftime('%a %b %d %H:%M:%S %Z %Y', time.localtime(trenutno_vrijeme + 19 * 60 + 38))       #kad se pokrene naredba date iz ljuske dobije se pomaknuto vrijeme...(19 min i 38 sec)
    zaglavlje_izvjesca = "\nFrom: " + ip + "  Version: 3.0 beta\nUserID: " + korisnikID + "\n" + datum + "\n\n"

    pomocna=(izvjesce, zaglavlje_izvjesca, izvjesce_datoteka, statistika_datoteka, brojac, broj_gresaka, privremena_datoteka)
Ejemplo n.º 4
0
def pripremi_ispis(ispis, hasek_izlaz, brojac, broj_gresaka, unos):

    pogreske = len(hasek_izlaz)
    ispis.append("\t\t\"errors\": " + str(pogreske) + ",")
    ispis.append("\t\t\"error\": [")
    izvjestaj = {}
    izvjestaj['numberOfErrors'] = pogreske
    niz_pogresaka = []
    for redak in hasek_izlaz:
        #zamijeni se cudne znakove hrvatskim slovima
        import hrv_slova
        redak = hrv_slova.popravi(redak)

        pomocni_rjecnik = {}
        m = re.search(r"^-([xlmskgcGP][xlmskgcGP])- ([^\s]*) (\d*)", redak)        #ja bi tu del plus umjesto *
        if (m):
            if (m.group(1) != "GG"):
                brojac["-" + m.group(1) + "-"] += int(m.group(3))
                broj_gresaka += int(m.group(3))

            ispis.append("\t\t\t{")
            ispis.append("\t\t\t\t\"occurrences\": " + m.group(3) + ",")
            ispis.append("\t\t\t\t\"severity\": \"" + m.group(1) + "\",")
            pomocni_rjecnik['severity'] = m.group(1)
            pomocni_rjecnik['occurrences'] = m.group(3)

            sumnjivo = m.group(2)
            if (m.group(1) == "GG"):
                sumnjivo = re.sub("#"," ",sumnjivo)
            pomocni_rjecnik['suspicious'] = sumnjivo

            ispis.append("\t\t\t\t\"position\": [")
            lista_pozicija = [p.start() for p in re.finditer(re.compile(r"\b%s\b" % sumnjivo, re.UNICODE) , unos)]
            for pozicija in lista_pozicija:
                ispis.append("\t\t\t\t\t" + str(pozicija) + ",")

            #mora se izbrisati zarez
            pom = ispis.pop()
            pom = pom.rstrip(",")
            ispis.append(pom)
            ispis.append("\t\t\t\t],")

            duljina_sumnjivo = len(sumnjivo)
            ispis.append("\t\t\t\t\"length\": " + str(duljina_sumnjivo) + ",")
            ispis.append("\t\t\t\t\"suspicious\": \"" + sumnjivo + "\"")

            m = re.search(r"=> (.*)", redak)
            if (m):
                #mora se dodati zarez
                pom = ispis.pop()
                ispis.append(pom + ",")

                ponuda = m.group(1)
                prijedlozi = []
                prijedlozi = re.split(r"\?\s?", ponuda)

                pom_prijedlozi = []
                ispis.append("\t\t\t\t\"suggestions\": [")
                for prijedlog in prijedlozi:
                    if(prijedlog):          #to zato jer je zadnji element liste prazan zbog splitanja
                        ispis.append("\t\t\t\t\t\"" + prijedlog + "\",")
                        pom_prijedlozi.append(prijedlog)

                #mora se izbrisati zarez
                pom = ispis.pop()
                pom = pom.rstrip(",")
                ispis.append(pom)

                ispis.append("\t\t\t\t]")
            ispis.append("\t\t\t},")

            pomocni_rjecnik['suggestions'] = pom_prijedlozi
            niz_pogresaka.append(pomocni_rjecnik)

    #mora se izbrisati zarez
    pom = ispis.pop()
    pom = pom.rstrip(",")
    ispis.append(pom)

    ispis.append("\t\t]")

    izvjestaj['errors'] = niz_pogresaka


    return(ispis, brojac, broj_gresaka, izvjestaj)
Ejemplo n.º 5
0
def generiraj(pomocna):

    (
        izvjesce,
        zaglavlje_izvjesca,
        izvjesce_datoteka,
        statistika_datoteka,
        brojac,
        broj_gresaka,
        privremena_datoteka,
    ) = pomocna

    wc = commands.getoutput("wc " + privremena_datoteka)
    wc = re.sub(privremena_datoteka, "", wc)
    wc = wc.rstrip()

    broj_rijeci = commands.getoutput(
        "cat "
        + privremena_datoteka
        + " | sed -f /users/hacheck/checker/break.sed | /usr/bin/sort | /usr/bin/uniq -c | /usr/bin/awk 'NF == 2 {print}' | /usr/bin/awk '{a=a+$1} END {print a}'"
    )
    if not (broj_rijeci):
        broj_rijeci = 0

    # generira se datoteka izvjesce

    with codecs.open(izvjesce_datoteka, "a", "utf-8") as dat:
        dat.write(zaglavlje_izvjesca)

        # zapisi izvjesce u datoteku ali popravi da budu hrvatska slova
        import hrv_slova

        if izvjesce[0]:
            for redak in izvjesce:
                redak = hrv_slova.popravi(redak)
                dat.write(redak + "\n")
        else:
            dat.write(u"Nije bilo pogrešaka\n")
        dat.close()

    # generira se datoteka statistika
    dat = open(statistika_datoteka, "a")
    dat.write(zaglavlje_izvjesca)
    dat.write(wc + "\n")
    dat.write("-" * 81)
    dat.write(
        "\n%9s%9s%9s%9s%9s%9s%9s%9s%9s\n" % ("-kk-", "-gg-", "-cc-", "-xx-", "-ll-", "-mm-", "-ss-", "total", "words")
    )
    dat.write(
        "%9s%9s%9s%9s%9s%9s%9s%9s%9s\n"
        % (
            brojac["-kk-"],
            brojac["-gg-"],
            brojac["-cc-"],
            brojac["-xx-"],
            brojac["-ll-"],
            brojac["-mm-"],
            brojac["-ss-"],
            broj_gresaka,
            broj_rijeci,
        )
    )
    dat.write("-" * 81)
    dat.close()