瀏覽代碼

Update queries for database schema actor change

main
Ben Kurtovic 5 年之前
父節點
當前提交
e37ff87760
共有 1 個檔案被更改,包括 20 行新增11 行删除
  1. +20
    -11
      tasks/afc_statistics.py

+ 20
- 11
tasks/afc_statistics.py 查看文件

@@ -571,8 +571,11 @@ class AFCStatistics(Task):
This consists of the most recent editor, modification time, and the
lastest revision ID.
"""
query = """SELECT rev_user_text, rev_timestamp, rev_id FROM revision
JOIN page ON rev_id = page_latest WHERE page_id = ?"""
query = """SELECT actor_name, rev_timestamp, rev_id
FROM revision
JOIN page ON rev_id = page_latest
JOIN actor ON rev_actor = actor_id
WHERE page_id = ?"""
result = self.site.sql_query(query, (pageid,))
m_user, m_time, m_id = list(result)[0]
timestamp = datetime.strptime(m_time, "%Y%m%d%H%M%S")
@@ -604,9 +607,10 @@ class AFCStatistics(Task):

def get_create(self, pageid, content=None):
"""Return (creator, create_ts, create_revid) for the given page."""
query = """SELECT rev_user_text, rev_timestamp, rev_id
FROM revision WHERE rev_id =
(SELECT MIN(rev_id) FROM revision WHERE rev_page = ?)"""
query = """SELECT actor_name, rev_timestamp, rev_id
FROM revision
JOIN actor ON rev_actor = actor_id
WHERE rev_id = (SELECT MIN(rev_id) FROM revision WHERE rev_page = ?)"""
result = self.site.sql_query(query, (pageid,))
c_user, c_time, c_id = list(result)[0]
timestamp = datetime.strptime(c_time, "%Y%m%d%H%M%S")
@@ -614,9 +618,10 @@ class AFCStatistics(Task):

def get_accepted(self, pageid, content=None):
"""Return (acceptor, accept_ts, accept_revid) for the given page."""
query = """SELECT rev_user_text, rev_timestamp, rev_id
query = """SELECT actor_name, rev_timestamp, rev_id
FROM revision
LEFT JOIN comment ON rev_comment_id = comment_id
JOIN actor ON rev_actor = actor_id
JOIN comment ON rev_comment_id = comment_id
WHERE rev_page = ?
AND comment_text LIKE "% moved page [[%]] to [[%]]%"
ORDER BY rev_timestamp DESC LIMIT 1"""
@@ -659,8 +664,10 @@ class AFCStatistics(Task):
return None
user, stamp = max(submits, key=lambda pair: pair[1])

query = """SELECT rev_id FROM revision WHERE rev_page = ?
AND rev_user_text = ? AND ABS(rev_timestamp - ?) <= 60
query = """SELECT rev_id
FROM revision_userindex
JOIN actor ON rev_actor = actor_id
WHERE rev_page = ? AND actor_name = ? AND ABS(rev_timestamp - ?) <= 60
ORDER BY ABS(rev_timestamp - ?) ASC LIMIT 1"""
result = self.site.sql_query(query, (pageid, user, stamp, stamp))
try:
@@ -677,8 +684,10 @@ class AFCStatistics(Task):

``status_set(any(search_with)) && !status_set(any(search_without))``
"""
query = """SELECT rev_user_text, rev_timestamp, rev_id
FROM revision WHERE rev_page = ? ORDER BY rev_id DESC"""
query = """SELECT actor_name, rev_timestamp, rev_id
FROM revision
JOIN actor ON rev_actor = actor_id
WHERE rev_page = ? ORDER BY rev_id DESC"""
result = self.site.sql_query(query, (pageid,))

counter = 0


Loading…
取消
儲存