mediawiktory 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +18 -0
- data/CONTRIBUTING.md +16 -0
- data/LICENSE.txt +22 -0
- data/README.md +5 -5
- data/examples/query_generator.rb +1 -1
- data/lib/mediawiktory.rb +2 -1
- data/lib/mediawiktory/action.rb +9 -0
- data/lib/mediawiktory/client.rb +27 -2
- data/lib/mediawiktory/generated/abusefilters.rb +3 -3
- data/lib/mediawiktory/generated/abuselog.rb +2 -2
- data/lib/mediawiktory/generated/allcategories.rb +2 -2
- data/lib/mediawiktory/generated/alldeletedrevisions.rb +4 -4
- data/lib/mediawiktory/generated/allfileusages.rb +2 -2
- data/lib/mediawiktory/generated/allimages.rb +4 -4
- data/lib/mediawiktory/generated/alllinks.rb +3 -3
- data/lib/mediawiktory/generated/allmessages.rb +2 -2
- data/lib/mediawiktory/generated/allpages.rb +8 -8
- data/lib/mediawiktory/generated/allredirects.rb +3 -3
- data/lib/mediawiktory/generated/alltransclusions.rb +3 -3
- data/lib/mediawiktory/generated/allusers.rb +5 -5
- data/lib/mediawiktory/generated/backlinks.rb +3 -3
- data/lib/mediawiktory/generated/blocks.rb +3 -3
- data/lib/mediawiktory/generated/categories.rb +3 -3
- data/lib/mediawiktory/generated/categorymembers.rb +5 -5
- data/lib/mediawiktory/generated/checktoken.rb +1 -1
- data/lib/mediawiktory/generated/checkuser.rb +1 -1
- data/lib/mediawiktory/generated/checkuserlog.rb +1 -1
- data/lib/mediawiktory/generated/close-open-topic.rb +1 -1
- data/lib/mediawiktory/generated/contenttranslation.rb +1 -1
- data/lib/mediawiktory/generated/contenttranslationlangtrend.rb +1 -1
- data/lib/mediawiktory/generated/contributors.rb +4 -4
- data/lib/mediawiktory/generated/coordinates.rb +2 -2
- data/lib/mediawiktory/generated/cxpublish.rb +1 -1
- data/lib/mediawiktory/generated/delete.rb +1 -1
- data/lib/mediawiktory/generated/deletedrevisions.rb +3 -3
- data/lib/mediawiktory/generated/deletedrevs.rb +3 -3
- data/lib/mediawiktory/generated/deleteeducation.rb +1 -1
- data/lib/mediawiktory/generated/duplicatefiles.rb +1 -1
- data/lib/mediawiktory/generated/echomarkread.rb +1 -1
- data/lib/mediawiktory/generated/echomarkseen.rb +1 -1
- data/lib/mediawiktory/generated/edit-header.rb +1 -1
- data/lib/mediawiktory/generated/edit-post.rb +1 -1
- data/lib/mediawiktory/generated/edit-topic-summary.rb +1 -1
- data/lib/mediawiktory/generated/edit.rb +4 -4
- data/lib/mediawiktory/generated/editlist.rb +2 -2
- data/lib/mediawiktory/generated/embeddedin.rb +3 -3
- data/lib/mediawiktory/generated/enlist.rb +2 -2
- data/lib/mediawiktory/generated/expandtemplates.rb +1 -1
- data/lib/mediawiktory/generated/extlinks.rb +1 -1
- data/lib/mediawiktory/generated/extracts.rb +1 -1
- data/lib/mediawiktory/generated/exturlusage.rb +3 -3
- data/lib/mediawiktory/generated/featuredfeed.rb +2 -2
- data/lib/mediawiktory/generated/feedcontributions.rb +3 -3
- data/lib/mediawiktory/generated/feedrecentchanges.rb +2 -2
- data/lib/mediawiktory/generated/feedwatchlist.rb +3 -3
- data/lib/mediawiktory/generated/filearchive.rb +2 -2
- data/lib/mediawiktory/generated/filerepoinfo.rb +1 -1
- data/lib/mediawiktory/generated/fileusage.rb +3 -3
- data/lib/mediawiktory/generated/flow-parsoid-utils.rb +2 -2
- data/lib/mediawiktory/generated/gadgetcategories.rb +1 -1
- data/lib/mediawiktory/generated/gadgets.rb +1 -1
- data/lib/mediawiktory/generated/geosearch.rb +4 -4
- data/lib/mediawiktory/generated/globalallusers.rb +4 -4
- data/lib/mediawiktory/generated/globalblocks.rb +2 -2
- data/lib/mediawiktory/generated/globalgroups.rb +1 -1
- data/lib/mediawiktory/generated/globalusage.rb +1 -1
- data/lib/mediawiktory/generated/globaluserinfo.rb +1 -1
- data/lib/mediawiktory/generated/globaluserrights.rb +2 -2
- data/lib/mediawiktory/generated/imageinfo.rb +1 -1
- data/lib/mediawiktory/generated/images.rb +1 -1
- data/lib/mediawiktory/generated/imageusage.rb +3 -3
- data/lib/mediawiktory/generated/import.rb +2 -2
- data/lib/mediawiktory/generated/info.rb +2 -2
- data/lib/mediawiktory/generated/iwbacklinks.rb +2 -2
- data/lib/mediawiktory/generated/iwlinks.rb +2 -2
- data/lib/mediawiktory/generated/jsonconfig.rb +1 -1
- data/lib/mediawiktory/generated/langbacklinks.rb +2 -2
- data/lib/mediawiktory/generated/langlinks.rb +2 -2
- data/lib/mediawiktory/generated/links.rb +2 -2
- data/lib/mediawiktory/generated/linkshere.rb +3 -3
- data/lib/mediawiktory/generated/listpages.rb +3 -3
- data/lib/mediawiktory/generated/lists.rb +2 -2
- data/lib/mediawiktory/generated/liststudents.rb +1 -1
- data/lib/mediawiktory/generated/lock-topic.rb +1 -1
- data/lib/mediawiktory/generated/logevents.rb +5 -5
- data/lib/mediawiktory/generated/managetags.rb +1 -1
- data/lib/mediawiktory/generated/mobileview.rb +3 -3
- data/lib/mediawiktory/generated/moderate-post.rb +1 -1
- data/lib/mediawiktory/generated/moderate-topic.rb +1 -1
- data/lib/mediawiktory/generated/move.rb +1 -1
- data/lib/mediawiktory/generated/new-topic.rb +1 -1
- data/lib/mediawiktory/generated/notifications.rb +3 -3
- data/lib/mediawiktory/generated/oldreviewedpages.rb +4 -4
- data/lib/mediawiktory/generated/opensearch.rb +3 -3
- data/lib/mediawiktory/generated/options.rb +1 -1
- data/lib/mediawiktory/generated/pageimages.rb +1 -1
- data/lib/mediawiktory/generated/pageswithprop.rb +2 -2
- data/lib/mediawiktory/generated/pageterms.rb +1 -1
- data/lib/mediawiktory/generated/pagetriageaction.rb +1 -1
- data/lib/mediawiktory/generated/paraminfo.rb +3 -3
- data/lib/mediawiktory/generated/parse.rb +3 -3
- data/lib/mediawiktory/generated/prefixsearch.rb +1 -1
- data/lib/mediawiktory/generated/protect.rb +1 -1
- data/lib/mediawiktory/generated/protectedtitles.rb +4 -4
- data/lib/mediawiktory/generated/querypage.rb +1 -1
- data/lib/mediawiktory/generated/random.rb +2 -2
- data/lib/mediawiktory/generated/recentchanges.rb +6 -6
- data/lib/mediawiktory/generated/redirects.rb +3 -3
- data/lib/mediawiktory/generated/refresheducation.rb +1 -1
- data/lib/mediawiktory/generated/reply.rb +1 -1
- data/lib/mediawiktory/generated/reviewactivity.rb +1 -1
- data/lib/mediawiktory/generated/revisiondelete.rb +4 -4
- data/lib/mediawiktory/generated/revisions.rb +4 -4
- data/lib/mediawiktory/generated/rollback.rb +1 -1
- data/lib/mediawiktory/generated/search.rb +4 -4
- data/lib/mediawiktory/generated/setglobalaccountstatus.rb +2 -2
- data/lib/mediawiktory/generated/siteinfo.rb +2 -2
- data/lib/mediawiktory/generated/sitematrix.rb +4 -4
- data/lib/mediawiktory/generated/stabilize.rb +1 -1
- data/lib/mediawiktory/generated/stashedit.rb +2 -2
- data/lib/mediawiktory/generated/stashimageinfo.rb +1 -1
- data/lib/mediawiktory/generated/strikevote.rb +1 -1
- data/lib/mediawiktory/generated/tag.rb +1 -1
- data/lib/mediawiktory/generated/tags.rb +1 -1
- data/lib/mediawiktory/generated/templatedata.rb +1 -1
- data/lib/mediawiktory/generated/templates.rb +2 -2
- data/lib/mediawiktory/generated/titleblacklist.rb +1 -1
- data/lib/mediawiktory/generated/tokens.rb +1 -1
- data/lib/mediawiktory/generated/transcludedin.rb +3 -3
- data/lib/mediawiktory/generated/undelete.rb +1 -1
- data/lib/mediawiktory/generated/upload.rb +1 -1
- data/lib/mediawiktory/generated/usercontribs.rb +4 -4
- data/lib/mediawiktory/generated/userinfo.rb +1 -1
- data/lib/mediawiktory/generated/userrights.rb +2 -2
- data/lib/mediawiktory/generated/users.rb +2 -2
- data/lib/mediawiktory/generated/videoinfo.rb +1 -1
- data/lib/mediawiktory/generated/view-header.rb +1 -1
- data/lib/mediawiktory/generated/view-post-history.rb +1 -1
- data/lib/mediawiktory/generated/view-post.rb +1 -1
- data/lib/mediawiktory/generated/view-topic-history.rb +1 -1
- data/lib/mediawiktory/generated/view-topic-summary.rb +1 -1
- data/lib/mediawiktory/generated/view-topic.rb +1 -1
- data/lib/mediawiktory/generated/view-topiclist.rb +3 -3
- data/lib/mediawiktory/generated/visualeditor.rb +2 -2
- data/lib/mediawiktory/generated/watchlist.rb +5 -5
- data/lib/mediawiktory/generated/watchlistraw.rb +4 -4
- data/lib/mediawiktory/generated/wikibase.rb +1 -1
- data/lib/mediawiktory/generated/wikisets.rb +1 -1
- data/lib/mediawiktory/generated/zeroconfig.rb +1 -1
- data/lib/mediawiktory/mw_module.rb +6 -2
- data/lib/mediawiktory/page.rb +46 -0
- data/lib/mediawiktory/query.rb +21 -23
- data/lib/mediawiktory/version.rb +4 -1
- data/script/lib/parameter.rb +2 -5
- metadata +6 -4
- data/Gemfile.lock +0 -63
- data/lib/mediawiktory/array_with_keys.rb +0 -41
@@ -2,6 +2,6 @@ module MediaWiktory
|
|
2
2
|
class Userinfo < MWModule
|
3
3
|
symbol :userinfo
|
4
4
|
prefix "ui"
|
5
|
-
param :prop, Params::List[Params::Enum[
|
5
|
+
param :prop, Params::List[Params::Enum[:blockinfo, :hasmsg, :groups, :implicitgroups, :rights, :changeablegroups, :options, :preferencestoken, :editcount, :ratelimits, :email, :realname, :acceptlang, :registrationdate, :unreadcount]]
|
6
6
|
end
|
7
7
|
end
|
@@ -4,8 +4,8 @@ module MediaWiktory
|
|
4
4
|
post!
|
5
5
|
param :user, Params::String
|
6
6
|
param :userid, Params::Integer
|
7
|
-
param :add, Params::List[Params::Enum[
|
8
|
-
param :remove, Params::List[Params::Enum[
|
7
|
+
param :add, Params::List[Params::Enum[:bot, :sysop, :bureaucrat, :reviewer, :steward, :accountcreator, :import, :transwiki, :"ipblock-exempt", :oversight, :founder, :rollbacker, :autoreviewer, :researcher, :filemover, :checkuser, :templateeditor, :"massmessage-sender", :abusefilter, :epcoordinator, :eponline, :epcampus, :epinstructor, :suppress, :"flow-bot", :confirmed]]
|
8
|
+
param :remove, Params::List[Params::Enum[:bot, :sysop, :bureaucrat, :reviewer, :steward, :accountcreator, :import, :transwiki, :"ipblock-exempt", :oversight, :founder, :rollbacker, :autoreviewer, :researcher, :filemover, :checkuser, :templateeditor, :"massmessage-sender", :abusefilter, :epcoordinator, :eponline, :epcampus, :epinstructor, :suppress, :"flow-bot", :confirmed]]
|
9
9
|
param :reason, Params::String
|
10
10
|
param :token, Params::String
|
11
11
|
end
|
@@ -2,8 +2,8 @@ module MediaWiktory
|
|
2
2
|
class Users < MWModule
|
3
3
|
symbol :users
|
4
4
|
prefix "us"
|
5
|
-
param :prop, Params::List[Params::Enum[
|
5
|
+
param :prop, Params::List[Params::Enum[:blockinfo, :groups, :implicitgroups, :rights, :editcount, :registration, :emailable, :gender]]
|
6
6
|
param :users, Params::List[Params::String]
|
7
|
-
param :token, Params::List[Params::Enum[
|
7
|
+
param :token, Params::List[Params::Enum[:userrights]]
|
8
8
|
end
|
9
9
|
end
|
@@ -2,7 +2,7 @@ module MediaWiktory
|
|
2
2
|
class Videoinfo < MWModule
|
3
3
|
symbol :videoinfo
|
4
4
|
prefix "vi"
|
5
|
-
param :prop, Params::List[Params::Enum[
|
5
|
+
param :prop, Params::List[Params::Enum[:timestamp, :user, :userid, :comment, :parsedcomment, :canonicaltitle, :url, :size, :dimensions, :sha1, :mime, :thumbmime, :mediatype, :metadata, :commonmetadata, :extmetadata, :archivename, :bitdepth, :uploadwarning, :derivatives]]
|
6
6
|
param :limit, Params::IntegerOrMax
|
7
7
|
param :start, Params::Timestamp
|
8
8
|
param :end, Params::Timestamp
|
@@ -2,7 +2,7 @@ module MediaWiktory
|
|
2
2
|
class ViewTopicSummary < MWModule
|
3
3
|
symbol :"view-topic-summary"
|
4
4
|
prefix "vts"
|
5
|
-
param :format, Params::Enum[
|
5
|
+
param :format, Params::Enum[:html, :wikitext, :"fixed-html"]
|
6
6
|
param :revId, Params::String
|
7
7
|
end
|
8
8
|
end
|
@@ -2,14 +2,14 @@ module MediaWiktory
|
|
2
2
|
class ViewTopiclist < MWModule
|
3
3
|
symbol :"view-topiclist"
|
4
4
|
prefix "vtl"
|
5
|
-
param :"offset-dir", Params::Enum[
|
6
|
-
param :sortby, Params::Enum[
|
5
|
+
param :"offset-dir", Params::Enum[:fwd, :rev]
|
6
|
+
param :sortby, Params::Enum[:newest, :updated, :user]
|
7
7
|
param :savesortby, Params::Boolean
|
8
8
|
param :"offset-id", Params::String
|
9
9
|
param :offset, Params::String
|
10
10
|
param :"include-offset", Params::Boolean
|
11
11
|
param :limit, Params::IntegerOrMax
|
12
12
|
param :toconly, Params::Boolean
|
13
|
-
param :format, Params::Enum[
|
13
|
+
param :format, Params::Enum[:html, :wikitext, :"fixed-html"]
|
14
14
|
end
|
15
15
|
end
|
@@ -2,8 +2,8 @@ module MediaWiktory
|
|
2
2
|
class Visualeditor < Action
|
3
3
|
symbol :visualeditor
|
4
4
|
param :page, Params::String
|
5
|
-
param :format, Params::Enum[
|
6
|
-
param :paction, Params::Enum[
|
5
|
+
param :format, Params::Enum[:json, :jsonfm]
|
6
|
+
param :paction, Params::Enum[:parse, :metadata, :parsefragment, :serialize, :serializeforcache, :diff, :getlanglinks]
|
7
7
|
param :wikitext, Params::String
|
8
8
|
param :oldid, Params::String
|
9
9
|
param :html, Params::String
|
@@ -5,14 +5,14 @@ module MediaWiktory
|
|
5
5
|
param :allrev, Params::Boolean
|
6
6
|
param :start, Params::Timestamp
|
7
7
|
param :end, Params::Timestamp
|
8
|
-
param :namespace, Params::List[Params::Enum["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "100", "101", "108", "109", "118", "119", "2300", "2301", "2302", "2303", "710", "711", "446", "447", "2600", "828", "829"]]
|
8
|
+
param :namespace, Params::List[Params::Enum[:"0", :"1", :"2", :"3", :"4", :"5", :"6", :"7", :"8", :"9", :"10", :"11", :"12", :"13", :"14", :"15", :"100", :"101", :"108", :"109", :"118", :"119", :"2300", :"2301", :"2302", :"2303", :"710", :"711", :"446", :"447", :"2600", :"828", :"829"]]
|
9
9
|
param :user, Params::String
|
10
10
|
param :excludeuser, Params::String
|
11
|
-
param :dir, Params::Enum[
|
11
|
+
param :dir, Params::Enum[:newer, :older]
|
12
12
|
param :limit, Params::IntegerOrMax
|
13
|
-
param :prop, Params::List[Params::Enum[
|
14
|
-
param :show, Params::List[Params::Enum[
|
15
|
-
param :type, Params::List[Params::Enum[
|
13
|
+
param :prop, Params::List[Params::Enum[:ids, :title, :flags, :user, :userid, :comment, :parsedcomment, :timestamp, :patrol, :sizes, :notificationtimestamp, :loginfo]]
|
14
|
+
param :show, Params::List[Params::Enum[:minor, :"!minor", :bot, :"!bot", :anon, :"!anon", :patrolled, :"!patrolled", :unread, :"!unread"]]
|
15
|
+
param :type, Params::List[Params::Enum[:edit, :external, :new, :log]]
|
16
16
|
param :owner, Params::String
|
17
17
|
param :token, Params::String
|
18
18
|
param :continue, Params::String
|
@@ -3,13 +3,13 @@ module MediaWiktory
|
|
3
3
|
symbol :watchlistraw
|
4
4
|
prefix "wr"
|
5
5
|
param :continue, Params::String
|
6
|
-
param :namespace, Params::List[Params::Enum["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "100", "101", "108", "109", "118", "119", "2300", "2301", "2302", "2303", "710", "711", "446", "447", "2600", "828", "829"]]
|
6
|
+
param :namespace, Params::List[Params::Enum[:"0", :"1", :"2", :"3", :"4", :"5", :"6", :"7", :"8", :"9", :"10", :"11", :"12", :"13", :"14", :"15", :"100", :"101", :"108", :"109", :"118", :"119", :"2300", :"2301", :"2302", :"2303", :"710", :"711", :"446", :"447", :"2600", :"828", :"829"]]
|
7
7
|
param :limit, Params::IntegerOrMax
|
8
|
-
param :prop, Params::List[Params::Enum[
|
9
|
-
param :show, Params::List[Params::Enum[
|
8
|
+
param :prop, Params::List[Params::Enum[:changed]]
|
9
|
+
param :show, Params::List[Params::Enum[:changed, :"!changed"]]
|
10
10
|
param :owner, Params::String
|
11
11
|
param :token, Params::String
|
12
|
-
param :dir, Params::Enum[
|
12
|
+
param :dir, Params::Enum[:newer, :older]
|
13
13
|
param :fromtitle, Params::String
|
14
14
|
param :totitle, Params::String
|
15
15
|
end
|
@@ -3,7 +3,7 @@ module MediaWiktory
|
|
3
3
|
symbol :wikisets
|
4
4
|
prefix "ws"
|
5
5
|
param :from, Params::String
|
6
|
-
param :prop, Params::List[Params::Enum[
|
6
|
+
param :prop, Params::List[Params::Enum[:type, :wikisincluded, :wikisnotincluded]]
|
7
7
|
param :limit, Params::IntegerOrMax
|
8
8
|
param :orderbyname, Params::Boolean
|
9
9
|
end
|
@@ -100,12 +100,16 @@ module MediaWiktory
|
|
100
100
|
attr_accessor :member_type
|
101
101
|
|
102
102
|
def inspect
|
103
|
-
"#<List#{member_type}>"
|
103
|
+
"#<List[#{member_type}]>"
|
104
104
|
end
|
105
105
|
|
106
106
|
alias_method :to_s, :inspect
|
107
107
|
end
|
108
108
|
|
109
|
+
def value=(val)
|
110
|
+
super([*val])
|
111
|
+
end
|
112
|
+
|
109
113
|
def self.valid?(val)
|
110
114
|
member_type or fail(NotImplementedError, "Abstract list used as param type")
|
111
115
|
val.is_a?(Array) && val.all?{|v| member_type.valid?(v)}
|
@@ -188,7 +192,7 @@ module MediaWiktory
|
|
188
192
|
|
189
193
|
def coerce_modules(value)
|
190
194
|
# making array of 1-item hashes
|
191
|
-
value.map{|val|
|
195
|
+
[*value].map{|val|
|
192
196
|
case val
|
193
197
|
when Symbol
|
194
198
|
{val => {}}
|
@@ -0,0 +1,46 @@
|
|
1
|
+
module MediaWiktory
|
2
|
+
class Page
|
3
|
+
attr_reader :id, :title, :raw
|
4
|
+
|
5
|
+
def initialize(raw)
|
6
|
+
@raw = raw
|
7
|
+
@title = raw.title
|
8
|
+
@id = raw.pageid
|
9
|
+
end
|
10
|
+
|
11
|
+
def content
|
12
|
+
revisions.first['*']
|
13
|
+
end
|
14
|
+
|
15
|
+
def missing?
|
16
|
+
!!raw.missing
|
17
|
+
end
|
18
|
+
|
19
|
+
def invalid?
|
20
|
+
!!raw.invalid
|
21
|
+
end
|
22
|
+
|
23
|
+
def exists?
|
24
|
+
!missing? && !invalid?
|
25
|
+
end
|
26
|
+
|
27
|
+
def merge!(other)
|
28
|
+
id == other.id or
|
29
|
+
fail(ArgumentError, "Trying to merge different pageids: #{id}/#{other.id}")
|
30
|
+
|
31
|
+
other.raw.each do |key, value|
|
32
|
+
raw.key?(key) or fail(ArgumentError, "Unknown key in continued page: #{key}")
|
33
|
+
next unless raw[key].is_a?(Array)
|
34
|
+
raw[key].concat(value)
|
35
|
+
end
|
36
|
+
end
|
37
|
+
|
38
|
+
def method_missing(sym, *args)
|
39
|
+
super unless args.empty?
|
40
|
+
exists? or
|
41
|
+
fail("Page #{title} is missing, can't access #{sym}")
|
42
|
+
|
43
|
+
raw.fetch(sym)
|
44
|
+
end
|
45
|
+
end
|
46
|
+
end
|
data/lib/mediawiktory/query.rb
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
require_relative '
|
1
|
+
require_relative 'page'
|
2
2
|
|
3
3
|
module MediaWiktory
|
4
4
|
class Query
|
@@ -7,18 +7,27 @@ module MediaWiktory
|
|
7
7
|
end
|
8
8
|
|
9
9
|
class Response < Action::Response
|
10
|
-
|
11
|
-
|
10
|
+
attr_reader :pages, :continue_params
|
11
|
+
|
12
|
+
def initialize(*)
|
13
|
+
super
|
14
|
+
@pages = ((raw.query.pages if raw.query) || {}).values.map(&Page.method(:new))
|
15
|
+
@continue_params = raw.continue && raw.continue.dup
|
16
|
+
end
|
17
|
+
|
18
|
+
def initialize_copy(other)
|
19
|
+
super(other)
|
20
|
+
@pages = other.pages.dup
|
12
21
|
end
|
13
22
|
|
14
23
|
def continue?
|
15
|
-
|
24
|
+
!@continue_params.nil?
|
16
25
|
end
|
17
26
|
|
18
27
|
def continue!
|
19
28
|
continue? or fail(RuntimeError, "Response can not be continued")
|
20
29
|
|
21
|
-
merge!(action.perform(
|
30
|
+
merge!(action.perform(@continue_params))
|
22
31
|
|
23
32
|
self
|
24
33
|
end
|
@@ -32,28 +41,17 @@ module MediaWiktory
|
|
32
41
|
def merge!(other)
|
33
42
|
# FIXME: not the brightest code in my life, faithfully
|
34
43
|
# FIXME2: after this merge, only @pages are updated, but @raw.query.pages IS NOT
|
35
|
-
other.pages.
|
36
|
-
|
37
|
-
|
44
|
+
other.pages.each do |other_page|
|
45
|
+
existing = pages.detect{|p| p.id == other_page.id}
|
46
|
+
|
47
|
+
if existing
|
48
|
+
existing.merge!(other_page)
|
38
49
|
else
|
39
|
-
pages.push(
|
50
|
+
pages.push(other_page)
|
40
51
|
end
|
41
52
|
end
|
42
53
|
|
43
|
-
|
44
|
-
end
|
45
|
-
|
46
|
-
def merge_page(existing, other)
|
47
|
-
other.each do |k, v|
|
48
|
-
case existing[k]
|
49
|
-
when Array
|
50
|
-
existing[k].concat(v)
|
51
|
-
when Hash
|
52
|
-
existing[k].merge!(v)
|
53
|
-
else
|
54
|
-
existing[k] = v
|
55
|
-
end
|
56
|
-
end
|
54
|
+
@continue_params = other.continue_params
|
57
55
|
end
|
58
56
|
end
|
59
57
|
end
|
data/lib/mediawiktory/version.rb
CHANGED
data/script/lib/parameter.rb
CHANGED
@@ -106,7 +106,7 @@ module ApiParser
|
|
106
106
|
vals.map(&:module).each{|m| m.write(base_path)}
|
107
107
|
"Params::Modules#{vals.map(&:name).map(&:to_sym)}"
|
108
108
|
else
|
109
|
-
"Params::List[Params::Enum#{vals.map(&:name).map(&:
|
109
|
+
"Params::List[Params::Enum#{vals.map(&:name).map(&:to_sym)}]"
|
110
110
|
end
|
111
111
|
when 'list of integers'
|
112
112
|
'Params::List[Params::Integer]'
|
@@ -114,14 +114,11 @@ module ApiParser
|
|
114
114
|
'Params::List[Params::Timestamp]'
|
115
115
|
when 'enum'
|
116
116
|
case
|
117
|
-
#when name == 'generator'
|
118
|
-
#vals.map(&:module).each{|m| m.write(base_path)}
|
119
|
-
#"Params::Module#{vals.map(&:name).map{|n| ('g' + n).to_sym}}"
|
120
117
|
when vals.first.module
|
121
118
|
vals.map(&:module).each{|m| m.write(base_path)}
|
122
119
|
"Params::Module#{vals.map(&:name).map(&:to_sym)}"
|
123
120
|
else
|
124
|
-
"Params::Enum#{vals.map(&:name).map(&:
|
121
|
+
"Params::Enum#{vals.map(&:name).map(&:to_sym)}"
|
125
122
|
end
|
126
123
|
else
|
127
124
|
fail("Unrecognized param type: #{type}")
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mediawiktory
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Victor Shepelev
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -72,7 +72,9 @@ executables: []
|
|
72
72
|
extensions: []
|
73
73
|
extra_rdoc_files: []
|
74
74
|
files:
|
75
|
-
-
|
75
|
+
- CHANGELOG.md
|
76
|
+
- CONTRIBUTING.md
|
77
|
+
- LICENSE.txt
|
76
78
|
- README.md
|
77
79
|
- bin/mediawiktory
|
78
80
|
- doc/mediawiki_api_types.md
|
@@ -82,7 +84,6 @@ files:
|
|
82
84
|
- lib/media_wiktory.rb
|
83
85
|
- lib/mediawiktory.rb
|
84
86
|
- lib/mediawiktory/action.rb
|
85
|
-
- lib/mediawiktory/array_with_keys.rb
|
86
87
|
- lib/mediawiktory/client.rb
|
87
88
|
- lib/mediawiktory/generated/abusefiltercheckmatch.rb
|
88
89
|
- lib/mediawiktory/generated/abusefilterchecksyntax.rb
|
@@ -303,6 +304,7 @@ files:
|
|
303
304
|
- lib/mediawiktory/generated/wikisets.rb
|
304
305
|
- lib/mediawiktory/generated/zeroconfig.rb
|
305
306
|
- lib/mediawiktory/mw_module.rb
|
307
|
+
- lib/mediawiktory/page.rb
|
306
308
|
- lib/mediawiktory/query.rb
|
307
309
|
- lib/mediawiktory/version.rb
|
308
310
|
- lib/nokogiri/more.rb
|
data/Gemfile.lock
DELETED
@@ -1,63 +0,0 @@
|
|
1
|
-
PATH
|
2
|
-
remote: .
|
3
|
-
specs:
|
4
|
-
mediawiktory (0.0.1)
|
5
|
-
addressable
|
6
|
-
faraday
|
7
|
-
faraday_middleware
|
8
|
-
hashie
|
9
|
-
|
10
|
-
GEM
|
11
|
-
remote: https://rubygems.org/
|
12
|
-
specs:
|
13
|
-
addressable (2.3.8)
|
14
|
-
crack (0.4.2)
|
15
|
-
safe_yaml (~> 1.0.0)
|
16
|
-
diff-lcs (1.2.5)
|
17
|
-
faker (1.5.0)
|
18
|
-
i18n (~> 0.5)
|
19
|
-
faraday (0.9.1)
|
20
|
-
multipart-post (>= 1.2, < 3)
|
21
|
-
faraday_middleware (0.10.0)
|
22
|
-
faraday (>= 0.7.4, < 0.10)
|
23
|
-
hashie (3.4.2)
|
24
|
-
i18n (0.7.0)
|
25
|
-
mini_portile (0.6.2)
|
26
|
-
multipart-post (2.0.0)
|
27
|
-
naught (1.1.0)
|
28
|
-
nokogiri (1.6.6.2)
|
29
|
-
mini_portile (~> 0.6.0)
|
30
|
-
rspec (3.3.0)
|
31
|
-
rspec-core (~> 3.3.0)
|
32
|
-
rspec-expectations (~> 3.3.0)
|
33
|
-
rspec-mocks (~> 3.3.0)
|
34
|
-
rspec-core (3.3.2)
|
35
|
-
rspec-support (~> 3.3.0)
|
36
|
-
rspec-expectations (3.3.1)
|
37
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
38
|
-
rspec-support (~> 3.3.0)
|
39
|
-
rspec-its (1.2.0)
|
40
|
-
rspec-core (>= 3.0.0)
|
41
|
-
rspec-expectations (>= 3.0.0)
|
42
|
-
rspec-mocks (3.3.2)
|
43
|
-
diff-lcs (>= 1.2.0, < 2.0)
|
44
|
-
rspec-support (~> 3.3.0)
|
45
|
-
rspec-support (3.3.0)
|
46
|
-
rubygems-tasks (0.2.4)
|
47
|
-
safe_yaml (1.0.4)
|
48
|
-
webmock (1.21.0)
|
49
|
-
addressable (>= 2.3.6)
|
50
|
-
crack (>= 0.3.2)
|
51
|
-
|
52
|
-
PLATFORMS
|
53
|
-
ruby
|
54
|
-
|
55
|
-
DEPENDENCIES
|
56
|
-
faker
|
57
|
-
mediawiktory!
|
58
|
-
naught
|
59
|
-
nokogiri
|
60
|
-
rspec
|
61
|
-
rspec-its
|
62
|
-
rubygems-tasks
|
63
|
-
webmock
|