def raw(*titles, &processor)
      # could emerge on "automatically" created page lists, should work
      return {} if titles.empty?

      titles.each_slice(50).map do |part|
        request = prepare_request(@api.query.titles(*part), &processor)
        response = request.response

        # If additional props are required, there may be additional pages, even despite each_slice(50)
        response = response.continue while response.continue?

        sources = response['pages'].values.map { |page| [page['title'], page] }.to_h
        redirects =
          if response['redirects']
            response['redirects'].map { |r| [r['from'], sources[r['to']]] }.to_h
          else
            {}
          end

        # This way for 'Einstein' query we'll have {'Albert Einstein' => page, 'Einstein' => same page}
        sources.merge(redirects)
      end.inject(:merge)
    end
def raw(*titles, &processor)
      # could emerge on "automatically" created page lists, should work
      return {} if titles.empty?

      titles.each_slice(50).map do |part|
        request = prepare_request(@api.query.titles(*part), &processor)
        response = request.response

        # If additional props are required, there may be additional pages, even despite each_slice(50)
        response = response.continue while response.continue?

        sources = response['pages'].values.map { |page| [page['title'], page] }.to_h
        redirects =
          if response['redirects']
            response['redirects'].map { |r| [r['from'], sources[r['to']]] }.to_h
          else
            {}
          end

        # This way for 'Einstein' query we'll have {'Albert Einstein' => page, 'Einstein' => same page}
        sources.merge(redirects)
      end.inject(:merge)
    end
Creating new MediaWiki client. {Infoboxer.wiki} provides shortcut
 for it, as well as shortcuts for some well-known wikis, like
 {Infoboxer.wikipedia}.

 @param api_base_url [String] URL of `api.php` file in your MediaWiki
   installation. Typically, its `<domain>/w/api.php`, but can vary
   in different wikis.
 @param user_agent [String] (also aliased as `:ua`) Custom User-Agent header.
 Receive "raw" data from Wikipedia (without parsing or wrapping in
 classes).

 @param titles [Array<String>] List of page titles to get.
 @param processor [Proc] Optional block to preprocess MediaWiktory query. Refer to
   [MediaWiktory::Actions::Query](http://www.rubydoc.info/gems/mediawiktory/MediaWiktory/Wikipedia/Actions/Query)
   for its API. Infoboxer assumes that the block returns new instance of `Query`, so be careful
   while using it.

 @return [Hash{String => Hash}] Hash of `{requested title => raw MediaWiki object}`. Note that
   even missing (does not exist in current Wiki) or invalid (impossible title) still be present
   in response, just will have `"missing"` or `"invalid"` key, just like MediaWiki returns them.