Fork of
Unreviewed changes by trusted users
by FoBe
This query is marked as a draft
This query has been published
by FoBe.
SQL
AخA
SELECT
page1.page_title,
page1.page_latest
FROM page as page1
INNER JOIN revision AS lastrevision ON page1.page_latest = lastrevision.rev_id -- used for outputting timestamp of last edit, not used in rest of query
INNER JOIN revision AS revision1 ON page1.page_id = revision1.rev_page
INNER JOIN flaggedpage_pending AS flaggedpage_pending1 ON page1.page_id = flaggedpage_pending1.fpp_page_id
INNER JOIN actor AS actor1 ON revision1.rev_actor = actor1.actor_id
INNER JOIN user AS user1 ON actor1.actor_user = user1.user_id
LEFT OUTER JOIN user_groups AS user_groups1 ON ug_user = actor_user
WHERE page1.page_namespace = 0
AND revision1.rev_timestamp >= flaggedpage_pending1.fpp_pending_since
AND user_groups1.ug_group IN ('editor','trusted','sysop','bot')
AND page1.page_id NOT IN ( # exclude edits by anons
SELECT page2.page_id
FROM page as page2
INNER JOIN revision AS revision2 ON page2.page_id = revision2.rev_page
INNER JOIN actor AS actor2 ON revision2.rev_actor = actor2.actor_id
WHERE page1.page_id = page2.page_id
AND revision2.rev_timestamp >= flaggedpage_pending1.fpp_pending_since
AND actor2.actor_user IS NULL
)
AND page1.page_id NOT IN ( # exclude edits by non-trusted users
SELECT page2.page_id
FROM page as page2
INNER JOIN revision AS revision2 ON page2.page_id = revision2.rev_page
INNER JOIN actor AS actor2 ON revision2.rev_actor = actor2.actor_id
INNER JOIN user AS user2 ON actor2.actor_user = user2.user_id
WHERE page1.page_id = page2.page_id
AND revision2.rev_timestamp >= flaggedpage_pending1.fpp_pending_since
AND NOT EXISTS (SELECT user_groups2.ug_user FROM user_groups AS user_groups2 WHERE user_groups2.ug_user = user2.user_id AND user_groups2.ug_group IN ('editor','trusted','sysop','bot'))
)
GROUP BY page1.page_title
UNION
SELECT
page1.page_title,
page1.page_latest
FROM page as page1 #, user_groups
INNER JOIN revision AS revision1 ON page1.page_id = revision1.rev_page
INNER JOIN actor AS actor1 ON revision1.rev_actor = actor1.actor_id
INNER JOIN logging ON (actor1.actor_id=logging.log_actor)
INNER JOIN user AS user1 ON actor1.actor_user = user1.user_id
LEFT OUTER JOIN user_groups AS user_groups1 ON ug_user = actor_user
WHERE page1.page_namespace = 0
AND log_action = "create" -- only list new pages
AND user_groups1.ug_group IN ('editor','trusted','sysop','bot')
AND page1.page_id NOT IN ( # exclude edits by anons
SELECT page2.page_id
FROM page as page2
INNER JOIN revision AS revision2 ON page2.page_id = revision2.rev_page
INNER JOIN actor AS actor2 ON revision2.rev_actor = actor2.actor_id
WHERE page1.page_id = page2.page_id
AND actor2.actor_user IS NULL
)
AND page1.page_id NOT IN ( # exclude edits by non-trusted users
SELECT page2.page_id
FROM page as page2
INNER JOIN revision AS revision2 ON page2.page_id = revision2.rev_page
INNER JOIN actor AS actor2 ON revision2.rev_actor = actor2.actor_id
INNER JOIN user AS user2 ON actor2.actor_user = user2.user_id
WHERE page1.page_id = page2.page_id
AND NOT EXISTS (SELECT user_groups2.ug_user FROM user_groups AS user_groups2 WHERE user_groups2.ug_user = user2.user_id AND user_groups2.ug_group IN ('editor','trusted','sysop','bot'))
)
AND page1.page_id NOT IN ( -- do not list pages which have at least one reviewed revision
SELECT flaggedpages.fp_page_id
FROM flaggedpages
WHERE flaggedpages.fp_page_id = page1.page_id
)
GROUP BY page1.page_title;
By running queries you agree to the Cloud Services Terms of Use and you irrevocably agree to release your SQL under CC0 License.
All SQL code is licensed under CC0 License.