65 lines
2.1 KiB
JavaScript
65 lines
2.1 KiB
JavaScript
// -*- coding: utf-8 -*-
|
|
// vi:si:et:sw=4:sts=4:ts=4:ft=js
|
|
|
|
let EXPORTED_SYMBOLS = [ "oxff" ];
|
|
|
|
const Cc = Components.classes;
|
|
const Ci = Components.interfaces;
|
|
|
|
Components.utils.import("resource://ox/utils.jsm");
|
|
|
|
let oxff = {
|
|
getDBFile: function() {
|
|
var file = Cc["@mozilla.org/file/directory_service;1"].getService(Ci.nsIProperties)
|
|
.get("ProfD", Ci.nsIFile);
|
|
file.append("OxFF.sqlite");
|
|
return file;
|
|
},
|
|
getDB: function() {
|
|
var file = this.getDBFile();
|
|
var storageService = Cc["@mozilla.org/storage/service;1"].getService(Ci.mozIStorageService);
|
|
var conn = storageService.openDatabase(file);
|
|
conn.executeSimpleSQL("CREATE TABLE IF NOT EXISTS site (site varchar(1024) unique, access INT)");
|
|
conn.executeSimpleSQL("CREATE TABLE IF NOT EXISTS setting (key varchar(1024) unique, value text)");
|
|
return conn;
|
|
},
|
|
get: function(key, value) {
|
|
var conn = this.getDB();
|
|
var q = conn.createStatement("SELECT value FROM setting WHERE key = :key");
|
|
q.params.key = key;
|
|
if (q.executeStep())
|
|
value = q.row.value;
|
|
q.finalize();
|
|
return value;
|
|
},
|
|
set: function(key, value) {
|
|
var conn = this.getDB();
|
|
var q = conn.createStatement("INSERT OR REPLACE INTO setting values (:key, :value)");
|
|
q.params.key = key;
|
|
q.params.value = value;
|
|
q.executeStep();
|
|
q.finalize();
|
|
},
|
|
access: function(site, access) {
|
|
var conn = oxff.getDB();
|
|
var q = conn.createStatement("INSERT OR REPLACE INTO site values (:site, :access)");
|
|
q.params.site = site;
|
|
if (access)
|
|
q.params.access = 1;
|
|
else
|
|
q.params.access = 0;
|
|
q.executeStep();
|
|
q.finalize();
|
|
},
|
|
extractVideo: function(oshash, url, profile, callback, progress) {
|
|
var conn = this.getDB();
|
|
var q = conn.createStatement("SELECT path FROM file WHERE oshash = :oshash");
|
|
q.params.oshash = oshash;
|
|
if (q.executeStep())
|
|
var path = q.row.path;
|
|
q.finalize();
|
|
|
|
ox.subprocess(command, options, callback);
|
|
},
|
|
};
|
|
|