All Projects → JasonPuglisi → descent

JasonPuglisi / descent

Licence: MIT license
Elegant now playing display for Last.fm showing song metadata and local weather.

Programming Languages

javascript
184084 projects - #8 most used programming language
Pug
443 projects
SCSS
7915 projects
shell
77523 projects

Projects that are alternatives of or similar to descent

Epiboard
Web Extension — A new tab page extension with material design and useful features 🆕 🎉
Stars: ✭ 262 (+170.1%)
Mutual labels:  weather, lastfm
SupyPlugins
A collection of plugins for the Limnoria IRC bot.
Stars: ✭ 31 (-68.04%)
Mutual labels:  weather, lastfm
WeatherSwiftUI
Implementation of the Weather app using SwiftUI and OpenWeather API.
Stars: ✭ 37 (-61.86%)
Mutual labels:  weather
wingpanel-indicator-weather
Weather app for elementary os
Stars: ✭ 12 (-87.63%)
Mutual labels:  weather
weather-app
⛅ Check the current weather in any city on the planet.
Stars: ✭ 86 (-11.34%)
Mutual labels:  weather
climate-app
Climate App é uma aplicação responsável por mostrar dados climáticos (temperatura atual, umidade, velocidade do vento etc) de uma determinada cidade em tempo real. A obtenção desses dados foi feita através da open-weather-api.
Stars: ✭ 40 (-58.76%)
Mutual labels:  weather
UIFramework
A powerful UI framework for the game Onset (https://playonset.com/)
Stars: ✭ 13 (-86.6%)
Mutual labels:  hud
rustfm-scrobble
Last.fm Scrobble API for Rust
Stars: ✭ 32 (-67.01%)
Mutual labels:  lastfm
iTunes-Scrobbler
An alternative scrobbler for iTunes and Music on macOS 10.12 or higher
Stars: ✭ 19 (-80.41%)
Mutual labels:  lastfm
nicholast.fm
Last.fm Stat Utility Web App
Stars: ✭ 17 (-82.47%)
Mutual labels:  lastfm
inventory-checkin
Inventory check-in/out manager that supports a tablet kiosk.
Stars: ✭ 16 (-83.51%)
Mutual labels:  kiosk
natsuha-weather
Natsuha Weather for WeChat Mini Program.
Stars: ✭ 33 (-65.98%)
Mutual labels:  weather
balena-chromium-kiosk
BalenaOS/BalenaCloud based Kiosk using Chromium on a RaspberryPi
Stars: ✭ 46 (-52.58%)
Mutual labels:  kiosk
gnome-hud
Unity like HUD menu for the GNOME Desktop Environment using rofi menu.
Stars: ✭ 111 (+14.43%)
Mutual labels:  hud
temps-lite
A smart, good-looking little app which tries to speak your language the way you are used to.
Stars: ✭ 40 (-58.76%)
Mutual labels:  weather
lastfm
🎶 Last.fm API client for PHP. Comes with a Laravel service provider.
Stars: ✭ 17 (-82.47%)
Mutual labels:  lastfm
AndroidWeatherApp
Android WeatherApp, using the http://openweathermap.org/ API. Made for Network + JSON Parsing and Material Design Experiments.
Stars: ✭ 17 (-82.47%)
Mutual labels:  weather
dwdweather2
Python client to access weather data from Deutscher Wetterdienst (DWD), the federal meteorological service in Germany.
Stars: ✭ 68 (-29.9%)
Mutual labels:  weather
last fm
A simple app to demonstrate a testable, maintainable, and scalable architecture for flutter. flutter_bloc, get_it, hive, and REST API are some of the tech stacks used in this project.
Stars: ✭ 134 (+38.14%)
Mutual labels:  lastfm
verif
Software for verifying weather forecasts
Stars: ✭ 70 (-27.84%)
Mutual labels:  weather

Descent

Build Status

Elegant now playing display for Last.fm showing song metadata and local weather.

Overview

Fetches now playing song information from Last.fm and displays album artwork along with local weather, time, and user info. Automatically hides the cursor after a few seconds of inactivity if the window is in focus.

Able to control colored Philips Hue lights based on prominent album art colors.

Usage

Ensure you have recent versions of Node.js and npm installed.

Run npm i -g yarn to install yarn. Next, run yarn global add gulp-cli and yarn to install Descent's dependencies. Finally, run gulp build to build Descent's static files, and yarn start to start Descent's server.

Descent's server listens on port 3000 by default, but this can be changed by setting the DESCENT_PORT environment variable. It's recommended to use a proxy, such as NGINX, in front of Descent's server.

Navigate to / to use Descent.

API Requirements

Weather

Weather is powered by the Dark Sky API, or the OpenWeatherMap API. To use either, you will need to provide an API key. For Dark Sky, set your key as the DARK_SKY_KEY environment variable. For OpenWeatherMap, set your key as the OPENWEATHERMAP_KEY environment variable.

Dark Sky will take precedence, and OpenWeatherMap will be used if no Dark Sky API key is provided, or if a Dark Sky API request fails. Dark Sky provides more detailed weather summaries, but the officialy-hosted Descent uses OpenWeatherMap to avoid fees.

For users to enable weather display, they must allow the Descent website to access their location. This feature relies on HTML5 geolocation, so it may only work in some modern browsers.

Spotify Images

Album cover and artist images and provided by the Spotify Web API. You will need to provide API authorization through a client ID and client secret assigned by Spotify. Set your client ID as the SPOTIFY_CLIENT environment variable, and your client secret as the SPOTIFY_SECRET environment variable.

Philips Hue Lights

Hue lights are controlled by the Philips Hue API. You must register an application to provide a few required values. Set your app ID as the HUE_ID environment variable, your client ID as the HUE_CLIENT environment variable, and your client secret as the HUE_SECRET environment variable.

Last.fm Rate Limiting

To avoid Last.fm rate limiting, you can adjust the API polling interval. Set the LASTFM_POLL_INTERVAL environment variable to an integer in milliseconds. The default is 10000 (10 seconds), but a more reasonable value could be 5000 (5 seconds). If API calls in the browser start failing, and playing data isn't loading, increase the interval.

User Preferences

Descent Configuration

To configure the background, weather, and time displays, visit /app/config. Dark Sky can automatically determine weather units, but OpenWeatherMap cannot, so Descent defaults to imperial units unless otherwise specified.

Descent Configuration Import

You can import settings through a POST request to /app/config/set. Each post parameter correponds to a cookie. Valid parameters and values are as follows:

Background type
background: artist, album, transparent, none

Background blurring
blur: true, false

Default background image
defaultBackground: any valid image URL

Weather location latitude
latitude: any valid latitude coordinate

Weather location longitude
longitude: any valid longitude coordinate

Weather units
units: imperial, metric

Date/time 24-hour display
24hr: true, false

Date/time weekday display
weekday: true, false

Date/time seconds display
seconds: true, false

User to redirect to
lastUser: any valid Last.fm username

Weather display enabled
weatherOn: true, false

Date/time display enabled
datetimeOn: true, false

Extended information display enabled
extendedOn: true, false

Phillips Hue Configuration

To enable Phillips Hue control, visit /app/hue and follow the setup instructions. Light colors will be set according to the three most prominent album art colors. If more than three lights are selected, the colors will be reused.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].