forked from DebaucheryLibrarian/traxxx
Added WIP media module. Returning releases from release search database function. Fixed page loop in update module.
This commit is contained in:
@@ -18,7 +18,8 @@ exports.up = knex => Promise.resolve()
|
||||
.defaultTo(0);
|
||||
}))
|
||||
.then(() => knex.schema.createTable('media', (table) => {
|
||||
table.increments('id', 16);
|
||||
table.string('id', 21)
|
||||
.primary();
|
||||
|
||||
table.string('path');
|
||||
table.string('thumbnail');
|
||||
@@ -35,7 +36,9 @@ exports.up = knex => Promise.resolve()
|
||||
|
||||
table.string('scraper', 32);
|
||||
table.string('copyright', 100);
|
||||
table.string('source', 1000);
|
||||
|
||||
table.string('source', 2100);
|
||||
table.string('source_page', 2100);
|
||||
|
||||
table.text('comment');
|
||||
table.string('group');
|
||||
@@ -47,23 +50,23 @@ exports.up = knex => Promise.resolve()
|
||||
.defaultTo(knex.fn.now());
|
||||
}))
|
||||
.then(() => knex.schema.createTable('media_sfw', (table) => {
|
||||
table.increments('id', 12);
|
||||
table.string('id', 21)
|
||||
.primary();
|
||||
|
||||
table.integer('media_id', 16)
|
||||
table.string('media_id', 21)
|
||||
.references('id')
|
||||
.inTable('media');
|
||||
|
||||
table.unique('media_id');
|
||||
.inTable('media')
|
||||
.unique();
|
||||
}))
|
||||
.then(() => knex.raw(`
|
||||
CREATE FUNCTION get_random_sfw_media_id() RETURNS int AS $$
|
||||
CREATE FUNCTION get_random_sfw_media_id() RETURNS varchar AS $$
|
||||
SELECT media_id FROM media_sfw
|
||||
ORDER BY random()
|
||||
LIMIT 1;
|
||||
$$ LANGUAGE sql STABLE;
|
||||
`))
|
||||
.then(() => knex.schema.alterTable('media', (table) => {
|
||||
table.integer('sfw_media_id', 16)
|
||||
table.string('sfw_media_id', 21)
|
||||
.references('id')
|
||||
.inTable('media')
|
||||
.defaultTo(knex.raw('get_random_sfw_media_id()'));
|
||||
@@ -112,7 +115,7 @@ exports.up = knex => Promise.resolve()
|
||||
.references('id')
|
||||
.inTable('tags');
|
||||
|
||||
table.integer('media_id', 16)
|
||||
table.string('media_id', 21)
|
||||
.notNullable()
|
||||
.references('id')
|
||||
.inTable('media');
|
||||
@@ -125,7 +128,7 @@ exports.up = knex => Promise.resolve()
|
||||
.references('id')
|
||||
.inTable('tags');
|
||||
|
||||
table.integer('media_id', 16)
|
||||
table.string('media_id', 21)
|
||||
.notNullable()
|
||||
.references('id')
|
||||
.inTable('media');
|
||||
@@ -472,7 +475,7 @@ exports.up = knex => Promise.resolve()
|
||||
.references('id')
|
||||
.inTable('actors');
|
||||
|
||||
table.integer('media_id', 16)
|
||||
table.string('media_id', 21)
|
||||
.notNullable()
|
||||
.references('id')
|
||||
.inTable('media');
|
||||
@@ -485,7 +488,7 @@ exports.up = knex => Promise.resolve()
|
||||
.references('id')
|
||||
.inTable('actors');
|
||||
|
||||
table.integer('media_id', 16)
|
||||
table.string('media_id', 21)
|
||||
.notNullable()
|
||||
.references('id')
|
||||
.inTable('media');
|
||||
@@ -622,7 +625,7 @@ exports.up = knex => Promise.resolve()
|
||||
.references('id')
|
||||
.inTable('releases');
|
||||
|
||||
table.integer('media_id', 16)
|
||||
table.string('media_id', 21)
|
||||
.notNullable()
|
||||
.references('id')
|
||||
.inTable('media');
|
||||
@@ -635,7 +638,7 @@ exports.up = knex => Promise.resolve()
|
||||
.references('id')
|
||||
.inTable('releases');
|
||||
|
||||
table.integer('media_id', 16)
|
||||
table.string('media_id', 21)
|
||||
.notNullable()
|
||||
.references('id')
|
||||
.inTable('media');
|
||||
@@ -648,7 +651,7 @@ exports.up = knex => Promise.resolve()
|
||||
.references('id')
|
||||
.inTable('releases');
|
||||
|
||||
table.integer('media_id', 16)
|
||||
table.string('media_id', 21)
|
||||
.notNullable()
|
||||
.references('id')
|
||||
.inTable('media');
|
||||
@@ -661,7 +664,7 @@ exports.up = knex => Promise.resolve()
|
||||
.references('id')
|
||||
.inTable('releases');
|
||||
|
||||
table.integer('media_id', 16)
|
||||
table.string('media_id', 21)
|
||||
.notNullable()
|
||||
.references('id')
|
||||
.inTable('media');
|
||||
@@ -674,7 +677,7 @@ exports.up = knex => Promise.resolve()
|
||||
.references('id')
|
||||
.inTable('releases');
|
||||
|
||||
table.integer('media_id', 16)
|
||||
table.string('media_id', 21)
|
||||
.notNullable()
|
||||
.references('id')
|
||||
.inTable('media');
|
||||
@@ -718,10 +721,12 @@ exports.up = knex => Promise.resolve()
|
||||
CREATE UNIQUE INDEX releases_search_unique ON releases_search (release_id);
|
||||
CREATE INDEX releases_search_index ON releases_search USING GIN (document);
|
||||
|
||||
CREATE FUNCTION search_releases(query text) RETURNS SETOF releases_search AS $$
|
||||
SELECT * FROM releases_search AS search
|
||||
WHERE search.document @@ plainto_tsquery('traxxx', regexp_replace(query, '\\.|-|(XXX\\.[\\d+|hd|sd].*$)', ' ', 'ig'))
|
||||
ORDER BY ts_rank(search.document, plainto_tsquery('traxxx', regexp_replace(query, '\\.|-|(XXX\\.[\\d+|hd|sd].*$)', ' ', 'ig'))) DESC;
|
||||
CREATE FUNCTION search_releases(query text) RETURNS SETOF releases AS $$
|
||||
SELECT * FROM releases WHERE releases.id IN (
|
||||
SELECT release_id FROM releases_search AS search
|
||||
WHERE search.document @@ plainto_tsquery('traxxx', regexp_replace(query, '\\.|-|(XXX\\.[\\d+|hd|sd].*$)', ' ', 'ig'))
|
||||
ORDER BY ts_rank(search.document, plainto_tsquery('traxxx', regexp_replace(query, '\\.|-|(XXX\\.[\\d+|hd|sd].*$)', ' ', 'ig'))) DESC
|
||||
);
|
||||
$$ LANGUAGE SQL STABLE;
|
||||
|
||||
CREATE FUNCTION search_sites(search text) RETURNS SETOF sites AS $$
|
||||
|
||||
Reference in New Issue
Block a user