2009-02-28 13 views
5

Ho il mio script greasemonkey che esegue la scansione di ogni pagina che visito per una stringa specifica. Vorrei registrare le variazioni della stringa in un db sqlite. Avrò un'altra applicazione per questo db everyonce in un istante. Che cosa non so è COME memorizzo i dati nel sqb db? Stavo pensando di poter avviare un eseguibile automaticamente se la stringa è stata trovata, ma non so come farlo tramite javascript. Un'altra alternativa che pensavo era avere un socket in ascolto su una determinata porta e avere qualche js magic ma non potevo pensare a un modo silenzioso di inviare dati del genere.avviare un'app per registrare keep con greasemonkey

risposta

0

Si può fare in modo che lo script greasemonkey chiami un url con alcune variabili (come i dati che si desidera memorizzare). Utilizzare richieste Ajax. È possibile configurare localmente un server Web per gestirli.

Se su Windows, è possibile utilizzare WAMP per lanciare rapidamente un server Web. Assicurati di abilitare l'estensione php_sqlite.

Questo può aiutare con alcune specifiche di implementazione: http://www.pathf.com/blogs/2006/07/bjax_with_greas/

2

si potrebbe anche voler considerare l'utilizzo di estensione di Google Gears, che utilizza un database SQLite sotto il cofano.

3

Si consiglia di utilizzare un server Web per raccogliere i dati. È possibile impostare un dominio o IP a cui inviare i dati. Solo per iniziare potresti anche eseguire su localhost se necessario.

Il vantaggio è che, una volta creata, la stessa architettura può essere utilizzata da diversi PC, in modo che qualsiasi computer da cui si esegue lo script possa condividere i risultati.

Aggiornamento: Per comunicare con il server è necessario utilizzare GM_xmlhttpRequest. Conosco una libreria che aggiunge un livello di astrazione per rendere più semplice l'uso di GM_xmlhttpRequest: Speakeasy.js. È un'interfaccia simile a ActiveResource leggera relativamente sconosciuta per l'invio e il recupero di dati da un server web RESTful. Here's an example di uno script Greasemonkey che comunica con un server Web su ogni caricamento della pagina. Carica annotazioni e le visualizza sulla pagina.

Ecco una versione adattata vicino alle vostre esigenze:

// ==UserScript== 
// @name   Demo Script 
// @namespace  http://example.com 
// @description Sample 
// @include  * 
// 
// @require  http://ajax.googleapis.com/ajax/libs/jquery/1.3.1/jquery.min.js 
// @require  http://strd6.googlecode.com/svn/trunk/gm_util/d_money.js 
// @require  http://strd6.googlecode.com/svn/trunk/gm_util/speakeasy.js 
// 
// ==/UserScript== 


error = D$.error; 
log = D$.log; 
D$.debug(false); 


Speakeasy 
    .generateResource('result') 
    .configure({ 
    baseUrl: 'http://localhost:3000/' 
    }) 
; 


// Attach all annotations for this page from remote server 
var href = window.location.href; 
currentUrl = href.substring(href.indexOf('://') + 3); 
log(currentUrl); 

var result1 = 'something'; // Insert your function to get your result data 
var result2 = 'something else'; // Insert your function to get your result data 

Speakeasy.result.create({ 
    data: { 
    url: currentUrl, 
    result1: result1, 
    result2: result2 
    } 
}); 

È possibile creare rapidamente un sito Rails o l'uso qualunque backend si ha familiarità con.

+0

come potrei inviare dati al mio sito o localhost mentre navigo? dovrebbe scansionare automaticamente ogni pagina e inviare silenziosamente –

+0

Le variabili "result1" e "result2", in questo esempio, manterrebbero i dati desiderati. Se desideri solo l'intero codice HTML del sito, utilizza document.body.innerHTML. Altrimenti, filtra la pagina di conseguenza. I dati verranno inviati su ogni caricamento della pagina, poiché questo script viene eseguito su tutti i siti. – PotatoEngineer

1

O semplicemente usi LubeMonkey, è una forcella Greasemonkey migliorata con supporto sqlite. Ogni script installato ottiene il suo db sqlite creato ed è possibile eseguire gli aggiornamenti delle query ecc all'interno di tale db, è possibile anche memorizzare le immagini sul db o qualsiasi dato. Scaricalo qui http://www.gamecore.org