mirror of
https://github.com/orangecoding/fredy.git
synced 2026-06-16 12:31:07 +00:00
Update SQLite adapter: configurable database path (#169)
This commit is contained in:
committed by
GitHub
parent
de119c9199
commit
027e7d70ed
@@ -1,7 +1,18 @@
|
|||||||
import { markdown2Html } from '../../services/markdown.js';
|
import { markdown2Html } from '../../services/markdown.js';
|
||||||
import Database from 'better-sqlite3';
|
import Database from 'better-sqlite3';
|
||||||
export const send = ({ serviceName, newListings, jobKey }) => {
|
import path from 'path';
|
||||||
const db = new Database('db/listings.db');
|
import fs from 'fs';
|
||||||
|
|
||||||
|
export const send = ({ serviceName, newListings, jobKey, notificationConfig }) => {
|
||||||
|
const sqliteConfig = notificationConfig.find((adapter) => adapter.id === config.id);
|
||||||
|
const dbPath = sqliteConfig?.fields?.dbPath || 'db/listings.db';
|
||||||
|
|
||||||
|
const dbDir = path.dirname(dbPath);
|
||||||
|
if (!fs.existsSync(dbDir)) {
|
||||||
|
fs.mkdirSync(dbDir, { recursive: true });
|
||||||
|
}
|
||||||
|
|
||||||
|
const db = new Database(dbPath);
|
||||||
const fields = [
|
const fields = [
|
||||||
'serviceName',
|
'serviceName',
|
||||||
'jobKey',
|
'jobKey',
|
||||||
@@ -30,8 +41,16 @@ export const send = ({ serviceName, newListings, jobKey }) => {
|
|||||||
};
|
};
|
||||||
export const config = {
|
export const config = {
|
||||||
id: 'sqlite',
|
id: 'sqlite',
|
||||||
name: 'Sqlite',
|
name: 'SQLite',
|
||||||
description: 'This adapter stores listings in a local sqlite3 database.',
|
description: 'This adapter stores listings in a local SQLite 3 database.',
|
||||||
config: {},
|
fields: {
|
||||||
|
dbPath: {
|
||||||
|
type: 'text',
|
||||||
|
label: 'Database Path',
|
||||||
|
description:
|
||||||
|
'Path to the SQLite database file (e.g., db/listings.db). If not specified, defaults to db/listings.db',
|
||||||
|
placeholder: 'db/listings.db',
|
||||||
|
},
|
||||||
|
},
|
||||||
readme: markdown2Html('lib/notification/adapter/sqlite.md'),
|
readme: markdown2Html('lib/notification/adapter/sqlite.md'),
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
### Sqlite Adapter
|
### SQLite Adapter
|
||||||
|
|
||||||
This adapter stores search results in a sqlite database located in db/listings.db. This file can be used for further analysis later on.
|
This adapter stores search results in an SQLite database. By default, the database is located at `db/listings.db`, but you can configure a custom location. This file can be used for further analysis later.
|
||||||
|
|
||||||
Fields are:
|
The database table contains the following columns (all stored as `TEXT` type):
|
||||||
|
|
||||||
```
|
```
|
||||||
['serviceName', 'jobKey', 'id', 'size', 'rooms', 'price', 'address', 'title', 'link', 'description']
|
['serviceName', 'jobKey', 'id', 'size', 'rooms', 'price', 'address', 'title', 'link', 'description', 'image']
|
||||||
```
|
```
|
||||||
|
|||||||
Reference in New Issue
Block a user