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
Non sono sicuro di come utilizzarlo con Greasemonkey ma Firefox ha un'API chiamata Archiviazione per l'utilizzo di un database SQLite. Controlla qui: https://developer.mozilla.org/en/Storage
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/
si potrebbe anche voler considerare l'utilizzo di estensione di Google Gears, che utilizza un database SQLite sotto il cofano.
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.
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
come potrei inviare dati al mio sito o localhost mentre navigo? dovrebbe scansionare automaticamente ogni pagina e inviare silenziosamente –
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