Scriptiti

Allikas: Lambda

Põhiosa 5p

Tuleb kirjutada käsurea programm, mis on juhitav käsurea parameetrite/võtmete kaudu. Ei ole interaktiivne.

Programm võimaldab vaadata tudengi kodutööde ja eksami/-te seisu vastavalt kursuse kodulehel publitseeritud andmetele.

Käsurealt peab olema võimalik määrata kas programm

  1. näitab kõikide tudengite tulemusi
  2. tudengite tulemusi, kelle matriklis sisaldub etteantud filter
  3. tudengi kirjet, mis vastab etteantud unikaalsele identifikaatorile - UID

Juhul kui kasutaja jätab valiku määramata, siis kuvatakse vaikimisi kõikide tudengite kodutööde/eksamite punktid.

Juhul kui ühtegi kirjet ei leitud, väljastab programm vastava teate.

Kasutajal peab olema võimalus lasta programmil väljastada "kasutusjuhend" - näiteks parameetriga "/h" (help), või "/?". Programm väljastab sellisel juhul võimalikud käsurea parameetrid, koos selgitustega nende kasutusest.

Google Spreadsheets API

Lähteinfo saab kätte kursuse jaoks juba kohandatud Google Spreadsheets API kaudu aadressilt: https://spreadsheets.google.com/feeds/list/0AnoMCh3_x82sdERLR3FvVDBIWXpjT1JlcENmOFdERVE/od7/public/basic

Väljastamisel peab programm iga tudengi kirje ette kuvama lähteinfos sisalduva unikaalse identifikaatori (UID) - näiteks iow8x.


Ning võimaldab UID käsurealt ka määrata. Juhul kui UID on määratud, siis lisab selle lähteinfo päringu koos kaldkriipsuga. Näiteks: /iow8x. Sellisel juhul oleks lõplik lähteinfo URL: https://spreadsheets.google.com/feeds/list/0AnoMCh3_x82sdERLR3FvVDBIWXpjT1JlcENmOFdERVE/od7/public/basic/iow8x

Lähteinfo struktuurist

Soovitav päringu vastust tavalise tekstiredaktoriga veidi uurida.

Siiski üks märkus siia juurde. <content> sees olev vastus on formaadis: <tulbanimi>: <väärtus>,

Juhul kui tulbal väärtust ei ole - siis ei ole vastuses ka tulba nimetust.

<entry>
<id>https://spreadsheets.google.com/feeds/list/0AnoMCh3_x82sdHhjaG1NZG1uOXVSZWJBblVzbDRDb2c/od7/public/basic/cztg3</id>

<updated>2011-09-12T11:57:23.076Z</updated>

<category scheme='http://schemas.google.com/spreadsheets/2006' term='http://schemas.google.com/spreadsheets/2006#list'/>

<title type='text'>050660IABB</title>

<content type='text'>yachtzee: 10, tweet: 10, sportinfo: 10, eksamiaeg: 10:00:00, hinne: 4</content>

<link rel='self' type='application/atom+xml' href='https://spreadsheets.google.com/feeds/list/0AnoMCh3_x82sdHhjaG1NZG1uOXVSZWJBblVzbDRDb2c/od7/public/basic/cztg3'/>
</entry>

Piisab kui kuvada väljundisse see, mis olemas on - juurde pole vaja midagi "tekitada". Näiteks:

yachtzee  10
tweet     10
sportinfo 10
eksamiaeg 10:00:00
hinne     4

Lisaosa 2p - puhverdamine

Programm puhverdab päringute vastused kõvakettale. Juhul kui puudub Internetiühendus, loeb vastuse puhvrist ja teatab kasutajale näiteks "Internetiühendus puudub, loen puhvrist"

Lisaosa 3p - uuendused/uudised

Programm markeerib kirje, mis on puhvriga võrreldes uuem selliselt, et see oleks kasutajale selgelt eristuv. Näiteks, võiks olla markeeritud kolme tärniga ***) :

[gffaz] Student ID = 106938IVCMM ->
        yachtzee: 10, tweet: 10, sportinfo: 10, gomoku: 10, eksamiaeg: 10:00:00, hinne: 4
***[gqnub] Student ID = 109503FAY ->
        yachtzee: 4

Google Spreadsheets API vastustele on juurdelisatud ajatempel, mida kasutades on võimalik andmede vanust arvutada!

Programm peab võimaldama käsitsi määrata puhvri vanust päevades käsurealt. Soovitav on see teha enne puhvri enda realiseerimist. Lihtsamaks ja kiiremaks arendamiseks ja programmi testimiseks. Näiteks: "java -jar minuprogramm.jar -d 10" otsiks üles muudatused, mis on toimunud viimase 10 päeva sees.

Lisamaterjale