Skip to content

Commit de3d143

Browse files
authored
Release 0.2.7a1 (#29)
* fix:session support (#28) * fix:session support * typo * Increment Version to 0.2.7a1 * Update Changelog --------- Co-authored-by: JarbasAI <33701864+JarbasAl@users.noreply.github.com> Co-authored-by: JarbasAl <JarbasAl@users.noreply.github.com>
2 parents 7f940a1 + f3158e8 commit de3d143

File tree

3 files changed

+39
-25
lines changed

3 files changed

+39
-25
lines changed

CHANGELOG.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
11
# Changelog
22

3-
## [0.2.6a1](https://github.com/OpenVoiceOS/ovos-skill-audio-recording/tree/0.2.6a1) (2025-05-17)
3+
## [0.2.7a1](https://github.com/OpenVoiceOS/ovos-skill-audio-recording/tree/0.2.7a1) (2025-06-07)
44

5-
[Full Changelog](https://github.com/OpenVoiceOS/ovos-skill-audio-recording/compare/0.2.5...0.2.6a1)
5+
[Full Changelog](https://github.com/OpenVoiceOS/ovos-skill-audio-recording/compare/V0.2.6...0.2.7a1)
66

77
**Merged pull requests:**
88

9-
- fix: standardize urls / skill-id / pypi-name [\#26](https://github.com/OpenVoiceOS/ovos-skill-audio-recording/pull/26) ([JarbasAl](https://github.com/JarbasAl))
9+
- fix:session support [\#28](https://github.com/OpenVoiceOS/ovos-skill-audio-recording/pull/28) ([JarbasAl](https://github.com/JarbasAl))
10+
11+
## [V0.2.6](https://github.com/OpenVoiceOS/ovos-skill-audio-recording/tree/V0.2.6) (2025-05-17)
12+
13+
[Full Changelog](https://github.com/OpenVoiceOS/ovos-skill-audio-recording/compare/0.2.6...V0.2.6)
1014

1115

1216

__init__.py

Lines changed: 30 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
from datetime import timedelta
22

3-
from ovos_bus_client.message import Message
3+
from ovos_bus_client.session import SessionManager, Session
4+
from ovos_bus_client.message import Message, dig_for_message
45
from ovos_utils import classproperty
56
from ovos_utils.process_utils import RuntimeRequirements
67
from ovos_utils.time import now_local
@@ -10,7 +11,7 @@
1011

1112
class AudioRecordingSkill(OVOSSkill):
1213
def initialize(self):
13-
self.recording = False
14+
self.recording_sessions = {}
1415
self.add_event("recognizer_loop:record_stop", self.handle_recording_stop)
1516

1617
@classproperty
@@ -34,35 +35,44 @@ def max_recording_time(self):
3435
@intent_handler("start_recording.intent")
3536
def handle_start_recording(self, message):
3637
recording_name = message.data.get("name", str(now_local()))
37-
self.recording = True
38+
sess = SessionManager.get(message)
39+
self.recording_sessions[sess.session_id] = dict(
40+
file_name=recording_name,
41+
recording=True
42+
)
43+
3844
self.bus.emit(message.forward("recognizer_loop:state.set",
3945
{"state": "recording",
4046
"recording_name": recording_name}))
4147

4248
def maybe_stop(message):
43-
if self.recording:
49+
sess = SessionManager.get(message)
50+
if self.recording_sessions.get(sess.session_id, {}).get("recording"):
4451
self.bus.emit(message.forward("recognizer_loop:record_stop"))
45-
self.recording = False
52+
self.recording_sessions[sess.session_id]["recording"] = False
4653

4754
# force a way out of recording mode after timeout
4855
self.schedule_event(maybe_stop, now_local() + timedelta(seconds=self.max_recording_time))
4956

50-
@intent_handler("start_recording.intent")
51-
def handle_captains_log(self, message):
52-
message.data["name"] = message.data.get("name", "captains_log_" + str(now_local()))
53-
self.handle_start_recording(message)
54-
5557
def handle_recording_stop(self, message):
56-
self.recording = False
58+
# keep track of any external (non skill initiated) stops
59+
sess_id = SessionManager.get(message).session_id
60+
if self.recording_sessions.get(sess_id, {}).get("recording"):
61+
self.recording_sessions[sess_id]["recording"] = False
5762

58-
def stop(self):
59-
"""Optional action to take when "stop" is requested by the user.
60-
This method should return True if it stopped something or
61-
False (or None) otherwise.
62-
If not relevant to your skill, feel free to remove.
63-
"""
64-
if self.recording:
65-
self.recording = False
66-
self.bus.emit(Message("recognizer_loop:record_stop"))
63+
def stop_session(self, session: Session) -> bool:
64+
if session.session_id in self.recording_sessions and \
65+
self.recording_sessions[session.session_id]["recording"]:
66+
self.recording_sessions[session.session_id]["recording"] = False
67+
message = dig_for_message()
68+
self.bus.emit(message.forward("recognizer_loop:record_stop"))
6769
return True
6870
return False
71+
72+
def can_stop(self, message: Message) -> bool:
73+
sess_id = SessionManager.get(message).session_id
74+
return self.recording_sessions.get(sess_id, {}).get("recording")
75+
76+
def stop(self):
77+
"""global stop called"""
78+
self.bus.emit(Message("recognizer_loop:record_stop"))

version.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# START_VERSION_BLOCK
22
VERSION_MAJOR = 0
33
VERSION_MINOR = 2
4-
VERSION_BUILD = 6
5-
VERSION_ALPHA = 0
4+
VERSION_BUILD = 7
5+
VERSION_ALPHA = 1
66
# END_VERSION_BLOCK

0 commit comments

Comments
 (0)