14
14
'img_name' ,
15
15
'img_major_mime' ,
16
16
'img_minor_mime' ,
17
- 'actor_user AS img_user' ,
18
- 'actor_name AS img_user_text' ,
19
- 'img_timestamp' ]
17
+ 'IFNULL(oi.actor_user, ci.actor_user) AS img_user' ,
18
+ 'IFNULL(oi.actor_name, ci.actor_name) AS img_user_text' ,
19
+ 'img_timestamp' ,
20
+ 'oi_timestamp' ]
20
21
21
22
22
23
class MissingMySQLClient (RuntimeError ):
@@ -41,13 +42,22 @@ def fetchall_from_commonswiki(query, params):
41
42
def get_files (category_name ):
42
43
query = '''
43
44
SELECT {cols}
44
- FROM commonswiki_p.image
45
- LEFT JOIN actor ON img_actor=actor.actor_id
45
+ FROM commonswiki_p.image AS i
46
+ LEFT JOIN actor AS ci ON img_actor=ci.actor_id
47
+ LEFT JOIN (SELECT oi_name,
48
+ oi_actor,
49
+ actor_user,
50
+ actor_name,
51
+ oi_timestamp
52
+ FROM oldimage
53
+ LEFT JOIN actor ON oi_actor=actor.actor_id) AS oi ON img_name=oi.oi_name
46
54
JOIN page ON page_namespace = 6
47
55
AND page_title = img_name
48
56
JOIN categorylinks ON cl_from = page_id
49
57
AND cl_type = 'file'
50
- AND cl_to = %s;
58
+ AND cl_to = %s
59
+ GROUP BY img_name
60
+ ORDER BY oi_timestamp ASC;
51
61
''' .format (cols = ', ' .join (IMAGE_COLS ))
52
62
params = (category_name .replace (' ' , '_' ),)
53
63
@@ -59,9 +69,18 @@ def get_files(category_name):
59
69
def get_file_info (filename ):
60
70
query = '''
61
71
SELECT {cols}
62
- FROM commonswiki_p.image
63
- LEFT JOIN actor ON img_actor=actor.actor_id
64
- WHERE img_name = %s;
72
+ FROM commonswiki_p.image AS i
73
+ LEFT JOIN actor AS ci ON img_actor=ci.actor_id
74
+ LEFT JOIN (SELECT oi_name,
75
+ oi_actor,
76
+ actor_user,
77
+ actor_name,
78
+ oi_timestamp
79
+ FROM oldimage
80
+ LEFT JOIN actor ON oi_actor=actor.actor_id) AS oi ON img_name=oi.oi_name
81
+ WHERE img_name = %s
82
+ GROUP BY img_name
83
+ ORDER BY oi_timestamp ASC;
65
84
''' .format (cols = ', ' .join (IMAGE_COLS ))
66
85
params = (filename .replace (' ' , '_' ),)
67
86
results = fetchall_from_commonswiki (query , params )
0 commit comments