«και πού να τα προλάβεις όλ’ αυτά;», μέρος 2

cards-batchΛέγαμε, λοιπόν, ότι οι δύσκολες περιπτώσεις αφορούν λινκ που είναι στα σχόλια σε μπλογκ του blogger ή της wordpress, ή σε αναρτήσεις σε wordpress. Δες τι θα κάνεις, λοιπόν, για να καταλήξεις στο ανάλογο ποθητό «σεντόνι». Μόνο που και στις τρεις αυτές περιπτώσεις δεν θα είναι ίδιο σεντόνι με την περίπτωση της προηγούμενης ανάρτησης, οπότε παίρναμε στον firefox το rendering των αναρτήσεων, αλλά ένα σεντόνι με κώδικα xml που περιέχει τα λινκ που ζητάμε.

Εφόσον ο server δεν μας δίνει τρόπο να ανακτήσουμε όλες τις αναρτήσεις, ή όλα τα σχόλια μαζί, ό,τι και να επιδιώξει ο client είναι ανώφελο. Ευτυχώς, θα καταφύγουμε στο σύγχρονο Μεγάλο Αδελφό, πιο συγκεκριμένα, στο κομμάτι του που αφορά feeds, στον Google Reader (στη συνέχεια, GR).
 

 
Από τη στιγμή που οποιοδήποτε feed απέκτησε τον πρώτο του συνδρομητή μέσω GR, είτε αφορά αναρτήσεις, είτε σχόλια κάποιου ιστολογίου, είτε ανανεώσεις περιεχομένου κάποιου website, ο GR το καταχωρίζει και το ευρετηριάζει. Όταν βλέπουμε ένα τέτοιο feed από την αντίστοιχη σελίδα του GR, μπορούμε να προχωρήσουμε την ανάκτηση και προβολή μέχρι ακριβώς τη χρονική στιγμή που αναφέραμε (εφόσον έχουμε αφήσει την φθίνουσα χρονολογική ταξινόμηση· αλλιώς, έχουμε ένα χρονικό παράθυρο 30 ημερών). Μόνο, που ούτε ο GR μας δίνει μέσω της σελίδας του το επιθυμητό ενιαίο «σεντόνι».

Το 2007 το GR πήρε την απόφαση να στηρίξει το πρότυπο Atom για τα feed, απόφαση που υλοποιείται έκτοτε και μέσω του σχετικού API. Παρότι έχουν υπάρξει ως τώρα αρκετές τροποποιήσεις και η επίσημη έκδοση του API αυτού και της τεκμηρίωσής του ακόμη εκκρεμμεί, έχουμε τα στοιχεία για τις παραμέτρους που μας χρειάζονται, ώστε να μας επιστρέψει όλο το αρχειοθετημένο υλικό που αφορά ένα feed.

Οποιοδήποτε feed μετατρέπεται σε Atom από το API, με το:

http://www.google.com/reader/atom/feed/{feed-url-to-convert}

Για τα feed των σχολίων σε ένα μπλογκ του blogger αντίστοιχα θα έχουμε

http://www.google.com/reader/atom/feed/http://{blog-name}.blogspot.com/feeds/comments/default

ενώ για τα feed των σχολίων σε ένα μπλογκ του wordpress θα έχουμε

http://www.google.com/reader/atom/feed/http://{blog-name}.wordpress.com/comments/feed/

Για τα feed των αναρτήσεων, αντίστοιχα, έχουμε:
http://www.google.com/reader/atom/feed/http://{blog-name}.wordpress.com/feed/
http://www.google.com/reader/atom/feed/http://{blog-name}.blogspot.com/feeds/posts/default

Το τελευταίο δεν μας χρειάζεται· αντιστοιχεί στην εύκολη περίπτωση του πρώτου μέρους.

Το API μας δίνει την παράμετρο r με τιμή n για μας, δηλαδή φθίνουσα ταξινόμηση (ίσως μπορεί και να παραληφθεί, καθώς πρόκειται για την προρρυθμισμένη επιλογή) και την παράμετρο n που δέχεται ως τιμή το πλήθος των στοιχείων του feed που ζητούνται να επιστραφούν. Άλλες παράμετροι και άλλες τιμές τους δεν μας ενδιαφέρουν εδώ.

Φτάσαμε σχεδόν στο τέλος.

Θέλουμε κάτι τέτοιο:

http://www.google.com/reader/atom/feed/http://{blog-name}.blogspot.com/feeds/comments/default?r=n&n=9999
http://www.google.com/reader/atom/feed/http://{blog-name}.wordpress.com/comments/feed/?r=n&n=9999
http://www.google.com/reader/atom/feed/http://{blog-name}.wordpress.com/feed/?r=n&n=9999

