πŸ’Ύ Archived View for gemini.strahinja.org β€Ί blog β€Ί 2021-04 β€Ί 20210422.gmi captured on 2022-03-01 at 15:28:44. Gemini links have been rewritten to link to archived content

View Raw

More Information

➑️ Next capture (2024-06-20)

-=-=-=-=-=-=-

β€žΠ£Ρ€Π°Π΄ΠΈ ΡΠ°ΠΌβ€œ ΠΎΠ±Π°Π²Π΅ΡˆΡ‚Π΅ΡšΠ°

ΠŸΡ€Π΅ ΠΏΠ°Ρ€ Π΄Π°Π½Π° ΠΌΠ΅ јС ΠΈΠ·Π½Π΅Π½Π°Π΄ΠΈΠΎ нСстанак Π²ΠΎΠ΄Π΅. Π£Π²ΠΈΠ΄ΠΎΠΌ Ρƒ страницу са објавама ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ΠΈΡ… Ρ€Π°Π΄ΠΎΠ²Π°, Π²ΠΈΠ΄Π΅ΠΎ сам Π΄Π° јС ΠΈΡΠΊΡ™ΡƒΡ‡Π΅ΡšΠ΅ ΠΏΠ»Π°Π½ΠΈΡ€Π°Π½ΠΎ, ΠΈ Π΄Π° Π±ΠΈ Ρ‚Ρ€Π΅Π±Π°Π»ΠΎ Π΄Π° Ρ‚Ρ€Π°Ρ˜Π΅ ΠΎΠ΄ 02:00-22:00. ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌ јС Ρƒ Ρ‚ΠΎΠΌΠ΅ ΡˆΡ‚ΠΎ Π½Π΅ ΠΏΡ€Π°Ρ‚ΠΈΠΌ вСсти, Π° β€ždeveloperβ€œ-ΠΈ који ΠΎΠ΄Ρ€ΠΆΠ°Π²Π°Ρ˜Ρƒ ΡΠ°Ρ˜Ρ‚ Π‘Π’Πš нису Π½Π° Π²ΠΈΠ΄Π½ΠΎ мСсто поставили Π²Π΅Π·Ρƒ ΠΊΠ° RSS Ρ‚ΠΎΠΊΡƒ (ΡˆΡ‚ΠΎ јС Π»ΠΎΠ³ΠΈΡ‡Π½ΠΎ ΠΈ Сфикасно Ρ€Π΅ΡˆΠ΅ΡšΠ΅ Π·Π° ΠΏΡ€Π°Ρ›Π΅ΡšΠ΅ новости), ΠΏΠ° Ρ‡Π°ΠΊ Π½ΠΈ Π½Π°Ρ˜ΠΎΠ±ΠΈΡ‡Π½ΠΈΡ˜Π΅ ΠΎΠ±Π°Π²Π΅ΡˆΡ‚Π°Π²Π°ΡšΠ΅ ΠΏΡ€Π΅ΠΊΠΎ мСјла. На срСћу, ја користим ГНУ са Линуксом, Π° ΠΎΠ²ΠΎ јС ΠΎΠ΄Π»ΠΈΡ‡Π½Π° ΠΏΡ€ΠΈΠ»ΠΈΠΊΠ° Π·Π° Π΄Π΅ΠΌΠΎΠ½ΡΡ‚Ρ€Π°Ρ†ΠΈΡ˜Ρƒ Ρ‚ΠΎΠ³Π° ΡˆΡ‚Π° сС ΠΌΠΎΠΆΠ΅ постићи њСговим ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΠΌΠ° који користС ΠΊΠΎΠΌΠ°Π½Π΄Π½Ρƒ Π»ΠΈΠ½ΠΈΡ˜Ρƒ.

страницу

Π“Π»Π°Π²Π½Π° идСја јС Π΄Π° користимо curl(1) Π΄Π° ΠΏΡ€Π΅ΡƒΠ·ΠΌΠ΅ΠΌΠΎ страницу Π‘Π’Πš-Π°:

curl

$ curl -s https://www.bvk.rs/planirani-radovi/ > radovi.html

