Sounds starting to work

This commit is contained in:
Christopher T. Johnson
2023-12-18 09:25:57 -05:00
parent 11c4801b7f
commit 11726900f7
2 changed files with 42 additions and 12 deletions

View File

@@ -236,8 +236,7 @@ class PersonDialog(QDialog, Ui_Dialog):
start = datetime.fromisoformat(self.sessionCombo.currentText())
msg["Subject"] = f"TT English, Session: {start.date().isoformat()}"
msg["From"] = "Christopher T. Johnson <cjohnson@troglodite.com>"
# msg["To"] = self.emailEdit.text().strip()
msg["To"] = "cjohnson@troglodite.com"
msg["To"] = self.emailEdit.text().strip()
msg.set_content("There is a html message you should read")
msg.add_alternative(self.inliner.inline(html), subtype="html")
server = smtplib.SMTP(secrets.SMTP_HOST, secrets.SMTP_PORT)
@@ -363,12 +362,11 @@ class PersonDialog(QDialog, Ui_Dialog):
def makeDefinitions(self) -> str:
query = QSqlQuery()
query.prepare(
"SELECT w.word, w.definition FROM sessions s "
"LEFT JOIN session_word sw "
"ON (s.session_id = s.session_id) "
"SELECT w.word, w.definition "
"FROM session_word sw "
"LEFT JOIN words w "
"ON (sw.word_id = w.word_id) "
"WHERE s.session_id = :session_id "
"WHERE sw.session_id = :session_id "
"ORDER BY w.word"
)

View File

@@ -95,6 +95,7 @@ class EditDialog(QDialog, Ui_Dialog):
# self.sessionBtn.clicked.connect(self.sessionAction)
self.sessionBtn.clicked.connect(self.session.timerAction)
self.paraEdit.verticalScrollBar().valueChanged.connect(self.scrollSlot)
self.defEdit.selectionChanged.connect(self.recursiveDef)
#
# Connect signals
#
@@ -106,9 +107,39 @@ class EditDialog(QDialog, Ui_Dialog):
self.soundEffect.mediaStatusChanged.connect(self.changedStatus)
return
#
# Events
#
#
# slots
#
@pyqtSlot()
def recursiveDef(self):
cursor = self.defEdit.textCursor()
selection = cursor.selectedText().strip()
if len(selection) <= 0:
return
query = QSqlQuery()
query.prepare("SELECT * FROM words " "WHERE word = :word")
query.bindValue(":word", selection)
if not query.exec():
query_error()
if not query.next():
response = requests.get(
f"https://api.dictionaryapi.dev/api/v2/entries/en/{selection}"
)
if response.status_code != 200:
return
definitions = json.loads(response.content.decode("utf-8"))
definition = definitions[0]
word_id = None
else:
definition = query.value("definition")
word_id = query.value("word_id")
self.setDefEdit(selection, word_id, definition)
return
@pyqtSlot(QMediaPlayer.MediaStatus)
def changedStatus(self, status):
if status == QMediaPlayer.MediaStatus.LoadedMedia:
@@ -117,9 +148,7 @@ class EditDialog(QDialog, Ui_Dialog):
if not audioOutput:
self.soundEffect.setAudioOutput(self.audioOutput)
audioOutput = self.audioOutput
print(f"{status} No audioOutput???")
audioDevice = audioOutput.device()
print(audioDevice.description(), audioDevice.id().data())
print(status)
return
@@ -127,10 +156,8 @@ class EditDialog(QDialog, Ui_Dialog):
def changedState(self, status):
audioOutput = self.soundEffect.audioOutput()
if not audioOutput:
print(f"{status} No AudioOutput")
return
audioDevice = audioOutput.device()
print(audioDevice.description(), audioDevice.id().data())
print(status)
return
@@ -155,7 +182,7 @@ class EditDialog(QDialog, Ui_Dialog):
cursor = self.paraEdit.textCursor()
fmt = cursor.charFormat()
if not fmt.fontUnderline():
self.addword()
self.addWord()
cursor = self.paraEdit.textCursor()
textBlock = self.paraEdit.document().findBlock(cursor.position())
blockNum = textBlock.blockNumber()
@@ -586,6 +613,10 @@ class EditDialog(QDialog, Ui_Dialog):
return
word = query.value("word")
definition = json.loads(query.value("definition"))
self.setDefEdit(word, query.value("word_id"), definition)
return
def setDefEdit(self, word, word_id, definition):
if "phonetics" in definition:
self.phonetics = definition["phonetics"]
else:
@@ -595,7 +626,8 @@ class EditDialog(QDialog, Ui_Dialog):
cursor.insertHtml(self.defToHtml(word, definition))
cursor.setPosition(0)
self.defEdit.setTextCursor(cursor)
self.displayedWord.emit(query.value("word_id"))
if word_id:
self.displayedWord.emit(word_id)
return
def showDefinition(self) -> None: