Initial commit: Lead Scraper - Google Maps
This commit is contained in:
55
store.js
Normal file
55
store.js
Normal file
@@ -0,0 +1,55 @@
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
const DATA_DIR = path.join(__dirname, 'data');
|
||||
const SEARCHES_FILE = path.join(DATA_DIR, 'searches.json');
|
||||
const LEADS_FILE = path.join(DATA_DIR, 'leads.json');
|
||||
|
||||
function ensureDataDir() {
|
||||
if (!fs.existsSync(DATA_DIR)) fs.mkdirSync(DATA_DIR, { recursive: true });
|
||||
}
|
||||
|
||||
function readJSON(file) {
|
||||
ensureDataDir();
|
||||
if (!fs.existsSync(file)) return {};
|
||||
try { return JSON.parse(fs.readFileSync(file, 'utf8')); }
|
||||
catch { return {}; }
|
||||
}
|
||||
|
||||
function writeJSON(file, data) {
|
||||
ensureDataDir();
|
||||
fs.writeFileSync(file, JSON.stringify(data, null, 2));
|
||||
}
|
||||
|
||||
// Searches
|
||||
function getSearches() { return readJSON(SEARCHES_FILE); }
|
||||
function saveSearch(key, data) {
|
||||
const all = getSearches();
|
||||
all[key] = data;
|
||||
writeJSON(SEARCHES_FILE, all);
|
||||
}
|
||||
function deleteSearch(key) {
|
||||
const all = getSearches();
|
||||
delete all[key];
|
||||
writeJSON(SEARCHES_FILE, all);
|
||||
}
|
||||
function getSearch(key) { return getSearches()[key] || null; }
|
||||
|
||||
// Leads
|
||||
function getLeads() { return readJSON(LEADS_FILE); }
|
||||
function saveLead(key, data) {
|
||||
const all = getLeads();
|
||||
all[key] = data;
|
||||
writeJSON(LEADS_FILE, all);
|
||||
}
|
||||
function deleteLead(key) {
|
||||
const all = getLeads();
|
||||
delete all[key];
|
||||
writeJSON(LEADS_FILE, all);
|
||||
}
|
||||
function isLead(placeId) {
|
||||
const all = getLeads();
|
||||
return Object.values(all).some(l => l.placeId === placeId);
|
||||
}
|
||||
|
||||
module.exports = { getSearches, saveSearch, deleteSearch, getSearch, getLeads, saveLead, deleteLead, isLead };
|
||||
Reference in New Issue
Block a user