@bharper/atv-js 0.2.6 → 0.3.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +15 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +89 -9
- package/dist/index.js.map +1 -1
- package/dist/mdns.d.ts.map +1 -1
- package/dist/mdns.js +96 -11
- package/dist/mdns.js.map +1 -1
- package/examples/print-device-json.js +22 -0
- package/package.json +2 -3
- package/pyatv/.codecov.yml +38 -0
- package/pyatv/.github/FUNDING.yml +3 -0
- package/pyatv/.github/ISSUE_TEMPLATE/bug_report.yml +80 -0
- package/pyatv/.github/ISSUE_TEMPLATE/config.yml +1 -0
- package/pyatv/.github/ISSUE_TEMPLATE/feature_request.yml +22 -0
- package/pyatv/.github/ISSUE_TEMPLATE/implementation-proposal.yml +29 -0
- package/pyatv/.github/ISSUE_TEMPLATE/investigation.yml +16 -0
- package/pyatv/.github/ISSUE_TEMPLATE/minor-change.yml +10 -0
- package/pyatv/.github/ISSUE_TEMPLATE/question-or-idea.yml +11 -0
- package/pyatv/.github/dependabot.yml +26 -0
- package/pyatv/.github/workflows/codeql-analysis.yml +71 -0
- package/pyatv/.github/workflows/release.yml +160 -0
- package/pyatv/.github/workflows/tests.yml +104 -0
- package/pyatv/.gitpod.yml +23 -0
- package/pyatv/CHANGES.md +3708 -0
- package/pyatv/CODE_OF_CONDUCT.md +76 -0
- package/pyatv/CONTRIBUTING.md +72 -0
- package/pyatv/CONTRIBUTORS.md +3 -0
- package/pyatv/Dockerfile +15 -0
- package/pyatv/LICENSE.md +9 -0
- package/pyatv/MANIFEST.in +14 -0
- package/pyatv/README.md +111 -0
- package/pyatv/base_versions.txt +13 -0
- package/pyatv/chickn.yaml +75 -0
- package/pyatv/docs/404.html +24 -0
- package/pyatv/docs/CNAME +1 -0
- package/pyatv/docs/Gemfile +31 -0
- package/pyatv/docs/_config.yml +121 -0
- package/pyatv/docs/_includes/api +10 -0
- package/pyatv/docs/_includes/atvremote_scan +32 -0
- package/pyatv/docs/_includes/code +6 -0
- package/pyatv/docs/_includes/issue +14 -0
- package/pyatv/docs/_includes/pypi +5 -0
- package/pyatv/docs/_layouts/template.html +109 -0
- package/pyatv/docs/api/pyatv.conf.html +312 -0
- package/pyatv/docs/api/pyatv.const.html +974 -0
- package/pyatv/docs/api/pyatv.convert.html +106 -0
- package/pyatv/docs/api/pyatv.exceptions.html +489 -0
- package/pyatv/docs/api/pyatv.helpers.html +102 -0
- package/pyatv/docs/api/pyatv.html +120 -0
- package/pyatv/docs/api/pyatv.interface.html +2369 -0
- package/pyatv/docs/api/pyatv.settings.html +484 -0
- package/pyatv/docs/api/pyatv.storage.file_storage.html +102 -0
- package/pyatv/docs/api/pyatv.storage.html +186 -0
- package/pyatv/docs/api/pyatv.storage.memory_storage.html +83 -0
- package/pyatv/docs/assets/css/custom.css +19 -0
- package/pyatv/docs/assets/css/hljs.css +1 -0
- package/pyatv/docs/assets/css/normalize.css +349 -0
- package/pyatv/docs/assets/css/pdoc.css +287 -0
- package/pyatv/docs/assets/css/sanitize.css +566 -0
- package/pyatv/docs/assets/css/style.scss +9 -0
- package/pyatv/docs/assets/img/logo.svg +63 -0
- package/pyatv/docs/assets/js/highlight.9.12.0.min.js +3 -0
- package/pyatv/docs/assets/js/mermaid.8.9.2.min.js +32 -0
- package/pyatv/docs/assets/js/mermaid.min.js.map +1 -0
- package/pyatv/docs/development/apps.md +81 -0
- package/pyatv/docs/development/audio.md +42 -0
- package/pyatv/docs/development/control.md +56 -0
- package/pyatv/docs/development/development.md +15 -0
- package/pyatv/docs/development/device_info.md +36 -0
- package/pyatv/docs/development/examples.md +44 -0
- package/pyatv/docs/development/features.md +70 -0
- package/pyatv/docs/development/keyboard.md +51 -0
- package/pyatv/docs/development/listeners.md +144 -0
- package/pyatv/docs/development/logging.md +55 -0
- package/pyatv/docs/development/metadata.md +115 -0
- package/pyatv/docs/development/power_management.md +53 -0
- package/pyatv/docs/development/scan_pair_and_connect.md +331 -0
- package/pyatv/docs/development/services.md +9 -0
- package/pyatv/docs/development/storage.md +259 -0
- package/pyatv/docs/development/stream.md +241 -0
- package/pyatv/docs/development/testing.md +9 -0
- package/pyatv/docs/documentation/atvlog.md +64 -0
- package/pyatv/docs/documentation/atvproxy.md +244 -0
- package/pyatv/docs/documentation/atvremote.md +639 -0
- package/pyatv/docs/documentation/atvscript.md +275 -0
- package/pyatv/docs/documentation/concepts.md +168 -0
- package/pyatv/docs/documentation/documentation.md +130 -0
- package/pyatv/docs/documentation/getting_started.md +248 -0
- package/pyatv/docs/documentation/protocols.md +1959 -0
- package/pyatv/docs/documentation/supported_features.md +246 -0
- package/pyatv/docs/documentation/tutorial.md +1062 -0
- package/pyatv/docs/documentation/workspace.code-workspace +7 -0
- package/pyatv/docs/favicon.ico +0 -0
- package/pyatv/docs/index.md +109 -0
- package/pyatv/docs/internals/design.md +354 -0
- package/pyatv/docs/internals/documentation.md +84 -0
- package/pyatv/docs/internals/interfaces.md +95 -0
- package/pyatv/docs/internals/internals.md +157 -0
- package/pyatv/docs/internals/submit_pr.md +56 -0
- package/pyatv/docs/internals/testing.md +176 -0
- package/pyatv/docs/internals/tools.md +574 -0
- package/pyatv/docs/pdoc_templates/config.mako +46 -0
- package/pyatv/docs/pdoc_templates/html.mako +454 -0
- package/pyatv/docs/support/acknowledgements.md +87 -0
- package/pyatv/docs/support/faq.md +214 -0
- package/pyatv/docs/support/migration.md +138 -0
- package/pyatv/docs/support/scanning_issues.md +110 -0
- package/pyatv/docs/support/support.md +18 -0
- package/pyatv/docs/support/troubleshooting.md +83 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/AudioFadeMessage.proto +13 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/AudioFadeMessage_pb2.pyi +37 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/AudioFadeResponseMessage.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/AudioFadeResponseMessage_pb2.pyi +32 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/AudioFormatSettingsMessage.proto +5 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/AudioFormatSettingsMessage_pb2.pyi +27 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/ClientUpdatesConfigMessage.proto +16 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/ClientUpdatesConfigMessage_pb2.pyi +44 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/CommandInfo.proto +117 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/CommandInfo_pb2.pyi +325 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/CommandOptions.proto +36 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/CommandOptions_pb2.pyi +115 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/Common.proto +79 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/Common_pb2.pyi +228 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/ConfigureConnectionMessage.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/ConfigureConnectionMessage_pb2.pyi +32 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/ContentItem.proto +27 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/ContentItemMetadata.proto +213 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/ContentItemMetadata_pb2.pyi +630 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/ContentItem_pb2.pyi +94 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/CryptoPairingMessage.proto +15 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/CryptoPairingMessage_pb2.pyi +46 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/DeviceInfoMessage.proto +69 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/DeviceInfoMessage_pb2.pyi +226 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/GenericMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/GenericMessage_pb2.pyi +35 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/GetKeyboardSessionMessage.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/GetKeyboardSessionMessage_pb2.pyi +26 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/GetRemoteTextInputSessionMessage.proto +10 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/GetRemoteTextInputSessionMessage_pb2.pyi +26 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/GetVolumeMessage.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/GetVolumeMessage_pb2.pyi +32 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/GetVolumeResultMessage.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/GetVolumeResultMessage_pb2.pyi +32 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/KeyboardMessage.proto +88 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/KeyboardMessage_pb2.pyi +261 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/LanguageOption.proto +9 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/LanguageOption_pb2.pyi +42 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/ModifyOutputContextRequestMessage.proto +23 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/ModifyOutputContextRequestMessage_pb2.pyi +86 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/NotificationMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/NotificationMessage_pb2.pyi +38 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/NowPlayingClient.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/NowPlayingClient_pb2.pyi +49 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/NowPlayingInfo.proto +24 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/NowPlayingInfo_pb2.pyi +79 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/NowPlayingPlayer.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/NowPlayingPlayer_pb2.pyi +45 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/Origin.proto +17 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/OriginClientPropertiesMessage.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/OriginClientPropertiesMessage_pb2.pyi +32 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/Origin_pb2.pyi +63 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/PlaybackQueue.proto +15 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/PlaybackQueueCapabilities.proto +7 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/PlaybackQueueCapabilities_pb2.pyi +33 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/PlaybackQueueContext.proto +5 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/PlaybackQueueContext_pb2.pyi +27 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/PlaybackQueueRequestMessage.proto +29 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/PlaybackQueueRequestMessage_pb2.pyi +87 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/PlaybackQueue_pb2.pyi +53 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/PlayerClientPropertiesMessage.proto +13 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/PlayerClientPropertiesMessage_pb2.pyi +37 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/PlayerPath.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/PlayerPath_pb2.pyi +39 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/ProtocolMessage.proto +171 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/ProtocolMessage_pb2.pyi +377 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RegisterForGameControllerEventsMessage.proto +18 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RegisterForGameControllerEventsMessage_pb2.pyi +54 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RegisterHIDDeviceMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RegisterHIDDeviceMessage_pb2.pyi +34 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RegisterHIDDeviceResultMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RegisterHIDDeviceResultMessage_pb2.pyi +35 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RegisterVoiceInputDeviceMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RegisterVoiceInputDeviceMessage_pb2.pyi +34 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RegisterVoiceInputDeviceResponseMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RegisterVoiceInputDeviceResponseMessage_pb2.pyi +35 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RemoteTextInputMessage.proto +13 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RemoteTextInputMessage_pb2.pyi +38 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RemoveClientMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RemoveClientMessage_pb2.pyi +34 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RemoveEndpointsMessage.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RemoveEndpointsMessage_pb2.pyi +34 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RemoveOutputDevicesMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RemoveOutputDevicesMessage_pb2.pyi +38 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RemovePlayerMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/RemovePlayerMessage_pb2.pyi +34 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SendButtonEventMessage.proto +13 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SendButtonEventMessage_pb2.pyi +38 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SendCommandMessage.proto +16 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SendCommandMessage_pb2.pyi +43 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SendCommandResultMessage.proto +100 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SendCommandResultMessage_pb2.pyi +286 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SendHIDEventMessage.proto +41 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SendHIDEventMessage_pb2.pyi +63 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SendPackedVirtualTouchEventMessage.proto +24 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SendPackedVirtualTouchEventMessage_pb2.pyi +64 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SendVoiceInputMessage.proto +38 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SendVoiceInputMessage_pb2.pyi +134 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetArtworkMessage.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetArtworkMessage_pb2.pyi +32 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetConnectionStateMessage.proto +18 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetConnectionStateMessage_pb2.pyi +54 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetDefaultSupportedCommandsMessage.proto +28 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetDefaultSupportedCommandsMessage_pb2.pyi +74 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetDiscoveryModeMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetDiscoveryModeMessage_pb2.pyi +35 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetHiliteModeMessage.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetHiliteModeMessage_pb2.pyi +32 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetNowPlayingClientMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetNowPlayingClientMessage_pb2.pyi +34 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetNowPlayingPlayerMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetNowPlayingPlayerMessage_pb2.pyi +34 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetRecordingStateMessage.proto +17 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetRecordingStateMessage_pb2.pyi +54 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetStateMessage.proto +27 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetStateMessage_pb2.pyi +72 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetVolumeMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SetVolumeMessage_pb2.pyi +35 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SupportedCommands.proto +7 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/SupportedCommands_pb2.pyi +30 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/TextInputMessage.proto +23 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/TextInputMessage_pb2.pyi +76 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/TransactionKey.proto +6 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/TransactionKey_pb2.pyi +30 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/TransactionMessage.proto +15 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/TransactionMessage_pb2.pyi +42 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/TransactionPacket.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/TransactionPacket_pb2.pyi +41 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/TransactionPackets.proto +7 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/TransactionPackets_pb2.pyi +30 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/UpdateClientMessage.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/UpdateClientMessage_pb2.pyi +34 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/UpdateContentItemArtworkMessage.proto +14 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/UpdateContentItemArtworkMessage_pb2.pyi +41 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/UpdateContentItemMessage.proto +14 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/UpdateContentItemMessage_pb2.pyi +41 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/UpdateEndPointsMessage.proto +25 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/UpdateEndPointsMessage_pb2.pyi +74 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/UpdateOutputDeviceMessage.proto +88 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/UpdateOutputDeviceMessage_pb2.pyi +277 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/UpdatePlayerPath.proto +12 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/UpdatePlayerPath_pb2.pyi +34 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/VirtualTouchDeviceDescriptorMessage.proto +8 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/VirtualTouchDeviceDescriptorMessage_pb2.pyi +36 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/VoiceInputDeviceDescriptorMessage.proto +8 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/VoiceInputDeviceDescriptorMessage_pb2.pyi +35 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/VolumeControlAvailabilityMessage.proto +23 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/VolumeControlAvailabilityMessage_pb2.pyi +71 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/VolumeControlCapabilitiesDidChangeMessage.proto +14 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/VolumeControlCapabilitiesDidChangeMessage_pb2.pyi +40 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/VolumeDidChangeMessage.proto +13 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/VolumeDidChangeMessage_pb2.pyi +38 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/WakeDeviceMessage.proto +11 -0
- package/pyatv/pyatv/protocols/mrp/protobuf/WakeDeviceMessage_pb2.pyi +26 -0
- package/pyatv/pyatv/py.typed +0 -0
- package/pyatv/pylintrc +49 -0
- package/pyatv/pyproject.toml +74 -0
- package/pyatv/requirements/requirements.txt +14 -0
- package/pyatv/requirements/requirements_docs.txt +2 -0
- package/pyatv/requirements/requirements_test.txt +20 -0
- package/pyatv/scripts/build_docs.sh +17 -0
- package/pyatv/scripts/setup_dev_env.sh +83 -0
- package/pyatv/setup.cfg +14 -0
- package/pyatv/tests/data/README +23 -0
- package/pyatv/tests/data/audio_10_frames.wav +0 -0
- package/pyatv/tests/data/audio_1_packet_metadata.wav +0 -0
- package/pyatv/tests/data/audio_3_packets.wav +0 -0
- package/pyatv/tests/data/only_metadata.wav +0 -0
- package/pyatv/tests/data/only_title.wav +0 -0
- package/pyatv/tests/data/static_3sec.ogg +0 -0
- package/pyatv/tests/data/testfile.txt +1 -0
- package/pyatv/tests/support/pyatv.code-workspace +14 -0
- package/src/index.ts +122 -8
- package/src/mdns.ts +64 -11
package/pyatv/CHANGES.md
ADDED
|
@@ -0,0 +1,3708 @@
|
|
|
1
|
+
# CHANGES
|
|
2
|
+
|
|
3
|
+
## 0.16.1 Uter (2025-07-12)
|
|
4
|
+
|
|
5
|
+
Hey-ho, minor release (finally) that should fix:
|
|
6
|
+
|
|
7
|
+
* Connection issues with tvOS 18.4+
|
|
8
|
+
* Warnings related to protobuf
|
|
9
|
+
|
|
10
|
+
**Changes:**
|
|
11
|
+
|
|
12
|
+
*Protocol: AirPlay:*
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
e27164ba airplay: Add setting for MRP tunnel
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
*Protocol: Companion:*
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
607c5e0c companion: Use static id for _i in _systemInfo
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
*Other:*
|
|
25
|
+
|
|
26
|
+
```
|
|
27
|
+
5b1ec5d7 deps: Bump protbuf generated messages
|
|
28
|
+
f75e718b deps: Bump protobuf to 30.2
|
|
29
|
+
d711126e deps: Set cryptography 44.0.1 as base version
|
|
30
|
+
9c221d18 cq: Fix issues with new black
|
|
31
|
+
2e20e41b cq: Fix some spelling issues
|
|
32
|
+
93707a9d favor companion protocol for power state
|
|
33
|
+
cc615074 Fix typo, expand acronym at first use
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
**All changes:**
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
6f1a6bd0 build(deps): Bump pytest from 8.3.5 to 8.4.1 in /requirements
|
|
40
|
+
f532a9e3 build(deps): Bump cryptography from 45.0.4 to 45.0.5 in /requirements
|
|
41
|
+
4d93611a build(deps): Bump pytest-cov from 6.1.1 to 6.2.1 in /requirements
|
|
42
|
+
4b65ed9a build(deps): Bump flake8 from 7.2.0 to 7.3.0 in /requirements
|
|
43
|
+
bca12f6b build(deps): Bump mypy from 1.15.0 to 1.16.1 in /requirements
|
|
44
|
+
c4fa39fa build(deps): Bump types-requests in /requirements
|
|
45
|
+
607c5e0c companion: Use static id for _i in _systemInfo
|
|
46
|
+
16285cf9 build(deps): Bump protobuf from 6.31.0 to 6.31.1 in /base_versions.txt
|
|
47
|
+
5b1ec5d7 deps: Bump protbuf generated messages
|
|
48
|
+
4b0a53a7 build(deps): Bump types-protobuf in /requirements
|
|
49
|
+
b1f6f0c1 build(deps): Bump pytest-xdist from 3.6.1 to 3.8.0 in /requirements
|
|
50
|
+
80f4f330 build(deps): Bump pyfakefs from 5.8.0 to 5.9.1 in /requirements
|
|
51
|
+
20af0ebc build(deps): Bump deepdiff from 8.4.2 to 8.5.0 in /requirements
|
|
52
|
+
49f9c9e9 build(deps): Bump tinytag from 2.1.0 to 2.1.1 in /requirements
|
|
53
|
+
620adf37 build(deps): Bump aiohttp from 3.11.16 to 3.12.13 in /requirements
|
|
54
|
+
b42625f3 build(deps): Bump pydantic from 2.11.3 to 2.11.7 in /requirements
|
|
55
|
+
ef5c1050 build(deps): Bump pylint from 3.3.6 to 3.3.7 in /requirements
|
|
56
|
+
8fdb6f49 build(deps): Bump zeroconf from 0.146.3 to 0.147.0 in /requirements
|
|
57
|
+
2bacfd29 build(deps): Bump pytest-httpserver from 1.1.2 to 1.1.3 in /requirements
|
|
58
|
+
99c53cd8 build(deps): Bump pytest-timeout from 2.3.1 to 2.4.0 in /requirements
|
|
59
|
+
1aa3e48a build(deps): Bump cryptography from 44.0.2 to 45.0.4 in /requirements
|
|
60
|
+
7bfb6f8f build(deps): Bump requests from 2.32.3 to 2.32.4 in /requirements
|
|
61
|
+
bd95e619 build(deps): Bump python from 3.13.2-alpine to 3.13.5-alpine
|
|
62
|
+
6d802da9 build(deps): Bump protobuf from 6.30.2 to 6.31.1 in /requirements
|
|
63
|
+
2fbdbd44 build(deps): Bump types-requests in /requirements
|
|
64
|
+
b39f231b build(deps): Bump deepdiff from 8.2.0 to 8.4.2 in /requirements
|
|
65
|
+
d0d82782 build(deps): Bump pdoc3 from 0.11.5 to 0.11.6 in /requirements
|
|
66
|
+
2b26c678 build(deps): Bump pyfakefs from 5.7.4 to 5.8.0 in /requirements
|
|
67
|
+
41cae432 build(deps): Bump pylint from 3.3.4 to 3.3.6 in /requirements
|
|
68
|
+
e47a83d1 build(deps): Bump pytest-cov from 6.0.0 to 6.1.1 in /requirements
|
|
69
|
+
505f326b build(deps): Bump aiohttp from 3.11.13 to 3.11.16 in /requirements
|
|
70
|
+
817f4a06 build(deps): Bump pydantic from 2.10.6 to 2.11.3 in /requirements
|
|
71
|
+
a0e23125 build(deps): Bump pytest-asyncio from 0.25.3 to 0.26.0 in /requirements
|
|
72
|
+
d5db5541 build(deps): Bump types-protobuf in /requirements
|
|
73
|
+
788302e4 build(deps): Bump flake8 from 7.1.2 to 7.2.0 in /requirements
|
|
74
|
+
cf96948b build(deps): Bump zeroconf from 0.145.1 to 0.146.3 in /requirements
|
|
75
|
+
f75e718b deps: Bump protobuf to 30.2
|
|
76
|
+
a6cb277e build(deps): Bump pytest-asyncio from 0.24.0 to 0.25.3 in /requirements
|
|
77
|
+
8d0789be build(deps): Bump mypy from 1.13.0 to 1.15.0 in /requirements
|
|
78
|
+
ab395235 build(deps): Bump types-requests in /requirements
|
|
79
|
+
3c3f03c8 build(deps): Bump pytest-httpserver from 1.1.0 to 1.1.2 in /requirements
|
|
80
|
+
fb13d6aa build(deps): Bump pytest from 8.3.4 to 8.3.5 in /requirements
|
|
81
|
+
1ef9b792 build(deps): Bump cryptography from 44.0.1 to 44.0.2 in /requirements
|
|
82
|
+
e27164ba airplay: Add setting for MRP tunnel
|
|
83
|
+
d711126e deps: Set cryptography 44.0.1 as base version
|
|
84
|
+
9c221d18 cq: Fix issues with new black
|
|
85
|
+
1a23ed27 build(deps): Bump black from 24.10.0 to 25.1.0 in /requirements
|
|
86
|
+
593da8a3 build(deps): Bump zeroconf from 0.144.1 to 0.145.1 in /requirements
|
|
87
|
+
487904d5 build(deps): Bump aiohttp from 3.11.12 to 3.11.13 in /requirements
|
|
88
|
+
2e20e41b cq: Fix some spelling issues
|
|
89
|
+
ecb66554 build(deps): Bump codespell from 2.3.0 to 2.4.1 in /requirements
|
|
90
|
+
93707a9d favor companion protocol for power state
|
|
91
|
+
d65d9250 build(deps): Bump types-tabulate in /requirements
|
|
92
|
+
0d4fdc9c build(deps): Bump tinytag from 2.0.0 to 2.1.0 in /requirements
|
|
93
|
+
0bdcb33e build(deps): Bump deepdiff from 8.0.1 to 8.2.0 in /requirements
|
|
94
|
+
b6127538 build(deps): Bump types-protobuf in /requirements
|
|
95
|
+
851fb466 build(deps): Bump isort from 5.13.2 to 6.0.1 in /requirements
|
|
96
|
+
b2d8519c build(deps): Bump flake8 from 7.1.1 to 7.1.2 in /requirements
|
|
97
|
+
742c87b5 build(deps): Bump pyfakefs from 5.7.1 to 5.7.4 in /requirements
|
|
98
|
+
ec1f17e9 build(deps): Bump python from 3.13.0-alpine to 3.13.2-alpine
|
|
99
|
+
a16feaab build(deps): Bump cryptography from 43.0.3 to 44.0.1 in /requirements
|
|
100
|
+
cc615074 Fix typo, expand acronym at first use
|
|
101
|
+
35abdb2c build(deps): Bump pdoc3 from 0.11.1 to 0.11.5 in /requirements
|
|
102
|
+
3e9e15f1 build(deps): Bump pydantic from 2.9.2 to 2.10.6 in /requirements
|
|
103
|
+
245bd900 build(deps): Bump pytest from 8.3.3 to 8.3.4 in /requirements
|
|
104
|
+
74dda728 build(deps): Bump async-timeout from 4.0.3 to 5.0.1 in /requirements
|
|
105
|
+
3edf6b15 build(deps): Bump protobuf from 5.28.3 to 5.29.3 in /requirements
|
|
106
|
+
b5e2fa84 build(deps): Bump pylint from 3.3.1 to 3.3.4 in /requirements
|
|
107
|
+
c1391200 build(deps): Bump aiohttp from 3.10.10 to 3.11.12 in /requirements
|
|
108
|
+
2ebb4b0a build(deps): Bump zeroconf from 0.136.0 to 0.144.1 in /requirements
|
|
109
|
+
49bd01d3 build(deps): Bump types-protobuf in /requirements
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## 0.16.0 Troy (2024-11-03)
|
|
113
|
+
|
|
114
|
+
Okie-dokie, let's do this. Due to Python 3.13 removing some deprecated
|
|
115
|
+
modules, you might have encountered an import error related to
|
|
116
|
+
`imghdr`. This module is not used directly by pyatv, but rather
|
|
117
|
+
indirectly via the `mediafile` library. As `mediafile` is not
|
|
118
|
+
maintained much these days, I decided to replace it with `tinytag`
|
|
119
|
+
instead. I have also added python 3.13 as an offically supported
|
|
120
|
+
version.
|
|
121
|
+
|
|
122
|
+
Another somewhat related change is that Python 3.8 is no longer
|
|
123
|
+
supported. It is end-of-life and some of my dependencies are
|
|
124
|
+
dropping support for it, so it's hard to maintain. Good bye,
|
|
125
|
+
old friend!
|
|
126
|
+
|
|
127
|
+
There are some new stuff as well:
|
|
128
|
+
|
|
129
|
+
* It is possible specify filename with `artwork_save` in `atvremote` (@AVITPL)
|
|
130
|
+
* Input actions are now fully supported in Companion (@dmrgn1991)
|
|
131
|
+
* iTunes Store Identifier is now exposed when available (@JarekToro)
|
|
132
|
+
|
|
133
|
+
There are a few minor bug fixes and clean up of warnings as well.
|
|
134
|
+
Everything is stated below.
|
|
135
|
+
|
|
136
|
+
**Changes:**
|
|
137
|
+
|
|
138
|
+
*Other:*
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
b310213b deps: Remove mediafile as dependency
|
|
142
|
+
f6bc9d9f gha: Update upload-artifact to v4
|
|
143
|
+
4a193b67 core: Update device info
|
|
144
|
+
658fd062 cq: Minor updates
|
|
145
|
+
1be71809 deps: Support python 3.13
|
|
146
|
+
41e58d53 deps: Bump base requests to 2.30.0
|
|
147
|
+
e73da542 deps: Deprecate python 3.8
|
|
148
|
+
cb2b050a Artwork_save file naming.
|
|
149
|
+
8a79abaf Update test_companion_functional.py
|
|
150
|
+
1569eae0 Update setup_dev_env.sh
|
|
151
|
+
19be4cc4 Add Input.Action to Companion
|
|
152
|
+
b859a99d opack: fix byte encoding length
|
|
153
|
+
5f0515ec feat: Add iTunes Store Identifier to metadata - Added `iTunesStoreIdentifier` to `FeatureName` in `pyatv/const.py`. - Updated `Playing` class in `pyatv/interface.py` to include `itunes_store_identifier`. - Enhanced the `metadata_field` function in `pyatv/protocols/mrp/__init__.py` to support `itunes_store_identifier`. - Adjusted fake device implementation in `tests/fake_device/mrp.py` to handle `itunes_store_identifier`. - Updated functional tests in `tests/protocols/mrp/test_mrp_functional.py` to verify `itunes_store_identifier`. - Modified documentation to include `itunes_store_identifier`.
|
|
154
|
+
41cab90f Fix atvremote action enum
|
|
155
|
+
e0772353 support: Remove use of mediafile
|
|
156
|
+
225ef6d7 cq: Fix lots of warnings in tests
|
|
157
|
+
e330162a cq: Re-generate protobuf messages
|
|
158
|
+
ce104f16 support: Migrate from mediafile to tinytag
|
|
159
|
+
27aaabb9 support: Add tests for metadata decoding
|
|
160
|
+
a613c292 bump protobuf to 5.28.0 in base_versions.txt
|
|
161
|
+
505a7820 regenerate protobuf bindings
|
|
162
|
+
```
|
|
163
|
+
|
|
164
|
+
**All changes:**
|
|
165
|
+
|
|
166
|
+
```
|
|
167
|
+
db2c5d3d build(deps): Bump pyfakefs from 5.6.0 to 5.7.1 in /requirements
|
|
168
|
+
ae648e86 build(deps): Bump protobuf from 5.28.1 to 5.28.3 in /requirements
|
|
169
|
+
b310213b deps: Remove mediafile as dependency
|
|
170
|
+
e7e3989a build(deps): Bump pytest-cov from 5.0.0 to 6.0.0 in /requirements
|
|
171
|
+
f6bc9d9f gha: Update upload-artifact to v4
|
|
172
|
+
70617a01 build(deps): Bump tinytag from 1.10.1 to 2.0.0 in /requirements
|
|
173
|
+
44fc3055 build(deps): Bump pydantic from 2.8.2 to 2.9.2 in /requirements
|
|
174
|
+
6e62ceae build(deps): Bump black from 24.8.0 to 24.10.0 in /requirements
|
|
175
|
+
4a193b67 core: Update device info
|
|
176
|
+
658fd062 cq: Minor updates
|
|
177
|
+
1be71809 deps: Support python 3.13
|
|
178
|
+
41e58d53 deps: Bump base requests to 2.30.0
|
|
179
|
+
d9ff8524 build(deps): Bump types-requests in /requirements
|
|
180
|
+
d25ef2b7 build(deps): Bump pdoc3 from 0.11.0 to 0.11.1 in /requirements
|
|
181
|
+
e73da542 deps: Deprecate python 3.8
|
|
182
|
+
cb2b050a Artwork_save file naming.
|
|
183
|
+
8a79abaf Update test_companion_functional.py
|
|
184
|
+
1569eae0 Update setup_dev_env.sh
|
|
185
|
+
19be4cc4 Add Input.Action to Companion
|
|
186
|
+
b859a99d opack: fix byte encoding length
|
|
187
|
+
d34718fc build(deps): Bump pytest from 8.3.2 to 8.3.3 in /requirements
|
|
188
|
+
5f0515ec feat: Add iTunes Store Identifier to metadata - Added `iTunesStoreIdentifier` to `FeatureName` in `pyatv/const.py`. - Updated `Playing` class in `pyatv/interface.py` to include `itunes_store_identifier`. - Enhanced the `metadata_field` function in `pyatv/protocols/mrp/__init__.py` to support `itunes_store_identifier`. - Adjusted fake device implementation in `tests/fake_device/mrp.py` to handle `itunes_store_identifier`. - Updated functional tests in `tests/protocols/mrp/test_mrp_functional.py` to verify `itunes_store_identifier`. - Modified documentation to include `itunes_store_identifier`.
|
|
189
|
+
0f354031 build(deps): Bump actions/download-artifact in /.github/workflows
|
|
190
|
+
41cab90f Fix atvremote action enum
|
|
191
|
+
e0772353 support: Remove use of mediafile
|
|
192
|
+
225ef6d7 cq: Fix lots of warnings in tests
|
|
193
|
+
e330162a cq: Re-generate protobuf messages
|
|
194
|
+
ce104f16 support: Migrate from mediafile to tinytag
|
|
195
|
+
27aaabb9 support: Add tests for metadata decoding
|
|
196
|
+
d3ad45d5 build(deps): Bump cryptography from 43.0.0 to 43.0.3 in /requirements
|
|
197
|
+
c7b9750b build(deps): Bump python from 3.12.5-alpine to 3.13.0-alpine
|
|
198
|
+
e3c73f60 build(deps): Bump pytest-asyncio from 0.23.8 to 0.24.0 in /requirements
|
|
199
|
+
e3dd9dc6 build(deps): Bump deepdiff from 7.0.1 to 8.0.1 in /requirements
|
|
200
|
+
2d41eb10 build(deps): Bump aiohttp from 3.10.3 to 3.10.10 in /requirements
|
|
201
|
+
cfca954a build(deps): Bump mypy from 1.11.1 to 1.13.0 in /requirements
|
|
202
|
+
26d77125 build(deps): Bump zeroconf from 0.132.2 to 0.136.0 in /requirements
|
|
203
|
+
a613c292 bump protobuf to 5.28.0 in base_versions.txt
|
|
204
|
+
505a7820 regenerate protobuf bindings
|
|
205
|
+
7d7f26d0 build(deps): Bump aiohttp from 3.10.2 to 3.10.3 in /requirements
|
|
206
|
+
5980d02a build(deps): Bump protobuf from 5.27.3 to 5.28.1 in /requirements
|
|
207
|
+
```
|
|
208
|
+
|
|
209
|
+
## 0.15.1 Seymour (2024-09-06)
|
|
210
|
+
|
|
211
|
+
Audio streaming stopped working in the previous version and is fixed in this
|
|
212
|
+
version. It also includes a fix to sequence number handling for outgoing
|
|
213
|
+
messages, potentially improving audio streaming to AirPlay receivers from
|
|
214
|
+
third party vendors (not tested however).
|
|
215
|
+
|
|
216
|
+
**Changes:**
|
|
217
|
+
|
|
218
|
+
*Protocol: RAOP:*
|
|
219
|
+
|
|
220
|
+
```
|
|
221
|
+
8a8d176f raop: Fix broken audio streaming
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
**All changes:**
|
|
225
|
+
|
|
226
|
+
```
|
|
227
|
+
8a8d176f raop: Fix broken audio streaming
|
|
228
|
+
2cbaf5f5 build(deps): Bump pytest-httpserver in /requirements
|
|
229
|
+
```
|
|
230
|
+
|
|
231
|
+
## 0.15.0 Ralph (2024-08-10)
|
|
232
|
+
|
|
233
|
+
It has been a long time since the last release (christmas!), so a it's really
|
|
234
|
+
due for a new one. I have mostly been busy with other (personal) stuff, so I
|
|
235
|
+
have not done much more than maintenance. There are a few changes from the
|
|
236
|
+
community though.
|
|
237
|
+
|
|
238
|
+
Some hightlights:
|
|
239
|
+
|
|
240
|
+
* Uplift of various dependencies, e.g, fix breaking change in cryptography
|
|
241
|
+
* It is possible to skip forward/backwards (Companion) with custom intervals,
|
|
242
|
+
thanks @thiccaxe!
|
|
243
|
+
* @bdraco fixed a bug related to changes in chacha20poly1305-reuseable
|
|
244
|
+
* Python 3.12 is now (finally) offically supported
|
|
245
|
+
|
|
246
|
+
This is a minor update indeed. I hope to see some updates in the near future,
|
|
247
|
+
especially related to tvOS 18 compatibility as well as new features. I am very
|
|
248
|
+
grateful for any help from the community. So if you want to help out
|
|
249
|
+
implementing anything, please send a PR and I'll try my best to find time to
|
|
250
|
+
review it!
|
|
251
|
+
|
|
252
|
+
**Changes:**
|
|
253
|
+
|
|
254
|
+
*Other:*
|
|
255
|
+
|
|
256
|
+
```
|
|
257
|
+
7716858a fix styling for 2462
|
|
258
|
+
41b039f9 precise skip in companion, mrp, dmap
|
|
259
|
+
618e93a4 companion skip implementation
|
|
260
|
+
8331c783 deps: Bump protobuf base version to 4.25.3
|
|
261
|
+
2a8afa68 deps: Sync some versions with base versions
|
|
262
|
+
9f2f7cd3 Added touch gesture to companion protocol (#2402)
|
|
263
|
+
55f3455e deps: Bump some lowest deps versions
|
|
264
|
+
31b57b27 cq: Fix pylint issues
|
|
265
|
+
42ff35ab docs: Fix codespell issues
|
|
266
|
+
ea9d3339 Fix Chacha20Cipher with companion
|
|
267
|
+
a84774c1 test: Improve MRP volume tests
|
|
268
|
+
8080aaae test: Improve dispatch test
|
|
269
|
+
aad6bcd7 test: Improve aiothttp session closing
|
|
270
|
+
ed20bf72 Bump setup-python to v5
|
|
271
|
+
1b780d46 gha: Bump setup-python tp v4
|
|
272
|
+
541ba00d Update tests.yml
|
|
273
|
+
ec402a68 gha: Run tests with python 3.12
|
|
274
|
+
1037d5ef dep: Bump chacha20poly1305-reuseable and cryptography
|
|
275
|
+
1fc1cb0f cq: Run black to fix errors
|
|
276
|
+
5c721409 gha: Remove automerge workflow
|
|
277
|
+
90b23cc4 Update index.md
|
|
278
|
+
7fdfa28a still need to pad for hap
|
|
279
|
+
29ad6fc0 still need to pad for hap
|
|
280
|
+
e817af09 still need to pad for hap
|
|
281
|
+
0c1f6674 lint
|
|
282
|
+
d5a29d7e Simplify ChaCha20 Poly1305 implementation
|
|
283
|
+
8d78f516 Fix typo in README.
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
**All changes:**
|
|
287
|
+
|
|
288
|
+
```
|
|
289
|
+
e7487a8b build(deps): Bump python from 3.11.0-alpine to 3.12.5-alpine
|
|
290
|
+
81cd5819 build(deps): Bump aiohttp from 3.10.1 to 3.10.2 in /requirements
|
|
291
|
+
7716858a fix styling for 2462
|
|
292
|
+
41b039f9 precise skip in companion, mrp, dmap
|
|
293
|
+
618e93a4 companion skip implementation
|
|
294
|
+
0d2d3fc9 build(deps): Bump flake8 from 7.1.0 to 7.1.1 in /requirements
|
|
295
|
+
1e0d7991 build(deps): Bump black from 24.4.2 to 24.8.0 in /requirements
|
|
296
|
+
5f801d4c build(deps): Bump aiohttp from 3.10.0 to 3.10.1 in /requirements
|
|
297
|
+
95c43b1c build(deps): Bump mypy-protobuf from 3.5.0 to 3.6.0 in /requirements
|
|
298
|
+
8331c783 deps: Bump protobuf base version to 4.25.3
|
|
299
|
+
80fd95e6 build(deps): Bump pylint from 3.2.5 to 3.2.6 in /requirements
|
|
300
|
+
0abc130b build(deps): Bump protobuf from 5.27.2 to 5.27.3 in /requirements
|
|
301
|
+
1bda482d build(deps): Bump mypy from 1.10.1 to 1.11.1 in /requirements
|
|
302
|
+
2a8afa68 deps: Sync some versions with base versions
|
|
303
|
+
1b38c96f build(deps): Bump pytest-httpserver in /requirements
|
|
304
|
+
961340f8 build(deps): Bump pytest from 8.2.2 to 8.3.2 in /requirements
|
|
305
|
+
64cc5847 build(deps): Bump aiohttp from 3.9.5 to 3.10.0 in /requirements (#2463)
|
|
306
|
+
18ceacd4 build(deps): Bump miniaudio from 1.60 to 1.61 in /requirements (#2459)
|
|
307
|
+
9f2f7cd3 Added touch gesture to companion protocol (#2402)
|
|
308
|
+
55f3455e deps: Bump some lowest deps versions
|
|
309
|
+
c263ff54 build(deps): Bump pydantic from 2.7.4 to 2.8.2 in /requirements
|
|
310
|
+
cba3eb9a build(deps): Bump chacha20poly1305-reuseable in /requirements
|
|
311
|
+
6e9cc70d build(deps): Bump miniaudio from 1.59 to 1.60 in /requirements
|
|
312
|
+
21becc1e build(deps): Bump pytest-asyncio from 0.23.6 to 0.23.8 in /requirements
|
|
313
|
+
98dd3f2d build(deps): Bump protobuf from 5.27.1 to 5.27.2 in /requirements
|
|
314
|
+
0e024712 build(deps): Bump requests from 2.32.2 to 2.32.3 in /requirements
|
|
315
|
+
31b57b27 cq: Fix pylint issues
|
|
316
|
+
8d942aa2 build(deps): Bump pylint from 3.0.3 to 3.2.5 in /requirements
|
|
317
|
+
42ff35ab docs: Fix codespell issues
|
|
318
|
+
1e256440 build(deps): Bump codespell from 2.2.6 to 2.3.0 in /requirements
|
|
319
|
+
bbfb6ec2 build(deps): Bump pytest-httpserver in /requirements
|
|
320
|
+
d70a9a47 build(deps): Bump zeroconf from 0.131.0 to 0.132.2 in /requirements
|
|
321
|
+
9dbdcae1 build(deps): Bump mypy from 1.8.0 to 1.10.1 in /requirements
|
|
322
|
+
e84219bb build(deps): Bump pytest-cov from 4.1.0 to 5.0.0 in /requirements
|
|
323
|
+
0eec178c build(deps): Bump types-protobuf in /requirements
|
|
324
|
+
b1bd82b5 build(deps): Bump pyfakefs from 5.4.1 to 5.6.0 in /requirements
|
|
325
|
+
d789cd08 build(deps): Bump pytest-timeout from 2.2.0 to 2.3.1 in /requirements
|
|
326
|
+
80b9c91d build(deps): Bump pydantic from 2.5.3 to 2.7.4 in /requirements
|
|
327
|
+
ee725bd7 build(deps): Bump pytest-xdist from 3.5.0 to 3.6.1 in /requirements
|
|
328
|
+
1c7f3719 build(deps): Bump black from 24.4.0 to 24.4.2 in /requirements
|
|
329
|
+
f2152da3 build(deps): Bump protobuf from 4.25.2 to 5.27.1 in /requirements
|
|
330
|
+
30bcb66e build(deps): Bump cryptography from 42.0.5 to 42.0.8 in /requirements
|
|
331
|
+
ea9d3339 Fix Chacha20Cipher with companion
|
|
332
|
+
fb78faf6 build(deps): Bump flake8 from 7.0.0 to 7.1.0 in /requirements
|
|
333
|
+
5e6f1b17 build(deps): Bump deepdiff from 6.7.1 to 7.0.1 in /requirements
|
|
334
|
+
c5f182af build(deps): Bump pdoc3 from 0.10.0 to 0.11.0 in /requirements
|
|
335
|
+
a84774c1 test: Improve MRP volume tests
|
|
336
|
+
8080aaae test: Improve dispatch test
|
|
337
|
+
aad6bcd7 test: Improve aiothttp session closing
|
|
338
|
+
ed20bf72 Bump setup-python to v5
|
|
339
|
+
1b780d46 gha: Bump setup-python tp v4
|
|
340
|
+
541ba00d Update tests.yml
|
|
341
|
+
ec402a68 gha: Run tests with python 3.12
|
|
342
|
+
39a868f9 build(deps): Bump pytest from 7.4.3 to 8.2.2 in /requirements
|
|
343
|
+
a0aa0d6e build(deps): Bump flake8 from 6.1.0 to 7.0.0 in /requirements
|
|
344
|
+
1037d5ef dep: Bump chacha20poly1305-reuseable and cryptography
|
|
345
|
+
1fc1cb0f cq: Run black to fix errors
|
|
346
|
+
2b0cc6a0 build(deps): Bump black from 23.12.1 to 24.4.0 in /requirements
|
|
347
|
+
62020c36 build(deps): Bump types-protobuf in /requirements
|
|
348
|
+
5c721409 gha: Remove automerge workflow
|
|
349
|
+
90b23cc4 Update index.md
|
|
350
|
+
7589ec8b build(deps): Bump types-tabulate in /requirements
|
|
351
|
+
7fdfa28a still need to pad for hap
|
|
352
|
+
29ad6fc0 still need to pad for hap
|
|
353
|
+
e817af09 still need to pad for hap
|
|
354
|
+
0c1f6674 lint
|
|
355
|
+
d5a29d7e Simplify ChaCha20 Poly1305 implementation
|
|
356
|
+
601e553a build(deps): Bump requests from 2.31.0 to 2.32.2 in /requirements
|
|
357
|
+
7bff8b32 build(deps): Bump pytest-asyncio from 0.23.2 to 0.23.6 in /requirements
|
|
358
|
+
a2da7611 build(deps): Bump pyfakefs from 5.3.2 to 5.4.1 in /requirements
|
|
359
|
+
eaf73bf9 build(deps): Bump aiohttp from 3.9.1 to 3.9.5 in /requirements
|
|
360
|
+
8d78f516 Fix typo in README.
|
|
361
|
+
4b00261b build(deps): Bump protobuf from 4.25.1 to 4.25.2 in /requirements
|
|
362
|
+
2f7e2fd1 build(deps): Bump pytest-asyncio from 0.21.1 to 0.23.2 in /requirements
|
|
363
|
+
4cd32600 build(deps): Bump isort from 5.12.0 to 5.13.2 in /requirements
|
|
364
|
+
51458f95 build(deps): Bump pyfakefs from 5.3.0 to 5.3.2 in /requirements
|
|
365
|
+
9d0e7f4c build(deps): Bump pydantic from 2.4.2 to 2.5.3 in /requirements
|
|
366
|
+
6d2762df build(deps): Bump pytest-xdist from 3.3.1 to 3.5.0 in /requirements
|
|
367
|
+
```
|
|
368
|
+
|
|
369
|
+
## 0.14.5 Quimby (2023-12-24)
|
|
370
|
+
|
|
371
|
+
Merry christmas everyone, here comes a small present! In this
|
|
372
|
+
release @maxileith made some improvements to atvscript. App should be
|
|
373
|
+
reported correctly now. All identifiers as well as MAC address is
|
|
374
|
+
ouputted when scanning. Other than that it's merely house-keeping.
|
|
375
|
+
|
|
376
|
+
Been rather slow work on pyatv for a while, let's see what the new
|
|
377
|
+
year might bring!
|
|
378
|
+
|
|
379
|
+
**Changes:**
|
|
380
|
+
|
|
381
|
+
*Other:*
|
|
382
|
+
|
|
383
|
+
```
|
|
384
|
+
0da3258 scan: Fix python-zeroconf incompatibility
|
|
385
|
+
454afc0 Fix a bug that causes atvscript push_updates to never report the app
|
|
386
|
+
8d883fb update the list of contributors
|
|
387
|
+
8be2b64 Changing the featured Homebridge plugin to a more recent and maintained one.
|
|
388
|
+
2da50e9 add mac address to device info
|
|
389
|
+
0937a7b Output all identifiers when scanning with atvscript
|
|
390
|
+
```
|
|
391
|
+
|
|
392
|
+
**All changes:**
|
|
393
|
+
|
|
394
|
+
```
|
|
395
|
+
ce61b49 build(deps): Bump black from 23.9.1 to 23.12.1 in /requirements
|
|
396
|
+
10b0138 build(deps): Bump cryptography from 41.0.4 to 41.0.7 in /requirements
|
|
397
|
+
04b75b7 build(deps): Bump mypy from 1.5.1 to 1.8.0 in /requirements
|
|
398
|
+
1519ffc build(deps): Bump types-protobuf in /requirements
|
|
399
|
+
f4f94d9 build(deps): Bump deepdiff from 6.6.0 to 6.7.1 in /requirements
|
|
400
|
+
0732ee4 build(deps): Bump aiohttp from 3.8.6 to 3.9.1 in /requirements
|
|
401
|
+
d7dfe9a build(deps): Bump protobuf from 4.24.2 to 4.25.1 in /requirements
|
|
402
|
+
b4bd7ce build(deps): Bump chacha20poly1305-reuseable in /requirements
|
|
403
|
+
0da3258 scan: Fix python-zeroconf incompatibility
|
|
404
|
+
1bb0227 build(deps): Bump zeroconf from 0.118.0 to 0.131.0 in /requirements
|
|
405
|
+
1392a00 build(deps): Bump pylint from 3.0.1 to 3.0.3 in /requirements
|
|
406
|
+
454afc0 Fix a bug that causes atvscript push_updates to never report the app
|
|
407
|
+
8d883fb update the list of contributors
|
|
408
|
+
8be2b64 Changing the featured Homebridge plugin to a more recent and maintained one.
|
|
409
|
+
2da50e9 add mac address to device info
|
|
410
|
+
0937a7b Output all identifiers when scanning with atvscript
|
|
411
|
+
427c362 build(deps): Bump pytest from 7.4.2 to 7.4.3 in /requirements
|
|
412
|
+
```
|
|
413
|
+
|
|
414
|
+
## 0.14.4 Patty (2023-10-27)
|
|
415
|
+
|
|
416
|
+
This release contains a fix when running with python 3.11
|
|
417
|
+
or later, mainly when calling atvscript. Thanks @maxileith!
|
|
418
|
+
|
|
419
|
+
**Changes:**
|
|
420
|
+
|
|
421
|
+
*Other:*
|
|
422
|
+
|
|
423
|
+
```
|
|
424
|
+
cc0e4a2 Wrap coroutines passed to asyncio.wait with create_tasks asyncio.wait does not support passing coroutines since python 3.11
|
|
425
|
+
d8c6b4d cq: New attempt with token
|
|
426
|
+
e611672 cq: New token for auto-merge
|
|
427
|
+
b47ddbf cq: Update auto-merge token
|
|
428
|
+
e7f880a cq: Try to fix auto-merge
|
|
429
|
+
```
|
|
430
|
+
|
|
431
|
+
**All changes:**
|
|
432
|
+
|
|
433
|
+
```
|
|
434
|
+
cc0e4a2 Wrap coroutines passed to asyncio.wait with create_tasks asyncio.wait does not support passing coroutines since python 3.11
|
|
435
|
+
d8c6b4d cq: New attempt with token
|
|
436
|
+
e611672 cq: New token for auto-merge
|
|
437
|
+
b47ddbf cq: Update auto-merge token
|
|
438
|
+
e7f880a cq: Try to fix auto-merge
|
|
439
|
+
```
|
|
440
|
+
|
|
441
|
+
## 0.14.3 Otto (2023-10-23)
|
|
442
|
+
|
|
443
|
+
Due to Home Assistant being stuck at pydantic v1 at the moment,
|
|
444
|
+
I have now changed to use pydantic v1 with the compatibility
|
|
445
|
+
version bundled in v2. This bascially means that pydantic v1 is
|
|
446
|
+
used internally, even when v2 is installed. This is temporary
|
|
447
|
+
until Home Assistant can bump up to pydantic v2. I have also
|
|
448
|
+
removed dependency on pydantic-extra-types (only MacAddress was
|
|
449
|
+
used) as it has no v1 compatible version. Same goes for
|
|
450
|
+
pydantic-settings, which provides no functionality currently.
|
|
451
|
+
|
|
452
|
+
**Changes:**
|
|
453
|
+
|
|
454
|
+
*Other:*
|
|
455
|
+
|
|
456
|
+
```
|
|
457
|
+
86a4a91 storage: Use pydantic v1 compatibility
|
|
458
|
+
1a8c05a storage: Remove usage of pydantic-settings
|
|
459
|
+
d95ab81 storage: Remove need for pydantic-extra-types
|
|
460
|
+
b671e21 cq: Another attempt to fix update_type
|
|
461
|
+
e50fb7b cq: Specify depdency_type to auto-merge
|
|
462
|
+
bde83fa cq: Update auto-merge token
|
|
463
|
+
0c4a873 cq: Auto merge dependabot
|
|
464
|
+
3e503dc cq: Automatic code coverage
|
|
465
|
+
```
|
|
466
|
+
|
|
467
|
+
**All changes:**
|
|
468
|
+
|
|
469
|
+
```
|
|
470
|
+
86a4a91 storage: Use pydantic v1 compatibility
|
|
471
|
+
1a8c05a storage: Remove usage of pydantic-settings
|
|
472
|
+
d95ab81 storage: Remove need for pydantic-extra-types
|
|
473
|
+
b671e21 cq: Another attempt to fix update_type
|
|
474
|
+
e50fb7b cq: Specify depdency_type to auto-merge
|
|
475
|
+
bde83fa cq: Update auto-merge token
|
|
476
|
+
0c4a873 cq: Auto merge dependabot
|
|
477
|
+
3e503dc cq: Automatic code coverage
|
|
478
|
+
```
|
|
479
|
+
|
|
480
|
+
## 0.14.2 Ned (2023-10-17)
|
|
481
|
+
|
|
482
|
+
Hi-Diddily-Ho, time for some minor bug fixes:
|
|
483
|
+
|
|
484
|
+
* Do not re-raise TimeoutError as AuthenticationError when
|
|
485
|
+
connecting (Companion and MRP were affected by this). This makes
|
|
486
|
+
more sense and also fixes issues with the Apple TV integration
|
|
487
|
+
in Home Assistant requiring reconfiguration way too often.
|
|
488
|
+
* @bdraco made some zeroconf adjustments to deal with bad behavior
|
|
489
|
+
in some Zeroconf stacks (mainly seen with AirPort Express).
|
|
490
|
+
|
|
491
|
+
**Changes:**
|
|
492
|
+
|
|
493
|
+
*Other:*
|
|
494
|
+
|
|
495
|
+
```
|
|
496
|
+
bde4850 deps: Update protobuf version in base_versions
|
|
497
|
+
d33a94e api: Use error_handler when connecting
|
|
498
|
+
c11c2a9 Filter out invalid addreses from zeroconf
|
|
499
|
+
3c1fc13 Filter out invalid addreses from zeroconf
|
|
500
|
+
ef17195 add some missing return types on public interfaces
|
|
501
|
+
bed2426 add py.typed to mark pyatv as PEP-561 compliant
|
|
502
|
+
```
|
|
503
|
+
|
|
504
|
+
**All changes:**
|
|
505
|
+
|
|
506
|
+
```
|
|
507
|
+
bde4850 deps: Update protobuf version in base_versions
|
|
508
|
+
10835e1 build(deps): Bump mypy-protobuf from 3.4.0 to 3.5.0 in /requirements
|
|
509
|
+
a29ceb5 build(deps): Bump pyfakefs from 5.2.4 to 5.3.0 in /requirements
|
|
510
|
+
d33a94e api: Use error_handler when connecting
|
|
511
|
+
e9896fa Fix spelling errors
|
|
512
|
+
98348aa build(deps): Bump codespell from 2.2.5 to 2.2.6 in /requirements
|
|
513
|
+
b90deec naming
|
|
514
|
+
ec1191a naming
|
|
515
|
+
c11c2a9 Filter out invalid addreses from zeroconf
|
|
516
|
+
3c1fc13 Filter out invalid addreses from zeroconf
|
|
517
|
+
2412932 build(deps): Bump zeroconf from 0.112.0 to 0.118.0 in /requirements
|
|
518
|
+
ab54ef3 build(deps): Bump pytest-timeout from 2.1.0 to 2.2.0 in /requirements
|
|
519
|
+
62fd75a build(deps): Bump pylint from 2.17.5 to 3.0.1 in /requirements
|
|
520
|
+
486e110 build(deps): Bump aiohttp from 3.8.5 to 3.8.6 in /requirements
|
|
521
|
+
835142e build(deps): Bump protobuf from 4.24.3 to 4.24.4 in /requirements
|
|
522
|
+
344fac7 build(deps): Bump deepdiff from 6.5.0 to 6.6.0 in /requirements
|
|
523
|
+
85b099a build(deps): Bump python from 3.11.5-alpine to 3.12.0-alpine
|
|
524
|
+
57bfaf5 build(deps): Bump cryptography from 41.0.3 to 41.0.4 in /requirements
|
|
525
|
+
ef17195 add some missing return types on public interfaces
|
|
526
|
+
bed2426 add py.typed to mark pyatv as PEP-561 compliant
|
|
527
|
+
```
|
|
528
|
+
|
|
529
|
+
## 0.14.1 Marge (2023-09-27)
|
|
530
|
+
|
|
531
|
+
Minor release coming up today:
|
|
532
|
+
|
|
533
|
+
* Fix Companion credentials not being saved when pairing
|
|
534
|
+
* Actually use storage in the wizard (atvremote)
|
|
535
|
+
* Add FileStorage.default_storage() to get the same storage
|
|
536
|
+
as used by scripts shipped with pyatv (i.e. you can share
|
|
537
|
+
credentials with your applications)
|
|
538
|
+
* Add setting to force AirPlay version to use with RAOP
|
|
539
|
+
* Add settings for RAOP control and timing ports
|
|
540
|
+
|
|
541
|
+
**Changes:**
|
|
542
|
+
|
|
543
|
+
*Protocol: Companion:*
|
|
544
|
+
|
|
545
|
+
```
|
|
546
|
+
e551954 companion: Fix credentials not saved
|
|
547
|
+
```
|
|
548
|
+
|
|
549
|
+
*Protocol: RAOP:*
|
|
550
|
+
|
|
551
|
+
```
|
|
552
|
+
c17f304 raop: Add protocol_version setting
|
|
553
|
+
391be8b raop: Add settings for timing and control ports
|
|
554
|
+
```
|
|
555
|
+
|
|
556
|
+
*Script: atvremote:*
|
|
557
|
+
|
|
558
|
+
```
|
|
559
|
+
fa2f7b1 atvremote: Fix storage passing to pair
|
|
560
|
+
```
|
|
561
|
+
|
|
562
|
+
*Other:*
|
|
563
|
+
|
|
564
|
+
```
|
|
565
|
+
fd7135b tests: Add test for atvremote wizard
|
|
566
|
+
e8a812d tests: Migrate scripts tests to pytest
|
|
567
|
+
6704359 docs: Add minor change template
|
|
568
|
+
74d2de5 storage: Add FileStorage.default_storage
|
|
569
|
+
621adff docs: Some updates to README.md
|
|
570
|
+
f13a353 docs: More link fixes
|
|
571
|
+
d394708 storage: Use pydantic-extra-types for MAC
|
|
572
|
+
```
|
|
573
|
+
|
|
574
|
+
**All changes:**
|
|
575
|
+
|
|
576
|
+
```
|
|
577
|
+
e551954 companion: Fix credentials not saved
|
|
578
|
+
1c4b4d3 build(deps): Bump types-protobuf in /requirements
|
|
579
|
+
91fdc71 build(deps): Bump zeroconf from 0.108.0 to 0.112.0 in /requirements
|
|
580
|
+
c17f304 raop: Add protocol_version setting
|
|
581
|
+
fd7135b tests: Add test for atvremote wizard
|
|
582
|
+
e8a812d tests: Migrate scripts tests to pytest
|
|
583
|
+
fa2f7b1 atvremote: Fix storage passing to pair
|
|
584
|
+
95d7d54 build(deps): Bump deepdiff from 6.4.1 to 6.5.0 in /requirements
|
|
585
|
+
6704359 docs: Add minor change template
|
|
586
|
+
712f105 build(deps): Bump zeroconf from 0.97.0 to 0.108.0 in /requirements
|
|
587
|
+
46d50f0 build(deps): Bump black from 23.7.0 to 23.9.1 in /requirements
|
|
588
|
+
391be8b raop: Add settings for timing and control ports
|
|
589
|
+
2808c5d build(deps): Bump pytest from 7.4.1 to 7.4.2 in /requirements
|
|
590
|
+
d426ae8 build(deps): Bump protobuf from 4.24.2 to 4.24.3 in /requirements
|
|
591
|
+
01e4cc0 build(deps): Bump pytest-aiohttp from 1.0.4 to 1.0.5 in /requirements
|
|
592
|
+
74d2de5 storage: Add FileStorage.default_storage
|
|
593
|
+
621adff docs: Some updates to README.md
|
|
594
|
+
f13a353 docs: More link fixes
|
|
595
|
+
d394708 storage: Use pydantic-extra-types for MAC
|
|
596
|
+
```
|
|
597
|
+
|
|
598
|
+
## 0.14.0 Lisa (2023-09-04)
|
|
599
|
+
|
|
600
|
+
Finally time for a new release and this (despite the few number
|
|
601
|
+
of commits) is a big one: this release introduces the storage API!
|
|
602
|
+
in reality, the storage API comes with two distinct features:
|
|
603
|
+
|
|
604
|
+
* Storing and loading of credentials and passwords
|
|
605
|
+
* Support for generic settings
|
|
606
|
+
|
|
607
|
+
The first one is pretty obvious and also the biggest one here.
|
|
608
|
+
From now on, pyatv will automatically save credentials to a file
|
|
609
|
+
when pairing and automatically load them again without the need
|
|
610
|
+
of manually specifying them (the same applies to passwords as
|
|
611
|
+
well). This is true for built in scripts like `atvremote` and
|
|
612
|
+
`atvscript`. You need to add a few lines of code to support it
|
|
613
|
+
within your applications.
|
|
614
|
+
|
|
615
|
+
The API is generic in the sense that you can implement your own
|
|
616
|
+
storage if you like. Perhaps you want to store your credentials in
|
|
617
|
+
Dropbox or a Google Document? That is possible by writing a custom
|
|
618
|
+
storage module. This release ships with a `FileStorage` module
|
|
619
|
+
that stores settings in a local file using JSON as storage format.
|
|
620
|
+
There's also a `MemoryStorage` module that just keeps settings in
|
|
621
|
+
memory. The latter one is used by default if no storage is provided
|
|
622
|
+
as a means of backwards compatibility.
|
|
623
|
+
|
|
624
|
+
Moving on to generic settings then. Ways to alter the behavior of
|
|
625
|
+
pyatv has been requested in several ways throughout the years. Be
|
|
626
|
+
it specifying port nunbers or changing the way a protocol behaves.
|
|
627
|
+
There has not been any way of implementing such settings until now.
|
|
628
|
+
Biggest reason for it was because I wanted to implement storage
|
|
629
|
+
first to see how things would fit together. I guess the benefit is
|
|
630
|
+
that we now got both features at once.
|
|
631
|
+
|
|
632
|
+
As a start, only a few metadata fields like MAC address and
|
|
633
|
+
operating system version can be changed. I will add more settings
|
|
634
|
+
over time and you can request additional settings by opening
|
|
635
|
+
issues. As new settings adds extra maintenance burden (e.g. more
|
|
636
|
+
tests), I will be a bit picky though.
|
|
637
|
+
|
|
638
|
+
I have fixed a small detail in the documentation as well. The
|
|
639
|
+
value of members in enums are now shown. Only the name was shown
|
|
640
|
+
before. The same change also applies to the pydantic models used
|
|
641
|
+
for settings, so you can see default values for all settings
|
|
642
|
+
directly in the API reference.
|
|
643
|
+
|
|
644
|
+
Oh, and one more thing... A wizard moved in to `atvremote`. If
|
|
645
|
+
you run `atvremote wizard`, he will find all your devices, let you
|
|
646
|
+
pick one and help out with setting it up (guiding you through
|
|
647
|
+
pairing and passwords). Once you have completed the wizard, all
|
|
648
|
+
credentials are saved to storage and you don't have to think about
|
|
649
|
+
that anymore. Pretty neat, huh? This is still an early version,
|
|
650
|
+
so expect bugs and please report them so they can be fixed.
|
|
651
|
+
|
|
652
|
+
That is is. A pretty good release to be honest. Time for some
|
|
653
|
+
rest!
|
|
654
|
+
|
|
655
|
+
**Changes:**
|
|
656
|
+
|
|
657
|
+
*Other:*
|
|
658
|
+
|
|
659
|
+
```
|
|
660
|
+
d13ede5 docs: Another attempt to fix docs
|
|
661
|
+
7498250 docs: Try to fix API docs for some modules
|
|
662
|
+
856fede storage: Switch to pyfakefs for testing
|
|
663
|
+
7cc5a92 storage: Bump mockfs to 1.1.4
|
|
664
|
+
3376835 storage: Fix tests on Windows
|
|
665
|
+
dfcce1f docs: Add documentation for storage
|
|
666
|
+
cd5ef88 storage: Adjust scripts to use storage
|
|
667
|
+
e370ee1 storage: Initial support for storage
|
|
668
|
+
557681c ci: Enable Dependabot for Dockerfile
|
|
669
|
+
```
|
|
670
|
+
|
|
671
|
+
**All changes:**
|
|
672
|
+
|
|
673
|
+
```
|
|
674
|
+
d13ede5 docs: Another attempt to fix docs
|
|
675
|
+
f0978ff build(deps): Bump deepdiff from 6.3.1 to 6.4.1 in /requirements
|
|
676
|
+
bb60615 build(deps): Bump pytest from 7.4.0 to 7.4.1 in /requirements
|
|
677
|
+
11392ae build(deps): Bump mutagen from 1.46.0 to 1.47.0 in /requirements
|
|
678
|
+
4928c42 build(deps): Bump zeroconf from 0.88.0 to 0.97.0 in /requirements
|
|
679
|
+
48a25bb build(deps): Bump pydantic-settings from 2.0.2 to 2.0.3 in /requirements
|
|
680
|
+
7498250 docs: Try to fix API docs for some modules
|
|
681
|
+
856fede storage: Switch to pyfakefs for testing
|
|
682
|
+
7cc5a92 storage: Bump mockfs to 1.1.4
|
|
683
|
+
3376835 storage: Fix tests on Windows
|
|
684
|
+
dfcce1f docs: Add documentation for storage
|
|
685
|
+
cd5ef88 storage: Adjust scripts to use storage
|
|
686
|
+
e370ee1 storage: Initial support for storage
|
|
687
|
+
05ca46d build(deps): Bump zeroconf from 0.86.0 to 0.88.0 in /requirements
|
|
688
|
+
573ac65 build(deps): Bump zeroconf from 0.82.1 to 0.86.0 in /requirements
|
|
689
|
+
dbd0fbf build(deps): Bump chacha20poly1305-reuseable in /requirements
|
|
690
|
+
894c9c4 build(deps): Bump python from 3.11.4-alpine to 3.11.5-alpine
|
|
691
|
+
b892d20 build(deps): Bump protobuf from 4.24.1 to 4.24.2 in /requirements
|
|
692
|
+
e5458f9 build(deps): Bump protobuf from 4.24.0 to 4.24.1 in /requirements
|
|
693
|
+
aed3c2b build(deps): Bump zeroconf from 0.79.0 to 0.82.1 in /requirements
|
|
694
|
+
2a03ff9 build(deps): Bump mypy from 1.5.0 to 1.5.1 in /requirements
|
|
695
|
+
557681c ci: Enable Dependabot for Dockerfile
|
|
696
|
+
a717479 build(deps): Bump python from 3.9.7 to 3.11.4 in Dockerfile
|
|
697
|
+
84d8222 build(deps): Bump zeroconf from 0.76.0 to 0.79.0 in /requirements
|
|
698
|
+
dffb71f build(deps): Bump zeroconf from 0.74.0 to 0.76.0 in /requirements
|
|
699
|
+
e3d7a90 build(deps): Bump types-protobuf in /requirements
|
|
700
|
+
671064e build(deps): Bump types-protobuf in /requirements
|
|
701
|
+
d432705 build(deps): Bump mypy from 1.4.1 to 1.5.0 in /requirements
|
|
702
|
+
6438d9f build(deps): Bump async-timeout from 4.0.2 to 4.0.3 in /requirements (#2136)
|
|
703
|
+
be22c57 build(deps): Bump protobuf from 4.23.4 to 4.24.0 in /requirements (#2131)
|
|
704
|
+
c3c5e33 build(deps): Bump types-protobuf in /requirements (#2130)
|
|
705
|
+
285d4c0 build(deps): Bump zeroconf from 0.72.0 to 0.74.0 in /requirements (#2123)
|
|
706
|
+
```
|
|
707
|
+
|
|
708
|
+
## 0.13.4 Krusty (2023-08-06)
|
|
709
|
+
|
|
710
|
+
@bdraco cleaned up in aisle four and made scanning more
|
|
711
|
+
robust in shaky networks, thanks!
|
|
712
|
+
|
|
713
|
+
**Changes:**
|
|
714
|
+
|
|
715
|
+
*Other:*
|
|
716
|
+
|
|
717
|
+
```
|
|
718
|
+
17d130a Fallback to sending unicast PTR queries when multicast is broken or packets are being dropped (#2122)
|
|
719
|
+
b64bdf9 gha: Remove log workflow (#2120)
|
|
720
|
+
```
|
|
721
|
+
|
|
722
|
+
**All changes:**
|
|
723
|
+
|
|
724
|
+
```
|
|
725
|
+
17d130a Fallback to sending unicast PTR queries when multicast is broken or packets are being dropped (#2122)
|
|
726
|
+
b64bdf9 gha: Remove log workflow (#2120)
|
|
727
|
+
```
|
|
728
|
+
|
|
729
|
+
## 0.13.3 Joe (2023-08-03)
|
|
730
|
+
|
|
731
|
+
Time for a somewhat minor fix release:
|
|
732
|
+
|
|
733
|
+
* The play_url functionality has been restored on tvOS
|
|
734
|
+
* Pairing requirement is correctly determined for macOS
|
|
735
|
+
* macOS has been added as an operating system
|
|
736
|
+
* @bdraco has made some performance improvements when
|
|
737
|
+
scanning for devices
|
|
738
|
+
|
|
739
|
+
**Changes:**
|
|
740
|
+
|
|
741
|
+
*Protocol: MRP:*
|
|
742
|
+
|
|
743
|
+
```
|
|
744
|
+
dfcc82b mrp: Add some missing protobuf definitions
|
|
745
|
+
5ad5103 mrp: Fix pairing requirement when disabled
|
|
746
|
+
```
|
|
747
|
+
|
|
748
|
+
*Protocol: AirPlay:*
|
|
749
|
+
|
|
750
|
+
```
|
|
751
|
+
54ff39e airplay: Handle Access Control Type
|
|
752
|
+
c5772b3 airplay: Support stop with play_url
|
|
753
|
+
c554ab7 airplay: Fix play_url with newer tvOS versions
|
|
754
|
+
```
|
|
755
|
+
|
|
756
|
+
*Protocol: RAOP:*
|
|
757
|
+
|
|
758
|
+
```
|
|
759
|
+
fef1667 raop: Use correct auth type for RAOP pairing
|
|
760
|
+
```
|
|
761
|
+
|
|
762
|
+
*Other:*
|
|
763
|
+
|
|
764
|
+
```
|
|
765
|
+
8022f68 Rework zeroconf for unicast scanning (#2083)
|
|
766
|
+
42130e1 conf: Add macOS as operating system
|
|
767
|
+
8b572fe http: Abort timeout if connection close
|
|
768
|
+
7815a8f docs: Clarify atvremote app section
|
|
769
|
+
```
|
|
770
|
+
|
|
771
|
+
**All changes:**
|
|
772
|
+
|
|
773
|
+
```
|
|
774
|
+
8022f68 Rework zeroconf for unicast scanning (#2083)
|
|
775
|
+
dfcc82b mrp: Add some missing protobuf definitions
|
|
776
|
+
b91dfae build(deps): Bump cryptography from 41.0.2 to 41.0.3 in /requirements
|
|
777
|
+
06cb03e build(deps): Bump zeroconf from 0.71.4 to 0.71.5 in /requirements
|
|
778
|
+
54ff39e airplay: Handle Access Control Type
|
|
779
|
+
42130e1 conf: Add macOS as operating system
|
|
780
|
+
b8f793e build(deps): Bump flake8 from 6.0.0 to 6.1.0 in /requirements
|
|
781
|
+
c3e0a52 build(deps): Bump pylint from 2.17.4 to 2.17.5 in /requirements
|
|
782
|
+
6e89d8c build(deps): Bump types-protobuf in /requirements
|
|
783
|
+
18edbf4 build(deps): Bump chacha20poly1305-reuseable in /requirements
|
|
784
|
+
9cd5a4a build(deps): Bump zeroconf from 0.71.0 to 0.71.4 in /requirements
|
|
785
|
+
c5772b3 airplay: Support stop with play_url
|
|
786
|
+
c554ab7 airplay: Fix play_url with newer tvOS versions
|
|
787
|
+
8b572fe http: Abort timeout if connection close
|
|
788
|
+
0c61914 build(deps): Bump types-requests in /requirements
|
|
789
|
+
3d3f9e8 build(deps): Bump aiohttp from 3.8.4 to 3.8.5 in /requirements
|
|
790
|
+
353faa9 build(deps): Bump pytest-asyncio from 0.21.0 to 0.21.1 in /requirements
|
|
791
|
+
5ad5103 mrp: Fix pairing requirement when disabled
|
|
792
|
+
fef1667 raop: Use correct auth type for RAOP pairing
|
|
793
|
+
a01117d build(deps): Bump cryptography from 41.0.1 to 41.0.2 in /requirements
|
|
794
|
+
5ede5a9 build(deps): Bump black from 23.3.0 to 23.7.0 in /requirements
|
|
795
|
+
e5bf455 build(deps): Bump zeroconf from 0.70.0 to 0.71.0 in /requirements
|
|
796
|
+
cef7b74 build(deps): Bump deepdiff from 6.3.0 to 6.3.1 in /requirements
|
|
797
|
+
67ad564 build(deps): Bump protobuf from 4.23.3 to 4.23.4 in /requirements
|
|
798
|
+
7815a8f docs: Clarify atvremote app section
|
|
799
|
+
11ab076 build(deps): Bump typed-ast from 1.5.4 to 1.5.5 in /requirements
|
|
800
|
+
b6514e8 build(deps): Bump mediafile from 0.11.0 to 0.12.0 in /requirements
|
|
801
|
+
2d70d8b build(deps): Bump zeroconf from 0.69.0 to 0.70.0 in /requirements
|
|
802
|
+
```
|
|
803
|
+
|
|
804
|
+
## 0.13.2 Itchy (2023-06-27)
|
|
805
|
+
|
|
806
|
+
Hitting it hard with new releases lately, here's another one:
|
|
807
|
+
|
|
808
|
+
* Artwork can now be set when streaming
|
|
809
|
+
* Metadata can be overridden only when missing
|
|
810
|
+
* New helper method: helpers.is_device_supported
|
|
811
|
+
* `bitarray` dependency has been dropped (no longer needed)
|
|
812
|
+
* Bug: AirPlay in macOS is ignored until I can support it
|
|
813
|
+
* Bug: Improved AirPlay 2 detection
|
|
814
|
+
|
|
815
|
+
So, this release makes it possible to provide artwork as part of metadata when
|
|
816
|
+
streaming files. It also adds a new flag, `override_missing_metadata`, that
|
|
817
|
+
(when set) will use metadata provided by what is streamed but use custom
|
|
818
|
+
metadata when some fields are missing. So if `title` is not in the stream, you
|
|
819
|
+
can now provide that but still keep things like `album` and `artist` from
|
|
820
|
+
the stream.
|
|
821
|
+
|
|
822
|
+
A new helper method, `helpers.is_device_support`, has been added that returns
|
|
823
|
+
boolean indicating if pyatv can interact with that device or not.
|
|
824
|
+
|
|
825
|
+
And some bug fixes. Namely: computers running macOS with AirPlay receiver
|
|
826
|
+
enabled (requires macOS 12 or later) are currently ignored as they aren't
|
|
827
|
+
supported. I will try to fix that when I can. Also, detection of AirPlay 2
|
|
828
|
+
devices has been improved. Some older devices (like Apple TV 3) was
|
|
829
|
+
discovered as AirPlay 2 devices, breaking `stream_file` support.
|
|
830
|
+
|
|
831
|
+
**Changes:**
|
|
832
|
+
|
|
833
|
+
*Protocol: AirPlay:*
|
|
834
|
+
|
|
835
|
+
```
|
|
836
|
+
20a7524 airplay: Fix AirPlay major version detection
|
|
837
|
+
703dc74 airplay: Disable AirPlay for macOS
|
|
838
|
+
```
|
|
839
|
+
|
|
840
|
+
*Protocol: RAOP:*
|
|
841
|
+
|
|
842
|
+
```
|
|
843
|
+
6beda0c raop: Allow setting artwork
|
|
844
|
+
7b534d5 raop: Support override missing stream fields
|
|
845
|
+
```
|
|
846
|
+
|
|
847
|
+
*Other:*
|
|
848
|
+
|
|
849
|
+
```
|
|
850
|
+
70ce630 support: Add missing metadata tests
|
|
851
|
+
3f054a0 deps: Remove bitarray code
|
|
852
|
+
8ee9b61 helpers: Add is_device_supported
|
|
853
|
+
```
|
|
854
|
+
|
|
855
|
+
**All changes:**
|
|
856
|
+
|
|
857
|
+
```
|
|
858
|
+
20a7524 airplay: Fix AirPlay major version detection
|
|
859
|
+
70ce630 support: Add missing metadata tests
|
|
860
|
+
6beda0c raop: Allow setting artwork
|
|
861
|
+
7b534d5 raop: Support override missing stream fields
|
|
862
|
+
703dc74 airplay: Disable AirPlay for macOS
|
|
863
|
+
3f054a0 deps: Remove bitarray code
|
|
864
|
+
8ee9b61 helpers: Add is_device_supported
|
|
865
|
+
9cbeeae build(deps): Bump bitarray from 2.7.5 to 2.7.6 in /requirements
|
|
866
|
+
60b7052 build(deps): Bump pytest from 7.3.2 to 7.4.0 in /requirements
|
|
867
|
+
1630694 build(deps): Bump mypy from 1.4.0 to 1.4.1 in /requirements
|
|
868
|
+
```
|
|
869
|
+
|
|
870
|
+
## 0.13.1 Homer (2023-06-22)
|
|
871
|
+
|
|
872
|
+
Small patch release coming up! Second generation HomePod has
|
|
873
|
+
been added as device type. A bug when streaming from a buffer
|
|
874
|
+
(something inheriting BufferedIOBase) has been fixed. The bug
|
|
875
|
+
would render metadata detection unusable and playback to cut
|
|
876
|
+
off early.
|
|
877
|
+
|
|
878
|
+
Previous releases would send raw PCM samples encapsulated in
|
|
879
|
+
Apple Lossless Audio Codec (ALAC) frames. This is now changed
|
|
880
|
+
to send pure raw audio frames instead (without ALAC). This
|
|
881
|
+
has a big benefit in regards to performance as the ALAC
|
|
882
|
+
header is not byte-aligned, so it required a lot of bit
|
|
883
|
+
shifting and memory copying. This was extremly noticable on
|
|
884
|
+
low-end systems like raspberry pi. Hopefully the performance
|
|
885
|
+
is a lot better now. Issue #2057 contains more details
|
|
886
|
+
regarding this for those interested.
|
|
887
|
+
|
|
888
|
+
**Changes:**
|
|
889
|
+
|
|
890
|
+
*Protocol: RAOP:*
|
|
891
|
+
|
|
892
|
+
```
|
|
893
|
+
51dffc9 raop: Send autio as raw PCM
|
|
894
|
+
3d4c5ff raop: Fix bug when streaming from buffer
|
|
895
|
+
```
|
|
896
|
+
|
|
897
|
+
*Other:*
|
|
898
|
+
|
|
899
|
+
```
|
|
900
|
+
02a8cab device: Add second generation HomePod
|
|
901
|
+
```
|
|
902
|
+
|
|
903
|
+
**All changes:**
|
|
904
|
+
|
|
905
|
+
```
|
|
906
|
+
dd773cc build(deps): Bump mypy from 1.3.0 to 1.4.0 in /requirements
|
|
907
|
+
fb18e3a build(deps): Bump zeroconf from 0.66.0 to 0.69.0 in /requirements
|
|
908
|
+
02a8cab device: Add second generation HomePod
|
|
909
|
+
51dffc9 raop: Send autio as raw PCM
|
|
910
|
+
3d4c5ff raop: Fix bug when streaming from buffer
|
|
911
|
+
```
|
|
912
|
+
|
|
913
|
+
## 0.13.0 Grandpa (2023-06-15)
|
|
914
|
+
|
|
915
|
+
This release contains some big new stuff, really nice. In summary we have:
|
|
916
|
+
|
|
917
|
+
* Basic support for audio streaming using AirPlay 2
|
|
918
|
+
* Proper power state support in Companion
|
|
919
|
+
* Support for activating screensaver
|
|
920
|
+
* Improved buffering of audio when streaming
|
|
921
|
+
* Added support for changing output devices in tvOS (@michalmo)
|
|
922
|
+
* atvproxy now supports MRP-over-AirPlay (@michalmo)
|
|
923
|
+
* Bug: Absolute/relative volume management is greatly improved (@michalmo)
|
|
924
|
+
* Bug: Position calculation improved in MRP
|
|
925
|
+
|
|
926
|
+
One of the big new things in this release is support for streaming audio via
|
|
927
|
+
AirPlay 2. Streaming via AirPlay 1 has been possible for quite some time now
|
|
928
|
+
and that is "good enough" (based on what pyatv supports) with Apple devices,
|
|
929
|
+
but not most 3rd party receivers as lots of them only support AirPlay 2. From
|
|
930
|
+
now on however, pyatv can be used to stream audio to previously unsupported
|
|
931
|
+
receivers, like Sonos for instance. It is still not possible to use controls
|
|
932
|
+
like pause and skip next, but metadata should work fine. More features will
|
|
933
|
+
be added over time. Main driver for this feature is using any AirPlay 2
|
|
934
|
+
receiver for Text-To-Speech (TTS) in Home Assistant.
|
|
935
|
+
|
|
936
|
+
Another feature lots of people have been asking for is an API to change output
|
|
937
|
+
device(s) on their Apple TV. This allows for changing audio device to for
|
|
938
|
+
instance a HomePod instead of the built-in TV speakers. @michalmo took a
|
|
939
|
+
crack at and implemented that (fixing AirPlay support in atvproxy whilst doing
|
|
940
|
+
so). Active devices can be listed or removed and new devices added, nice!
|
|
941
|
+
|
|
942
|
+
Yet another feature/bug fix is buffering support for non-seekable streams when
|
|
943
|
+
streaming audio via RAOP. When streaming from an Internet source for instance,
|
|
944
|
+
pyatv would "consume" data in a linear fashion (get X bytes, stream that, throw
|
|
945
|
+
it away, get next X bytes, etc.). For some formats this works fine, but a few
|
|
946
|
+
requires seeking, i.e. looking into the future of the stream and then going
|
|
947
|
+
back to the start again. This is not possible if the buffer is not seekable,
|
|
948
|
+
which is the case for an Internet source. I have now added general buffering
|
|
949
|
+
support for the beginning of a anything being streamed, improving streaming
|
|
950
|
+
support a lot. It also allows for extracting metadata from more formats, even
|
|
951
|
+
Internet sources, so that's a big improvements as well. It's not bulletproof,
|
|
952
|
+
so milage may vary. Again, main driver for this is Home Assistant. Some
|
|
953
|
+
TTS integrations, like picoTTS, would not work because the generated file
|
|
954
|
+
required seeking (due to file format being wav I think). This release should
|
|
955
|
+
fix that.
|
|
956
|
+
|
|
957
|
+
One more thing... proper standby detection via Companion! Recently (not exactly
|
|
958
|
+
sure which version) Apple added "SystemStatus" support over Companion. The
|
|
959
|
+
system status reflects whether a device is in standby or awake mode (or even
|
|
960
|
+
has the screensaver active). Changes are pushed as an event, so pyatv will
|
|
961
|
+
get notified as soon as the state changes. I hope this will help a lot of
|
|
962
|
+
people having problem with device state, like we see a lot of in Home
|
|
963
|
+
Assistant.
|
|
964
|
+
|
|
965
|
+
**Changes:**
|
|
966
|
+
|
|
967
|
+
*Protocol: MRP:*
|
|
968
|
+
|
|
969
|
+
```
|
|
970
|
+
850547e mrp: Fix position if playbackRate is 0.0
|
|
971
|
+
```
|
|
972
|
+
|
|
973
|
+
*Protocol: AirPlay:*
|
|
974
|
+
|
|
975
|
+
```
|
|
976
|
+
8badbf7 Support volume control for an Apple TV connected to HomePod(s) instead of TV speakers
|
|
977
|
+
254694c Control AirPlay output devices (#2044)
|
|
978
|
+
```
|
|
979
|
+
|
|
980
|
+
*Protocol: Companion:*
|
|
981
|
+
|
|
982
|
+
```
|
|
983
|
+
74b3fc4 companion: Implement SystemStatus support
|
|
984
|
+
62f6654 companion: Add screensaver support
|
|
985
|
+
```
|
|
986
|
+
|
|
987
|
+
*Protocol: RAOP:*
|
|
988
|
+
|
|
989
|
+
```
|
|
990
|
+
6d46726 raop: Basic AirPlay 2 streaming
|
|
991
|
+
bb20742 raop: Migrate remaining buffers to SemiSeekableBuffer
|
|
992
|
+
4807f0f raop: Migrate PatchedIceCastClient to SemiSeekableBuffer
|
|
993
|
+
```
|
|
994
|
+
|
|
995
|
+
*Script: atvremote:*
|
|
996
|
+
|
|
997
|
+
```
|
|
998
|
+
139bc4b atvremote: Allow custom service properties
|
|
999
|
+
```
|
|
1000
|
+
|
|
1001
|
+
**All changes:**
|
|
1002
|
+
|
|
1003
|
+
```
|
|
1004
|
+
74b3fc4 companion: Implement SystemStatus support
|
|
1005
|
+
850547e mrp: Fix position if playbackRate is 0.0
|
|
1006
|
+
10e207f raop: Handle setting volume later
|
|
1007
|
+
ab8ee57 raop: Add feedback to AirPlay 2 streaming
|
|
1008
|
+
6d46726 raop: Basic AirPlay 2 streaming
|
|
1009
|
+
139bc4b atvremote: Allow custom service properties
|
|
1010
|
+
12d9b5a airplay: Change RemoteControl to AP2Session
|
|
1011
|
+
290a1e0 rtsp: Make handling of bplists more general
|
|
1012
|
+
8badbf7 Support volume control for an Apple TV connected to HomePod(s) instead of TV speakers
|
|
1013
|
+
b99b4f8 Volume control improvements
|
|
1014
|
+
8815d02 build(deps): Bump codespell from 2.2.4 to 2.2.5 in /requirements
|
|
1015
|
+
979e61e build(deps): Bump protobuf from 4.23.2 to 4.23.3 in /requirements (#2051)
|
|
1016
|
+
a3e3d51 add FeatureName.TextFocusState to supported features for Companion (#2047)
|
|
1017
|
+
254694c Control AirPlay output devices (#2044)
|
|
1018
|
+
bb20742 raop: Migrate remaining buffers to SemiSeekableBuffer
|
|
1019
|
+
4807f0f raop: Migrate PatchedIceCastClient to SemiSeekableBuffer
|
|
1020
|
+
44a4c7a support: Add a SemiSeekableBuffer
|
|
1021
|
+
ca8c928 build(deps): Bump zeroconf from 0.64.1 to 0.66.0 in /requirements
|
|
1022
|
+
eeba576 build(deps): Bump bitarray from 2.7.4 to 2.7.5 in /requirements
|
|
1023
|
+
72f2f92 build(deps): Bump pytest from 7.3.1 to 7.3.2 in /requirements
|
|
1024
|
+
62f6654 companion: Add screensaver support
|
|
1025
|
+
e66aa2e if: Update doc string for pause
|
|
1026
|
+
4a66c5d tests: Fix some streaming instability in RAOP
|
|
1027
|
+
fbf02c3 cq: Disable deprecated warnings in pyatv tests
|
|
1028
|
+
ff89c26 update documentation
|
|
1029
|
+
d500480 unify identifiers and credentials
|
|
1030
|
+
83be27e add tests for HAP and transient auth
|
|
1031
|
+
0b75957 update tests to use airplay.server_auth
|
|
1032
|
+
a311b8b support segmented requests in BasicHttpServer
|
|
1033
|
+
054b9e5 rewrite identifiers to improve connection
|
|
1034
|
+
7a307c2 add protobuf ConfigureConnectionMessage
|
|
1035
|
+
fa006ff add field to UpdateOutputDeviceMessage
|
|
1036
|
+
6ca50c1 regenerate protobuf code
|
|
1037
|
+
d192759 log decoded channel messages
|
|
1038
|
+
5ebc663 replace CaseInsensitiveDict in pyatv.support.http with version from requests that preserves input case, which is better for proxying
|
|
1039
|
+
443f7d1 add public methods to pyatv.http to format requests and reponses
|
|
1040
|
+
ee9523b initial airplay proxy working with pyatv client
|
|
1041
|
+
```
|
|
1042
|
+
|
|
1043
|
+
## 0.12.1 Frankie (2023-06-08)
|
|
1044
|
+
|
|
1045
|
+
Time for a new release. Here it goes:
|
|
1046
|
+
|
|
1047
|
+
* Support for custom metadata when streaming audio
|
|
1048
|
+
* StreamReader (asyncio) can be used as streaming audio source
|
|
1049
|
+
* @a1ex4 fixed compatibility with shairport-sync
|
|
1050
|
+
* @michalmo added listener interface for keyboard focus
|
|
1051
|
+
* @Shraymonks added a few new tvOs versions and ATV 4K gen3
|
|
1052
|
+
* @michalmo addded deep linking support to launch_app
|
|
1053
|
+
|
|
1054
|
+
A little of this and a little bit of that. It's so much fun
|
|
1055
|
+
to see new contributors to the project! I love it, keep up
|
|
1056
|
+
the good work!
|
|
1057
|
+
|
|
1058
|
+
**Changes:**
|
|
1059
|
+
|
|
1060
|
+
*Protocol: RAOP:*
|
|
1061
|
+
|
|
1062
|
+
```
|
|
1063
|
+
e538496 raop: Support custom metadata when streaming (#2011)
|
|
1064
|
+
ec6a9fd raop: Support asyncio StreamReader when streaming (#2010)
|
|
1065
|
+
```
|
|
1066
|
+
|
|
1067
|
+
*Other:*
|
|
1068
|
+
|
|
1069
|
+
```
|
|
1070
|
+
8b3c15e added listener interface to Keyboard for focus updates
|
|
1071
|
+
ed7ac4b Fix shairport-sync player support
|
|
1072
|
+
9ef3ddc Add support for URL param to LaunchApp (#2024)
|
|
1073
|
+
8bf62de Add Apple TV 4k (gen3) and new tvOS versions
|
|
1074
|
+
```
|
|
1075
|
+
|
|
1076
|
+
**All changes:**
|
|
1077
|
+
|
|
1078
|
+
```
|
|
1079
|
+
0ce95c0 build(deps): Bump zeroconf from 0.64.0 to 0.64.1 in /requirements
|
|
1080
|
+
dcab463 change exception type based on code review
|
|
1081
|
+
53a4739 added Keyboard interface documentation
|
|
1082
|
+
8b3c15e added listener interface to Keyboard for focus updates
|
|
1083
|
+
990a82f preserve integer sizes when decoding/re-encoding with opack, fixes companion proxy stability
|
|
1084
|
+
d508f35 build(deps): Bump zeroconf from 0.63.0 to 0.64.0 in /requirements
|
|
1085
|
+
656ba7e build(deps): Bump miniaudio from 1.57 to 1.59 in /requirements
|
|
1086
|
+
ed7ac4b Fix shairport-sync player support
|
|
1087
|
+
062fc73 gha: Fix python version in logs workflow
|
|
1088
|
+
9966ce8 gha: Use python 3.10 for log parsing
|
|
1089
|
+
afe74a5 gha: Update log tests job
|
|
1090
|
+
95f2b5c build(deps): Bump cryptography from 41.0.0 to 41.0.1 in /requirements
|
|
1091
|
+
9ef3ddc Add support for URL param to LaunchApp (#2024)
|
|
1092
|
+
5633765 build(deps): Bump cryptography from 40.0.2 to 41.0.0 in /requirements
|
|
1093
|
+
20aa9a8 build(deps): Bump bitarray from 2.7.3 to 2.7.4 in /requirements
|
|
1094
|
+
50be0f8 build(deps): Bump types-requests in /requirements
|
|
1095
|
+
001ea0e build(deps): Bump protobuf from 4.23.1 to 4.23.2 in /requirements
|
|
1096
|
+
dcbf581 gha: Fix building docker images
|
|
1097
|
+
4f9b1c8 build(deps): Bump pytest-cov from 4.0.0 to 4.1.0 in /requirements
|
|
1098
|
+
6c05064 build(deps): Bump zeroconf from 0.62.0 to 0.63.0 in /requirements
|
|
1099
|
+
8bf62de Add Apple TV 4k (gen3) and new tvOS versions
|
|
1100
|
+
e538496 raop: Support custom metadata when streaming (#2011)
|
|
1101
|
+
ec6a9fd raop: Support asyncio StreamReader when streaming (#2010)
|
|
1102
|
+
747fd46 env: Install correct miniaudio on GHA (#2012)
|
|
1103
|
+
```
|
|
1104
|
+
|
|
1105
|
+
## 0.12.0 Edna (2023-05-24)
|
|
1106
|
+
|
|
1107
|
+
@michalmo has been working hard to bring you this release.
|
|
1108
|
+
It featuers the following:
|
|
1109
|
+
|
|
1110
|
+
* Text/keyboard input API (get and alter current text)
|
|
1111
|
+
* Listener interface for volume updates (+ bug fix for MRP)
|
|
1112
|
+
* Updates to make atvproxy work with Companion (for devs)
|
|
1113
|
+
|
|
1114
|
+
Thanks for your hard work @michalmo, it's really great to get
|
|
1115
|
+
some help since I don't have much time for pyatv right now. I
|
|
1116
|
+
know a lot of people are waiting for these features.
|
|
1117
|
+
|
|
1118
|
+
**Changes:**
|
|
1119
|
+
|
|
1120
|
+
*Other:*
|
|
1121
|
+
|
|
1122
|
+
```
|
|
1123
|
+
34c719c Add support for companion protocol text input (#1905)
|
|
1124
|
+
39e4d08 Make sure were sending and receiving volume messages for our device, even if playing to other AirPlay devices in a group (#2006)
|
|
1125
|
+
ccf8a8c Fix companion proxy (#1912)
|
|
1126
|
+
7c3707b added listener interface to Audio for volume updates
|
|
1127
|
+
```
|
|
1128
|
+
|
|
1129
|
+
**All changes:**
|
|
1130
|
+
|
|
1131
|
+
```
|
|
1132
|
+
931b808 build(deps): Bump types-requests in /requirements (#2004)
|
|
1133
|
+
34c719c Add support for companion protocol text input (#1905)
|
|
1134
|
+
39e4d08 Make sure were sending and receiving volume messages for our device, even if playing to other AirPlay devices in a group (#2006)
|
|
1135
|
+
0028ce2 build(deps): Bump protobuf from 4.23.0 to 4.23.1 in /requirements (#2000)
|
|
1136
|
+
ccf8a8c Fix companion proxy (#1912)
|
|
1137
|
+
e7ac293 build(deps): Bump pytest-xdist from 3.2.1 to 3.3.1 in /requirements
|
|
1138
|
+
5749656 build(deps): Bump requests from 2.30.0 to 2.31.0 in /requirements
|
|
1139
|
+
7c3707b added listener interface to Audio for volume updates
|
|
1140
|
+
```
|
|
1141
|
+
|
|
1142
|
+
## 0.11.0 Duffman (2023-05-15)
|
|
1143
|
+
|
|
1144
|
+
Wow, it has been a long time since the last release. Unfortunately
|
|
1145
|
+
i don't have much time to work on pyatv right now, but i will try
|
|
1146
|
+
my best to make some bug fixes at least. In short, this release
|
|
1147
|
+
fixes a timeout bug when streaming to HomePods (introduced around
|
|
1148
|
+
16.4). It shall also fix missing artwork sometimes and account
|
|
1149
|
+
switching (using Companion protocol) is now also possible thanks
|
|
1150
|
+
to @michalmo.
|
|
1151
|
+
|
|
1152
|
+
From this release I will use code names from Simpsons. There's more
|
|
1153
|
+
to choose from there...
|
|
1154
|
+
|
|
1155
|
+
**Changes:**
|
|
1156
|
+
|
|
1157
|
+
*Script: atvscript:*
|
|
1158
|
+
|
|
1159
|
+
```
|
|
1160
|
+
1533a89 atvscript: Check app support before printing
|
|
1161
|
+
```
|
|
1162
|
+
|
|
1163
|
+
*Other:*
|
|
1164
|
+
|
|
1165
|
+
```
|
|
1166
|
+
8b16f5a protobuf: Bump to 4.22.3
|
|
1167
|
+
a7a5c54 protobuf: Bump and fix protobuf to 21.0
|
|
1168
|
+
7cf5d2f deps: Deprecate python 3.7
|
|
1169
|
+
3c13841 deps: Bump aiohttp to at least 3.8.3
|
|
1170
|
+
71b592e gha: Run tests with python 3.11
|
|
1171
|
+
7dee1e4 reuse client session from Core
|
|
1172
|
+
d8bc55b fix missing artwork
|
|
1173
|
+
9e73711 http: Increase timeout for http requests
|
|
1174
|
+
5634fc0 deps: Remove codecov as test dependency
|
|
1175
|
+
02b62ec test: Fix strict mode in pytest_asyncio
|
|
1176
|
+
aa23a11 readable paired device names for airplay and companion protocols
|
|
1177
|
+
bec4ed2 added support for companion protocol account switching
|
|
1178
|
+
```
|
|
1179
|
+
|
|
1180
|
+
**All changes:**
|
|
1181
|
+
|
|
1182
|
+
```
|
|
1183
|
+
e6d9299 build(deps): Bump pylint from 2.17.2 to 2.17.4 in /requirements
|
|
1184
|
+
436a8bc build(deps): Bump types-requests in /requirements
|
|
1185
|
+
10c5387 build(deps): Bump requests from 2.28.2 to 2.30.0 in /requirements
|
|
1186
|
+
a7aa051 build(deps): Bump mypy from 1.2.0 to 1.3.0 in /requirements
|
|
1187
|
+
3a2bc39 build(deps): Bump types-protobuf in /requirements
|
|
1188
|
+
5527d28 build(deps): Bump protobuf from 4.22.3 to 4.23.0 in /requirements
|
|
1189
|
+
0b4cd97 build(deps): Bump miniaudio from 1.56 to 1.57 in /requirements
|
|
1190
|
+
7faf30b build(deps): Bump zeroconf from 0.56.0 to 0.62.0 in /requirements
|
|
1191
|
+
f8fbbfe build(deps): Bump mediafile from 0.9.0 to 0.11.0 in /requirements
|
|
1192
|
+
f354a90 build(deps): Bump pytest-cov from 3.0.0 to 4.0.0 in /requirements
|
|
1193
|
+
788d643 build(deps): Bump pytest-xdist from 2.5.0 to 3.2.1 in /requirements
|
|
1194
|
+
ca5dc87 build(deps): Bump pytest from 7.1.2 to 7.3.1 in /requirements
|
|
1195
|
+
8f9d220 build(deps): Bump pydocstyle from 6.1.1 to 6.3.0 in /requirements
|
|
1196
|
+
7acaf6e deps: Fix new black issues
|
|
1197
|
+
17c8e13 build(deps): Bump black from 22.6.0 to 23.3.0 in /requirements
|
|
1198
|
+
3703173 build(deps): Bump mypy-protobuf from 3.2.0 to 3.4.0 in /requirements
|
|
1199
|
+
8b16f5a protobuf: Bump to 4.22.3
|
|
1200
|
+
a353870 protobuf: Hardcode protoc version again
|
|
1201
|
+
a7a5c54 protobuf: Bump and fix protobuf to 21.0
|
|
1202
|
+
8d1c5d4 build(deps): bump protobuf from 3.20.1 to 4.21.2 in /requirements
|
|
1203
|
+
14cf46c build(deps): Bump isort from 5.10.1 to 5.12.0 in /requirements
|
|
1204
|
+
c6feb23 deps: Fix flake8 issues
|
|
1205
|
+
8d4c1b9 build(deps): Bump flake8 from 5.0.3 to 6.0.0 in /requirements
|
|
1206
|
+
7cf5d2f deps: Deprecate python 3.7
|
|
1207
|
+
0edde61 build(deps): Bump cryptography from 40.0.1 to 40.0.2 in /requirements
|
|
1208
|
+
46c21e6 build(deps): Bump aiohttp from 3.8.1 to 3.8.4 in /requirements
|
|
1209
|
+
3c13841 deps: Bump aiohttp to at least 3.8.3
|
|
1210
|
+
71b592e gha: Run tests with python 3.11
|
|
1211
|
+
d9aa981 cq: Fix warnings and various issues
|
|
1212
|
+
5686462 build(deps): Bump zeroconf from 0.47.3 to 0.56.0 in /requirements
|
|
1213
|
+
acdebfc build(deps): Bump bitarray from 2.6.0 to 2.7.3 in /requirements
|
|
1214
|
+
2618e1d build(deps): Bump types-protobuf in /requirements
|
|
1215
|
+
1533a89 atvscript: Check app support before printing
|
|
1216
|
+
dfbb15b deps: Fix pylint issues in new release
|
|
1217
|
+
51c7316 build(deps): Bump pylint from 2.14.5 to 2.17.2 in /requirements
|
|
1218
|
+
7d3024e build(deps): Bump types-requests in /requirements
|
|
1219
|
+
15b6fda deps: Fix mypy issues from upgrade
|
|
1220
|
+
08f561e build(deps): Bump mypy from 0.961 to 1.2.0 in /requirements
|
|
1221
|
+
2f5f1ae add tests for hosted artwork
|
|
1222
|
+
7dee1e4 reuse client session from Core
|
|
1223
|
+
d8bc55b fix missing artwork
|
|
1224
|
+
8ede99e build(deps): Bump mutagen from 1.45.1 to 1.46.0 in /requirements
|
|
1225
|
+
9e73711 http: Increase timeout for http requests
|
|
1226
|
+
5634fc0 deps: Remove codecov as test dependency
|
|
1227
|
+
02b62ec test: Fix strict mode in pytest_asyncio
|
|
1228
|
+
34254b4 build(deps): Bump pytest-asyncio from 0.18.3 to 0.21.0 in /requirements
|
|
1229
|
+
b012b89 build(deps): Bump cryptography from 39.0.2 to 40.0.1 in /requirements
|
|
1230
|
+
93585e3 build(deps): Bump requests from 2.28.1 to 2.28.2 in /requirements
|
|
1231
|
+
fe4b654 move opack.py into pyatv/support
|
|
1232
|
+
aa23a11 readable paired device names for airplay and companion protocols
|
|
1233
|
+
88f1fbe build(deps): Bump codespell from 2.1.0 to 2.2.4 in /requirements
|
|
1234
|
+
bec4ed2 added support for companion protocol account switching
|
|
1235
|
+
8925745 build(deps): Bump deepdiff from 5.8.1 to 6.3.0 in /requirements
|
|
1236
|
+
f68e0b0 build(deps): Bump miniaudio from 1.51 to 1.56 in /requirements
|
|
1237
|
+
3787e7a build(deps): Bump zeroconf from 0.38.7 to 0.47.3 in /requirements
|
|
1238
|
+
5a7453d build(deps): Bump cryptography from 37.0.4 to 39.0.2 in /requirements
|
|
1239
|
+
fe704a3 Redirecting to correct page
|
|
1240
|
+
000c7ab build(deps): Bump flake8 from 4.0.1 to 5.0.3 in /requirements
|
|
1241
|
+
```
|
|
1242
|
+
|
|
1243
|
+
## 0.10.3 Chica (2022-08-02)
|
|
1244
|
+
|
|
1245
|
+
This is another minor release:
|
|
1246
|
+
|
|
1247
|
+
* Adds device info and operating system to atvscript
|
|
1248
|
+
* Fixes a bug in set_volume on some devices, e.g. HomePod
|
|
1249
|
+
* Use async_timeout instead of asyncio.wait_for
|
|
1250
|
+
|
|
1251
|
+
**Changes:**
|
|
1252
|
+
|
|
1253
|
+
*Protocol: MRP:*
|
|
1254
|
+
|
|
1255
|
+
```
|
|
1256
|
+
88547ac mrp: Fix set_volume bug
|
|
1257
|
+
```
|
|
1258
|
+
|
|
1259
|
+
*Script: atvscript:*
|
|
1260
|
+
|
|
1261
|
+
```
|
|
1262
|
+
5edeeb8 atvscript: Add operating_system and version
|
|
1263
|
+
fdae0b7 atvscript: Add device_info section
|
|
1264
|
+
7704faa atvscript: Add model and model_str to scan
|
|
1265
|
+
```
|
|
1266
|
+
|
|
1267
|
+
*Other:*
|
|
1268
|
+
|
|
1269
|
+
```
|
|
1270
|
+
d9e1cc5 Switch out asyncio.wait_for with async_timeout
|
|
1271
|
+
5a20486 conf: Add model_str property
|
|
1272
|
+
0e03ad5 cq: Remove cruft files
|
|
1273
|
+
```
|
|
1274
|
+
|
|
1275
|
+
**All changes:**
|
|
1276
|
+
|
|
1277
|
+
```
|
|
1278
|
+
88547ac mrp: Fix set_volume bug
|
|
1279
|
+
d9e1cc5 Switch out asyncio.wait_for with async_timeout
|
|
1280
|
+
ddba0fb build(deps): Bump types-requests from 2.28.1 to 2.28.3 in /requirements
|
|
1281
|
+
951ea53 build(deps): Bump bitarray from 2.5.1 to 2.6.0 in /requirements
|
|
1282
|
+
4e4b695 build(deps): Bump types-requests from 2.28.0 to 2.28.1 in /requirements
|
|
1283
|
+
522ebe7 build(deps): Bump pylint from 2.14.4 to 2.14.5 in /requirements
|
|
1284
|
+
5edeeb8 atvscript: Add operating_system and version
|
|
1285
|
+
fdae0b7 atvscript: Add device_info section
|
|
1286
|
+
7704faa atvscript: Add model and model_str to scan
|
|
1287
|
+
5a20486 conf: Add model_str property
|
|
1288
|
+
0e03ad5 cq: Remove cruft files
|
|
1289
|
+
6492aa9 build(deps): Bump pytest-aiohttp from 1.0.2 to 1.0.4 in /requirements (#1782)
|
|
1290
|
+
fe2515c build(deps): Bump pylint from 2.14.3 to 2.14.4 in /requirements (#1783)
|
|
1291
|
+
c1b03df build(deps): Bump cryptography from 37.0.2 to 37.0.4 in /requirements (#1788)
|
|
1292
|
+
cf49456 build(deps): Bump requests from 2.28.0 to 2.28.1 in /requirements (#1784)
|
|
1293
|
+
46922dd build(deps): Bump chacha20poly1305-reuseable in /requirements (#1787)
|
|
1294
|
+
```
|
|
1295
|
+
|
|
1296
|
+
## 0.10.2 Bonnet (2022-06-28)
|
|
1297
|
+
|
|
1298
|
+
This release just lowers the required version of cryptography
|
|
1299
|
+
to 36.0.2 or higher.
|
|
1300
|
+
|
|
1301
|
+
**Changes:**
|
|
1302
|
+
|
|
1303
|
+
*Other:*
|
|
1304
|
+
|
|
1305
|
+
```
|
|
1306
|
+
ecada17 deps: Require cryptography >= 36.0.2 (#1780)
|
|
1307
|
+
```
|
|
1308
|
+
|
|
1309
|
+
**All changes:**
|
|
1310
|
+
|
|
1311
|
+
```
|
|
1312
|
+
ecada17 deps: Require cryptography >= 36.0.2 (#1780)
|
|
1313
|
+
```
|
|
1314
|
+
|
|
1315
|
+
## 0.10.1 Yenndo (2022-06-28)
|
|
1316
|
+
|
|
1317
|
+
This is a minor bug fix release, taking care of some nasty stuff:
|
|
1318
|
+
|
|
1319
|
+
* Do not block event loop when streaming audio from a network source
|
|
1320
|
+
* Support RAOP devices with invalid names
|
|
1321
|
+
* Add support for `channel_up` and `channel_down` (only Companion so far)
|
|
1322
|
+
* Increase encryption performance with `ChaCha20Poly1305Reusable`
|
|
1323
|
+
* Discovery should work better on Windows now
|
|
1324
|
+
|
|
1325
|
+
Have a splendid summer!
|
|
1326
|
+
|
|
1327
|
+
**Changes:**
|
|
1328
|
+
|
|
1329
|
+
*Protocol: RAOP:*
|
|
1330
|
+
|
|
1331
|
+
```
|
|
1332
|
+
4c3ef81 raop: Fallback to pk as unique id (#1777)
|
|
1333
|
+
5805f2c raop: Not do blocking I/O while streaming (#1776)
|
|
1334
|
+
da184b9 raop: Increase late warning to five frames (#1775)
|
|
1335
|
+
6195324 raop: Harmonize protocol string in requests
|
|
1336
|
+
```
|
|
1337
|
+
|
|
1338
|
+
*Other:*
|
|
1339
|
+
|
|
1340
|
+
```
|
|
1341
|
+
31de26a Implement channel_up and channel_down (#1769)
|
|
1342
|
+
d69554e protobuf: Add more fields to DeviceInfoMessage (#1778)
|
|
1343
|
+
36261f1 mdns: Suppress exceptions properly (#1774)
|
|
1344
|
+
5ba0e24 Switch to using ChaCha20Poly1305Reusable for encryption (#1756)
|
|
1345
|
+
3c69600 Fix sed command in setup_dev_env.sh for macOS
|
|
1346
|
+
9c15fd7 Fix path to setup_dev_env.sh in CONTRIBUTING.md
|
|
1347
|
+
ccc5a94 Adding a project to the list
|
|
1348
|
+
e694a21 docs: Update list with projects using pyatv
|
|
1349
|
+
```
|
|
1350
|
+
|
|
1351
|
+
**All changes:**
|
|
1352
|
+
|
|
1353
|
+
```
|
|
1354
|
+
31de26a Implement channel_up and channel_down (#1769)
|
|
1355
|
+
89b8988 build(deps): bump pytest-aiohttp from 0.3.0 to 1.0.2 in /requirements (#1623)
|
|
1356
|
+
e272858 build(deps): bump pylint from 2.13.9 to 2.14.3 in /requirements (#1757)
|
|
1357
|
+
d69554e protobuf: Add more fields to DeviceInfoMessage (#1778)
|
|
1358
|
+
2179c12 build(deps): bump types-protobuf in /requirements (#1767)
|
|
1359
|
+
4c3ef81 raop: Fallback to pk as unique id (#1777)
|
|
1360
|
+
5805f2c raop: Not do blocking I/O while streaming (#1776)
|
|
1361
|
+
36261f1 mdns: Suppress exceptions properly (#1774)
|
|
1362
|
+
da184b9 raop: Increase late warning to five frames (#1775)
|
|
1363
|
+
f424d7c build(deps): bump black from 22.3.0 to 22.6.0 in /requirements (#1770)
|
|
1364
|
+
8d69f68 build(deps): bump types-protobuf in /requirements (#1738)
|
|
1365
|
+
c885a43 build(deps): bump requests from 2.27.1 to 2.28.0 in /requirements (#1750)
|
|
1366
|
+
9859fdb build(deps): bump ifaddr from 0.1.7 to 0.2.0 in /requirements (#1766)
|
|
1367
|
+
cbd1305 build(deps): bump zeroconf from 0.38.6 to 0.38.7 in /requirements (#1751)
|
|
1368
|
+
5ba0e24 Switch to using ChaCha20Poly1305Reusable for encryption (#1756)
|
|
1369
|
+
2f8af90 build(deps): bump types-requests from 2.27.31 to 2.28.0 in /requirements
|
|
1370
|
+
4d321b4 build(deps): bump ifaddr from 0.1.7 to 0.2.0 in /requirements
|
|
1371
|
+
e4279be build(deps): bump miniaudio from 1.46 to 1.51 in /requirements
|
|
1372
|
+
043ca4c build(deps): bump types-requests in /requirements
|
|
1373
|
+
68d02f2 build(deps): bump mypy from 0.960 to 0.961 in /requirements
|
|
1374
|
+
be1b68e build(deps): bump types-requests in /requirements
|
|
1375
|
+
93f7904 build(deps): bump mypy from 0.950 to 0.960 in /requirements
|
|
1376
|
+
d43e4a3 build(deps): bump typed-ast from 1.5.3 to 1.5.4 in /requirements
|
|
1377
|
+
5e362be build(deps): bump types-requests in /requirements
|
|
1378
|
+
ec086ad build(deps): bump pylint from 2.13.8 to 2.13.9 in /requirements
|
|
1379
|
+
c5dd9c1 build(deps): bump deepdiff from 5.8.0 to 5.8.1 in /requirements
|
|
1380
|
+
c9ae1e3 build(deps): bump mypy-protobuf from 3.1.0 to 3.2.0 in /requirements
|
|
1381
|
+
3c69600 Fix sed command in setup_dev_env.sh for macOS
|
|
1382
|
+
9c15fd7 Fix path to setup_dev_env.sh in CONTRIBUTING.md
|
|
1383
|
+
72ea8ea build(deps): bump types-requests in /requirements
|
|
1384
|
+
3422693 build(deps): bump protobuf from 3.19.4 to 3.20.1 in /requirements
|
|
1385
|
+
97cacda build(deps): bump pylint from 2.12.2 to 2.13.8 in /requirements
|
|
1386
|
+
6c4c1c2 build(deps): bump zeroconf from 0.38.3 to 0.38.6 in /requirements
|
|
1387
|
+
40f170e build(deps): bump bitarray from 2.3.7 to 2.5.1 in /requirements
|
|
1388
|
+
6195324 raop: Harmonize protocol string in requests
|
|
1389
|
+
43aa905 build(deps): bump deepdiff from 5.7.0 to 5.8.0 in /requirements
|
|
1390
|
+
62a037a build(deps): bump typed-ast from 1.5.2 to 1.5.3 in /requirements
|
|
1391
|
+
6975543 build(deps): bump pytest from 7.0.1 to 7.1.2 in /requirements
|
|
1392
|
+
6690c59 build(deps): bump types-protobuf in /requirements
|
|
1393
|
+
b62d488 build(deps): bump pytest-asyncio from 0.18.1 to 0.18.3 in /requirements
|
|
1394
|
+
4fb2bb8 build(deps): bump mypy from 0.931 to 0.950 in /requirements
|
|
1395
|
+
f52df10 build(deps): bump cryptography from 36.0.1 to 37.0.2 in /requirements
|
|
1396
|
+
a741e48 build(deps): bump black from 21.12b0 to 22.3.0 in /requirements
|
|
1397
|
+
b63b449 build(deps): bump types-requests in /requirements
|
|
1398
|
+
8ac3844 build(deps): bump bitarray from 2.3.6 to 2.3.7 in /requirements
|
|
1399
|
+
8741f19 build(deps): bump pytest-asyncio from 0.17.2 to 0.18.1 in /requirements
|
|
1400
|
+
4092f6e build(deps): bump types-protobuf from 3.19.8 to 3.19.12 in /requirements
|
|
1401
|
+
d365cda build(deps): bump pytest from 6.2.5 to 7.0.1 in /requirements
|
|
1402
|
+
d821548 build(deps): bump types-requests from 2.27.8 to 2.27.10 in /requirements
|
|
1403
|
+
8a53693 build(deps): bump bitarray from 2.3.5 to 2.3.6 in /requirements
|
|
1404
|
+
ccc5a94 Adding a project to the list
|
|
1405
|
+
e694a21 docs: Update list with projects using pyatv
|
|
1406
|
+
4a0f940 build(deps): bump types-protobuf from 3.19.5 to 3.19.8 in /requirements
|
|
1407
|
+
a790bd4 build(deps): bump types-requests from 2.27.7 to 2.27.8 in /requirements
|
|
1408
|
+
bb36796 build(deps): bump protobuf from 3.19.3 to 3.19.4 in /requirements
|
|
1409
|
+
995ee6b build(deps): bump zeroconf from 0.38.1 to 0.38.3 in /requirements
|
|
1410
|
+
735faa0 build(deps): bump typed-ast from 1.5.1 to 1.5.2 in /requirements
|
|
1411
|
+
```
|
|
1412
|
+
|
|
1413
|
+
## 0.10.0 XOR (2022-01-23)
|
|
1414
|
+
|
|
1415
|
+
It's a new year and time for a new release with a few bug fixes:
|
|
1416
|
+
|
|
1417
|
+
* Play state was reported inconsistently with iOS (MRP) and is now fixed
|
|
1418
|
+
* Pairing requirement was incorrectly reported as mandatory for Companion
|
|
1419
|
+
and AirPlay in some cases
|
|
1420
|
+
* All internal resources are now de-allocated when a connection is closed or
|
|
1421
|
+
lost, so no need to call for instance push_updater.stop
|
|
1422
|
+
* Initial support to scan with python-zeroconf. Internal multicast and unicast
|
|
1423
|
+
methods will be ported to this over time.
|
|
1424
|
+
|
|
1425
|
+
This release drops support for python 3.6, mainly due to python-zeroconf not
|
|
1426
|
+
supporting that version. My intention is to not support EOL versions of python
|
|
1427
|
+
in the future.
|
|
1428
|
+
|
|
1429
|
+
**Changes:**
|
|
1430
|
+
|
|
1431
|
+
*Protocol: MRP:*
|
|
1432
|
+
|
|
1433
|
+
```
|
|
1434
|
+
02202ff mrp: Fix play state bug
|
|
1435
|
+
```
|
|
1436
|
+
|
|
1437
|
+
*Protocol: AirPlay:*
|
|
1438
|
+
|
|
1439
|
+
```
|
|
1440
|
+
da51ff4 airplay: Fix pairing requirement bug
|
|
1441
|
+
```
|
|
1442
|
+
|
|
1443
|
+
*Protocol: Companion:*
|
|
1444
|
+
|
|
1445
|
+
```
|
|
1446
|
+
baf4a9f companion: Fix pairing requirement flag
|
|
1447
|
+
```
|
|
1448
|
+
|
|
1449
|
+
*Protocol: RAOP:*
|
|
1450
|
+
|
|
1451
|
+
```
|
|
1452
|
+
c74e710 raop: Fix stream from buffer bug
|
|
1453
|
+
e7afb7e raop: Use requests instead of urllib in web stream
|
|
1454
|
+
0db2447 raop: Override volume from other protocols
|
|
1455
|
+
```
|
|
1456
|
+
|
|
1457
|
+
*Other:*
|
|
1458
|
+
|
|
1459
|
+
```
|
|
1460
|
+
52a0f03 scan: Add support for scanning with AsyncZeroconf
|
|
1461
|
+
55ef75c deps: Deprecate python 3.6
|
|
1462
|
+
204049b Ensure knock exceptions are retrieved
|
|
1463
|
+
df6047a deps: Add requests as dependency
|
|
1464
|
+
b099169 gha: Don't build for armv7
|
|
1465
|
+
d6ffbd2 facade: Stop push updaters on close
|
|
1466
|
+
37f6a1a core: Dispatch volume changes in protocols
|
|
1467
|
+
```
|
|
1468
|
+
|
|
1469
|
+
**All changes:**
|
|
1470
|
+
|
|
1471
|
+
```
|
|
1472
|
+
02202ff mrp: Fix play state bug
|
|
1473
|
+
52a0f03 scan: Add support for scanning with AsyncZeroconf
|
|
1474
|
+
4d3687e build(deps): bump types-protobuf from 3.19.4 to 3.19.5 in /requirements
|
|
1475
|
+
3e90c65 build(deps): bump mypy-protobuf from 3.0.0 to 3.1.0 in /requirements
|
|
1476
|
+
6c58037 build(deps): bump pytest-asyncio from 0.16.0 to 0.17.2 in /requirements
|
|
1477
|
+
55ef75c deps: Deprecate python 3.6
|
|
1478
|
+
baf4a9f companion: Fix pairing requirement flag
|
|
1479
|
+
261cbb6 build(deps): bump types-requests from 2.27.5 to 2.27.7 in /requirements
|
|
1480
|
+
c7c40c8 Fixes and amendments to protocols doc.
|
|
1481
|
+
1b3e09e build(deps): bump pytest-timeout from 2.0.2 to 2.1.0 in /requirements
|
|
1482
|
+
ef88032 build(deps): bump types-protobuf from 3.19.0 to 3.19.4 in /requirements
|
|
1483
|
+
b386ae0 build(deps): bump protobuf from 3.19.1 to 3.19.3 in /requirements
|
|
1484
|
+
6b50822 build(deps): bump types-protobuf from 3.18.4 to 3.19.0 in /requirements
|
|
1485
|
+
4ed1f55 build(deps): bump types-protobuf from 3.18.3 to 3.18.4 in /requirements
|
|
1486
|
+
e40be8d build(deps): bump bitarray from 2.3.4 to 2.3.5 in /requirements
|
|
1487
|
+
bb79792 build(deps): bump mypy from 0.930 to 0.931 in /requirements
|
|
1488
|
+
182ffdd build(deps): bump types-requests from 2.26.3 to 2.27.5 in /requirements
|
|
1489
|
+
8a7ec5d build(deps): bump requests from 2.27.0 to 2.27.1 in /requirements
|
|
1490
|
+
0217895 build(deps): bump miniaudio from 1.45 to 1.46 in /requirements
|
|
1491
|
+
d9cdad9 build(deps): bump types-protobuf from 3.18.2 to 3.18.3 in /requirements
|
|
1492
|
+
cb05378 build(deps): bump requests from 2.26.0 to 2.27.0 in /requirements
|
|
1493
|
+
01cbdf6 skip test on legacy 3.7
|
|
1494
|
+
b2960bf skip test on legacy 3.7
|
|
1495
|
+
fed3288 skip test on legacy 3.7
|
|
1496
|
+
a9373e4 Ensure knock exceptions are retrieved
|
|
1497
|
+
18d523d Ensure knock exceptions are retrieved
|
|
1498
|
+
1b01ab4 Ensure knock exceptions are retrieved
|
|
1499
|
+
204049b Ensure knock exceptions are retrieved
|
|
1500
|
+
c2c5436 build(deps): bump types-requests from 2.26.2 to 2.26.3 in /requirements
|
|
1501
|
+
f4cd28f build(deps): bump mypy from 0.921 to 0.930 in /requirements
|
|
1502
|
+
b18b0f0 build(deps): bump zeroconf from 0.37.0 to 0.38.1 in /requirements
|
|
1503
|
+
5a67911 build(deps): bump mypy from 0.920 to 0.921 in /requirements
|
|
1504
|
+
df6047a deps: Add requests as dependency
|
|
1505
|
+
c74e710 raop: Fix stream from buffer bug
|
|
1506
|
+
b099169 gha: Don't build for armv7
|
|
1507
|
+
e7afb7e raop: Use requests instead of urllib in web stream
|
|
1508
|
+
09e7076 core: Introduce Core in protocols
|
|
1509
|
+
28ec1f7 build(deps): bump deepdiff from 5.6.0 to 5.7.0 in /requirements
|
|
1510
|
+
da51ff4 airplay: Fix pairing requirement bug
|
|
1511
|
+
d6ffbd2 facade: Stop push updaters on close
|
|
1512
|
+
0db2447 raop: Override volume from other protocols
|
|
1513
|
+
37f6a1a core: Dispatch volume changes in protocols
|
|
1514
|
+
18decdf mrp: Fix protocol bug in state dispatcher
|
|
1515
|
+
6918c11 build(deps): bump typed-ast from 1.4.3 to 1.5.1 in /requirements
|
|
1516
|
+
f514e43 build(deps): bump mypy from 0.910 to 0.920 in /requirements
|
|
1517
|
+
```
|
|
1518
|
+
|
|
1519
|
+
## 0.9.8 Vanny (2021-12-15)
|
|
1520
|
+
|
|
1521
|
+
Here is yet another release with a bunch of bug fixes and improvements:
|
|
1522
|
+
|
|
1523
|
+
* Calling public interface methods after disconnecting now results
|
|
1524
|
+
in `BlockedStateError` being raised
|
|
1525
|
+
* `power_state` now depends on `device_state`. Because of the unreliable
|
|
1526
|
+
method used to derive `power_state`, a device could be reported as
|
|
1527
|
+
powered off while playing some media, which doesn't make sense. As
|
|
1528
|
+
long as `device_state` is not `idle`, the power state will be reported
|
|
1529
|
+
as on.
|
|
1530
|
+
* Button presses in MRP should be more reliable and not skipped or
|
|
1531
|
+
repeated now.
|
|
1532
|
+
* `netifaces` has been replaced by `ifaddr` due to lack of a maintainer.
|
|
1533
|
+
* A few fixes have been made for MRP on devices running tvOS <= 14.
|
|
1534
|
+
* The pause `pause` in RAOP will now stops playback. This is merely
|
|
1535
|
+
because it's not implemented yet and aligns better with Home
|
|
1536
|
+
Assistant for now.
|
|
1537
|
+
|
|
1538
|
+
**Changes:**
|
|
1539
|
+
|
|
1540
|
+
*Protocol: MRP:*
|
|
1541
|
+
|
|
1542
|
+
```
|
|
1543
|
+
18d7a6e mrp: Do not disable MRP service for older tvOS
|
|
1544
|
+
9541d21 mrp: Fix erroneous button press behavior (#1521)
|
|
1545
|
+
74d38b2 mrp: Add enable_encryption to connection
|
|
1546
|
+
```
|
|
1547
|
+
|
|
1548
|
+
*Protocol: AirPlay:*
|
|
1549
|
+
|
|
1550
|
+
```
|
|
1551
|
+
3065d6c airplay: Be stricter when setting up remotecontrol
|
|
1552
|
+
```
|
|
1553
|
+
|
|
1554
|
+
*Protocol: RAOP:*
|
|
1555
|
+
|
|
1556
|
+
```
|
|
1557
|
+
f0c4c33 raop: Let pause button stop playback
|
|
1558
|
+
```
|
|
1559
|
+
|
|
1560
|
+
*Other:*
|
|
1561
|
+
|
|
1562
|
+
```
|
|
1563
|
+
6540c49 facade: Block calls to public methods after close
|
|
1564
|
+
c6e9466 facade: Make Power interface respect play status
|
|
1565
|
+
4b0136b dep: Migrate from netifaces to ifaddr
|
|
1566
|
+
```
|
|
1567
|
+
|
|
1568
|
+
**All changes:**
|
|
1569
|
+
|
|
1570
|
+
```
|
|
1571
|
+
732339f protobuf: Fix support on Windows
|
|
1572
|
+
ba5e6bb protobuf: Use version from base_versions.txt
|
|
1573
|
+
4d565d8 gh: Update question issue
|
|
1574
|
+
23be7cb build(deps): bump cryptography from 36.0.0 to 36.0.1 in /requirements
|
|
1575
|
+
ff13e68 mdns: Quiet error log if address cannot be added
|
|
1576
|
+
3065d6c airplay: Be stricter when setting up remotecontrol
|
|
1577
|
+
18d7a6e mrp: Do not disable MRP service for older tvOS
|
|
1578
|
+
9541d21 mrp: Fix erroneous button press behavior (#1521)
|
|
1579
|
+
6713225 build(deps): bump pytest-timeout from 2.0.1 to 2.0.2 in /requirements (#1529)
|
|
1580
|
+
2009c18 knock Ensure knock yields to the event loop often enough to avoid blocking (#1515)
|
|
1581
|
+
6540c49 facade: Block calls to public methods after close
|
|
1582
|
+
2d4d526 support: Add shield module
|
|
1583
|
+
b00dbf4 build(deps): bump pytest-xdist from 2.4.0 to 2.5.0 in /requirements
|
|
1584
|
+
f555e46 core: Clean up dispatchers
|
|
1585
|
+
67fcb09 core: Specialize StateDispatcher in protcols
|
|
1586
|
+
a72947d core: Prevent duplicates from state producer
|
|
1587
|
+
f27c5a4 if: Remove loop argument to PushUpdater
|
|
1588
|
+
c6e9466 facade: Make Power interface respect play status
|
|
1589
|
+
c67819b core: Add main_protocol to Relayer
|
|
1590
|
+
c84bf4a core: Add base support for internal state updates
|
|
1591
|
+
605b1a6 core: Add filtering to MessageDispatcher
|
|
1592
|
+
2d0a1ca core: Support plain functions in MessageDispatcher
|
|
1593
|
+
4b0136b dep: Migrate from netifaces to ifaddr
|
|
1594
|
+
f0c4c33 raop: Let pause button stop playback
|
|
1595
|
+
74d38b2 mrp: Add enable_encryption to connection
|
|
1596
|
+
```
|
|
1597
|
+
|
|
1598
|
+
## 0.9.7 Springtrap (2021-12-05)
|
|
1599
|
+
|
|
1600
|
+
It's already Decemeber, how did that happen? Not sure... Anyways, I've
|
|
1601
|
+
prepared a small update with few neat things:
|
|
1602
|
+
|
|
1603
|
+
* Implemented a missing type in OPACK that raised an exception when
|
|
1604
|
+
connecting to Companion for some people (`TypeError: 0xc0`)
|
|
1605
|
+
* More buttons are supported by Companion as we as proper feature reporting
|
|
1606
|
+
for some of them
|
|
1607
|
+
* A persistent connection is now set up to Companion. The active device listener
|
|
1608
|
+
is called if connection is lost.
|
|
1609
|
+
* A copy is now made of the configuration passed to `pyatv.connect` which
|
|
1610
|
+
means a config cannot be modified after connecting anymore
|
|
1611
|
+
* Experimental support for streaming via HTTP(S) has been added to `stream_file`
|
|
1612
|
+
|
|
1613
|
+
|
|
1614
|
+
**Changes:**
|
|
1615
|
+
|
|
1616
|
+
*Protocol: MRP:*
|
|
1617
|
+
|
|
1618
|
+
```
|
|
1619
|
+
f6a8973 mrp: Migrate protocol to MessageDispatcher
|
|
1620
|
+
```
|
|
1621
|
+
|
|
1622
|
+
*Protocol: Companion:*
|
|
1623
|
+
|
|
1624
|
+
```
|
|
1625
|
+
dd44437 companion: Use XID for message dispatch
|
|
1626
|
+
825912d companion: Move CompanionAPI to separate module
|
|
1627
|
+
a02b3b9 companion: Do not wait for initial event update
|
|
1628
|
+
5a765bc companion: Fix button presses for HID buttons
|
|
1629
|
+
ceddc9f companion: Add support for additional commands
|
|
1630
|
+
8c7ed2f companion: Improve tests for sessions and events
|
|
1631
|
+
5f0cb39 companion: Support playback control availability
|
|
1632
|
+
b3d69a7 companion: Events and persistent connection
|
|
1633
|
+
4b7e832 opack: Handle pointers properly
|
|
1634
|
+
```
|
|
1635
|
+
|
|
1636
|
+
*Protocol: RAOP:*
|
|
1637
|
+
|
|
1638
|
+
```
|
|
1639
|
+
cf11b42 raop: Support streaming from HTTP(s)
|
|
1640
|
+
```
|
|
1641
|
+
|
|
1642
|
+
*Other:*
|
|
1643
|
+
|
|
1644
|
+
```
|
|
1645
|
+
a1a357a core: Add enabled state to services
|
|
1646
|
+
|
|
1647
|
+
8b0c82e env: Fix broken GitPod integration
|
|
1648
|
+
5eb4152 core: Create copy of config in connect
|
|
1649
|
+
0227529 docs: Add example connect_with_credentials.py
|
|
1650
|
+
```
|
|
1651
|
+
|
|
1652
|
+
**All changes:**
|
|
1653
|
+
|
|
1654
|
+
```
|
|
1655
|
+
cf11b42 raop: Support streaming from HTTP(s)
|
|
1656
|
+
a1a357a core: Add enabled state to services
|
|
1657
|
+
4b7e832 opack: Handle pointers properly
|
|
1658
|
+
8b0c82e env: Fix broken GitPod integration
|
|
1659
|
+
f1a2b79 build(deps): bump types-protobuf from 3.18.1 to 3.18.2 in /requirements
|
|
1660
|
+
1b18cd3 build(deps): bump mediafile from 0.8.1 to 0.9.0 in /requirements
|
|
1661
|
+
0c4ced5 build(deps): bump aiohttp from 3.8.0 to 3.8.1 in /requirements
|
|
1662
|
+
e328417 build(deps): bump black from 21.10b0 to 21.11b1 in /requirements
|
|
1663
|
+
c4fc994 build(deps): bump zeroconf from 0.36.11 to 0.37.0 in /requirements
|
|
1664
|
+
9ec3559 build(deps): bump cryptography from 35.0.0 to 36.0.0 in /requirements
|
|
1665
|
+
e8ae699 build(deps): bump types-protobuf from 3.18.0 to 3.18.1 in /requirements
|
|
1666
|
+
a70609d build(deps): bump pylint from 2.11.1 to 2.12.1 in /requirements
|
|
1667
|
+
6d50e0c docs: Clarifications for data channel payload
|
|
1668
|
+
d1bc5ee cq: Remove unwanted files
|
|
1669
|
+
c623b39 net: Log instead of raise in tcp_keepalive
|
|
1670
|
+
721872d build(deps): bump isort from 5.10.0 to 5.10.1 in /requirements
|
|
1671
|
+
486dbcf build(deps): bump isort from 5.9.3 to 5.10.0 in /requirements
|
|
1672
|
+
5eb4152 core: Create copy of config in connect
|
|
1673
|
+
34e9c67 conf: Implement __deepcopy__ in BaseConfig
|
|
1674
|
+
98abc57 conf: Implement __deepcopy__ in BaseConfig
|
|
1675
|
+
b71a415 build(deps): bump aiohttp from 3.7.4.post0 to 3.8.0 in /requirements
|
|
1676
|
+
b478c9d env: Rebuild miniaudio in tests workflow
|
|
1677
|
+
70a6f94 conf: Ignore services with missing identifier
|
|
1678
|
+
9393873 build(deps): bump black from 21.9b0 to 21.10b0 in /requirements
|
|
1679
|
+
e73f256 build(deps): bump zeroconf from 0.36.9 to 0.36.11 in /requirements
|
|
1680
|
+
dd44437 companion: Use XID for message dispatch
|
|
1681
|
+
825912d companion: Move CompanionAPI to separate module
|
|
1682
|
+
a02b3b9 companion: Do not wait for initial event update
|
|
1683
|
+
5a765bc companion: Fix button presses for HID buttons
|
|
1684
|
+
ceddc9f companion: Add support for additional commands
|
|
1685
|
+
f6a8973 mrp: Migrate protocol to MessageDispatcher
|
|
1686
|
+
d1332e8 core: Add generic MessageDispatcher
|
|
1687
|
+
8c7ed2f companion: Improve tests for sessions and events
|
|
1688
|
+
5f0cb39 companion: Support playback control availability
|
|
1689
|
+
b3d69a7 companion: Events and persistent connection
|
|
1690
|
+
e956d79 collection: Add SharedData type
|
|
1691
|
+
ef2ffe8 gha: Fix caching issue for finished job
|
|
1692
|
+
0227529 docs: Add example connect_with_credentials.py
|
|
1693
|
+
931acf6 build(deps): update protobuf requirement in /requirements
|
|
1694
|
+
```
|
|
1695
|
+
|
|
1696
|
+
## 0.9.6 Plushtrap (2021-10-27)
|
|
1697
|
+
|
|
1698
|
+
It's time for another minor release (nothing fancy, I promise):
|
|
1699
|
+
|
|
1700
|
+
* Addresses that are broadcasted when pairing DMAP can be manually set
|
|
1701
|
+
* A `content_identifier` (app specific) is available in the Playing interface.
|
|
1702
|
+
Only some apps provides this.
|
|
1703
|
+
* Removed unnecessary exception log in the `heartbeater` module which polluted
|
|
1704
|
+
the log in some cases.
|
|
1705
|
+
|
|
1706
|
+
**Notes:**
|
|
1707
|
+
|
|
1708
|
+
`protobuf` version 3.18.0 or later is now required.
|
|
1709
|
+
|
|
1710
|
+
**Changes:**
|
|
1711
|
+
|
|
1712
|
+
*Protocol: DMAP:*
|
|
1713
|
+
|
|
1714
|
+
```
|
|
1715
|
+
4094699 dmap: Support custom addresses during pairing
|
|
1716
|
+
```
|
|
1717
|
+
|
|
1718
|
+
*Protocol: MRP:*
|
|
1719
|
+
|
|
1720
|
+
```
|
|
1721
|
+
260b006 mrp: Add support for content_identifier
|
|
1722
|
+
```
|
|
1723
|
+
|
|
1724
|
+
*Other:*
|
|
1725
|
+
|
|
1726
|
+
```
|
|
1727
|
+
ee8c23d if: Add content_identifier to Playing
|
|
1728
|
+
8885662 env: Re-work test environment
|
|
1729
|
+
6d47d0b scripts: Log current version of pyatv
|
|
1730
|
+
70b235e core: Do not log exception in heartbeater
|
|
1731
|
+
```
|
|
1732
|
+
|
|
1733
|
+
**All changes:**
|
|
1734
|
+
|
|
1735
|
+
```
|
|
1736
|
+
260b006 mrp: Add support for content_identifier
|
|
1737
|
+
ee8c23d if: Add content_identifier to Playing
|
|
1738
|
+
4177295 build(deps): update aiohttp requirement in /requirements
|
|
1739
|
+
6e04896 build(deps): bump zeroconf from 0.36.8 to 0.36.9 in /requirements
|
|
1740
|
+
8885662 env: Re-work test environment
|
|
1741
|
+
6d47d0b scripts: Log current version of pyatv
|
|
1742
|
+
70b235e core: Do not log exception in heartbeater
|
|
1743
|
+
4094699 dmap: Support custom addresses during pairing
|
|
1744
|
+
a5f1515 dep: Require protobuf 3.18.0
|
|
1745
|
+
973b884 build(deps): bump mypy-protobuf from 2.10 to 3.0.0
|
|
1746
|
+
4e0a0f6 build(deps): bump pytest-asyncio from 0.15.1 to 0.16.0
|
|
1747
|
+
656f1d9 build(deps): bump miniaudio from 1.44 to 1.45
|
|
1748
|
+
```
|
|
1749
|
+
|
|
1750
|
+
## 0.9.5 Oscar (2021-10-15)
|
|
1751
|
+
|
|
1752
|
+
The releases are pouring down right now! Two more bug fixes to smoothen the experience:
|
|
1753
|
+
|
|
1754
|
+
* Fix relay bug which could result in methods being reported as unsupported
|
|
1755
|
+
* Add some missing DMAP tags (removes warnings)
|
|
1756
|
+
|
|
1757
|
+
**Changes:**
|
|
1758
|
+
|
|
1759
|
+
*Protocol: DMAP:*
|
|
1760
|
+
|
|
1761
|
+
```
|
|
1762
|
+
436ba7b dmap: Add missing tags aelb and casa
|
|
1763
|
+
```
|
|
1764
|
+
|
|
1765
|
+
*Other:*
|
|
1766
|
+
|
|
1767
|
+
```
|
|
1768
|
+
5170edd core: Fix relayer fallback bug
|
|
1769
|
+
```
|
|
1770
|
+
|
|
1771
|
+
**All changes:**
|
|
1772
|
+
|
|
1773
|
+
```
|
|
1774
|
+
436ba7b dmap: Add missing tags aelb and casa
|
|
1775
|
+
5170edd core: Fix relayer fallback bug
|
|
1776
|
+
```
|
|
1777
|
+
|
|
1778
|
+
## 0.9.4 Nightmare (2021-10-15)
|
|
1779
|
+
|
|
1780
|
+
This release just contains two minor bug fixes:
|
|
1781
|
+
|
|
1782
|
+
* Removal of need for `mypy_extensions` which was never added as an explicit dependency
|
|
1783
|
+
but was required in the previous release
|
|
1784
|
+
* Support for the UID type in OPACK used by Companion, which caused an exception when
|
|
1785
|
+
pairing (Companion) for some people
|
|
1786
|
+
|
|
1787
|
+
**Changes:**
|
|
1788
|
+
|
|
1789
|
+
*Protocol: Companion:*
|
|
1790
|
+
|
|
1791
|
+
```
|
|
1792
|
+
f99bad0 companion: Add support for UID in OPACK
|
|
1793
|
+
```
|
|
1794
|
+
|
|
1795
|
+
*Other:*
|
|
1796
|
+
|
|
1797
|
+
```
|
|
1798
|
+
954f3dd core: Remove need for mypy_extensions
|
|
1799
|
+
```
|
|
1800
|
+
|
|
1801
|
+
**All changes:**
|
|
1802
|
+
|
|
1803
|
+
```
|
|
1804
|
+
f99bad0 companion: Add support for UID in OPACK
|
|
1805
|
+
0cf4055 docs: Hide internal DeviceInfo.RAW_MODEL
|
|
1806
|
+
954f3dd core: Remove need for mypy_extensions
|
|
1807
|
+
41ff2c8 build(deps): bump types-protobuf from 3.17.4 to 3.18.0
|
|
1808
|
+
8c9f2d9 build(deps): bump deepdiff from 5.5.0 to 5.6.0
|
|
1809
|
+
```
|
|
1810
|
+
|
|
1811
|
+
## 0.9.3 Moondrop (2021-10-12)
|
|
1812
|
+
|
|
1813
|
+
Time for another drop with a few fixes and enhancements:
|
|
1814
|
+
|
|
1815
|
+
* Official support for python 3.10
|
|
1816
|
+
* The MRP service is now ignored for tvOS 15 devices
|
|
1817
|
+
* osvers is handled properly in AirPlay which previously caused an
|
|
1818
|
+
exception when connecting to Apple TV 3 (or older) devices
|
|
1819
|
+
* Stop is now supported in RAOP
|
|
1820
|
+
|
|
1821
|
+
No biggies this time, but should make for a smoooother experience!
|
|
1822
|
+
|
|
1823
|
+
**Changes:**
|
|
1824
|
+
|
|
1825
|
+
*Protocol: MRP:*
|
|
1826
|
+
|
|
1827
|
+
```
|
|
1828
|
+
89c9f2f mrp: Ignore service during scan for tvOS >= 15
|
|
1829
|
+
```
|
|
1830
|
+
|
|
1831
|
+
*Protocol: AirPlay:*
|
|
1832
|
+
|
|
1833
|
+
```
|
|
1834
|
+
5a1f482 airplay: Quiet log of remote control setup failure
|
|
1835
|
+
a069208 airplay: Handle semver version in osvers
|
|
1836
|
+
```
|
|
1837
|
+
|
|
1838
|
+
*Protocol: RAOP:*
|
|
1839
|
+
|
|
1840
|
+
```
|
|
1841
|
+
5781665 raop: Add support for stop
|
|
1842
|
+
0ef3232 raop: Report correct progress values
|
|
1843
|
+
```
|
|
1844
|
+
|
|
1845
|
+
*Other:*
|
|
1846
|
+
|
|
1847
|
+
```
|
|
1848
|
+
2d16f1d gha: Run tests on python 3.10
|
|
1849
|
+
62c29a1 docs: Add docs for app_list and launch_app
|
|
1850
|
+
```
|
|
1851
|
+
|
|
1852
|
+
|
|
1853
|
+
**All changes:**
|
|
1854
|
+
|
|
1855
|
+
```
|
|
1856
|
+
5781665 raop: Add support for stop
|
|
1857
|
+
107a692 facade: Support takeover for PushUpdater
|
|
1858
|
+
536f241 cq: Remove stream.py
|
|
1859
|
+
2afdad8 relayer: Fix main_instance and add instances
|
|
1860
|
+
b6165b0 core: Pass takeover method to protocols
|
|
1861
|
+
99ed67d facade: Support for protocol takeover
|
|
1862
|
+
9f93f0e core: Add takeover support to relayer
|
|
1863
|
+
836aa62 docs: Add tvOS 15 to README description
|
|
1864
|
+
16c22f0 build(deps): bump flake8 from 4.0.0 to 4.0.1
|
|
1865
|
+
255c96b build(deps): bump pytest-timeout from 2.0.0 to 2.0.1
|
|
1866
|
+
b881c32 build(deps): bump pytest-timeout from 1.4.2 to 2.0.0
|
|
1867
|
+
dd38f63 build(deps): bump flake8 from 3.9.2 to 4.0.0
|
|
1868
|
+
2d16f1d gha: Run tests on python 3.10
|
|
1869
|
+
0ef3232 raop: Report correct progress values
|
|
1870
|
+
5a1f482 airplay: Quiet log of remote control setup failure
|
|
1871
|
+
4f7fe97 core: Don't connect to dummy services
|
|
1872
|
+
67ae1b8 build(deps): bump pytest-cov from 2.12.1 to 3.0.0
|
|
1873
|
+
62c29a1 docs: Add docs for app_list and launch_app
|
|
1874
|
+
89c9f2f mrp: Ignore service during scan for tvOS >= 15
|
|
1875
|
+
a069208 airplay: Handle semver version in osvers
|
|
1876
|
+
65b40bd build(deps): bump mediafile from 0.8.0 to 0.8.1
|
|
1877
|
+
```
|
|
1878
|
+
|
|
1879
|
+
## 0.9.2 Lefty (2021-09-27)
|
|
1880
|
+
|
|
1881
|
+
What? Another release? Already? Suure... So, I am integrating pyatv 0.9.x with
|
|
1882
|
+
Home Assistant and I find these small annoyances or missing pieces along the way,
|
|
1883
|
+
fixing them one by one as I go. This release is thus a micro-update, but it
|
|
1884
|
+
contains a few nuggets.
|
|
1885
|
+
|
|
1886
|
+
A `Music` device model has been added that represents the Music app/iTunes. In
|
|
1887
|
+
the same department I've added a property called `raw_model` to `DeviceInfo`,
|
|
1888
|
+
returning a raw model string in case it's not a model known by pyatv. This is
|
|
1889
|
+
very useful for AirPlay receivers as `raw_model` will usually contain the device
|
|
1890
|
+
manufacturer and hardware model.
|
|
1891
|
+
|
|
1892
|
+
It is now possible to pass a set of identifiers to `pyatv.scan`. The intended
|
|
1893
|
+
use case is to pass all identifiers belonging to a device to handle cases where a
|
|
1894
|
+
service is missing or getting deprecated (like MRP).
|
|
1895
|
+
|
|
1896
|
+
Making this release from my phone. In bed. So I will stop there and go to sleep...
|
|
1897
|
+
|
|
1898
|
+
**Changes:**
|
|
1899
|
+
|
|
1900
|
+
*Protocol: DMAP:*
|
|
1901
|
+
|
|
1902
|
+
```
|
|
1903
|
+
180acab dmap: Avoid unnecessary creation of Zeroconf
|
|
1904
|
+
2e32274 dmap: Add device model Music for Music/iTunes
|
|
1905
|
+
```
|
|
1906
|
+
|
|
1907
|
+
*Protocol: MRP:*
|
|
1908
|
+
|
|
1909
|
+
```
|
|
1910
|
+
7a8b86a mrp: Updates to volume management
|
|
1911
|
+
```
|
|
1912
|
+
|
|
1913
|
+
*Protocol: Companion:*
|
|
1914
|
+
|
|
1915
|
+
```
|
|
1916
|
+
b28a01e companion: Improve pairing requirement detection
|
|
1917
|
+
```
|
|
1918
|
+
|
|
1919
|
+
*Other:*
|
|
1920
|
+
|
|
1921
|
+
```
|
|
1922
|
+
ce90dd6 core: Add raw_model to DeviceInfo
|
|
1923
|
+
e063ffb scan: Support scanning for multiple identifiers
|
|
1924
|
+
```
|
|
1925
|
+
|
|
1926
|
+
**All changes:**
|
|
1927
|
+
|
|
1928
|
+
```
|
|
1929
|
+
22bf5f2 companion: Enable test that should be enabled
|
|
1930
|
+
180acab dmap: Avoid unnecessary creation of Zeroconf
|
|
1931
|
+
ce90dd6 core: Add raw_model to DeviceInfo
|
|
1932
|
+
2e32274 dmap: Add device model Music for Music/iTunes
|
|
1933
|
+
3623287 fix wrong param
|
|
1934
|
+
b28a01e companion: Improve pairing requirement detection
|
|
1935
|
+
e063ffb scan: Support scanning for multiple identifiers
|
|
1936
|
+
7a8b86a mrp: Updates to volume management
|
|
1937
|
+
```
|
|
1938
|
+
|
|
1939
|
+
## 0.9.1 Lolbit (2021-09-23)
|
|
1940
|
+
|
|
1941
|
+
Minor bug fix release coming up! Should fix connection issues when a stale
|
|
1942
|
+
MRP service is present after upgrading to tvOS 15. Also improves pairing requirement
|
|
1943
|
+
handling for AirPlay and RAOP in case access control is set to "Only devices in
|
|
1944
|
+
my home" (will now report as Disabled). Companion is also reported as Unsupported
|
|
1945
|
+
for HomePods as pyatv cannot pair with them.
|
|
1946
|
+
|
|
1947
|
+
A new convert method to convert a `DeviceModel` to string has been added.
|
|
1948
|
+
|
|
1949
|
+
**Changes:**
|
|
1950
|
+
|
|
1951
|
+
*Protocol: AirPlay:*
|
|
1952
|
+
|
|
1953
|
+
```
|
|
1954
|
+
2558a89 airplay: Support Disabled pairing requirement
|
|
1955
|
+
```
|
|
1956
|
+
|
|
1957
|
+
*Protocol: Companion:*
|
|
1958
|
+
|
|
1959
|
+
```
|
|
1960
|
+
6cb7269 companion: Better support for pairing requirement
|
|
1961
|
+
```
|
|
1962
|
+
|
|
1963
|
+
*Protocol: RAOP:*
|
|
1964
|
+
|
|
1965
|
+
```
|
|
1966
|
+
d257378 raop: Support Disabled pairing requirement
|
|
1967
|
+
```
|
|
1968
|
+
|
|
1969
|
+
*Other:*
|
|
1970
|
+
|
|
1971
|
+
```
|
|
1972
|
+
70b4992 convert: Add model_str method
|
|
1973
|
+
535b56b core: Use connect order based on protocol
|
|
1974
|
+
```
|
|
1975
|
+
|
|
1976
|
+
**All changes:**
|
|
1977
|
+
|
|
1978
|
+
```
|
|
1979
|
+
6cb7269 companion: Better support for pairing requirement
|
|
1980
|
+
d257378 raop: Support Disabled pairing requirement
|
|
1981
|
+
2558a89 airplay: Support Disabled pairing requirement
|
|
1982
|
+
70b4992 convert: Add model_str method
|
|
1983
|
+
535b56b core: Use connect order based on protocol
|
|
1984
|
+
```
|
|
1985
|
+
|
|
1986
|
+
## 0.9.0 JayJay (2021-09-22)
|
|
1987
|
+
|
|
1988
|
+
So, what's new? Yeah, right, tvOS 15 was released the day before yesterday
|
|
1989
|
+
which broke everything. My intention was to release 0.9.0 before tvOS 15
|
|
1990
|
+
dropped, but things kept popping up and I had no choice but to delay. So here
|
|
1991
|
+
we are.
|
|
1992
|
+
|
|
1993
|
+
The biggest feature in this release is obviously support for tvOS 15. Perhaps
|
|
1994
|
+
not the most exciting feature per se, but important as most of the
|
|
1995
|
+
functionality in pyatv is lost without it. The gist is that Apple decided to
|
|
1996
|
+
drop support for the MRP protocol introduced in tvOS. In practice they didn't
|
|
1997
|
+
get rid or it, they just allocated a special stream type in AirPlay (2) and
|
|
1998
|
+
decided to tunnel MRP over it. So MRP is still there, it's just carried over
|
|
1999
|
+
AirPlay now. As far as I know, this is how they have done it the last couple of
|
|
2000
|
+
iOS/tvOS releases. So it's not really new, just something no one looked into.
|
|
2001
|
+
The deprecation of the "regular" MRP protocol is reasonable (who uses the
|
|
2002
|
+
Remote app nowadays?), so I don't blame Apple for it. Would have been nice to
|
|
2003
|
+
have figured this out earlier though, as it required a lot of intense reverse
|
|
2004
|
+
engineering to unravel everything. Now it does work though, so totally worth
|
|
2005
|
+
it! I have tried to document how it works on the protocols page:
|
|
2006
|
+
|
|
2007
|
+
https://pyatv.dev/documentation/protocols/
|
|
2008
|
+
|
|
2009
|
+
All needed to get things working again is to provide AirPlay credentials. One
|
|
2010
|
+
important thing to note though is that you need to re-pair with this release
|
|
2011
|
+
(or later) to get new credentials. The old ones will only work with `play_url`,
|
|
2012
|
+
not for tunneling MRP over AirPlay. A small bonus here is that the HomePod
|
|
2013
|
+
works in the same way as the Apple TV in this regards, so pyatv can now be used
|
|
2014
|
+
to control HomdPods as well. No pairing is needed for that, it's just
|
|
2015
|
+
plug-and-play!
|
|
2016
|
+
|
|
2017
|
+
Let's leave MRP now... My vision for pyatv is to create a "core", where
|
|
2018
|
+
protocols work as plugins to provide functionality. The API used by developers
|
|
2019
|
+
is supposed be towards core and not the protocols themselves. This basically
|
|
2020
|
+
means that all functions in the API should behave in the same way, no matter
|
|
2021
|
+
what protocols are used in regards to arguments, return values, listener
|
|
2022
|
+
interfaces, error handling and so on. This release contains a lof of work
|
|
2023
|
+
towards realizing that vision. I'm not quite there yet, but it's closer than
|
|
2024
|
+
ever. Hopefully, this will only manifest itself through more consistent
|
|
2025
|
+
behavior and not much you as a developer need to pay any attention to. But if
|
|
2026
|
+
you notice any changes in behavior, this might be the reason. Be sure to report
|
|
2027
|
+
anything that you find peculiar, it might need fixing or an explanation.
|
|
2028
|
+
|
|
2029
|
+
Another minor new feature is that the Audio interface has been extended to
|
|
2030
|
+
include volume_up and volume_down, which also means those methods are
|
|
2031
|
+
deprecated in `RemoteControl`. Please update your code for this. Also, all the
|
|
2032
|
+
protocol specic service types, e.g. `conf.MrpService` and `conf.AirPlayService`
|
|
2033
|
+
have been deprecated in favor of `conf.ManualService`. Update your code for
|
|
2034
|
+
this as well, in case you rely on any of them. They will stick around for a few
|
|
2035
|
+
releases, so your code won't break because of this. The last minor feature is a
|
|
2036
|
+
helper method called `helpers.is_streamable`, which can check if file is
|
|
2037
|
+
supported by `Stream.stream_file`.
|
|
2038
|
+
|
|
2039
|
+
One last thing... This release fills a big gap that has been present for a long
|
|
2040
|
+
time: when do you need to pair? Each service now contains a "pairing" property
|
|
2041
|
+
that will tell you of pairing is needed or not. This makes it possible to
|
|
2042
|
+
programmatically determine if the pairing procedure needs to to performed,
|
|
2043
|
+
something that wasn't clear before. After scanning, just iterate all services
|
|
2044
|
+
and pair the ones requiring it. A similar property has been added for passwords
|
|
2045
|
+
as well, called `requires_password`. If True, then a password is required to
|
|
2046
|
+
connect. Only applicable to RAOP so far (it works for AirPlay as well, but
|
|
2047
|
+
there's no support for passwords in AirPlay yet).
|
|
2048
|
+
|
|
2049
|
+
To round things up, I just wanted to say that docker images are automatically
|
|
2050
|
+
built for new releases as well as the latest commit on master, making it easy
|
|
2051
|
+
to test pyatv without having to install any additional software other than
|
|
2052
|
+
docker. I still have some areas to improve, but it's a good start. This release
|
|
2053
|
+
will be the first release having docker images pre-built as it's tricky to
|
|
2054
|
+
backport.
|
|
2055
|
+
|
|
2056
|
+
That is it for now. Make sure to check out the migration guide to get some
|
|
2057
|
+
hints on what you need to do when upgrading.
|
|
2058
|
+
|
|
2059
|
+
Be sure to check out the migration notes before upgrading:
|
|
2060
|
+
|
|
2061
|
+
https://pyatv.dev/support/migration/
|
|
2062
|
+
|
|
2063
|
+
**Notes:**
|
|
2064
|
+
|
|
2065
|
+
* mediafile replaced audio-metadata as a dependency in this release
|
|
2066
|
+
* At least version 3.17.3 of protobuf is required
|
|
2067
|
+
|
|
2068
|
+
**Changes:**
|
|
2069
|
+
|
|
2070
|
+
*Protocol: DMAP:*
|
|
2071
|
+
|
|
2072
|
+
```
|
|
2073
|
+
099c975 dmap: Add support for pairing requirement
|
|
2074
|
+
```
|
|
2075
|
+
|
|
2076
|
+
*Protocol: MRP:*
|
|
2077
|
+
|
|
2078
|
+
```
|
|
2079
|
+
6177e86 mrp: Add support for pairing requirement
|
|
2080
|
+
0bdd614 mrp: Add support for Audio interface
|
|
2081
|
+
2495e56 mrp: Extract build number from DEVICE_INFO
|
|
2082
|
+
```
|
|
2083
|
+
|
|
2084
|
+
*Protocol: AirPlay:*
|
|
2085
|
+
|
|
2086
|
+
```
|
|
2087
|
+
31bf148 airplay: Add support for pairing requirement
|
|
2088
|
+
af5c441 airplay: Add support for requires_password
|
|
2089
|
+
8c35d1f airplay: Add support for transient pairing
|
|
2090
|
+
a407efa airplay: Support MRP tunneling over AirPlay 2
|
|
2091
|
+
```
|
|
2092
|
+
|
|
2093
|
+
*Protocol: Companion:*
|
|
2094
|
+
|
|
2095
|
+
```
|
|
2096
|
+
e49b9ef companion: Add support for pairing requirement
|
|
2097
|
+
```
|
|
2098
|
+
|
|
2099
|
+
*Protocol: RAOP:*
|
|
2100
|
+
|
|
2101
|
+
```
|
|
2102
|
+
d47924d raop: Send empty audio during latency period
|
|
2103
|
+
f075d4d raop: Add support for pairing requirement
|
|
2104
|
+
f66563a raop: Add support for requires_password
|
|
2105
|
+
```
|
|
2106
|
+
|
|
2107
|
+
*Other:*
|
|
2108
|
+
|
|
2109
|
+
```
|
|
2110
|
+
9339954 if: Add volume_up and volume_down to Audio
|
|
2111
|
+
1c11600 gh: Convert issue templates to forms
|
|
2112
|
+
8f7f9bd gha: Build and publish Docker containers
|
|
2113
|
+
4f76bf3 core: Switch from audio-metadata to mediafile
|
|
2114
|
+
33a0d5d deps: Bump protobuf to 3.17.3
|
|
2115
|
+
14a35fe helpers: Add is_streamable method
|
|
2116
|
+
21dec3e facade: Close connections only once
|
|
2117
|
+
09bd203 facade: Close protocols on device update
|
|
2118
|
+
f5f84b1 facade: Return remaining tasks in close
|
|
2119
|
+
```
|
|
2120
|
+
|
|
2121
|
+
**All changes:**
|
|
2122
|
+
|
|
2123
|
+
```
|
|
2124
|
+
c04e1a5 build(deps): bump pytest-xdist from 2.3.0 to 2.4.0
|
|
2125
|
+
d47924d raop: Send empty audio during latency period
|
|
2126
|
+
8ecf4b5 http: Handle responses when no receiver exists
|
|
2127
|
+
45a4385 build(deps): bump pylint from 2.10.2 to 2.11.1
|
|
2128
|
+
07804a0 build(deps): bump mypy-protobuf from 2.9 to 2.10
|
|
2129
|
+
52cbe4c build(deps-dev): bump tox from 3.24.3 to 3.24.4
|
|
2130
|
+
884edb1 build(deps): bump black from 21.8b0 to 21.9b0
|
|
2131
|
+
5b0984c docs: Update scan, pair and connect docs
|
|
2132
|
+
f075d4d raop: Add support for pairing requirement
|
|
2133
|
+
6318fee airplay: Refactor pairing requirement extraction
|
|
2134
|
+
31bf148 airplay: Add support for pairing requirement
|
|
2135
|
+
099c975 dmap: Add support for pairing requirement
|
|
2136
|
+
b57b2bb dmap: Add support for pairing requirement
|
|
2137
|
+
e49b9ef companion: Add support for pairing requirement
|
|
2138
|
+
6177e86 mrp: Add support for pairing requirement
|
|
2139
|
+
af5c441 airplay: Add support for requires_password
|
|
2140
|
+
f66563a raop: Add support for requires_password
|
|
2141
|
+
8049c82 if: Add protocol specific methods for service info
|
|
2142
|
+
c07cb1c if: Restructure service handling
|
|
2143
|
+
3cdb1fb core: Move state_producer to support
|
|
2144
|
+
9aeec0a core: Move state_producer to support
|
|
2145
|
+
2f84917 core: Move back device_info to support
|
|
2146
|
+
da765a3 if: Rely solely on BaseService internally
|
|
2147
|
+
b3221a5 conf: Extract BaseConfig interface
|
|
2148
|
+
88c66bc docs: Minor updates
|
|
2149
|
+
d4163a7 facade: Verify support in play_url
|
|
2150
|
+
0ed417e airplay: Base play_url availability on properties
|
|
2151
|
+
9339954 if: Add volume_up and volume_down to Audio
|
|
2152
|
+
f563eea env: Add work to .gitgnore
|
|
2153
|
+
0bdd614 mrp: Add support for Audio interface
|
|
2154
|
+
dc247bd mrp: Update some MRP protobuf messages
|
|
2155
|
+
7dc7c99 gha: Add workflow_dispatch: to tests workflow
|
|
2156
|
+
c7cf760 docs: Various minor updates
|
|
2157
|
+
52210b5 if: Keep position within limits
|
|
2158
|
+
671c24a core: Move scan to core
|
|
2159
|
+
78386f6 core: Move facade to core
|
|
2160
|
+
3cba1c4 core: Move net to core
|
|
2161
|
+
0227e06 core: Move mdns to core
|
|
2162
|
+
743988a core: Move facade to core
|
|
2163
|
+
9812b0e core: Move device_info to core
|
|
2164
|
+
e53a6c1 core: Move protocol details to protocols module
|
|
2165
|
+
63b1d09 core: Move raop to protocols
|
|
2166
|
+
b0a780e mrp: Move mrp to protocols
|
|
2167
|
+
6f8c90b core: Move dmap to protocols
|
|
2168
|
+
9196a88 core: Move companion to protocols
|
|
2169
|
+
b0758a9 core: Move airplay to protocols
|
|
2170
|
+
8ee902b gh: Fix bad labels for investigation and bugs
|
|
2171
|
+
3e01c2e gha: Change tags and labels a bit for containers
|
|
2172
|
+
1c11600 gh: Convert issue templates to forms
|
|
2173
|
+
c126d77 gha: Fix remaining issues with release workflow
|
|
2174
|
+
826bb58 gha: Fix building containers and make releases
|
|
2175
|
+
8f7f9bd gha: Build and publish Docker containers
|
|
2176
|
+
2495e56 mrp: Extract build number from DEVICE_INFO
|
|
2177
|
+
a548587 conf: Move device_info implementations to protocol
|
|
2178
|
+
c6bb384 support: Add collection method dict_merge
|
|
2179
|
+
8fcca30 devinfo: Add new tvOS build numbers
|
|
2180
|
+
bac81ef if: Base DeviceInfo on dict
|
|
2181
|
+
f66aa84 raop: Add support for legacy pairing
|
|
2182
|
+
7e1ca68 core: Refactor pair to take service
|
|
2183
|
+
d974f08 core: Set up protocols independently
|
|
2184
|
+
a46c068 docs: Add instructions for close
|
|
2185
|
+
4a24ac9 airplay: Various connection robustness changes
|
|
2186
|
+
5a6c267 mrp: Add VolumeDidChangeMessage
|
|
2187
|
+
8c35d1f airplay: Add support for transient pairing
|
|
2188
|
+
61ef4e2 core: Return protocol when setting up protocol
|
|
2189
|
+
a407efa airplay: Support MRP tunneling over AirPlay 2
|
|
2190
|
+
e060b9e mrp: Generalize set up of MRP
|
|
2191
|
+
8a88129 docs: Remove internal things from API docs
|
|
2192
|
+
5f1a55e core: Allow setup to yield multiple instances
|
|
2193
|
+
384a7a6 mrp: Add new protobuf messages
|
|
2194
|
+
0b0648e support: Add length field to packet
|
|
2195
|
+
ae5785b raop: Move packets to support
|
|
2196
|
+
6bc3cf1 raop: Move metadata to support
|
|
2197
|
+
402ae73 raop: Move RTSP implementation to support
|
|
2198
|
+
eb71a3d auth: Add abstract class for HAP channels
|
|
2199
|
+
d7f6394 raop: Generalize the RTSP implementation
|
|
2200
|
+
1da0414 auth: Refactor HAP for generic key derivation
|
|
2201
|
+
e04736c airplay: Pick most suitable pairing type
|
|
2202
|
+
7c667b9 airplay: Add module to parse features
|
|
2203
|
+
e582644 auth: Add HAPSession used for encryption
|
|
2204
|
+
b328826 airplay: Add helper verify_connection to auth
|
|
2205
|
+
9f81aa9 http: Add pre/post processors to HttpConnection
|
|
2206
|
+
a2d0218 airplay: Add HAP auth support
|
|
2207
|
+
044aa1d airplay: Add auth type to pair_setup
|
|
2208
|
+
7b9dda8 airplay: Generate new credentials for Pair-Setup
|
|
2209
|
+
bcdf21b airplay: Refactor auth for multiple types
|
|
2210
|
+
9783fea airplay: Add legacy to auth procedure name
|
|
2211
|
+
ee6437a auth: Move tlv8 and srp to auth modules
|
|
2212
|
+
68ea864 auth: Refactor to general HAP pairing scheme
|
|
2213
|
+
eac1428 airplay: Rename auth to auth_legacy
|
|
2214
|
+
4f76bf3 core: Switch from audio-metadata to mediafile
|
|
2215
|
+
33a0d5d deps: Bump protobuf to 3.17.3
|
|
2216
|
+
bca490e build(deps): bump mypy-protobuf from 2.5 to 2.9
|
|
2217
|
+
c8e22b6 build(deps): bump pytest from 6.2.4 to 6.2.5
|
|
2218
|
+
ae05921 build(deps): bump black from 21.7b0 to 21.8b0
|
|
2219
|
+
001d920 scripts: Add support for year, track and genre
|
|
2220
|
+
14a35fe helpers: Add is_streamable method
|
|
2221
|
+
81739c8 conf: Add password to RAOP output
|
|
2222
|
+
c5513b3 docs: Use absolute address to logo in README
|
|
2223
|
+
415c8a5 build(deps): bump pdoc3 from 0.9.2 to 0.10.0
|
|
2224
|
+
5900c29 build(deps): bump pylint from 2.9.6 to 2.10.2
|
|
2225
|
+
46507f3 facade: Return pending tasks from previous close
|
|
2226
|
+
21dec3e facade: Close connections only once
|
|
2227
|
+
09bd203 facade: Close protocols on device update
|
|
2228
|
+
83dfe6b core: Add state_was_updated to StateProducer
|
|
2229
|
+
dd15ef9 facade: Only propagate one device update
|
|
2230
|
+
9602344 if: Move StateProducer to core and add max_calls
|
|
2231
|
+
6a498d7 build(deps): bump pylint from 2.9.6 to 2.10.2
|
|
2232
|
+
f5f84b1 facade: Return remaining tasks in close
|
|
2233
|
+
b2333d2 docs: Make some clarifications for AirPlay remote
|
|
2234
|
+
b2d2b1b build(deps-dev): bump tox from 3.24.0 to 3.24.1
|
|
2235
|
+
94f3b88 docs: Fix broken diagram in AP 2
|
|
2236
|
+
5c036e9 docs: Add remote control docs for AirPlay 2
|
|
2237
|
+
1877f65 build(deps): bump codecov from 2.1.11 to 2.1.12
|
|
2238
|
+
e1b5687 build(deps): bump isort from 5.9.2 to 5.9.3
|
|
2239
|
+
a9675fd Fix spelling error
|
|
2240
|
+
454dcff docs: Add issue regarding cellcomtvappleos
|
|
2241
|
+
e36602e docs: Add entry for Illegal instruction
|
|
2242
|
+
415ee61 Disable pylint instead of mypy
|
|
2243
|
+
075ac89 mrp: Disable some type checking
|
|
2244
|
+
1630419 docs: Fix broken links in supported_features
|
|
2245
|
+
bbdd88b build(deps): bump pylint from 2.9.5 to 2.9.6
|
|
2246
|
+
```
|
|
2247
|
+
|
|
2248
|
+
## 0.8.2 Helpy (2021-07-28)
|
|
2249
|
+
|
|
2250
|
+
Time for another minor release! Highlights this time is
|
|
2251
|
+
improved scanning, password protected RAOP services, support
|
|
2252
|
+
for HSCP and some remote buttons in Companion.
|
|
2253
|
+
|
|
2254
|
+
An issue hwere some devices were not discovered by Home Assistant
|
|
2255
|
+
anymore suddenly appeared (pun intended). Some digging concluded
|
|
2256
|
+
that asking for too many Zeroconf services in one request might
|
|
2257
|
+
yield a response too big to fit in one IP packet. This makes the
|
|
2258
|
+
sender silently drop records, rendering the response incomplete
|
|
2259
|
+
without pyatv knowing that. Since Companion and RAOP was added in
|
|
2260
|
+
0.8.0 (which require three new services in total), that was the
|
|
2261
|
+
tipping point. From now on, pyatv will spread services over a few
|
|
2262
|
+
requests to work around this issue.
|
|
2263
|
+
|
|
2264
|
+
It is now possible to stream audio to password protected AirPlay
|
|
2265
|
+
receivers thanks to @Schlaubischlump! A password can be passed
|
|
2266
|
+
to atvremote via `--raop-password` and it's explained how to do
|
|
2267
|
+
it programmatically in the documentation.
|
|
2268
|
+
|
|
2269
|
+
HSCP (unsure what it stands for, maybe something like
|
|
2270
|
+
*Home Sharing Control Protocol*?) is used to control instances of
|
|
2271
|
+
iTunes or Music running on a Mac. Unfortunately, Apple decided
|
|
2272
|
+
to require FairPlay authentication in macOS 11.4, so this will
|
|
2273
|
+
only work if you are running an OS with lower version number than
|
|
2274
|
+
that.
|
|
2275
|
+
|
|
2276
|
+
Some buttons in the remote control interface is now supported by
|
|
2277
|
+
the Companion protocol. The API reference on
|
|
2278
|
+
[pyatv.dev](https://pyatv.dev) actually lists which which protocols
|
|
2279
|
+
implement a certain feature now, so it's recommended to look there
|
|
2280
|
+
for current status.
|
|
2281
|
+
|
|
2282
|
+
There are a few house-keeping fixes in this release as well,
|
|
2283
|
+
mostly related to tests, documentation and environment. A complete
|
|
2284
|
+
list is below. See you all next time!
|
|
2285
|
+
|
|
2286
|
+
**Changes:**
|
|
2287
|
+
|
|
2288
|
+
*Protocol: DMAP:*
|
|
2289
|
+
|
|
2290
|
+
```
|
|
2291
|
+
271c319 dmap: Add support for HSCP service
|
|
2292
|
+
```
|
|
2293
|
+
|
|
2294
|
+
*Protocol: Companion:*
|
|
2295
|
+
|
|
2296
|
+
```
|
|
2297
|
+
af77f3e companion: Add support for several buttons
|
|
2298
|
+
bdaf12a companion: Generalize OPACK error handling
|
|
2299
|
+
```
|
|
2300
|
+
|
|
2301
|
+
*Protocol: RAOP:*
|
|
2302
|
+
|
|
2303
|
+
```
|
|
2304
|
+
42a0e58 Add support for password protected RAOP devices
|
|
2305
|
+
```
|
|
2306
|
+
|
|
2307
|
+
*Other:*
|
|
2308
|
+
```
|
|
2309
|
+
|
|
2310
|
+
8faa4eb core: Fix potential aiohttp client session leak
|
|
2311
|
+
9be93f1 scan: Support scanning for specific protocols
|
|
2312
|
+
4d7f5bf debug: Include zeroconf properties in debug log
|
|
2313
|
+
2cf35e3 gha: Another attempt to re-run tox on failure
|
|
2314
|
+
3b55c6a env: Update metadata in setup.py
|
|
2315
|
+
```
|
|
2316
|
+
|
|
2317
|
+
**All changes:**
|
|
2318
|
+
|
|
2319
|
+
```
|
|
2320
|
+
4c25021 mdns: Verify end condition with all services
|
|
2321
|
+
8fd7e09 mdns: Cache parsed services
|
|
2322
|
+
534006d mdns: Split multicast request in multiple messages
|
|
2323
|
+
bd6cc7c mdns: Ask for sleep-proxy in unicast requests
|
|
2324
|
+
44506a5 mdns: Split unicast requests over several messages
|
|
2325
|
+
5ed0491 mdns: Ignore duplicate records in ServiceParser
|
|
2326
|
+
84ae2c5 mdns: Refactor service parser to a class
|
|
2327
|
+
4eaadc5 build(deps): bump types-protobuf from 3.17.3 to 3.17.4
|
|
2328
|
+
af77f3e companion: Add support for several buttons
|
|
2329
|
+
7579a49 companion: Convert functional tests to pytest
|
|
2330
|
+
e1dab57 build(deps): bump pylint from 2.9.4 to 2.9.5
|
|
2331
|
+
1618e13 build(deps): bump pylint from 2.9.3 to 2.9.4
|
|
2332
|
+
271c319 dmap: Add support for HSCP service
|
|
2333
|
+
42a0e58 Add support for password protected RAOP devices
|
|
2334
|
+
bdaf12a companion: Generalize OPACK error handling
|
|
2335
|
+
536e271 cq: Refactor pairing handlers
|
|
2336
|
+
242023a build(deps): bump black from 21.6b0 to 21.7b0
|
|
2337
|
+
0c8b59b build(deps): bump types-protobuf from 3.17.1 to 3.17.3
|
|
2338
|
+
8faa4eb core: Fix potential aiohttp client session leak
|
|
2339
|
+
9be93f1 scan: Support scanning for specific protocols
|
|
2340
|
+
687f3bf mdns: Fix unstable multicast test
|
|
2341
|
+
e1bc26f env: Only verify docs with py3.8
|
|
2342
|
+
10a408d build(deps-dev): bump tox from 3.23.1 to 3.24.0
|
|
2343
|
+
00d3946 build(deps): bump types-protobuf from 3.17.0 to 3.17.1
|
|
2344
|
+
809c5a3 Update README.md
|
|
2345
|
+
9afd181 scan: Move scan code to protocols
|
|
2346
|
+
438e70e build(deps): bump types-protobuf from 0.1.13 to 3.17.0
|
|
2347
|
+
3b5e7d8 build(deps): bump isort from 5.9.1 to 5.9.2
|
|
2348
|
+
d1dbc5d build(deps): bump pylint from 2.8.3 to 2.9.3
|
|
2349
|
+
4d7f5bf debug: Include zeroconf properties in debug log
|
|
2350
|
+
a147a27 gha: Fix running tox on Windows
|
|
2351
|
+
0b0908d docs: Add feature name and supported protocols
|
|
2352
|
+
2cf35e3 gha: Another attempt to re-run tox on failure
|
|
2353
|
+
f9f00b6 build(deps): bump mypy-protobuf from 2.4 to 2.5
|
|
2354
|
+
3b55c6a env: Update metadata in setup.py
|
|
2355
|
+
a8b4d88 gha: Re-run tox without cache if failure
|
|
2356
|
+
```
|
|
2357
|
+
|
|
2358
|
+
## 0.8.1 Glitchtrap (2021-06-24)
|
|
2359
|
+
|
|
2360
|
+
This minor release contains a few improvements to the RAOP protocol.
|
|
2361
|
+
First and foremost, `time.perf_counter` is now used in favor of
|
|
2362
|
+
`time.monotonic` for audio scheduling. Scheduling has also been changed to work
|
|
2363
|
+
with "global time" (from stream start) instead of per frame. These changes
|
|
2364
|
+
improve streaming stability, with less chance of getting out of sync. They were
|
|
2365
|
+
also necessary to get streaming working on Windows.
|
|
2366
|
+
|
|
2367
|
+
Another important addition in the streaming department is the ability to read
|
|
2368
|
+
input from a FILE-like object, instead of just from a filename. One usecase for
|
|
2369
|
+
this is to take input via stdin from another process and send it to a receiver.
|
|
2370
|
+
`atvremote` has been adjusted to read from stdin if `-` is specified as
|
|
2371
|
+
filename. Here's an example streaming output from ffmpeg (RTSP as input!):
|
|
2372
|
+
|
|
2373
|
+
```shell
|
|
2374
|
+
ffmpeg -i rtsp://wowzaec2demo.streamlock.net/vod/mp4:BigBuckBunny_115k.mov -f mp3 - | atvremote -s 10.0.10.184 --debug stream_file=-
|
|
2375
|
+
```
|
|
2376
|
+
|
|
2377
|
+
Documentation for this:
|
|
2378
|
+
|
|
2379
|
+
https://pyatv.dev/documentation/atvremote/#streaming
|
|
2380
|
+
https://pyatv.dev/development/stream/#stream-a-file
|
|
2381
|
+
|
|
2382
|
+
**Changes:**
|
|
2383
|
+
|
|
2384
|
+
*Protocol: RAOP:*
|
|
2385
|
+
|
|
2386
|
+
```
|
|
2387
|
+
f41d552 raop: Sync sending based on absolute time
|
|
2388
|
+
bd15ff2 raop: Use perf_counter instead of monotonic
|
|
2389
|
+
4abfc94 raop: Add small buffer to BufferedReaderSource
|
|
2390
|
+
ee1ee94 raop: Fix timing when starting to stream
|
|
2391
|
+
8096928 raop: Support streaming files from a buffer
|
|
2392
|
+
```
|
|
2393
|
+
|
|
2394
|
+
**All changes:**
|
|
2395
|
+
|
|
2396
|
+
```
|
|
2397
|
+
f41d552 raop: Sync sending based on absolute time
|
|
2398
|
+
bd15ff2 raop: Use perf_counter instead of monotonic
|
|
2399
|
+
03f9a6b build(deps): bump mypy from 0.902 to 0.910
|
|
2400
|
+
244d9ee build(deps): bump isort from 5.8.0 to 5.9.1
|
|
2401
|
+
a23c144 docs: Add missing tutorial example
|
|
2402
|
+
4abfc94 raop: Add small buffer to BufferedReaderSource
|
|
2403
|
+
ee1ee94 raop: Fix timing when starting to stream
|
|
2404
|
+
8096928 raop: Support streaming files from a buffer
|
|
2405
|
+
a2df952 docs: Add tutorial as an example
|
|
2406
|
+
6cf2f4c build(deps): bump types-protobuf from 0.1.12 to 0.1.13
|
|
2407
|
+
```
|
|
2408
|
+
|
|
2409
|
+
## 0.8.0 Freddy (2021-06-17)
|
|
2410
|
+
|
|
2411
|
+
Here comes a new release, filled to the brim with new stuff! First and foremost, it
|
|
2412
|
+
introduces support for not one but *two* new protocols: Companion and RAOP. The
|
|
2413
|
+
Companion protocol is used to list and launch apps installed on an Apple TV as well
|
|
2414
|
+
improving power management support. RAOP adds support for proper audio streaming
|
|
2415
|
+
to AirPlay receivers. Both protocols are still early in development and may contains a
|
|
2416
|
+
few bugs (yeah...). You will likely see new features added to these over time.
|
|
2417
|
+
|
|
2418
|
+
A big new change in this release, that isn't really noticeable at first, is a new layer
|
|
2419
|
+
that relays calls between public interface methods and underlying protocols. What does
|
|
2420
|
+
this mean then? Well, we have the public interfaces (Metadata, RemoteControl. etc.)
|
|
2421
|
+
and the protocols implementing them (DMAP, MRP, RAOP, etc). Prior to this release,
|
|
2422
|
+
DMAP and MRP would fully implement all of the interfaces (with a minor exception of
|
|
2423
|
+
Stream) and there was a requirement to configure one of them. From now on however,
|
|
2424
|
+
there's no such restriction as it's possible to connect to any number of protocols.
|
|
2425
|
+
The Feature interface tells us what is actually supported. The new layer (internally
|
|
2426
|
+
called *facade*) will automatically figure out which of the available protocol has the
|
|
2427
|
+
most appropriate implementation and call that. If two protocols implement the same
|
|
2428
|
+
interface method, there's mechanisms internally to pick the best one. An example is
|
|
2429
|
+
the Power interface, where MRP and Companion both provide implementations for `turn_on`
|
|
2430
|
+
and `turn_off`. If both these protocols are configured, then the implementations
|
|
2431
|
+
provided by the Companion protocol will be used (as they are better), otherwise
|
|
2432
|
+
fallback will happen to MRP.
|
|
2433
|
+
|
|
2434
|
+
From now on, the change log format changes a bit to list changes per protocol and
|
|
2435
|
+
scripts. The goal is to make it easier to see what has changed or been fixed. This
|
|
2436
|
+
release also introduces release names and all releases from now on will get a release
|
|
2437
|
+
name based on characters from Five Nights Freddy's. First letter of the next release
|
|
2438
|
+
name follows the letter of the previous one (the next release will be called
|
|
2439
|
+
Glitchtrap for instance). Oh, and this release text is also new...
|
|
2440
|
+
|
|
2441
|
+
Other changes include a *big* overhaul of the documentation. A lot of things have
|
|
2442
|
+
been improved and added, for instance a new tutorial and a few new examples. There's
|
|
2443
|
+
a configuration for GitPod, so you can get going with pyatv development with a single
|
|
2444
|
+
click!
|
|
2445
|
+
|
|
2446
|
+
Be sure to check out the migration notes before upgrading:
|
|
2447
|
+
|
|
2448
|
+
https://pyatv.dev/support/migration/
|
|
2449
|
+
|
|
2450
|
+
There's also a new page with a better summary of supported features:
|
|
2451
|
+
|
|
2452
|
+
https://pyatv.dev/documentation/supported_features/
|
|
2453
|
+
|
|
2454
|
+
I guess that is it!
|
|
2455
|
+
|
|
2456
|
+
**Changes:**
|
|
2457
|
+
|
|
2458
|
+
*Protocol: DMAP:*
|
|
2459
|
+
|
|
2460
|
+
```
|
|
2461
|
+
* Reset revision if push update fails (#1004) fixes #1000
|
|
2462
|
+
```
|
|
2463
|
+
|
|
2464
|
+
*Protocol: MRP:*
|
|
2465
|
+
|
|
2466
|
+
```
|
|
2467
|
+
* bug: Do not deep copy protobuf messages (#1105) fixes #1038
|
|
2468
|
+
* bug: Handle missing artwork gracefully (#1033) fixes #937
|
|
2469
|
+
* bug: Implement and enforce internal protocol state (#1009) fixes #1007
|
|
2470
|
+
```
|
|
2471
|
+
|
|
2472
|
+
*Protocol: AirPlay:*
|
|
2473
|
+
|
|
2474
|
+
```
|
|
2475
|
+
* General clean up of module but no new features
|
|
2476
|
+
```
|
|
2477
|
+
|
|
2478
|
+
*Protocol: Companion:*
|
|
2479
|
+
|
|
2480
|
+
```
|
|
2481
|
+
* Initial release
|
|
2482
|
+
* Adds the Apps interface (list and launch apps)
|
|
2483
|
+
* Implements turn_on and turn_off in the Power interface
|
|
2484
|
+
```
|
|
2485
|
+
|
|
2486
|
+
*Protocol: RAOP:*
|
|
2487
|
+
|
|
2488
|
+
```
|
|
2489
|
+
* Initial release
|
|
2490
|
+
* Supports streaming WAV, MP3, OGG and Vorbis files
|
|
2491
|
+
* Reads metadata from supported formats (artist, album and title)
|
|
2492
|
+
* Supports volume controls
|
|
2493
|
+
```
|
|
2494
|
+
|
|
2495
|
+
*Script: atvlog:*
|
|
2496
|
+
|
|
2497
|
+
```
|
|
2498
|
+
* Exit if no output was generated (#1001)
|
|
2499
|
+
* Support serving output via web server (#997)
|
|
2500
|
+
```
|
|
2501
|
+
|
|
2502
|
+
*Script: atvremote:*
|
|
2503
|
+
|
|
2504
|
+
```
|
|
2505
|
+
* Fix bugs in manual mode (parameters not respected properly)
|
|
2506
|
+
```
|
|
2507
|
+
|
|
2508
|
+
**Notes:**
|
|
2509
|
+
|
|
2510
|
+
* audio-metadata, bitarray and miniaudio are new dependencies in this release
|
|
2511
|
+
* At least version 3.12.0 of protobuf is required
|
|
2512
|
+
|
|
2513
|
+
**All changes:**
|
|
2514
|
+
|
|
2515
|
+
```
|
|
2516
|
+
6ffef9f build(deps): bump pytest-xdist from 2.2.1 to 2.3.0
|
|
2517
|
+
8e5691c build(deps): bump mypy-protobuf from 1.24 to 2.4
|
|
2518
|
+
70ef974 docs: Add examples
|
|
2519
|
+
b91b099 deps: Don't bump bitarray past 2.1.2
|
|
2520
|
+
1914a04 docs: Clarification regarding device listener
|
|
2521
|
+
0bc6eae docs: Add a tutorial
|
|
2522
|
+
5bbb81a docs: Update migration guide for 0.8.0
|
|
2523
|
+
4d9dbd4 scan: Migrate to use get_unique_id internally
|
|
2524
|
+
0049db1 scan: Be more forgiving if service parsing fails
|
|
2525
|
+
ecacad7 tests: Make RAOP work in fake device
|
|
2526
|
+
c36e6b5 raop: Teardown session after streaming
|
|
2527
|
+
116d29d build(deps): bump zeroconf from 0.28.0 to 0.28.2
|
|
2528
|
+
b8c3819 scripts: Unset PIP_USER in setup_dev_env.sh
|
|
2529
|
+
cd849b7 Upgrade to GitHub-native Dependabot
|
|
2530
|
+
5f590f5 build(deps): Bump bitarray from 2.1.2 to 2.1.3
|
|
2531
|
+
aa4b53d raop: Fallback to AirPlay credentials
|
|
2532
|
+
a5bd14c raop: Only perform auth-setup for AirPort Express
|
|
2533
|
+
795081b docs: Various documentation updates
|
|
2534
|
+
6cfa66c helpers: Add get_unique_id
|
|
2535
|
+
1c3adcf mypy: Fix typing issues
|
|
2536
|
+
73bb7fa build(deps): Bump mypy from 0.812 to 0.902
|
|
2537
|
+
85d03f0 build(deps): Update bitarray requirement from <2.1.1,==2.1.0 to ==2.1.2
|
|
2538
|
+
cc5bc8c raop: Support devices not implementing /info
|
|
2539
|
+
dae7518 raop: Minor updates to documentation
|
|
2540
|
+
1b3c183 raop: Handle muted volume level
|
|
2541
|
+
cf2696e raop: Only allow one stream at the time
|
|
2542
|
+
eaec0a5 raop: Support set_volume, volume_up, volume_down
|
|
2543
|
+
462512e raop: Make sure authentication is performed early
|
|
2544
|
+
3b37ec8 raop: Initial volume support
|
|
2545
|
+
15e4501 support: Add map_range function
|
|
2546
|
+
4ed1b2c facade: Enforce percentage level for audio
|
|
2547
|
+
0dea45f deps: Temporarily lock bitarray <2.1.1
|
|
2548
|
+
c1acb3b build(deps): Bump black from 21.5b2 to 21.6b0
|
|
2549
|
+
8e13c3c build(deps): Bump codespell from 2.0.0 to 2.1.0
|
|
2550
|
+
b844966 raop: Correctly implement position in metadata
|
|
2551
|
+
1d665d5 raop: Support progress (position and total_time)
|
|
2552
|
+
fae7b41 cq: Clean up usage of ensure_future
|
|
2553
|
+
6c0cd54 raop: Fix instability in retransmission test
|
|
2554
|
+
c2f7287 raop: Send feedback if supported by receiver
|
|
2555
|
+
58220e5 raop: Avoid blocking I/O when loading metadata
|
|
2556
|
+
7eb961d raop: Avoid blocking I/O in MiniaudioWrapper
|
|
2557
|
+
292fbb5 raop: Add initial functional tests
|
|
2558
|
+
68abbdc audiogen: Add new script to generate audio files
|
|
2559
|
+
5f3d1a8 raop: Add basic fake device
|
|
2560
|
+
32f8ed7 http: Add a simple web server implementation
|
|
2561
|
+
f1bfce3 build(deps): Bump pytest-cov from 2.12.0 to 2.12.1
|
|
2562
|
+
044f55e build(deps): Bump pylint from 2.8.2 to 2.8.3
|
|
2563
|
+
eb2d36d build(deps): Bump black from 21.5b1 to 21.5b2
|
|
2564
|
+
1d2b3a1 env: Don't post comment with GitPod link
|
|
2565
|
+
2b5b280 http: Ignore type mypy cannot find
|
|
2566
|
+
18d1597 http: Ignore case in when parsing headers
|
|
2567
|
+
0bd54d8 airplay: Fix encoding name typo
|
|
2568
|
+
e65eb59 airplay: Fix patching in tests
|
|
2569
|
+
74401a0 raop: Use feedback endpoint for keep-alive
|
|
2570
|
+
428b9b1 raop: Verify using AirPlay if credentials provided
|
|
2571
|
+
99f3037 airplay: Unify credentials with other protocols AirPlay was the first protocol to introduce SRP and credentials and suffers some internal design flaws that were improved when implementing the other protocols. This change tries to make the AirPlay implementation look more like how it's done in the other protocols using SRP, e.g. MRP. It's a good start, but some additional work needs to be done regarding credentials parsing (but leaving that for the future).
|
|
2572
|
+
894f0fd hap_srp: Rename Credentials to HapCredentials
|
|
2573
|
+
2211a00 atvremote: Fix bugs in manual mode
|
|
2574
|
+
be37e9f net: Move HttpSession to http
|
|
2575
|
+
46ae307 net: Move aiohttp session management to http
|
|
2576
|
+
7b62f96 airplay: Move StaticFileWebServer to http
|
|
2577
|
+
722967e airplay: Simulate streaming from fake device
|
|
2578
|
+
7aa1e35 airplay: Refactor to use new http module
|
|
2579
|
+
1ef8684 rtsp: Use composition instead of inheritance
|
|
2580
|
+
2d2bd57 raop: Convert RTSP to use the new HTTP module
|
|
2581
|
+
57b3b5b http: Generalize RTSP parsing to HTTP
|
|
2582
|
+
ded7458 companion: Fix case when app_list fails (#1106)
|
|
2583
|
+
980454e mrp: Do not deep copy protobuf messages (#1105)
|
|
2584
|
+
cc3de66 companion: Add support for turn_on and turn_off (#1104)
|
|
2585
|
+
d08c73a build(deps): Bump miniaudio from 1.43 to 1.44
|
|
2586
|
+
f57f122 raop: Set correct progress in metadata (#1100)
|
|
2587
|
+
2dd1539 raop: Support retransmission of lost packets (#1099)
|
|
2588
|
+
5f5ad5b raop: Add support for AirPort Express (#1098)
|
|
2589
|
+
311ca61 raop: Raise exception on RTSP error code (#1097)
|
|
2590
|
+
a24ee74 conf: Add device info for AirPort Express (#1096)
|
|
2591
|
+
75d31f4 mdns: Ignore link-local addresses when scanning (#1095)
|
|
2592
|
+
9393b51 build(deps): bump black from 21.5b0 to 21.5b1 (#1065)
|
|
2593
|
+
3d541bf build(deps): bump pydocstyle from 6.1.0 to 6.1.1
|
|
2594
|
+
0fd1393 build(deps): bump pylint from 2.7.4 to 2.8.2 (#1044)
|
|
2595
|
+
da37e28 docs: Update README.md (#1092)
|
|
2596
|
+
a64ca4d docs: General uplift of documentation (#1091)
|
|
2597
|
+
8822d66 build(deps): bump pydocstyle from 6.0.0 to 6.1.0
|
|
2598
|
+
be08cfa raop: Implement Metadata and PushUpdater interface (#1084)
|
|
2599
|
+
5051a17 build(deps): bump pytest-cov from 2.11.1 to 2.12.0
|
|
2600
|
+
c1d4d74 raop: Use metadata from input file as metadata (#1080)
|
|
2601
|
+
dc6c042 if: Add audio interface (#1074)
|
|
2602
|
+
41b5705 raop: Respect receiver audio properties (#1073)
|
|
2603
|
+
f2c625f raop: Add initial support for RAOP (#1060)
|
|
2604
|
+
a93601f facade: Add PushUpdates to the feature interface (#1072)
|
|
2605
|
+
6f53e7b env: Enable CodeQL (#1070)
|
|
2606
|
+
54d876a some small additions to the OPACK definitions (#1064)
|
|
2607
|
+
bb5ac0e build(deps): bump flake8 from 3.9.1 to 3.9.2
|
|
2608
|
+
0cde7a0 scripts: Protocol clean up (#1057)
|
|
2609
|
+
35c49b8 build(deps-dev): bump tox from 3.23.0 to 3.23.1
|
|
2610
|
+
f129725 build(deps): bump black from 21.4b2 to 21.5b0
|
|
2611
|
+
a01ff9c build(deps): bump pytest from 6.2.3 to 6.2.4
|
|
2612
|
+
cbfeba6 build(deps): bump deepdiff from 5.3.0 to 5.5.0
|
|
2613
|
+
c85f211 build(deps): bump black from 21.4b1 to 21.4b2 (#1050)
|
|
2614
|
+
f15fa67 mrp: Tidy upp keyboard related messages (#1048)
|
|
2615
|
+
22a0b29 Add series name, season and episode number (#1049)
|
|
2616
|
+
51a1da3 build(deps): bump black from 21.4b0 to 21.4b1 (#1046)
|
|
2617
|
+
f344a12 docs: Add section about commands in Companion (#1047)
|
|
2618
|
+
b5d015f docs: Change "Apps" section to "Known Issues" (#1045)
|
|
2619
|
+
58f8925 Implement facade pattern for public interface (#1042)
|
|
2620
|
+
3225c98 companion: Add pairing function tests (#1041)
|
|
2621
|
+
e230f1d gha: Run tests workflow on master (#1039)
|
|
2622
|
+
7979b1b build(deps): bump black from 20.8b1 to 21.4b0
|
|
2623
|
+
f6976e4 script: Install docs dependencies in dev env (#1032)
|
|
2624
|
+
c68ed51 mrp: Handle missing artwork gracefully (#1033)
|
|
2625
|
+
5df2295 gha: Minor changes to codecov (#1031)
|
|
2626
|
+
021cc7a docs: Clarify AAD for encryption in Companion (#1030)
|
|
2627
|
+
33d504d env: Various updats to environment and GitPod (#1029)
|
|
2628
|
+
f173531 env: Remove documentation tab from GitPod for now (#1028)
|
|
2629
|
+
1e8ffdc env: Add GitPod configuration
|
|
2630
|
+
d2dbc9e cq: Sort imports with isort (#1026)
|
|
2631
|
+
caeb039 build(deps): bump pytest-asyncio from 0.14.0 to 0.15.1 (#1027)
|
|
2632
|
+
bb7ff8f Fake device and tests for Companion (#1025)
|
|
2633
|
+
ddbe170 if: Add Apps interface to Companion (#1022)
|
|
2634
|
+
8ebc67d knock: Suppress CancelledError exception (#1023)
|
|
2635
|
+
ea5d3ea Support for the Companion link protocol (#657)
|
|
2636
|
+
e033942 scripts: Add module to log output (#1017)
|
|
2637
|
+
235484e build(deps): bump deepdiff from 5.2.3 to 5.3.0
|
|
2638
|
+
646c6d6 doc: Add mermaid to support diagrams (#1014)
|
|
2639
|
+
b0c9355 chore: update types in CryptoPairingMessage to be optional (#1013)
|
|
2640
|
+
9cb96ff mrp: Implement and enforce internal protocol state (fixes #1007) (#1009)
|
|
2641
|
+
df43f78 build(deps): bump flake8 from 3.9.0 to 3.9.1
|
|
2642
|
+
6d42bf5 build(deps): bump typed-ast from 1.4.2 to 1.4.3
|
|
2643
|
+
d6ae8e9 dmap: Reset revision if push update fails (#1004)
|
|
2644
|
+
ea1f816 build(deps): bump pytest from 6.2.2 to 6.2.3
|
|
2645
|
+
33acac2 atvlog: Exit if no output was generated (#1001)
|
|
2646
|
+
c59a3d3 build(deps): bump pylint from 2.7.2 to 2.7.4
|
|
2647
|
+
f3f7a1a atvlog: Support serving output via web server (#997)
|
|
2648
|
+
377e0eb build(deps): bump pydocstyle from 5.1.1 to 6.0.0
|
|
2649
|
+
00fa0cd protobuf: Bump lower version to 3.12.0 (#991)
|
|
2650
|
+
d291104 build(deps): bump flake8 from 3.8.4 to 3.9.0
|
|
2651
|
+
```
|
|
2652
|
+
|
|
2653
|
+
## 0.7.7 (2021-03-12)
|
|
2654
|
+
|
|
2655
|
+
**Changes:**
|
|
2656
|
+
|
|
2657
|
+
* Fix bug where apps would appear to crash on tvOS 14.5 (beta)
|
|
2658
|
+
* Add a retry to heartbeat loop
|
|
2659
|
+
* Add new script that parses logs: atvlog
|
|
2660
|
+
|
|
2661
|
+
**All changes:**
|
|
2662
|
+
|
|
2663
|
+
```
|
|
2664
|
+
60df163 mrp: Use GenericMessage for heartbeats (#975)
|
|
2665
|
+
8df084f support: Convert knock to use asyncio (#988)
|
|
2666
|
+
14196da gh: Add example to attach log to a bug report (#984)
|
|
2667
|
+
dbe734c build(deps-dev): bump tox from 3.22.0 to 3.23.0
|
|
2668
|
+
1e1922e cq: Run pylint from tox (#979)
|
|
2669
|
+
7464cb7 atvlog: Rename log2html and bundle it (#982)
|
|
2670
|
+
34d2f53 log2html: Add separate include and exclude filters (#981)
|
|
2671
|
+
0a6fa5e log2html: Add generation date and command (#980)
|
|
2672
|
+
7184717 mrp: Add retry to heartbeats (#978)
|
|
2673
|
+
b0eaaef log2html: Allow toggling of showing date (#974)
|
|
2674
|
+
adda918 build(deps): bump mypy from 0.800 to 0.812
|
|
2675
|
+
fa8b05d gha: Save log for log2html using pygithub (#972)
|
|
2676
|
+
7584a2c log2html: Fix broken log entry loading (#971)
|
|
2677
|
+
090ba35 build(deps): bump deepdiff from 5.2.2 to 5.2.3 (#969)
|
|
2678
|
+
ce3fecd gha: Store issue/comment body as file for log2html (#970)
|
|
2679
|
+
1ee2691 log2html: Support Home Assistant log format (#967)
|
|
2680
|
+
b9dcadc log2html: Add text and log level filtering (#966)
|
|
2681
|
+
49b17f9 log2html: Render log entries with javascript (#965)
|
|
2682
|
+
5935d50 build(deps-dev): bump tox from 3.21.4 to 3.22.0
|
|
2683
|
+
aa9b2cf gha: Generate html logs for logs in issues (#962)
|
|
2684
|
+
aa2aa18 log2html: Support environment variable as input (#961)
|
|
2685
|
+
dd91239 log2html: New script converting logs to HTML pages (#960)
|
|
2686
|
+
659031e build(deps): bump pytest-xdist from 2.2.0 to 2.2.1
|
|
2687
|
+
46aae2f build(deps-dev): bump tox from 3.21.3 to 3.21.4
|
|
2688
|
+
49aab09 build(deps): bump mypy-protobuf from 1.23 to 1.24
|
|
2689
|
+
```
|
|
2690
|
+
|
|
2691
|
+
## 0.7.6 (2021-01-29)
|
|
2692
|
+
|
|
2693
|
+
**Changes:**
|
|
2694
|
+
|
|
2695
|
+
* DNS parsing has been re-written which should be more stable
|
|
2696
|
+
and handle more use cases
|
|
2697
|
+
* TCP keep-alive has been added to more platforms, FreeBSD being one of them
|
|
2698
|
+
* Player management has been totally re-written for MRP, so hopefully
|
|
2699
|
+
play state should be more accurate now
|
|
2700
|
+
* A delay has been added to turn\_off (MRP), so it should work again
|
|
2701
|
+
* A heartbeat loop has been added that sends a "heartbeat" to the device
|
|
2702
|
+
every 30s to detect connection problems
|
|
2703
|
+
* Protobuf definitions have been further lifted to match later tvOS versions
|
|
2704
|
+
|
|
2705
|
+
**Notes:**
|
|
2706
|
+
|
|
2707
|
+
* Fixed a bug where Playing instancess were not immutable
|
|
2708
|
+
* Push updates are only issued when something in the Playing instance changed.
|
|
2709
|
+
Previously, unrelated changes to the device could trigger push updates with
|
|
2710
|
+
the same content in Playing.
|
|
2711
|
+
|
|
2712
|
+
**All changes:**
|
|
2713
|
+
|
|
2714
|
+
```
|
|
2715
|
+
0994733 build(deps-dev): bump tox from 3.21.2 to 3.21.3 (#946)
|
|
2716
|
+
8e0fc01 mrp: Add some protobuf messages for volume (#947)
|
|
2717
|
+
5752ae3 mrp: Fix handling of active client (#944)
|
|
2718
|
+
7e3bcf5 if: Convert Playing to data class (#943)
|
|
2719
|
+
2b8fb74 build(deps): bump pytest from 6.2.1 to 6.2.2
|
|
2720
|
+
607d78c build(deps): bump mypy from 0.790 to 0.800
|
|
2721
|
+
a77c453 build(deps-dev): bump tox from 3.21.1 to 3.21.2
|
|
2722
|
+
393efbd build(deps): bump pytest-cov from 2.11.0 to 2.11.1
|
|
2723
|
+
6bb284f build(deps): bump pytest-cov from 2.10.1 to 2.11.0
|
|
2724
|
+
3c488b2 build(deps): bump deepdiff from 5.2.1 to 5.2.2
|
|
2725
|
+
cc41f33 mrp: Add support for heartbeats (#925)
|
|
2726
|
+
aec7362 mrp: Add support for heartbeats (#926)
|
|
2727
|
+
9af7609 dns: Use UTF-8 for names, and (attempt) to handle dots in names (#927)
|
|
2728
|
+
b527506 build(deps-dev): bump tox from 3.21.0 to 3.21.1
|
|
2729
|
+
fdf843f mrp: Support default supported commands (#924)
|
|
2730
|
+
f0f7eaf mrp: Add delay in turn_off between commands (#923)
|
|
2731
|
+
df56149 mrp: Add fields to UpdateOutputDevice (#921)
|
|
2732
|
+
280de0f Do not post duplicate push updates (#920)
|
|
2733
|
+
f9f7238 build(deps-dev): bump tox from 3.20.1 to 3.21.0
|
|
2734
|
+
aed9028 mrp: Fix a few playback state edge cases (#916)
|
|
2735
|
+
e176ce7 mrp: Improve client and player handling (#915)
|
|
2736
|
+
3ca2b0f support: Add new tvOS versions to list (#913)
|
|
2737
|
+
ccfa5eb mrp: Major updates to protobuf messages (#912)
|
|
2738
|
+
3eb9d3a Improve DNS message parsing for mDNS (#899)
|
|
2739
|
+
c524244 build(deps): bump deepdiff from 5.0.2 to 5.2.1
|
|
2740
|
+
87a159e build(deps): bump typed-ast from 1.4.1 to 1.4.2
|
|
2741
|
+
e61fb47 Slightly refine protobuf and srptools base requirements (#902)
|
|
2742
|
+
b2e80b3 net: Use TCP keepalive on more platforms (#897)
|
|
2743
|
+
03e4438 build(deps): bump codecov from 2.1.10 to 2.1.11
|
|
2744
|
+
f3dd0af build(deps): bump pytest from 6.2.0 to 6.2.1
|
|
2745
|
+
5f3383b build(deps): bump pytest-xdist from 2.1.0 to 2.2.0
|
|
2746
|
+
5ccb23f build(deps): bump pytest from 6.1.2 to 6.2.0
|
|
2747
|
+
```
|
|
2748
|
+
|
|
2749
|
+
## 0.7.5 (2020-12-08)
|
|
2750
|
+
|
|
2751
|
+
**Changes:**
|
|
2752
|
+
|
|
2753
|
+
* Revert to use random source port for MDNS
|
|
2754
|
+
* Fix "Received UpdateClientMessage for unknown player xxx""
|
|
2755
|
+
|
|
2756
|
+
**All changes:**
|
|
2757
|
+
|
|
2758
|
+
```
|
|
2759
|
+
cd6d53f mdns: Revert binding to port 5353
|
|
2760
|
+
a394b52 mrp: Handle UpdateClient before SetState
|
|
2761
|
+
a3d46d3 build(deps): bump mypy from 0.782 to 0.790
|
|
2762
|
+
c648eaa update MANIFEST.in, add missing file
|
|
2763
|
+
162f319 build(deps): bump pytest from 6.1.1 to 6.1.2
|
|
2764
|
+
f1a7223 build(deps): bump pdoc3 from 0.9.1 to 0.9.2
|
|
2765
|
+
0b97aab build(deps): bump codespell from 1.17.1 to 2.0.0
|
|
2766
|
+
795aaa7 Update setup.py, extend exclude mask
|
|
2767
|
+
5e27bc7 gha: Fix python 3.9 and use env files
|
|
2768
|
+
```
|
|
2769
|
+
|
|
2770
|
+
## 0.7.4 (2020-10-12)
|
|
2771
|
+
|
|
2772
|
+
**Changes:**
|
|
2773
|
+
|
|
2774
|
+
* PIN code screen for MRP will now disappear after pairing
|
|
2775
|
+
* Less and more compact debug logs in mdns and knock
|
|
2776
|
+
|
|
2777
|
+
**All changes:**
|
|
2778
|
+
|
|
2779
|
+
```
|
|
2780
|
+
9f1d1d0 mrp: Verify credentials after pairing
|
|
2781
|
+
1d799f2 cq: Minor clean ups and fixes
|
|
2782
|
+
061add1 build(deps): bump codecov from 2.1.9 to 2.1.10
|
|
2783
|
+
dc31ac9 build(deps-dev): bump tox from 3.20.0 to 3.20.1
|
|
2784
|
+
```
|
|
2785
|
+
|
|
2786
|
+
## 0.7.3 (2020-10-08)
|
|
2787
|
+
|
|
2788
|
+
**Changes:**
|
|
2789
|
+
|
|
2790
|
+
* Minor hug fixes and clean ups, see all changes
|
|
2791
|
+
|
|
2792
|
+
**All changes:**
|
|
2793
|
+
|
|
2794
|
+
```
|
|
2795
|
+
d2e5a33 mdns: Supress decoding errors
|
|
2796
|
+
fb8c621 mrp: Don't use deprecated home_hold internally
|
|
2797
|
+
dc52b5a mrp: Ack client updates messages
|
|
2798
|
+
925f2b4 mdns: Bind to port 5353 instead of random port
|
|
2799
|
+
8e54c64 build(deps): bump flake8 from 3.8.3 to 3.8.4
|
|
2800
|
+
f97ad68 build(deps): bump pytest from 6.1.0 to 6.1.1
|
|
2801
|
+
08b7229 build(deps): bump pytest from 6.0.2 to 6.1.0
|
|
2802
|
+
e4172fa build(deps): bump pytest from 6.0.1 to 6.0.2
|
|
2803
|
+
de13ca1 build(deps-dev): bump tox from 3.19.0 to 3.20.0
|
|
2804
|
+
319cd5c build(deps): bump pydocstyle from 5.1.0 to 5.1.1
|
|
2805
|
+
0108425 build(deps): bump black from 19.10b0 to 20.8b1
|
|
2806
|
+
1be9aaa gha: Bump codecov to 1.0.13
|
|
2807
|
+
7af56cb build(deps): bump pdoc3 from 0.8.5 to 0.9.1
|
|
2808
|
+
3654385 deps: Lower zeroconf requirement to 0.28.0
|
|
2809
|
+
954171c net: Change accidental info to debug log
|
|
2810
|
+
97e2579 build(deps): bump pdoc3 from 0.8.4 to 0.8.5
|
|
2811
|
+
ba7c581 build(deps): bump zeroconf from 0.28.1 to 0.28.2
|
|
2812
|
+
8400103 build(deps): bump pytest-xdist from 2.0.0 to 2.1.0
|
|
2813
|
+
```
|
|
2814
|
+
|
|
2815
|
+
## 0.7.2 (2020-08-24)
|
|
2816
|
+
|
|
2817
|
+
**Changes:**
|
|
2818
|
+
|
|
2819
|
+
* Handle authority records in MDNS which fixes:
|
|
2820
|
+
`NotImplementedError: nscount > 0`
|
|
2821
|
+
* Do not require ACK for some remote control commands
|
|
2822
|
+
to be compatible with tvOS 14 (beta)
|
|
2823
|
+
* Abort scanning early when expected device (by identifier)
|
|
2824
|
+
is found
|
|
2825
|
+
|
|
2826
|
+
**All changes:**
|
|
2827
|
+
|
|
2828
|
+
```
|
|
2829
|
+
6a692e0 build(deps): bump pydocstyle from 5.0.2 to 5.1.0
|
|
2830
|
+
5627304 build(deps): bump codecov from 2.1.8 to 2.1.9
|
|
2831
|
+
7c40bce scan: Abort when device with identifier found
|
|
2832
|
+
92ccf6c mrp: Require no ACK for HID messages
|
|
2833
|
+
fe4ea4d build(deps): bump zeroconf from 0.28.0 to 0.28.1
|
|
2834
|
+
b020b67 mdns: Add support for authority records
|
|
2835
|
+
```
|
|
2836
|
+
|
|
2837
|
+
## 0.7.1 (2020-08-16)
|
|
2838
|
+
|
|
2839
|
+
**Changes:**
|
|
2840
|
+
|
|
2841
|
+
* Fixed lots of issues with scanning
|
|
2842
|
+
* Improved performance for MRP playing information
|
|
2843
|
+
* Fixed wrong identifier for DMAP when MDNS name collision exists
|
|
2844
|
+
* Support for python 3.9 (beta)
|
|
2845
|
+
|
|
2846
|
+
**All changes:**
|
|
2847
|
+
|
|
2848
|
+
```
|
|
2849
|
+
8cec795 gha: Retry tox if first run fails
|
|
2850
|
+
d77c56f build(deps): bump pytest-xdist from 1.34.0 to 2.0.0
|
|
2851
|
+
a424f08 build(deps): bump pytest-cov from 2.10.0 to 2.10.1
|
|
2852
|
+
bb703ca scan: Fix DMAP identifier when name collides
|
|
2853
|
+
2bcafb4 conf: Convert tests to pytest
|
|
2854
|
+
91de62f build(deps): bump pytest from 5.4.3 to 6.0.1
|
|
2855
|
+
68992d4 mdns: Fixes to make tests more stable
|
|
2856
|
+
f64b357 mdns: Extract functional tests
|
|
2857
|
+
8d4edf3 mdns: Fix multicast issues
|
|
2858
|
+
d30350e support: Add level to log_binary
|
|
2859
|
+
3ffa1ff build(deps-dev): bump tox from 3.18.0 to 3.19.0
|
|
2860
|
+
ff0ba00 build(deps): bump pytest-xdist from 1.33.0 to 1.34.0
|
|
2861
|
+
dfbd428 build(deps): bump deepdiff from 5.0.1 to 5.0.2
|
|
2862
|
+
d2d17b3 build(deps-dev): bump tox from 3.17.1 to 3.18.0
|
|
2863
|
+
a82d7e1 scan: Remove check if host is on any local subnet
|
|
2864
|
+
23accc6 gha: Run tests with python 3.9
|
|
2865
|
+
45d08c8 api: Convert Union[x, NoneType] to Optional[x]
|
|
2866
|
+
104620c api: Print diff when API docs mismatch
|
|
2867
|
+
c173afb Resolve performance slowdown with copying playing data
|
|
2868
|
+
14192d9 build(deps): bump codecov from 2.1.7 to 2.1.8
|
|
2869
|
+
c05c351 build(deps-dev): bump tox from 3.17.0 to 3.17.1
|
|
2870
|
+
63ce14f build(deps): bump pytest-timeout from 1.4.1 to 1.4.2
|
|
2871
|
+
71d1f80 build(deps-dev): bump tox from 3.16.1 to 3.17.0
|
|
2872
|
+
61289c6 build(deps): bump pdoc3 from 0.8.3 to 0.8.4
|
|
2873
|
+
```
|
|
2874
|
+
|
|
2875
|
+
## 0.7.0 (2020-07-14)
|
|
2876
|
+
|
|
2877
|
+
**Changes:**
|
|
2878
|
+
|
|
2879
|
+
* Input actions (single/double tap and hold) are now supported
|
|
2880
|
+
* Support for aiohttp 4 (only tested with pre-release)
|
|
2881
|
+
* Possibility to wait for power state change in turn_on and turn_off
|
|
2882
|
+
* TCP keep-alive configured to detect stale connections
|
|
2883
|
+
* Implement custom scanning (not using 3rd party zeroconf library)
|
|
2884
|
+
* Switch back to zeroconf from aiozeroconf for service publishing
|
|
2885
|
+
* Deep sleep detection when scanning
|
|
2886
|
+
* Tunnel mode has been added to atvproxy
|
|
2887
|
+
* A delay command has been added to atvremote
|
|
2888
|
+
* Fix (potentially) for hanging connection after receiving artwork (MRP)
|
|
2889
|
+
* Fix bug in device state when app reports invalid playback rate (MRP)
|
|
2890
|
+
* Fix broken repeat handling (MRP)
|
|
2891
|
+
* Fix broken pairing (DMAP)
|
|
2892
|
+
* Fix missing application name (MRP)
|
|
2893
|
+
|
|
2894
|
+
**Notes:**
|
|
2895
|
+
|
|
2896
|
+
* This release contains re-written scanning logic which hopefully
|
|
2897
|
+
makes scanning more reliable (not 100% foolproof though). This
|
|
2898
|
+
re-write gives support for deep-sleep detection and better device
|
|
2899
|
+
model detection. It is however less tested, so bugs probably still
|
|
2900
|
+
exist. Please write bug reports.
|
|
2901
|
+
* TCP keep-alive and timeout timers are now configured. Keep alive
|
|
2902
|
+
messages are sent regularly and the connection will time out (and
|
|
2903
|
+
disconnect) after 20 seconds of no replies.
|
|
2904
|
+
|
|
2905
|
+
|
|
2906
|
+
**All changes:**
|
|
2907
|
+
|
|
2908
|
+
```
|
|
2909
|
+
c7f8166 cq: Minor clean ups
|
|
2910
|
+
9758d3d mrp: Potential fix for protocol hangs
|
|
2911
|
+
2f2393e dmap: Fix pairing endpoint bug
|
|
2912
|
+
8419376 scan: Migrate back to zeroconf from aiozeroconf
|
|
2913
|
+
558213a build(deps): bump pytest-xdist from 1.32.0 to 1.33.0
|
|
2914
|
+
d1bb536 scan: Get device model from mdns
|
|
2915
|
+
cb010bf devinfo: Add lookup for internal names
|
|
2916
|
+
e2b95fe gha: Enable codecov again
|
|
2917
|
+
11b297b atvremote: Add delay command
|
|
2918
|
+
087fc50 device_info: Add some tvOS build numbers
|
|
2919
|
+
ef2849b scan: Extract scanners to a support module
|
|
2920
|
+
9bcfafd mdns: Rename udns module to mdns
|
|
2921
|
+
405ce01 scan: Add support for deep sleep detection
|
|
2922
|
+
c1ac7ce udns: Add Response type to unicast and multicast
|
|
2923
|
+
100aeee mrp: Update protobuf for language options.
|
|
2924
|
+
25d1f4b if: Add support for input actions in protocols
|
|
2925
|
+
da4c769 if: Add InputAction for relevant buttons
|
|
2926
|
+
16f8e92 build(deps): bump deepdiff from 5.0.0 to 5.0.1
|
|
2927
|
+
c81d180 build(deps-dev): bump tox from 3.16.0 to 3.16.1
|
|
2928
|
+
ac842cd scan: Handle sleep proxy responses
|
|
2929
|
+
8dea1f6 udns: Return service objects
|
|
2930
|
+
0128a7e udns: Fix some unicode issues
|
|
2931
|
+
c48e979 scan: Add and use parser for MDNS services
|
|
2932
|
+
73d3a1b udns: Add support for A records
|
|
2933
|
+
83f0a42 udns: Extract test helpers to module
|
|
2934
|
+
0f362a0 build(deps): bump pdoc3 from 0.8.1 to 0.8.3
|
|
2935
|
+
eb4bcf6 build(deps-dev): bump tox from 3.15.2 to 3.16.0
|
|
2936
|
+
575dab6 build(deps): bump pytest-asyncio from 0.12.0 to 0.14.0
|
|
2937
|
+
2c6f526 build(deps): bump deepdiff from 4.3.2 to 5.0.0
|
|
2938
|
+
0154375 build(deps): bump mypy from 0.781 to 0.782
|
|
2939
|
+
0ca534c build(deps): bump mypy from 0.780 to 0.781
|
|
2940
|
+
d5b24f2 udns: Cancel re-send loops properly
|
|
2941
|
+
1104e7a cq: Fix broken sleep stub
|
|
2942
|
+
51bd450 scan: Add more typing
|
|
2943
|
+
7c3e1a0 scan: Add explicit bind to multicast scan
|
|
2944
|
+
93f1281 scan: Custom scanning implementation
|
|
2945
|
+
1ccbc57 net: Add method to get all private addresses
|
|
2946
|
+
06c54a1 build(deps): bump mypy-protobuf from 1.22 to 1.23
|
|
2947
|
+
7e33682 build(deps): bump pytest-timeout from 1.4.0 to 1.4.1
|
|
2948
|
+
127ed5a mrp: Fix repeat state bug
|
|
2949
|
+
9e10b1f build(deps): bump pytest-timeout from 1.3.4 to 1.4.0
|
|
2950
|
+
885ebfb build(deps): bump codecov from 2.1.5 to 2.1.7
|
|
2951
|
+
55efb9f build(deps): bump mypy-protobuf from 1.21 to 1.22
|
|
2952
|
+
85d81a5 mrp: Use stringify for TLV8 errors
|
|
2953
|
+
4a30354 hap_tlv8: Add stringify method
|
|
2954
|
+
72ed37a hap_tlv8: Use enums instead of constants
|
|
2955
|
+
8c145bf hap_tlv8: Use integer as key instead of string
|
|
2956
|
+
7ddf8c4 hap_tlv8: Convert to pytest
|
|
2957
|
+
a26e12c mrp: Move tlv8 to support and rename
|
|
2958
|
+
52d6237 build(deps): bump codecov from 2.1.4 to 2.1.5
|
|
2959
|
+
5cf2d4f build(deps): bump pytest-cov from 2.9.0 to 2.10.0
|
|
2960
|
+
c726511 mrp: Configure TCP keep-alive
|
|
2961
|
+
7d848eb mrp: Fix state when playback rate is wrong
|
|
2962
|
+
6f0cb81 build(deps): bump flake8 from 3.8.2 to 3.8.3
|
|
2963
|
+
cae478a atvproxy: Simplify MRP usage
|
|
2964
|
+
64c80b2 docs: Various updates to documentation
|
|
2965
|
+
af1322d build(deps-dev): bump tox from 3.15.1 to 3.15.2
|
|
2966
|
+
3490e2b build(deps): bump mypy from 0.770 to 0.780
|
|
2967
|
+
850e8d0 mrp: Clean up player path handling
|
|
2968
|
+
557f418 cq: Exclude __pycache__ from black
|
|
2969
|
+
41542a0 gha: Disable codecov as it's broken
|
|
2970
|
+
688ec71 docs: Add a logo image and favicon
|
|
2971
|
+
2619360 gha: Remove invalid codecov option
|
|
2972
|
+
0cb12bd build(deps): bump codecov from 2.1.3 to 2.1.4
|
|
2973
|
+
e8da6fc power: Add await_new_state argument
|
|
2974
|
+
2134f88 build(deps): bump pytest from 5.4.2 to 5.4.3
|
|
2975
|
+
a5cddd1 cq: Support for aiohttp 4
|
|
2976
|
+
5458a30 mrp: Maintain last known app name
|
|
2977
|
+
eefbe29 Added information regarding playbackRate issue
|
|
2978
|
+
f2b5df8 atvproxy: Add tunnel support
|
|
2979
|
+
be6270d build(deps): bump mypy-protobuf from 1.20 to 1.21
|
|
2980
|
+
a5e01c6 doc: Add black badge to README
|
|
2981
|
+
1b86065 build(deps): bump flake8 from 3.8.1 to 3.8.2
|
|
2982
|
+
cb6166c cq: Add dependabot config
|
|
2983
|
+
7f443bf build(deps): bump pytest-cov from 2.8.1 to 2.9.0
|
|
2984
|
+
8316679 build(deps): bump codespell from 1.16.0 to 1.17.1
|
|
2985
|
+
ef18612 build(deps): bump codecov from 2.1.1 to 2.1.3
|
|
2986
|
+
d9f9767 build(deps): bump flake8 from 3.7.9 to 3.8.1
|
|
2987
|
+
3b6e5da build(deps-dev): bump tox from 3.15.0 to 3.15.1
|
|
2988
|
+
153e798 build(deps): bump codecov from 2.0.22 to 2.1.1
|
|
2989
|
+
fa32dab build(deps): bump pytest from 5.4.1 to 5.4.2
|
|
2990
|
+
be953a6 build(deps): bump pytest-asyncio from 0.10.0 to 0.12.0
|
|
2991
|
+
6883973 tests: Fix minor pytest incompatibilities
|
|
2992
|
+
194e439 build(deps): bump pytest-xdist from 1.31.0 to 1.32.0
|
|
2993
|
+
257d152 build(deps-dev): bump tox from 3.14.6 to 3.15.0
|
|
2994
|
+
96adea5 cq: Run tests with base versions
|
|
2995
|
+
```
|
|
2996
|
+
|
|
2997
|
+
## 0.6.1 (2020-04-28)
|
|
2998
|
+
|
|
2999
|
+
**Changes:**
|
|
3000
|
+
|
|
3001
|
+
* Fixes compatibility issues with older protobuf versions
|
|
3002
|
+
|
|
3003
|
+
**All changes:**
|
|
3004
|
+
|
|
3005
|
+
```
|
|
3006
|
+
230cf9c mrp: Fixes to support older protobuf versions
|
|
3007
|
+
```
|
|
3008
|
+
|
|
3009
|
+
## 0.6.0 (2020-04-28)
|
|
3010
|
+
|
|
3011
|
+
**Changes:**
|
|
3012
|
+
|
|
3013
|
+
* Stream local files via AirPlay
|
|
3014
|
+
* Unicast scanning will now wake up sleeping devices automatically
|
|
3015
|
+
* Support for skip_forward and skip_backward
|
|
3016
|
+
* Support volume_up and volume_down (DMAP)
|
|
3017
|
+
* Artwork can be retrieved with custom width and height
|
|
3018
|
+
* top_menu now goes to main menu on tvOS
|
|
3019
|
+
* play_pause will be emulated by play/pause on tvOS if not natively supported
|
|
3020
|
+
* Fix retrieval of artwork with missing identifier
|
|
3021
|
+
* Many improvements to atvscript (timestamp, exception handling, etc.)
|
|
3022
|
+
|
|
3023
|
+
**Notes:**
|
|
3024
|
+
|
|
3025
|
+
* Default timeout for HTTP requests (DMAP and AirPlay) has been increased to
|
|
3026
|
+
25 seconds to deal with waking up devices
|
|
3027
|
+
* Weak references are now used for all listeners, see
|
|
3028
|
+
https://pyatv.dev/support/troubleshooting if you have any problems
|
|
3029
|
+
* Unicast scanning for hosts outside of any local subnet will
|
|
3030
|
+
result in exceptions.NonLocalSubnetError
|
|
3031
|
+
* Resources are now properly cleaned up when closing a device, e.g.
|
|
3032
|
+
anything playing with AirPlay will be disconnected
|
|
3033
|
+
* Additional log points have been added and existing log points have been
|
|
3034
|
+
changed to be more consistent within pyatv
|
|
3035
|
+
|
|
3036
|
+
**All changes:**
|
|
3037
|
+
|
|
3038
|
+
```
|
|
3039
|
+
e81e031 docs: Rename variable in credentials example
|
|
3040
|
+
206b5de atvremote: Support width/height in artwork_save
|
|
3041
|
+
f023d88 mrp: Add support for artwork width/height
|
|
3042
|
+
4f4b85a dmap: Add limited support for artwork width/height
|
|
3043
|
+
42b38e3 if: Add width and height to artwork method
|
|
3044
|
+
d9986bc cq: Fix a bunch of TODOs in the code
|
|
3045
|
+
a4bd413 airplay: Use default timeout for HTTP requests
|
|
3046
|
+
bd580be docs: Inherit from listener interfaces
|
|
3047
|
+
c122c00 mrp: Add fallback for play_pause
|
|
3048
|
+
3ec1fb6 cq: Clean up resources when closing a device
|
|
3049
|
+
e22b2a8 dmap: Minor log improvements to DAAP
|
|
3050
|
+
6c41457 mrp: Fix TransationMessage definition
|
|
3051
|
+
ff7dbad mrp: Add more missing protobuf definitions
|
|
3052
|
+
2cd723a cq: Fix warnings from tests
|
|
3053
|
+
15aed64 atvscript: Add start log entry
|
|
3054
|
+
d0ca073 docs: Add apps section to FAQ
|
|
3055
|
+
5f7d141 knock: Support for continuously knocking ports
|
|
3056
|
+
95884fb udns: Send UDNS request every second
|
|
3057
|
+
751e691 udns: Port knock to wake sleeping devices
|
|
3058
|
+
b533935 net: Change timeout to 25 seconds
|
|
3059
|
+
32ce9ea mrp: Make connection listener into weakref
|
|
3060
|
+
5544cd8 cq: Various debug log improvements
|
|
3061
|
+
d451bfd scan: Fix type bug in scan_hosts
|
|
3062
|
+
8f56efb dmap: Add support for volume_up and volume_down
|
|
3063
|
+
4c7140b docs: Clarify when no PIN is displayed
|
|
3064
|
+
261b0b2 gha: Test on windows-latest
|
|
3065
|
+
991ea6f udns: Verify address in any local subnet
|
|
3066
|
+
2887a05 build(deps): bump pdoc3 from 0.8.0 to 0.8.1
|
|
3067
|
+
d79ba1a docs: Add stacktrace key to atvscript
|
|
3068
|
+
7fb6ed0 mrp: Change topmenu to go to main menu
|
|
3069
|
+
62b3e4e if: Use weak references for listeners
|
|
3070
|
+
8fc8d90 docs: Add type annotations for properties
|
|
3071
|
+
cb3b08c build(deps): bump pdoc3 from 0.7.5 to 0.8.0
|
|
3072
|
+
2be2a24 atvscript: Add debug flag
|
|
3073
|
+
91c1b98 atvscript: Make more robust to errors
|
|
3074
|
+
1b2262d mrp: Fix broken protobuf messages
|
|
3075
|
+
9faed04 if: Change close to not be a coroutine
|
|
3076
|
+
a821a2c airplay: Add support for streaming local file
|
|
3077
|
+
13cc9d3 mrp: Make Playing objects immutable
|
|
3078
|
+
e874ad2 docs: Minor updates for skip_forward/backward
|
|
3079
|
+
d16076a dmap: Implement skip_forward and skip_backward
|
|
3080
|
+
6786d89 mrp: Implement skip_forward and skip_backward
|
|
3081
|
+
9fe9f83 if: Add skip_forward and skip_backward
|
|
3082
|
+
b9fb540 cq: Add codespell for code and docs
|
|
3083
|
+
40d54ec cq: Improvements to tox
|
|
3084
|
+
89892bd atvscript: Add timestamp to output
|
|
3085
|
+
755c507 atvscript: Add device listener
|
|
3086
|
+
30c4f1f mrp: Add error codes
|
|
3087
|
+
32b6c55 mrp: Fix naming bug I introduced
|
|
3088
|
+
64f98fd mrp: Add error code to SendCommandResultMessage
|
|
3089
|
+
b82379c release: Adapt script to recent changes
|
|
3090
|
+
ca29655 release: Use current commit instead of master
|
|
3091
|
+
5ca58a7 atvscript: Flush output of each line
|
|
3092
|
+
feca6ea mrp: Handle artwork without identifier
|
|
3093
|
+
1486f62 atvscript: Treat empty strings as None
|
|
3094
|
+
b7f5d01 scan: Clean up pending service browsers
|
|
3095
|
+
ee5b828 Update issue templates
|
|
3096
|
+
37c26ee build(deps): bump mypy-protobuf from 1.19 to 1.20
|
|
3097
|
+
a32aaa4 docs: Exclude internal function
|
|
3098
|
+
768a449 bug: Make pairing interface consistent
|
|
3099
|
+
33775cd mrp: Add tvOS 13.4 build number
|
|
3100
|
+
44297ac docs: Update FAQ regarding AirPlay
|
|
3101
|
+
861fc9b fake_device: Add initial support for AirPlay
|
|
3102
|
+
5aeeed6 fake_device: Initial support for DMAP
|
|
3103
|
+
3953301 fake_device: Add protocol flag for MRP
|
|
3104
|
+
3ad6450 fake_device: Add demo mode in fake_device
|
|
3105
|
+
4212173 tests: Multi-client support for fake MRP service
|
|
3106
|
+
fe24dc4 tests: Use one fake device with multiple services
|
|
3107
|
+
72a79ba tests: Refactor fake devices
|
|
3108
|
+
8a0f057 tests: Move all fake devices to common directory
|
|
3109
|
+
e6b80dd tests: Begin extraction of fake AirPlay state
|
|
3110
|
+
67963d1 tests: Begin extraction of fake DMAP state
|
|
3111
|
+
33e4c2c tests: Begin extraction of fake MRP state
|
|
3112
|
+
84dec4a scripts: Add features to atvscript
|
|
3113
|
+
20a2027 scan: Remove non-breaking space
|
|
3114
|
+
af2c4a2 docs: Fix typo in link
|
|
3115
|
+
24087d8 gha: Remove push from trigger
|
|
3116
|
+
0dcc36f docs: Add edit link at bottom
|
|
3117
|
+
7abc2e3 docs: Various minor updates
|
|
3118
|
+
04c86fe tests: Break out state in MRP fake device
|
|
3119
|
+
f088bcd scripts: Add start of fake device script
|
|
3120
|
+
1f8480d tests: Clean up asserts in fake devices
|
|
3121
|
+
```
|
|
3122
|
+
|
|
3123
|
+
## 0.5.0 (2020-03-19)
|
|
3124
|
+
|
|
3125
|
+
**Changes:**
|
|
3126
|
+
|
|
3127
|
+
* Add power interface
|
|
3128
|
+
* Add device information interface
|
|
3129
|
+
* Add playing app interface
|
|
3130
|
+
* New scripts: atvscript and atvproxy
|
|
3131
|
+
* External interface now has type hints
|
|
3132
|
+
* Pure AirPlay devices are no longer returned by scan
|
|
3133
|
+
* Files have been moved around and the public interface
|
|
3134
|
+
is now well-defined
|
|
3135
|
+
* Documentation has moved to pyatv.dev
|
|
3136
|
+
|
|
3137
|
+
*Breaking Changes:*
|
|
3138
|
+
|
|
3139
|
+
* suspend and wakeup in the remote control interface are now
|
|
3140
|
+
deprecated. They did not work very well. Use the power interface
|
|
3141
|
+
instead.
|
|
3142
|
+
* Black is now used for linting and black does not support
|
|
3143
|
+
python 3.5, so support for python 3.5 has been dropped.
|
|
3144
|
+
* helpers.auto_connect is now a coroutine
|
|
3145
|
+
|
|
3146
|
+
**Notes:**
|
|
3147
|
+
|
|
3148
|
+
* Lots of updates to documentation and tests have been made
|
|
3149
|
+
* An API reference is now available at pyatv.dev
|
|
3150
|
+
|
|
3151
|
+
**All changes:**
|
|
3152
|
+
|
|
3153
|
+
```
|
|
3154
|
+
0cf6689 mrp: Support volume control features
|
|
3155
|
+
11b59f1 protobuf: Workaround for older versions
|
|
3156
|
+
9398768 docs: Minor fixes
|
|
3157
|
+
947bb04 tests: Make push updates test more robust
|
|
3158
|
+
40a45ea tests: Add initial tests for atvscript
|
|
3159
|
+
e3af8fc tests: Break out script test environment
|
|
3160
|
+
fae8525 tests: Fix broken sleep stub
|
|
3161
|
+
865483a scan: Wait for pending tasks
|
|
3162
|
+
365ae6d scripts: Add atvscript
|
|
3163
|
+
10af6e9 scripts: Add atvproxy
|
|
3164
|
+
b96098e scripts: Move atvremote
|
|
3165
|
+
0f8e5cd build(deps): bump codecov from 2.0.16 to 2.0.21
|
|
3166
|
+
a2143d5 build(deps): bump pytest from 5.3.5 to 5.4.1
|
|
3167
|
+
f45f879 test: Migrate from asynctest to pytest-asyncio
|
|
3168
|
+
b3fa547 docs: Add links to API reference
|
|
3169
|
+
f41cc11 docs: Add documentation for app support
|
|
3170
|
+
b91f5d5 mrp: Add app support
|
|
3171
|
+
0dbe373 if: Add interface for app
|
|
3172
|
+
bdc01f3 docs: Fix relative links
|
|
3173
|
+
5661c36 docs: Fix baseurl
|
|
3174
|
+
e3bcb7a docs: Change domain to pyatv.dev
|
|
3175
|
+
e8e364c Create CNAME
|
|
3176
|
+
3917092 build(deps): bump mypy from 0.761 to 0.770
|
|
3177
|
+
766b438 docs: Clean up and improve documentation
|
|
3178
|
+
3c99ae6 features: Add tests for features
|
|
3179
|
+
364ac39 atvremote: Add support for features
|
|
3180
|
+
6a97526 docs: Add documentation for features
|
|
3181
|
+
a63ed69 mrp: Add basic support for features
|
|
3182
|
+
1cee19c dmap: Add basic support for features
|
|
3183
|
+
a025cdd if: Add interface for supported features
|
|
3184
|
+
dbc75fa protobuf: Update messages
|
|
3185
|
+
86cecad docs: Add API documentation
|
|
3186
|
+
1912891 mrp: Subscribe to volume updates
|
|
3187
|
+
778257f cq: Add typing hints to public interface
|
|
3188
|
+
6bf74e7 cq: Handle invalid credentials
|
|
3189
|
+
5a6c8de cq: Remove need for ed25519
|
|
3190
|
+
b2b8e58 cq: Remove need for curve25519-donna
|
|
3191
|
+
18d3894 cq: Remove need for tlslite-ng
|
|
3192
|
+
cf3048d if: Add support for play_pause
|
|
3193
|
+
181adc9 cq: Move internal modules to support directory
|
|
3194
|
+
eaf5176 cq: Move from pylint to black for linting
|
|
3195
|
+
5e056f1 if: Deprecate suspend and wakeup
|
|
3196
|
+
08b0b37 scan: Do not include pure AirPlay devices
|
|
3197
|
+
```
|
|
3198
|
+
|
|
3199
|
+
## 0.4.1a1 (2020-03-02)
|
|
3200
|
+
|
|
3201
|
+
**Changes:**
|
|
3202
|
+
|
|
3203
|
+
* Add power interface
|
|
3204
|
+
* Add device information interface
|
|
3205
|
+
* Convert module (convert.py) is now public API
|
|
3206
|
+
|
|
3207
|
+
**Notes:**
|
|
3208
|
+
|
|
3209
|
+
* General improvements to protobuf handling (for developers)
|
|
3210
|
+
|
|
3211
|
+
**All changes:**
|
|
3212
|
+
|
|
3213
|
+
```
|
|
3214
|
+
e4f6590 devinfo: Minor clean ups
|
|
3215
|
+
d645d5a devinfo: Add device_info to atvremote
|
|
3216
|
+
33622b8 devinfo: Get version from osvers
|
|
3217
|
+
e3ad40b devinfo: Add documentation
|
|
3218
|
+
df8f6a1 devinfo: Clean up zeroconf properties
|
|
3219
|
+
908d2ea devinfo: Add support for device info
|
|
3220
|
+
8da7fd2 devinfo: Add helpers for extracting device info
|
|
3221
|
+
cb8d73a if: Add interface for device information
|
|
3222
|
+
d8624fd MRP Power State support (#458)
|
|
3223
|
+
1f97630 if: Tidy up convert module and make it public
|
|
3224
|
+
ce926b0 protobuf: Move pyatv imports in protobuf.py
|
|
3225
|
+
554d965 gha: Trigger on both push and pull_request
|
|
3226
|
+
a8ab245 gh: Run actions on pull requests
|
|
3227
|
+
024284b mrp: Add some protobuf definitions for voice
|
|
3228
|
+
ac3ae13 mrp: Wait for command responses
|
|
3229
|
+
c765dbe mrp: Download protoc and verify generated code
|
|
3230
|
+
070946f Bump codecov from 2.0.15 to 2.0.16
|
|
3231
|
+
```
|
|
3232
|
+
|
|
3233
|
+
## 0.4.0 (2020-02-20)
|
|
3234
|
+
|
|
3235
|
+
**Changes:**
|
|
3236
|
+
|
|
3237
|
+
The 0.4.0 release is here! It contains too many changes to list.
|
|
3238
|
+
Have a glance a pre-releases to get an idea of what it contains.
|
|
3239
|
+
|
|
3240
|
+
**All changes:**
|
|
3241
|
+
|
|
3242
|
+
```
|
|
3243
|
+
46a5399 docs: Add basic migration instructions
|
|
3244
|
+
f0789c1 Bump mypy-protobuf from 1.18 to 1.19
|
|
3245
|
+
```
|
|
3246
|
+
|
|
3247
|
+
## 0.4.0a16 (2020-02-18)
|
|
3248
|
+
|
|
3249
|
+
**Changes:**
|
|
3250
|
+
|
|
3251
|
+
* Fixes position in MRP
|
|
3252
|
+
|
|
3253
|
+
**All changes:**
|
|
3254
|
+
|
|
3255
|
+
```
|
|
3256
|
+
511e83e mrp: Fix calcuation of position
|
|
3257
|
+
1ba1030 scan: Remove non-breaking space in names
|
|
3258
|
+
```
|
|
3259
|
+
|
|
3260
|
+
## 0.4.0a15 (2020-02-15)
|
|
3261
|
+
|
|
3262
|
+
**Changes:**
|
|
3263
|
+
|
|
3264
|
+
* Fix minor state bug and implement seeking in MRP
|
|
3265
|
+
|
|
3266
|
+
**All changes:**
|
|
3267
|
+
|
|
3268
|
+
```
|
|
3269
|
+
9ab37c6 Change zeroconf warning to debug
|
|
3270
|
+
3155e84 mrp: Fix device state handling
|
|
3271
|
+
7b6aacb Bump mypy-protobuf from 1.17 to 1.18
|
|
3272
|
+
```
|
|
3273
|
+
|
|
3274
|
+
## 0.4.0a14 (2020-02-11)
|
|
3275
|
+
|
|
3276
|
+
**Changes:**
|
|
3277
|
+
|
|
3278
|
+
* Added some missing DMAP tags
|
|
3279
|
+
* Limit log print outs to not flood logs
|
|
3280
|
+
* Minor updates to protobuf definitions
|
|
3281
|
+
|
|
3282
|
+
**All changes:**
|
|
3283
|
+
|
|
3284
|
+
```
|
|
3285
|
+
5f46dac Consolidate protobuf scripts into one script
|
|
3286
|
+
0cfb9fc Ignore some unknown DMAP tags
|
|
3287
|
+
ad95943 Supress unknown DMAP media kind
|
|
3288
|
+
413eb32 Add some missing DMAP tags
|
|
3289
|
+
bfa5a45 New protobuf message and minor updates
|
|
3290
|
+
8ee3183 Limit log printouts for binary data att protobuf
|
|
3291
|
+
```
|
|
3292
|
+
|
|
3293
|
+
## 0.4.0a13 (2020-01-31)
|
|
3294
|
+
|
|
3295
|
+
**Changes:**
|
|
3296
|
+
|
|
3297
|
+
* Fixed bug where device state would be reported as "paused"
|
|
3298
|
+
when playing (yielding incorrect position as side-effect). This
|
|
3299
|
+
also fixes delta updates, where metadata would sometimes be
|
|
3300
|
+
lost.
|
|
3301
|
+
* Fixed bug where a crash would occur if a device had a = (0x3D)
|
|
3302
|
+
in its MAC-address
|
|
3303
|
+
* Added artwork_id to metadata that gives a unique id for artwork
|
|
3304
|
+
* Use cache for artwork that saves the latest four artworks
|
|
3305
|
+
* Identifiers in config is now prioritized in order
|
|
3306
|
+
MRP, DMAP and AirPlay
|
|
3307
|
+
* AirPlay is not handled specially in config now. If no AirPlay
|
|
3308
|
+
service is added, no service will be implicitly created.
|
|
3309
|
+
* Error handling (raised exceptions) are now more consistent
|
|
3310
|
+
when pairing
|
|
3311
|
+
|
|
3312
|
+
*Breaking changes*
|
|
3313
|
+
|
|
3314
|
+
* AirPlay interface has been renamed to "stream", e.g. use
|
|
3315
|
+
atv.stream.play_url instead of atv.airplay.play_url.
|
|
3316
|
+
|
|
3317
|
+
**Notes:**
|
|
3318
|
+
|
|
3319
|
+
* Running tests on Windows works again
|
|
3320
|
+
* This release contains a lot new test coverage and all "common"
|
|
3321
|
+
functional tests have been ported to MRP
|
|
3322
|
+
* Last documentation have been migrated to markdown
|
|
3323
|
+
* Moved from travis to GitHub actions
|
|
3324
|
+
|
|
3325
|
+
**All changes:**
|
|
3326
|
+
|
|
3327
|
+
```
|
|
3328
|
+
635ec68 Change last files from rst to markdown
|
|
3329
|
+
cff609d Remove AirPlay as special case
|
|
3330
|
+
63f230a Change AirPlay interface to Stream interface
|
|
3331
|
+
d11fba1 Add priority to identifiers in config
|
|
3332
|
+
17c685d Improve device state and delta updates in MRP
|
|
3333
|
+
bcb69de Use content id as hash in MRP
|
|
3334
|
+
7443118 Bump mypy-protobuf from 1.16 to 1.17
|
|
3335
|
+
c1c9dac Bump pytest from 5.3.4 to 5.3.5
|
|
3336
|
+
9aff539 Fixes to push updates, error handling and more
|
|
3337
|
+
dec3cb3 Minor clean ups and additional coverage
|
|
3338
|
+
a383b66 Add timestamp to debug log in atvremote
|
|
3339
|
+
be01d8a Add codecov upload to test workflow
|
|
3340
|
+
713694a Remove travis configuration
|
|
3341
|
+
0d06c5a Fix tests on Windows
|
|
3342
|
+
a95a3dc Run tests with GitHub actions
|
|
3343
|
+
11b8155 Add simple LRU cache for artwork
|
|
3344
|
+
bdf76e0 Fix bug i TXT handling in UDNS
|
|
3345
|
+
61cd843 Add tests for MRP authentication
|
|
3346
|
+
830448f Extract SRP server code in proxy
|
|
3347
|
+
cb0018a Unicast scanning does not work between networks
|
|
3348
|
+
bdfcac0 Use pytest-xdist in tox
|
|
3349
|
+
6b50f2a Migrate last common functional tests
|
|
3350
|
+
1e67b95 Move more functional tests to common
|
|
3351
|
+
b3b9225 Bump pytest from 5.3.3 to 5.3.4
|
|
3352
|
+
d49837d Re-raise OSError during AirPlay pairing on errors
|
|
3353
|
+
6ed3dee Bump pytest from 5.3.2 to 5.3.3
|
|
3354
|
+
```
|
|
3355
|
+
|
|
3356
|
+
## 0.4.0a12 (2020-01-19)
|
|
3357
|
+
|
|
3358
|
+
**Changes:**
|
|
3359
|
+
|
|
3360
|
+
* Minor bug fixes and improvements, see log below
|
|
3361
|
+
|
|
3362
|
+
**All changes:**
|
|
3363
|
+
|
|
3364
|
+
```
|
|
3365
|
+
0c68936 Some updates to the MRP proxy
|
|
3366
|
+
c25fe5d Add temporary test for credentials in atvremote
|
|
3367
|
+
1b9f395 Initial clean-up of pairing and auth exceptions
|
|
3368
|
+
72fc6f0 Release resources when closing in DMAP pairing
|
|
3369
|
+
f2d91b0 Avoid closing external aiohttp session in MRP
|
|
3370
|
+
05abc25 Bump typed-ast from 1.4.0 to 1.4.1
|
|
3371
|
+
e00c6a4 Set unicast bit in qtype field
|
|
3372
|
+
6a55c73 Bump pydocstyle from 5.0.1 to 5.0.2
|
|
3373
|
+
34cb7ff Handle NaN durations in MRP
|
|
3374
|
+
```
|
|
3375
|
+
|
|
3376
|
+
## 0.4.0a11 (2020-01-09)
|
|
3377
|
+
|
|
3378
|
+
**Changes:**
|
|
3379
|
+
|
|
3380
|
+
* Support for unicast scanning
|
|
3381
|
+
* Added wakeup command in remote control interface
|
|
3382
|
+
* Mostly quality release with minor bug fixes and more tests
|
|
3383
|
+
|
|
3384
|
+
**Notes:**
|
|
3385
|
+
|
|
3386
|
+
* Breaking changes in this release due to change to enums (6018ba2)
|
|
3387
|
+
|
|
3388
|
+
**All changes:**
|
|
3389
|
+
|
|
3390
|
+
```
|
|
3391
|
+
998e77c Minor bug fixes
|
|
3392
|
+
d0eacb0 Bump flake8 from 3.7.8 to 3.7.9
|
|
3393
|
+
a5c8d68 Bump mypy from 0.730 to 0.761
|
|
3394
|
+
a9aa1c4 Bump pydocstyle from 4.0.1 to 5.0.1
|
|
3395
|
+
98a72bb Support for scanning specific hosts
|
|
3396
|
+
a3560e5 Bump pytest-timeout from 1.3.3 to 1.3.4
|
|
3397
|
+
64fcd2e Bump mypy-protobuf from 1.15 to 1.16
|
|
3398
|
+
87f07ee Clean up tox and move from coveralls to codecov
|
|
3399
|
+
6496548 Refactor scanning code
|
|
3400
|
+
6018ba2 Change from constants to enums in const.py
|
|
3401
|
+
ca8ae64 Fix position in MRP when elapsed time is missing
|
|
3402
|
+
deb7374 Additional atvremote tests
|
|
3403
|
+
4a2b27e Add first "playing" functional test to MRP
|
|
3404
|
+
5001d18 Rename play_state to device_state
|
|
3405
|
+
1c5f3b3 Fix flaky home button test in MRP
|
|
3406
|
+
918e2be Add some additional tests for MRP
|
|
3407
|
+
2f1b32a Add wakeup command to RemoteControl
|
|
3408
|
+
72e31a9 Update artwork documentation
|
|
3409
|
+
8d0b4a6 Update feature table in documentation
|
|
3410
|
+
```
|
|
3411
|
+
|
|
3412
|
+
## 0.4.0a10 (2019-12-11)
|
|
3413
|
+
|
|
3414
|
+
**Changes:**
|
|
3415
|
+
|
|
3416
|
+
* Support for artwork in MRP
|
|
3417
|
+
* Retry attempts in AirPlay
|
|
3418
|
+
* Better test coverage
|
|
3419
|
+
|
|
3420
|
+
**All changes:**
|
|
3421
|
+
|
|
3422
|
+
```
|
|
3423
|
+
f5f775b Add retry attempts when AirPlay streaming fails
|
|
3424
|
+
680bdcf Initial support for artwork in MRP
|
|
3425
|
+
a9f0ca9 Add documentation for manual mode in atvremote
|
|
3426
|
+
5d89ec9 Add Investigation to issue templates
|
|
3427
|
+
107c691 Add initial smoke tests for atvremote
|
|
3428
|
+
e45deba Prepare for adding MRP tests
|
|
3429
|
+
4644158 Add AirPlay test for new credentials
|
|
3430
|
+
```
|
|
3431
|
+
|
|
3432
|
+
## 0.4.0a9 (2019-12-07)
|
|
3433
|
+
|
|
3434
|
+
**All changes:**
|
|
3435
|
+
|
|
3436
|
+
```
|
|
3437
|
+
c25da51 Fix MRP idle state
|
|
3438
|
+
```
|
|
3439
|
+
|
|
3440
|
+
## 0.4.0a8 (2019-12-06)
|
|
3441
|
+
|
|
3442
|
+
**Changes:**
|
|
3443
|
+
|
|
3444
|
+
* Leading zeros when pairing AirPlay works now
|
|
3445
|
+
|
|
3446
|
+
**All changes:**
|
|
3447
|
+
|
|
3448
|
+
```
|
|
3449
|
+
bf71b8f Include all changes from git in CHANGES.rst
|
|
3450
|
+
3086be5 Create release branch automatically
|
|
3451
|
+
4e8854a Support leading zeros for PINs in AirPlay
|
|
3452
|
+
```
|
|
3453
|
+
|
|
3454
|
+
## 0.4.0a7 (2019-12-05)
|
|
3455
|
+
|
|
3456
|
+
*Noteworthy:*
|
|
3457
|
+
|
|
3458
|
+
* Better handling of PINs with leading zeros in MRP
|
|
3459
|
+
* No re-use of ClientSession in AirPlay hopefully fixes dangling
|
|
3460
|
+
connections (i.e. spinng wheel after playback)
|
|
3461
|
+
* Documentation finalized
|
|
3462
|
+
|
|
3463
|
+
**All changes:**
|
|
3464
|
+
|
|
3465
|
+
```
|
|
3466
|
+
ed026dc Add initial script to make releases
|
|
3467
|
+
514272f Add interface to report device disconnects
|
|
3468
|
+
6607187 [fix] typo in getting_started.md
|
|
3469
|
+
703ccc7 Support PINs with leading zeros in MRP
|
|
3470
|
+
98a4d53 General clean-up of various parts
|
|
3471
|
+
69a22e0 [fix] Other typo in getting_started.md
|
|
3472
|
+
b538644 Do not re-use ClientSession for AirPlay
|
|
3473
|
+
aa8f629 Throw exception if MRP pairing fails
|
|
3474
|
+
652b039 Finalize documentation for 0.4.0
|
|
3475
|
+
1cd5508 Add initial text about concepts to documentation
|
|
3476
|
+
5b51db5 Add badge to LGTM
|
|
3477
|
+
```
|
|
3478
|
+
|
|
3479
|
+
## 0.4.0a6 (2019-11-26)
|
|
3480
|
+
|
|
3481
|
+
**All changes:**
|
|
3482
|
+
|
|
3483
|
+
```
|
|
3484
|
+
ffc4b40 Fix connection handling in MRP pairing
|
|
3485
|
+
```
|
|
3486
|
+
|
|
3487
|
+
## 0.4.0a5 (2019-11-26)
|
|
3488
|
+
|
|
3489
|
+
**All changes:**
|
|
3490
|
+
|
|
3491
|
+
```
|
|
3492
|
+
96f3b81 Update dmap implementation
|
|
3493
|
+
f81aeab Update __init__.py
|
|
3494
|
+
f133fb8 Implement asyncio.sleep
|
|
3495
|
+
9e9dfdc Add MRP functionality
|
|
3496
|
+
4765565 Make corrections to MRP flow
|
|
3497
|
+
2906e34 Return MRP credentials as string after pairing
|
|
3498
|
+
88bf241 Specify device with -n in atvremote
|
|
3499
|
+
```
|
|
3500
|
+
|
|
3501
|
+
## 0.4.0a4 (2019-11-20)
|
|
3502
|
+
|
|
3503
|
+
**Changes:**
|
|
3504
|
+
|
|
3505
|
+
```
|
|
3506
|
+
cfa0514 Fix push updater in MRP
|
|
3507
|
+
945a2d6 Add set_credentials to conf.AppleTV
|
|
3508
|
+
0373c5d Add "back off" exception to MRP
|
|
3509
|
+
32d4e58 Add service property to PairingHandler
|
|
3510
|
+
81d74cd fixed credentials reference to .service.credentials
|
|
3511
|
+
1c2029c Use pyatv as title on main page in documentation
|
|
3512
|
+
```
|
|
3513
|
+
|
|
3514
|
+
## 0.4.0a3 (2019-11-15)
|
|
3515
|
+
|
|
3516
|
+
Same as a2 (I never learn...).
|
|
3517
|
+
|
|
3518
|
+
## 0.4.0a2 (2019-11-15)
|
|
3519
|
+
|
|
3520
|
+
Third pre-release. Most stuff is in place now except for tests and documentation.
|
|
3521
|
+
|
|
3522
|
+
## 0.4.0a1 (2019-10-08)
|
|
3523
|
+
|
|
3524
|
+
Second pre-release which is basically the same as first, but I messed up and missed
|
|
3525
|
+
a few commits...
|
|
3526
|
+
|
|
3527
|
+
## 0.4.0a0 (2019-10-08)
|
|
3528
|
+
|
|
3529
|
+
First pre-release of 0.4, too many changes to list. But initial MRP support
|
|
3530
|
+
is the biggest addition.
|
|
3531
|
+
|
|
3532
|
+
## 0.3.9 (2017-12-12)
|
|
3533
|
+
|
|
3534
|
+
*Changes*
|
|
3535
|
+
|
|
3536
|
+
* Handle re-login properly in case of connection problems or if a device is
|
|
3537
|
+
restarted
|
|
3538
|
+
|
|
3539
|
+
## 0.3.8 (2017-11-17)
|
|
3540
|
+
|
|
3541
|
+
**Changes:**
|
|
3542
|
+
|
|
3543
|
+
* Revert some of the earlier AirPlay clean ups from 0.3.5 as that made playback
|
|
3544
|
+
less reliable
|
|
3545
|
+
* Use binary plist instead of text format in play_url to make AirPlay work with
|
|
3546
|
+
later versions of tvOS
|
|
3547
|
+
|
|
3548
|
+
## 0.3.6 (2017-10-01)
|
|
3549
|
+
|
|
3550
|
+
**Changes:**
|
|
3551
|
+
|
|
3552
|
+
* Fix string conversion for idle state (#120)
|
|
3553
|
+
|
|
3554
|
+
## 0.3.5 (2017-09-26)
|
|
3555
|
+
|
|
3556
|
+
**Changes:**
|
|
3557
|
+
|
|
3558
|
+
* Fix support for genre (#106)
|
|
3559
|
+
* Handle playstate idle/0 (#115)
|
|
3560
|
+
* Improve session handling in AirPlay (#118)
|
|
3561
|
+
|
|
3562
|
+
## 0.3.4 (2017-07-18)
|
|
3563
|
+
|
|
3564
|
+
**Changes:**
|
|
3565
|
+
|
|
3566
|
+
* Add long_description to get description on pypi
|
|
3567
|
+
|
|
3568
|
+
## 0.3.3 (2017-07-18)
|
|
3569
|
+
|
|
3570
|
+
**Changes:**
|
|
3571
|
+
|
|
3572
|
+
* Fixed broken device_id function (always generated same id)
|
|
3573
|
+
|
|
3574
|
+
*atvremote:*
|
|
3575
|
+
|
|
3576
|
+
* Fixed argument handling, e.g. when using play_url
|
|
3577
|
+
|
|
3578
|
+
## 0.3.2 (2017-06-20)
|
|
3579
|
+
|
|
3580
|
+
**Notes:**
|
|
3581
|
+
|
|
3582
|
+
* Same as 0.3.1 but fixed with pypi
|
|
3583
|
+
|
|
3584
|
+
## 0.3.1 (2017-06-20)
|
|
3585
|
+
|
|
3586
|
+
**Changes:**
|
|
3587
|
+
|
|
3588
|
+
* Add device_id
|
|
3589
|
+
* Remove developer commands
|
|
3590
|
+
|
|
3591
|
+
## 0.3.0 (2017-06-19)
|
|
3592
|
+
|
|
3593
|
+
**Changes:**
|
|
3594
|
+
|
|
3595
|
+
* Support AirPlay device authentication
|
|
3596
|
+
* Support arrow keys (left, right, up, down)
|
|
3597
|
+
* Support scanning for Apple TVs with home sharing disabled
|
|
3598
|
+
* Support for shuffle and repeat modes
|
|
3599
|
+
* Support for "stop" button
|
|
3600
|
+
* Handle additional media kinds
|
|
3601
|
+
* New "hash" function in Playing API
|
|
3602
|
+
* Support python 3.6
|
|
3603
|
+
* Bump aiohttp to 1.3.5 and support 2.0.0+
|
|
3604
|
+
|
|
3605
|
+
*atvremote:*
|
|
3606
|
+
|
|
3607
|
+
* Multiple commands can be given to atvremote
|
|
3608
|
+
* Doing "atvremote commands" requires no device and is a lot faster
|
|
3609
|
+
* All commands now listed with "atvremote commands"
|
|
3610
|
+
* New "help" command in atvremote
|
|
3611
|
+
* Fix atvremote exit codes
|
|
3612
|
+
|
|
3613
|
+
**Notes:**
|
|
3614
|
+
|
|
3615
|
+
* play_url has moved to the new airplay module and no longer
|
|
3616
|
+
accepts start position as required argument. This is a
|
|
3617
|
+
breaking change!
|
|
3618
|
+
|
|
3619
|
+
*Other:*
|
|
3620
|
+
|
|
3621
|
+
* Upgrade test tools (pylint, flake, etc.)
|
|
3622
|
+
* Added documentation to readthedocs
|
|
3623
|
+
|
|
3624
|
+
## 0.2.2 (2017-03-04)
|
|
3625
|
+
|
|
3626
|
+
**Changes:**
|
|
3627
|
+
|
|
3628
|
+
* Allow custom pairing guid when pairing
|
|
3629
|
+
|
|
3630
|
+
**Notes:**
|
|
3631
|
+
|
|
3632
|
+
* By default, a random pairing guid is now generated when calling
|
|
3633
|
+
pyatv.pair_with_apple_tv.
|
|
3634
|
+
|
|
3635
|
+
## 0.2.1 (2017-02-28)
|
|
3636
|
+
|
|
3637
|
+
**Changes:**
|
|
3638
|
+
|
|
3639
|
+
* Always trigger one push update when starting
|
|
3640
|
+
|
|
3641
|
+
## 0.2.0 (2017-02-23)
|
|
3642
|
+
|
|
3643
|
+
**Changes:**
|
|
3644
|
+
|
|
3645
|
+
* Support for push updates
|
|
3646
|
+
* Fast auto discovery for single device
|
|
3647
|
+
* Nicer output in "atvremote playing"
|
|
3648
|
+
* Pairing improvements
|
|
3649
|
+
* Unpin external dependencies
|
|
3650
|
+
|
|
3651
|
+
*Other:*
|
|
3652
|
+
|
|
3653
|
+
* Easier version management (internal)
|
|
3654
|
+
* Code quality improvements (quantifiedcode)
|
|
3655
|
+
|
|
3656
|
+
## 0.1.4 (2017-02-11)
|
|
3657
|
+
|
|
3658
|
+
**Changes:**
|
|
3659
|
+
|
|
3660
|
+
* Added new function: artwork_url
|
|
3661
|
+
* aiohttp bumped to 1.3.1
|
|
3662
|
+
|
|
3663
|
+
## 0.1.3 (2017-02-09)
|
|
3664
|
+
|
|
3665
|
+
**Changes:**
|
|
3666
|
+
|
|
3667
|
+
* Made it possible to pass a custom ClientSession
|
|
3668
|
+
|
|
3669
|
+
**Notes:**
|
|
3670
|
+
|
|
3671
|
+
* Renamed topmenu to top_menu which is a breaking change
|
|
3672
|
+
|
|
3673
|
+
## 0.1.2 (2017-02-09)
|
|
3674
|
+
|
|
3675
|
+
**Changes:**
|
|
3676
|
+
|
|
3677
|
+
* aiohttp bumped to 1.3.0
|
|
3678
|
+
* Fix a potential request leak on error
|
|
3679
|
+
|
|
3680
|
+
## 0.1.1 (2017-02-07)
|
|
3681
|
+
|
|
3682
|
+
This is the same as 0.1.0 but actually contains everything stated
|
|
3683
|
+
in the changes.
|
|
3684
|
+
|
|
3685
|
+
## 0.1.0 (2017-02-07)
|
|
3686
|
+
|
|
3687
|
+
**Changes:**
|
|
3688
|
+
|
|
3689
|
+
* Pairing
|
|
3690
|
+
* Support both HSGID and pairing-guid
|
|
3691
|
+
* Play media by specifying a URL (via AirPlay)
|
|
3692
|
+
* atvremote artwork will now save to file (artwork.png)
|
|
3693
|
+
* Zeroconf bumped to 0.18.0
|
|
3694
|
+
|
|
3695
|
+
**Notes:**
|
|
3696
|
+
|
|
3697
|
+
* asyncio loop is now passed to pyatv.scan_for_apple_tvs which breaks
|
|
3698
|
+
previous API
|
|
3699
|
+
|
|
3700
|
+
*Other:*
|
|
3701
|
+
|
|
3702
|
+
* Automatic builds with travis
|
|
3703
|
+
* Code coverage reports with coveralls
|
|
3704
|
+
|
|
3705
|
+
## 0.0.1 (2017-02-01)
|
|
3706
|
+
|
|
3707
|
+
* Initial version
|
|
3708
|
+
|