Το προφίλ μας στο Google Plus
0

Κάντε παπάδες με την search bar του Firefox

Δημιουργείστε τα δικά σας εξειδικευμένα search plugin για την search bar του Firefox, όχι μόνο για να διευκολύνετε την διαδικασία αναζήτησης στο internet αλλά και για αρκετές ακόμα τελείως ανορθόδοξες εφαρμογές!

Η search bar του Firefox με μερικά από τα προεγκατεστημένα plugins και μερικά από αυτά που κατασκευάσαμε εμείς. Όπως βλέπετε, με χρήση της search bar, η εύρεση ενός torrent με την τελευταία ταινία του James Bond είναι παιχνιδάκι.Ένα πολύ χρήσιμο χαρακτηριστικό που συναντάται πλέον σε όλους σχεδόν τους browser είναι η search bar. Με αυτήν, ο χρήστης μπορεί να εκτελεί έρευνες στην αγαπημένη του μηχανή αναζήτησης γλυτώνοντας χρόνο, παρακάμπτοντας την κεντρική σελίδα αυτής.
Οι περισσότεροι browser υποστηρίζουν από την εγκατάσταση μερικές από τις πιο δημοφιλείς μηχανές αναζήτησης, ενώ σε κάποιους από αυτούς είναι δυνατόν να προστεθούν και άλλες με λήψη από τον επίσημο ιστοτόπο τους. Συγκεκριμένα, στον Firefox (έκδοση 2 και νεότερη) μπορείτε να προσθέσετε υποστήριξη για λιγότερο δημοφιλείς μηχανές αναζήτησης μέσω του συστήματος των search plugin. Με την λήψη τέτοιων plugin, όπως λόγου χάρη για την Wikipedia, την IMDB ή το YouTube, o Firefox γνωρίζει πώς να υποβάλλει ο ίδιος τα keywords της αναζήτησης στην αντίστοιχη υπηρεσία και σας δίνει πλέον την δυνατότητα να ψάχνετε σε αυτές χωρίς πρώτα να επισκεφτείτε τις αντίστοιχες σελίδες αναζήτησης. Ωστόσο, η ποικιλία των search plugin που παρέχονται έτοιμα από την ανάλογη σελίδα του mozilla.org είναι αρκετά περιορισμένη.
Όμως, αυτά τα plugin δεν είναι τίποτε άλλο παρά μικρά αρχεία XML (συνήθως μικρότερα από 1kb) που ακολουθούν την τυποποίηση OpenSearch και περιέχουν πληροφορίες για τον τρόπο που υποβάλλεται η φόρμα αναζήτησης στην κάθε μηχανή. Έτσι δίνεται η ευκαιρία στον καθένα να δημιουργήσει τα δικά του search plugin, για οποιοδήποτε ιστοτόπο παρέχει στους επισκέπτες την δυνατότητα να ψάξουν στα περιεχόμενά του, αρκεί να γνωρίζει τον τρόπο με τον οποίο τα keywords της αναζήτησης «πασάρονται» από το πεδίο εισαγωγής της φόρμας στην ανάλογη δυναμική σελίδα που αναλαμβάνει να κάνει την αναζήτηση.
Δεν θα ήταν πρακτικό να προσθέτατε τις δικές σας σπάνιες ή εξειδικευμένες μηχανές αναζήτησης; Δεν θα ήταν πρακτικό, όταν ακούτε για μια καλή ταινία, να μπορείτε να γράφετε απλά το όνομά της στην search bar του browser και να βρίσκετε το ανάλογο torrent σε κάποιον metatracker ή το ανάλογο rapidshare link στο αγαπημένο σας link site; Ή μήπως δεν είναι πρακτικό να γράφετε οδό και αριθμό στην search bar και να εμφανίζεται απευθείας το αντίστοιχο στίγμα σε κάποια online υπηρεσία χαρτών της επιλογής σας;
Αλλά οι εφαρμογές δεν σταματούν εδώ. Βλέπετε η search bar το μόνο που κάνει είναι να υποβάλλει μια φόρμα ενός υποχρεωτικού πεδίου. Δεν είναι υποχρεωτικό να την υποβάλλει σε κάποια μηχανή αναζήτησης. Έτσι, μπορείτε να δημιουργήσετε κατάλληλα search plugins για να κάνετε μεταφράσεις κειμένων, για να βλέπετε τον καιρό σε μια πόλη, για να κάνετε αντίστροφη αναγνώριση σε ένα τηλεφωνικό αριθμό που σας κάλεσε κ.ο.κ. Και επειδή σας υποσχεθήκαμε και μερικές πραγματικά ανορθόδοξες εφαρμογές, τι θα λέγατε αν χρησιμοποιούσατε την search bar για να παράγετε short URL από την αγαπημένη σας υπηρεσία ή ακόμα και για αστραπιαία σύνταξη/υποβολή tweets;

Προετοιμασία – το ουσιαστικό μέρος

Αρχικά πρέπει να επιλέξετε την υπηρεσία για την οποία θέλετε να δημιουργήσετε το search plugin και την φόρμα αυτής της υπηρεσίας της οποίας την συμπλήρωση θέλετε να παρακάμψετε. Όπως αναφέρθηκε, μοναδικός περιορισμός είναι ότι η search bar του browser παρέχει μόνο ένα πεδίο κειμένου. Έτσι, παρότι μπορείτε να χρησιμοποιήσετε την search bar για να παρακάμψετε φόρμες με πολλά πεδία και ανεξάρτητα του τύπου τους (textbox, combobox, listbox, checkbox, radio button κ.λπ.), με το search plugin που θα δημιουργήσετε, θα μπορείτε να δίνετε τιμή δυναμικά μόνο σε ένα πεδίο κειμένου, ενώ όλα τα άλλα πεδία θα πρέπει να έχουν σταθερές τιμές. Για παράδειγμα, μπορείτε να φτιάξετε ένα plugin για να παρακάμψετε την φόρμα αναζήτησης στην αρχική σελίδα του thepiratebay.org, παρότι η φόρμα αυτή περιέχει διάφορα checkbox εκτός του πεδίου εισαγωγής keyword. Ωστόσο, επειδή οι τιμές των checkbox πρέπει να είναι σταθερές, αν θέλετε να ψάχνετε μόνο στην κατηγορία audio ή μόνο στην κατηγορία video του PirateBay, θα πρέπει να δημιουργήσετε δύο διαφορετικά search plugin για αυτήν την υπηρεσία. Επειδή το παράδειγμα του PirateBay είναι πρακτικό για την επίδειξη της μεθόδου, ας γίνει πιο συγκεκριμένο με την υπόθεση ότι θέλετε το plugin που θα δημιουργήσετε να ψάχνει μόνο στην κατηγορία video του συγκεκριμένου torrent tracker.
Αφού επιλέξετε την φόρμα, πρέπει να ανακαλύψετε την μέθοδο με την οποία υποβάλλεται. Οι φόρμες HTML υποβάλλονται με δύο μεθόδους, την GET και την POST (είχαμε ξαναμιλήσει για το θέμα αυτό στην παράγραφο «Πέρασμα δεδομένων από σελίδα σε σελίδα» στο δεύτερο μέρος του PHP/MySQL tutorial). Για να το κάνετε αυτό, ανοίξτε την σελίδα με την εν λόγω φόρμα στον Firefox και επιλέξτε View –> Page Source. Κάντε αναζήτηση μέσα στον κώδικα της σελίδας για να βρείτε το <form> tag (αν η σελίδα έχει περισσότερες από μια φόρμες, σιγουρευτείτε ότι βρήκατε την σωστή). Μέσα στο <form> tag θα βρείτε το attribute με όνομα method, του οποίου η τιμή θα σας φανερώσει την μέθοδο υποβολής που ψάχνετε. Για παράδειγμα, στην περίπτωση του PirateBay πάλι, το form tag έχει την μορφή:

&lt;form name=&quot;q&quot; method=&quot;get&quot; action=&quot;/s/&quot;&gt;

και συνεπώς η μέθοδος υποβολής της φόρμας είναι η GET.
Το επόμενο βήμα είναι και το πιο σημαντικό. Ανεξαρτήτως μεθόδου υποβολής, θα πρέπει να ανακαλύψετε τα ορίσματα (arguments) που υποβάλλονται με την φόρμα και την διεύθυνση της σελίδας στην οποία γίνεται αυτή η υποβολή. Ο σίγουρος τρόπος για να γίνει αυτό είναι να ανοίξετε πάλι το source της σελίδας και να σημειώσετε την τιμή του action attribute στο <form> tag, όπως κάνατε παραπάνω για το method attribute, καθώς και να μελετήσετε όλα τα <input> tag μεταξύ του <form> και του </form>.
Επειδή αυτή η διαδικασία μπορεί να είναι αρκετά χρονοβόρα σε μεγάλες φόρμες σκορπισμένες μέσα σε περίπλοκο κώδικα, προτείνεται να χρησιμοποιήσετε το Tamper Data, ένα extension για τον Firefox το οποίο, μεταξύ άλλων, μπορεί να διακόψει την διαδικασία υποβολής μιας φόρμας για να εμφανίσει τα στοιχεία που υποβάλλονται.
Αφού εγκαταστήσετε το extension και επανεκκινήσετε τον Firefox, ανοίξτε πάλι την σελίδα με την φόρμα και συμπληρώστε όλα τα στοιχεία της φόρμας, όπως θέλετε να υποβάλλεται αυτή κάθε φορά. Στο πεδίο κειμένου, του οποίου το περιεχόμενο στην συνέχεια θέλετε να αλλάζει δυναμικά από την search bar, συμπληρώστε μια οποιαδήποτε φράση (π.χ. “deltaHacker”). Στην συνέχεια, επιλέξτε την επιλογή Tamper Data από το μενού Tools του Firefox. Αφού κάνετε κλικ στο κουμπί Start Tamper στο παράθυρο που θα εμφανιστεί, επιστρέψτε στην σελίδα και υποβάλλετε την φόρμα πατώντας Enter ή κάνοντας κλικ σε κάποιο ανάλογο submit button.
Αν όλα έγιναν σωστά, το Tamper Data extension θα αναστείλει την υποβολή της φόρμας και θα σας εμφανίσει ένα παράθυρο με τρεις επιλογές (Tamper, Submit & Abort Request) από τις οποίες επιλέξτε την πρώτη για να εμφανιστεί ένα νέο παράθυρο με τίτλο Tamper Popup.
Aν η μέθοδος υποβολής είναι η GET, τα ορίσματα της φόρμας και οι τιμές αυτών εμφανίζονται στο URL στο οποίο υποβάλλονται. Το URL αυτό είναι το μόνο που σας ενδιαφέρει σε αυτήν την περίπτωση και εμφανίζεται στην πάνω-αριστερή γωνία του παραθύρου. Για το παράδειγμα του PirateBay, το URL αυτό θα είναι κάπως έτσι:

http://thepiratebay.org/s/?q=total+XakeR&video=on&page=0&orderby=99

Η συμπληρωμένη φόρμα αναζήτησης του PirateBay (πάνω) και η παρεμβολή του Tamper Data κατά την υποβολή της φόρμας (κάτω). Παρατηρήστε (κόκκινες γραμμές) τον τρόπο με τον οποίο η μέθοδος GET μεταφέρει τις επιλογές της φόρμας στην σελίδα αναζήτησης με αντίστοιχα ορίσματα στο URL υποβολής.Η φόρμα αναζήτησης στο thread «Ταινίες – Videos» του warezakias.info (πάνω) και η παρεμβολή του Tamper Data κατά την υποβολή της φόρμας (κάτω). Το Tamper Data μαε υποδεικνύει το URL υποβολής και τον τρόπο με τον οποίο η μέθοδος POST μεταφέρει το keyword της αναζήτησης μέσω του ορίσματος keywords. Παρατηρήστε επίσης το όρισμα forums που έχει την τιμή 7, δηλαδή το ID του συγκεκριμένου thread στο site.

Το URL αυτό το χρειάζεστε και στην περίπτωση που η μέθοδος υποβολής της φόρμας είναι η POST. Τότε όμως, επειδή τα ορίσματα και οι τιμές τους δεν υποβάλλονται μέσω του URL, χρειάζεστε και όλα τα στοιχεία που εμφανίζονται στο δεξί μέρος του παραθύρου Tamper Popup, κάτω από τις στήλες Post Parameter Name και Post Parameter Value. Επειδή εδώ το PirateBay (εφόσον χρησιμοποιεί την μέθοδο GET) δεν μπορεί να χρησιμοποιηθεί ως παράδειγμα, δείτε στην σχετική εικόνα τα περιεχόμενα του παραθύρου Tamper Popup, όταν ως παράδειγμα χρησιμοποιηθεί το warezakias.info, ένα rapidshare link forum που είναι δημοφιλές στους έλληνες χρήστες του internet και του οποίου η φόρμα αναζήτησης κάνει χρήση της μεθόδου POST.

Τα σκληρά καρύδια

Υπάρχουν μερικά site, στα οποία οι φόρμες προστατεύονται, έτσι ώστε η υποβολή τους να γίνεται αποκλειστικά από τις σελίδες του ίδιου του site και όχι από εξωτερικά προγράμματα ή σελίδες τρίτων. Συνήθως το καταφέρνουν αυτό εισάγοντας στις φόρμες των σελίδων τους ένα κρυφό πεδίο του οποίου η τιμή είναι ένας κωδικός που αλλάζει δυναμικά κάθε φορά που ζητούνται οι αντίστοιχες σελίδες. Κατά την υποβολή μιας τέτοιας φόρμας, το όρισμα που έχει ως τιμή τον κωδικό αυτό «πασάρεται» στην σελίδα υποβολής, η οποία πριν εκτελέσει οποιαδήποτε αναζήτηση (ή ότι άλλο αφορά η φόρμα) ελέγχει την εγκυρότητα του κωδικού αυτού.
Για να αναγνωρίσετε τέτοιου είδους φόρμες, αφού συγκεντρώσετε τις πληροφορίες που χρειάζεστε από το Tamper Data, επαναλάβετε την ίδια διαδικασία μετά από ένα reload της σελίδας της φόρμας στον Firefox. Αν παρατηρήσετε ότι η αλφαριθμητική τιμή κάποιου ορίσματος (που συνήθως ονομάζεται security ή form token) άλλαξε, τότε δυστυχώς η δημιουργία του search plugin για αυτή την φόρμα είναι *μάλλον* αδύνατη.
Παραδείγματα από site για τα οποία είναι γνωστό ότι χρησιμοποιούν αυτό το μέτρο ασφάλειας στις φόρμες τους είναι αυτά που βασίζονται στην πλατφόρμα forum vBulletin ή στην πλατφόρμα CMS Drupal.
Ωστόσο, μερικές φορές, όπως στην περίπτωση των site που βασίζονται σε Drupal, μπορεί να υπάρχει κάποιο τρικ για να ξεπεράσετε αυτό το πρόβλημα.
Στο ubuntu-gr.org μπορείτε να βρείτε μια φόρμα «σκληρό καρύδι». Παρατηρήστε τα δύο ειδικά πεδία που προστατεύουν τη φόρμα.Πάρτε ως παράδειγμα το http://ubuntu-gr.org και ας υποθέσουμε ότι θέλετε να δημιουργήσετε ένα απλό search plugin για αυτό το Drupal based site. Όπως μπορείτε να δείτε στην εικόνα, αν επιχειρήσετε να κατασκοπεύσετε την υποβολή της φόρμας με το Tamper Data, θα ανακαλύψετε την ύπαρξη ορίσματος ασφαλείας στα δεδομένα POST, γεγονός που καθιστά αδύνατη την δημιουργία του search plugin με την μέθοδο που περιγράφηκε. Αν όμως παρατηρήσετε το URL στην γραμμή διευθύνσεων του browser αφού πραγματοποιήσετε την αναζήτηση, θα δείτε ότι το keyword που χρησιμοποιήσατε εμφανίζεται εκεί. Συγκεκριμένα, εισάγοντας ως keyword το deltaHacker, θα μεταφερθείτε στην σελίδα αποτελεσμάτων με URL το:

http://ubuntu-gr.org/search/node/deltaHacker

Έτσι, αντί της μεθόδου POST, μπορείτε να χρησιμοποιήσετε την μέθοδο GET με URL υποβολής το:

http://ubuntu-gr.org/search/node/{searchTerms}

H συγκεκριμένη δομή URL χρησιμοποιείται από όλα τα Drupal sites και συνεπώς με αυτόν τον τρόπο μπορείτε να δημιουργήσετε search plugin για όποιο από αυτά θέλετε.

Προετοιμασία – το αισθητικό κομμάτι

Στην λίστα επιλογής search plugin του Firefox, το κάθε plugin συμμετέχει με ένα μικρό εικονίδιο μπροστά από το όνομά του, το οποίο βοηθά τον χρήστη να αναγνωρίσει γρήγορα το plugin που θέλει να χρησιμοποιήσει. Οι πληροφορίες για το εικονίδιο αυτό περιέχονται μέσα στο αρχείο XML του κάθε plugin, οπότε και εσείς, πριν κατασκευάσετε το XML για το δικό σας plugin, καλό είναι να έχετε έτοιμο ένα εικονίδιο. Σημειώστε ωστόσο ότι δεν είναι αναγκαίο κάθε search plugin να συνοδεύεται από εικονίδιο και συνεπώς το βήμα αυτό είναι προαιρετικό.
Εφόσον αποφασίσατε ότι θα χρησιμοποιήσετε εικονίδιο, το πρώτο που πρέπει να κάνετε είναι να το βρείτε ή να το δημιουργήσετε. Το εικονίδιο θα πρέπει να είναι τύπου ICO και να έχει διαστάσεις 16×16 pixels.
Η υπηρεσία favicon generator πιθανόν να σας φανεί αρκετά χρήσιμη σε περίπτωση που θέλετε να δημιουργήσετε μόνοι σας το εικονίδιο. Τις περισσότερες φορές όμως είναι πρακτικό να χρησιμοποιείτε το έτοιμο favicon που παρέχει η κάθε υπηρεσία και το οποίο μπορείτε να κατεβάσετε εύκολα τις περισσότερες φορές, προσθέτοντας το favicon.ico μετά από το κύριο domain της υπηρεσίας. Για το εικονίδιο του PirateBay λόγου χάρη, δεν έχετε παρά να γράψετε στην address bar του browser την διεύθυνση:

http://thepiratebay.org/favicon.ico

Μερικές φορές η διαδικασία αυτή θα σας επιστρέψει εικονίδιο που είτε είναι σε φορμά GIF ή PNG, είτε δεν έχει διαστάσεις 16×16. Μην πτοείστε. Χρησιμοποιώντας κάποια από τις δεκάδες online υπηρεσίες μετατροπής favicon (όπως αυτή) θα μπορέσετε να μετατρέψετε οποιοδήποτε εικονίδιο σε 16×16 ICO.
Όπως και να ‘χει, όταν το ICO σας είναι έτοιμο, θα πρέπει να το κωδικοποιήσετε με τον αλγόριθμο MIME Base64 ώστε να το μετατρέψετε από binary αρχείο σε ένα string που περιέχει μόνο αλφαριθμητικούς χαρακτήρες. O πιο εύκολος τρόπος για να γίνει αυτό είναι –πάλι- να χρησιμοποιήσετε κάποια online υπηρεσία που να αναλαμβάνει να το κάνει αυτό για εσάς, όπως αυτή που θα βρείτε εδώ (αν και οι μάστορες του Linux μάλλον θα προτιμήσετε να χρησιμοποιήσετε το openssl). Κρατήστε κάπου το αλφαριθμητικό που θα λάβετε ως αποτέλεσμα και είστε πλέον έτοιμοι να προχωρήσετε στην κατασκευή του αρχείου XML.

Η κατασκευή

Αυτό είναι το εύκολο κομμάτι. Τα περιεχόμενα του πρότυπου αρχείου XML που χρησιμοποιείται ως search plugin, σύμφωνα με την υλοποίηση OpenSearch του Firefox είναι τα εξής:

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;OpenSearchDescription xmlns=&quot;http://a9.com/-/spec/opensearch/1.1/&quot; xmlns:moz=&quot;http://www.mozilla.org/2006/browser/search/&quot;&gt;
  &lt;ShortName&gt;{1}&lt;/ShortName&gt;
  &lt;Description&gt;{2}&lt;/Description&gt;
  &lt;InputEncoding&gt;{3}&lt;/InputEncoding&gt;
  &lt;Image width=&quot;16&quot; height=&quot;16&quot;&gt;data:image/x-icon;base64,{4}&lt;/Image&gt;
  &lt;Url type=&quot;text/html&quot; method=&quot;{5}&quot; template=&quot;{6}&quot;&gt;
    &lt;Param name=&quot;{7}&quot; value=&quot;{8}&quot;/&gt;
  &lt;/Url&gt;
&lt;/OpenSearchDescription&gt;

Αρχικά χρησιμοποιήστε έναν editor της επιλογής σας (αρκεί να μπορεί να αποθηκεύσει σε UTF-8) για να αντιγράψετε τον παραπάνω κώδικα. Στην συνέχεια αντικαταστήστε το {1} με το όνομα που θέλετε να δώστε στο plugin σας και το {2} με μια σύντομη περιγραφή. Στην θέση του {3} βάλτε την κωδικοσελίδα που χρησιμοποιεί η σελίδα της φόρμας που θέλετε να παρακάμψετε (συνήθως UTF-8). Στην θέση του {4} κάντε επικόλληση το αλφαριθμητικό MIME Base64 που δημιουργήσατε από το αρχείο του εικονιδίου ή, αν επιλέξατε να μην χρησιμοποιήσετε εικονίδιο, αφαιρέστε όλη την γραμμή 6 από τον κώδικα.

Ένας καλός editor, όπως το PSPad, θα χρειαστεί όχι μόνο για την δημιουργία του XML αλλά και για την επεξεργασία του nsSidebar.js στην συνέχεια. Στο στιγμιότυπο παρατηρήστε πόσο μικρό είναι ένα search plugin. Ουσιαστικά, ο κύριος όγκος του XML είναι τα δεδομένα του εικονιδίου.

Αν η φόρμα υποβάλλεται με την μέθοδο GET, αντικαταστήστε το {5} με το αλφαριθμητικό get και επικολλήστε το URL υποβολής που σας υπέδειξε το Tamper Data στην θέση του {6}. Κάπου μέσα στο URL αυτό θα υπάρχει ένα όρισμα που έχει ως τιμή την φράση που είχατε επιλέξει νωρίτερα (αν π.χ. είχατε ακολουθήσει την συμβουλή μας τότε, η φράση αυτή θα είναι deltaHacker). Αντικαταστήστε την φράση αυτή με το αλφαριθμητικό {searchTerms} (μαζί με τα άγκιστρα). Επίσης, αν το URL περιέχει χαρακτήρες & πρέπει να τους αντικαταστήσετε όλους με το αντίστοιχο entity (&amp;). Στην συνέχεια αφαιρέστε ολόκληρη την γραμμή 8 και το plugin σας είναι έτοιμο. Για παράδειγμα, στην περίπτωση του PirateBay, οι γραμμές 7-9 του προτύπου αντικατασταθούν απ΄τις εξής δύο:

&lt;Url type=&quot;text/html&quot; method=&quot;get&quot; template=&quot; http://thepiratebay.org/s/?q={searchTerms}&amp;amp;video=on&amp;amp;page=0&amp;amp;orderby=99&quot;&gt;
&lt;/Url&gt;

Τα πράγματα είναι λίγο διαφορετικά όταν η μέθοδος υποβολής της φόρμας είναι η POST. Αντικαταστήστε το {5} με το αλφαριθμητικό post και επικολλήστε το URL υποβολής που σας υπέδειξε το Tamper Data στην θέση του {6}, χωρίς όμως να το πειράξετε. Δημιουργήστε αντίγραφα της γραμμής 8, έτσι ώστε μαζί με την πρωτότυπη, να εμφανίζεται τόσες φορές όσα είναι και τα ορίσματα των δεδομένων POST που παρουσιάστηκαν στο δεξί μέρος του παραθύρου Tamper Popup νωρίτερα. Στην συνέχεια, αντικαταστήστε το {7} της κάθε γραμμής με το όνομα του κάθε ορίσματος και το {8} με την αντίστοιχη τιμή. Μια από αυτές τις τιμές θα είναι η φράση που επιλέξατε νωρίτερα και αυτήν θα πρέπει να την αντικαταστήσετε με το αλφαριθμητικό {searchTerms}. Για παράδειγμα, στην περίπτωση του warezakias.info, οι γραμμές 7-9 του προτύπου θα πάρουν την μορφή:

&lt;Url type=&quot;text/html&quot; method=&quot;post&quot; template=&quot;http://www.warezakias.info/index.php?&quot;&gt;
  &lt;Param name=&quot;forums&quot; value=&quot;7&quot;/&gt;
  &lt;Param name=&quot;cat_forum&quot; value=&quot;forum&quot;/&gt;
  &lt;Param name=&quot;act&quot; value=&quot;Search&quot;/&gt;
  &lt;Param name=&quot;joinname&quot; value=&quot;1&quot;/&gt;
  &lt;Param name=&quot;CODE&quot; value=&quot;01&quot;/&gt;
  &lt;Param name=&quot;keywords&quot; value=&quot;{searchTerms}&quot;/&gt;
&lt;/Url&gt;

Με αυτές τις αλλαγές το plugin είναι έτοιμο. Αποθηκεύστε το αρχείο με όνομα MyPlugin.xml.

Εφαρμογή: Μετάφραση από αγγλικά σε ελληνικά (Google Translate)

Ακολουθώντας την διαδικασία για την φόρμα της σελίδας του Google Translate, αφού έχετε επιλέξει μετάφραση από αγγλικά στα ελληνικά, το Tamper Data θα σας πληροφορήσει ότι η μέθοδος υποβολής της φόρμας είναι η POST, ότι το URL υποβολής είναι το http://translate.google.com/translate_t και ότι «πασάρονται» τα επόμενα 5 ορίσματα:

  • Το prev χωρίς τιμή
  • To hl με τιμή en
  • Το text με τιμή την προς μετάφραση φράση
  • Το sl με τιμή en
  • Το tl με τιμή el

