Change branding from viv to Jellyfin

This commit is contained in:
1hitsong 2025-03-22 12:02:59 -04:00
parent 8c00fa5661
commit 45db36d800
27 changed files with 53 additions and 54 deletions

View file

@ -1,5 +1,5 @@
# Privacy Policy
viv does not collect personal information outside of that needed to log in to the specified Jellyfin server. We simply pass this data along to the Jellyfin server. We do not collect, broadcast, nor send this data anywhere but to the Jellyfin server you specify.
Jellyfin does not collect personal information outside of that needed to log in to the specified Jellyfin server. We simply pass this data along to the Jellyfin server. We do not collect, broadcast, nor send this data anywhere but to the Jellyfin server you specify.
Read Jellyfin's Privacy Policy at <https://www.termsfeed.com/privacy-policy/6b05fa49bbfc1bb1aeda960c9e8d2460>

View file

@ -1,15 +1,16 @@
<p align="center"><img src="https://raw.githubusercontent.com/1hitsong/viv/master/images/channel-poster_fhd.jpg" style="border: 1px solid #eee; border-radius: 4px" /></p>
<p align="center"><img src="https://raw.githubusercontent.com/jellyfin/jellyfin-roku/master/images/channel-poster_fhd.png" style="border: 1px solid #eee; border-radius: 4px" /></p>
<h1 align="center">viv</h1>
<p align="center">An unofficial <strong>Jellyfin</strong> roku client.</p>
<h1 align="center">Jellyfin Roku</h1>
<p align="center">An official <strong>Jellyfin</strong> roku client.</p>
<p align="center">Navigate your Jellyfin library and watch, listen, and view your media.</p>
<p align="center">Cool features include song lyric support, trickplay images, media segment support, downloading subtitles direct from your Roku, and more.</p>
<p align="center"><a href="https://channelstore.roku.com/details/80d6198927c29fe1a562d4400a712c63/viv">Roku Channel Store</a></p>
<h2 align="center">Part of the <a href="https://jellyfin.org">Jellyfin Project</a></h2>
<p align="center"><a href="https://channelstore.roku.com/en-ca/details/4d9e526a7d972d4decf98ea6a84000f7:c617f4902629cc0bd1e1411db1775cf3/jellyfin">Roku Channel Store</a></p>
<h2>Screenshots</h2>
<p align="center">
<a href="https://raw.githubusercontent.com/1hitsong/viv/master/screenshots/home.jpg" title="Home Screen"><img src="https://raw.githubusercontent.com/1hitsong/viv/master/screenshots/home.jpg" style="border: 1px solid #eee;" width="300" alt="Home Screen" /></a>
<a href="https://raw.githubusercontent.com/1hitsong/viv/master/screenshots/movieDetails.jpg" title="Movie Details"><img src="https://raw.githubusercontent.com/1hitsong/viv/master/screenshots/movieDetails.jpg" style="border: 1px solid #eee;" width="300" alt="Movie Details" /></a>
<a href="https://raw.githubusercontent.com/1hitsong/viv/master/screenshots/musicPlayback.jpg" title="Music Playback"><img src="https://raw.githubusercontent.com/1hitsong/viv/master/screenshots/musicPlayback.jpg" style="border: 1px solid #eee;" width="300" alt="Music Playback" /></a>
<a href="https://raw.githubusercontent.com/1hitsong/viv/master/screenshots/tvLibrary.jpg" title="TV Show Library"><img src="https://raw.githubusercontent.com/1hitsong/viv/master/screenshots/tvLibrary.jpg" style="border: 1px solid #eee;" width="300" alt="TV Show Library" /></a>
<a href="https://raw.githubusercontent.com/jellyfin/jellyfin-roku/master/screenshots/home.jpg" title="Home Screen"><img src="https://raw.githubusercontent.com/jellyfin/jellyfin-roku/master/screenshots/home.jpg" style="border: 1px solid #eee;" width="300" alt="Home Screen" /></a>
<a href="https://raw.githubusercontent.com/jellyfin/jellyfin-roku/master/screenshots/movieDetails.jpg" title="Movie Details"><img src="https://raw.githubusercontent.com/jellyfin/jellyfin-roku/master/screenshots/movieDetails.jpg" style="border: 1px solid #eee;" width="300" alt="Movie Details" /></a>
<a href="https://raw.githubusercontent.com/jellyfin/jellyfin-roku/master/screenshots/musicPlayback.jpg" title="Music Playback"><img src="https://raw.githubusercontent.com/jellyfin/jellyfin-roku/master/screenshots/musicPlayback.jpg" style="border: 1px solid #eee;" width="300" alt="Music Playback" /></a>
<a href="https://raw.githubusercontent.com/jellyfin/jellyfin-roku/master/screenshots/tvLibrary.jpg" title="TV Show Library"><img src="https://raw.githubusercontent.com/jellyfin/jellyfin-roku/master/screenshots/tvLibrary.jpg" style="border: 1px solid #eee;" width="300" alt="TV Show Library" /></a>
</p>

