chore: ruff isort and black check
This commit is contained in:
		
							parent
							
								
									f205a810c4
								
							
						
					
					
						commit
						27b4fdf173
					
				| 
						 | 
				
			
			@ -0,0 +1,26 @@
 | 
			
		|||
 | 
			
		||||
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,17 +1,22 @@
 | 
			
		|||
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,21 +3,23 @@ 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):
 | 
			
		||||
| 
						 | 
				
			
			@ -49,18 +51,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
 | 
			
		||||
| 
						 | 
				
			
			@ -69,7 +71,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)
 | 
			
		||||
| 
						 | 
				
			
			@ -79,12 +81,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):
 | 
			
		||||
| 
						 | 
				
			
			@ -108,19 +110,26 @@ 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)
 | 
			
		||||
| 
						 | 
				
			
			@ -137,7 +146,5 @@ 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()
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
		Reference in New Issue