AppleSystemStatus

Apple System Status scraping library

Requirements

  • Ruby 3.0+

  • Headless Chrome

Installation

Add this line to your application’s Gemfile:

gem 'apple_system_status'

And then execute:

$ bundle

Or install it yourself as:

$ gem install apple_system_status

Usage (via. ruby)

# English
pp AppleSystemStatus::Crawler.perform

{:title=>"System Status as of 12:51 AM JST",
 :services=>
  [{:title=>"App Store",
    :description=>"No Issues: App Store",
    :status=>"allgood"},
   {:title=>"iCloud Account & Sign In",
    :description=>"No Issues: iCloud Account & Sign In",
    :status=>"allgood"},
   # ...
]}

# Japanese
pp AppleSystemStatus::Crawler.perform(country: "jp")

{:title=>"00:53 JST 時点のシステム状況",
 :services=>
  [{:title=>"App Store", :description=>"問題なし: App Store", :status=>"allgood"},
   {:title=>"iCloud ストレージアップグレード",
    :description=>"問題なし: iCloud ストレージアップグレード",
    :status=>"allgood"},
   {:title=>"iTunes Store",
    :description=>"問題なし: iTunes Store",
    :status=>"allgood"},
   # ...
]}

Usage (via. shell)

$ apple_system_status help
Commands:
  apple_system_status fetch           # Fetch apple system status
  apple_system_status help [COMMAND]  # Describe available commands or one specific command
  apple_system_status version         # Show apple_system_status version

$ apple_system_status help fetch
Usage:
  apple_system_status fetch

Options:
  [--country=COUNTRY]  # country code. (e.g. jp, ca, fr)
                       # Default: us
  [--title=TITLE]      # If specified, narrow the service title
  [--format=FORMAT]    # output format. (e.g. plain, json)
                       # Default: plain

Example

$ apple_system_status fetch --country=us --title="iTunes Store" --format=json | jq .
{
  "title": "System Status as of 4:33 PM JST",
  "services": [
    {
      "title": "iTunes Store",
      "description": "No Issues: iTunes Store",
      "status": "allgood"
    }
  ]
}

Development

After checking out the repo, run bin/setup to install dependencies. Then, run rake rspec to run the tests. You can also run bin/console for an interactive prompt that will allow you to experiment. Run bundle exec apple_system_status to use the gem in this directory, ignoring other installed copies of this gem.

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.

Contributing

Bug reports and pull requests are welcome on GitHub at github.com/sue445/apple_system_status.

License

The gem is available as open source under the terms of the MIT License.