Π—Π°Ρ‚ΠΈΠΌ ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΠΌΠΎ grep(1) Π΄Π° бисмо издвојили само ΠΎΠ½Π΅ Π΄Π΅Π»ΠΎΠ²Π΅ страницС који нас ΠΈΠ½Ρ‚Π΅Ρ€Π΅ΡΡƒΡ˜Ρƒ:

grep

$ grep Π Π°ΠΊΠΎΠ²ΠΈΡ†Π° radovi.html > rakovica.html

И Π½Π° ΠΊΡ€Π°Ρ˜Ρƒ скинСмо свС HTML ΠΎΠ·Π½Π°ΠΊΠ΅ ΠΈ ΠΈΠ·Π±Π°Ρ†ΠΈΠΌΠΎ ΡΡƒΠ²ΠΈΡˆΠ½Π΅ Ρ€Π°Π·ΠΌΠ°ΠΊΠ΅, Π° <p> ΠΏΡ€Π΅Ρ‚Π²ΠΎΡ€ΠΈΠΌΠΎ Ρƒ Π½ΠΎΠ²Π΅ пасусС:

$ sed -e's/<p>/\n\n/g' < rakovica.html | 
	 sed -e's/<[^>]\+>//g' -e's/\s\+/ /g' -e's/^\s\+//g' > rakovica.txt

Π‘Π²Π΅ ΠΎΠ²Π΅ Π½Π°Ρ€Π΅Π΄Π±Π΅ ΠΌΠΎΠΆΠ΅ΠΌΠΎ Π΄Π° ΠΈΡΠΊΠΎΠΌΠ±ΠΈΠ½ΡƒΡ˜Π΅ΠΌΠΎ Ρƒ Ρ˜Π΅Π΄Π½Ρƒ:

$ curl -s https://www.bvk.rs/planirani-radovi/ | grep Π Π°ΠΊΠΎΠ²ΠΈΡ†Π° | 
	sed -e's/<p>/\n\n/g' | sed -e's/<[^>]+>//g' -e's/\s\+/ /g' 
		-e's/^\s\+//g' > rakovica.txt

Овим смо сачували ΠΏΠΎΠ΄Π°Ρ‚Π°ΠΊ ΠΎ Π½ΠΎΠ²ΠΎΠΌ ΠΈΡΠΊΡ™ΡƒΡ‡Π΅ΡšΡƒ, који ΠΌΠΎΠΆΠ΅ΠΌΠΎ сачувати Π·Π° ΠΊΠ°ΡΠ½ΠΈΡ˜Ρƒ ΠΏΡ€ΠΎΠ²Π΅Ρ€Ρƒ. Π‘Π»Π΅Π΄Π΅Ρ›ΠΈ ΠΏΡƒΡ‚ ΠΊΠ°Π΄Π° ΠΏΡ€ΠΎΠ²Π΅Ρ€Π°Π²Π°ΠΌΠΎ страницу, само ΠΏΡ€Π΅ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΠΈΡˆΠ΅ΠΌΠΎ Π΄Π° Π»ΠΈ сС Π½ΠΎΠ²ΠΈ Ρ€Π΅Π΄ појавио Ρƒ листи Π²Π΅Ρ› Π²ΠΈΡ’Π΅Π½ΠΈΡ…, ΠΈ Π°ΠΊΠΎ нијС, додајСмо Π³Π° ΠΈ ΠΎΠ±Π°Π²Π΅ΡˆΡ‚Π°Π²Π°ΠΌΠΎ корисника:

$ if grep -v -f sacuvano.txt rakovica.txt; then 
	cat rakovica.txt >> sacuvano.txt; fi

Како ΠΌΠΎΠΆΠ΅ΠΌΠΎ обавСстити корисника? ΠŸΠΎΡΡ‚ΠΎΡ˜ΠΈ вишС Π½Π°Ρ‡ΠΈΠ½Π°, Π°Π»ΠΈ онај који сС ΠΌΠ΅Π½ΠΈ ΡƒΡ‡ΠΈΠ½ΠΈΠΎ Π½Π°Ρ˜ΠΊΠΎΡ€ΠΈΡΠ½ΠΈΡ˜ΠΈΠΌ Ρ˜Π΅ΡΡ‚Π΅ аутоматско слањС мСјла. Ово сС ΠΌΠΎΠΆΠ΅ постићи, Ρ€Π΅Ρ†ΠΈΠΌΠΎ, ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΎΠΌ neomutt(1):

