diff --git a/hive/db/sql_scripts/bridge_get_ranked_post_for_all.sql b/hive/db/sql_scripts/bridge_get_ranked_post_for_all.sql index bc69754806a6fbff6659b5092ca6712955efbc44..f0c2a9c871d408723c4c334bc4a91eac12546e62 100644 --- a/hive/db/sql_scripts/bridge_get_ranked_post_for_all.sql +++ b/hive/db/sql_scripts/bridge_get_ranked_post_for_all.sql @@ -56,7 +56,7 @@ BEGIN LIMIT _limit ) as created JOIN hive_posts_view hp ON hp.id = created.id - WHERE (CASE WHEN _observer <> '' THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END) + WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END) ORDER BY created.id DESC LIMIT _limit; END @@ -64,7 +64,7 @@ $function$ language plpgsql STABLE; DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_hot; -CREATE FUNCTION bridge_get_ranked_post_by_hot( in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT ) +CREATE FUNCTION bridge_get_ranked_post_by_hot( in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _observer VARCHAR ) RETURNS SETOF bridge_api_post AS $function$ @@ -127,6 +127,7 @@ BEGIN LIMIT _limit ) as hot JOIN hive_posts_view hp ON hp.id = hot.id + WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END) ORDER BY hot.hot DESC, hot.id DESC LIMIT _limit; END @@ -134,7 +135,7 @@ $function$ language plpgsql STABLE; DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_muted; -CREATE FUNCTION bridge_get_ranked_post_by_muted( in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT ) +CREATE FUNCTION bridge_get_ranked_post_by_muted( in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _observer VARCHAR ) RETURNS SETOF bridge_api_post AS $function$ @@ -198,6 +199,7 @@ BEGIN LIMIT _limit ) as payout JOIN hive_posts_view hp ON hp.id = payout.id + WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END) ORDER BY payout.all_payout DESC, payout.id DESC LIMIT _limit; END @@ -205,7 +207,7 @@ $function$ language plpgsql STABLE; DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_payout_comments; -CREATE FUNCTION bridge_get_ranked_post_by_payout_comments( in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT ) +CREATE FUNCTION bridge_get_ranked_post_by_payout_comments( in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _observer VARCHAR ) RETURNS SETOF bridge_api_post AS $function$ @@ -268,6 +270,7 @@ BEGIN LIMIT _limit ) as payout JOIN hive_posts_view hp ON hp.id = payout.id + WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END) ORDER BY payout.all_payout DESC, payout.id DESC LIMIT _limit; END @@ -275,7 +278,7 @@ $function$ language plpgsql STABLE; DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_payout; -CREATE FUNCTION bridge_get_ranked_post_by_payout( in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _bridge_api BOOLEAN ) +CREATE FUNCTION bridge_get_ranked_post_by_payout( in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _bridge_api BOOLEAN, in _observer VARCHAR ) RETURNS SETOF bridge_api_post AS $function$ @@ -341,6 +344,7 @@ BEGIN LIMIT _limit ) as payout JOIN hive_posts_view hp ON hp.id = payout.id + WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END) ORDER BY payout.all_payout DESC, payout.id DESC LIMIT _limit; END @@ -348,7 +352,7 @@ $function$ language plpgsql STABLE; DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_promoted; -CREATE FUNCTION bridge_get_ranked_post_by_promoted( in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT ) +CREATE FUNCTION bridge_get_ranked_post_by_promoted( in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _observer VARCHAR ) RETURNS SETOF bridge_api_post AS $function$ @@ -411,6 +415,7 @@ BEGIN LIMIT _limit ) as promoted JOIN hive_posts_view hp ON hp.id = promoted.id + WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END) ORDER BY promoted.promoted DESC, promoted.id DESC LIMIT _limit; END @@ -418,7 +423,7 @@ $function$ language plpgsql STABLE; DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_trends; -CREATE FUNCTION bridge_get_ranked_post_by_trends( in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT ) +CREATE FUNCTION bridge_get_ranked_post_by_trends( in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _observer VARCHAR ) RETURNS SETOF bridge_api_post AS $function$ @@ -481,6 +486,7 @@ BEGIN LIMIT _limit ) as trends JOIN hive_posts_view hp ON hp.id = trends.id + WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END) ORDER BY trends.trend DESC, trends.id DESC LIMIT _limit; END diff --git a/hive/db/sql_scripts/bridge_get_ranked_post_for_communities.sql b/hive/db/sql_scripts/bridge_get_ranked_post_for_communities.sql index 01c451c26375b36a503ce0db59bdf14090b74ff3..023a43c3570a591eff83f9d4215c27dfba54391f 100644 --- a/hive/db/sql_scripts/bridge_get_ranked_post_for_communities.sql +++ b/hive/db/sql_scripts/bridge_get_ranked_post_for_communities.sql @@ -45,6 +45,7 @@ $function$ hive_posts_view hp JOIN hive_communities hc ON hc.id = hp.community_id WHERE hc.name = _community AND hp.is_pinned + AND (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END) ORDER BY hp.id DESC LIMIT _limit; $function$ @@ -116,6 +117,7 @@ BEGIN LIMIT _limit ) as trends JOIN hive_posts_view hp ON hp.id = trends.id + WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END) ORDER BY trends.trend DESC, trends.id DESC LIMIT _limit; END @@ -187,6 +189,7 @@ BEGIN LIMIT _limit ) as promoted JOIN hive_posts_view hp ON hp.id = promoted.id + WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END) ORDER BY promoted.promoted DESC, promoted.id DESC LIMIT _limit; END @@ -260,6 +263,7 @@ BEGIN LIMIT _limit ) as payout JOIN hive_posts_view hp ON hp.id = payout.id + WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END) ORDER BY payout.all_payout DESC, payout.id DESC LIMIT _limit; END @@ -331,6 +335,7 @@ BEGIN LIMIT _limit ) as payout JOIN hive_posts_view hp ON hp.id = payout.id + WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END) ORDER BY payout.all_payout DESC, payout.id DESC LIMIT _limit; END @@ -403,6 +408,7 @@ BEGIN LIMIT _limit ) as payout JOIN hive_posts_view hp ON hp.id = payout.id + WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END) ORDER BY payout.all_payout DESC, payout.id DESC LIMIT _limit; END @@ -474,6 +480,7 @@ BEGIN LIMIT _limit ) as hot JOIN hive_posts_view hp ON hp.id = hot.id + WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END) ORDER BY hot.hot DESC, hot.id DESC LIMIT _limit; END diff --git a/hive/db/sql_scripts/bridge_get_ranked_post_for_observer_communities.sql b/hive/db/sql_scripts/bridge_get_ranked_post_for_observer_communities.sql index 3290228ae8bbb4e40acfdc04b317383ee306dc6c..520921d2ca898d0bdaca2ced43d313c46222982a 100644 --- a/hive/db/sql_scripts/bridge_get_ranked_post_for_observer_communities.sql +++ b/hive/db/sql_scripts/bridge_get_ranked_post_for_observer_communities.sql @@ -52,7 +52,7 @@ BEGIN JOIN hive_subscriptions hs ON hp.community_id = hs.community_id JOIN hive_accounts_view ha ON ha.id = hp.author_id WHERE hs.account_id = __account_id AND hp.depth = 0 AND NOT ha.is_grayed AND ( __post_id = 0 OR hp.id < __post_id ) - AND hp.author NOT IN (SELECT muted FROM muted_accounts_view WHERE observer = _observer) + AND (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END) ORDER BY hp.id DESC LIMIT _limit; END @@ -117,7 +117,7 @@ BEGIN JOIN hive_subscriptions hs ON hp.community_id = hs.community_id WHERE hs.account_id = __account_id AND NOT hp.is_paidout AND hp.depth = 0 AND ( __post_id = 0 OR hp.sc_hot < __hot_limit OR ( hp.sc_hot = __hot_limit AND hp.id < __post_id ) ) - AND hp.author NOT IN (SELECT muted FROM muted_accounts_view WHERE observer = _observer) + AND (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END) ORDER BY hp.sc_hot DESC, hp.id DESC LIMIT _limit; END @@ -191,7 +191,7 @@ BEGIN LIMIT _limit ) as payout JOIN hive_posts_view hp ON hp.id = payout.id - WHERE hp.author NOT IN (SELECT muted FROM muted_accounts_view WHERE observer = _observer) + WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END) ORDER BY payout.all_payout DESC, payout.id DESC LIMIT _limit; END @@ -258,7 +258,7 @@ BEGIN JOIN hive_subscriptions hs ON hp.community_id = hs.community_id WHERE hs.account_id = __account_id AND NOT hp.is_paidout AND hp.payout_at BETWEEN __head_block_time + interval '12 hours' AND __head_block_time + interval '36 hours' AND ( __post_id = 0 OR ( hp.payout + hp.pending_payout ) < __payout_limit OR ( ( hp.payout + hp.pending_payout ) = __payout_limit AND hp.id < __post_id ) ) - AND hp.author NOT IN (SELECT muted FROM muted_accounts_view WHERE observer = _observer) + AND (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END) ORDER BY ( hp.payout + hp.pending_payout ) DESC, hp.id DESC LIMIT _limit; END @@ -323,7 +323,7 @@ BEGIN JOIN hive_subscriptions hs ON hp.community_id = hs.community_id WHERE hs.account_id = __account_id AND NOT hp.is_paidout AND hp.promoted > 0 AND ( __post_id = 0 OR hp.promoted < __promoted_limit OR ( hp.promoted = __promoted_limit AND hp.id < __post_id ) ) - AND hp.author NOT IN (SELECT muted FROM muted_accounts_view WHERE observer = _observer) + AND (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END) ORDER BY hp.promoted DESC, hp.id DESC LIMIT _limit; END @@ -399,7 +399,7 @@ BEGIN LIMIT _limit ) trending JOIN hive_posts_view hp ON trending.id = hp.id - WHERE hp.author NOT IN (SELECT muted FROM muted_accounts_view WHERE observer = _observer) + WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END) ORDER BY trending.sc_trend DESC, trending.id DESC LIMIT _limit; END @@ -465,7 +465,7 @@ BEGIN JOIN hive_accounts_view ha ON ha.id = hp.author_id WHERE hs.account_id = __account_id AND NOT hp.is_paidout AND ha.is_grayed AND ( hp.payout + hp.pending_payout ) > 0 AND ( __post_id = 0 OR ( hp.payout + hp.pending_payout ) < __payout_limit OR ( ( hp.payout + hp.pending_payout ) = __payout_limit AND hp.id < __post_id ) ) - AND hp.author NOT IN (SELECT muted FROM muted_accounts_view WHERE observer = _observer) + AND (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE True END) ORDER BY ( hp.payout + hp.pending_payout ) DESC, hp.id DESC LIMIT _limit; END diff --git a/hive/db/sql_scripts/bridge_get_ranked_post_for_tag.sql b/hive/db/sql_scripts/bridge_get_ranked_post_for_tag.sql index 300f121d1b2410cb41c97442b518b800b3d95cdb..04c4522953335c4963bcdd42f296cd16a3e3b460 100644 --- a/hive/db/sql_scripts/bridge_get_ranked_post_for_tag.sql +++ b/hive/db/sql_scripts/bridge_get_ranked_post_for_tag.sql @@ -56,12 +56,12 @@ BEGIN JOIN hive_posts hp1 ON hp1.id = hpt.post_id JOIN hive_accounts_view ha ON hp1.author_id = ha.id WHERE hpt.tag_id = __hive_tag AND hp1.counter_deleted = 0 AND hp1.depth = 0 AND NOT ha.is_grayed AND ( __post_id = 0 OR hp1.id < __post_id ) - AND (CASE WHEN _observer <> '' THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END) --ORDER BY hp1.id + 0 DESC -- this workaround helped the query to better choose indexes, but after some time it started to significally slow down ORDER BY hp1.id DESC LIMIT _limit ) as created JOIN hive_posts_view hp ON hp.id = created.id + WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END) ORDER BY created.id DESC LIMIT _limit; END @@ -69,7 +69,7 @@ $function$ language plpgsql STABLE; DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_hot_for_tag; -CREATE FUNCTION bridge_get_ranked_post_by_hot_for_tag( in _tag VARCHAR, in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT ) +CREATE FUNCTION bridge_get_ranked_post_by_hot_for_tag( in _tag VARCHAR, in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _observer VARCHAR ) RETURNS SETOF bridge_api_post AS $function$ @@ -135,6 +135,7 @@ BEGIN LIMIT _limit ) as hot JOIN hive_posts_view hp ON hp.id = hot.id + WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END) ORDER BY hot.hot DESC, hot.id DESC LIMIT _limit; END @@ -142,7 +143,7 @@ $function$ language plpgsql STABLE; DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_muted_for_tag; -CREATE FUNCTION bridge_get_ranked_post_by_muted_for_tag( in _tag VARCHAR, in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT ) +CREATE FUNCTION bridge_get_ranked_post_by_muted_for_tag( in _tag VARCHAR, in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _observer VARCHAR ) RETURNS SETOF bridge_api_post AS $function$ @@ -209,6 +210,7 @@ BEGIN LIMIT _limit ) as payout JOIN hive_posts_view hp ON hp.id = payout.id + WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END) ORDER BY payout.all_payout DESC, payout.id DESC LIMIT _limit; END @@ -216,7 +218,7 @@ $function$ language plpgsql STABLE; DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_payout_comments_for_category; -CREATE FUNCTION bridge_get_ranked_post_by_payout_comments_for_category( in _category VARCHAR, in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT ) +CREATE FUNCTION bridge_get_ranked_post_by_payout_comments_for_category( in _category VARCHAR, in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _observer VARCHAR ) RETURNS SETOF bridge_api_post AS $function$ @@ -281,6 +283,7 @@ BEGIN LIMIT _limit ) as payout JOIN hive_posts_view hp ON hp.id = payout.id + WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END) ORDER BY payout.all_payout DESC, payout.id DESC LIMIT _limit; END @@ -288,7 +291,7 @@ $function$ language plpgsql STABLE; DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_payout_for_category; -CREATE FUNCTION bridge_get_ranked_post_by_payout_for_category( in _category VARCHAR, in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _bridge_api BOOLEAN ) +CREATE FUNCTION bridge_get_ranked_post_by_payout_for_category( in _category VARCHAR, in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _bridge_api BOOLEAN, in _observer VARCHAR ) RETURNS SETOF bridge_api_post AS $function$ @@ -356,6 +359,7 @@ BEGIN LIMIT _limit ) as payout JOIN hive_posts_view hp ON hp.id = payout.id + WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END) ORDER BY payout.all_payout DESC, payout.id DESC LIMIT _limit; END @@ -363,7 +367,7 @@ $function$ language plpgsql STABLE; DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_promoted_for_tag; -CREATE FUNCTION bridge_get_ranked_post_by_promoted_for_tag( in _tag VARCHAR, in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT ) +CREATE FUNCTION bridge_get_ranked_post_by_promoted_for_tag( in _tag VARCHAR, in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _observer VARCHAR ) RETURNS SETOF bridge_api_post AS $function$ @@ -429,6 +433,7 @@ BEGIN LIMIT _limit ) as promoted JOIN hive_posts_view hp ON hp.id = promoted.id + WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END) ORDER BY promoted.promoted DESC, promoted.id DESC LIMIT _limit; END @@ -436,7 +441,7 @@ $function$ language plpgsql STABLE; DROP FUNCTION IF EXISTS bridge_get_ranked_post_by_trends_for_tag; -CREATE FUNCTION bridge_get_ranked_post_by_trends_for_tag( in _tag VARCHAR, in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT ) +CREATE FUNCTION bridge_get_ranked_post_by_trends_for_tag( in _tag VARCHAR, in _author VARCHAR, in _permlink VARCHAR, in _limit SMALLINT, in _observer VARCHAR ) RETURNS SETOF bridge_api_post AS $function$ @@ -502,6 +507,7 @@ BEGIN LIMIT _limit ) as trends JOIN hive_posts_view hp ON hp.id = trends.id + WHERE (CASE WHEN _observer IS NOT NULL THEN NOT EXISTS (SELECT 1 FROM muted_accounts_view WHERE observer = _observer AND muted = hp.author) ELSE true END) ORDER BY trends.trend DESC, trends.id DESC LIMIT _limit; END diff --git a/hive/server/bridge_api/methods.py b/hive/server/bridge_api/methods.py index a7e1f7fe206ef4faf4c1bf2f59d82f7ff740d59f..41cba5e435380b6294a31a7bd4e131192e804154 100644 --- a/hive/server/bridge_api/methods.py +++ b/hive/server/bridge_api/methods.py @@ -111,12 +111,12 @@ async def _get_ranked_posts_for_communities( db, sort:str, community, start_auth # missing paging which results in inability to get all pinned posts # and/or causes the same posts to be on each page (depending on limit and number of pinned) if sort == 'hot': - sql = "SELECT * FROM bridge_get_ranked_post_by_hot_for_community( (:community)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" + sql = "SELECT * FROM bridge_get_ranked_post_by_hot_for_community( (:community)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )" return await execute_community_query(db, sql, limit) if sort == 'trending': result_with_pinned_posts = [] - sql = "SELECT * FROM bridge_get_ranked_post_by_trends_for_community( (:community)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, True )" + sql = "SELECT * FROM bridge_get_ranked_post_by_trends_for_community( (:community)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, True, (:observer)::VARCHAR )" result_with_pinned_posts = await execute_community_query(db, pinned_sql, limit) limit -= len(result_with_pinned_posts) if limit > 0: @@ -124,7 +124,7 @@ async def _get_ranked_posts_for_communities( db, sort:str, community, start_auth return result_with_pinned_posts if sort == 'promoted': - sql = "SELECT * FROM bridge_get_ranked_post_by_promoted_for_community( (:community)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" + sql = "SELECT * FROM bridge_get_ranked_post_by_promoted_for_community( (:community)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )" return await execute_community_query(db, sql, limit) if sort == 'created': @@ -136,15 +136,15 @@ async def _get_ranked_posts_for_communities( db, sort:str, community, start_auth return result_with_pinned_posts if sort == 'muted': - sql = "SELECT * FROM bridge_get_ranked_post_by_muted_for_community( (:community)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" + sql = "SELECT * FROM bridge_get_ranked_post_by_muted_for_community( (:community)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )" return await execute_community_query(db, sql, limit) if sort == 'payout': - sql = "SELECT * FROM bridge_get_ranked_post_by_payout_for_community( (:community)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" + sql = "SELECT * FROM bridge_get_ranked_post_by_payout_for_community( (:community)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )" return await execute_community_query(db, sql, limit) if sort == 'payout_comments': - sql = "SELECT * FROM bridge_get_ranked_post_by_payout_comments_for_community( (:community)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" + sql = "SELECT * FROM bridge_get_ranked_post_by_payout_comments_for_community( (:community)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )" return await execute_community_query(db, sql, limit) assert False, "Unknown sort order" @@ -156,27 +156,27 @@ async def _get_ranked_posts_for_tag( db, sort:str, tag, start_author:str, start_ return await db.query_all(sql, tag=tag, author=start_author, permlink=start_permlink, limit=limit, observer=observer ) if sort == 'hot': - sql = "SELECT * FROM bridge_get_ranked_post_by_hot_for_tag( (:tag)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" + sql = "SELECT * FROM bridge_get_ranked_post_by_hot_for_tag( (:tag)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )" return await execute_tags_query(db, sql, limit) if sort == 'promoted': - sql = "SELECT * FROM bridge_get_ranked_post_by_promoted_for_tag( (:tag)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" + sql = "SELECT * FROM bridge_get_ranked_post_by_promoted_for_tag( (:tag)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )" return await execute_tags_query(db, sql, limit) if sort == 'payout': - sql = "SELECT * FROM bridge_get_ranked_post_by_payout_for_category( (:tag)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, True )" + sql = "SELECT * FROM bridge_get_ranked_post_by_payout_for_category( (:tag)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, True, (:observer)::VARCHAR )" return await execute_tags_query(db, sql, limit) if sort == 'payout_comments': - sql = "SELECT * FROM bridge_get_ranked_post_by_payout_comments_for_category( (:tag)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" + sql = "SELECT * FROM bridge_get_ranked_post_by_payout_comments_for_category( (:tag)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )" return await execute_tags_query(db, sql, limit) if sort == 'muted': - sql = "SELECT * FROM bridge_get_ranked_post_by_muted_for_tag( (:tag)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" + sql = "SELECT * FROM bridge_get_ranked_post_by_muted_for_tag( (:tag)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )" return await execute_tags_query(db, sql, limit) if sort == 'trending': - sql = "SELECT * FROM bridge_get_ranked_post_by_trends_for_tag( (:tag)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" + sql = "SELECT * FROM bridge_get_ranked_post_by_trends_for_tag( (:tag)::VARCHAR, (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )" return await execute_tags_query(db, sql, limit) if sort == 'created': @@ -191,7 +191,7 @@ async def _get_ranked_posts_for_all( db, sort:str, start_author:str, start_perml return await db.query_all(sql, author=start_author, permlink=start_permlink, limit=limit, observer=observer ) if sort == 'trending': - sql = "SELECT * FROM bridge_get_ranked_post_by_trends( (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" + sql = "SELECT * FROM bridge_get_ranked_post_by_trends( (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )" return await execute_query(db, sql, limit) if sort == 'created': @@ -199,23 +199,23 @@ async def _get_ranked_posts_for_all( db, sort:str, start_author:str, start_perml return await execute_query(db, sql, limit, observer) if sort == 'hot': - sql = "SELECT * FROM bridge_get_ranked_post_by_hot( (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" + sql = "SELECT * FROM bridge_get_ranked_post_by_hot( (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )" return await execute_query(db, sql, limit) if sort == 'promoted': - sql = "SELECT * FROM bridge_get_ranked_post_by_promoted( (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" + sql = "SELECT * FROM bridge_get_ranked_post_by_promoted( (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )" return await execute_query(db, sql, limit) if sort == 'payout': - sql = "SELECT * FROM bridge_get_ranked_post_by_payout( (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, True )" + sql = "SELECT * FROM bridge_get_ranked_post_by_payout( (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, True, (:observer)::VARCHAR )" return await execute_query(db, sql, limit) if sort == 'payout_comments': - sql = "SELECT * FROM bridge_get_ranked_post_by_payout_comments( (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" + sql = "SELECT * FROM bridge_get_ranked_post_by_payout_comments( (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )" return await execute_query(db, sql, limit) if sort == 'muted': - sql = "SELECT * FROM bridge_get_ranked_post_by_muted( (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT )" + sql = "SELECT * FROM bridge_get_ranked_post_by_muted( (:author)::VARCHAR, (:permlink)::VARCHAR, (:limit)::SMALLINT, (:observer)::VARCHAR )" return await execute_query(db, sql, limit) assert False, "Unknown sort order"