View file

@ -40,7 +40,7 @@ sub init()
if isValid(m.version)
m.version.drawingStyles = drawingStyles
m.version.text = `viv ${m.global.app.version} - What's New?`
m.version.text = `jellyfin ${m.global.app.version} - What's New?`
end if
m.boolSetting = m.top.findNode("boolSetting")
@ -320,7 +320,7 @@ function onKeyEvent(key as string, press as boolean) as boolean
if isStringEqual(key, KeyCode.DOWN)
if m.settingsMenu.hasFocus()
m.version.setfocus(true)
m.version.text = `viv ${m.global.app.version} - <b>What's New?</b>`
m.version.text = `jellyfin ${m.global.app.version} - <b>What's New?</b>`
return true
end if
end if
@ -328,7 +328,7 @@ function onKeyEvent(key as string, press as boolean) as boolean
if m.version.hasFocus()
if isStringEqual(key, KeyCode.UP)
m.settingsMenu.setfocus(true)
m.version.text = `viv ${m.global.app.version} - What's New?`
m.version.text = `jellyfin ${m.global.app.version} - What's New?`
return true
end if

View file

@ -16,7 +16,6 @@ repo
Repo
dev
Dev
viv
assignees
HTTPS
dropdown

Binary file not shown.

Before

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 59 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 88 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

BIN
images/splash-screen_hd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 38 KiB

BIN
images/splash-screen_sd.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

View file

@ -1,21 +1,21 @@
## Channel Details
title=viv
major_version=1
minor_version=1
build_version=7
title=jellyfin
major_version=3
minor_version=0
build_version=0
### Main Menu Icons / Channel Poster Artwork
mm_icon_focus_fhd=pkg:/images/channel-poster_fhd_dev.jpg
mm_icon_focus_hd=pkg:/images/channel-poster_hd_dev.jpg
mm_icon_focus_sd=pkg:/images/channel-poster_sd_dev.jpg
mm_icon_focus_fhd=pkg:/images/channel-poster_fhd.png
mm_icon_focus_hd=pkg:/images/channel-poster_hd.png
mm_icon_focus_sd=pkg:/images/channel-poster_sd.png
### Splash Screen + Loading Screen Artwork
splash_screen_fhd=pkg:/images/splash-screen_fhd.jpg
splash_screen_hd=pkg:/images/splash-screen_hd.jpg
splash_screen_sd=pkg:/images/splash-screen_sd.jpg
splash_screen_fhd=pkg:/images/splash-screen_fhd.png
splash_screen_hd=pkg:/images/splash-screen_hd.png
splash_screen_sd=pkg:/images/splash-screen_sd.png
splash_min_time=1500

8
package-lock.json generated
View file

