запустите приложение для ведения учета с помощью greasemonkey - PullRequest
5 голосов
/ 28 февраля 2009

Мой скрипт greasemonkey сканирует каждую страницу, которую я посещаю, для поиска определенной строки. Я хотел бы записать варианты строки в БД sqlite. Через какое-то время у меня будет еще одно приложение для обработки этого БД. Что я не знаю, как я могу хранить данные в sqlite db? Я думал, что могу запустить исполняемый файл автоматически, если строка была найдена, но я не знаю, как это сделать с помощью JavaScript. Я подумал, что есть еще одна альтернатива: прослушивание сокета через определенный порт и волшебство js, но я не мог придумать тихий способ отправки данных.

Ответы [ 5 ]

3 голосов
/ 04 марта 2009

Я рекомендую использовать веб-сервер для сбора данных. Вы можете настроить домен или IP для отправки данных. Просто для начала вы можете даже запустить на localhost, если вам нужно.

Преимущество заключается в том, что однажды созданная одна и та же архитектура может использоваться на разных компьютерах, так что любой компьютер, с которого запускается сценарий, может поделиться результатами.

Обновление: Для связи с вашим сервером вам необходимо использовать GM_xmlhttpRequest . Я знаю одну библиотеку, которая добавляет слой абстракции для упрощения использования GM_xmlhttpRequest: Speakeasy.js. Это относительно неизвестный легкий ActiveResource-подобный интерфейс для отправки и извлечения данных с веб-сервера RESTful. Вот пример скрипта Greasemonkey, который связывается с веб-сервером при каждой загрузке страницы. Загружает аннотации и отображает их на странице.

Вот адаптированная версия, близкая к вашим потребностям:

// ==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
  }
});

Вы можете быстро создать сайт Rails или использовать любой знакомый вам бэкэнд.

2 голосов
/ 02 марта 2009

Вы также можете рассмотреть возможность использования расширения Google Gears, которое использует внутреннюю базу данных SQLite.

1 голос
/ 03 апреля 2010

Или вы просто используете LubeMonkey, это улучшенная вилка Greasemonkey с поддержкой sqlite. Каждый установленный скрипт получает свою собственную базу данных sqlite, и вы можете выполнять запросы обновлений и т. Д. В пределах этой базы данных, вы даже можете кэшировать изображения в базе данных или любых данных. Получите это здесь http://www.gamecore.org

1 голос
/ 04 марта 2009

Я не уверен, как вы можете использовать его с Greasemonkey, но у Firefox есть API под названием Storage для использования базы данных sqlite. Проверьте это здесь: https://developer.mozilla.org/en/Storage

0 голосов
/ 28 февраля 2009

Вы можете заставить скрипт greasemonkey вызывать URL с некоторыми переменными (например, данными, которые вы хотите сохранить). Используйте ajax-запросы. Вы можете настроить веб-сервер локально для их обработки.

Если вы работаете в Windows, вы можете использовать WAMP для быстрого запуска веб-сервера. Просто убедитесь, что вы включили расширение php_sqlite.

Это может помочь вам с некоторыми особенностями реализации: http://www.pathf.com/blogs/2006/07/bjax_with_greas/

...