Skip to content

Commit

Permalink
SQL: remove tracker
Browse files Browse the repository at this point in the history
  • Loading branch information
astro committed Dec 24, 2017
1 parent 90c8d20 commit 5173eeb
Show file tree
Hide file tree
Showing 5 changed files with 2 additions and 266 deletions.
52 changes: 2 additions & 50 deletions pg_downloads.sql
Original file line number Diff line number Diff line change
Expand Up @@ -40,36 +40,8 @@ CREATE TYPE download AS (
"downloaded" BIGINT
);

CREATE OR REPLACE FUNCTION get_popular_downloads(
INT, INT
) RETURNS SETOF download AS $$
SELECT *
FROM (SELECT user_feeds."user", user_feeds."slug", user_feeds."feed",
enclosures.item, enclosures.url AS enclosure,
COALESCE(user_feeds.title, feeds.title) AS feed_title, user_feeds."public" AS feed_public,
torrents.info_hash, torrents.name, torrents.size, enclosures.type,
feed_items.title, feed_items.lang, feed_items.summary, feed_items.published, feed_items.homepage, feed_items.payment, feed_items.image,
COALESCE(scraped.seeders, 0) AS "seeders", COALESCE(scraped.leechers, 0) AS "leechers",
COALESCE(scraped.upspeed, 0) AS "upspeed", COALESCE(scraped.downspeed, 0) AS "downspeed",
COALESCE(downloaded_stats.downloaded, 0) AS "downloaded"
FROM (SELECT info_hash, seeders, leechers, upspeed, downspeed
FROM scraped
ORDER BY (seeders + leechers) DESC
LIMIT $1 OFFSET $2
) AS scraped
JOIN torrents USING (info_hash)
JOIN downloaded_stats USING (info_hash)
JOIN enclosure_torrents ON (scraped.info_hash=enclosure_torrents.info_hash AND LENGTH(enclosure_torrents.info_hash)=20)
JOIN enclosures USING (url)
JOIN feed_items ON (enclosures.feed=feed_items.feed AND enclosures.item=feed_items.id)
JOIN feeds ON (feed_items.feed=feeds.url)
JOIN user_feeds ON (feed_items.feed=user_feeds.feed)
WHERE user_feeds."public"
) AS s
ORDER BY (seeders + leechers) DESC, downloaded DESC;
$$ LANGUAGE SQL;


