Commit Graph

3223 Commits (mark-ii/ignore-build-files)

Author SHA1 Message Date
Chris Veilleux 7f2d4bd25f Defining message bus event handlers before a message bus connection is established can cause errors. 2021-12-06 10:53:40 -06:00
Chris Veilleux 0eb5a1fc44 Fix a race condition when waiting for initialized services 2021-12-03 18:14:21 -06:00
Kris Gesling 294be08efc Prevent loss of data when migrating from latest to stable
The XDG migration code was replacing newer directories with
old blank ones.
2021-12-03 09:39:23 +09:30
Chris Veilleux 712110e17f Removed DevicePrimer class. All functionality moved to enclosure 2021-12-02 16:04:37 -06:00
Chris Veilleux 409fff9390 Removed if statement that checked for the existence of an enclosure. The create_enclosure() method always returns an instance of an Enclosure class 2021-12-02 16:04:37 -06:00
Chris Veilleux 9819dbf2f7 Logging improvements 2021-12-02 16:04:37 -06:00
Michael Hansen c49868905c Remove DEBUG log from mark2 connectivity check 2021-12-02 16:04:17 -06:00
Michael Hansen a296952efa Add network/internet polling thread to mark2
====  Tech Notes ====
Mark2 enclosure uses NetworkManager to poll for network/internet
connectivity.

On state change, outputs:
mycroft.network.connected
mycroft.network.disconnected
mycroft.internet.connected
mycroft.internet.disconnected

Every polling interval, outputs:
mycroft.network.state (data.state=connected/disconnected)
mycroft.internet.state (data.state=connected/disconnected)
2021-12-02 16:04:17 -06:00
Chris Veilleux 0328043f7c Added log messages, changed mycroft.ready to mycroft.started and added handler for mycroft.started 2021-12-02 13:09:21 -06:00
Chris Veilleux 4b7dd93b85 Fixed bug with method signature and added log message for device ready for use. 2021-12-02 13:08:42 -06:00
Michael Hansen 7f19bad4f3 Add unit tests for NetworkManager
==== Fixed Issues ====
Added unit tests for NetworkManager.
Restart DBus thread if an error occurs.
2021-12-02 11:07:47 -05:00
Michael Hansen 503c081d95 Add NetworkManager for checking connectivity
====  Tech Notes ====
Connects to org.freedesktop.NetworkManager over DBus to determine
connectivity status.

==== Environment Notes ====
Adds dbus-next Python package as a requirement
2021-12-01 16:15:02 -05:00
Kris Gesling be45edb54f autoformat 2021-12-01 09:32:24 +09:30
Kris Gesling ae99974398
Merge pull request #3045 from forslund/bugfix/config-creation-at-import
Do not create configs folders until writing
2021-12-01 09:17:41 +09:30
Kris Gesling d479a79b7e
Merge pull request #3033 from forslund/bugfix/config
Fix config priority
2021-12-01 09:13:28 +09:30
Åke Forslund 6b5d45e507 Do not create configs folders until writing
This replaces save_*_path with usage of the xdg_*_home when handling
config files. This means the config folders will not be created unless
actually written to.