Το μεγάλο xml αρχείο που θα επιστρέψει κάθε τέτοιο query, μπορούμε να το σώσουμε στο δίσκο μας, ως xml, html, ή txt, και να το επεξεργαστούμε στη συνέχεια με κάποιον editor. Μπορούμε πολύ γρήγορα να ζητήσουμε αντικατάσταση του space χαρακτήρα με αυτόν της αλλαγής γραμμής, ώστε να είμαστε σίγουροι ότι τα επιθυμητά λινκ ξεκινούν σε καινούριες γραμμές μετά τη σειρά χαρακτήρων href=». Ταξινομούμε τις γραμμές, και, με τον ένα ή άλλο τρόπο, κρατάμε αυτές ακριβώς που ξεκινούν με href=» και τελειώνουν με το διπλό εισαγωγικό «. Διώχνουμε κι αυτά, κι έχουμε τα λινκς μας για τα περαιτέρω.

Δυστυχώς, αν εμπλέκονται ενδιάμεσες υπηρεσίες τύπου lix.in, ή sharebee, πρέπει (;) να επισκεφτούμε τις σελίδες αυτές. Αν όμως τα λινκ δείχνουν απευθείας σε υπηρεσίες αποθήκευσης αρχείων, όπου είμαστε συνδρομητές, π.χ. στο rapidshare, μπορούμε να «ταΐσουμε» κατάλληλα προγράμματα λήψης αρχείων.

 
Σημειώσεις:
Χρειάζεται ταυτοποίηση για τη χρήση του API, με άλλα λόγια, να είμαστε ήδη logged-in σε κάποια υπηρεσία του google.
Το GR αρχειοθετεί ένα feed τη στιγμή που έχει νέα στοιχεία. Αν γίνουν εκ των υστέρων διορθώσεις στο αρχικό περιεχόμενο που «διαφημίζει» το feed, αυτές δεν θα περάσουν στο αρχειοθετημένο υλικό.
Μπορεί κανείς να φτιάξει κι εδώ κατάλληλα bookmarklet.

 
Παρεμπιπτόντως, καλόγουστους ενσωματωμένους rss feed viewer, που μπορούν να προβάλλουν την έξοδο από τα παραπάνω query, βλέπω ότι διαθέτουν ο Opera και ο Safari (για Windows, στην περίπτωσή μου). Ο δεύτερος έχει όριο τις 200 αναρτήσεις ανά σελίδα, οπότε είναι σαφώς βολικότερος του πρώτου, για μαζική προβολή. Όμως, επειδή, πρόκειται για αρχειοθετημένες αναρτήσεις στην cache του google, η μετάβαση σε επόμενες 200αδες δεν είναι πάντα πετυχημένη.

 
Ενημέρωση: Και μια πιο geek συνέχεια, εδώ:
Κατά βούληση αποστολή συνδέσμων στο DownThemAll μέσω Jetpack script

Συντάκτης: Stazybο Hοrn

I am what I publish; so you are to me.

1 thought on “«και πού να τα προλάβεις όλ’ αυτά;», μέρος 2”

  1. Ο akindynos μου άνοιξε την όρεξη να σκεφτώ λίγο παραπάνω τη διαδικασία. Όμως, αντί να ακολουθήσω τη σκέψη του στο μονοπάτι του κώδικα, σκέφτηκα ότι εργαλεία xml που μπορεί να έχει κανείς και θα μπορούσαν να φανούν χρήσιμα… Είπα να δοκιμάσω το Office, που τόχουν όλοι και υποστηρίζει XML.

    Ναι το output αρχείο ανοίγει στο Word, κι ακόμη καλύτερα ανοίγει στο Excel, όπου εύκολα μετατρέπεται σε πίνακα-λίστα, με κάθε σχόλιο να αποτελεί μια εγγραφή. Μπορεί κανείς να κρατήσει δυο τρία γνωρίσματα όλα κι όλα που τον ενδιαφέρουν και σχετικά εύκολα να προχωρήσει παρακάτω. Συνήθως ενδιαφέρει το πρώτο σχόλιο από κάθε ανάρτηση, που έχει και δημιουργό τον μπλόγκερ. Με φίλτρα και συναρτήσεις μπορεί να καταλήξει κάποιος σε ένα πίνακα, όπου θα έχει πλέον και την πληροφορία για το ποια ανάρτηση -άρα και ποιο δισκάκι ή ό,τι άλλο- αφορά κάθε λινκ.

    Μου αρέσει!

Τι είπες;

Εισάγετε τα παρακάτω στοιχεία ή επιλέξτε ένα εικονίδιο για να συνδεθείτε:

Λογότυπο WordPress.com

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό WordPress.com. Αποσύνδεση / Αλλαγή )

Φωτογραφία Twitter

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Twitter. Αποσύνδεση / Αλλαγή )

Φωτογραφία Facebook

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Facebook. Αποσύνδεση / Αλλαγή )

Φωτογραφία Google+

Σχολιάζετε χρησιμοποιώντας τον λογαριασμό Google+. Αποσύνδεση / Αλλαγή )

Σύνδεση με %s