Lage et API hvor man kan sende inn en EPUB, og få ut en rapport. Antageligvis bør denne koden være en egen funksjon sånn at man kan kjøre en bok om gangen:
|
UniqueWord_with_language_tag_list.Clear(); |
|
BookLanguagesTag.Clear(); |
|
BookTotalWords = 0; |
|
|
|
i = i + 1; |
|
bookFolderName = Path.GetFileNameWithoutExtension(filePath); |
|
|
|
string BookReportFolder = Program.ReportOutputFolderPath + "\\" + bookFolderName; |
|
string BookReportFile = BookReportFolder + "\\" + bookFolderName + ".txt"; |
|
|
|
FinalReportlist.Add("\n************** Bok nummer = (" + bookFolderName + ")*************"); |
|
Console.WriteLine("\n"+i + " (" + bookFolderName + ") start"); |
|
|
|
|
|
ProcessEpub(filePath); |
|
CheckTag(filePath); // code for structure check |
|
CheckCharacter(filePath); // code for character check |
|
ProcessHtmlFiles(filePath); //code for spell check |
|
|
|
if (!Directory.Exists(BookReportFolder)) |
|
{ |
|
DirectoryInfo di = Directory.CreateDirectory(BookReportFolder); |
|
} |
|
|
|
// writing report for each book |
|
TextWriter TxtFile_report = new StreamWriter(BookReportFile, false, Encoding.UTF8); |
|
|
|
if (bookHas_errors == true) |
|
{ |
|
TxtFile_report.WriteLine("********book has xml errors and report is not complete******"); |
|
} |
|
|
|
foreach (string allreport in FinalReportlist) |
|
{ |
|
//Console.WriteLine(allreport); |
|
TxtFile_report.WriteLine(allreport); |
|
} |
|
TxtFile_report.Close(); |
|
FinalReportlist.Clear(); |
|
Console.WriteLine("finished"); |
Vi hadde et møte hvor vi diskuterte krav (se #2).
Generelle krav:
- sjekke de samme tingene som den vi har nå
- sjekker at
lang (og xml:lang?) har riktig språkkode
- sjekker at strukturen er riktig (hva ligger i dette egentlig?)
- sjekker om det er brukt noen uvanlige unicode-tegn
- lager oversikt over hvilke attributter og elementer som er brukt
- har stavekontroll (både norsk og engelsk?) med en ordliste hvor man kan legge til ord etterhvert
- støtte en zippet EPUB (altså en fil) som input (som i dag)
- støtte en HTML-fil som input
- støtte en unzippet EPUB (altså en mappe) som input
- når en EPUB (zippet eller unzippet) er input:
- sjekk filen
META-INF/container.xml, den peker på OPF-fila
- gå gjennom
<manifest>-elementet i OPF-fila for å finne alle HTML-filer
- kunne kjøres fra kommandolinja som i dag (se beskrivelse under)
- kunne kjøres som en tjeneste med API i Docker (se beskrivelse under)
Krav for kommandolinje:
- Bør være en EXE-fil som ikke har tilhørende DLL-filer og ikke trenger noen installasjon (en "portabel EXE-fil")
- Dra-og-slipp en EPUB (zippet eller unzippet) eller en HTML-fil på EXE-fila (er det sånn det virker i dag, med dra-og-slipp?)
- Rapporten kan være en HTML-fil som legges i samme mappe som EXE-fila ligger i, og ha navnet
[input-filnavn] - logisk sjekk.html
Krav for API i Docker:
- ordbokfilene lastes ned når tjenesten starter
Endepunkt: GET /health
- returnerer HTTP 503 Service Unavailable hvis ordbok-filene ikke er lastet ned fra Github
- returnerer HTTP 200 hvis ordbok-filene er lastet ned fra Github
Endepunkt: POST /check (se beskrivelse under)
- hvis ordbøkene er mer enn en time gamle: last ned en ny versjon fra Github
Query-parametere:
path (optional): absolutt sti til EPUB (unzippet eller zippet) eller HTML-fil
Body (optional):
- en EPUB (kun zippet, ikke unzippet) eller en HTML-fil
Response:
- Hvis hverken
path eller body er definert: HTTP 400 Bad Request
- Hvis både
path eller body er definert: HTTP 400 Bad Request
- Hvis
path er definert men filen eller mappen ikke finnes: HTTP 404 Bad Request
- Ellers, HTTP 200 OK med:
- rapporten som HTML i body
- Content-Type: text/html i header
Lage et API hvor man kan sende inn en EPUB, og få ut en rapport. Antageligvis bør denne koden være en egen funksjon sånn at man kan kjøre en bok om gangen:
ValidateSpellCheckEpub/ValidateSpellCheckEpub/Check.cs
Lines 174 to 213 in 8df8838
Vi hadde et møte hvor vi diskuterte krav (se #2).
Generelle krav:
lang(ogxml:lang?) har riktig språkkodeMETA-INF/container.xml, den peker på OPF-fila<manifest>-elementet i OPF-fila for å finne alle HTML-filerKrav for kommandolinje:
[input-filnavn] - logisk sjekk.htmlKrav for API i Docker:
Endepunkt:
GET /healthEndepunkt:
POST /check(se beskrivelse under)Query-parametere:
path(optional): absolutt sti til EPUB (unzippet eller zippet) eller HTML-filBody (optional):
Response:
patheller body er definert: HTTP 400 Bad Requestpatheller body er definert: HTTP 400 Bad Requestpather definert men filen eller mappen ikke finnes: HTTP 404 Bad Request