Added feeds db table. Using undici agent for proxy.
This commit is contained in:
100
migrations/20260403231603_feeds.js
Normal file
100
migrations/20260403231603_feeds.js
Normal file
@@ -0,0 +1,100 @@
|
|||||||
|
exports.up = async function(knex) {
|
||||||
|
await knex.schema.createTable('feeds', (table) => {
|
||||||
|
table.increments('id');
|
||||||
|
|
||||||
|
table.integer('user_id')
|
||||||
|
.notNullable()
|
||||||
|
.references('id')
|
||||||
|
.inTable('users')
|
||||||
|
.onDelete('cascade');
|
||||||
|
|
||||||
|
table.string('name')
|
||||||
|
.notNullable();
|
||||||
|
|
||||||
|
table.string('slug')
|
||||||
|
.notNullable();
|
||||||
|
|
||||||
|
table.boolean('public');
|
||||||
|
table.boolean('primary');
|
||||||
|
|
||||||
|
table.text('comment');
|
||||||
|
table.json('meta');
|
||||||
|
|
||||||
|
table.datetime('created_at')
|
||||||
|
.notNullable()
|
||||||
|
.defaultTo(knex.fn.now());
|
||||||
|
});
|
||||||
|
|
||||||
|
await knex.schema.createTable('feeds_entities', (table) => {
|
||||||
|
table.increments('id');
|
||||||
|
|
||||||
|
table.integer('feed_id')
|
||||||
|
.notNullable()
|
||||||
|
.references('id')
|
||||||
|
.inTable('feeds')
|
||||||
|
.onDelete('cascade');
|
||||||
|
|
||||||
|
table.integer('entity_id')
|
||||||
|
.notNullable()
|
||||||
|
.references('id')
|
||||||
|
.inTable('entities')
|
||||||
|
.onDelete('cascade');
|
||||||
|
|
||||||
|
table.text('comment');
|
||||||
|
|
||||||
|
table.datetime('created_at')
|
||||||
|
.notNullable()
|
||||||
|
.defaultTo(knex.fn.now());
|
||||||
|
});
|
||||||
|
|
||||||
|
await knex.schema.createTable('feeds_actors', (table) => {
|
||||||
|
table.increments('id');
|
||||||
|
|
||||||
|
table.integer('feed_id')
|
||||||
|
.notNullable()
|
||||||
|
.references('id')
|
||||||
|
.inTable('feeds')
|
||||||
|
.onDelete('cascade');
|
||||||
|
|
||||||
|
table.integer('actor_id')
|
||||||
|
.notNullable()
|
||||||
|
.references('id')
|
||||||
|
.inTable('actors')
|
||||||
|
.onDelete('cascade');
|
||||||
|
|
||||||
|
table.text('comment');
|
||||||
|
|
||||||
|
table.datetime('created_at')
|
||||||
|
.notNullable()
|
||||||
|
.defaultTo(knex.fn.now());
|
||||||
|
});
|
||||||
|
|
||||||
|
await knex.schema.createTable('feeds_tags', (table) => {
|
||||||
|
table.increments('id');
|
||||||
|
|
||||||
|
table.integer('feed_id')
|
||||||
|
.notNullable()
|
||||||
|
.references('id')
|
||||||
|
.inTable('feeds')
|
||||||
|
.onDelete('cascade');
|
||||||
|
|
||||||
|
table.integer('tag_id')
|
||||||
|
.notNullable()
|
||||||
|
.references('id')
|
||||||
|
.inTable('tags')
|
||||||
|
.onDelete('cascade');
|
||||||
|
|
||||||
|
table.text('comment');
|
||||||
|
|
||||||
|
table.datetime('created_at')
|
||||||
|
.notNullable()
|
||||||
|
.defaultTo(knex.fn.now());
|
||||||
|
});
|
||||||
|
};
|
||||||
|
|
||||||
|
exports.down = async function(knex) {
|
||||||
|
await knex.schema.dropTable('feeds_tags');
|
||||||
|
await knex.schema.dropTable('feeds_actors');
|
||||||
|
await knex.schema.dropTable('feeds_entities');
|
||||||
|
await knex.schema.dropTable('feeds');
|
||||||
|
};
|
||||||
@@ -8,7 +8,6 @@ const fs = require('fs').promises;
|
|||||||
// const util = require('util');
|
// const util = require('util');
|
||||||
// const stream = require('stream');
|
// const stream = require('stream');
|
||||||
const { pipeline } = require('stream/promises');
|
const { pipeline } = require('stream/promises');
|
||||||
const tunnel = require('tunnel');
|
|
||||||
const Bottleneck = require('bottleneck');
|
const Bottleneck = require('bottleneck');
|
||||||
const { JSDOM, toughCookie } = require('jsdom');
|
const { JSDOM, toughCookie } = require('jsdom');
|
||||||
const puppeteer = require('puppeteer-extra');
|
const puppeteer = require('puppeteer-extra');
|
||||||
@@ -328,11 +327,8 @@ const defaultAgent = new undici.Agent({
|
|||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const proxyAgent = tunnel.httpsOverHttp({
|
const proxyAgent = new undici.ProxyAgent({
|
||||||
proxy: {
|
uri: `http://${config.proxy.host}:${config.proxy.port}`,
|
||||||
host: config.proxy.host,
|
|
||||||
port: config.proxy.port,
|
|
||||||
},
|
|
||||||
});
|
});
|
||||||
|
|
||||||
async function request(method = 'get', url, body, requestOptions = {}, limiter, redirects = 0) {
|
async function request(method = 'get', url, body, requestOptions = {}, limiter, redirects = 0) {
|
||||||
|
|||||||
Reference in New Issue
Block a user