|
@@ -120,11 +120,11 @@ class AFCStatistics(Task): |
|
|
return |
|
|
return |
|
|
summary = self.summary |
|
|
summary = self.summary |
|
|
|
|
|
|
|
|
statistics = self.compile_charts().encode("utf8") |
|
|
|
|
|
|
|
|
statistics = self.compile_charts() |
|
|
|
|
|
|
|
|
page = self.site.get_page(self.pagename) |
|
|
page = self.site.get_page(self.pagename) |
|
|
text = page.get().encode("utf8") |
|
|
|
|
|
newtext = re.sub("<!-- stat begin -->(.*?)<!-- stat end -->", |
|
|
|
|
|
|
|
|
text = page.get() |
|
|
|
|
|
newtext = re.sub(u"<!-- stat begin -->(.*?)<!-- stat end -->", |
|
|
"<!-- stat begin -->\n" + statistics + "\n<!-- stat end -->", |
|
|
"<!-- stat begin -->\n" + statistics + "\n<!-- stat end -->", |
|
|
text, flags=re.DOTALL) |
|
|
text, flags=re.DOTALL) |
|
|
if newtext == text: |
|
|
if newtext == text: |
|
@@ -159,7 +159,7 @@ class AFCStatistics(Task): |
|
|
with self.conn.cursor(oursql.DictCursor) as cursor: |
|
|
with self.conn.cursor(oursql.DictCursor) as cursor: |
|
|
cursor.execute(query, (chart_id,)) |
|
|
cursor.execute(query, (chart_id,)) |
|
|
for page in cursor: |
|
|
for page in cursor: |
|
|
chart += "\n" + self.compile_chart_row(page).decode("utf8") |
|
|
|
|
|
|
|
|
chart += "\n" + self.compile_chart_row(page) |
|
|
|
|
|
|
|
|
chart += "\n{{" + self.tl_footer + "}}" |
|
|
chart += "\n{{" + self.tl_footer + "}}" |
|
|
return chart |
|
|
return chart |
|
@@ -170,7 +170,7 @@ class AFCStatistics(Task): |
|
|
'page' is a dict of page information, taken as a row from the page |
|
|
'page' is a dict of page information, taken as a row from the page |
|
|
table, where keys are column names and values are their cell contents. |
|
|
table, where keys are column names and values are their cell contents. |
|
|
""" |
|
|
""" |
|
|
row = "{0}|s={page_status}|t={page_title}|h={page_short}|z={page_size}|" |
|
|
|
|
|
|
|
|
row = u"{0}|s={page_status}|t={page_title}|h={page_short}|z={page_size}|" |
|
|
if page["page_special_oldid"]: |
|
|
if page["page_special_oldid"]: |
|
|
row += "sr={page_special_user}|sd={page_special_time}|si={page_special_oldid}|" |
|
|
row += "sr={page_special_user}|sd={page_special_time}|si={page_special_oldid}|" |
|
|
row += "mr={page_modify_user}|md={page_modify_time}|mi={page_modify_oldid}" |
|
|
row += "mr={page_modify_user}|md={page_modify_time}|mi={page_modify_oldid}" |
|
@@ -239,7 +239,6 @@ class AFCStatistics(Task): |
|
|
self.untrack_page(cursor, pageid) |
|
|
self.untrack_page(cursor, pageid) |
|
|
continue |
|
|
continue |
|
|
|
|
|
|
|
|
title = title.decode("utf8") # SQL gives strings; we want Unicode |
|
|
|
|
|
real_oldid = result[0][0] |
|
|
real_oldid = result[0][0] |
|
|
if oldid != real_oldid: |
|
|
if oldid != real_oldid: |
|
|
msg = u"Updating page [[{0}]] (id: {1}) @ {2}" |
|
|
msg = u"Updating page [[{0}]] (id: {1}) @ {2}" |
|
@@ -384,7 +383,7 @@ class AFCStatistics(Task): |
|
|
size = self.get_size(content) |
|
|
size = self.get_size(content) |
|
|
m_user, m_time, m_id = self.get_modify(pageid) |
|
|
m_user, m_time, m_id = self.get_modify(pageid) |
|
|
|
|
|
|
|
|
if title != result["page_title"].decode("utf8"): |
|
|
|
|
|
|
|
|
if title != result["page_title"]: |
|
|
self.update_page_title(cursor, result, pageid, title) |
|
|
self.update_page_title(cursor, result, pageid, title) |
|
|
|
|
|
|
|
|
if m_id != result["page_modify_oldid"]: |
|
|
if m_id != result["page_modify_oldid"]: |
|
@@ -396,10 +395,7 @@ class AFCStatistics(Task): |
|
|
chart) |
|
|
chart) |
|
|
s_user = special[0] |
|
|
s_user = special[0] |
|
|
else: |
|
|
else: |
|
|
try: |
|
|
|
|
|
s_user = result["page_special_user"].decode("utf8") |
|
|
|
|
|
except AttributeError: # Happens if page_special_user is None |
|
|
|
|
|
s_user = result["page_special_user"] |
|
|
|
|
|
|
|
|
s_user = result["page_special_user"] |
|
|
|
|
|
|
|
|
notes = self.get_notes(chart, content, m_time, s_user) |
|
|
notes = self.get_notes(chart, content, m_time, s_user) |
|
|
if notes != result["page_notes"]: |
|
|
if notes != result["page_notes"]: |
|
@@ -412,8 +408,7 @@ class AFCStatistics(Task): |
|
|
cursor.execute(query, (title, short, pageid)) |
|
|
cursor.execute(query, (title, short, pageid)) |
|
|
|
|
|
|
|
|
msg = u" {0}: title: {1} -> {2}" |
|
|
msg = u" {0}: title: {1} -> {2}" |
|
|
old_title = result["page_title"].decode("utf8") |
|
|
|
|
|
self.logger.debug(msg.format(pageid, old_title, title)) |
|
|
|
|
|
|
|
|
self.logger.debug(msg.format(pageid, result["page_title"], title)) |
|
|
|
|
|
|
|
|
def update_page_modify(self, cursor, result, pageid, size, m_user, m_time, m_id): |
|
|
def update_page_modify(self, cursor, result, pageid, size, m_user, m_time, m_id): |
|
|
"""Update the last modified information of a page in our database.""" |
|
|
"""Update the last modified information of a page in our database.""" |
|
@@ -423,7 +418,7 @@ class AFCStatistics(Task): |
|
|
cursor.execute(query, (size, m_user, m_time, m_id, pageid)) |
|
|
cursor.execute(query, (size, m_user, m_time, m_id, pageid)) |
|
|
|
|
|
|
|
|
msg = u" {0}: modify: {1} / {2} / {3} -> {4} / {5} / {6}" |
|
|
msg = u" {0}: modify: {1} / {2} / {3} -> {4} / {5} / {6}" |
|
|
msg = msg.format(pageid, result["page_modify_user"].decode("utf8"), |
|
|
|
|
|
|
|
|
msg = msg.format(pageid, result["page_modify_user"], |
|
|
result["page_modify_time"], |
|
|
result["page_modify_time"], |
|
|
result["page_modify_oldid"], m_user, m_time, m_id) |
|
|
result["page_modify_oldid"], m_user, m_time, m_id) |
|
|
self.logger.debug(msg) |
|
|
self.logger.debug(msg) |
|
@@ -444,12 +439,9 @@ class AFCStatistics(Task): |
|
|
s_user, s_time, s_id = self.get_special(pageid, chart) |
|
|
s_user, s_time, s_id = self.get_special(pageid, chart) |
|
|
if s_id != result["page_special_oldid"]: |
|
|
if s_id != result["page_special_oldid"]: |
|
|
cursor.execute(query2, (s_user, s_time, s_id, pageid)) |
|
|
cursor.execute(query2, (s_user, s_time, s_id, pageid)) |
|
|
if result["page_special_user"]: |
|
|
|
|
|
old_s_user = result["page_special_user"].decode("utf8") |
|
|
|
|
|
else: |
|
|
|
|
|
old_s_user = None |
|
|
|
|
|
msg = u"{0}: special: {1} / {2} / {3} -> {4} / {5} / {6}" |
|
|
msg = u"{0}: special: {1} / {2} / {3} -> {4} / {5} / {6}" |
|
|
msg = msg.format(pageid, old_s_user, result["page_special_time"], |
|
|
|
|
|
|
|
|
msg = msg.format(pageid, result["page_special_user"], |
|
|
|
|
|
result["page_special_time"], |
|
|
result["page_special_oldid"], s_user, s_time, s_id) |
|
|
result["page_special_oldid"], s_user, s_time, s_id) |
|
|
self.logger.debug(msg) |
|
|
self.logger.debug(msg) |
|
|
|
|
|
|
|
@@ -692,7 +684,7 @@ class AFCStatistics(Task): |
|
|
result = self.site.sql_query(query, (pageid,)) |
|
|
result = self.site.sql_query(query, (pageid,)) |
|
|
c_user, c_time, c_id = list(result)[0] |
|
|
c_user, c_time, c_id = list(result)[0] |
|
|
timestamp = datetime.strptime(c_time, "%Y%m%d%H%M%S") |
|
|
timestamp = datetime.strptime(c_time, "%Y%m%d%H%M%S") |
|
|
return c_user.encode("utf8"), timestamp, c_id |
|
|
|
|
|
|
|
|
return c_user.decode("utf8"), timestamp, c_id |
|
|
|
|
|
|
|
|
def get_notes(self, chart, content, m_time, s_user): |
|
|
def get_notes(self, chart, content, m_time, s_user): |
|
|
"""Return any special notes or warnings about this page. |
|
|
"""Return any special notes or warnings about this page. |
|
|