class CategoryFilter

Gets the categories for articles and filters based on that data

Public Class Methods

categories_for(article) click to toggle source
# File lib/wikipedia_twitterbot/category_filter.rb, line 20
def self.categories_for(article)
  article_id = article.id
  response = Wiki.query category_query(article_id)
  categories = response.data['pages'][article_id.to_s]['categories']
  return unless categories
  categories = categories.map { |cat| cat['title'] }
  categories
end
category_query(page_id) click to toggle source

Other stuff #

# File lib/wikipedia_twitterbot/category_filter.rb, line 14
def self.category_query(page_id)
  { prop: 'categories',
    cllimit: 500,
    pageids: page_id }
end
disambiguation_page?(article) click to toggle source
# File lib/wikipedia_twitterbot/category_filter.rb, line 29
def self.disambiguation_page?(article)
  categories = categories_for(article)
  return false unless categories
  categories_for(article).include?('Category:Disambiguation pages')
end
discard_disambiguation_pages(articles) click to toggle source

Entry points #

# File lib/wikipedia_twitterbot/category_filter.rb, line 6
def self.discard_disambiguation_pages(articles)
  articles.reject! { |article| disambiguation_page?(article) }
  articles
end