-- TODO: rm dups
CREATE OR REPLACE FUNCTION get_most_downloaded(
INT, INT, INT
) RETURNS SETOF download AS $$
Expand All @@ -78,8 +50,6 @@ CREATE OR REPLACE FUNCTION get_most_downloaded(
COALESCE(user_feeds.title, feeds.title) AS feed_title, user_feeds."public" AS feed_public,
torrents.info_hash, torrents.name, torrents.size, enclosures.type,
feed_items.title, feed_items.lang, feed_items.summary, feed_items.published, feed_items.homepage, feed_items.payment, feed_items.image,
COALESCE(scraped.seeders, 0) AS "seeders", COALESCE(scraped.leechers, 0) AS "leechers",
COALESCE(scraped.upspeed, 0) AS "upspeed", COALESCE(scraped.downspeed, 0) AS "downspeed",
COALESCE(downloaded_stats.downloaded, 0) AS "downloaded"
FROM (SELECT info_hash, downloaded
FROM downloaded_stats
Expand All @@ -96,7 +66,6 @@ CREATE OR REPLACE FUNCTION get_most_downloaded(
JOIN feed_items ON (enclosures.feed=feed_items.feed AND enclosures.item=feed_items.id)
JOIN feeds ON (feed_items.feed=feeds.url)
JOIN user_feeds ON (feed_items.feed=user_feeds.feed)
LEFT JOIN scraped USING (info_hash)
WHERE user_feeds."public";
$$ LANGUAGE SQL;

Expand All @@ -110,9 +79,7 @@ CREATE OR REPLACE FUNCTION get_torrent_download(
COALESCE(user_feeds.title, feeds.title) AS feed_title, user_feeds."public" AS feed_public,
torrents.info_hash, torrents.name, torrents.size, enclosures.type,
feed_items.title, feed_items.lang, feed_items.summary, feed_items.published, feed_items.homepage, feed_items.payment, feed_items.image,
-- TODO: delete this
0 as "seeders", 0 as "leechers", 0 :: bigint as "upspeed", 0 :: bigint as "downspeed",
COALESCE(downloaded_stats.downloaded :: bigint, 0) :: bigint AS "downloaded"
COALESCE(downloaded_stats.downloaded, 0) AS "downloaded"
FROM torrents
LEFT JOIN downloaded_stats USING (info_hash)
JOIN enclosure_torrents USING (info_hash)
Expand All @@ -136,8 +103,6 @@ CREATE OR REPLACE FUNCTION get_recent_downloads(
COALESCE(user_feeds.title, feeds.title) AS feed_title, user_feeds."public" AS feed_public,
torrents.info_hash, torrents.name, torrents.size, enclosures.type,
feed_items.title, feed_items.lang, feed_items.summary, feed_items.published, feed_items.homepage, feed_items.payment, feed_items.image,
COALESCE(scraped.seeders, 0) AS "seeders", COALESCE(scraped.leechers, 0) AS "leechers",
COALESCE(scraped.upspeed, 0) AS "upspeed", COALESCE(scraped.downspeed, 0) AS "downspeed",
COALESCE(downloaded_stats.downloaded, 0) AS "downloaded"
FROM (SELECT feed, id, title, lang, summary, published, homepage, payment, image
FROM feed_items
Expand All @@ -149,7 +114,6 @@ CREATE OR REPLACE FUNCTION get_recent_downloads(
JOIN torrents ON (enclosure_torrents.info_hash=torrents.info_hash)
JOIN feeds ON (feed_items.feed=feeds.url)
JOIN user_feeds ON (feed_items.feed=user_feeds.feed)
LEFT JOIN scraped ON (enclosure_torrents.info_hash=scraped.info_hash)
LEFT JOIN downloaded_stats ON (enclosure_torrents.info_hash=downloaded_stats.info_hash)
WHERE user_feeds."public"
) AS s
Expand All @@ -165,8 +129,6 @@ CREATE OR REPLACE FUNCTION get_recent_downloads(
COALESCE(user_feeds.title, feeds.title) AS feed_title, user_feeds."public" AS feed_public,
torrents.info_hash, torrents.name, torrents.size, enclosures.type,
feed_items.title, feed_items.lang, feed_items.summary, feed_items.published, feed_items.homepage, feed_items.payment, feed_items.image,
COALESCE(scraped.seeders, 0) AS "seeders", COALESCE(scraped.leechers, 0) AS "leechers",
COALESCE(scraped.upspeed, 0) AS "upspeed", COALESCE(scraped.downspeed, 0) AS "downspeed",
COALESCE(downloaded_stats.downloaded, 0) AS "downloaded"
FROM (SELECT feed, id, title, lang, summary, published, homepage, payment, image
FROM feed_items
Expand All @@ -179,7 +141,6 @@ CREATE OR REPLACE FUNCTION get_recent_downloads(
JOIN torrents ON (enclosure_torrents.info_hash=torrents.info_hash)
JOIN feeds ON (feed_items.feed=feeds.url)
JOIN user_feeds ON (feed_items.feed=user_feeds.feed)
LEFT JOIN scraped ON (enclosure_torrents.info_hash=scraped.info_hash)
LEFT JOIN downloaded_stats ON (enclosure_torrents.info_hash=downloaded_stats.info_hash)
) AS s
ORDER BY published DESC;
Expand All @@ -194,8 +155,6 @@ CREATE OR REPLACE FUNCTION get_user_recent_downloads(
COALESCE(user_feeds.title, feeds.title) AS feed_title, user_feeds."public" AS feed_public,
torrents.info_hash, torrents.name, torrents.size, enclosures.type,
feed_items.title, feed_items.lang, feed_items.summary, feed_items.published, feed_items.homepage, feed_items.payment, feed_items.image,
COALESCE(scraped.seeders, 0) AS "seeders", COALESCE(scraped.leechers, 0) AS "leechers",
COALESCE(scraped.upspeed, 0) AS "upspeed", COALESCE(scraped.downspeed, 0) AS "downspeed",
COALESCE(downloaded_stats.downloaded, 0) AS "downloaded"
FROM (SELECT feed, id, title, lang, summary, published, homepage, payment, image
FROM feed_items
Expand All @@ -208,7 +167,6 @@ CREATE OR REPLACE FUNCTION get_user_recent_downloads(
JOIN torrents ON (enclosure_torrents.info_hash=torrents.info_hash)
JOIN feeds ON (feed_items.feed=feeds.url)
JOIN user_feeds ON (feed_items.feed=user_feeds.feed)
LEFT JOIN scraped ON (enclosure_torrents.info_hash=scraped.info_hash)
LEFT JOIN downloaded_stats ON (enclosure_torrents.info_hash=downloaded_stats.info_hash)
WHERE user_feeds."public"
) AS s
Expand All @@ -223,8 +181,6 @@ CREATE OR REPLACE FUNCTION get_enclosure_downloads(
COALESCE(user_feeds.title, feeds.title) AS feed_title, user_feeds."public" AS feed_public,
torrents.info_hash, torrents.name, torrents.size, enclosures.type,
feed_items.title, feed_items.lang, feed_items.summary, feed_items.published, feed_items.homepage, feed_items.payment, feed_items.image,
COALESCE(scraped.seeders, 0) AS "seeders", COALESCE(scraped.leechers, 0) AS "leechers",
COALESCE(scraped.upspeed, 0) AS "upspeed", COALESCE(scraped.downspeed, 0) AS "downspeed",
COALESCE(downloaded_stats.downloaded, 0) AS "downloaded"
FROM (SELECT url, info_hash FROM enclosure_torrents
WHERE url=$1 AND LENGTH(info_hash)=20
Expand All @@ -234,7 +190,6 @@ CREATE OR REPLACE FUNCTION get_enclosure_downloads(
JOIN feed_items ON (enclosures.feed=feed_items.feed AND enclosures.item=feed_items.id)
JOIN feeds ON (feed_items.feed=feeds.url)
JOIN user_feeds ON (feed_items.feed=user_feeds.feed)
LEFT JOIN scraped ON (enclosure_torrents.info_hash=scraped.info_hash)
LEFT JOIN downloaded_stats ON (enclosure_torrents.info_hash=downloaded_stats.info_hash);
$$ LANGUAGE SQL;

Expand All @@ -246,8 +201,6 @@ CREATE OR REPLACE FUNCTION get_guid_downloads(
COALESCE(user_feeds.title, feeds.title) AS feed_title, user_feeds."public" AS feed_public,
torrents.info_hash, torrents.name, torrents.size, enclosures.type,
feed_items.title, feed_items.lang, feed_items.summary, feed_items.published, feed_items.homepage, feed_items.payment, feed_items.image,
COALESCE(scraped.seeders, 0) AS "seeders", COALESCE(scraped.leechers, 0) AS "leechers",
COALESCE(scraped.upspeed, 0) AS "upspeed", COALESCE(scraped.downspeed, 0) AS "downspeed",
COALESCE(downloaded_stats.downloaded, 0) AS "downloaded"
FROM (SELECT feed, item, url, type FROM enclosures
WHERE guid=$1
Expand All @@ -257,7 +210,6 @@ CREATE OR REPLACE FUNCTION get_guid_downloads(
JOIN feed_items ON (enclosures.feed=feed_items.feed AND enclosures.item=feed_items.id)
JOIN feeds ON (feed_items.feed=feeds.url)
JOIN user_feeds ON (feed_items.feed=user_feeds.feed)
LEFT JOIN scraped ON (enclosure_torrents.info_hash=scraped.info_hash)
LEFT JOIN downloaded_stats ON (enclosure_torrents.info_hash=downloaded_stats.info_hash)
WHERE LENGTH(enclosure_torrents.info_hash)=20;
$$ LANGUAGE SQL;
Expand Down
1 change: 0 additions & 1 deletion pg_install.sql
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ SET default_tablespace = safe;
\i pg_meta.sql
SET default_tablespace = fast;
\i pg_var.sql
\i pg_tracker.sql
\i pg_downloads.sql
\i pg_stats.sql
\i pg_search.sql
3 changes: 0 additions & 3 deletions pg_search.sql
Original file line number Diff line number Diff line change
Expand Up @@ -99,8 +99,6 @@ CREATE OR REPLACE FUNCTION search_feed_items(
COALESCE(user_feeds.title, feeds.title) AS feed_title, user_feeds."public" AS feed_public,
torrents.info_hash, torrents.name, torrents.size, enclosures.type,
feed_items.title, feed_items.lang, feed_items.summary, feed_items.published, feed_items.homepage, feed_items.payment, feed_items.image,
COALESCE(scraped.seeders, 0) AS "seeders", COALESCE(scraped.leechers, 0) AS "leechers",
COALESCE(scraped.upspeed, 0) AS "upspeed", COALESCE(scraped.downspeed, 0) AS "downspeed",
COALESCE(downloaded_stats.downloaded, 0) AS "downloaded"
FROM (SELECT * FROM feed_items
WHERE "search" @@ "query"
Expand All @@ -112,7 +110,6 @@ CREATE OR REPLACE FUNCTION search_feed_items(
JOIN enclosures ON (enclosures.feed=feed_items.feed AND enclosures.item=feed_items.id)
JOIN enclosure_torrents ON (enclosure_torrents.url=enclosures.url)
JOIN torrents USING (info_hash)
LEFT JOIN scraped ON (enclosure_torrents.info_hash=scraped.info_hash)
LEFT JOIN downloaded_stats ON (enclosure_torrents.info_hash=downloaded_stats.info_hash)
WHERE user_feeds."public";
END;
Expand Down
28 changes: 0 additions & 28 deletions pg_stats.sql
Original file line number Diff line number Diff line change
Expand Up @@ -34,34 +34,6 @@ CREATE OR REPLACE FUNCTION set_gauge(
$$ LANGUAGE plpgsql;


CREATE OR REPLACE FUNCTION scraped_set_gauges() RETURNS trigger AS $$
DECLARE
s_info_hash BYTEA;
s_seeders INT;
s_leechers INT;
BEGIN
IF TG_OP != 'DELETE' THEN
s_info_hash := NEW.info_hash;
s_seeders := NEW.seeders;
s_leechers := NEW.leechers;
ELSE
s_info_hash := OLD.info_hash;
s_seeders := 0;
s_leechers := 0;
END IF;

PERFORM set_gauge('seeders', s_info_hash, s_seeders);
PERFORM set_gauge('leechers', s_info_hash, s_leechers);

RETURN NEW;
END;
$$ LANGUAGE plpgsql;

-- Obtain up/down deltas when a tracked peer is updated
CREATE TRIGGER scraped_set_gauges AFTER INSERT OR UPDATE OR DELETE ON scraped
FOR EACH ROW EXECUTE PROCEDURE scraped_set_gauges();


-- Counters
--
-- For adding values (up, down, up_seeder)
Expand Down
184 changes: 0 additions & 184 deletions pg_tracker.sql

This file was deleted.

0 comments on commit 5173eeb

Please sign in to comment.