Security News
Fluent Assertions Faces Backlash After Abandoning Open Source Licensing
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Allows you to get wikipedia content through their API. This uses the alpha API, not the deprecated query.php API type.
Wikipedia API reference: http://en.wikipedia.org/w/api.php
Adopted from: http://code.google.com/p/wikipedia-client/
gem install wikipedia-client
require 'wikipedia'
page = Wikipedia.find( 'Getting Things Done' )
#=> #<Wikipedia:Page>
page.title
#=> 'Getting Things Done'
page.fullurl
#=> 'http://en.wikipedia.org/wiki/Getting_Things_Done'
page.text
#=> 'Getting Things Done is a time-management method...'
page.content
#=> all the wiki markup appears here...
page.summary
#=> only the wiki summary appears here...
page.categories
#=> [..., "Category:Self-help books", ...]
page.links
#=> [..., "Business", "Cult following", ...]
page.extlinks
# => [..., "http://www.example.com/", ...]
page.images
#=> ["File:Getting Things Done.jpg", ...]
page.image_urls
#=> ["http://upload.wikimedia.org/wikipedia/en/e/e1/Getting_Things_Done.jpg"]
page.image_thumburls
#=> ["https://upload.wikimedia.org/wikipedia/en/thumb/e/e1/Getting_Things_Done.jpg/200px-Getting_Things_Done.jpg"]
# or with custom width argument:
page.image_thumburls(100)
#=> ["https://upload.wikimedia.org/wikipedia/en/thumb/e/e1/Getting_Things_Done.jpg/100px-Getting_Things_Done.jpg"]
page.image_descriptionurls
#=> ["http://en.wikipedia.org/wiki/File:Getting_Things_Done.jpg"]
page.main_image_url
#=> "https://upload.wikimedia.org/wikipedia/en/e/e1/Getting_Things_Done.jpg"
page.coordinates
#=> [48.853, 2.3498, "", "earth"]
page.templates
#=> [..., "Template:About", ...]
page.langlinks
#=> {..., "de"=>"Getting Things Done", "eo"=>"Igi aferojn finitaj", "zh"=>"尽管去做", ...}
This is by default configured like this:
Wikipedia.configure {
domain 'en.wikipedia.org'
path 'w/api.php'
}
If you need to query multiple wikis indiviual clients with individual configurations can be used:
config_en = Wikipedia::Configuration.new(domain: 'en.wikipedia.org')
config_de = Wikipedia::Configuration.new(domain: 'de.wikipedia.org')
client_en = Wikipedia::Client.new(config_en)
client_de = Wikipedia::Client.new(config_de)
client_en.find( 'Getting Things Done' )
client_de.find( 'Buch' )
See the API spec at http://en.wikipedia.org/w/api.php.
If you need data that is not already present, you can override parameters.
For example, to retrieve only the page info:
page = Wikipedia.find( 'Getting Things Done', :prop => "info" )
page.title
#=> "Getting Things Done"
page.raw_data
#=> {"query"=>{"pages"=>{"959928"=>{"pageid"=>959928, "ns"=>0,
"title"=>"Getting Things Done", "touched"=>"2010-03-10T00:04:09Z",
"lastrevid"=>348481810, "counter"=>0, "length"=>7891}}}}
Some API features require tweaking HTTP headers. You can add additional headers via configuration.
For example, to retrieve the same page in different language variants:
Wikipedia.configure do
domain 'zh.wikipedia.org'
headers({ 'Accept-Language' => 'zh-tw' })
end
Wikipedia.find('牛肉').summary #=> "牛肉是指從牛身上得出的肉,為常見的肉品之一。肌肉部分可以切成牛排、牛肉塊或牛仔骨,也可以與其他的肉混合做成香腸或血腸。"
Wikipedia.configure do
domain 'zh.wikipedia.org'
headers({ 'Accept-Language' => 'zh-cn' })
end
Wikipedia.find('牛肉').summary #=> "牛肉是指从牛身上得出的肉,为常见的肉品之一。肌肉部分可以切成牛排、牛肉块或牛仔骨,也可以与其他的肉混合做成香肠或血肠。"
git clone git@github.com:kenpratt/wikipedia-client.git
cd wikipedia-client
bundle install
bundle exec rspec
Edit lib/wikipedia/version.rb
, changing VERSION
.
Test that the current branch will work as a gem, by testing in an external directory:
Make a test directory.
Add a Gemfile
with:
source 'https://rubygems.org'
gem 'wikipedia-client', :path => '/path/to/local/wikipedia-client'
And a test.rb
file with:
require 'wikipedia'
page = Wikipedia.find('Ruby')
puts page.title
And then run bundle install && bundle exec ruby test.rb
Build the gem: bundle exec gem build wikipedia-client.gemspec
.
Commit the changes: git commit -a -m 'Version bump to 1.4.0' && git tag v1.4.0 && git push && git push --tag
Publish the result to RubyGems: bundle exec gem push wikipedia-client-1.4.0.gem
.
Test the released gem in an external directory:
Make a test directory.
Add a Gemfile
with:
source 'https://rubygems.org'
gem 'wikipedia-client'
And a test.rb
file with:
require 'wikipedia'
page = Wikipedia.find('Ruby')
puts page.title
And then run bundle install && bundle exec ruby test.rb
Copyright (c) 2008 Cyril David, released under the MIT license
Adopted by Ken Pratt (ken@kenpratt.net) in 2010/03
Thanks to all the Contributors.
FAQs
Unknown package
We found that wikipedia-client demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 6 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Fluent Assertions is facing backlash after dropping the Apache license for a commercial model, leaving users blindsided and questioning contributor rights.
Research
Security News
Socket researchers uncover the risks of a malicious Python package targeting Discord developers.
Security News
The UK is proposing a bold ban on ransomware payments by public entities to disrupt cybercrime, protect critical services, and lead global cybersecurity efforts.