module MediaWiktory::Wikipedia::Modules::Watchlist
Get recent changes to pages in the current user's watchlist.
The “submodule” (MediaWiki API term) is included in action after setting some param, providing additional tweaking for this param. Example (for {MediaWiktory::Wikipedia::Actions::Query} and its submodules):
“`ruby api.query # returns Actions::Query
.prop(:revisions) # adds prop=revisions to action URL, and includes Modules::Revisions into action .limit(10) # method of Modules::Revisions, adds rvlimit=10 to URL
“`
All submodule's parameters are documented as its public methods, see below.
Public Instance Methods
@private
# File lib/mediawiktory/wikipedia/modules/watchlist.rb, line 82 def _dir(value) defined?(super) && super || ["newer", "older"].include?(value.to_s) && merge(wldir: value.to_s) end
@private
# File lib/mediawiktory/wikipedia/modules/watchlist.rb, line 53 def _namespace(value) defined?(super) && super || ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "100", "101", "108", "109", "118", "119", "446", "447", "710", "711", "828", "829", "2300", "2301", "2302", "2303"].include?(value.to_s) && merge(wlnamespace: value.to_s, replace: false) end
@private
# File lib/mediawiktory/wikipedia/modules/watchlist.rb, line 103 def _prop(value) defined?(super) && super || ["ids", "title", "flags", "user", "userid", "comment", "parsedcomment", "timestamp", "patrol", "sizes", "notificationtimestamp", "loginfo"].include?(value.to_s) && merge(wlprop: value.to_s, replace: false) end
@private
# File lib/mediawiktory/wikipedia/modules/watchlist.rb, line 116 def _show(value) defined?(super) && super || ["minor", "!minor", "bot", "!bot", "anon", "!anon", "patrolled", "!patrolled", "unread", "!unread"].include?(value.to_s) && merge(wlshow: value.to_s, replace: false) end
@private
# File lib/mediawiktory/wikipedia/modules/watchlist.rb, line 129 def _type(value) defined?(super) && super || ["edit", "new", "log", "external", "categorize"].include?(value.to_s) && merge(wltype: value.to_s, replace: false) end
Include multiple revisions of the same page within given timeframe.
@return [self]
# File lib/mediawiktory/wikipedia/modules/watchlist.rb, line 24 def allrev() merge(wlallrev: 'true') end
When more results are available, use this to continue.
@param value [String] @return [self]
# File lib/mediawiktory/wikipedia/modules/watchlist.rb, line 153 def continue(value) merge(wlcontinue: value.to_s) end
In which direction to enumerate:
@param value [String] One of “newer” (List oldest first. Note: wlstart has to be before wlend), “older” (List newest first (default). Note: wlstart has to be later than wlend). @return [self]
# File lib/mediawiktory/wikipedia/modules/watchlist.rb, line 77 def dir(value) _dir(value) or fail ArgumentError, "Unknown value for dir: #{value}" end
The timestamp to end enumerating.
@param value [Time] @return [self]
# File lib/mediawiktory/wikipedia/modules/watchlist.rb, line 40 def end(value) merge(wlend: value.iso8601) end
Don't list changes by this user.
@param value [String] @return [self]
# File lib/mediawiktory/wikipedia/modules/watchlist.rb, line 69 def excludeuser(value) merge(wlexcludeuser: value.to_s) end
How many total results to return per request.
@param value [Integer, “max”] @return [self]
# File lib/mediawiktory/wikipedia/modules/watchlist.rb, line 90 def limit(value) merge(wllimit: value.to_s) end
Filter changes to only the given namespaces.
@param values [Array<String>] Allowed values: “0”, “1”, “2”, “3”, “4”, “5”, “6”, “7”, “8”, “9”, “10”, “11”, “12”, “13”, “14”, “15”, “100”, “101”, “108”, “109”, “118”, “119”, “446”, “447”, “710”, “711”, “828”, “829”, “2300”, “2301”, “2302”, “2303”. @return [self]
# File lib/mediawiktory/wikipedia/modules/watchlist.rb, line 48 def namespace(*values) values.inject(self) { |res, val| res._namespace(val) or fail ArgumentError, "Unknown value for namespace: #{val}" } end
Used along with wltoken to access a different user's watchlist.
@param value [String] @return [self]
# File lib/mediawiktory/wikipedia/modules/watchlist.rb, line 137 def owner(value) merge(wlowner: value.to_s) end
Which additional properties to get:
@param values [Array<String>] Allowed values: “ids” (Adds revision IDs and page IDs), “title” (Adds title of the page), “flags” (Adds flags for the edit), “user” (Adds the user who made the edit), “userid” (Adds user ID of whoever made the edit), “comment” (Adds comment of the edit), “parsedcomment” (Adds parsed comment of the edit), “timestamp” (Adds timestamp of the edit), “patrol” (Tags
edits that are patrolled), “sizes” (Adds the old and new lengths of the page), “notificationtimestamp” (Adds timestamp of when the user was last notified about the edit), “loginfo” (Adds log information where appropriate). @return [self]
# File lib/mediawiktory/wikipedia/modules/watchlist.rb, line 98 def prop(*values) values.inject(self) { |res, val| res._prop(val) or fail ArgumentError, "Unknown value for prop: #{val}" } end
Show only items that meet these criteria. For example, to see only minor edits done by logged-in users, set wlshow=minor|!anon.
@param values [Array<String>] Allowed values: “minor”, “!minor”, “bot”, “!bot”, “anon”, “!anon”, “patrolled”, “!patrolled”, “unread”, “!unread”. @return [self]
# File lib/mediawiktory/wikipedia/modules/watchlist.rb, line 111 def show(*values) values.inject(self) { |res, val| res._show(val) or fail ArgumentError, "Unknown value for show: #{val}" } end
The timestamp to start enumerating from.
@param value [Time] @return [self]
# File lib/mediawiktory/wikipedia/modules/watchlist.rb, line 32 def start(value) merge(wlstart: value.iso8601) end
A security token (available in the user's preferences) to allow access to another user's watchlist.
@param value [String] @return [self]
# File lib/mediawiktory/wikipedia/modules/watchlist.rb, line 145 def token(value) merge(wltoken: value.to_s) end
Which types of changes to show:
@param values [Array<String>] Allowed values: “edit” (Regular page edits), “new” (Page creations), “log” (Log entries), “external” (External changes), “categorize” (Category membership changes). @return [self]
# File lib/mediawiktory/wikipedia/modules/watchlist.rb, line 124 def type(*values) values.inject(self) { |res, val| res._type(val) or fail ArgumentError, "Unknown value for type: #{val}" } end
Only list changes by this user.
@param value [String] @return [self]
# File lib/mediawiktory/wikipedia/modules/watchlist.rb, line 61 def user(value) merge(wluser: value.to_s) end