sunflower 0.5.6 → 0.5.7

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.
data/README CHANGED
@@ -1,4 +1,4 @@
1
- Version: 0.5.6 alpha
1
+ Version: 0.5.7 alpha
2
2
 
3
3
  >>> English:
4
4
 
@@ -110,4 +110,14 @@ class Sunflower::Page
110
110
  "[[#{self.sunflower.ns_local_for 'Category'}:#{to}#{rest}"
111
111
  }
112
112
  end
113
+
114
+ # Remove the category from page wikitext.
115
+ #
116
+ # Input can be either with the Category: prefix (or localised version) or without.
117
+ def remove_category cat
118
+ cat_regex = self.sunflower.ns_regex_for 'Category'
119
+ cat = self.sunflower.cleanup_title(cat).sub(/^#{cat_regex}:/, '')
120
+
121
+ self.text.gsub!(/\[\[ *#{cat_regex} *: *#{Regexp.escape cat} *(\|[^\]]*)?\]\](\r?\n)?/, '')
122
+ end
113
123
  end
@@ -40,7 +40,7 @@ end
40
40
  #
41
41
  # You can use multiple Sunflowers at once, to work on multiple wikis.
42
42
  class Sunflower
43
- VERSION = '0.5.6'
43
+ VERSION = '0.5.7'
44
44
 
45
45
  INVALID_CHARS = %w(# < > [ ] | { })
46
46
  INVALID_CHARS_REGEX = Regexp.union *INVALID_CHARS
@@ -154,8 +154,18 @@ class Sunflower
154
154
  end
155
155
  end
156
156
 
157
- @wikiURL = (url.include?('.') ? url : Sunflower.resolve_wikimedia_id(url))
158
- @api_endpoint = opts[:api_endpoint] || 'http://'+@wikiURL+'/w/api.php'
157
+ # find out the base URL for this wiki and its API endpoint
158
+ # we joyfully assume that all URLs contain at least a single dot, which is incorrect, but oh well
159
+ if url.include?('.')
160
+ # a regular external wiki; use the RSD discovery mechanism to find out the endpoint
161
+ @wikiURL = url
162
+ # let's not pull in a HTML parsing library, this regex will do
163
+ @api_endpoint = opts[:api_endpoint] || RestClient.get(@wikiURL).to_str[/<link rel="EditURI" type="application\/rsd\+xml" href="([^"]+)\?action=rsd"/, 1]
164
+ else
165
+ # probably a Wikimedia wiki shorthand
166
+ @wikiURL = Sunflower.resolve_wikimedia_id(url)
167
+ @api_endpoint = opts[:api_endpoint] || 'http://'+@wikiURL+'/w/api.php'
168
+ end
159
169
 
160
170
  @warnings = true
161
171
  @log = false
@@ -317,7 +327,7 @@ class Sunflower
317
327
 
318
328
  # 4. check bot rights
319
329
  r=self.API('action=query&list=allusers&aulimit=1&augroup=bot&aufrom='+(CGI.escape user))
320
- unless r['query']['allusers'][0]['name']==user
330
+ unless r['query']['allusers'][0] && r['query']['allusers'][0]['name']==user
321
331
  warn 'Sunflower - this user does not have bot rights!' if @warnings
322
332
  @is_bot=false
323
333
  else
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: sunflower
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.6
4
+ version: 0.5.7
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-23 00:00:00.000000000 Z
12
+ date: 2013-01-16 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: json