Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Added delaying/advancing subtitles with voice #258

Open
wants to merge 6 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 3 additions & 1 deletion .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,9 @@ MUSICVIDEOGENRES
ADDONS

kodi-alexa/
run.sh

zappa_settings.json
templates.yaml

*~
*.sh
2 changes: 2 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -102,6 +102,8 @@ Most everything you can do with a remote or keyboard is supported in the skill,
- "What's playing?" functionality for music, movies, and shows
- Report time remaining on current media and when it will end
- Cycle through audio and subtitle streams
- Download subtitles
- Delay/advance subtitles
- Search for something in your library (**requires script.globalsearch addon**)
- Execute addons
- Shutdown/reboot/sleep/hibernate system
Expand Down
50 changes: 50 additions & 0 deletions alexa.py
Original file line number Diff line number Diff line change
Expand Up @@ -1241,6 +1241,56 @@ def alexa_subtitles_download(kodi):
return statement(card_title).simple_card(card_title, '')


# Handle the SubtitlesDelay intent.
@ask.intent('SubtitlesDelay')
@preflight_check
def alexa_subtitles_delay(kodi):
card_title = render_template('subtitles_delay').encode('utf-8')
log.info(card_title)

item = kodi.DelaySubtitles(0.5)
return statement('').simple_card(card_title, '')


# Handle the SubtitlesAdvance intent.
@ask.intent('SubtitlesAdvance')
@preflight_check
def alexa_subtitles_advance(kodi):
card_title = render_template('subtitles_advance').encode('utf-8')
log.info(card_title)

item = kodi.AdvanceSubtitles(0.5)
return statement('').simple_card(card_title, '')


# Handle the SubtitlesDelayBy intent.
@ask.intent('SubtitlesDelayBy')
@preflight_check
def alexa_subtitles_delay_by(kodi, Delay):
if float(Delay) == 1:
card_title = render_template('subtitles_delay_by1').encode('utf-8')
else:
card_title = render_template('subtitles_delay_by', num=Delay).encode('utf-8')
log.info(card_title)

item = kodi.DelaySubtitles(float(Delay))
return statement('').simple_card(card_title, '')


# Handle the SubtitlesAdvanceBy intent.
@ask.intent('SubtitlesAdvanceBy')
@preflight_check
def alexa_subtitles_advance_by(kodi, Advance):
if float(Advance) == 1:
card_title = render_template('subtitles_advance_by1').encode('utf-8')
else:
card_title = render_template('subtitles_advance_by', num=Advance).encode('utf-8')
log.info(card_title)

item = kodi.AdvanceSubtitles(float(Advance))
return statement('').simple_card(card_title, '')


# Handle the AudioStreamNext intent.
@ask.intent('AudioStreamNext')
@preflight_check
Expand Down
24 changes: 24 additions & 0 deletions speech_assets/IntentSchema.json
Original file line number Diff line number Diff line change
Expand Up @@ -670,6 +670,30 @@
{
"intent": "SubtitlesDownload"
},
{
"intent": "SubtitlesDelay"
},
{
"intent": "SubtitlesAdvance"
},
{
"intent": "SubtitlesDelayBy",
"slots": [
{
"name": "Delay",
"type": "AMAZON.NUMBER"
}
]
},
{
"intent": "SubtitlesAdvanceBy",
"slots": [
{
"name": "Advance",
"type": "AMAZON.NUMBER"
}
]
},
{
"intent": "AudioStreamNext"
},
Expand Down
10 changes: 10 additions & 0 deletions speech_assets/SampleUtterances.en.txt
Original file line number Diff line number Diff line change
Expand Up @@ -1065,6 +1065,16 @@ SubtitlesOn enable subtitles
SubtitlesOn turn on subtitles
SubtitlesPrevious previous subtitle language
SubtitlesPrevious previous subtitles
SubtitlesDelay delay subtitles
SubtitlesAdvance advance subtitles
SubtitlesAdvanceBy advance subtitles by {Advance}
SubtitlesAdvanceBy advance subtitles by {Advance} seconds
SubtitlesAdvanceBy advance subtitles {Advance}
SubtitlesAdvanceBy advance subtitles {Advance} seconds
SubtitlesDelayBy delay subtitles by {Delay}
SubtitlesDelayBy delay subtitles by {Delay} seconds
SubtitlesDelayBy delay subtitles {Delay}
SubtitlesDelayBy delay subtitles {Delay} seconds
Suspend go to sleep
Suspend put system to sleep
Suspend sleep
Expand Down
14 changes: 13 additions & 1 deletion templates.en.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -190,7 +190,7 @@ are_you_sure_hibernate: "Are you sure you want to hibernate?"

are_you_sure_suspend: "Are you sure you want to suspend?"

welcome: "Welcome to Kodi."
welcome: "Here's Kodi."

nothing_currently_playing: "Kodi isn't playing any music right now."

Expand Down Expand Up @@ -311,6 +311,18 @@ subtitles_enable: "Enabling subtitles"

subtitles_download: "Downloading subtitles"

subtitles_delay: "Delaying subtitles by half a second"

subtitles_delay_by1: "Delaying subtitles by a second"

subtitles_delay_by: "Delaying subtitles by {{ num }} seconds"

subtitles_advance: "Advancing subtitles by half a second"

subtitles_advance_by1: "Advancing subtitles by a second"

subtitles_advance_by: "Advancing subtitles by {{ num }} seconds"

toggle_audio_passthrough: "Toggling audio passthrough"

adjusting_volume: "Adjusting volume"
Expand Down
4 changes: 4 additions & 0 deletions utterances.en.txt
Original file line number Diff line number Diff line change
Expand Up @@ -72,6 +72,10 @@ SubtitlesOff (disable/turn off) subtitles
SubtitlesNext (next/switch) (subtitles/subtitle language)
SubtitlesPrevious previous (subtitles/subtitle language)
SubtitlesDownload download subtitles
SubtitlesDelay delay subtitles
SubtitlesAdvance advance subtitles
SubtitlesDelayBy delay subtitles (/by) {Delay} (/seconds)
SubtitlesAdvanceBy advance subtitles (/by) {Advance} (/seconds)

AudioStreamNext (next/switch) audio (/stream)
AudioStreamNext (next/switch) (/audio) language
Expand Down
16 changes: 16 additions & 0 deletions whatisplaying.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
import re
import string
import random
import os
import time
from kodi_voice import KodiConfigParser, Kodi

config_file = os.path.join(os.path.dirname(__file__), "kodi.config")
config = KodiConfigParser(config_file)

kodi = Kodi(config)

print kodi.GetActivePlayItem(),"\n"
print kodi.GetActivePlayProperties(),"\n"
#time.sleep(5)