Compare commits

..

No commits in common. "27b4fdf17324edd9cfd691d30b0027e4e4f096a8" and "acd83b32b5e946433e592db81b00bdcd9d444492" have entirely different histories.

5 changed files with 38 additions and 76 deletions

View File

@ -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.

View File

@ -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())

View File

@ -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()

View File

@ -1 +1 @@
negromate.songs>=1.5
negromate.songs==1.4

View File

@ -22,7 +22,7 @@ packages = find_namespace:
zip_safe = false
python_requires = >= 3.4
install_requires =
negromate.songs >=1.5
negromate.songs ==1.4
[options.entry_points]
negromate.commands =