Evo, da javim ako koga zanima kako je prošlo.
Probao sam nešto preko json-a ali uglavnom nisam imao uspjeha.
Ono što radi je lista linkova po mjesecima. Radi brzo i jednostavno jer postoji json api funkcija koja radi baš to.
Međutim, za direktni popis tekstova ne postoji nešto slično, tako da se mora skidati kompletne postove da bi iz njih izvukao url-ove.
Problem je što "get_posts" vraća samo prvu stranicu a ne mogu nikako namjestiti (sa "?count=") da mi vraća sve u jednoj stranici, tako da ne kompliciram s listanjem stranica. Moguće da je taj dio ograničen na serverskoj strani.
Osim toga, na kraju opterećenje ispada isto kao ono kad sam direktno skidao s prvom skriptom, samo što u ovom slučaju moram pretvarati json natrag u html linkove.
Stvarno mi je žao što nemam pojma o php-u u ovom slučaju, jer imam blagi osjećaj da bi se onda moglo poboljšati taj dio na serverskoj strani, što bi bilo sigurno lakše nego se daljinski patiti preko ograničenog json api-a.
Na kraju izgleda da je prva skripta dala meni najprihvatljiviji rezultat, iako je ružno ko vrag.
BTW, json skriptice;
lista linkova na mjesece, oneliner:
- Kod: Označi sve
#json get_date_index
echo "<h1>Popis LZS tekstova po datumu preko JSON API-ja</h1> <meta charset="UTF-8">" > LZS_po_datumu.html; \
curl 'http://www.linuxzasve.com/api/core/get_date_index/' | jq '.permalinks[]' | sed -e 's|"\(.*\)"|<a href="\1">\1</a><br>|g' >> LZS_po_datumu.html;
lista naslova po godinama - get_date_posts - ne radi dobro zbog paginacije
- Kod: Označi sve
#!/bin/bash
echo "<h1>Popis LZS tekstova preko JSON API-ja</h1> <meta charset="UTF-8">" > LZS.html
sada=$(date +%Y)
while read opis; do
read poveznica; echo "<a href="$poveznica">$opis</a><br>" >> LZS.html
done < <(for ((godina = $sada; godina > 2007; godina--)); do
curl "http://www.linuxzasve.com/api/core/get_date_posts/?date=$godina" | jq '.posts[] | .title, .url';
done;)
lista naslova preko get_posts uz pokušaj stavljanja svih postova na jednu stranicu -ne radi zbog paginacije
- Kod: Označi sve
curl "http://www.linuxzasve.com/api/core/get_posts/?count=2000" | jq '.posts[] | .title, .url';