pifi 0.4.0 → 0.4.5.pre.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/INSTALL.md +10 -9
- data/README.md +46 -28
- data/bin/pifi +3 -1
- data/lib/pifi/controllers/application_controller.rb +0 -4
- data/lib/pifi/lib/config_getter.rb +1 -1
- data/lib/pifi/lib/player.rb +4 -3
- data/lib/pifi/public/asset-manifest.json +18 -18
- data/lib/pifi/public/assets/logo80.png +0 -0
- data/lib/pifi/public/index.html +1 -1
- data/lib/pifi/public/locales/en/translation.json +18 -16
- data/lib/pifi/public/locales/fr-FR/translation.json +23 -2
- data/lib/pifi/public/locales/nl-NL/translation.json +23 -2
- data/lib/pifi/public/locales/pl-PL/translation.json +28 -0
- data/lib/pifi/public/locales/pt-BR/translation.json +17 -15
- data/lib/pifi/public/precache-manifest.2861d7ff1c094f4f7704d9f5f30ff5e9.js +34 -0
- data/lib/pifi/public/service-worker.js +1 -1
- data/lib/pifi/public/static/css/2.d34346ea.chunk.css +2 -0
- data/lib/pifi/public/static/css/2.d34346ea.chunk.css.map +1 -0
- data/lib/pifi/public/static/css/main.221e80d3.chunk.css +2 -0
- data/lib/pifi/public/static/css/main.221e80d3.chunk.css.map +1 -0
- data/lib/pifi/public/static/js/2.2b05662c.chunk.js +3 -0
- data/lib/pifi/public/static/js/{2.df3b2c7e.chunk.js.LICENSE → 2.2b05662c.chunk.js.LICENSE.txt} +44 -51
- data/lib/pifi/public/static/js/2.2b05662c.chunk.js.map +1 -0
- data/lib/pifi/public/static/js/main.6b4db225.chunk.js +2 -0
- data/lib/pifi/public/static/js/main.6b4db225.chunk.js.map +1 -0
- data/lib/pifi/public/static/js/{runtime-main.f04a0f25.js → runtime-main.5aae5a31.js} +1 -1
- data/lib/pifi/public/static/js/{runtime-main.f04a0f25.js.map → runtime-main.5aae5a31.js.map} +1 -1
- data/lib/pifi/version.rb +1 -1
- metadata +20 -18
- data/lib/pifi/public/precache-manifest.3ca9784793937217e35f314e19179939.js +0 -34
- data/lib/pifi/public/static/css/2.5dbdccff.chunk.css +0 -2
- data/lib/pifi/public/static/css/2.5dbdccff.chunk.css.map +0 -1
- data/lib/pifi/public/static/css/main.58eef733.chunk.css +0 -2
- data/lib/pifi/public/static/css/main.58eef733.chunk.css.map +0 -1
- data/lib/pifi/public/static/js/2.df3b2c7e.chunk.js +0 -3
- data/lib/pifi/public/static/js/2.df3b2c7e.chunk.js.map +0 -1
- data/lib/pifi/public/static/js/main.58e602f6.chunk.js +0 -2
- data/lib/pifi/public/static/js/main.58e602f6.chunk.js.map +0 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c1586e58b5e0def063d3df99eab16a5946ec861cd366116094695c6f03f161c8
|
|
4
|
+
data.tar.gz: fc3c345f44d062e8874c48b2b394308d3820c4b5a6840301d1d6751bebf4fde3
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: dade51eab47a8e6f2a14c937540328b73b559739b4d1e6079738edbdb1d7013bdd70cda5a965916b921b3759db5cc2b1ee6de7aa1b54fb6eeab5d62f30109d18
|
|
7
|
+
data.tar.gz: 810150856ea5eacfa3792b6da7c1bba3e4a41db26ef770b94bedd22939d023325d010b0a802bc9e4b992dfa06d8d3ccf91fb74e7fa576d8549985f323fb25164
|
data/INSTALL.md
CHANGED
|
@@ -8,29 +8,30 @@ On Raspbian:
|
|
|
8
8
|
$ sudo apt install ruby-full mpd
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
2.
|
|
11
|
+
2. Start and enable MPD:
|
|
12
12
|
|
|
13
13
|
```
|
|
14
|
-
$ sudo
|
|
15
|
-
$ sudo systemctl start mpd && sudo systemctl enable mpd
|
|
14
|
+
$ sudo systemctl enable --now mpd
|
|
16
15
|
```
|
|
17
16
|
|
|
17
|
+
_In the case you need to configure MPD, [check its documentation](https://www.musicpd.org/doc/html/user.html#configuration)._
|
|
18
|
+
|
|
18
19
|
3. Install PiFi:
|
|
19
20
|
|
|
20
21
|
```
|
|
21
22
|
$ sudo gem install pifi --no-document
|
|
22
23
|
```
|
|
23
24
|
|
|
24
|
-
4.
|
|
25
|
+
4. You'll need a list of radios at `/etc/pifi/streams.json`. Paste this for now:
|
|
25
26
|
|
|
26
27
|
```
|
|
27
28
|
$ sudo mkdir -p /etc/pifi
|
|
28
29
|
$ sudo wget https://raw.githubusercontent.com/rccavalcanti/pifi-radio/master/docs/streams.json.sample -O /etc/pifi/streams.json
|
|
29
30
|
```
|
|
30
31
|
|
|
31
|
-
|
|
32
|
+
_Later, you can edit that list [as described here](README.md#list-of-streams)._
|
|
32
33
|
|
|
33
|
-
5. If the MPD server is on another host or a non-default port, you'll need
|
|
34
|
+
5. If the MPD server is on another host or a non-default port, you'll need a configuration file.
|
|
34
35
|
|
|
35
36
|
Download a sample and edit [following the documentation](README.md#pifi-configuration):
|
|
36
37
|
|
|
@@ -39,13 +40,13 @@ $ sudo wget https://raw.githubusercontent.com/rccavalcanti/pifi-radio/master/doc
|
|
|
39
40
|
$ sudo -e /etc/pifi/config.json
|
|
40
41
|
```
|
|
41
42
|
|
|
42
|
-
**Done!** You can now run PiFi with `pifi` and reach it at `http://DEVICE_IP:3000`.
|
|
43
|
+
**Done!** You can now run PiFi with `pifi` and reach it at `http://DEVICE_IP:3000`.
|
|
43
44
|
|
|
44
45
|
## Running at system boot and as other user
|
|
45
46
|
|
|
46
|
-
It makes sense to run PiFi as a
|
|
47
|
+
It makes sense to run PiFi as a different user, such as `www-data`. You may also want it to autostart on boot. For that you can use a systemd service.
|
|
47
48
|
|
|
48
|
-
1. Download the
|
|
49
|
+
1. Download the service sample.
|
|
49
50
|
|
|
50
51
|
```
|
|
51
52
|
$ sudo wget https://raw.githubusercontent.com/rccavalcanti/pifi-radio/master/docs/pifi.service.sample -O /etc/systemd/system/pifi.service
|
data/README.md
CHANGED
|
@@ -11,10 +11,14 @@
|
|
|
11
11
|
- [Some features](#some-features)
|
|
12
12
|
- [Demo](#demo)
|
|
13
13
|
- [Installation](#installation)
|
|
14
|
+
- [Updating](#updating)
|
|
14
15
|
- [Configuration](#configuration)
|
|
15
16
|
- [List of streams](#list-of-streams)
|
|
16
17
|
- [PiFi configuration](#pifi-configuration)
|
|
18
|
+
- [Usage](#usage)
|
|
19
|
+
- [Help me translate](#help-me-translate)
|
|
17
20
|
- [Credits](#credits)
|
|
21
|
+
- [Buy me a coffee](#buy-me-a-coffee)
|
|
18
22
|
- [License](#license)
|
|
19
23
|
|
|
20
24
|
## Meet PiFi Radio
|
|
@@ -31,7 +35,7 @@ PiFi is an interface for MPD, so it has some advantages compared to other soluti
|
|
|
31
35
|
|
|
32
36
|
- Responsive interface for phones, tablets and desktops.
|
|
33
37
|
- Display stations clearly. No URLs or weird names.
|
|
34
|
-
-
|
|
38
|
+
- Dark and light themes.
|
|
35
39
|
- Easily search your radios.
|
|
36
40
|
- Centralized list of stations. You get the same radios on every device.
|
|
37
41
|
- Make some radios to be offered only to certain IPs. A use case for this is if there are tons of stations that only you listen and you don't want to pollute everyone else's list.
|
|
@@ -52,28 +56,16 @@ PiFi is an interface for MPD, so it has some advantages compared to other soluti
|
|
|
52
56
|
|
|
53
57
|
While PiFi was imagined for the Pi, it should run on any computer with Ruby and MPD.
|
|
54
58
|
|
|
55
|
-
|
|
59
|
+
[Check the installation guide](INSTALL.md).
|
|
56
60
|
|
|
57
|
-
|
|
58
|
-
$ sudo gem install pifi --no-document
|
|
59
|
-
```
|
|
60
|
-
|
|
61
|
-
Place a list of streams at `/etc/pifi/streams.json`:
|
|
62
|
-
|
|
63
|
-
```
|
|
64
|
-
$ sudo mkdir -p /etc/pifi
|
|
65
|
-
$ sudo wget https://raw.githubusercontent.com/rccavalcanti/pifi-radio/master/docs/streams.json.sample -O /etc/pifi/streams.json
|
|
66
|
-
```
|
|
61
|
+
## Updating
|
|
67
62
|
|
|
68
|
-
|
|
63
|
+
Run:
|
|
69
64
|
|
|
70
65
|
```
|
|
71
|
-
$ sudo
|
|
72
|
-
$ pifi
|
|
66
|
+
$ sudo gem update pifi --no-document
|
|
73
67
|
```
|
|
74
68
|
|
|
75
|
-
For more detailed steps, [check the installation guide](INSTALL.md).
|
|
76
|
-
|
|
77
69
|
## Configuration
|
|
78
70
|
|
|
79
71
|
### List of streams
|
|
@@ -109,13 +101,13 @@ The path is `/etc/pifi/config.json` and these are the options:
|
|
|
109
101
|
|
|
110
102
|
| Key | Default | Description |
|
|
111
103
|
| ------------------- | ------------------------ | ----------------------------------------------------------------------------------------------------------------- |
|
|
112
|
-
| `mpd_host` | `127.0.0.1` | MPD host. |
|
|
113
|
-
| `mpd_port` | `6600`
|
|
114
|
-
| `mpd_password` | `""` (none)
|
|
115
|
-
| `streams_path` |
|
|
116
|
-
| `streams_path_priv` | `""` (none)
|
|
117
|
-
| `special_ips` | `
|
|
118
|
-
| `serve_static` | `true`
|
|
104
|
+
| `mpd_host` | `"127.0.0.1"` | MPD host. |
|
|
105
|
+
| `mpd_port` | `6600` | MPD port. |
|
|
106
|
+
| `mpd_password` | `""` (none) | MPD password. |
|
|
107
|
+
| `streams_path` | `"/etc/pifi/streams.json"` | Path to the JSON file containing the streams. |
|
|
108
|
+
| `streams_path_priv` | `""` (none) | Path to JSON file containing additional streams. These will be shown only to the devices listed on `special_ips`. |
|
|
109
|
+
| `special_ips` | `[]` (none) | The IPs of the devices to show additional streams. Example: `["10.0.0.1", "10.0.0.2"]` |
|
|
110
|
+
| `serve_static` | `true` | If we should serve static resources. Set it to `false` if your web server is already doing it. |
|
|
119
111
|
|
|
120
112
|
If you want to change any of these options, download the sample file and edit it to your needs:
|
|
121
113
|
|
|
@@ -135,14 +127,40 @@ PiFi can be run:
|
|
|
135
127
|
|
|
136
128
|
On your mobile browser, I suggest you add PiFi Radio to your home screen, for easier access.
|
|
137
129
|
|
|
130
|
+
## Help me translate
|
|
131
|
+
|
|
132
|
+
You can help me adding a new language to PiFi or improving an existing translation. [The translation files are placed here.](https://github.com/rccavalcanti/pifi-radio/tree/master/frontend/public/locales)
|
|
133
|
+
|
|
134
|
+
### Improving an existing translation
|
|
135
|
+
|
|
136
|
+
The default language for PiFi is English, so you should use it as a reference.
|
|
137
|
+
|
|
138
|
+
1. Open [the translation file](https://github.com/rccavalcanti/pifi-radio/tree/master/frontend/public/locales) and [the English file](https://github.com/rccavalcanti/pifi-radio/blob/master/frontend/public/locales/en/translation.json).
|
|
139
|
+
2. Fill empty strings and fix any bad translations.
|
|
140
|
+
3. Send a pull request.
|
|
141
|
+
|
|
142
|
+
### Adding a new language
|
|
143
|
+
|
|
144
|
+
1. Copy the `en` folder, renaming it to the new language code (e.g. `es-ES`).
|
|
145
|
+
2. On `translation.json`, translate the strings. If you aren't sure of some, please make them empty.
|
|
146
|
+
3. Send a pull request.
|
|
147
|
+
|
|
138
148
|
## Credits
|
|
139
149
|
|
|
140
|
-
-
|
|
141
|
-
-
|
|
150
|
+
- fr-fr: Francis Chavanon "rimeno"
|
|
151
|
+
- pl-pl: "Struart88"
|
|
152
|
+
- nl-nl: Heimen Stoffels "Vistaus"
|
|
153
|
+
|
|
142
154
|
- Icon made by [iconixar](https://www.flaticon.com/authors/iconixar) from [www.flaticon.com](https://www.flaticon.com/), licensed by [Flaticon Basic License](docs/icon/license.pdf).
|
|
143
155
|
|
|
156
|
+
## Buy me a coffee
|
|
157
|
+
|
|
158
|
+
If you find PiFi useful, you can show your support here:
|
|
159
|
+
|
|
160
|
+
<a href="https://www.buymeacoffee.com/rafaelc" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" width="200" ></a>
|
|
161
|
+
|
|
144
162
|
## License
|
|
145
163
|
|
|
146
|
-
|
|
164
|
+
Licensed under [GPLv3](LICENSE)
|
|
147
165
|
|
|
148
|
-
Copyright 2017-2020 Rafael Cavalcanti
|
|
166
|
+
Copyright (C) 2017-2020 [Rafael Cavalcanti](https://rafaelc.org/)
|
data/bin/pifi
CHANGED
|
@@ -1,5 +1,8 @@
|
|
|
1
1
|
#!/usr/bin/env ruby
|
|
2
2
|
|
|
3
|
+
# The supported, safe way
|
|
4
|
+
ENV["APP_ENV"] = "production" if ENV["APP_ENV"].nil?
|
|
5
|
+
|
|
3
6
|
require "pifi"
|
|
4
7
|
require "optimist"
|
|
5
8
|
|
|
@@ -22,5 +25,4 @@ rack_opts = {
|
|
|
22
25
|
daemonize: cli_opts.daemonize
|
|
23
26
|
}
|
|
24
27
|
|
|
25
|
-
PiFi::ApplicationController.set :environment, :production
|
|
26
28
|
Rack::Server.new(rack_opts).start
|
|
@@ -5,10 +5,6 @@ require "sinatra/base"
|
|
|
5
5
|
module PiFi
|
|
6
6
|
class ApplicationController < Sinatra::Base
|
|
7
7
|
set :static, false
|
|
8
|
-
configure :development do
|
|
9
|
-
before { response.headers["Access-Control-Allow-Origin"] = "*" }
|
|
10
|
-
end
|
|
11
|
-
|
|
12
8
|
set ConfigGetter.new.config
|
|
13
9
|
set :streams, Streams.new(settings.streams_path, settings.streams_path_priv)
|
|
14
10
|
end
|
data/lib/pifi/lib/player.rb
CHANGED
|
@@ -46,8 +46,7 @@ module PiFi
|
|
|
46
46
|
|
|
47
47
|
def change_vol(delta)
|
|
48
48
|
raise ArgumentError, "Invalid argument" unless delta =~ /^[+-]\d{1,2}$/
|
|
49
|
-
|
|
50
|
-
raise VolNaError if @vol < 0
|
|
49
|
+
raise VolNaError if @vol.nil?
|
|
51
50
|
|
|
52
51
|
@mpd.send_command("volume", delta);
|
|
53
52
|
# This is more up-to-date than @vol
|
|
@@ -146,7 +145,9 @@ module PiFi
|
|
|
146
145
|
end
|
|
147
146
|
|
|
148
147
|
def set_vol(vol)
|
|
149
|
-
@vol =
|
|
148
|
+
# We get @vol=-1 when PulseAudio sink is closed and @vol=nil when MPD output
|
|
149
|
+
# is misconfigured. Let's make it all nil.
|
|
150
|
+
@vol = vol < 0 ? nil : vol
|
|
150
151
|
end
|
|
151
152
|
|
|
152
153
|
def set_con_mpd(con_mpd)
|
|
@@ -1,26 +1,26 @@
|
|
|
1
1
|
{
|
|
2
2
|
"files": {
|
|
3
|
-
"main.css": "/static/css/main.
|
|
4
|
-
"main.js": "/static/js/main.
|
|
5
|
-
"main.js.map": "/static/js/main.
|
|
6
|
-
"runtime-main.js": "/static/js/runtime-main.
|
|
7
|
-
"runtime-main.js.map": "/static/js/runtime-main.
|
|
8
|
-
"static/css/2.
|
|
9
|
-
"static/js/2.
|
|
10
|
-
"static/js/2.
|
|
3
|
+
"main.css": "/static/css/main.221e80d3.chunk.css",
|
|
4
|
+
"main.js": "/static/js/main.6b4db225.chunk.js",
|
|
5
|
+
"main.js.map": "/static/js/main.6b4db225.chunk.js.map",
|
|
6
|
+
"runtime-main.js": "/static/js/runtime-main.5aae5a31.js",
|
|
7
|
+
"runtime-main.js.map": "/static/js/runtime-main.5aae5a31.js.map",
|
|
8
|
+
"static/css/2.d34346ea.chunk.css": "/static/css/2.d34346ea.chunk.css",
|
|
9
|
+
"static/js/2.2b05662c.chunk.js": "/static/js/2.2b05662c.chunk.js",
|
|
10
|
+
"static/js/2.2b05662c.chunk.js.map": "/static/js/2.2b05662c.chunk.js.map",
|
|
11
11
|
"index.html": "/index.html",
|
|
12
|
-
"precache-manifest.
|
|
12
|
+
"precache-manifest.2861d7ff1c094f4f7704d9f5f30ff5e9.js": "/precache-manifest.2861d7ff1c094f4f7704d9f5f30ff5e9.js",
|
|
13
13
|
"service-worker.js": "/service-worker.js",
|
|
14
|
-
"static/css/2.
|
|
15
|
-
"static/css/main.
|
|
16
|
-
"static/js/2.
|
|
17
|
-
"static/media/
|
|
14
|
+
"static/css/2.d34346ea.chunk.css.map": "/static/css/2.d34346ea.chunk.css.map",
|
|
15
|
+
"static/css/main.221e80d3.chunk.css.map": "/static/css/main.221e80d3.chunk.css.map",
|
|
16
|
+
"static/js/2.2b05662c.chunk.js.LICENSE.txt": "/static/js/2.2b05662c.chunk.js.LICENSE.txt",
|
|
17
|
+
"static/media/logo.svg": "/static/media/logo.91554ce9.svg"
|
|
18
18
|
},
|
|
19
19
|
"entrypoints": [
|
|
20
|
-
"static/js/runtime-main.
|
|
21
|
-
"static/css/2.
|
|
22
|
-
"static/js/2.
|
|
23
|
-
"static/css/main.
|
|
24
|
-
"static/js/main.
|
|
20
|
+
"static/js/runtime-main.5aae5a31.js",
|
|
21
|
+
"static/css/2.d34346ea.chunk.css",
|
|
22
|
+
"static/js/2.2b05662c.chunk.js",
|
|
23
|
+
"static/css/main.221e80d3.chunk.css",
|
|
24
|
+
"static/js/main.6b4db225.chunk.js"
|
|
25
25
|
]
|
|
26
26
|
}
|
|
Binary file
|
data/lib/pifi/public/index.html
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,user-scalable=no"/><meta name="description" content="MPD web client to listen to radio"/><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/manifest.json"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="apple-mobile-web-app-title" content="PiFi Radio"><meta name="application-name" content="PiFi Radio"><meta name="msapplication-TileColor" content="#2b5797"><meta name="theme-color" content="#375a7f"><title>PiFi Radio</title><link rel="preload" href="https://stackpath.bootstrapcdn.com/bootswatch/4.4.1/darkly/bootstrap.min.css" as="style"><link href="https://stackpath.bootstrapcdn.com/bootswatch/4.4.1/darkly/bootstrap.min.css" rel="stylesheet" title="theme"><link href="/static/css/2.
|
|
1
|
+
<!doctype html><html lang="en"><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,user-scalable=no"/><meta name="description" content="MPD web client to listen to radio"/><link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png"><link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"><link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"><link rel="manifest" href="/manifest.json"><link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5"><meta name="apple-mobile-web-app-title" content="PiFi Radio"><meta name="application-name" content="PiFi Radio"><meta name="msapplication-TileColor" content="#2b5797"><meta name="theme-color" content="#375a7f"><title>PiFi Radio</title><link rel="preload" href="https://stackpath.bootstrapcdn.com/bootswatch/4.4.1/darkly/bootstrap.min.css" as="style"><link href="https://stackpath.bootstrapcdn.com/bootswatch/4.4.1/darkly/bootstrap.min.css" rel="stylesheet" title="theme"><link href="/static/css/2.d34346ea.chunk.css" rel="stylesheet"><link href="/static/css/main.221e80d3.chunk.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div><script>var isIE=window.document.documentMode,unsupportedMsg='<img src="/assets/logo80.png" class="mx-auto d-block my-5">';if(unsupportedMsg+='<h5 class="text-center my-5">This browser is not supported</h5>',isIE){var root=document.getElementById("root");root.innerHTML=unsupportedMsg,root.setAttribute("id","")}</script><script>!function(e){function r(r){for(var n,f,i=r[0],l=r[1],p=r[2],c=0,s=[];c<i.length;c++)f=i[c],Object.prototype.hasOwnProperty.call(o,f)&&o[f]&&s.push(o[f][0]),o[f]=0;for(n in l)Object.prototype.hasOwnProperty.call(l,n)&&(e[n]=l[n]);for(a&&a(r);s.length;)s.shift()();return u.push.apply(u,p||[]),t()}function t(){for(var e,r=0;r<u.length;r++){for(var t=u[r],n=!0,i=1;i<t.length;i++){var l=t[i];0!==o[l]&&(n=!1)}n&&(u.splice(r--,1),e=f(f.s=t[0]))}return e}var n={},o={1:0},u=[];function f(r){if(n[r])return n[r].exports;var t=n[r]={i:r,l:!1,exports:{}};return e[r].call(t.exports,t,t.exports,f),t.l=!0,t.exports}f.m=e,f.c=n,f.d=function(e,r,t){f.o(e,r)||Object.defineProperty(e,r,{enumerable:!0,get:t})},f.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},f.t=function(e,r){if(1&r&&(e=f(e)),8&r)return e;if(4&r&&"object"==typeof e&&e&&e.__esModule)return e;var t=Object.create(null);if(f.r(t),Object.defineProperty(t,"default",{enumerable:!0,value:e}),2&r&&"string"!=typeof e)for(var n in e)f.d(t,n,function(r){return e[r]}.bind(null,n));return t},f.n=function(e){var r=e&&e.__esModule?function(){return e.default}:function(){return e};return f.d(r,"a",r),r},f.o=function(e,r){return Object.prototype.hasOwnProperty.call(e,r)},f.p="/";var i=this.webpackJsonppifi_frontend=this.webpackJsonppifi_frontend||[],l=i.push.bind(i);i.push=r,i=i.slice();for(var p=0;p<i.length;p++)r(i[p]);var a=l;t()}([])</script><script src="/static/js/2.2b05662c.chunk.js"></script><script src="/static/js/main.6b4db225.chunk.js"></script></body></html>
|
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
{
|
|
2
|
+
"about": "About",
|
|
3
|
+
"cancel": "Cancel",
|
|
4
|
+
"close": "Close",
|
|
5
|
+
"coffee": "If you like PiFi Radio, you can show your support buying me a coffee.",
|
|
6
|
+
"disconnectedMPD": "Not connected to MPD",
|
|
7
|
+
"environment": "Environment",
|
|
8
|
+
"errorForbidden": "Forbidden request. Check MPD password and permissions.",
|
|
2
9
|
"errorNetwork": "Not connected to PiFi server",
|
|
3
|
-
"errorUnexpected": "An unexpected error occurred.",
|
|
4
10
|
"errorNotFound": "The stream was not found.",
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"close": "Close",
|
|
8
|
-
"ok": "OK",
|
|
9
|
-
"cancel": "Cancel",
|
|
10
|
-
"search": "Search...",
|
|
11
|
-
"playing": "Playing",
|
|
12
|
-
"stopped": "Stopped",
|
|
13
|
-
"tunning": "Tunning...",
|
|
14
|
-
"noStreams": "No stations available.",
|
|
15
|
-
"settings": "Settings",
|
|
16
|
-
"theme": "Theme",
|
|
11
|
+
"errorUnexpected": "An unexpected error occurred.",
|
|
12
|
+
"goToDocs": "Go to documentation",
|
|
17
13
|
"language": "Language",
|
|
18
|
-
"about": "About",
|
|
19
14
|
"mpdHost": "MPD host",
|
|
20
15
|
"mpdPort": "MPD port",
|
|
21
|
-
"
|
|
22
|
-
"
|
|
16
|
+
"noStreams": "No stations available.",
|
|
17
|
+
"ok": "OK",
|
|
18
|
+
"playing": "Playing",
|
|
23
19
|
"playURL": "Play URL",
|
|
20
|
+
"search": "Search...",
|
|
21
|
+
"settings": "Settings",
|
|
22
|
+
"stopped": "Stopped",
|
|
23
|
+
"theme": "Theme",
|
|
24
24
|
"tryingURL": "Trying to play URL...",
|
|
25
|
+
"tunning": "Tunning...",
|
|
26
|
+
"version": "Version",
|
|
25
27
|
"volume": "Volume"
|
|
26
28
|
}
|
|
@@ -1,7 +1,28 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
2
|
+
"about": "",
|
|
3
|
+
"cancel": "",
|
|
4
|
+
"close": "",
|
|
5
|
+
"coffee": "",
|
|
3
6
|
"disconnectedMPD": "Déconnecté de MPD",
|
|
7
|
+
"environment": "",
|
|
8
|
+
"errorForbidden": "",
|
|
9
|
+
"errorNetwork": "Pas de connexion",
|
|
10
|
+
"errorNotFound": "",
|
|
11
|
+
"errorUnexpected": "",
|
|
12
|
+
"goToDocs": "",
|
|
13
|
+
"language": "",
|
|
14
|
+
"mpdHost": "",
|
|
15
|
+
"mpdPort": "",
|
|
16
|
+
"noStreams": "",
|
|
17
|
+
"ok": "",
|
|
4
18
|
"playing": "Lecture",
|
|
19
|
+
"playURL": "",
|
|
20
|
+
"search": "",
|
|
21
|
+
"settings": "",
|
|
5
22
|
"stopped": "Arrêté",
|
|
6
|
-
"
|
|
23
|
+
"theme": "",
|
|
24
|
+
"tryingURL": "",
|
|
25
|
+
"tunning": "Mise en tampon…",
|
|
26
|
+
"version": "",
|
|
27
|
+
"volume": ""
|
|
7
28
|
}
|
|
@@ -1,7 +1,28 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
2
|
+
"about": "",
|
|
3
|
+
"cancel": "",
|
|
4
|
+
"close": "",
|
|
5
|
+
"coffee": "",
|
|
3
6
|
"disconnectedMPD": "Niet verbonden met MPD",
|
|
7
|
+
"environment": "",
|
|
8
|
+
"errorForbidden": "",
|
|
9
|
+
"errorNetwork": "Geen verbinding",
|
|
10
|
+
"errorNotFound": "",
|
|
11
|
+
"errorUnexpected": "",
|
|
12
|
+
"goToDocs": "",
|
|
13
|
+
"language": "",
|
|
14
|
+
"mpdHost": "",
|
|
15
|
+
"mpdPort": "",
|
|
16
|
+
"noStreams": "",
|
|
17
|
+
"ok": "",
|
|
4
18
|
"playing": "Aan het afspelen",
|
|
19
|
+
"playURL": "",
|
|
20
|
+
"search": "",
|
|
21
|
+
"settings": "",
|
|
5
22
|
"stopped": "Gestopt",
|
|
6
|
-
"
|
|
23
|
+
"theme": "",
|
|
24
|
+
"tryingURL": "",
|
|
25
|
+
"tunning": "Bezig met verbinden...",
|
|
26
|
+
"version": "",
|
|
27
|
+
"volume": ""
|
|
7
28
|
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
{
|
|
2
|
+
"about": "O projekcie",
|
|
3
|
+
"cancel": "Anuluj",
|
|
4
|
+
"close": "Zamknij",
|
|
5
|
+
"coffee": "",
|
|
6
|
+
"disconnectedMPD": "Nie połączono z MPD",
|
|
7
|
+
"environment": "Środowisko",
|
|
8
|
+
"errorForbidden": "Niedozwolone żądanie. Sprawdź hasło i uprawnienia MPD.",
|
|
9
|
+
"errorNetwork": "Nie połączono z serwerem PiFi",
|
|
10
|
+
"errorNotFound": "Strumień nie znaleziony.",
|
|
11
|
+
"errorUnexpected": "Nieoczekiwany błąd.",
|
|
12
|
+
"goToDocs": "",
|
|
13
|
+
"language": "Język",
|
|
14
|
+
"mpdHost": "MPD host",
|
|
15
|
+
"mpdPort": "MPD port",
|
|
16
|
+
"noStreams": "Brak dostępnych stacji.",
|
|
17
|
+
"ok": "OK",
|
|
18
|
+
"playing": "Odtwarzanie",
|
|
19
|
+
"playURL": "Odtwórz URL",
|
|
20
|
+
"search": "Szukaj...",
|
|
21
|
+
"settings": "Ustawienia",
|
|
22
|
+
"stopped": "Zatrzymano",
|
|
23
|
+
"theme": "Motyw",
|
|
24
|
+
"tryingURL": "Próba odtworzenia URL...",
|
|
25
|
+
"tunning": "Strojenie...",
|
|
26
|
+
"version": "Wersja",
|
|
27
|
+
"volume": "Głośność"
|
|
28
|
+
}
|
|
@@ -1,26 +1,28 @@
|
|
|
1
1
|
{
|
|
2
|
+
"about": "Sobre",
|
|
3
|
+
"cancel": "Cancelar",
|
|
4
|
+
"close": "Fechar",
|
|
5
|
+
"coffee": "Se você gosta do PiFi Radio, pode mostrar seu apoio comprando-me um café.",
|
|
6
|
+
"disconnectedMPD": "Sem conexão ao MPD",
|
|
7
|
+
"environment": "Ambiente",
|
|
8
|
+
"errorForbidden": "Requisição não permitida. Verifique a senha do MPD e permissões.",
|
|
2
9
|
"errorNetwork": "Sem conexão ao servidor PiFi",
|
|
3
|
-
"errorUnexpected": "Um erro inesperado ocorreu.",
|
|
4
10
|
"errorNotFound": "Não foi possível encontrar o stream.",
|
|
5
|
-
"
|
|
6
|
-
"
|
|
7
|
-
"
|
|
11
|
+
"errorUnexpected": "Um erro inesperado ocorreu.",
|
|
12
|
+
"goToDocs": "Ver documentação",
|
|
13
|
+
"language": "Idioma",
|
|
14
|
+
"mpdHost": "Host do MPD",
|
|
15
|
+
"mpdPort": "Porta do MPD",
|
|
16
|
+
"noStreams": "Não há rádios disponíveis.",
|
|
8
17
|
"ok": "OK",
|
|
9
|
-
"cancel": "Cancelar",
|
|
10
|
-
"search": "Buscar...",
|
|
11
18
|
"playing": "Tocando",
|
|
12
|
-
"stopped": "Parado",
|
|
13
|
-
"tunning": "Sintonizando...",
|
|
14
|
-
"noStreams": "Não há rádios disponíveis.",
|
|
15
19
|
"playURL": "Tocar URL",
|
|
16
|
-
"
|
|
20
|
+
"search": "Buscar...",
|
|
17
21
|
"settings": "Ajustes",
|
|
22
|
+
"stopped": "Parado",
|
|
18
23
|
"theme": "Tema",
|
|
19
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"mpdHost": "Host do MPD",
|
|
22
|
-
"mpdPort": "Porta do MPD",
|
|
23
|
-
"environment": "Ambiente",
|
|
24
|
+
"tryingURL": "Tentando tocar URL...",
|
|
25
|
+
"tunning": "Sintonizando...",
|
|
24
26
|
"version": "Versão",
|
|
25
27
|
"volume": "Volume"
|
|
26
28
|
}
|