pifi 0.4.9 → 0.4.14
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/INSTALL.md +3 -3
- data/README.md +21 -10
- data/lib/pifi/public/asset-manifest.json +14 -14
- data/lib/pifi/public/index.html +1 -1
- data/lib/pifi/public/locales/{en → en-US}/translation.json +0 -0
- data/lib/pifi/public/{precache-manifest.fcc3d04ae31f62d65a121704ace339bd.js → precache-manifest.a42dd152c6982ffc7cb91240d1006fe8.js} +10 -10
- data/lib/pifi/public/service-worker.js +1 -1
- data/lib/pifi/public/static/css/2.1781c263.chunk.css +2 -0
- data/lib/pifi/public/static/css/2.1781c263.chunk.css.map +1 -0
- data/lib/pifi/public/static/css/main.2ea3c026.chunk.css +2 -0
- data/lib/pifi/public/static/css/main.2ea3c026.chunk.css.map +1 -0
- data/lib/pifi/public/static/js/2.5ec5bba8.chunk.js +3 -0
- data/lib/pifi/public/static/js/{2.6c0ded8a.chunk.js.LICENSE.txt → 2.5ec5bba8.chunk.js.LICENSE.txt} +0 -0
- data/lib/pifi/public/static/js/2.5ec5bba8.chunk.js.map +1 -0
- data/lib/pifi/public/static/js/main.f8812632.chunk.js +2 -0
- data/lib/pifi/public/static/js/main.f8812632.chunk.js.map +1 -0
- data/lib/pifi/public/vendor/bootswatch_4.4.1/darkly.min.css +12 -0
- data/lib/pifi/public/vendor/bootswatch_4.4.1/lux.min.css +12 -0
- data/lib/pifi/version.rb +1 -1
- metadata +19 -17
- data/lib/pifi/public/static/css/2.d34346ea.chunk.css +0 -2
- data/lib/pifi/public/static/css/2.d34346ea.chunk.css.map +0 -1
- data/lib/pifi/public/static/css/main.221e80d3.chunk.css +0 -2
- data/lib/pifi/public/static/css/main.221e80d3.chunk.css.map +0 -1
- data/lib/pifi/public/static/js/2.6c0ded8a.chunk.js +0 -3
- data/lib/pifi/public/static/js/2.6c0ded8a.chunk.js.map +0 -1
- data/lib/pifi/public/static/js/main.6c9ebb8a.chunk.js +0 -2
- data/lib/pifi/public/static/js/main.6c9ebb8a.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: 8dc0a4f510d889f6eed7ec596681e0d661dd69dc935b92a6d6c9daba74c4a5dd
|
4
|
+
data.tar.gz: 3101dd320d96e559079b36cba95eb2d8c183cc63d749db20f5eb72c858d14e2f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0f17da06e70a8ee4245d9806743ff5f65ac878b735a30ac3c05621fb03404ffc032e3fbf6a1a4efa74984330f520e557ef787c55e2912df30f8f4869518c2d27
|
7
|
+
data.tar.gz: 7252e0ce4b9c7d919cdbd475345d53904495ec1bc05140e60b23d5f7e6bb0047efc2f271720f89425c8f1d2b75213a5d248dba480f9273b9b1a32e68ddacbbf3
|
data/INSTALL.md
CHANGED
@@ -26,7 +26,7 @@ $ sudo gem install pifi --no-document
|
|
26
26
|
|
27
27
|
```
|
28
28
|
$ sudo mkdir -p /etc/pifi
|
29
|
-
$ sudo wget https://raw.githubusercontent.com/
|
29
|
+
$ sudo wget https://raw.githubusercontent.com/rc2dev/pifi-radio/master/docs/streams.json.sample -O /etc/pifi/streams.json
|
30
30
|
```
|
31
31
|
|
32
32
|
_Later, you can edit that list [as described here](README.md#list-of-streams)._
|
@@ -36,7 +36,7 @@ _Later, you can edit that list [as described here](README.md#list-of-streams)._
|
|
36
36
|
Download a sample and edit [following the documentation](README.md#pifi-configuration):
|
37
37
|
|
38
38
|
```
|
39
|
-
$ sudo wget https://raw.githubusercontent.com/
|
39
|
+
$ sudo wget https://raw.githubusercontent.com/rc2dev/pifi-radio/master/docs/config.json.sample -O /etc/pifi/config.json
|
40
40
|
$ sudo -e /etc/pifi/config.json
|
41
41
|
```
|
42
42
|
|
@@ -49,7 +49,7 @@ It makes sense to run PiFi as a different user, such as `www-data`. You may also
|
|
49
49
|
1. Download the service sample.
|
50
50
|
|
51
51
|
```
|
52
|
-
$ sudo wget https://raw.githubusercontent.com/
|
52
|
+
$ sudo wget https://raw.githubusercontent.com/rc2dev/pifi-radio/master/docs/pifi.service.sample -O /etc/systemd/system/pifi.service
|
53
53
|
```
|
54
54
|
|
55
55
|
2. Make any changes relevant to your system.
|
data/README.md
CHANGED
@@ -1,10 +1,12 @@
|
|
1
1
|
# PiFi Radio
|
2
2
|
|
3
3
|
<p align="center">
|
4
|
-
<img src="https://raw.githubusercontent.com/
|
4
|
+
<img src="https://raw.githubusercontent.com/rc2dev/pifi-radio/master/docs/icon/radio-original.svg?sanitize=true" width=250>
|
5
5
|
</p>
|
6
6
|
<p align="center">PiFi Radio: A MPD web client to listen to radio.</p>
|
7
7
|
|
8
|
+
**Notice:** This project was archived in July 2021 and shouldn't receive updates in the foreseeable future.
|
9
|
+
|
8
10
|
## Table of contents
|
9
11
|
|
10
12
|
- [Meet PiFi Radio](#meet-pifi-radio)
|
@@ -17,6 +19,7 @@
|
|
17
19
|
- [PiFi configuration](#pifi-configuration)
|
18
20
|
- [Usage](#usage)
|
19
21
|
- [Help me translate](#help-me-translate)
|
22
|
+
- [Some projects using PiFi Radio](#some-projects-using-pifi-radio)
|
20
23
|
- [Credits](#credits)
|
21
24
|
- [Buy me a coffee](#buy-me-a-coffee)
|
22
25
|
- [License](#license)
|
@@ -29,7 +32,7 @@ If you have no idea what this means... You install it on a device such as the Ra
|
|
29
32
|
|
30
33
|
PiFi is an interface for MPD, so it has some advantages compared to other solutions, e.g. bluetooth or AirPlay. One of them is that the playback is completely independent from your phone. So you can continue to use it normally, play a video, lose connection or even turn it off, and your Pi will still continue to play the radio.
|
31
34
|
|
32
|
-
[I started this project in early 2017. At that time, I wanted to configure Raspbian so my parents could listen to radio with ease, but couldn't find any good solution to it.](https://rafaelc.org/
|
35
|
+
[I started this project in early 2017. At that time, I wanted to configure Raspbian so my parents could listen to radio with ease, but couldn't find any good solution to it.](https://rafaelc.org/posts/the-motivation-for-pifi-radio/)
|
33
36
|
|
34
37
|
## Some features
|
35
38
|
|
@@ -46,11 +49,15 @@ PiFi is an interface for MPD, so it has some advantages compared to other soluti
|
|
46
49
|
|
47
50
|
## Demo
|
48
51
|
|
49
|
-
|
52
|
+
On phone:
|
53
|
+
|
54
|
+
![Demo on mobile](docs/demo/mobile.gif)
|
55
|
+
|
56
|
+
On desktop:
|
50
57
|
|
51
|
-
![](docs/demo/desktop-01.png)
|
58
|
+
![Demo on desktop](docs/demo/desktop-01.png)
|
52
59
|
|
53
|
-
![](docs/demo/desktop-02.png)
|
60
|
+
![Demo on desktop](docs/demo/desktop-02.png)
|
54
61
|
|
55
62
|
## Installation
|
56
63
|
|
@@ -119,7 +126,7 @@ If you want to change any of these options, download the sample file and edit it
|
|
119
126
|
|
120
127
|
```
|
121
128
|
$ sudo mkdir -p /etc/pifi
|
122
|
-
$ sudo wget https://raw.githubusercontent.com/
|
129
|
+
$ sudo wget https://raw.githubusercontent.com/rc2dev/pifi-radio/master/docs/config.json.sample -O /etc/pifi/config.json
|
123
130
|
$ sudo -e /etc/pifi/config.json
|
124
131
|
```
|
125
132
|
|
@@ -135,13 +142,13 @@ On your mobile browser, I suggest you add PiFi Radio to your home screen, for ea
|
|
135
142
|
|
136
143
|
## Help me translate
|
137
144
|
|
138
|
-
You can help me adding a new language to PiFi or improving an existing translation. [The translation files are placed here.](https://github.com/
|
145
|
+
You can help me adding a new language to PiFi or improving an existing translation. [The translation files are placed here.](https://github.com/rc2dev/pifi-radio/tree/master/frontend/public/locales)
|
139
146
|
|
140
147
|
### Improving an existing translation
|
141
148
|
|
142
149
|
The default language for PiFi is English, so you should use it as a reference.
|
143
150
|
|
144
|
-
1. Open [the translation file](https://github.com/
|
151
|
+
1. Open [the translation file](https://github.com/rc2dev/pifi-radio/tree/master/frontend/public/locales) and [the English file](https://github.com/rc2dev/pifi-radio/blob/master/frontend/public/locales/en-US/translation.json).
|
145
152
|
2. Fill empty strings and fix any bad translations.
|
146
153
|
3. Send a pull request.
|
147
154
|
|
@@ -151,6 +158,10 @@ The default language for PiFi is English, so you should use it as a reference.
|
|
151
158
|
2. On `translation.json`, translate the strings. If you aren't sure of some, please make them empty.
|
152
159
|
3. Send a pull request.
|
153
160
|
|
161
|
+
## Some projects using PiFi Radio
|
162
|
+
|
163
|
+
- [Internet Radio from broken Bose Dockstation](https://piamble.wordpress.com/2021/01/30/internet-radio-from-broken-bose-dockstation-part-1/)
|
164
|
+
|
154
165
|
## Credits
|
155
166
|
|
156
167
|
- de-de: [cedege](https://github.com/cedege)
|
@@ -164,10 +175,10 @@ The default language for PiFi is English, so you should use it as a reference.
|
|
164
175
|
|
165
176
|
If you find PiFi useful, you can show your support here:
|
166
177
|
|
167
|
-
<a href="https://
|
178
|
+
<a href="https://rafaelc.org/coffee" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/default-orange.png" alt="Buy Me A Coffee" width="200" ></a>
|
168
179
|
|
169
180
|
## License
|
170
181
|
|
171
182
|
Licensed under [GPLv3](LICENSE)
|
172
183
|
|
173
|
-
Copyright (C) 2017-
|
184
|
+
Copyright (C) 2017-2021 [Rafael Cavalcanti](https://rafaelc.org/)
|
@@ -1,27 +1,27 @@
|
|
1
1
|
{
|
2
2
|
"files": {
|
3
|
-
"main.css": "/static/css/main.
|
4
|
-
"main.js": "/static/js/main.
|
5
|
-
"main.js.map": "/static/js/main.
|
3
|
+
"main.css": "/static/css/main.2ea3c026.chunk.css",
|
4
|
+
"main.js": "/static/js/main.f8812632.chunk.js",
|
5
|
+
"main.js.map": "/static/js/main.f8812632.chunk.js.map",
|
6
6
|
"runtime-main.js": "/static/js/runtime-main.5aae5a31.js",
|
7
7
|
"runtime-main.js.map": "/static/js/runtime-main.5aae5a31.js.map",
|
8
|
-
"static/css/2.
|
9
|
-
"static/js/2.
|
10
|
-
"static/js/2.
|
8
|
+
"static/css/2.1781c263.chunk.css": "/static/css/2.1781c263.chunk.css",
|
9
|
+
"static/js/2.5ec5bba8.chunk.js": "/static/js/2.5ec5bba8.chunk.js",
|
10
|
+
"static/js/2.5ec5bba8.chunk.js.map": "/static/js/2.5ec5bba8.chunk.js.map",
|
11
11
|
"index.html": "/index.html",
|
12
|
-
"precache-manifest.
|
12
|
+
"precache-manifest.a42dd152c6982ffc7cb91240d1006fe8.js": "/precache-manifest.a42dd152c6982ffc7cb91240d1006fe8.js",
|
13
13
|
"service-worker.js": "/service-worker.js",
|
14
|
-
"static/css/2.
|
15
|
-
"static/css/main.
|
16
|
-
"static/js/2.
|
14
|
+
"static/css/2.1781c263.chunk.css.map": "/static/css/2.1781c263.chunk.css.map",
|
15
|
+
"static/css/main.2ea3c026.chunk.css.map": "/static/css/main.2ea3c026.chunk.css.map",
|
16
|
+
"static/js/2.5ec5bba8.chunk.js.LICENSE.txt": "/static/js/2.5ec5bba8.chunk.js.LICENSE.txt",
|
17
17
|
"static/media/getFetch.cjs": "/static/media/getFetch.5e98861f.cjs",
|
18
18
|
"static/media/logo.svg": "/static/media/logo.91554ce9.svg"
|
19
19
|
},
|
20
20
|
"entrypoints": [
|
21
21
|
"static/js/runtime-main.5aae5a31.js",
|
22
|
-
"static/css/2.
|
23
|
-
"static/js/2.
|
24
|
-
"static/css/main.
|
25
|
-
"static/js/main.
|
22
|
+
"static/css/2.1781c263.chunk.css",
|
23
|
+
"static/js/2.5ec5bba8.chunk.js",
|
24
|
+
"static/css/main.2ea3c026.chunk.css",
|
25
|
+
"static/js/main.f8812632.chunk.js"
|
26
26
|
]
|
27
27
|
}
|
data/lib/pifi/public/index.html
CHANGED
@@ -1 +1 @@
|
|
1
|
-
<!doctype html><html><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"><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
|
1
|
+
<!doctype html><html><head><meta charset="utf-8"/><link rel="icon" href="/favicon.ico"/><meta name="viewport" content="width=device-width,initial-scale=1"><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 href="/vendor/bootswatch_4.4.1/darkly.min.css" rel="stylesheet" title="theme"><link href="/static/css/2.1781c263.chunk.css" rel="stylesheet"><link href="/static/css/main.2ea3c026.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.5ec5bba8.chunk.js"></script><script src="/static/js/main.f8812632.chunk.js"></script></body></html>
|
File without changes
|
@@ -1,27 +1,27 @@
|
|
1
1
|
self.__precacheManifest = (self.__precacheManifest || []).concat([
|
2
2
|
{
|
3
|
-
"revision": "
|
3
|
+
"revision": "b52ffd0f5c21c7659977d90fb6a93361",
|
4
4
|
"url": "/index.html"
|
5
5
|
},
|
6
6
|
{
|
7
|
-
"revision": "
|
8
|
-
"url": "/static/css/2.
|
7
|
+
"revision": "05854d9f510491a51187",
|
8
|
+
"url": "/static/css/2.1781c263.chunk.css"
|
9
9
|
},
|
10
10
|
{
|
11
|
-
"revision": "
|
12
|
-
"url": "/static/css/main.
|
11
|
+
"revision": "8eb89bf3b60bc6bf67ca",
|
12
|
+
"url": "/static/css/main.2ea3c026.chunk.css"
|
13
13
|
},
|
14
14
|
{
|
15
|
-
"revision": "
|
16
|
-
"url": "/static/js/2.
|
15
|
+
"revision": "05854d9f510491a51187",
|
16
|
+
"url": "/static/js/2.5ec5bba8.chunk.js"
|
17
17
|
},
|
18
18
|
{
|
19
19
|
"revision": "ed4400b9109211e81cc70e71e3c03c2c",
|
20
|
-
"url": "/static/js/2.
|
20
|
+
"url": "/static/js/2.5ec5bba8.chunk.js.LICENSE.txt"
|
21
21
|
},
|
22
22
|
{
|
23
|
-
"revision": "
|
24
|
-
"url": "/static/js/main.
|
23
|
+
"revision": "8eb89bf3b60bc6bf67ca",
|
24
|
+
"url": "/static/js/main.f8812632.chunk.js"
|
25
25
|
},
|
26
26
|
{
|
27
27
|
"revision": "af7ed8886109d8666769",
|
@@ -14,7 +14,7 @@
|
|
14
14
|
importScripts("https://storage.googleapis.com/workbox-cdn/releases/4.3.1/workbox-sw.js");
|
15
15
|
|
16
16
|
importScripts(
|
17
|
-
"/precache-manifest.
|
17
|
+
"/precache-manifest.a42dd152c6982ffc7cb91240d1006fe8.js"
|
18
18
|
);
|
19
19
|
|
20
20
|
self.addEventListener('message', (event) => {
|
@@ -0,0 +1,2 @@
|
|
1
|
+
.Toastify__toast-container{z-index:9999;-webkit-transform:translateZ(9999px);position:fixed;padding:4px;width:320px;box-sizing:border-box;color:#fff}.Toastify__toast-container--top-left{top:1em;left:1em}.Toastify__toast-container--top-center{top:1em;left:50%;transform:translateX(-50%)}.Toastify__toast-container--top-right{top:1em;right:1em}.Toastify__toast-container--bottom-left{bottom:1em;left:1em}.Toastify__toast-container--bottom-center{bottom:1em;left:50%;transform:translateX(-50%)}.Toastify__toast-container--bottom-right{bottom:1em;right:1em}@media only screen and (max-width:480px){.Toastify__toast-container{width:100vw;padding:0;left:0;margin:0}.Toastify__toast-container--top-center,.Toastify__toast-container--top-left,.Toastify__toast-container--top-right{top:0;transform:translateX(0)}.Toastify__toast-container--bottom-center,.Toastify__toast-container--bottom-left,.Toastify__toast-container--bottom-right{bottom:0;transform:translateX(0)}.Toastify__toast-container--rtl{right:0;left:auto}}.Toastify__toast{position:relative;min-height:64px;box-sizing:border-box;margin-bottom:1rem;padding:8px;border-radius:1px;box-shadow:0 1px 10px 0 rgba(0,0,0,.1),0 2px 15px 0 rgba(0,0,0,.05);display:flex;justify-content:space-between;max-height:800px;overflow:hidden;font-family:sans-serif;cursor:pointer;direction:ltr}.Toastify__toast--rtl{direction:rtl}.Toastify__toast--dark{background:#121212;color:#fff}.Toastify__toast--default{background:#fff;color:#aaa}.Toastify__toast--info{background:#3498db}.Toastify__toast--success{background:#07bc0c}.Toastify__toast--warning{background:#f1c40f}.Toastify__toast--error{background:#e74c3c}.Toastify__toast-body{margin:auto 0;flex:1 1 auto}@media only screen and (max-width:480px){.Toastify__toast{margin-bottom:0}}.Toastify__close-button{color:#fff;background:transparent;outline:none;border:none;padding:0;cursor:pointer;opacity:.7;transition:.3s ease;align-self:flex-start}.Toastify__close-button--default{color:#000;opacity:.3}.Toastify__close-button>svg{fill:currentColor;height:16px;width:14px}.Toastify__close-button:focus,.Toastify__close-button:hover{opacity:1}@keyframes Toastify__trackProgress{0%{transform:scaleX(1)}to{transform:scaleX(0)}}.Toastify__progress-bar{position:absolute;bottom:0;left:0;width:100%;height:5px;z-index:9999;opacity:.7;background-color:hsla(0,0%,100%,.7);transform-origin:left}.Toastify__progress-bar--animated{animation:Toastify__trackProgress linear 1 forwards}.Toastify__progress-bar--controlled{transition:transform .2s}.Toastify__progress-bar--rtl{right:0;left:auto;transform-origin:right}.Toastify__progress-bar--default{background:linear-gradient(90deg,#4cd964,#5ac8fa,#007aff,#34aadc,#5856d6,#ff2d55)}.Toastify__progress-bar--dark{background:#bb86fc}@keyframes Toastify__bounceInRight{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(3000px,0,0)}60%{opacity:1;transform:translate3d(-25px,0,0)}75%{transform:translate3d(10px,0,0)}90%{transform:translate3d(-5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutRight{20%{opacity:1;transform:translate3d(-20px,0,0)}to{opacity:0;transform:translate3d(2000px,0,0)}}@keyframes Toastify__bounceInLeft{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(-3000px,0,0)}60%{opacity:1;transform:translate3d(25px,0,0)}75%{transform:translate3d(-10px,0,0)}90%{transform:translate3d(5px,0,0)}to{transform:none}}@keyframes Toastify__bounceOutLeft{20%{opacity:1;transform:translate3d(20px,0,0)}to{opacity:0;transform:translate3d(-2000px,0,0)}}@keyframes Toastify__bounceInUp{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,3000px,0)}60%{opacity:1;transform:translate3d(0,-20px,0)}75%{transform:translate3d(0,10px,0)}90%{transform:translate3d(0,-5px,0)}to{transform:translateZ(0)}}@keyframes Toastify__bounceOutUp{20%{transform:translate3d(0,-10px,0)}40%,45%{opacity:1;transform:translate3d(0,20px,0)}to{opacity:0;transform:translate3d(0,-2000px,0)}}@keyframes Toastify__bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes Toastify__bounceOutDown{20%{transform:translate3d(0,10px,0)}40%,45%{opacity:1;transform:translate3d(0,-20px,0)}to{opacity:0;transform:translate3d(0,2000px,0)}}.Toastify__bounce-enter--bottom-left,.Toastify__bounce-enter--top-left{animation-name:Toastify__bounceInLeft}.Toastify__bounce-enter--bottom-right,.Toastify__bounce-enter--top-right{animation-name:Toastify__bounceInRight}.Toastify__bounce-enter--top-center{animation-name:Toastify__bounceInDown}.Toastify__bounce-enter--bottom-center{animation-name:Toastify__bounceInUp}.Toastify__bounce-exit--bottom-left,.Toastify__bounce-exit--top-left{animation-name:Toastify__bounceOutLeft}.Toastify__bounce-exit--bottom-right,.Toastify__bounce-exit--top-right{animation-name:Toastify__bounceOutRight}.Toastify__bounce-exit--top-center{animation-name:Toastify__bounceOutUp}.Toastify__bounce-exit--bottom-center{animation-name:Toastify__bounceOutDown}@keyframes Toastify__zoomIn{0%{opacity:0;transform:scale3d(.3,.3,.3)}50%{opacity:1}}@keyframes Toastify__zoomOut{0%{opacity:1}50%{opacity:0;transform:scale3d(.3,.3,.3)}to{opacity:0}}.Toastify__zoom-enter{animation-name:Toastify__zoomIn}.Toastify__zoom-exit{animation-name:Toastify__zoomOut}@keyframes Toastify__flipIn{0%{transform:perspective(400px) rotateX(90deg);animation-timing-function:ease-in;opacity:0}40%{transform:perspective(400px) rotateX(-20deg);animation-timing-function:ease-in}60%{transform:perspective(400px) rotateX(10deg);opacity:1}80%{transform:perspective(400px) rotateX(-5deg)}to{transform:perspective(400px)}}@keyframes Toastify__flipOut{0%{transform:perspective(400px)}30%{transform:perspective(400px) rotateX(-20deg);opacity:1}to{transform:perspective(400px) rotateX(90deg);opacity:0}}.Toastify__flip-enter{animation-name:Toastify__flipIn}.Toastify__flip-exit{animation-name:Toastify__flipOut}@keyframes Toastify__slideInRight{0%{transform:translate3d(110%,0,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInLeft{0%{transform:translate3d(-110%,0,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInUp{0%{transform:translate3d(0,110%,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideInDown{0%{transform:translate3d(0,-110%,0);visibility:visible}to{transform:translateZ(0)}}@keyframes Toastify__slideOutRight{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(110%,0,0)}}@keyframes Toastify__slideOutLeft{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(-110%,0,0)}}@keyframes Toastify__slideOutDown{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(0,500px,0)}}@keyframes Toastify__slideOutUp{0%{transform:translateZ(0)}to{visibility:hidden;transform:translate3d(0,-500px,0)}}.Toastify__slide-enter--bottom-left,.Toastify__slide-enter--top-left{animation-name:Toastify__slideInLeft}.Toastify__slide-enter--bottom-right,.Toastify__slide-enter--top-right{animation-name:Toastify__slideInRight}.Toastify__slide-enter--top-center{animation-name:Toastify__slideInDown}.Toastify__slide-enter--bottom-center{animation-name:Toastify__slideInUp}.Toastify__slide-exit--bottom-left,.Toastify__slide-exit--top-left{animation-name:Toastify__slideOutLeft}.Toastify__slide-exit--bottom-right,.Toastify__slide-exit--top-right{animation-name:Toastify__slideOutRight}.Toastify__slide-exit--top-center{animation-name:Toastify__slideOutUp}.Toastify__slide-exit--bottom-center{animation-name:Toastify__slideOutDown}
|
2
|
+
/*# sourceMappingURL=2.1781c263.chunk.css.map */
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["../scss/_toastContainer.scss","../scss/_variables.scss","ReactToastify.css","../scss/_toast.scss","../scss/_closeButton.scss","../scss/_progressBar.scss","../scss/animations/_bounce.scss","../scss/animations/_zoom.scss","../scss/animations/_flip.scss","../scss/animations/_slide.scss"],"names":[],"mappings":"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","file":"2.1781c263.chunk.css"}
|
@@ -0,0 +1,2 @@
|
|
1
|
+
.navbar{position:-webkit-sticky!important;position:sticky!important;top:0;z-index:5;margin-bottom:2rem;padding:.8rem 1rem;min-height:4.7793rem}.loader{height:100vh}.backdrop,.loader{z-index:10;display:flex;justify-content:center;align-items:center}.backdrop{position:fixed;width:100%;height:100%;background-color:#222;opacity:0;visibility:hidden;transition:all .2s ease;cursor:default;flex-direction:column;text-align:center}.backdrop--visible{opacity:.94;visibility:visible}.body--backdrop{overflow:hidden}.player{width:100%;max-width:450px;display:flex;flex-direction:column;justify-content:space-between;align-items:center}.player-logo{width:130px}@media (max-height:430px){.player-logo{display:none}}.streams{max-width:450px}.streams__header{font-size:1.3rem;margin-top:1em;padding:.5rem 1.25rem}.streams__item{padding:0}.streams__btn{padding:.75rem 1.25rem;width:100%;text-align:left}.active .streams__btn{color:#fff}.mini-player{display:flex;align-items:center;justify-content:space-between}.mini-player button{padding:10px 20px}.mini-player__left{max-width:calc(100vw - 160px);margin-right:1rem}.drawer{z-index:5!important;height:5rem;cursor:pointer;touch-action:none;display:flex;align-items:center;transition:height .25s ease-out}.drawer>.mini-player{flex-grow:1;margin:0 .5rem 0 .25rem}.drawer--open{height:100%;flex-direction:column;justify-content:flex-end}.drawer--open .player{flex-grow:1}.drawer--open .drawer__toggler{margin-bottom:20px}@media (max-width:770px){.body--drawer{overflow:hidden}}.main__primary{padding-bottom:7rem}.main__primary .player{display:none}.main__primary .streams{margin:0 auto}@media (min-width:770px){.main__primary{padding-bottom:2rem;display:flex;justify-content:space-between}.main__primary>*{min-width:0;width:100%}.main__primary .player{display:inherit;position:-webkit-sticky;position:sticky;top:6.7793rem;margin-left:2rem;height:calc(100vh - 8.7793rem);max-height:550px}.main__primary .streams{margin:0}.drawer{display:none}}html{height:100%}body{min-height:100%;overflow-y:scroll}button[disabled]{cursor:default}.ellipsis{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
|
2
|
+
/*# sourceMappingURL=main.2ea3c026.chunk.css.map */
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"sources":["navBar.scss","../_variables.scss","loader.scss","backdrop.scss","player.scss","streams.scss","miniPlayer.scss","drawer.scss","main.scss","index.scss"],"names":[],"mappings":"AAEA,QACE,iCAA2B,CAA3B,yBAA2B,CAC3B,KAAM,CACN,SAAU,CACV,kBCFe,CDKf,kBAAoB,CAEpB,oBCRoB,CCHtB,QAKE,YAAa,CCLf,kBDCE,UAAW,CACX,YAAa,CACb,sBAAuB,CACvB,kBCUkB,CAdpB,UAEE,cAAe,CACf,UAAW,CACX,WAAY,CACZ,qBAAyB,CACzB,SAAU,CACV,iBAAkB,CAClB,uBAAyB,CACzB,cAAe,CAEf,qBAAsB,CAGtB,iBAAkB,CAElB,mBACE,WAAa,CACb,kBAAmB,CACpB,gBAID,eAAgB,CCrBlB,QACE,UAAW,CACX,eAAgB,CAChB,YAAa,CACb,qBAAsB,CACtB,6BAA8B,CAC9B,kBAAmB,CACpB,aAGC,WAAY,CACb,0BAGC,aACE,YAAa,CACd,CChBH,SACE,eAAgB,CACjB,iBAGC,gBAAiB,CACjB,cAAe,CACf,qBAAuB,CACxB,eAGC,SAAU,CACX,cAGC,sBAAwB,CACxB,UAAW,CACX,eAAgB,CACjB,sBAIC,UAAW,CCxBb,aACE,YAAa,CACb,kBAAmB,CACnB,6BAA8B,CAHhC,oBAMI,iBAAkB,CACnB,mBAKD,6BAA8B,CAC9B,iBAAkB,CCXpB,QACE,mBAAqB,CACrB,WNFkB,CMGlB,cAAe,CACf,iBAAkB,CAClB,YAAa,CACb,kBAAmB,CACnB,+BAAiC,CAPnC,qBAUI,WAAY,CACZ,uBAA0B,CAC3B,cAGC,WAAY,CACZ,qBAAsB,CACtB,wBAAyB,CAH1B,sBAMG,WAAY,CANf,+BAUG,kBAAmB,CACpB,yBAOH,cACE,eAAgB,CACjB,CChCH,eAGE,mBAAwC,CAH1C,uBAMI,YAAa,CANjB,wBAUI,aAAc,CACf,yBAID,eACE,mBAlBS,CAmBT,YAAa,CACb,6BAA8B,CAHhC,iBAMI,WAAY,CACZ,UAAW,CAPf,uBAWI,eAAgB,CAChB,uBAAgB,CAAhB,eAAgB,CAChB,aP3B8B,CO4B9B,gBAAiB,CACjB,8BAA4C,CAC5C,gBAAiB,CAhBrB,wBAoBI,QAAS,CACV,QAID,YAAa,CACd,CC7CH,KACE,WAAY,CACb,KAGC,eAAgB,CAChB,iBAAkB,CACnB,iBAGC,cAAe,CAChB,UAGC,kBAAmB,CACnB,eAAgB,CAChB,sBAAuB","file":"main.2ea3c026.chunk.css","sourcesContent":["@import '../variables';\n\n.navbar {\n position: sticky !important;\n top: 0;\n z-index: 5;\n margin-bottom: $nav-margin;\n // The following let us have the same height on all themes.\n // 1. prevent lux to increment padding\n padding: 0.8rem 1rem;\n // 2. make darkly as high as lux\n min-height: $nav-height;\n}\n","$for-medium-up: 770px;\n$for-short-down: 430px;\n$drawer-height: 5rem;\n$nav-height: 4.7793rem; // calculated value for higher theme\n$nav-margin: 2rem;\n$nav-size: $nav-height + $nav-margin;\n",".loader {\n z-index: 10;\n display: flex;\n justify-content: center;\n align-items: center;\n height: 100vh;\n}\n",".backdrop {\n z-index: 10;\n position: fixed;\n width: 100%;\n height: 100%;\n background-color: #222222;\n opacity: 0;\n visibility: hidden;\n transition: all 0.2s ease;\n cursor: default;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n text-align: center;\n\n &--visible {\n opacity: 0.94;\n visibility: visible;\n }\n}\n\n.body--backdrop {\n overflow: hidden;\n}\n","@import '../../variables';\n\n.player {\n width: 100%;\n max-width: 450px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n}\n\n.player-logo {\n width: 130px;\n}\n\n@media(max-height: $for-short-down) {\n .player-logo {\n display: none;\n }\n}\n","@import '../variables';\n\n.streams {\n max-width: 450px;\n}\n\n.streams__header {\n font-size: 1.3rem;\n margin-top: 1em;\n padding: 0.5rem 1.25rem;\n}\n\n.streams__item {\n padding: 0; // transfer .list-group-item padding to .streams__btn\n}\n\n.streams__btn {\n padding: 0.75rem 1.25rem;\n width: 100%;\n text-align: left;\n}\n\n// Fix for Lux theme.\n.active .streams__btn {\n color: #fff;\n}\n",".mini-player {\n display: flex;\n align-items: center;\n justify-content: space-between;\n\n button {\n padding: 10px 20px;\n }\n}\n\n.mini-player__left {\n // Dirty workaround for ellipsis to work\n max-width: calc(100vw - 160px);\n margin-right: 1rem;\n}\n","@import '../variables';\n\n.drawer {\n z-index: 5 !important;\n height: $drawer-height;\n cursor: pointer;\n touch-action: none; // don't scroll on touch\n display: flex;\n align-items: center;\n transition: height 0.25s ease-out;\n\n & > .mini-player {\n flex-grow: 1;\n margin: 0 0.5rem 0 0.25rem;\n }\n\n &--open {\n height: 100%;\n flex-direction: column;\n justify-content: flex-end;\n\n .player {\n flex-grow: 1;\n }\n\n .drawer__toggler {\n margin-bottom: 20px;\n }\n }\n}\n\n// The media query is for the edge case of an open drawer and the\n// window resized past the breakpoint. This brings the scrollbar back.\n@media (max-width: $for-medium-up) {\n .body--drawer {\n overflow: hidden;\n }\n}\n","@import '../variables';\n\n$margin: 2rem;\n\n.main__primary {\n // Use padding instead of margin.\n // This is as workaround for Chrome 87 ignoring margin-bottom on .main__primary.\n padding-bottom: $margin + $drawer-height;\n\n .player {\n display: none;\n }\n\n .streams {\n margin: 0 auto;\n }\n}\n\n@media (min-width: $for-medium-up) {\n .main__primary {\n padding-bottom: $margin; /* no drawer */\n display: flex;\n justify-content: space-between;\n\n & > * {\n min-width: 0; /* don't get bigger when text overflows */\n width: 100%; /* divide space equally */\n }\n\n .player {\n display: inherit;\n position: sticky;\n top: $nav-size;\n margin-left: 2rem;\n height: calc(100vh - #{$nav-size + $margin});\n max-height: 550px;\n }\n\n .streams {\n margin: 0;\n }\n }\n\n .drawer {\n display: none;\n }\n}\n","html {\n height: 100%;\n}\n\nbody {\n min-height: 100%;\n overflow-y: scroll; // so elements don't move if page fits view\n}\n\nbutton[disabled] {\n cursor: default;\n}\n\n.ellipsis {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n}\n"]}
|