Compare commits
No commits in common. "27b4fdf17324edd9cfd691d30b0027e4e4f096a8" and "acd83b32b5e946433e592db81b00bdcd9d444492" have entirely different histories.
27b4fdf173
...
acd83b32b5
|
@ -1,26 +0,0 @@
|
|||
|
||||
repos:
|
||||
# Using this mirror lets us use mypyc-compiled black, which is about 2x faster
|
||||
- repo: https://github.com/psf/black-pre-commit-mirror
|
||||
rev: 24.2.0
|
||||
hooks:
|
||||
- id: black
|
||||
# It is recommended to specify the latest version of Python
|
||||
# supported by your project here, or alternatively use
|
||||
# pre-commit's default_language_version, see
|
||||
# https://pre-commit.com/#top_level-default_language_version
|
||||
language_version: python3.11
|
||||
|
||||
- repo: https://github.com/pycqa/isort
|
||||
rev: 5.13.2
|
||||
hooks:
|
||||
- id: isort
|
||||
name: isort (python)
|
||||
|
||||
- repo: https://github.com/astral-sh/ruff-pre-commit
|
||||
# Ruff version.
|
||||
rev: v0.3.0
|
||||
hooks:
|
||||
# Run the linter.
|
||||
- id: ruff
|
||||
# - id: ruff-format We don't need this because we have black and isort.
|
|
@ -1,22 +1,17 @@
|
|||
from pathlib import Path
|
||||
|
||||
name = "karaoke"
|
||||
help_text = "GUI for negromate karaoke"
|
||||
name = 'karaoke'
|
||||
help_text = 'GUI for negromate karaoke'
|
||||
|
||||
|
||||
def options(parser, config, **kwargs):
|
||||
parser.add_argument(
|
||||
"-s",
|
||||
"--song_folder",
|
||||
type=Path,
|
||||
default=config["global"]["song_folder"],
|
||||
'-s', '--song_folder', type=Path,
|
||||
default=config['global']['song_folder'],
|
||||
help="Folder with the song database, defaults to {}".format(
|
||||
config["global"]["song_folder"]
|
||||
),
|
||||
)
|
||||
config['global']['song_folder']))
|
||||
|
||||
|
||||
def run(args, **kwargs):
|
||||
from ..karaoke import main
|
||||
|
||||
main(args.song_folder.expanduser())
|
||||
|
|
|
@ -3,23 +3,21 @@ import os
|
|||
import subprocess
|
||||
|
||||
import kivy
|
||||
kivy.require('2.1.0')
|
||||
|
||||
from kivy.app import App
|
||||
from kivy.core.text import LabelBase
|
||||
from kivy.core.window import Window
|
||||
from kivy.properties import ObjectProperty, ListProperty, BooleanProperty
|
||||
from kivy.resources import resource_add_path
|
||||
from kivy.uix.boxlayout import BoxLayout
|
||||
|
||||
from negromate.songs.loader import load_songs
|
||||
|
||||
kivy.require("2.1.0")
|
||||
|
||||
from kivy.app import App # noqa: E402
|
||||
from kivy.core.text import LabelBase # noqa: E402
|
||||
from kivy.core.window import Window # noqa: E402
|
||||
from kivy.properties import BooleanProperty # noqa: E402
|
||||
from kivy.properties import ListProperty # noqa: E402
|
||||
from kivy.properties import ObjectProperty # noqa: E402
|
||||
from kivy.resources import resource_add_path # noqa: E402
|
||||
from kivy.uix.boxlayout import BoxLayout # noqa: E402
|
||||
|
||||
|
||||
class SongWidget(BoxLayout):
|
||||
active = BooleanProperty(False)
|
||||
song = ObjectProperty("")
|
||||
song = ObjectProperty('')
|
||||
|
||||
@property
|
||||
def name(self):
|
||||
|
@ -51,18 +49,18 @@ class KaraokeGUI(BoxLayout):
|
|||
self.keyboard = Window.request_keyboard(
|
||||
self.keyboard_closed,
|
||||
self,
|
||||
"text",
|
||||
'text',
|
||||
)
|
||||
self.keyboard.bind(on_key_down=self.on_key_down)
|
||||
|
||||
def on_key_down(self, keyboard, keycode, text, modifiers):
|
||||
if text == "a":
|
||||
if text == 'a':
|
||||
self.previous()
|
||||
return True
|
||||
elif text == "d":
|
||||
elif text == 'd':
|
||||
self.next()
|
||||
return True
|
||||
elif text == "s":
|
||||
elif text == 's':
|
||||
self.play()
|
||||
return True
|
||||
return False
|
||||
|
@ -71,7 +69,7 @@ class KaraokeGUI(BoxLayout):
|
|||
pass
|
||||
|
||||
def on_songs(self, instance, value):
|
||||
container = self.ids["song_container"]
|
||||
container = self.ids['song_container']
|
||||
container.clear_widgets()
|
||||
for song in self.songs:
|
||||
container.add_widget(song)
|
||||
|
@ -81,12 +79,12 @@ class KaraokeGUI(BoxLayout):
|
|||
for song in self.songs:
|
||||
song.active = False
|
||||
value.active = True
|
||||
current_song_image = self.ids["current_song_image"]
|
||||
current_song_title = self.ids["current_song_title"]
|
||||
current_song_image = self.ids['current_song_image']
|
||||
current_song_title = self.ids['current_song_title']
|
||||
current_song_image.source = value.cover
|
||||
current_song_title.text = value.name
|
||||
|
||||
scrollview = self.ids["songs_scroll"]
|
||||
scrollview = self.ids['songs_scroll']
|
||||
scrollview.scroll_to(value)
|
||||
|
||||
def previous(self):
|
||||
|
@ -110,26 +108,19 @@ class KaraokeGUI(BoxLayout):
|
|||
self.active_song = self.songs[idx]
|
||||
|
||||
def play(self):
|
||||
subprocess.call(
|
||||
[
|
||||
"cvlc",
|
||||
"--fullscreen",
|
||||
"--no-sub-autodetect-file",
|
||||
"--sub-file",
|
||||
self.active_song.subtitle,
|
||||
self.active_song.video,
|
||||
"vlc://quit",
|
||||
]
|
||||
)
|
||||
subprocess.call([
|
||||
'cvlc',
|
||||
'--fullscreen',
|
||||
'--no-sub-autodetect-file',
|
||||
'--sub-file',
|
||||
self.active_song.subtitle,
|
||||
self.active_song.video,
|
||||
'vlc://quit'
|
||||
])
|
||||
|
||||
|
||||
class KaraokeApp(App):
|
||||
kv_directory = os.path.join(
|
||||
os.path.dirname(
|
||||
__file__,
|
||||
),
|
||||
"kv_templates",
|
||||
)
|
||||
kv_directory = os.path.join(os.path.dirname(__file__, ), 'kv_templates')
|
||||
|
||||
def __init__(self, root_folder, **kwargs):
|
||||
super().__init__(**kwargs)
|
||||
|
@ -146,5 +137,7 @@ class KaraokeApp(App):
|
|||
def main(path):
|
||||
# Window.fullscreen = True
|
||||
resource_add_path(os.path.dirname(__file__))
|
||||
LabelBase.register(name="CyrBit", fn_regular="resources/fonts/CyrBit.ttf")
|
||||
LabelBase.register(
|
||||
name='CyrBit',
|
||||
fn_regular='resources/fonts/CyrBit.ttf')
|
||||
KaraokeApp(path).run()
|
||||
|
|
|
@ -1 +1 @@
|
|||
negromate.songs>=1.5
|
||||
negromate.songs==1.4
|
||||
|
|
Loading…
Reference in New Issue