delete database function
This commit is contained in:
parent
26bd852a3f
commit
6ad913e5ee
36
main.py
36
main.py
@ -21,8 +21,7 @@ from PyQt5.QtWidgets import (
|
|||||||
from PyQt5.QtCore import QUrl, QTimer, Qt
|
from PyQt5.QtCore import QUrl, QTimer, Qt
|
||||||
from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent, QAudioProbe
|
from PyQt5.QtMultimedia import QMediaPlayer, QMediaContent, QAudioProbe
|
||||||
from PyQt5.QtGui import QCloseEvent, QPixmap
|
from PyQt5.QtGui import QCloseEvent, QPixmap
|
||||||
from utils import scan_for_music
|
from utils import scan_for_music, delete_and_create_library_database, initialize_db
|
||||||
from utils import delete_and_create_library_database
|
|
||||||
from components import PreferencesWindow, AudioVisualizer
|
from components import PreferencesWindow, AudioVisualizer
|
||||||
|
|
||||||
# Create ui.py file from Qt Designer
|
# Create ui.py file from Qt Designer
|
||||||
@ -98,10 +97,9 @@ class ApplicationWindow(QMainWindow, Ui_MainWindow):
|
|||||||
self.open_preferences
|
self.open_preferences
|
||||||
) # Open preferences menu
|
) # Open preferences menu
|
||||||
# QUICK ACTIONS MENU
|
# QUICK ACTIONS MENU
|
||||||
self.actionScanLibraries.triggered.connect(self.scan_libraries) # Scan library
|
self.actionScanLibraries.triggered.connect(self.scan_libraries)
|
||||||
self.actionClearDatabase.triggered.connect(
|
self.actionDeleteLibrary.triggered.connect(self.clear_database)
|
||||||
self.clear_database
|
self.actionDeleteDatabase.triggered.connect(self.delete_database)
|
||||||
) # Clear database
|
|
||||||
## tableView triggers
|
## tableView triggers
|
||||||
self.tableView.doubleClicked.connect(
|
self.tableView.doubleClicked.connect(
|
||||||
self.play_audio_file
|
self.play_audio_file
|
||||||
@ -364,6 +362,32 @@ class ApplicationWindow(QMainWindow, Ui_MainWindow):
|
|||||||
delete_and_create_library_database()
|
delete_and_create_library_database()
|
||||||
self.tableView.fetch_library()
|
self.tableView.fetch_library()
|
||||||
|
|
||||||
|
def delete_database(self) -> None:
|
||||||
|
"""Deletes the entire database"""
|
||||||
|
reply = QMessageBox.question(
|
||||||
|
self,
|
||||||
|
"Confirmation",
|
||||||
|
"Delete database?",
|
||||||
|
QMessageBox.Yes | QMessageBox.No,
|
||||||
|
QMessageBox.Yes,
|
||||||
|
)
|
||||||
|
if reply:
|
||||||
|
initialize_db()
|
||||||
|
self.tableView.fetch_library()
|
||||||
|
|
||||||
|
def reinitialize_database(self) -> None:
|
||||||
|
"""Clears all tables in database and recreates"""
|
||||||
|
reply = QMessageBox.question(
|
||||||
|
self,
|
||||||
|
"Confirmation",
|
||||||
|
"Recreate the database?",
|
||||||
|
QMessageBox.Yes | QMessageBox.No,
|
||||||
|
QMessageBox.Yes,
|
||||||
|
)
|
||||||
|
if reply:
|
||||||
|
initialize_db()
|
||||||
|
self.tableView.fetch_library()
|
||||||
|
|
||||||
def process_probe(self, buff) -> None:
|
def process_probe(self, buff) -> None:
|
||||||
buff.startTime()
|
buff.startTime()
|
||||||
self.update_audio_visualization()
|
self.update_audio_visualization()
|
||||||
|
|||||||
14
ui.py
14
ui.py
@ -154,7 +154,7 @@ class Ui_MainWindow(object):
|
|||||||
self.verticalLayout_3.setStretch(3, 1)
|
self.verticalLayout_3.setStretch(3, 1)
|
||||||
MainWindow.setCentralWidget(self.centralwidget)
|
MainWindow.setCentralWidget(self.centralwidget)
|
||||||
self.menubar = QtWidgets.QMenuBar(MainWindow)
|
self.menubar = QtWidgets.QMenuBar(MainWindow)
|
||||||
self.menubar.setGeometry(QtCore.QRect(0, 0, 1152, 21))
|
self.menubar.setGeometry(QtCore.QRect(0, 0, 1152, 41))
|
||||||
self.menubar.setObjectName("menubar")
|
self.menubar.setObjectName("menubar")
|
||||||
self.menuFile = QtWidgets.QMenu(self.menubar)
|
self.menuFile = QtWidgets.QMenu(self.menubar)
|
||||||
self.menuFile.setObjectName("menuFile")
|
self.menuFile.setObjectName("menuFile")
|
||||||
@ -172,14 +172,17 @@ class Ui_MainWindow(object):
|
|||||||
self.actionPreferences.setObjectName("actionPreferences")
|
self.actionPreferences.setObjectName("actionPreferences")
|
||||||
self.actionScanLibraries = QtWidgets.QAction(MainWindow)
|
self.actionScanLibraries = QtWidgets.QAction(MainWindow)
|
||||||
self.actionScanLibraries.setObjectName("actionScanLibraries")
|
self.actionScanLibraries.setObjectName("actionScanLibraries")
|
||||||
self.actionClearDatabase = QtWidgets.QAction(MainWindow)
|
self.actionDeleteLibrary = QtWidgets.QAction(MainWindow)
|
||||||
self.actionClearDatabase.setObjectName("actionClearDatabase")
|
self.actionDeleteLibrary.setObjectName("actionDeleteLibrary")
|
||||||
self.actionOpenFiles = QtWidgets.QAction(MainWindow)
|
self.actionOpenFiles = QtWidgets.QAction(MainWindow)
|
||||||
self.actionOpenFiles.setObjectName("actionOpenFiles")
|
self.actionOpenFiles.setObjectName("actionOpenFiles")
|
||||||
|
self.actionDeleteDatabase = QtWidgets.QAction(MainWindow)
|
||||||
|
self.actionDeleteDatabase.setObjectName("actionDeleteDatabase")
|
||||||
self.menuFile.addAction(self.actionOpenFiles)
|
self.menuFile.addAction(self.actionOpenFiles)
|
||||||
self.menuEdit.addAction(self.actionPreferences)
|
self.menuEdit.addAction(self.actionPreferences)
|
||||||
self.menuQuick_Actions.addAction(self.actionScanLibraries)
|
self.menuQuick_Actions.addAction(self.actionScanLibraries)
|
||||||
self.menuQuick_Actions.addAction(self.actionClearDatabase)
|
self.menuQuick_Actions.addAction(self.actionDeleteLibrary)
|
||||||
|
self.menuQuick_Actions.addAction(self.actionDeleteDatabase)
|
||||||
self.menubar.addAction(self.menuFile.menuAction())
|
self.menubar.addAction(self.menuFile.menuAction())
|
||||||
self.menubar.addAction(self.menuEdit.menuAction())
|
self.menubar.addAction(self.menuEdit.menuAction())
|
||||||
self.menubar.addAction(self.menuView.menuAction())
|
self.menubar.addAction(self.menuView.menuAction())
|
||||||
@ -207,7 +210,8 @@ class Ui_MainWindow(object):
|
|||||||
self.actionPreferences.setText(_translate("MainWindow", "Preferences"))
|
self.actionPreferences.setText(_translate("MainWindow", "Preferences"))
|
||||||
self.actionPreferences.setStatusTip(_translate("MainWindow", "Open preferences"))
|
self.actionPreferences.setStatusTip(_translate("MainWindow", "Open preferences"))
|
||||||
self.actionScanLibraries.setText(_translate("MainWindow", "Scan libraries"))
|
self.actionScanLibraries.setText(_translate("MainWindow", "Scan libraries"))
|
||||||
self.actionClearDatabase.setText(_translate("MainWindow", "Clear Database"))
|
self.actionDeleteLibrary.setText(_translate("MainWindow", "Delete Library"))
|
||||||
self.actionOpenFiles.setText(_translate("MainWindow", "Open file(s)"))
|
self.actionOpenFiles.setText(_translate("MainWindow", "Open file(s)"))
|
||||||
|
self.actionDeleteDatabase.setText(_translate("MainWindow", "Delete Database"))
|
||||||
from components import AlbumArtGraphicsView, MusicTable
|
from components import AlbumArtGraphicsView, MusicTable
|
||||||
from pyqtgraph import PlotWidget
|
from pyqtgraph import PlotWidget
|
||||||
|
|||||||
14
ui.ui
14
ui.ui
@ -274,7 +274,7 @@
|
|||||||
<x>0</x>
|
<x>0</x>
|
||||||
<y>0</y>
|
<y>0</y>
|
||||||
<width>1152</width>
|
<width>1152</width>
|
||||||
<height>21</height>
|
<height>41</height>
|
||||||
</rect>
|
</rect>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QMenu" name="menuFile">
|
<widget class="QMenu" name="menuFile">
|
||||||
@ -299,7 +299,8 @@
|
|||||||
<string>Quick-Actions</string>
|
<string>Quick-Actions</string>
|
||||||
</property>
|
</property>
|
||||||
<addaction name="actionScanLibraries"/>
|
<addaction name="actionScanLibraries"/>
|
||||||
<addaction name="actionClearDatabase"/>
|
<addaction name="actionDeleteLibrary"/>
|
||||||
|
<addaction name="actionDeleteDatabase"/>
|
||||||
</widget>
|
</widget>
|
||||||
<addaction name="menuFile"/>
|
<addaction name="menuFile"/>
|
||||||
<addaction name="menuEdit"/>
|
<addaction name="menuEdit"/>
|
||||||
@ -320,9 +321,9 @@
|
|||||||
<string>Scan libraries</string>
|
<string>Scan libraries</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
<action name="actionClearDatabase">
|
<action name="actionDeleteLibrary">
|
||||||
<property name="text">
|
<property name="text">
|
||||||
<string>Clear Database</string>
|
<string>Delete Library</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
<action name="actionOpenFiles">
|
<action name="actionOpenFiles">
|
||||||
@ -330,6 +331,11 @@
|
|||||||
<string>Open file(s)</string>
|
<string>Open file(s)</string>
|
||||||
</property>
|
</property>
|
||||||
</action>
|
</action>
|
||||||
|
<action name="actionDeleteDatabase">
|
||||||
|
<property name="text">
|
||||||
|
<string>Delete Database</string>
|
||||||
|
</property>
|
||||||
|
</action>
|
||||||
</widget>
|
</widget>
|
||||||
<customwidgets>
|
<customwidgets>
|
||||||
<customwidget>
|
<customwidget>
|
||||||
|
|||||||
@ -1,4 +1,5 @@
|
|||||||
from .id3_timestamp_to_datetime import id3_timestamp_to_datetime
|
from .id3_timestamp_to_datetime import id3_timestamp_to_datetime
|
||||||
|
from .initialize_db import initialize_db
|
||||||
from .safe_get import safe_get
|
from .safe_get import safe_get
|
||||||
from .get_album_art import get_album_art
|
from .get_album_art import get_album_art
|
||||||
from .get_id3_tags import get_id3_tags
|
from .get_id3_tags import get_id3_tags
|
||||||
|
|||||||
@ -1,9 +1,11 @@
|
|||||||
import DBA
|
import DBA
|
||||||
|
|
||||||
|
|
||||||
def delete_and_create_library_database():
|
def delete_and_create_library_database():
|
||||||
with open('utils/delete_and_create_library.sql', 'r') as file:
|
"""Clears all songs in database"""
|
||||||
|
with open("utils/delete_and_create_library.sql", "r") as file:
|
||||||
lines = file.read()
|
lines = file.read()
|
||||||
for statement in lines.split(';'):
|
for statement in lines.split(";"):
|
||||||
print(f'executing [{statement}]')
|
print(f"executing [{statement}]")
|
||||||
with DBA.DBAccess() as db:
|
with DBA.DBAccess() as db:
|
||||||
db.execute(statement, ())
|
db.execute(statement, ())
|
||||||
|
|||||||
11
utils/initialize_db.py
Normal file
11
utils/initialize_db.py
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
import DBA
|
||||||
|
|
||||||
|
|
||||||
|
def initialize_db():
|
||||||
|
"""Recreates everything in the database"""
|
||||||
|
with open("utils/init.sql", "r") as file:
|
||||||
|
lines = file.read()
|
||||||
|
for statement in lines.split(";"):
|
||||||
|
print(f"executing [{statement}]")
|
||||||
|
with DBA.DBAccess() as db:
|
||||||
|
db.execute(statement, ())
|
||||||
Loading…
x
Reference in New Issue
Block a user