systembooster/lib/mix/tasks/systembooster/cron.ex

30 lines
1.1 KiB
Elixir

defmodule Mix.Tasks.SystemBooster.Cron do
use Mix.Task
def run(args) do
Application.ensure_all_started(:hackney)
app = Application.get_env(:systembooster, :app)
oauth = Application.get_env(:systembooster, :oauth)
conn = Hunter.new(base_url: app[:base_url], bearer_token: oauth[:token])
conn
|> Hunter.Api.HTTPClient.list_timeline(
Application.get_env(:systembooster, :list)[:list_id],
[]
)
|> Enum.filter(fn x ->
x.reblogged == false and x.visibility in ["public", "unlisted"]
end)
|> Enum.reverse()
|> Enum.map(fn x -> Hunter.reblog(conn, x.id) end)
|> case do
[] -> "Up to date"
x -> x |> Enum.count() |> (fn x -> "updated #{x} statuses" end).()
end
|> IO.puts()
end
end
# realapp = %Hunter.Application{client_id: app[:client_id], client_secret: app[:client_secret], id: app[:app_id]}
# Enum.map(Enum.reverse(Enum.sort_by(Enum.filter(list, fn (x) -> x.reblogged == false and (x.visibility == "public" or x.visibility == "unlisted") end),fn x -> x.id end)), fn x -> Hunter.reblog(conn, x.id) end)