Scriptiti

Allikas: Lambda
Redaktsioon seisuga 12. september 2011, kell 21:41 kasutajalt Anier (arutelu | kaastöö) (→Lisaosa 3p)
Mine navigeerimisribale Mine otsikasti

Põhiosa 5p

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

Programm võimaldab kahte asja:

  1. näitab tudengi kodutööde ja eksami/-te seisu vastavalt kursuse kodulehel publitseeritud andmetele
  2. kuvab kursuse teateid Google Groups -ist

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

  1. kodutöö/eksami-te punkte või
  2. kursuse teateid

Juhul kui kasutaja jätab valiku määramata, siis kuvatakse vaikimisi mõlemad.

Google Spreadsheets API

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

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


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: /efsh8. Sellisel juhul oleks lõplik lähteinfo URL: https://spreadsheets.google.com/feeds/list/0AnoMCh3_x82sdHhjaG1NZG1uOXVSZWJBblVzbDRDb2c/od7/public/basic/efsh8

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

Google Groups RSS/ATOM

Kursuse teadete RSS "feed" URL: http://groups.google.com/group/iti0011/feed/rss_v2_0_msgs.xml

Programm töötleb RSS-i vastuse ja kuvab näiteks kujul:

teisipäevane praktikum, nüüd kolmapäeval kl 8
------------------------------------
teisipäevane praktikum, nüüd kolmapäeval kl 8 

vaata tunni plaani 
ois.ttu.ee

* * * * 

ITI0011 sügisel 2011
------------------------------------
ITI0011 algab loenguga neljapäeval 1.sept, kl. 10:00 ruumis VI-229 
Esimene praktikum pärast loengut, teisipäeval 6.sept vastavalt 
tunniplaanile

Lisaosa 2p

Programm võimaldab käsurealt määrata filtri (string), mis peab sisalduma tudengi matriklis. Vastavalt filtrile kuvab tulemusena vaid tudengite tulemused, kelle matriklis filtris määratud väärtus sisaldub. Nii on võimalik esmast otsingut piirata ning välja otsida Põhiosas mainitud unikaalne identifikaator - UID, millega käsurealt tudengit täpselt määrata.

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

Lisaosa 3p

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"

Programm markeerib info, mis on puhvriga võrreldes uuem selliselt, et see oleks kasutajale selgelt eristuv. Näiteks võiks eelmine näide olla pärast neljanda kodutöö esitamist selline (uus info markeeritud kolme tärniga ***) :

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

Samamoodi tuleks kuvada ka kursuse uudised. Uudiste puhul võib ka nii teha, et "vanu" teateid ei kuvatagi. Juhul kui uuemaid ei leidu, kuvatakse vastav teade kasutajale.

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

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

Lisamaterjale