mediawiki-butt 0.11.1 → 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGELOG.md +28 -5
- data/lib/mediawiki/administration.rb +18 -17
- data/lib/mediawiki/auth.rb +52 -193
- data/lib/mediawiki/butt.rb +51 -32
- data/lib/mediawiki/constants.rb +127 -130
- data/lib/mediawiki/edit.rb +58 -71
- data/lib/mediawiki/exceptions.rb +2 -123
- data/lib/mediawiki/query/lists/all.rb +35 -45
- data/lib/mediawiki/query/lists/backlinks.rb +23 -34
- data/lib/mediawiki/query/lists/categories.rb +17 -28
- data/lib/mediawiki/query/lists/log/block.rb +17 -33
- data/lib/mediawiki/query/lists/log/delete.rb +8 -24
- data/lib/mediawiki/query/lists/log/import.rb +9 -24
- data/lib/mediawiki/query/lists/log/log.rb +36 -63
- data/lib/mediawiki/query/lists/log/merge.rb +5 -12
- data/lib/mediawiki/query/lists/log/move.rb +6 -20
- data/lib/mediawiki/query/lists/log/newusers.rb +13 -36
- data/lib/mediawiki/query/lists/log/patrol.rb +5 -13
- data/lib/mediawiki/query/lists/log/protect.rb +20 -50
- data/lib/mediawiki/query/lists/log/rights.rb +10 -24
- data/lib/mediawiki/query/lists/log/upload.rb +10 -24
- data/lib/mediawiki/query/lists/miscellaneous.rb +10 -19
- data/lib/mediawiki/query/lists/querypage.rb +60 -62
- data/lib/mediawiki/query/lists/recent_changes.rb +18 -30
- data/lib/mediawiki/query/lists/search.rb +14 -29
- data/lib/mediawiki/query/lists/users.rb +43 -61
- data/lib/mediawiki/query/meta/filerepoinfo.rb +18 -20
- data/lib/mediawiki/query/meta/siteinfo.rb +30 -33
- data/lib/mediawiki/query/meta/userinfo.rb +48 -66
- data/lib/mediawiki/query/properties/contributors.rb +18 -22
- data/lib/mediawiki/query/properties/files.rb +18 -20
- data/lib/mediawiki/query/properties/pages.rb +129 -211
- data/lib/mediawiki/query/properties/properties.rb +20 -25
- data/lib/mediawiki/query/query.rb +0 -25
- data/lib/mediawiki/utils.rb +9 -8
- data/lib/mediawiki/watch.rb +52 -0
- metadata +6 -4
@@ -2,17 +2,14 @@ module MediaWiki
|
|
2
2
|
module Query
|
3
3
|
module Lists
|
4
4
|
module Backlinks
|
5
|
-
# Gets an array of backlinks to a given title, like
|
6
|
-
# Special:WhatLinksHere.
|
5
|
+
# Gets an array of backlinks to a given title, like Special:WhatLinksHere.
|
7
6
|
# @param title [String] The page to get the backlinks of.
|
8
|
-
# @param limit [
|
9
|
-
#
|
10
|
-
#
|
11
|
-
# @see https://www.mediawiki.org/wiki/API:Backlinks MediaWiki Backlinks
|
12
|
-
# API Docs
|
7
|
+
# @param limit [Fixnum] The maximum number of pages to get. Defaults to query_limit_default attribute. Cannot be
|
8
|
+
# greater than 500 for users or 5000 for bots.
|
9
|
+
# @see https://www.mediawiki.org/wiki/API:Backlinks MediaWiki Backlinks API Docs
|
13
10
|
# @since 0.1.0
|
14
11
|
# @return [Array<String>] All backlinks until the limit
|
15
|
-
def what_links_here(title, limit =
|
12
|
+
def what_links_here(title, limit = @query_limit_default)
|
16
13
|
params = {
|
17
14
|
action: 'query',
|
18
15
|
list: 'backlinks',
|
@@ -30,12 +27,11 @@ module MediaWiki
|
|
30
27
|
# Gets interwiki backlinks by the prefix and title.
|
31
28
|
# @param prefix [String] The wiki prefix, e.g., "mcw".
|
32
29
|
# @param title [String] The title of the page on that wiki.
|
33
|
-
# @param limit [
|
34
|
-
# @see https://www.mediawiki.org/wiki/API:Iwbacklinks MediaWiki
|
35
|
-
# Iwbacklinks API Docs
|
30
|
+
# @param limit [Fixnum] See {#what_links_here}.
|
31
|
+
# @see https://www.mediawiki.org/wiki/API:Iwbacklinks MediaWiki Iwbacklinks API Docs
|
36
32
|
# @since 0.10.0
|
37
33
|
# @return [Array<String>] All interwiki backlinking page titles.
|
38
|
-
def get_interwiki_backlinks(prefix = nil, title = nil, limit =
|
34
|
+
def get_interwiki_backlinks(prefix = nil, title = nil, limit = @query_limit_default)
|
39
35
|
params = {
|
40
36
|
action: 'query',
|
41
37
|
list: 'iwbacklinks',
|
@@ -53,14 +49,12 @@ module MediaWiki
|
|
53
49
|
|
54
50
|
# Gets language backlinks by the language and title.
|
55
51
|
# @param language [String] The language code
|
56
|
-
# @param
|
57
|
-
# @
|
58
|
-
# @see https://www.mediawiki.org/wiki/API:Langlinks MediaWiki Langlinks
|
59
|
-
# API Docs
|
52
|
+
# @param (see #what_links_here)
|
53
|
+
# @see https://www.mediawiki.org/wiki/API:Langlinks MediaWiki Langlinks API Docs
|
60
54
|
# @since 0.10.0
|
61
55
|
# @return [Array<String>] All pages that link to the language links.
|
62
|
-
def get_language_backlinks(language = nil, title = nil, limit =
|
63
|
-
language.downcase! if language.match(/[^A-Z]*/)[0].
|
56
|
+
def get_language_backlinks(language = nil, title = nil, limit = @query_limit_default)
|
57
|
+
language.downcase! if language.match(/[^A-Z]*/)[0].empty?
|
64
58
|
params = {
|
65
59
|
action: 'query',
|
66
60
|
list: 'langbacklinks',
|
@@ -77,19 +71,14 @@ module MediaWiki
|
|
77
71
|
end
|
78
72
|
|
79
73
|
# Gets image backlinks, or the pages that use a given image.
|
80
|
-
# @param
|
81
|
-
# @param list_redirects [Nil/Boolean] Set to nil to list redirects and
|
82
|
-
#
|
83
|
-
#
|
84
|
-
# @
|
85
|
-
# redirect of the image.
|
86
|
-
# @param limit [Int] See {#what_links_here}
|
87
|
-
# @see https://www.mediawiki.org/wiki/API:Imageusage MediaWiki
|
88
|
-
# Imageusage API Docs
|
74
|
+
# @param (see #what_links_here)
|
75
|
+
# @param list_redirects [Nil/Boolean] Set to nil to list redirects and non-redirects. Set to true to only
|
76
|
+
# list redirects. Set to false to only list non-redirects.
|
77
|
+
# @param thru_redir [Boolean] Whether to list pages that link to a redirect of the image.
|
78
|
+
# @see https://www.mediawiki.org/wiki/API:Imageusage MediaWiki Imageusage API Docs
|
89
79
|
# @since 0.10.0
|
90
80
|
# @return [Array<String>] All page titles that fit the requirements.
|
91
|
-
def get_image_backlinks(title, list_redirects = nil, thru_redir = false,
|
92
|
-
limit = 500)
|
81
|
+
def get_image_backlinks(title, list_redirects = nil, thru_redir = false, limit = @query_limit_default)
|
93
82
|
params = {
|
94
83
|
action: 'query',
|
95
84
|
list: 'imageusage',
|
@@ -109,13 +98,13 @@ module MediaWiki
|
|
109
98
|
|
110
99
|
# Gets all external link page titles.
|
111
100
|
# @param url [String] The URL to get backlinks for.
|
112
|
-
# @param limit [
|
113
|
-
# @see https://www.mediawiki.org/wiki/API:Exturlusage MediaWiki
|
114
|
-
# Exturlusage API Docs
|
101
|
+
# @param limit [Fixnum] See {#what_links_here}
|
102
|
+
# @see https://www.mediawiki.org/wiki/API:Exturlusage MediaWiki Exturlusage API Docs
|
115
103
|
# @since 0.10.0
|
116
104
|
# @return [Array<String>] All pages that link to the given URL.
|
117
|
-
# @return [Array<Hash
|
118
|
-
|
105
|
+
# @return [Array<Hash<Symbol, String>>] All pages that link to any external links. There are 2 keys in each
|
106
|
+
# hash, url and title.
|
107
|
+
def get_url_backlinks(url = nil, limit = @query_limit_default)
|
119
108
|
params = {
|
120
109
|
action: 'query',
|
121
110
|
list: 'exturlusage',
|
@@ -2,24 +2,16 @@ module MediaWiki
|
|
2
2
|
module Query
|
3
3
|
module Lists
|
4
4
|
module Categories
|
5
|
-
# Returns an array of all page titles that belong to a given category.
|
6
|
-
#
|
7
|
-
#
|
8
|
-
#
|
9
|
-
# @param
|
10
|
-
#
|
11
|
-
#
|
12
|
-
# @param limit [Int] The maximum number of members to get. Defaults to
|
13
|
-
# 500, and cannot be greater than that unless the user is a bot.
|
14
|
-
# If the user is a bot, the limit cannot be greater than 5000.
|
15
|
-
# @param type [String] The type of stuff to get. There are 3 valid
|
16
|
-
# values: page, file, and subcat. Separate these with a pipe
|
17
|
-
# character, e.g., 'page|file|subcat'.
|
18
|
-
# @see https://www.mediawiki.org/wiki/API:Categorymembers MediaWiki
|
19
|
-
# Category Members API Docs
|
5
|
+
# Returns an array of all page titles that belong to a given category. By default, it will only get the pages.
|
6
|
+
# Files and subcategories can be gotten through {#get_subcategories} and {#get_files_in_category} or setting
|
7
|
+
# the type parameter.
|
8
|
+
# @param (see #get_subcategories)
|
9
|
+
# @param type [String] The type of stuff to get. There are 3 valid values: page, file, and subcat. Separate
|
10
|
+
# these with a pipe character, e.g., 'page|file|subcat'.
|
11
|
+
# @see https://www.mediawiki.org/wiki/API:Categorymembers MediaWiki Category Members API Docs
|
20
12
|
# @since 0.1.0
|
21
|
-
# @return [Array] All category members until the limit
|
22
|
-
def get_category_members(category, limit =
|
13
|
+
# @return [Array<String>] All category members until the limit
|
14
|
+
def get_category_members(category, limit = @query_limit_default, type = 'page')
|
23
15
|
params = {
|
24
16
|
action: 'query',
|
25
17
|
list: 'categorymembers',
|
@@ -28,11 +20,7 @@ module MediaWiki
|
|
28
20
|
cmtype: type
|
29
21
|
}
|
30
22
|
|
31
|
-
|
32
|
-
params[:cmtitle] = category
|
33
|
-
else
|
34
|
-
params[:cmtitle] = "Category:#{category}"
|
35
|
-
end
|
23
|
+
params[:cmtitle] = category =~ /[Cc]ategory:/ ? category : "Category:#{category}"
|
36
24
|
ret = []
|
37
25
|
response = post(params)
|
38
26
|
response['query']['categorymembers'].each { |cm| ret << cm['title'] }
|
@@ -41,22 +29,23 @@ module MediaWiki
|
|
41
29
|
end
|
42
30
|
|
43
31
|
# Gets the subcategories of a given category.
|
44
|
-
# @param category [String]
|
45
|
-
#
|
32
|
+
# @param category [String] The category title. It can include "Category:", or not, it doesn't really matter
|
33
|
+
# because we will add it if it is missing.
|
34
|
+
# @param limit [Fixnum] The maximum number of members to get. Defaults to query_limit_default attribute. Cannot
|
35
|
+
# be greater than 500 for users, 5000 for bots.
|
46
36
|
# @see {#get_category_members}
|
47
37
|
# @since 0.9.0
|
48
38
|
# @return [Array<String>] All subcategories.
|
49
|
-
def get_subcategories(category, limit =
|
39
|
+
def get_subcategories(category, limit = @query_limit_default)
|
50
40
|
get_category_members(category, limit, 'subcat')
|
51
41
|
end
|
52
42
|
|
53
43
|
# Gets all of the files in a given category.
|
54
|
-
# @param
|
55
|
-
# @param limit [Int] See {#get_category_members}
|
44
|
+
# @param (see #get_subcategories)
|
56
45
|
# @see {#get_category_members}
|
57
46
|
# @since 0.9.0
|
58
47
|
# @return [Array<String>] All files in the category.
|
59
|
-
def get_files_in_category(category, limit =
|
48
|
+
def get_files_in_category(category, limit = @query_limit_default)
|
60
49
|
get_category_members(category, limit, 'file')
|
61
50
|
end
|
62
51
|
end
|
@@ -10,39 +10,30 @@ module MediaWiki
|
|
10
10
|
# @param title [String] See {MediaWiki::Query::Lists::Log#get_log}
|
11
11
|
# @param start [DateTime] See {MediaWiki::Query::Lists::Log#get_log}
|
12
12
|
# @param stop [DateTime] See {MediaWiki::Query::Lists::Log#get_log}
|
13
|
-
# @param limit [
|
14
|
-
# @see
|
15
|
-
# @see https://www.mediawiki.org/wiki/API:Logevents MediaWiki
|
16
|
-
# Logevents API Docs
|
13
|
+
# @param limit [Fixnum] See {MediaWiki::Query::Lists::Log#get_log}
|
14
|
+
# @see MediaWiki::Query::Lists::Log#get_log
|
15
|
+
# @see https://www.mediawiki.org/wiki/API:Logevents MediaWiki Logevents API Docs
|
17
16
|
# @since 0.10.0
|
18
|
-
# @return [Array<Hash>] The events, containing the following keys: id,
|
19
|
-
#
|
20
|
-
def get_block_log(user = nil, title = nil, start = nil, stop = nil,
|
21
|
-
limit = 500)
|
17
|
+
# @return [Array<Hash>] The events, containing the following keys: id, blocked, flags, duration, expiry,
|
18
|
+
# blocker, comment, timestamp.
|
19
|
+
def get_block_log(user = nil, title = nil, start = nil, stop = nil, limit = @query_limit_default)
|
22
20
|
response = get_log('block/block', user, title, start, stop, limit)
|
23
21
|
|
24
22
|
ret = []
|
25
23
|
response['query']['logevents'].each do |log|
|
26
|
-
ret <<
|
24
|
+
ret << get_block(log)
|
27
25
|
end
|
28
26
|
|
29
27
|
ret
|
30
28
|
end
|
31
29
|
|
32
30
|
# Gets block/reblock logs.
|
33
|
-
# @param
|
34
|
-
# @
|
35
|
-
# @param start [DateTime] See {MediaWiki::Query::Lists::Log#get_log}
|
36
|
-
# @param stop [DateTime] See {MediaWiki::Query::Lists::Log#get_log}
|
37
|
-
# @param limit [Int] See {MediaWiki::Query::Lists::Log#get_log}
|
38
|
-
# @see {MediaWiki::Query::Lists::Log#get_log}
|
39
|
-
# @see https://www.mediawiki.org/wiki/API:Logevents MediaWiki
|
40
|
-
# Logevents API Docs
|
31
|
+
# @param (see #get_block_log)
|
32
|
+
# @see (see #get_block_log)
|
41
33
|
# @since 0.10.0
|
42
|
-
# @return [Array<Hash
|
43
|
-
#
|
44
|
-
def get_reblock_log(user = nil, title = nil, start = nil, stop = nil,
|
45
|
-
limit = 500)
|
34
|
+
# @return [Array<Hash<Symbol, Any>>] The events, containing the following keys: id, blocked, flags, duration,
|
35
|
+
# expiry, blocker, comment, timestamp.
|
36
|
+
def get_reblock_log(user = nil, title = nil, start = nil, stop = nil, limit = @query_limit_default)
|
46
37
|
response = get_log('block/reblock', user, title, start, stop, limit)
|
47
38
|
|
48
39
|
ret = []
|
@@ -54,19 +45,12 @@ module MediaWiki
|
|
54
45
|
end
|
55
46
|
|
56
47
|
# Gets block/unblock logs.
|
57
|
-
# @param
|
58
|
-
# @
|
59
|
-
# @param start [DateTime] See {MediaWiki::Query::Lists::Log#get_log}
|
60
|
-
# @param stop [DateTime] See {MediaWiki::Query::Lists::Log#get_log}
|
61
|
-
# @param limit [Int] See {MediaWiki::Query::Lists::Log#get_log}
|
62
|
-
# @see {MediaWiki::Query::Lists::Log#get_log}
|
63
|
-
# @see https://www.mediawiki.org/wiki/API:Logevents MediaWiki
|
64
|
-
# Logevents API Docs
|
48
|
+
# @param (see #get_block_log)
|
49
|
+
# @see (see #get_block_log)
|
65
50
|
# @since 0.10.0
|
66
|
-
# @return [Array<Hash
|
67
|
-
#
|
68
|
-
def get_unblock_log(user = nil, title = nil, start = nil, stop = nil,
|
69
|
-
limit = 500)
|
51
|
+
# @return [Array<Hash<Symbol, Any>>] The events, containing the following keys: id, blocked, blocker,
|
52
|
+
# comment, timestamp.
|
53
|
+
def get_unblock_log(user = nil, title = nil, start = nil, stop = nil, limit = @query_limit_default)
|
70
54
|
response = get_log('block/unblock', user, title, start, stop, limit)
|
71
55
|
|
72
56
|
ret = []
|
@@ -6,19 +6,11 @@ module MediaWiki
|
|
6
6
|
# @todo delete/revision
|
7
7
|
module Delete
|
8
8
|
# Gets delete/delete logs.
|
9
|
-
# @param
|
10
|
-
# @
|
11
|
-
# @param start [DateTime] See {MediaWiki::Query::Lists::Log#get_log}
|
12
|
-
# @param stop [DateTime] See {MediaWiki::Query::Lists::Log#get_log}
|
13
|
-
# @param limit [Int] See {MediaWiki::Query::Lists::Log#get_log}
|
14
|
-
# @see {MediaWiki::Query::Lists::Log#get_log}
|
15
|
-
# @see https://www.mediawiki.org/wiki/API:Logevents MediaWiki
|
16
|
-
# Logevents API Docs
|
9
|
+
# @param (see MediaWiki::Query::Lists::Log::Block#get_block_log)
|
10
|
+
# @see (see MediaWiki::Query::Lists::Log::Block#get_block_log)
|
17
11
|
# @since 0.10.0
|
18
|
-
# @return [Array<Hash>] The events, containing the following keys: id,
|
19
|
-
|
20
|
-
def get_delete_log(user = nil, title = nil, start = nil, stop = nil,
|
21
|
-
limit = 500)
|
12
|
+
# @return [Array<Hash>] The events, containing the following keys: id, title, user, comment, timestamp.
|
13
|
+
def get_delete_log(user = nil, title = nil, start = nil, stop = nil, limit = @query_limit_default)
|
22
14
|
response = get_log('delete/delete', user, title, start, stop, limit)
|
23
15
|
|
24
16
|
ret = []
|
@@ -30,19 +22,11 @@ module MediaWiki
|
|
30
22
|
end
|
31
23
|
|
32
24
|
# Gets delete/restore logs.
|
33
|
-
# @param
|
34
|
-
# @
|
35
|
-
# @param start [DateTime] See {MediaWiki::Query::Lists::Log#get_log}
|
36
|
-
# @param stop [DateTime] See {MediaWiki::Query::Lists::Log#get_log}
|
37
|
-
# @param limit [Int] See {MediaWiki::Query::Lists::Log#get_log}
|
38
|
-
# @see {MediaWiki::Query::Lists::Log#get_log}
|
39
|
-
# @see https://www.mediawiki.org/wiki/API:Logevents MediaWiki
|
40
|
-
# Logevents API Docs
|
25
|
+
# @param (see MediaWiki::Query::Lists::Log::Block#get_block_log)
|
26
|
+
# @see (see MediaWiki::Query::Lists::Log::Block#get_block_log)
|
41
27
|
# @since 0.10.0
|
42
|
-
# @return [Array<Hash>] The events, containing the following keys: id,
|
43
|
-
|
44
|
-
def get_deletion_restore_log(user = nil, title = nil, start = nil,
|
45
|
-
stop = nil, limit = 500)
|
28
|
+
# @return [Array<Hash>] The events, containing the following keys: id, title, user, comment, timestamp.
|
29
|
+
def get_deletion_restore_log(user = nil, title = nil, start = nil, stop = nil, limit = @query_limit_default)
|
46
30
|
resp = get_log('delete/restore', user, title, start, stop, limit)
|
47
31
|
|
48
32
|
ret = []
|
@@ -4,19 +4,12 @@ module MediaWiki
|
|
4
4
|
module Log
|
5
5
|
module Import
|
6
6
|
# Gets import/interwiki logs.
|
7
|
-
# @param
|
8
|
-
# @
|
9
|
-
# @param start [DateTime] See {MediaWiki::Query::Lists::Log#get_log}
|
10
|
-
# @param stop [DateTime] See {MediaWiki::Query::Lists::Log#get_log}
|
11
|
-
# @param limit [Int] See {MediaWiki::Query::Lists::Log#get_log}
|
12
|
-
# @see {MediaWiki::Query::Lists::Log#get_log}
|
13
|
-
# @see https://www.mediawiki.org/wiki/API:Logevents MediaWiki
|
14
|
-
# Logevents API Docs
|
7
|
+
# @param (see MediaWiki::Query::Lists::Log::Block#get_block_log)
|
8
|
+
# @see (see MediaWiki::Query::Lists::Log::Block#get_block_log)
|
15
9
|
# @since 0.10.0
|
16
|
-
# @return [Array<Hash>] The events, containing the following keys: id,
|
17
|
-
#
|
18
|
-
def get_interwiki_import_log(user = nil, title = nil, start = nil,
|
19
|
-
stop = nil, limit = 500)
|
10
|
+
# @return [Array<Hash>] The events, containing the following keys: id, title, user, comment, timestamp,
|
11
|
+
# count, interwiki_title.
|
12
|
+
def get_interwiki_import_log(user = nil, title = nil, start = nil, stop = nil, limit = @query_limit_default)
|
20
13
|
resp = get_log('import/interwiki', user, title, start, stop, limit)
|
21
14
|
|
22
15
|
ret = []
|
@@ -28,19 +21,11 @@ module MediaWiki
|
|
28
21
|
end
|
29
22
|
|
30
23
|
# Gets import/upload logs.
|
31
|
-
# @param
|
32
|
-
# @
|
33
|
-
# @param start [DateTime] See {MediaWiki::Query::Lists::Log#get_log}
|
34
|
-
# @param stop [DateTime] See {MediaWiki::Query::Lists::Log#get_log}
|
35
|
-
# @param limit [Int] See {MediaWiki::Query::Lists::Log#get_log}
|
36
|
-
# @see {MediaWiki::Query::Lists::Log#get_log}
|
37
|
-
# @see https://www.mediawiki.org/wiki/API:Logevents MediaWiki
|
38
|
-
# Logevents API Docs
|
24
|
+
# @param (see MediaWiki::Query::Lists::Log::Block#get_block_log)
|
25
|
+
# @see (see MediaWiki::Query::Lists::Log::Block#get_block_log)
|
39
26
|
# @since 0.10.0
|
40
|
-
# @return [Array<Hash>] The events, containing the following keys: id,
|
41
|
-
|
42
|
-
def get_upload_import_log(user = nil, title = nil, start = nil,
|
43
|
-
stop = nil, limit = 500)
|
27
|
+
# @return [Array<Hash>] The events, containing the following keys: id, title, user, timestamp, comment.
|
28
|
+
def get_upload_import_log(user = nil, title = nil, start = nil, stop = nil, limit = @query_limit_default)
|
44
29
|
resp = get_log('import/upload', user, title, start, stop, limit)
|
45
30
|
|
46
31
|
ret = []
|
@@ -25,23 +25,18 @@ module MediaWiki
|
|
25
25
|
include MediaWiki::Query::Lists::Log::Rights
|
26
26
|
include MediaWiki::Query::Lists::Log::Upload
|
27
27
|
|
28
|
-
# Gets the general log as seen in Special:Log. Since not every single
|
29
|
-
#
|
30
|
-
#
|
31
|
-
#
|
32
|
-
# @param
|
33
|
-
# @param
|
34
|
-
# @param
|
35
|
-
# @
|
36
|
-
# @
|
37
|
-
# @see {#get_log}
|
38
|
-
# @see https://www.mediawiki.org/wiki/API:Logevents MediaWiki Logevents
|
39
|
-
# API Docs
|
28
|
+
# Gets the general log as seen in Special:Log. Since not every single log type possible can be supported,
|
29
|
+
# non-default MW logs will be represented exactly as provided by the API, with the :skipped key as true.
|
30
|
+
# @param user [String] The user to filter by.
|
31
|
+
# @param title [String] The title to filter by.
|
32
|
+
# @param start [DateTime] Where to start the log events at.
|
33
|
+
# @param stop [DateTime] Where to end the log events.
|
34
|
+
# @param limit [Fixnum] The limit, maximum 500 for users or 5000 for bots.
|
35
|
+
# @see #get_log
|
36
|
+
# @see https://www.mediawiki.org/wiki/API:Logevents MediaWiki Logevents API Docs
|
40
37
|
# @since 0.10.0
|
41
38
|
# @return [Array<Hash>] All the log events.
|
42
|
-
def get_overall_log(user = nil, title = nil, start = nil, stop = nil,
|
43
|
-
limit = 500)
|
44
|
-
time_format = MediaWiki::Constants::TIME_FORMAT
|
39
|
+
def get_overall_log(user = nil, title = nil, start = nil, stop = nil, limit = @query_limit_default)
|
45
40
|
params = {
|
46
41
|
action: 'query',
|
47
42
|
list: 'logevents',
|
@@ -49,8 +44,8 @@ module MediaWiki
|
|
49
44
|
}
|
50
45
|
params[:leuser] = user unless user.nil?
|
51
46
|
params[:letitle] = title unless title.nil?
|
52
|
-
params[:lestart] = start.
|
53
|
-
params[:leend] = stop.
|
47
|
+
params[:lestart] = start.xmlschema unless start.nil?
|
48
|
+
params[:leend] = stop.xmlschema unless stop.nil?
|
54
49
|
response = post(params)
|
55
50
|
|
56
51
|
ret = []
|
@@ -137,17 +132,11 @@ module MediaWiki
|
|
137
132
|
|
138
133
|
# Gets log events.
|
139
134
|
# @param action [String] The action, e.g., block/block.
|
140
|
-
# @param
|
141
|
-
# @
|
142
|
-
# @param start [DateTime] Where to start the log events at.
|
143
|
-
# @param stop [DateTime] Where to end the log events.
|
144
|
-
# @param limit [Int] The limit, maximum 500 for users or 5000 for bots.
|
145
|
-
# @see https://www.mediawiki.org/wiki/API:Logevents MediaWiki Logevents
|
146
|
-
# API Docs
|
135
|
+
# @param (see #get_overall_log)
|
136
|
+
# @see https://www.mediawiki.org/wiki/API:Logevents MediaWiki Logevents API Docs
|
147
137
|
# @since 0.10.0
|
148
|
-
# @return [
|
149
|
-
def get_log(action, user = nil, title = nil, start = nil, stop = nil,
|
150
|
-
limit = 500)
|
138
|
+
# @return [Hash] The response.
|
139
|
+
def get_log(action, user = nil, title = nil, start = nil, stop = nil, limit = @query_limit_default)
|
151
140
|
params = {
|
152
141
|
action: 'query',
|
153
142
|
list: 'logevents',
|
@@ -156,8 +145,8 @@ module MediaWiki
|
|
156
145
|
}
|
157
146
|
params[:leuser] = user unless user.nil?
|
158
147
|
params[:letitle] = title unless title.nil?
|
159
|
-
params[:lestart] = start.
|
160
|
-
params[:leend] = stop.
|
148
|
+
params[:lestart] = start.xmlschema unless start.nil?
|
149
|
+
params[:leend] = stop.xmlschema unless stop.nil?
|
161
150
|
post(params)
|
162
151
|
end
|
163
152
|
|
@@ -167,12 +156,10 @@ module MediaWiki
|
|
167
156
|
blocked: log['title'],
|
168
157
|
flags: log['block']['flags'],
|
169
158
|
duration: log['block']['duration'],
|
170
|
-
expiry: DateTime.
|
171
|
-
MediaWiki::Constants::TIME_FORMAT),
|
159
|
+
expiry: DateTime.xmlschema(log['block']['expiry']),
|
172
160
|
blocker: log['user'],
|
173
161
|
comment: log['comment'],
|
174
|
-
timestamp: DateTime.
|
175
|
-
MediaWiki::Constants::TIME_FORMAT)
|
162
|
+
timestamp: DateTime.xmlschema(log['timestamp'])
|
176
163
|
}
|
177
164
|
end
|
178
165
|
|
@@ -181,8 +168,7 @@ module MediaWiki
|
|
181
168
|
id: log['logid'],
|
182
169
|
blocked: log['title'],
|
183
170
|
blocker: log['user'],
|
184
|
-
timestamp: DateTime.
|
185
|
-
MediaWiki::Constants::TIME_FORMAT),
|
171
|
+
timestamp: DateTime.xmlschema(log['timestamp']),
|
186
172
|
comment: log['comment']
|
187
173
|
}
|
188
174
|
end
|
@@ -193,8 +179,7 @@ module MediaWiki
|
|
193
179
|
title: log['title'],
|
194
180
|
user: log['user'],
|
195
181
|
comment: log['comment'],
|
196
|
-
timestamp: DateTime.
|
197
|
-
MediaWiki::Constants::TIME_FORMAT),
|
182
|
+
timestamp: DateTime.xmlschema(log['timestamp']),
|
198
183
|
count: log['params']['count'],
|
199
184
|
interwiki_title: log['params']['interwiki_title']
|
200
185
|
}
|
@@ -205,8 +190,7 @@ module MediaWiki
|
|
205
190
|
id: log['logid'],
|
206
191
|
title: log['title'],
|
207
192
|
user: log['user'],
|
208
|
-
timestamp: DateTime.
|
209
|
-
MediaWiki::Constants::TIME_FORMAT),
|
193
|
+
timestamp: DateTime.xmlschema(log['timestamp']),
|
210
194
|
comment: log['comment']
|
211
195
|
}
|
212
196
|
end
|
@@ -218,18 +202,15 @@ module MediaWiki
|
|
218
202
|
user: log['user'],
|
219
203
|
comment: log['comment'],
|
220
204
|
destination_title: log['params']['dest_title'],
|
221
|
-
mergepoint: DateTime.
|
222
|
-
|
223
|
-
timestamp: DateTime.strptime(log['timestamp'],
|
224
|
-
MediaWiki::Constants::TIME_FORMAT)
|
205
|
+
mergepoint: DateTime.xmlschema(log['params']['mergepoint']),
|
206
|
+
timestamp: DateTime.xmlschema(log['timestamp'])
|
225
207
|
}
|
226
208
|
end
|
227
209
|
|
228
210
|
def get_move(log)
|
229
211
|
hash = {
|
230
212
|
id: log['logid'],
|
231
|
-
timestamp: DateTime.
|
232
|
-
MediaWiki::Constants::TIME_FORMAT)
|
213
|
+
timestamp: DateTime.xmlschema(log['timestamp'])
|
233
214
|
}
|
234
215
|
|
235
216
|
if log.key?('actionhidden')
|
@@ -255,8 +236,7 @@ module MediaWiki
|
|
255
236
|
new_user: log['title'],
|
256
237
|
user: log['user'],
|
257
238
|
comment: log['comment'],
|
258
|
-
timestamp: DateTime.
|
259
|
-
MediaWiki::Constants::TIME_FORMAT)
|
239
|
+
timestamp: DateTime.xmlschema(log['timestamp'])
|
260
240
|
}
|
261
241
|
end
|
262
242
|
|
@@ -268,8 +248,7 @@ module MediaWiki
|
|
268
248
|
comment: log['comment'],
|
269
249
|
current_revision: log['patrol']['cur'],
|
270
250
|
previous_revision: log['patrol']['prev'],
|
271
|
-
timestamp: DateTime.
|
272
|
-
MediaWiki::Constants::TIME_FORMAT)
|
251
|
+
timestamp: DateTime.xmlschema(log['timestamp'])
|
273
252
|
}
|
274
253
|
auto = log['patrol']['auto']
|
275
254
|
hash[:automatic] = auto == 1
|
@@ -278,14 +257,13 @@ module MediaWiki
|
|
278
257
|
end
|
279
258
|
|
280
259
|
def get_protect(log)
|
281
|
-
time_format = MediaWiki::Constants::TIME_FORMAT
|
282
260
|
hash = {
|
283
261
|
id: log['logid'],
|
284
262
|
title: log['title'],
|
285
263
|
description: log['params']['description'],
|
286
264
|
user: log['user'],
|
287
265
|
comment: log['comment'],
|
288
|
-
timestamp: DateTime.
|
266
|
+
timestamp: DateTime.xmlschema(log['timestamp'])
|
289
267
|
}
|
290
268
|
|
291
269
|
hash[:details] = []
|
@@ -297,9 +275,9 @@ module MediaWiki
|
|
297
275
|
}
|
298
276
|
expire = detail['expiry']
|
299
277
|
if expire != 'infinite'
|
300
|
-
details_hash[:expiry] = DateTime.
|
278
|
+
details_hash[:expiry] = DateTime.xmlschema(expire)
|
301
279
|
end
|
302
|
-
hash[:details] <<
|
280
|
+
hash[:details] << details_hash
|
303
281
|
end
|
304
282
|
|
305
283
|
hash
|
@@ -312,8 +290,7 @@ module MediaWiki
|
|
312
290
|
old_title: log['params']['oldtitle_title'],
|
313
291
|
user: log['user'],
|
314
292
|
comment: log['comment'],
|
315
|
-
timestamp: DateTime.
|
316
|
-
MediaWiki::Constants::TIME_FORMAT)
|
293
|
+
timestamp: DateTime.xmlschema(log['timestamp'])
|
317
294
|
}
|
318
295
|
end
|
319
296
|
|
@@ -323,8 +300,7 @@ module MediaWiki
|
|
323
300
|
title: log['title'],
|
324
301
|
user: log['user'],
|
325
302
|
comment: log['comment'],
|
326
|
-
timestamp: DateTime.
|
327
|
-
MediaWiki::Constants::TIME_FORMAT)
|
303
|
+
timestamp: DateTime.xmlschema(log['timestamp'])
|
328
304
|
}
|
329
305
|
end
|
330
306
|
|
@@ -336,8 +312,7 @@ module MediaWiki
|
|
336
312
|
new_rights: log['rights']['new'].split(', '),
|
337
313
|
old_rights: log['rights']['old'].split(', '),
|
338
314
|
comment: log['comment'],
|
339
|
-
timestamp: DateTime.
|
340
|
-
MediaWiki::Constants::TIME_FORMAT)
|
315
|
+
timestamp: DateTime.xmlschema(log['timestamp'])
|
341
316
|
}
|
342
317
|
end
|
343
318
|
|
@@ -350,8 +325,7 @@ module MediaWiki
|
|
350
325
|
new_rights: log['rights']['new'].split(', '),
|
351
326
|
old_rights: log['rights']['old'].split(', '),
|
352
327
|
comment: log['comment'],
|
353
|
-
timestamp: DateTime.
|
354
|
-
MediaWiki::Constants::TIME_FORMAT)
|
328
|
+
timestamp: DateTime.xmlschema(log['timestamp'])
|
355
329
|
}
|
356
330
|
end
|
357
331
|
|
@@ -362,8 +336,7 @@ module MediaWiki
|
|
362
336
|
user: log['user'],
|
363
337
|
sha: log['img_sha1'],
|
364
338
|
comment: log['comment'],
|
365
|
-
timestamp: DateTime.
|
366
|
-
MediaWiki::Constants::TIME_FORMAT)
|
339
|
+
timestamp: DateTime.xmlschema(log['timestamp'])
|
367
340
|
}
|
368
341
|
end
|
369
342
|
end
|