Συνεπώς ο κώδικας του search plugin που πρέπει να δημιουργήσετε (χωρίς να συμπεριλάβετε εικονίδιο) είναι:

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;OpenSearchDescription xmlns=&quot;http://a9.com/-/spec/opensearch/1.1/&quot; xmlns:moz=&quot;http://www.mozilla.org/2006/browser/search/&quot;&gt;
  &lt;ShortName&gt;EN-&gt;GR Translation&lt;/ShortName&gt;
  &lt;Description&gt;EN-&gt;GR Translation using Google Translate&lt;/Description&gt;
  &lt;InputEncoding&gt;UTF-8&lt;/InputEncoding&gt;
  &lt;Url type=&quot;text/html&quot; method=&quot;post&quot; template=&quot;http://translate.google.com/translate_t&quot;&gt;
    &lt;Param name=&quot;prev&quot; value=&quot;&quot;/&gt;
    &lt;Param name=&quot;hl&quot; value=&quot;en&quot;/&gt;
    &lt;Param name=&quot;text&quot; value=&quot;{searchTerms}&quot;/&gt;
    &lt;Param name=&quot;sl&quot; value=&quot;en&quot;/&gt;
    &lt;Param name=&quot;tl&quot; value=&quot;el&quot;/&gt;
  &lt;/Url&gt;
&lt;/OpenSearchDescription&gt;

Εφαρμογή: Παραγωγή short URL (Is.gd)

Χρησιμοποιώντας το Tamper Data στην φόρμα της αρχικής σελίδας της υπηρεσίας παραγωγής short URL is.gd, θα ανακαλύψετε ότι η υποβολή της φόρμας γίνεται με την μέθοδο POST, το URL υποβολής είναι το http://is.gd/create.php και το μοναδικό όρισμα που αποστέλλεται ονομάζεται URL και έχει ως τιμή το URL που αποστέλλεται προς «σμίκρυνση». «Δανειστείτε» το εικονίδιο της υπηρεσίας και αφού το μετατρέψετε σε Base64, δημιουργήστε το search plugin με τον εξής κώδικα:

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;OpenSearchDescription xmlns=&quot;http://a9.com/-/spec/opensearch/1.1/&quot; xmlns:moz=&quot;http://www.mozilla.org/2006/browser/search/&quot;&gt;
  &lt;ShortName&gt;is.gd&lt;/ShortName&gt;
  &lt;Description&gt;is.gd short URL service&lt;/Description&gt;
  &lt;InputEncoding&gt;UTF-8&lt;/InputEncoding&gt;
  &lt;Image width=&quot;16&quot; height=&quot;16&quot;&gt;data:image/x-icon;base64,AAABAAEAEBAAAAEAGABoAwAAFgAAACgAAAAQAAAAIAAAAAEAGAAAAAAAAAAAACMuAAAjLgAAAAAAAAAAAAAACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcwN8VAR8lAR8lAR8kACbcACbcgKMBAR8lAR8lAR8lAR8lAR8lAR8kACbcACbcACbe/we3///////////8ACbdQVs7////////////////////////////P0fEACbcACbe/we3///////////8ACbd/hNv///////////////////////////////8ACbcACbe/we3///////////8ACbd/hNv////////////P0fHv8Pr///////////8ACbcACbe/we3///////////8ACbdAR8l/hNt/hNt/hNsgKMC/we3///////////8ACbcACbe/we3///////////8ACbcwN8Xf4Pb///////////////////////////8ACbcACbe/we3///////////8ACbd/hNv///////////////////////////////8ACbcACbe/we3///////////8ACbd/hNv///////////////////////////+Pk98ACbcACbePk9+/we2/we2/we0ACbd/hNv///////////9AR8kwN8VAR8lAR8lAR8kACbcACbdgZtJ/hNt/hNt/hNsACbd/hNv///////////+fouTf4Pb///////////8ACbcACbe/we3///////////8ACbd/hNv///////////////////////////////8ACbcACbe/we3///////////8ACbdwddf////////////////////////////v8PoACbcACbdgZtJ/hNt/hNt/hNsACbcACbdgZtJ/hNt/hNt/hNt/hNt/hNt/hNsgKMAACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcACbcAACJWAAADywAAF7EAAAUpAAB/KAAAahIAAD+LAACxigAAkK4AAO3WAAB/7AAARQEAAG2fAAB1WgAAkKkAAEv0&lt;/Image&gt;
  &lt;Url type=&quot;text/html&quot; method=&quot;post&quot; template=&quot;http://is.gd/create.php&quot;&gt;
    &lt;Param name=&quot;url&quot; value=&quot;{searchTerms}&quot;/&gt;
  &lt;/Url&gt;
&lt;/OpenSearchDescription&gt;
Εφαρμογή: Βιαστικό twitting (Twitter)

