class

ArrTop::Poller

Inherits Reference < Object

Collects normalized QueueRows from every configured backend and returns them sorted so what's actively importing sorts first.

A backend that raises (unreachable *arr, API error) is skipped rather than blanking the whole view — its rows are omitted and its name/message are recorded in #errors for a future UI to surface. #rows recomputes #errors on each call.

Constants

Log = ::Log.for("arrtop.poller")

Log source for poll-loop messages.

Constructors

new(backends : Array(Backend))
Source

Class methods

sort(rows : Array(QueueRow)) : Array(QueueRow)

Stable sort: State rank (Importing = 0 first), then descending download percent, then title.

Source

Instance methods

errors

Backend name → error message for backends that failed on the last #rows.

Source
rows

Rows from every backend, sorted by State rank (Importing first), then by descending download percent, then title. Failed backends are skipped and recorded in #errors.

Source