class Ores
Imports revision scoring data from ores.wmflabs.org¶ ↑
Constants
- TYPICAL_ERRORS
Public Class Methods
new()
click to toggle source
# File lib/wikipedia_twitterbot/ores.rb, line 22 def initialize @project_code = 'enwiki' end
select_by_image_count(articles, image_count: 1)
click to toggle source
Entry points #
# File lib/wikipedia_twitterbot/ores.rb, line 6 def self.select_by_image_count(articles, image_count: 1) @ores = new articles.each do |article| article.ores_data = @ores.get_revision_data(article.latest_revision) puts article.ores_data.dig('scores', 'enwiki', 'wp10', 'features', article.latest_revision.to_s, 'feature.enwiki.revision.image_links') end selected_articles = articles.select do |article| article.ores_data.dig('scores', 'enwiki', 'wp10', 'features', article.latest_revision.to_s, 'feature.enwiki.revision.image_links') == image_count end selected_articles end
Public Instance Methods
get_revision_data(rev_id)
click to toggle source
# File lib/wikipedia_twitterbot/ores.rb, line 26 def get_revision_data(rev_id) # TODO: i18n response = ores_server.get query_url(rev_id) ores_data = JSON.parse(response.body) ores_data rescue StandardError => error raise error unless TYPICAL_ERRORS.include?(error.class) return {} end
Private Instance Methods
ores_server()
click to toggle source
# File lib/wikipedia_twitterbot/ores.rb, line 58 def ores_server conn = Faraday.new(url: 'https://ores.wikimedia.org') conn.headers['User-Agent'] = '@WikiPhotoFight by ragesoss' conn end
query_url(rev_id)
click to toggle source
# File lib/wikipedia_twitterbot/ores.rb, line 51 def query_url(rev_id) base_url = "/v2/scores/#{@project_code}/wp10/" url = base_url + rev_id.to_s + '/?features' url = URI.encode url url end