Η φόρμα υποβολής ενός tweet, την οποία βλέπετε στην κορυφή της σελίδας σας στο twitter, χρησιμοποιεί την μέθοδο POST. Αν μελετήσετε την αποστολή ενός tweet με το Tamper Data θα παρατηρήσετε ότι το twitter είναι ένα από τα «σκληρά καρύδια» για τα οποία διαβάσατε στην ανάλογη παράγραφο, αφού ένα από τα ορίσματα που υποβάλλονται είναι δυναμικό όρισμα ασφαλείας (ονομάζεται authenticity_token και έχει ως τιμή ένα μακρύ και περίπλοκο αλφαριθμητικό).
Ρίχνοντας μια ματιά όμως στο Twitter API (και συγκεκριμένα εδώ) θα ανακαλύψετε ότι το twitter παρέχει «νόμιμο» τρόπο να υποβληθεί ένα tweet με την μέθοδο POST. Συγκεκριμένα, η υποβολή πρέπει να γίνει στο URL http://twitter.com/statuses/update.xml με μοναδικό υποχρεωτικό όρισμα το status, το οποίο πρέπει να έχει ως τιμή το tweet προς υποβολή.
Αφού πάλι «δανειστείτε» το εικονίδιο του twitter και το μετατρέψετε σε Base64, μπορείτε να δημιουργήσετε ένα search plugin με τον εξής κώδικα:

&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;
&lt;OpenSearchDescription xmlns=&quot;http://a9.com/-/spec/opensearch/1.1/&quot; xmlns:moz=&quot;http://www.mozilla.org/2006/browser/search/&quot;&gt;
  &lt;ShortName&gt;twitter&lt;/ShortName&gt;
  &lt;Description&gt;Submit updates to twitter status&lt;/Description&gt;
  &lt;InputEncoding&gt;UTF-8&lt;/InputEncoding&gt;
  &lt;Image width=&quot;16&quot; height=&quot;16&quot;&gt;data:image/x-icon;base64,AAABAAEAEBAAAAEACABoBQAAFgAAACgAAAAQAAAAIAAAAAEACAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAADw4ikA7d0HAO3cAAD16nwA8+doAP7+/QDz52cA/PrpAPTpdgD9/f0A///+AP39/gD8/PkA7d0IAPv42QD9/fwA/P3/APv2yADs2gAA+/v4APv2xwD264QA8OI5APPnZgDu3QAA+PGgAPXqgADx5E4A9+6aAO/gGAD164UA9ep+APDiOAD+/foA+fr6APfulADx5VAA7dsAAPz89QD37pMA9up8APz8/AD8+dcA/PjUAPz3zQD79MIA+/r4AP7++AD8/PsA/frnAPr1vgD7+eEA9uyLAP7+/AD9+/AA9eyFAPz54QD7+/YA7+EjAPr31QD48KUA9ep3APz53gD16n8A/Pv5APjxpgD48akA+/vxAPr7+gDz6GgA798AAP388gDx5EYA9Ol1APXqdQDu3hkA8uZYAPPnXgD+/v8A/PvzAP7//gDv4AAA/v//APz79AD48bEA+fO0APbsjAD7+NwA/fvtAPbtkADv4BQA+/jfAPv42gD79soA8+dgAPPmYwD9/PoA/f37APz8+AD9/PkA+fS8APDjOgD8/PcA+/fYAPbuigD69sYA+PGiAPv65gD37pYA/PrxAOzbAAD69s8A/PrqAPbthgD16XYA9elxAPv69QD8+uIA+/jYAPv54wD69tQA7NwAAPjxpAD48Z4A7t4AAP7+/gD///8A////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgICAgAUibVx2Dg52TwyAgICAgA8JIzoBAQ0NAiBHgICAgAVjTRIYfHx8fHwSMoCAgIAQcW58fAICAnklSzGAgIB9QwBGUVpoQWoZej6AgICAfXg6AB17EAkLCylQgICAgFJvZUgWaTAKfX01gICAgIBOOyRMG2Q2B3AHayGAgICAfWdeBEUEBgQGBl83L4CAgIBXcz0ICElKcgg9FyqAgICAWz8VHh8DAygDAxpYgICAfTM0WVZVXREUFBF1YICAgH13bBwnPkQTEy5AD4CAgIB9B0JUPDgMgICAgICAgICACmYrLSwmBYCAgICAgICAgIBhdFM5YoCAgICAgICAgPADAADgAwAAwAMAAMADAACABwAAgAcAAIAPAACABwAAgAMAAMADAADAAwAAgAMAAIAHAACA/wAAgP8AAMH/AAA=&lt;/Image&gt;
  &lt;Url type=&quot;text/html&quot; method=&quot;post&quot; template=&quot;http://twitter.com/statuses/update.xml&quot;&gt;
    &lt;Param name=&quot;status&quot; value=&quot;{searchTerms}&quot;/&gt;
  &lt;/Url&gt;
&lt;/OpenSearchDescription&gt;
Η εγκατάσταση

Για να εγκαταστήσετε ένα plugin (το οποίο έχετε έτοιμο σε μορφή XML) στον Firefox σας, αρκεί η εξής κλήση JavaScript στην γραμμή διευθύνσεων του browser:

javascript:window.external.AddSearchProvider('URL του αρχείου XML');

Εγκατάσταση του XML για το search plugin του PirateBay από τοπικό φάκελο (επιφάνεια εργασίας των Windows Vista) με χρήση της κατάλληλης κλήσης JavaScript. Αν δεν έχετε κάνει την κατάλληλη μετατροπή στο αρχείο nsSidebar.js του Firefox, αντί αυτού του παράθυρου διαλόγου θα εμφανιστεί ένα μήνυμα λάθους και δεν θα σας επιτραπεί να εγκαταστήσετε το plugin.

