Go to file
2020-12-03 11:14:11 +01:00
.tx add translation infrastructure 2020-10-18 12:10:17 +02:00
appinfo trying to implement tests 2020-12-02 14:05:15 +01:00
css add agpl license headers, fix #206 2020-11-24 15:16:53 +01:00
img fix navigation and search routing 2020-11-11 15:53:42 +01:00
l10n add make translations to CI, fix test errors 2020-12-03 11:07:03 +01:00
lib add make translations to CI, fix test errors 2020-12-03 11:07:03 +01:00
src trying to implement tests 2020-12-02 13:44:53 +01:00
templates use autoprefix to support legacy browsers css 2020-11-24 15:50:12 +01:00
translationfiles add make translations to CI, fix test errors 2020-12-03 11:07:03 +01:00
utils add utils 2020-10-28 21:22:46 +01:00
.editorconfig rewrite init 2020-10-12 17:29:36 +02:00
.eslintrc.js eslint: enable console 2020-10-17 12:10:09 +02:00
.gitignore rewrite init 2020-10-12 17:29:36 +02:00
.gitlab-ci.yml further work on CI: compile stage 2020-12-03 11:14:11 +01:00
.l10nignore add translation infrastructure 2020-10-18 12:20:25 +02:00
.nextcloudignore trying to implement tests 2020-12-02 14:14:27 +01:00
.npmignore rewrite init 2020-10-12 17:29:36 +02:00
babel.config.js rewrite init 2020-10-12 17:29:36 +02:00
CHANGELOG.md trying to implement tests 2020-12-02 13:44:53 +01:00
composer.json add krankerl publish to makefile, initial code signing support 2020-11-29 11:07:27 +01:00
COPYING add agpl license headers, fix #206 2020-11-24 15:16:53 +01:00
krankerl.toml further work on gitlab-ci.yml 2020-11-26 10:59:14 +01:00
Makefile add make translations to CI, fix test errors 2020-12-03 11:07:03 +01:00
package-lock.json use autoprefix to support legacy browsers css 2020-11-24 15:50:12 +01:00
package.json use autoprefix to support legacy browsers css 2020-11-24 15:50:12 +01:00
postcss.config.js use autoprefix to support legacy browsers css 2020-11-24 15:50:12 +01:00
README.md add krankerl publish to makefile, initial code signing support 2020-11-29 11:07:27 +01:00
Release.md add krankerl publish to makefile, initial code signing support 2020-11-29 11:07:27 +01:00
screenshot-thumbnail.jpg test release v1.0.0.5 2020-11-27 11:23:13 +01:00
screenshot.png test release v1.0.0.5 2020-11-27 11:23:13 +01:00
stylelint.config.js rewrite init 2020-10-12 17:29:36 +02:00
webpack.js use autoprefix to support legacy browsers css 2020-11-24 15:50:12 +01:00

Nextcloud Radio app

This experimental app uses the radio-browser.info api and offers radio stations right in your Nextcloud!

Features

  • Browse hundreds of radio stations world wide and play them directly
  • Save stations to your favorites list
  • Smooth playback with audio transitions
  • Explore new stations in the category section

Maintainers

Installation

From the appstore

The most recent and stable version of the app can be found in the official appstore. For ArchLinux, there is an AUR package available.

From source

Clone the development repository with:

git clone https://git.project-insanity.org/onny/nextcloud-app-radio.git radio

Then run following commands to compile the project:

cd radio
make dev-setup
make build-js

Mount or move the radio folder into your Nextcloud apps/ directory. Go to the apps manager tab in your Nextcloud web interface, and enable the Radio app.

Testing

Can be easily tested using Docker:

docker build -t nextcloud https://git.project-insanity.org/onny/docker-nextcloud.git
docker run -v /tmp/nextcloud-app-radio:/opt/nextcloud/apps/radio -d --name nextcloud-app-radio -p 80:80 nextcloud

First part of -v is the path to the cloned and compiled or downloaded Nextcloud Radio app. Debug running container it with:

docker exec -i -t 665b4a1e17b6 /bin/bash

Where -t specifies the container id. If you further need to access the sqlite-database, logs or files inside the data folder of Nextcloud, that you also have to share this folder with the host:

docker run -v /tmp/dockerdata:/data/data -v /tmp/nextcloud-app-radio:/opt/nextcloud/apps/radio -d --name nextcloud -p 80:80 rootlogin/nextcloud

Development notes

General

While editing the code, you could run following helper script to automatically compile the project:

echo fs.inotify.max_user_watches=524288 | sudo tee -a /etc/sysctl.conf && sudo sysctl -p # ref: https://github.com/gatsbyjs/gatsby/issues/11406
make watch-js

Translations

Manually generate translations. The following commands will require the dependency packages gettext and php.

cd nextcloud-app-radio
git clone https://github.com/nextcloud/docker-ci.git utils/docker-ci
make translations

Use the source file translationfiles/template/radio.pot to create translations. For example, contribute translations via Transifex.

Put the translated language file into the corresponding template folder. For example the German language file should be placed at translationfiles/de/radio.po. Run make translations again.

Prepare a release

Consoult Release.md on how to prepare a release for Gitlab and the app store.

Reporting bugs

You can report bugs in the public gitlab repository here and for discussion you can find a section for the app in the offical Nextcloud forums here.

Adding translations

For now only German translations are provided, so please submit your translations if possible :) It's really easy, just git clone this repo and copy the translation files in l10n according to your locale. Merge requests go to this radio repository.

Adding radio stations

This app uses a public and open database of radio stations as its backend, so any station you add in radio-browser.info (no account required), will be also available in this app. Feel free to contribute :)

Credits

  • radio-browser.info database api as backend for this app
  • Python example code to query stream metadata, took from here.

Donation

If you like this app and want to support my work, you can donate to this Bitcoin address:

19mpmuNczGDgdxaBLBn3REEpQLPPcJHZB6