The check for whether a directory needs to be created is handled behind
a lock to avoid race conditions
2021-11-30 22:50:09 +01:00
Chris Veilleux 982b79482c move enclosure logic from skill service to enclosure service 2021-11-30 15:44:09 -06:00
Chris Veilleux aca4d1a2f6 improve enclosure initialization logging 2021-11-30 15:41:57 -06:00
Chris Veilleux 53ffd737a0 move some steps in the startup sequence so that the message bus connection is established as early as possible. this will facilitate status updates occurring as soon as possible as well. 2021-11-30 15:40:40 -06:00
Chris Veilleux ef7009dfbc PEP8 refactoring 2021-11-30 15:40:40 -06:00
Chris Veilleux 3d26fa9ada Add service ready event and improve logic to determine if device is ready. 2021-11-30 15:40:27 -06:00
Kris Gesling 89cfad7943
Check if GUI is connected rather than maintain list of platforms (#3025)
* Check if GUI is connected rather than maintain list of platforms

There are already many Mycroft platforms that have GUIs
and this will only grow. We want to know if the device
has a GUI connected rather than if it is in a pre-defined
list of platforms.

* Create a mock GUI with a settable connected attribute
2021-11-24 14:51:10 +09:30
Kris Gesling 77549d01e2
Remove incorrectly added args in GUIWebsocketHandler methods (#3036)
PR #2879 updated the websocket-client and changed function
signatures to account for API changes in that package. These
were falsely changed as the GUI bus does not use the
websocket-client.

Consistency would be good however modifying the protocols
would require significant work. For now we have two slightly
different bus interfaces.
2021-11-22 15:00:20 +09:30
Åke Forslund 70df575d43 Make log settings not cache local only config
After startup the cached config would be without remote config. This
makes sure the config without remote isn't cached.
2021-11-09 21:04:58 +01:00
Åke Forslund 5ff2cb099f Fix order of configs
The old SYSTEM config was prioritized lower than the remote config
2021-11-09 20:51:38 +01:00
Genei180 ef56d71462
Added Possibility for ESpeak Config (#3020)
Added Possibility for ESpeak Config
2021-11-09 15:07:33 +09:30
Kris Gesling ea157598d7
Merge pull request #3022 from MycroftAI/bugfix/gui-namespace-race-cond
Fix race condition in GUI namespace insertion
2021-11-05 06:12:08 +09:30
Kris Gesling 131a9ed03f PEP8 2021-11-04 20:53:00 +09:30
jarbasal f8f640e3e5 fix/race condition dictionary changed iteration
bus events could cause the dict to change while being iterated
2021-11-04 13:37:54 +09:30
Siavash Mollayi dca1184bd5 Azerbaijani language support 2021-11-03 15:57:34 +03:30
Gaëtan Trellu 0247b3a4b5
[log_format] Add an option to change the log format (#3016)
* [log_format] Add an option to change the log format

Hacing an option to change the log format could be useful when logs
are shipped into an aggregator such as Elasticsearch.

The current format is very hard to parse.

* [log_format] Set default Formatter

Because mycroft.configuration.Configuration() class import LOG class,
a default Formatter have to be defined before import the
mycroft.configuration.Configuration() class.
2021-10-29 14:59:22 +09:30
Bart Ribbers 34ee3a9a84
Upgrade websocket-client to 1.2.1 (#2879)
* Upgrade websocket-client to 1.2.1

core equivalent of https://github.com/MycroftAI/mycroft-messagebus-client/pull/21
There was an incompability with the latest websocket-client and the
messagebus which needed fixing for Linux distro compatibility. Since
messagebus-client was going to depend on websocket-client 1.2.1, let's
do the same in core

* Bump message bus client and tornado versions

New version of the messagebus-client released.
Upgraded Tornado to match new function signature.

* Revert removal of websocket-client

It is still used in the `mycroft.client.text.gui_server`

Should investigate removal of this so that websocket client versions do not need to be
kept in sync between mycroft-core and mycroft-messagebus-client.

Co-authored-by: Kris Gesling <kris.gesling@mycroft.ai>
2021-10-28 14:42:23 +09:30
Kris Gesling 3495acf9ab
Merge pull request #3003 from Joanguitar/dev
Add reusable PadatiousMatcher to speed up intent matching
2021-10-21 12:25:34 +09:30
Chris Veilleux 5229f61bbf Fixed formatting error in skill loader log message 2021-10-15 14:51:05 -05:00
Kris Gesling 99be84df2e Add Github Action for pushing to gitlab 2021-10-04 16:20:35 +09:30
ken-mycroft 10fd812f2b Improve confidence calculation for Common Query (#2986)
* Improve confidence calculation

* Add actual noise words file

* Update expected test confidence levels

Co-authored-by: Kris Gesling <kris.gesling@mycroft.ai>
2021-09-27 14:59:57 +09:30
Kris Gesling 2a6bb90c9f
Merge pull request #2963 from forslund/feature/update-adapt-keyword-registration-message
Update key names in adapt keyword registration message
2021-09-27 10:30:12 +09:30
Åke Forslund f709bb9a1e Use IntentServiceInterface in MycroftSkill.register_vocabulary()
This moves the message logic for adapt keyword registration into a single location.
2021-09-26 19:15:21 +02:00
Åke Forslund 693100e8c6 Match keyword entity terms in Mycroft with Adapt
This changes the internally used names for entities and entity values when
sent on the messagebus and used interanally in the intent service from start / end to entity_value and entity_type.

This makes the terminology easier to understand and follow across into Adapt.

The old terms are still included and usable for compatibility but should be
removed in an upcoming major release (22.02).
2021-09-26 19:15:17 +02:00
ken-mycroft 5e81e2747b
Improve confidence calculation for Common Query (#2986)
* Improve confidence calculation

* Add actual noise words file

* Update expected test confidence levels

Co-authored-by: Kris Gesling <kris.gesling@mycroft.ai>
2021-09-20 16:33:28 +09:30
Joan Palacios 0f98c566b9
Removed lru_cache 2021-09-16 13:31:22 -04:00
Joan 863e7844d1 Padatious doesn't need to run 3 times 2021-09-16 12:48:23 -04:00
Daniel McKnight 600aa76206
Add 'utterances' to message emitted to skill intent handler (#2997)
* Add 'utterances' to message emitted to skill intent handler

* Reformat comment to resolve PEP warnings

* Update comments per PR feedback

* Cut line-length for style compliance

Co-authored-by: Kris Gesling <kris.gesling@mycroft.ai>
2021-09-13 11:15:57 +09:30
Chris Veilleux 06253906fc
Merge pull request #2979 from MycroftAI/bugfix/release-gui-on-shutdown
Release GUI on Skill shutdown or reload
2021-09-10 16:30:02 -05:00
Kris Gesling 4bce5345cb
Merge pull request #2985 from MycroftAI/feature/gTTS-warning
Add warning for anyone loading GoogleTTS
2021-09-07 16:09:05 +09:30
devs-mycroft 13539d3397 Version bump from 21.2.0 to 21.2.1 2021-08-27 03:02:54 +00:00
Kris Gesling 8a68c88bcf Add warning for anyone loading GoogleTTS 2021-08-27 09:49:40 +09:30
Kris Gesling 109e8ca482 resolve merge conflict 2021-08-17 23:19:14 +09:30
Kris Gesling d26201d978 Release GUI on Skill shutdown or reload 2021-08-17 16:40:05 +09:30
Aditya Mehra 9c380202bc add fullscreen fix 2021-08-17 15:58:27 +09:30
Kris Gesling 4df863633d Merge dev pre-XDG into feature/mark-2
This includes all commits up to but not including PR #2794
2021-08-17 15:56:42 +09:30
Kris Gesling 34ef8752ec Demote cpu temp and led log messages to debug 2021-08-17 15:41:58 +09:30
Chris Veilleux 8fcfa901c3
Merge pull request #2970 from MycroftAI/feature/mycroft-skills-adaptintent
Provide AdaptIntent from mycroft.skills
2021-08-13 14:53:46 -05:00
Kris Gesling 196e9750e3
Merge pull request #2967 from AIIX/fix/webview_fullscreen
add fullscreen fix for webviews
2021-08-11 09:44:05 +09:30
Kris Gesling eadb5c9985 Provide AdaptIntent from mycroft.skills
This is convenience for Skill developers who can now import
all standard items from a single level. Eg:
from mycroft.skills import MycroftSkill, intent_handler, AdaptIntent
2021-08-09 15:55:04 +09:30
Aditya Mehra 8be5e9ba72 add fullscreen fix 2021-08-06 14:32:52 +09:30
Åke Forslund 4258e2f2ed Reorder imports of mycroft.configuration 2021-08-05 10:04:45 +02:00
jarbasal 87d22d30a4 fix cyclic imports with LOG
The mycroft.util.log module called LOG.init() which needs to read the config,
the configuration module imports the log system to log causing cyclic import
issues.

This moves the LOG.init() call out of the log module making it possible
to use the normal config system to init the logs and does a slight
re-arrangement so that the uninited log can be used.
2021-08-05 10:04:45 +02:00
Åke Forslund 3fd96cf71b WIP Review comments
- Add TODO for 22.02 to remove the compatibility code
- Make Warning a single Log statement
- mycroft-config script now uses XDG-environment variable
- Remove redundant code
- Replace hard coded references to ~/.config
- Explicitly remove new path before move of "filesystem" (if needed)
2021-08-05 10:04:45 +02:00
Åke Forslund 9029dc1f41 Slight cleanup
- Make XDG usage more visible by using the xdg module prefix
- fix overloaded python keywords
- remove unused imports
2021-08-05 10:04:45 +02:00
Åke Forslund 8e69d4616d Correct resolution order for resolving log configs 2021-08-05 10:04:45 +02:00
Åke Forslund 28017993c5 Restore system locations to mycroft.configuration
Fixes issue with Timer skill
2021-08-05 10:04:45 +02:00
Bart Ribbers e20443b824 Use XDG Base directories for settings, cache and runtime data
Improve deprecation warning message
2021-08-05 10:04:45 +02:00
Kris Gesling 313f4e8759
Merge pull request #2946 from MycroftAI/refactor/vk-test-helpers
Improve the speed of waiting for dialogs helper function
2021-08-05 09:29:17 +09:30
Kris Gesling 7c413de32c
Merge pull request #2956 from AIIX/web_enable_request_feature
Add feature request functionality to webviews
2021-08-04 11:42:45 +09:30
Kris Gesling a794db0c9a Make network tests configurable
Previously test URIs were hardcoded.
They can now be configured in mycroft.conf
2021-08-02 21:00:05 +09:30
jarbasal 88818bd52f Fix loading of audioservice plugins 2021-07-26 21:17:17 +09:30
jarbasal 24c4ba4a05 Fix loading of audioservice plugins 2021-07-23 09:17:58 +02:00
Aditya Mehra 45d5d9e478 Add feature request functionality to webviews 2021-07-23 15:14:06 +09:30
Kris Gesling 31e1e2d857
Merge pull request #2927 from ChanceNCounter/fix/lang-none
stop passing lang=None to Lingua Franca
2021-07-12 21:46:17 +09:30
Chris Veilleux fbb1d06adc Merge remote-tracking branch 'origin/refactor/vk-test-helpers' into refactor/vk-test-helpers 2021-07-09 15:43:25 -05:00
Kris Gesling b3a0b3b1e4
Merge pull request #2938 from forslund/bugfix/tts-returned-cache-path
Fix TTS using the returned path
2021-07-08 11:56:32 +09:30
Chris Veilleux 18cb28088d Added comments to document race condition 2021-07-06 13:48:52 -05:00
HKalbasi 28c52fef75 fa-ir localization initialized (#2778)
==== Localization Notes ====
fa-ir: 35 strings added
2021-07-06 07:10:23 +09:30
Ken Smith ff01b7388b add pause and resume ability to tts playback thread and use it during barge in 2021-07-02 12:12:07 -04:00
Åke Forslund 0ae02b5939 Fix TTS using the returned path 2021-07-02 08:34:03 +02:00
Kris Gesling 6099da18b3
Merge pull request #2934 from MycroftAI/bugfix/tts-audio-file-path
Fix #2929: use returned TTS audio file path
2021-06-30 07:03:01 +09:30
Kris Gesling 0394568704 Use returned TTS audio file path
This reverts an unintentional breaking change.
A TTS engine may return a different file path than was requested.
This again uses the returned path but adds a deprecation warning
that this behaviour will no longer be supported in an upcoming release.

Fixes #2929
2021-06-29 21:53:53 +09:30
Kris Gesling 0cbd040a55
Merge pull request #2900 from MycroftAI/bugfix/common-play-active
Add Common Play to active Skills when invoked
2021-06-29 20:59:33 +09:30
Kris Gesling 21eabceb29 Do not create a 'None' cache directory
The persistent_cache_dir was assigned None if no preloaded_cache existed.
This was then created as a directory when it's clearly not needed.
2021-06-25 14:26:14 +09:30
ChanceNCounter a211441acc stop passing lang=None to Lingua Franca
LF's only breaking change over the past two versions has been the
deprecation of `lang=None` as a valid parameter. This is because the new
language loading paradigm wants to load certain functions on the fly,
which it cannot do when it is explicitly told to look for a null lang.

I've addressed this by passing `lingua_franca.get_default_lang()` where
the `lang=None` call remained.

Bonus: Gets rid of over 200 DeprecationWarnings in unit tests!
2021-06-23 21:56:19 -07:00
Kris Gesling 02faba9db8 fix indentation error 2021-06-17 15:25:23 +09:30
Kris Gesling aa83b9f7c0 Merge branch 'skill_control' into feature/mark-2
As requested.
2021-06-16 23:11:53 +09:30
Kris Gesling 2c598fd96b Merge branch 'dev' into feature/mark-2 2021-06-15 12:01:18 +09:30
Åke Forslund 5d3393b935 Make TTSCahce safer
Add __contains__ method to TTSCache, The cache contains a SHA if the SHA is
known and all expected files exists on disk.

This is handles unexpected system events in a more consistent manner and
will still be fast for the case where a new sentence needs to be
synthetisized.
2021-06-10 09:33:06 +02:00
Kris Gesling 6d57b4a855 Remove Mark II specific deprecation notices.
These were being perceived by the community as mycroft-core deprecations
Ducking is required on other platforms so I think it's worth waiting to
see how we implement that before actually deprecating the methods.
2021-06-10 06:47:25 +09:30
Chris Veilleux 4d7ed0f25e Added to docstring to explain why the method took a list of utterances instead of a single utterance. 2021-06-05 13:39:57 -05:00
Chris Veilleux 2a9f63c173 Fixed a bug where the highest confidence from the Adapt parser is different than the highest confidence from the Adapt intent matcher. 2021-06-05 12:15:02 -05:00
Kris Gesling 0e2a78068a
Merge pull request #2910 from MycroftAI/feature/avx-check
Check for the AVX instruction set during install
2021-06-02 06:54:08 +09:30
Kris Gesling 1cc25da144
Merge pull request #2898 from MycroftAI/bugfix/docstring-cleanup
Cleanup of documentation
2021-06-01 12:16:44 +09:30
mathmauney 305b93625a Update hotword_factory.py
Fix long line string
2021-05-28 21:48:49 +09:30
mathmauney 011c3899a9 Fix line too long 2021-05-28 21:48:49 +09:30
mathmauney 4ca656caac Issue-2232 Add warning when AVX is not detected and fallback. 2021-05-28 21:48:49 +09:30
Kris Gesling 891784a454
Merge pull request #2888 from forslund/refactor/mimic_tts-dont-load-config-on-import
Refactor mimic_tts to not load config when importing
2021-05-28 15:24:13 +09:30
Åke Forslund ad410d4bfc Remove registered keywords on skill shutdown
Uses new drop_*() methods from adapt-parser 0.4.0
2021-05-27 22:24:55 +02:00
Kris Gesling 0062b3f439 Bump version number 2021-05-26 16:29:20 +09:30
Kris Gesling 8d6759ce63 Merge 21.02 changes from 'dev' into feature/mark-2 2021-05-26 16:12:25 +09:30
devs-mycroft 6c0be727e2 Version bump from 21.2.-1 to 21.2.0 2021-05-26 04:00:38 +00:00
Kris Gesling b9f1fb7ffb Bump core version and MSM for impending core update 2021-05-20 14:17:42 +09:30
Ken Smith a6cba040e9 revert change to existing skill behavior 2021-05-19 18:53:28 -04:00