Red[] ;red-064 -c teekalenteri4.red substr: func [string start length][ copy/part at string start length ] print "Odota hetki...haen sivuilta dataa..." lmrk: to-char 34 newline: to-char 10 html: make string! 10000000 kk: 1 sivu: make string! 10000000 loop 12 [ sivuos: copy[] append sivuos "https://mielenterveyshelmi.fi/tapahtumat/2022-" kkstr: to-string kk if kk < 10 [ kkstr: copy[] append kkstr "0" append kkstr to-string kk ] append sivuos kkstr sivuos: to-string sivuos trim/all sivuos dsivu: read to-url to-string sivuos append sivu dsivu kk: kk + 1 ] apuri: "" append html "" append html rejoin [""] append html rejoin ["" newline] append html "Helmin kalenteri" append html "" append html "" append html rejoin ["" newline] append html rejoin ["
"] append html rejoin ["" newline] paasivu: read to-url "https://mielenterveyshelmi.fi/" etsi1: "

" ;etsitaan menu1 otsikko etsi2: "

" paasivu: find paasivu etsi1 alku: (index? paasivu) + 4 paasivu: find paasivu etsi2 loppu: (index? paasivu) - 1 menu1ots: substr paasivu 1 (alku - loppu - 1) ruoat: copy[] paivat: copy[] loop 5 [ paasivu: find paasivu "
" alku: (index? paasivu) + 4 paasivu: find paasivu "
" loppu: (index? paasivu) vkopaiva: substr paasivu 1 (alku - loppu) append paivat vkopaiva paasivu: find paasivu "
" alku: index? paasivu paasivu: find paasivu "
" loppu: index? paasivu ruoka: substr paasivu 1 (alku - loppu) append ruoat ruoka ] menu: copy[] append menu rejoin [""] ind: 1 append menu rejoin ["" menu1ots "" newline] append menu rejoin ["" newline] loop 5 [ append menu rejoin [""] ind: ind + 1 ] ;kakkoso-osa ruokalistasta etsi1: "

" ;etsitaan menu2 otsikko etsi2: "

" paasivu: find paasivu etsi1 alku: (index? paasivu) + 4 paasivu: find paasivu etsi2 loppu: (index? paasivu) - 1 menu2ots: substr paasivu 1 (alku - loppu - 1) ruoat: copy[] paivat: copy[] loop 5 [ paasivu: find paasivu "
" alku: (index? paasivu) + 4 paasivu: find paasivu "
" loppu: (index? paasivu) vkopaiva: substr paasivu 1 (alku - loppu) append paivat vkopaiva paasivu: find paasivu "
" alku: index? paasivu paasivu: find paasivu "
" loppu: index? paasivu ruoka: substr paasivu 1 (alku - loppu) append ruoat ruoka ] append menu rejoin ["
" paivat/(ind) "
" newline] append menu "
" ind: 1 append menu rejoin ["" menu2ots "" newline] append menu rejoin ["" newline] loop 5 [ append menu rejoin ["" newline] ind: ind + 1 ] menu: replace/all menu "ö" "ö" menu: replace/all menu "ö" "ä" menu: replace/all menu "\u00c4" "Ä" append menu ["
" paivat/(ind) "" ruoat/(ind) "
"] write %menu.html to-string menu append html rejoin [""] append html "" append html rejoin ["
"] append html rejoin ["" newline] append html " " append html rejoin [" "] append html rejoin ["
" newline] append html rejoin [""] append html rejoin ["
Tapahtumakalenteri
Linkki yliopiston kalenteriin.
"] append html rejoin ["


"] etsi1: rejoin ["
"] etsi4: "" kuvat: copy[] tapahtumat: copy[] tapahtumientarkkailu: copy[] ;seurataan onko tapahtuma ja sen paivamaara jo laitettu weeknumber: func [day][ ; palauttaa viikkonumeron paiva: 1/1/2022 viikkonumero: 52 while [paiva < day] [ if paiva/weekday = 7 [ viikkonumero: viikkonumero + 1 if viikkonumero = 53 [viikkonumero: 1] ] paiva: paiva + 1 paiva = day ] return viikkonumero ] kuut: ["Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Occt" "Nov" "Dec"] todateksi: func [pvmtxt kktxt vuositxt][ datetxt: copy[] append datetxt to-integer pvmtxt append datetxt to-integer kktxt append datetxt to-integer vuositxt ;probe datetxt return to-date datetxt ] while [sivu: find sivu etsi1][ sivu: find sivu "-" sivu: find sivu "-" sivu: find sivu "-" sivu: find sivu "-" sivu: next sivu alku: index? sivu sivu: find sivu lmrk loppu: index? sivu pvm: substr sivu 1 (alku - loppu + 19) if (pvm >= today) and (pvm >= suurinpvm)[ suurinpvm: pvm ;append html rejoin ["" newline] sivu: find sivu etsi2 alku: index? sivu sivu: find sivu etsi3 loppu: index? sivu linkki: substr sivu -2 (alku - loppu + 11) sivu: find sivu etsi3 alku: index? sivu sivu: find sivu etsi4 loppu: index? sivu tapahtuma: substr sivu 1 (alku - loppu + 12) pvmapu: load pvm viikonpaiva: pvmapu/weekday vkpaiva: vkpaivat/(viikonpaiva) paivamam: substr pvm 9 2 ;paiva kuukausi: kuukaudet/(to-integer substr pvm 6 2) ;kuukausi vuosi: substr pvm 1 4 ;vuosi ;laitetaan aikatiedotkin omaan taulukkoon paivamaarathtml: copy[] append paivamaarathtml rejoin ["
"] if ((to-integer paivamam) < 10) [paivamam: substr paivamam 2 1] paiva2: todateksi paivamam (substr pvm 6 2) vuosi viikonnumero: weeknumber to-date (paiva2) append paivamaarathtml rejoin [""] append paivamaarathtml rejoin [""] append paivamaarathtml rejoin [""] append paivamaarathtml rejoin [""] append paivamaarathtml rejoin [""] append paivamaarathtml rejoin ["
" vkpaiva "" paivamam "." kuukausi "" vuosi "       (viikko numero:" viikonnumero ")
"] oslinkki: linkki ;etsitaan kuva linkin takaa, jos se ei olla jo laitettu ;probe tapahtumat if find tapahtumat tapahtuma [ tapahtumat: head tapahtumat tapahtumat: find tapahtumat tapahtuma indeksiloytyi: index? tapahtumat kuvaalkio: kuvat/(indeksiloytyi) ] tapahtumaalkio: copy[] append tapahtumaalkio paivamaarathtml append tapahtumaalkio tapahtuma tapahtumientarkkailu: head tapahtumientarkkailu ;probe tapahtumientarkkailu either (not find tapahtumientarkkailu tapahtumaalkio) [ ;haetaan kuva vain jos tapahtuma ei ole tapahtumat listassa if not find tapahtumat tapahtuma [ alasivu: read to-url to-string oslinkki etsi1a: rejoin ["
"] alasivu: find alasivu etsi1a etsi2a: "src=" alasivu: find alasivu etsi2a alku: (index? alasivu) + 5 etsi3a: " class=" alasivu: find alasivu etsi3a loppu: index? alasivu kuvanosoite: substr alasivu 1 (alku - loppu - 1) kuvaalkio: rejoin ["" newline] append tapahtumat tapahtuma append kuvat kuvaalkio ] ;tapahtuaa ei oltu taulukoitu. Taulukoidaan se tapahtumaalkio: copy[] append tapahtumaalkio paivamaarathtml append tapahtumaalkio tapahtuma append tapahtumientarkkailu tapahtumaalkio append html rejoin [""] append html "" append html rejoin ["" append html rejoin ["" append html "" append html "
"] append html "" append html "" append html "" append html "" append html rejoin ["" append html "" append html "
" append html paivamaarathtml append html "" append html "
"] append html rejoin [" " tapahtuma "" newline] append html "
" append html "
"] append html rejoin ["" kuvaalkio "" newline] append html "
" append html rejoin ["
" newline] ][ tapahtuma: tapahtumat/(indeksiloytyi) ] ] ] append html "
" append html rejoin ["
"] append html "" append html "" html: replace/all html "ö" "ö" html: replace/all html "ä" "ä" html: replace/all html "\u00c4" "Ä" tiedosto: to-file "kalenteri.html" write tiedosto html browse tiedosto halt