@ -1,12 +1,12 @@
{
"name": "viv",
"version": "1.1.7",
"name": "jellyfin",
"version": "3.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "viv",
"version": "1.1.7",
"name": "jellyfin",
"version": "3.0.0",
"hasInstallScript": true,
"license": "GPL-2.0",
"dependencies": {

View file

@ -1,8 +1,8 @@
{
"name": "viv",
"name": "jellyfin",
"type": "module",
"version": "1.1.7",
"description": "Unofficial Roku app for Jellyfin media server",
"version": "3.0.0",
"description": "Official Roku app for Jellyfin media server",
"dependencies": {
"@rokucommunity/bslib": "0.1.1",
"brighterscript-formatter": "1.7.12"
@ -23,19 +23,18 @@
},
"repository": {
"type": "git",
"url": "https://github.com/1hitsong/viv.git"
"url": "https://github.com/jellyfin/jellyfin-roku.git"
},
"keywords": [
"jellyfin",
"roku",
"viv",
"music",
"movies"
],
"author": "1hitsong",
"author": "Jellyfin",
"license": "GPL-2.0",
"bugs": {
"url": "https://github.com/1hitsong/viv"
"url": "https://github.com/jellyfin/jellyfin-roku"
},
"homepage": "https://github.com/1hitsong/viv"
"homepage": "https://github.com/jellyfin/jellyfin-roku"
}

View file

@ -11,7 +11,7 @@
"children": [
{
"title": "Remember Me?",
"description": "Remember the currently logged in user and try to log them in again next time you start viv.",
"description": "Remember the currently logged in user and try to log them in again next time you start Jellyfin.",
"settingName": "global.rememberme",
"type": "bool",
"default": "true"
@ -149,11 +149,11 @@
},
{
"title": "Media Segment Actions",
"description": "Settings relating to how viv should handle media segments.",
"description": "Settings relating to how Jellyfin should handle media segments.",
"children": [
{
"title": "Commercial Segments",
"description": "What action should viv take for commercial segments? ",
"description": "What action should Jellyfin take for commercial segments? ",
"settingName": "playback.mediasegments.commercial",
"type": "radio",
"default": "none",
@ -174,7 +174,7 @@
},
{
"title": "Intro Segments",
"description": "What action should viv take for intro segments? ",
"description": "What action should Jellyfin take for intro segments? ",
"settingName": "playback.mediasegments.intro",
"type": "radio",
"default": "asktoskip",
@ -195,7 +195,7 @@
},
{
"title": "Outro Segments",
"description": "What action should viv take for outro segments? ",
"description": "What action should Jellyfin take for outro segments? ",
"settingName": "playback.mediasegments.outro",
"type": "radio",
"default": "asktoskip",
@ -216,7 +216,7 @@
},
{
"title": "Preview Segments",
"description": "What action should viv take for preview segments? ",
"description": "What action should Jellyfin take for preview segments? ",
"settingName": "playback.mediasegments.preview",
"type": "radio",
"default": "none",
@ -237,7 +237,7 @@
},
{
"title": "Recap Segments",
"description": "What action should viv take for recap segments? ",
"description": "What action should Jellyfin take for recap segments? ",
"settingName": "playback.mediasegments.recap",
"type": "radio",
"default": "none",
@ -374,7 +374,7 @@
},
{
"title": "Hide Clock",
"description": "Hide all clocks in viv. Viv will need to be closed and reopened for changes to take effect.",
"description": "Hide all clocks in Jellyfin. Jellyfin will need to be closed and reopened for changes to take effect.",
"settingName": "ui.design.hideclock",
"type": "bool",
"default": "false"
@ -395,21 +395,21 @@
},
{
"title": "Show What's New Popup",
"description": "Show What's New popup when viv is updated to a new version.",
"description": "Show What's New popup when Jellyfin is updated to a new version.",
"settingName": "load.allowwhatsnew",
"type": "bool",
"default": "true"
},
{
"title": "Use Splashscreen as Home Background",
"description": "Use generated splashscreen image as viv's home background. Viv will need to be closed and reopened for change to take effect.",
"description": "Use generated splashscreen image as Jellyfin's home background. Jellyfin will need to be closed and reopened for change to take effect.",
"settingName": "ui.home.splashBackground",
"type": "bool",
"default": "false"
},
{
"title": "Use Web Client's Home Section Arrangement",
"description": "Make the arrangement of the Roku home view sections match the web client's home screen. Viv will need to be closed and reopened for change to take effect.",
"description": "Make the arrangement of the Roku home view sections match the web client's home screen. Jellyfin will need to be closed and reopened for change to take effect.",
"settingName": "ui.home.useWebSectionArrangement",
"type": "bool",
"default": "true"

View file

@ -203,7 +203,7 @@ end function
' Returns a string containing the "Authorization" header payload
function buildAuthHeader() as string
QUOTE = Chr(34)
auth = "MediaBrowser" + " Client=" + QUOTE + "viv" + QUOTE
auth = "MediaBrowser" + " Client=" + QUOTE + "Jellyfin Roku" + QUOTE
auth = auth + ", Device=" + QUOTE + m.global.device.name + " (" + m.global.device.model + ")" + QUOTE
auth = auth + ", Version=" + QUOTE + m.global.app.version + QUOTE

View file

@ -50,19 +50,19 @@ function getRegistrySections() as object
return registry.GetSectionList()
end function
' "Viv" registry accessors for the default global settings
' "Jellyfin" registry accessors for the default global settings
function get_setting(key, defaultValue = invalid)
value = registry_read(key, "viv")
value = registry_read(key, "Jellyfin")
if value = invalid then return defaultValue
return value
end function
sub set_setting(key, value)
registry_write(key, value, "viv")
registry_write(key, value, "Jellyfin")
end sub
sub unset_setting(key)
registry_delete(key, "viv")
registry_delete(key, "Jellyfin")
end sub
' User registry accessors for the currently active user
@ -105,7 +105,7 @@ function getSavedUsers() as object
savedUsers = []
for each section in registrySections
if LCase(section) <> "viv"
if LCase(section) <> "jellyfin"
savedUsers.push(section)
end if
end for

View file

@ -23,7 +23,7 @@ end function
function getDeviceProfile() as object
globalDevice = m.global.device
return {
"Name": "viv",
"Name": "Official Roku Client",
"Id": globalDevice.id,
"Identification": {
"FriendlyName": globalDevice.friendlyName,

View file

@ -389,7 +389,7 @@ namespace session
' Grab global vars from registry and overwrite defaults
sub LoadGlobals()
' search main registry block for all keys that start with "global."
jfRegistry = RegistryReadAll("viv")
jfRegistry = RegistryReadAll("Jellyfin")
for each item in jfRegistry
if Left(item, 7) = "global."
session.user.settings.Save(item, get_setting(item))