Φυσικά στην εντολή αυτή πρέπει να αντικαταστήσετε το κείμενο που βρίσκεται ανάμεσα στις δύο αποστρόφους με το URL του αρχείου. Δυστυχώς, για λόγους ασφαλείας, ο Firefox δεν δέχεται την δομή file:/// σε αυτήν την θέση, γεγονός που σας εμποδίζει να εγκαταστήσετε το search plugin άμεσα από ένα τοπικό φάκελο. Για να μην αναγκαστείτε να στήνετε web servers στο μηχάνημά σας ή να χρησιμοποιήσετε κάποιο online hosting service για αυτή την απλή δουλειά, θα πρέπει να «πείσετε» τον Firefox να δεχτεί την δομή file:/// στην θέση του URL.
Για να το κάνετε αυτό κλείστε τον Firefox και χρησιμοποιήστε τον editor σας πάλι για να επεξεργαστείτε το αρχείο nsSidebar.js που θα βρείτε στον φάκελο components που υπάρχει στην τοποθεσία εγκατάστασης του Firefox (π.χ. στα Windows, C:\Program Files\Mozilla Firefox\components\nsSidebar.js). Κάπου στην γραμμή 100 του εν λόγω αρχείου θα διαβάσετε το εξής:

if (! /^(https?|ftp):\/\//i.test(engineURL))

Ακριβώς μετά το “ftp” προσθέστε το “|file” ώστε η γραμμή αυτή να γίνει:

if (! /^(https?|ftp|file):\/\//i.test(engineURL))

Αποθηκεύστε το αρχείο και ξεκινήστε ξανά τον Firefox. Τώρα μπορείτε πλέον να εγκαθιστάτε search plugin κατευθείαν από ένα τοπικό φάκελο και έτσι, αν αποθηκεύσατε το MyPlugin.xml στο D:\Temp, για να το εγκαταστήσετε πληκτρολογήστε στην γραμμή διευθύνσεων του Firefox το

javascript:window.external.AddSearchProvider('file:///D:/Temp/MyPlugin.xml');

και πατήστε Enter.
Φυσικά, όλη αυτή η διαδικασία είναι περιττή αν έχετε σκοπό να δημοσιεύσετε το XML σε κάποιο host. Τότε μπορείτε να χρησιμοποιήσετε το παραπάνω JavaScript call με ένα http:// URL και να μην έχετε κανένα πρόβλημα ή, ακόμα καλύτερα, να δημιουργήσετε μια συνοδευτική σελίδα HTML στην οποία το call αυτό θα παρέχεται ως σύνδεσμος.

Επίλογος

Η διαδικασία μπορεί να μοιάζει περίπλοκη αλλά -πιστέψτε μας- δεν είναι. Ακολουθήστε τα βήματα στην πράξη για να δημιουργήσετε το πρώτο σας plugin και θα δείτε ότι στην συνέχεια η διαδικασία θα σας φαίνεται απλή. Ο πίνακας που ακολουθεί περιέχει όλα τα παραδείγματα που αναφέρθηκαν στο άρθρο -καθώς και μερικά ακομα, εξίσου ενδιαφέροντα- για να τα εγκαταστήσετε και να τα δοκιμάσετε στην πράξη, να κατεβάσετε τα αντίστοιχα XML για να τα μελετήσετε, να τα πειράξετε και να τα φέρετε στα μέτρα σας.

Υπηρεσία Χρήση & Μέθοδος υποβολής Υλοποίηση
ThePirateBay Αναζήτηση σε torrents της κατηγορίας video
GET
Δείτε τον κώδικα
Εγκαταστήστε το
Demonoid Αναζήτηση σε torrents της κατηγορίας Books.
Για να λειτουργήσει πρέπει να έχετε λογαριασμό στην υπηρεσία και να έχετε κάνει login.
GET
Δείτε τον κώδικα
Εγκαταστήστε το
Ubuntu-gr.org Αναζήτηση στις δημοσιεύσεις του Ubuntu-gr
POST με όρισμα ασφαλείας.
Δείτε τον κώδικα
Εγκαταστήστε το
wunderground Εμφάνιση πρόγνωσης καιρού για την πόλη που εισάγεται στην search bar
GET
Δείτε τον κώδικα
Εγκαταστήστε το
ΟΤΕ Whitepages Εμφάνιση στοιχείων συνδρομητή ΟΤΕ με βάση τον τηλεφωνικό του αριθμό (Reverse Lookup)
POST
Δείτε τον κώδικα
Εγκαταστήστε το
Google Translate Μετάφραση της φράσης που εισάγεται στην search bar από τα αγγλικά στα ελληνικά.
POST
Δείτε τον κώδικα
Εγκαταστήστε το
Is.gd Δημιουργία σύντομων URL από πλήρες URL που δίνεται μέσα στην search bar.
POST
Δείτε τον κώδικα
Εγκαταστήστε το
Twitter Δημοσίευση του κειμένου που πληκτρολογείται στην search bar ως tweet.
Την πρώτη φορά που χρησιμοποιείται, χρειάζεται να πληκτρολογήσετε τα στοιχεία του λογαριασμού σας στο twitter.
POST με όρισμα ασφαλείας.
Δείτε τον κώδικα
Εγκαταστήστε το

Είμαστε περίεργοι να μάθουμε τις δικές σας ανορθόδοξες εφαρμογές…

Leave a Reply

You must be logged in to post a comment.

Σύνδεση

Αρχείο δημοσιεύσεων