Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in / Register
Toggle navigation
Menu
Open sidebar
interfect
funkwhale
Commits
e17aee29
Verified
Commit
e17aee29
authored
Dec 11, 2017
by
Eliot Berriot
Browse files
Merge branch 'release/0.2.2'
parents
f4a8d0f8
f74b6b5a
Changes
7
Hide whitespace changes
Inline
Side-by-side
api/funkwhale_api/__init__.py
View file @
e17aee29
# -*- coding: utf-8 -*-
__version__
=
'0.2.
1
'
__version__
=
'0.2.
2
'
__version_info__
=
tuple
([
int
(
num
)
if
num
.
isdigit
()
else
num
for
num
in
__version__
.
replace
(
'-'
,
'.'
,
1
).
split
(
'.'
)])
api/funkwhale_api/music/tests/factories.py
View file @
e17aee29
import
factory
import
os
SAMPLES_PATH
=
os
.
path
.
dirname
(
os
.
path
.
abspath
(
__file__
))
class
ArtistFactory
(
factory
.
django
.
DjangoModelFactory
):
...
...
@@ -33,7 +36,8 @@ class TrackFactory(factory.django.DjangoModelFactory):
class
TrackFileFactory
(
factory
.
django
.
DjangoModelFactory
):
track
=
factory
.
SubFactory
(
TrackFactory
)
audio_file
=
factory
.
django
.
FileField
()
audio_file
=
factory
.
django
.
FileField
(
from_path
=
os
.
path
.
join
(
SAMPLES_PATH
,
'test.ogg'
))
class
Meta
:
model
=
'music.TrackFile'
api/funkwhale_api/providers/audiofile/management/commands/import_files.py
View file @
e17aee29
...
...
@@ -29,7 +29,17 @@ class Command(BaseCommand):
def
handle
(
self
,
*
args
,
**
options
):
# self.stdout.write(self.style.SUCCESS('Successfully closed poll "%s"' % poll_id))
matching
=
glob
.
glob
(
options
[
'path'
],
recursive
=
options
[
'recursive'
])
# Recursive is supported only on Python 3.5+, so we pass the option
# only if it's True to avoid breaking on older versions of Python
glob_kwargs
=
{}
if
options
[
'recursive'
]:
glob_kwargs
[
'recursive'
]
=
True
try
:
matching
=
glob
.
glob
(
options
[
'path'
],
**
glob_kwargs
)
except
TypeError
:
raise
Exception
(
'You need Python 3.5 to use the --recursive flag'
)
self
.
stdout
.
write
(
'This will import {} files matching this pattern: {}'
.
format
(
len
(
matching
),
options
[
'path'
]))
...
...
front/package.json
View file @
e17aee29
...
...
@@ -18,6 +18,7 @@
"js-logger"
:
"^1.3.0"
,
"semantic-ui-css"
:
"^2.2.10"
,
"vue"
:
"^2.3.3"
,
"vue-global-events"
:
"^1.0.2"
,
"vue-resource"
:
"^1.3.4"
,
"vue-router"
:
"^2.3.1"
,
"vuedraggable"
:
"^2.14.1"
...
...
front/src/audio/queue.js
View file @
e17aee29
...
...
@@ -86,6 +86,8 @@ class Queue {
cache
.
remove
(
'
queue
'
)
}
setVolume
(
newValue
)
{
newValue
=
Math
.
min
(
newValue
,
1
)
newValue
=
Math
.
max
(
newValue
,
0
)
this
.
state
.
volume
=
newValue
if
(
this
.
audio
.
setVolume
)
{
this
.
audio
.
setVolume
(
newValue
)
...
...
@@ -94,7 +96,9 @@ class Queue {
}
cache
.
set
(
'
volume
'
,
newValue
)
}
incrementVolume
(
value
)
{
this
.
setVolume
(
this
.
state
.
volume
+
value
)
}
reorder
(
oldIndex
,
newIndex
)
{
// called when the user uses drag / drop to reorder
// tracks in queue
...
...
front/src/components/Sidebar.vue
View file @
e17aee29
...
...
@@ -87,10 +87,15 @@
<div
class=
"ui inverted segment player-wrapper"
>
<player></player>
</div>
<GlobalEvents
@
keydown.r.stop=
"queue.restore"
/>
</div>
</
template
>
<
script
>
import
GlobalEvents
from
'
vue-global-events
'
import
Player
from
'
@/components/audio/Player
'
import
favoriteTracks
from
'
@/favorites/tracks
'
import
Logo
from
'
@/components/Logo
'
...
...
@@ -109,7 +114,8 @@ export default {
Player
,
SearchBar
,
Logo
,
draggable
draggable
,
GlobalEvents
},
data
()
{
return
{
...
...
front/src/components/audio/Player.vue
View file @
e17aee29
...
...
@@ -56,10 +56,20 @@
<i
title=
"Clear your queue"
@
click=
"queue.clean()"
:class=
"['ui', 'trash', 'secondary',
{'disabled': queue.tracks.length === 0}, 'icon']" :disabled="queue.tracks.length === 0">
</i>
</div>
</div>
<GlobalEvents
@
keydown.space.prevent=
"pauseOrPlay"
@
keydown.ctrl.left.prevent=
"queue.previous"
@
keydown.ctrl.right.prevent=
"queue.next"
@
keydown.ctrl.down.prevent=
"queue.incrementVolume(-0.1)"
@
keydown.ctrl.up.prevent=
"queue.incrementVolume(0.1)"
/>
</div>
</
template
>
<
script
>
import
GlobalEvents
from
'
vue-global-events
'
import
queue
from
'
@/audio/queue
'
import
Track
from
'
@/audio/track
'
import
TrackFavoriteIcon
from
'
@/components/favorites/TrackFavoriteIcon
'
...
...
@@ -68,7 +78,8 @@ import radios from '@/radios'
export
default
{
name
:
'
player
'
,
components
:
{
TrackFavoriteIcon
TrackFavoriteIcon
,
GlobalEvents
},
data
()
{
return
{
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment