All jobs have the following fields: enabled
, interval
and job_impl
.
enabled
should be True
to enable the job. If the key is omitted or False
,
the job won't be enabled.
interval
specifies how often the job should run, in seconds. interval
set to
60
will make the job run every 60 seconds.
job_impl
specifies which job implementation to use for this job. Valid job
implementations are the ones found in jarvis/jobs/
, excluding the .py
extension. Specifying job_impl
allows an implementation to be reused, it
defaults to the job key.
Most jobs also accept a timeout
option. This option sets how long a job should
wait for a request to complete, in seconds. Timeout should be lower than
interval to prevent slow jobs from blocking future jobs.
Displays bus routes in Trondheim, Norway. Uses the API provided by mpolden/atb.
JOBS["atb"] = {
"enabled": True,
"interval": 60,
"url": "https://mpolden.no/atb/v2/departures/<stop-id>",
}
Displays future flights for the configured destination. This widget uses data provided by Avinor.
JOBS["avinor"] = {
"enabled": True,
"interval": 180,
"from": "TRD",
"to": "OSL",
}
The from
and to
fields are
IATA airport codes.
Displays current and upcoming events in your Google Calendar. This widget uses the Google Calendar API to retrieve data.
JOBS["calendar"] = {
"enabled": True,
"interval": 600,
"client_id": "",
"client_secret": "",
}
The values for client_id
and client_secret
can be created using the
Google Developer Console.
When you have set client_id
and client_secret
in your config file, you need
to run make google-api-auth
to generate a credentials file.
Displays the next Flybussen departures from the configured bus stop.
JOBS["flybussen"] = {
"enabled": True,
"interval": 600,
"from_stop": "Dronningens gate D2",
"to_airport": "TRD",
}
The from_stop
field is the name (case-insensitive) of a valid bus stop.
The to_airport
field is a IATA airport
code of a valid destination
airport.
See the Flybussen website for valid airports and stop names.
Displays the current unread count, and total email count in the configured folder.
JOBS["gmail"] = {
"enabled": True,
"interval": 900,
"client_id": "",
"client_secret": "",
"email": "[email protected]",
"folder": "inbox",
}
The values for client_id
and client_secret
can be created using the
Google Developer Console.
When you have set client_id
and client_secret
in your config file, you need
to run make google-api-auth
to generate a credentials file.
Displays the top 10 trending items on Hacker News. Scrapes data directly from the website.
JOBS["hackernews"] = {
"enabled": True,
"interval": 900,
}
Uses IMAP to display the current unread count, and total email count in the configured folder.
JOBS["imap"] = {
"enabled": True,
"interval": 900,
"email": "email-address-to-display,
"url": "imap://username:password@host:port",
"tls": True,
"starttls": False,
"folder": "INBOX",
}
Displays upcoming train departures from a configured location. Data is retrieved from the Entur API.
Use https://stoppested.entur.org to find valid stop IDs.
JOBS["nsb"] = {
"enabled": True,
"interval": 900,
"from": (420, "Lillehammer"),
"to": (59872, "Oslo S"),
}
Displays a graph of response times to the given hosts. The hosts
field is
a tuple of tuples on this format: ("label", "host or ip")
JOBS["ping"] = {
"enabled": True,
"interval": 10,
"hosts": (
("vg.no", "vg.no"),
("google.com", "google.com"),
),
}
Note that for this job the timeout
parameter is applied per host, so the total
timeout is timeout * len(hosts)
.
Displays latest TV shows and movies from Plex Media Server. Plex Media Server
makes metadata for each section available as XML at the following URL:
https://<ip>:32400/library/sections/<section-number>/recentlyAdded?X-Plex-Token=<secret-token>
.
JOBS["plex"] = {
"enabled": True,
"interval": 900,
"movies": "https://127.0.0.1:32400/library/sections/2/recentlyAdded?X-Plex-Token=secret",
"shows": "https://127.0.0.1:32400/library/sections/1/recentlyAdded?X-Plex-Token=secret",
"verify": True,
}
Please see the Plex documentation for instruction on how to find your token.
If verify
is set to False
, certificate warnings are ignored when using
HTTPS. Default is True
.
Displays the most recent items in a RSS feed. Works with any standard RSS feed.
JOBS["rss-guardian"] = {
"enabled": False,
"interval": 900,
"url": "https://www.theguardian.com/international/rss",
"title": "The Guardian",
"job_impl": "rss",
}
The title
field specifies the widget title. If it's omitted, the title will be
taken from <title>
tag in the RSS feed.
Displays the current track playing on your Sonos device. Also displays the upcoming track.
JOBS["sonos"] = {
"enabled": False,
"interval": 10,
"ip": "127.0.0.1",
"display_album_art": True,
}
The ip
field should be the IP of your Sonos device. If display_album_art
is
True
(default) the widget will use album art for the currently playing track
as its background image.
Displays beverage consumption stats from the IRC channel #tihlde on Libera.
The max
dict sets the wanted limit for each beverage. nick
is the nick you
want to retrieve stats for.
JOBS["stats"] = {
"enabled": True,
"interval": 600,
"nick": "yournick",
"max": {
"coffee": 8,
"beer": 12,
},
}
Displays the current time and date. This widget has no associated job and is not configurable.
Ping one or more hosts and display their status (up or down).
JOBS["uptime"] = {
"enabled": True,
"interval": 60,
"hosts": (
("Desktop", "10.0.0.11"),
("Laptop", "10.0.0.10"),
),
}
Note that for this job the timeout
parameter is applied per host, so the total
timeout is timeout * len(hosts)
.
Displays the next Vaernesekspressen departures from the configured bus stop.
JOBS["vaernesekspressen"] = {
"enabled": True,
"interval": 600,
"from_stop": "Solsiden",
}
The from_stop
field is the name (case-insensitive) of a valid bus stop.
See the Vaernesekspressen website for valid stop names. Trondheim airport is the only possible destination and is thus not configurable.
Displays weather data from https://www.yr.no. The url
field specifies the
location to display. Note that Yr requires a polling interval of at least 10
minutes (600 seconds).
Past versions of the Yr API allowed looking up a location by name, e.g. "Trondheim". In the current version callers have to provide latitude and longitude instead.
See https://api.met.no/weatherapi/locationforecast/2.0/documentation for more details.
The location
field sets which location to display in the widget. This field
must be set.
The Yr API provides an hourly forecast. The field forecast_hour
controls which
hour to choose when displaying forecast-ed temperature. Defaults to 12
when
unset.
JOBS["yr"] = {
"enabled": True,
"interval": 600,
"url": "https://api.met.no/weatherapi/locationforecast/2.0/compact?lat=63.43048&lon=10.39506",
"location": "Trondheim",
"forecast_hour": 12,
}
Similar to yr
, but has a compact widget layout including a weather forecast
for the next six hours and next six days. The widget also displays weather
icons.
The fields location
and forecast_hour
mean the same here as in the yr
widget.
JOBS["yr2"] = {
"enabled": True,
"interval": 600,
"url": "https://api.met.no/weatherapi/locationforecast/2.0/compact?lat=63.43048&lon=10.39506",
"location": "Trondheim",
"forecast_hour": 12,
}