wikipedia_rest_client is a ruby gem to ease your usage of the Wikipedia REST API. You can find the Wikipedia REST API here. By using this gem we can get the following,
- Wikipedia page details for a given topic.
- Featured article.
- Picture of the day.
- News.
- Most-read articles of the day.
- On This Day.
Add this line to your application's Gemfile:
gem 'wikipedia_rest_client'
And then execute:
$ bundle
Or install it yourself as:
$ gem install wikipedia_rest_client
Set a unique User-Agent or Api-User-Agent header that allows us to contact you quickly.
Note: Setting User-Agent is optional but it is a good practice to handle more HTTPS requests for the API.
WikipediaRestClient.setUserAgent(< Email addresses or URLs of contact pages >)
Example
WikipediaRestClient.setUserAgent("someone@gmail.com")
By using this method, We can set the language in the REST API (Default lanuage is English).
WikipediaRestClient.set_language(<LANGUAGE_CODE>)
Example
WikipediaRestClient.set_language("de") # To set the language as German.
WikipediaRestClient.set_language("fr") # To set the language as French.
It will return details of the Wikipedia page for the query string.
Example
page = WikipediaRestClient.get_page("Indian President")
#Returns an object that contains contents of the required page
page.title
#=> "President of India"
page.text
#=> "The President of the Republic of India is the head of state of India and the commander-in-chief of the Indian Armed Forces."
page.image_url
#=> "https://upload.wikimedia.org/wikipedia/commons/8/80/Ram_Nath_Kovind_2017.jpg"
page.url
#=> "https://en.wikipedia.org/wiki/President_of_India"
page.pageid
#=> 141896
page.description
#=> "executive head of state of the Republic of India"
The Page class contains the following information,
- type
- title
- display_title
- namespace_id
- namespace_text
- titles_canonical
- titles_normalized
- titles_display
- pageid
- thumbnail_source
- thumbnail_width
- thumbnail_height
- lang
- dir
- revision
- tid
- timestamp
- description
- image_url
- image_width
- image_height
- url_desktop_page
- url_desktop_revisions
- url_desktop_edit
- url_desktop_talk
- url_mobile_page
- url_mobile_revisions
- url_mobile_edit
- url_mobile_talk
- api_urls_summary
- api_urls_metadata
- api_urls_references
- api_urls_media
- api_urls_edit_html
- api_urls_talk_page_html
- text
- text_html
- normalized_title
- url
Example
page = WikipediaRestClient.get_random
#=> Return a random page from wikipedia
page.title
#=> "Adams Glacier (Victoria Land)"
page.text
#=> "Adams Glacier is a small glacier immediately south of Miers Glacier in Victoria Land. The heads of Adams and Miers glaciers, both located in the Miers Valley, are separated by a low ridge, and the east end of this ridge is almost completely surrounded by the snouts of the two glaciers, which nearly meet in the bottom of the valley, about 1 mile (1.6 km) above Lake Miers, into which they drain. It was named by the New Zealand Northern Survey Party of the Commonwealth Trans-Antarctic Expedition (1956–58) after Lieutenant Jameson Adams, second in command of the shore party of the British Antarctic Expedition (1907–09), who was one of the men to accompany Ernest Shackleton to within 97 miles (156 km) of the South Pole."
page.url
#=> "https://en.wikipedia.org/wiki/Adams_Glacier_(Victoria_Land)"
page.pageid
#=> 16524953
page.image_url
#=> "https://upload.wikimedia.org/wikipedia/commons/2/24/Antarctica_relief_location_map.jpg"
Returns the Page object of the featured article
article_of_the_day = WikipediaRestClient.get_featured_article
#=> Returns today's featured article
article = WikipediaRestClient.get_featured_article(<DATE>) #Date Should be in YYYY/MM/DD Format
#=> Returns featured article for the specified date
Example
old_article = WikipediaRestClient.get_featured_article("2018/05/10")
#=> Returns featured article dated (2018/05/10)
article.title
#=> "Russian_battleship_Pobeda"
article.image_url
#=> "https://upload.wikimedia.org/wikipedia/commons/0/01/Pobeda1904Port-Artur.jpg"
article.text
#=> "Pobeda was the last of the three Peresvet-class pre-dreadnought battleships built for the Imperial Russian Navy at the end of the nineteenth century. The ship was assigned to the Pacific Squadron upon completion and based at Port Arthur from 1903. During the Russo-Japanese War of 1904–1905, she participated in the battles of Port Arthur and the Yellow Sea. Having escaped serious damage in these engagements, Pobeda was sunk by gunfire during the Siege of Port Arthur, and then salvaged by the Japanese and placed into service under the name Suwo (周防)."
today_article = WikipediaRestClient.get_featured_article
#=> Returns featured article of the current day
today_article.title
#=> "Arlington,_Washington"
today_article.url
#=> "https://en.wikipedia.org/wiki/Arlington,_Washington"
today_article.pageid
#=> 138192
Example
picture_of_the_day = WikipediaRestClient.get_image_of_the_day
#=> Returns image of the day from Wikipedia.
picture_of_the_day.title
#=> "File:Haus der Kulturen der Welt, Blaue Stunde, Berlin, 160521, ako.jpg"
picture_of_the_day.image_url
#=> "https://upload.wikimedia.org/wikipedia/commons/2/25/Haus_der_Kulturen_der_Welt%2C_Blaue_Stunde%2C_Berlin%2C_160521%2C_ako.jpg"
picture_of_the_day.image_height
#=> 3648
picture_of_the_day.thumbnail
#=> "https://upload.wikimedia.org/wikipedia/commons/thumb/2/25/Haus_der_Kulturen_der_Welt%2C_Blaue_Stunde%2C_Berlin%2C_160521%2C_ako.jpg/640px-Haus_der_Kulturen_der_Welt%2C_Blaue_Stunde%2C_Berlin%2C_160521%2C_ako.jpg"
picture_of_the_day_for_a_date = WikipediaRestClient.get_image_of_the_day("2017/03/12")
#=> Returns pictured of the day for the specified date ("YYYY/MM/DD")
picture_of_the_day_for_a_date.image_url
#=> "https://upload.wikimedia.org/wikipedia/commons/4/4b/Cyclosia_papilionaris-Kadavoor-2016-06-17-001.jpg"
picture_of_the_day_for_a_date.description_text
#=> "Cyclosia papilionaris, Drury's Jewel, is a moth in the Zygaenidae family. There are many subspecies and this is Cyclosia papilionaris australinda found in South India."
It will have the following information,
- title
- image_url
- image_width
- image_height
- thumbnail
- thumbnail_width
- thumbnail_height
- description_text
on_this_day_content = WikipediaRestClient.get_on_this_day
#=> Returns 'on this day' contents of the current date
on_that_day = WikipediaRestClient.get_on_this_day(<DATE>) #Date Should be in YYYY/MM/DD Format
#=> Returns 'on this day' contents of the specified date
Example
on_this_day_content = WikipediaRestClient.get_on_this_day
#=> Returns Array of Hash values which contains 'on this day' contents
on_this_day_content[0]["text"]
#=> "A corroded oil pipeline in Santa Barbara County, California, burst, spilling 142,800 U.S. gallons (3,400 barrels) of crude oil onto one of the most biologically diverse coastlines of the U.S. West Coast."
on_this_day_content[0]["year"]
#=> 2013
on_this_day_content[0]["pages"]
#=> Returns Array of Wikipedia pages related to that topic
on_that_day = WikipediaRestClient.get_on_this_day("2018/03/11")
#=> Returns 'on this day' contents for the specified date
on_that_day[0]["text"]
#=> "United States Army officer Robert Bales murdered sixteen civilians and wounded six others in the Panjwayi District of Kandahar Province, Afghanistan."
news = WikipediaRestClient.get_news
#=> Returns 'news' contents of the current date
news_on_specified_date = WikipediaRestClient.get_news(<DATE>) #Date Should be in YYYY/MM/DD Format
#=> Returns 'news' contents of the specified date
Example
news = WikipediaRestClient.get_news
#=> Returns Array of Hash values which contains news contents
news[0]["story"]
#=> "Incumbent Nicolás Maduro is re-elected President of Venezuela."
news[0]["links"]
#=> Returns Array of link pages related to that news
most_read_content = WikipediaRestClient.get_most_read
#=> Returns 'most read' contents of the current date
most_read_on_specified_day = WikipediaRestClient.get_most_read(<DATE>) #Date Should be in YYYY/MM/DD Format
#=> Returns 'most read' contents of the specified date
Example
most_read = WikipediaRestClient.get_most_read
#=> Returns Hash value
most_read["articles"][0]["views"]
#=> 709029
most_read["articles"][0]["title"]
#=> "Elizabeth_II"
most_read["articles"][0]["extract"]
#=> "Elizabeth II is Queen of the United Kingdom and fifteen other Commonwealth realms."
most_read["articles"][0]["content_urls"]["desktop"]["page"]
#=> "https://en.wikipedia.org/wiki/Elizabeth_II"
After checking out the repo, run bin/setup
to install dependencies. Then, run rake spec
to run the tests. You can also run bin/console
for an interactive prompt that will allow you to experiment.
To install this gem onto your local machine, run bundle exec rake install
. To release a new version, update the version number in version.rb
, and then run bundle exec rake release
, which will create a git tag for the version, push git commits and tags, and push the .gem
file to rubygems.org.
Bug reports and pull requests are welcome on GitHub at https://github.com/Balaji-Ramasubramanian/wikipedia_rest_client. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.
The gem is available as open source under the terms of the MIT License.
Everyone interacting in the WikipediaRestClient project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.