Merge branch 'unstable' into Release164

This commit is contained in:
1hitsong 2023-03-29 20:18:55 -04:00
commit 4dbd59c173
13 changed files with 11750 additions and 11681 deletions

View File

@ -9,7 +9,7 @@ jobs:
permissions:
pull-requests: write
steps:
- uses: actions/stale@6f05e4244c9a0b2ed3401882b05d701dd0a7289b # v7
- uses: actions/stale@1160a2240286f5da8ec72b1c0816ce2481aabf84 # v8
with:
days-before-issue-stale: -1
days-before-issue-close: -1

View File

@ -12,7 +12,7 @@ jobs:
dev:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@24cb9080177205b6e8c946b17badbe402adc938f # v3
- uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3
- uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
with:
node-version: "lts/*"

View File

@ -13,7 +13,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout master (the latest release)
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3
with:
ref: master
- name: Install jq to parse json
@ -33,7 +33,7 @@ jobs:
- name: Save old Makefile version
run: awk 'BEGIN { FS=" = " } /^VERSION/ { print "oldMakeVersion="$2; }' Makefile >> $GITHUB_ENV
- name: Checkout PR branch
uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3
- name: Save new package.json version
run: echo "newPackVersion=$(jq -r ".version" package.json)" >> $GITHUB_ENV
- name: package.json version must be updated
@ -61,7 +61,7 @@ jobs:
prod:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@ac593985615ec2ede58e132d2e21d2b1cbd6127c # v3
- uses: actions/checkout@8f4b7f84864484a7bf31766abe9204da3cbe65b3 # v3
- uses: actions/setup-node@64ed1c7eab4cce3362f8c340dee64e5eaeef8f7c # v3
with:
node-version: "lts/*"

View File

@ -14,7 +14,7 @@
<img src="https://translate.jellyfin.org/widgets/jellyfin/-/jellyfin-roku/svg-badge.svg" alt="Translation status" />
</a>
<br/>
<a href="https://matrix.to/#/+jellyfin:matrix.org">
<a href="https://matrix.to/#/#jellyfin-dev-roku:matrix.org">
<img alt="Chat on Matrix" src="https://img.shields.io/matrix/jellyfin:matrix.org.svg?logo=matrix"/>
</a>
<a href="https://www.reddit.com/r/jellyfin">
@ -26,7 +26,7 @@ The Jellyfin Roku App is a Jellyfin client for Roku Devices. This is still very
## Getting Started
The channel is available on the [Roku Channel Store](https://my.roku.com/add/jellyfin).
The channel is available on the [Roku Channel Store](https://channelstore.roku.com/details/cc5e559d08d9ec87c5f30dcebdeebc12/jellyfin).
## Getting Involved<a name="get_involved"></a>

View File

@ -70,6 +70,9 @@ sub LoadItems_AddVideoContent(video, mediaSourceId, audio_stream_idx = 1, subtit
end if
end if
' For phase 1 of playlist support, we don't support intros yet
showIntro = false
' Don't attempt to play an intro for an intro video
if showIntro
' Do not play intros when resuming playback

View File

@ -30,8 +30,12 @@ sub init()
m.top.observeField("state", "onState")
m.top.observeField("content", "onContentChange")
m.top.observeField("allowCaptions", "onAllowCaptionsChange")
end sub
sub onAllowCaptionsChange()
if not m.top.allowCaptions then return
'Captions
m.captionGroup = m.top.findNode("captionGroup")
m.captionGroup.createchildren(9, "LayoutGroup")
m.captionTask = createObject("roSGNode", "captionTask")
@ -129,7 +133,9 @@ end sub
' When Video Player state changes
sub onPositionChanged()
m.captionTask.currentPos = Int(m.top.position * 1000)
if isValid(m.captionTask)
m.captionTask.currentPos = Int(m.top.position * 1000)
end if
' Check if dialog is open
m.dialog = m.top.getScene().findNode("dialogBackground")
if not isValid(m.dialog)
@ -140,7 +146,9 @@ end sub
'
' When Video Player state changes
sub onState(msg)
m.captionTask.playerState = m.top.state + m.top.globalCaptionMode
if isValid(m.captionTask)
m.captionTask.playerState = m.top.state + m.top.globalCaptionMode
end if
' When buffering, start timer to monitor buffering process
if m.top.state = "buffering" and m.bufferCheckTimer <> invalid

View File

@ -16,6 +16,7 @@
<field id="transcodeAvailable" type="boolean" value="false" />
<field id="retryWithTranscoding" type="boolean" value="false" />
<field id="isTranscoded" type="boolean" />
<field id="allowCaptions" type="boolean" value="false" />
<field id="transcodeReasons" type="array" />
<field id="videoId" type="string" />

View File

@ -28,13 +28,12 @@ end sub
sub setFont()
fs = CreateObject("roFileSystem")
fontlist = fs.Find("tmp:/", "font")
if fontlist.count() > 0
m.font.uri = "tmp:/" + fontlist[0]
if fs.Exists("tmp:/font")
m.font.uri = "tmp:/font"
m.font.size = m.fontSize
else
reg = CreateObject("roFontRegistry")
m.font = reg.GetDefaultFont(m.fontSize, false, false)
m.font = "font:LargeSystemFont"
end if
end sub
@ -56,6 +55,7 @@ function newlabel(txt)
label = CreateObject("roSGNode", "Label")
label.text = txt
label.font = m.font
label.font.size = m.fontSize
label.color = m.textColor
label.opacity = m.textOpac
return label
@ -89,7 +89,7 @@ function newRect(lg)
end function
sub updateCaption ()
sub updateCaption()
m.top.currentCaption = []
if LCase(m.top.playerState) = "playingon"
m.top.currentPos = m.top.currentPos + 100

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -542,6 +542,9 @@ function CreateVideoPlayerGroup(video_id, mediaSourceId = invalid, audio_stream_
video = VideoPlayer(video_id, mediaSourceId, audio_stream_idx, defaultSubtitleTrackFromVid(video_id), forceTranscoding, showIntro, allowResumeDialog)
if video = invalid then return invalid
video.allowCaptions = true
if video.errorMsg = "introaborted" then return video
video.observeField("selectSubtitlePressed", m.port)
video.observeField("selectPlaybackInfoPressed", m.port)

View File

@ -332,11 +332,15 @@ function PlayIntroVideo(video_id, audio_stream_idx) as boolean
if lcase(introVideos.items[0].name) = "rick roll'd" then return true
introVideo = VideoPlayer(introVideos.items[0].id, introVideos.items[0].id, audio_stream_idx, defaultSubtitleTrackFromVid(video_id), false, false)
if isValid(introVideo)
introVideo.allowCaptions = false
end if
port = CreateObject("roMessagePort")
introVideo.observeField("state", port)
m.global.sceneManager.callFunc("pushScene", introVideo)
introPlaying = true
stopLoadingSpinner()
while introPlaying
msg = wait(0, port)