neomutt

$ neomutt -s "Π‘Π’Πš: Нови Ρ€Π°Π΄ΠΎΠ²ΠΈ" pera@peric.com < rakovica.txt

Ово јС, Ρƒ ΡΡƒΡˆΡ‚ΠΈΠ½ΠΈ, основа ΠΌΠΎΠ³ скрипта pagecheck. Он сС ΠΏΠΎΠ·ΠΈΠ²Π°, Ρ€Π΅Ρ†ΠΈΠΌΠΎ, Π½Π° слСдСћи Π½Π°Ρ‡ΠΈΠ½:

pagecheck

$ pagecheck Π Π°ΠΊΠΎΠ²ΠΈΡ†Π° https://www.bvk.rs/planirani-radovi/ pera@peric.com

Ако јС Π±ΠΈΠ»ΠΎ новости, pagecheck Ρ›Π΅ ΠΈΡ… исписати Π½Π° стандардном ΠΈΠ·Π»Π°Π·Ρƒ, ΡˆΡ‚ΠΎ јС ΠΈ ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π°Π½ΠΎ Π°ΠΊΠΎ Π½Π΅ Π·Π°Π΄Π°ΠΌΠΎ нијСдан ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€. Новости ΠΌΠΎΠΆΠ΅ΠΌΠΎ Π΄Π° β€žseen-ΡƒΡ˜Π΅ΠΌΠΎβ€œ ΠΏΠΎΠ·ΠΈΠ²ΠΎΠΌ ΡƒΠ· ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Π°Ρ€ -s:

$ pagecheck -s

Ипак, Π½Π°Ρ˜ΠΊΠΎΡ€ΠΈΡΠ½ΠΈΡ˜Π΅ јС Π΄Π° pagecheck ΠΏΠΎΠ·ΠΈΠ²Π°ΠΌΠΎ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΎΠΌ cron(8). Π Π΅Ρ†ΠΈΠΌΠΎ:

cron

$ crontab -e

ΠΈ унСсСмо слСдСћи Ρ€Π΅Π΄ Ρƒ crontab:

0 */5 * * *	pagecheck Π Π°ΠΊΠΎΠ²ΠΈΡ†Π° https://www.bvk.rs/planirani-radovi/ pera@peric.com

Π’Π°ΠΊΠΎ Ρ›Π΅ сС Π½Π° сваких 5 сати Ρƒ ΠΏΠΎΠ·Π°Π΄ΠΈΠ½ΠΈ ΠΈΠ·Π²Ρ€ΡˆΠΈΡ‚ΠΈ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌ pagecheck, ΠΈ Π°ΠΊΠΎ јС дошло Π΄ΠΎ ΠΏΡ€ΠΎΠΌΠ΅Π½Π° Π½Π° страници којС ΡƒΠΊΡ™ΡƒΡ‡ΡƒΡ˜Ρƒ Ρ‚Ρ€Π°ΠΆΠ΅Π½ΠΈ ΠΈΠ·Ρ€Π°Π·, Π±ΠΈΡ›Π΅ послато ΠΎΠ±Π°Π²Π΅ΡˆΡ‚Π΅ΡšΠ΅. Наравно, Ρƒ ΠΎΠ²ΠΎΠΌ ΡΠ»ΡƒΡ‡Π°Ρ˜Ρƒ сС ΠΏΠΎΠ΄Ρ€Π°Π·ΡƒΠΌΠ΅Π²Π° Π΄Π° јС Ρ€Π°Ρ‡ΡƒΠ½Π°Ρ€ ΠΊΠΎΠ½Ρ‚ΠΈΠ½ΡƒΠΈΡ€Π°Π½ΠΎ ΠΏΠΎΠΊΡ€Π΅Π½ΡƒΡ‚ сваки Π΄Π°Π½ Ρ‚Π°ΠΊΠΎ Π΄Π° ΠΎΠ±ΡƒΡ…Π²Π°Ρ‚ΠΈ ΠΌΠ°ΠΊΠ°Ρ€ јСдан Ρ‚Π°ΠΊΠ°Π² ΠΈΠ½Ρ‚Π΅Ρ€Π²Π°Π».