Current section
Files
Jump to
Current section
Files
lib/mix/tasks/atcoder/open.ex
defmodule Mix.Tasks.Atcoder.Open do
@shortdoc "指定されたコンテストのWebページをブラウザで開きます"
use Mix.Task
alias ExAtCoder.Repo
def run([contest]) do
contest
|> Repo.contest_url_for()
|> BrowserLauncher.open()
Mix.shell().info("✨ Open URL for #{contest}")
end
def run([contest, task]) do
Application.ensure_all_started(:hackney)
url =
Repo.contest_tasks(contest)
|> Enum.find(fn {p, [_]} ->
String.downcase(p) == String.downcase(task)
end)
case url do
{_, [url]} ->
url
|> Repo.absolute_url_for()
|> BrowserLauncher.open()
Mix.shell().info("✨ Open URL for #{contest} #{task}")
nil ->
Mix.shell().info("👿 No such URL found")
end
end
end