Merge remote-tracking branch 'origin/main'

This commit is contained in:
Core 2022-07-12 21:26:09 +01:00
commit 773c748b7d
No known key found for this signature in database
GPG key ID: FE9BF1B547F8F3C6
9 changed files with 113 additions and 564 deletions

View file

@ -46,6 +46,7 @@
"airtunes2": "git+https://github.com/ciderapp/node_airtunes2", "airtunes2": "git+https://github.com/ciderapp/node_airtunes2",
"castv2-client": "^1.2.0", "castv2-client": "^1.2.0",
"chokidar": "^3.5.3", "chokidar": "^3.5.3",
"cider_utils": "git+https://github.com/ciderapp/cider_utils",
"discord-auto-rpc": "^1.0.16", "discord-auto-rpc": "^1.0.16",
"dns-js": "git+https://github.com/ciderapp/node-dns-js.git", "dns-js": "git+https://github.com/ciderapp/node-dns-js.git",
"ejs": "^3.1.6", "ejs": "^3.1.6",
@ -80,8 +81,7 @@
"wallpaper": "5.0.1", "wallpaper": "5.0.1",
"ws": "^8.5.0", "ws": "^8.5.0",
"xml2js": "^0.4.23", "xml2js": "^0.4.23",
"youtube-search-without-api-key": "^1.0.7", "youtube-search-without-api-key": "^1.0.7"
"cider_utils": "git+https://github.com/ciderapp/cider_utils"
}, },
"devDependencies": { "devDependencies": {
"@types/adm-zip": "^0.5.0", "@types/adm-zip": "^0.5.0",

View file

@ -86,6 +86,7 @@ export class BrowserWindow {
"pages/zoo", "pages/zoo",
"pages/plugin-renderer", "pages/plugin-renderer",
"pages/oobe", "pages/oobe",
"pages/cider-profile",
"components/app-content", "components/app-content",
"components/sidebar", "components/sidebar",
"components/mediaitem-artwork", "components/mediaitem-artwork",
@ -193,6 +194,10 @@ export class BrowserWindow {
page: "recordLabel_", page: "recordLabel_",
component: `<cider-recordlabel :data="$root.showingPlaylist"></cider-recordlabel>`, component: `<cider-recordlabel :data="$root.showingPlaylist"></cider-recordlabel>`,
condition: `$root.page.includes('recordLabel_')` condition: `$root.page.includes('recordLabel_')`
}, {
page: "social-profiles_",
component: `<cider-socialprofile :data="$root.showingPlaylist"></cider-socialprofile>`,
condition: `$root.page.includes('social-profiles_')`
}, { }, {
page: "multiroom", page: "multiroom",
component: `<cider-multiroom :data="$root.multiroom"></cider-multiroom>`, component: `<cider-multiroom :data="$root.multiroom"></cider-multiroom>`,

View file

@ -69,6 +69,11 @@
"component": "<cider-playlist :data=\"showingPlaylist\"></cider-playlist>", "component": "<cider-playlist :data=\"showingPlaylist\"></cider-playlist>",
"condition": "page.includes('album_')" "condition": "page.includes('album_')"
}, },
{
"page": "social-profiles_",
"component": "<cider-socialprofile :data=\"showingPlaylist\"></cider-socialprofile>",
"condition": "$root.page.includes('social-profiles_')"
},
{ {
"page": "recordLabel_", "page": "recordLabel_",
"component": "<cider-recordlabel :data=\"showingPlaylist\"></cider-recordlabel>", "component": "<cider-recordlabel :data=\"showingPlaylist\"></cider-recordlabel>",

View file

@ -1966,7 +1966,7 @@ const app = new Vue({
}) })
return; return;
} else if(item.attributes.link.url.includes("viewFeature")) { } else if (item.attributes.link.url.includes("viewFeature")) {
const params = new Proxy(new URLSearchParams(new URL(item.attributes.link.url).search), { const params = new Proxy(new URLSearchParams(new URL(item.attributes.link.url).search), {
get: (searchParams, prop) => searchParams.get(prop), get: (searchParams, prop) => searchParams.get(prop),
}); });
@ -1977,7 +1977,6 @@ const app = new Vue({
app.routeView(item) app.routeView(item)
} }
) )
} else { } else {
window.open(item.attributes.link.url) window.open(item.attributes.link.url)
} }
@ -2018,7 +2017,26 @@ const app = new Vue({
}); });
window.location.hash = `${kind}/${id}` window.location.hash = `${kind}/${id}`
document.querySelector("#app-content").scrollTop = 0 document.querySelector("#app-content").scrollTop = 0
} else if (!kind.toString().includes("radioStation") && !kind.toString().includes("song") && !kind.toString().includes("musicVideo") && !kind.toString().includes("uploadedVideo") && !kind.toString().includes("music-movie")) { } else if (kind.toString().includes("social-profiles")) {
app.page = (kind) + "_" + (id);
app.mk.api.v3.music(
`/v1/social/${app.mk.storefrontId}/social-profiles/${id}`,
{include:"shared-playlists"}).then(
(data) => {
console.log(data)
app.showingPlaylist = data.data?.data[0]
window.location.hash = `${kind}/${id}`
document.querySelector("#app-content").scrollTop = 0
}
)
// app.getTypeFromID((kind), (id), (isLibrary), {
// extend: "editorialVideo",
// include: 'grouping,playlists',
// views: 'top-releases,latest-releases,top-artists'
// });
}
else if (!kind.toString().includes("radioStation") && !kind.toString().includes("song") && !kind.toString().includes("musicVideo") && !kind.toString().includes("uploadedVideo") && !kind.toString().includes("music-movie")) {
let params = { let params = {
extend: "offers,editorialVideo", extend: "offers,editorialVideo",
"views": "appears-on,more-by-artist,related-videos,other-versions,you-might-also-like,video-extras,audio-extras", "views": "appears-on,more-by-artist,related-videos,other-versions,you-might-also-like,video-extras,audio-extras",

View file

@ -1322,6 +1322,7 @@ body[platform="darwin"] .app-chrome .app-chrome-item > .window-controls > div.cl
height: 15px; height: 15px;
width: 15px; width: 15px;
margin-bottom: 15px; margin-bottom: 15px;
z-index: 1;
} }
} }
// Add Music Video Icons to Songs that are Music Videos // Add Music Video Icons to Songs that are Music Videos

View file

@ -45,7 +45,12 @@
</div> </div>
<div class="chrome-icon-container"> <div class="chrome-icon-container">
<div class="audio-type private-icon" v-if="cfg.general.privateEnabled === true"></div> <div class="audio-type private-icon" v-if="cfg.general.privateEnabled === true"></div>
<div class="audio-type ppe-icon" v-if="cfg.audio.maikiwiAudio.ciderPPE === true"></div> <div class="audio-type lossless-icon" v-if="(mk.nowPlayingItem?.localFilesMetadata?.lossless ?? false) === true"
:title="mk.nowPlayingItem?.localFilesMetadata?.bitDepth +'-bit / '+ mk.nowPlayingItem?.localFilesMetadata?.sampleRate/1000 + ' kHz ' + mk.nowPlayingItem.localFilesMetadata.container" v-b-tooltip.hover
></div>
<div class="audio-type ppe-icon" v-if="mk.nowPlayingItem.localFilesMetadata == null && cfg.audio.maikiwiAudio.ciderPPE === true"
:title="$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPE')" v-b-tooltip.hover
></div>
</div> </div>
</div> </div>
<template v-if="mk.nowPlayingItem['attributes']['playParams']"> <template v-if="mk.nowPlayingItem['attributes']['playParams']">

View file

@ -121,7 +121,12 @@
<div class="playback-info"> <div class="playback-info">
<div class="chrome-icon-container"> <div class="chrome-icon-container">
<div class="audio-type private-icon" v-if="cfg.general.privateEnabled === true"></div> <div class="audio-type private-icon" v-if="cfg.general.privateEnabled === true"></div>
<div class="audio-type ppe-icon" v-if="cfg.audio.maikiwiAudio.ciderPPE === true"></div> <div class="audio-type lossless-icon" v-if="(mk.nowPlayingItem?.localFilesMetadata?.lossless ?? false) === true"
:title="mk.nowPlayingItem?.localFilesMetadata?.bitDepth +'-bit / '+ mk.nowPlayingItem?.localFilesMetadata?.sampleRate/1000 + ' kHz ' + mk.nowPlayingItem.localFilesMetadata.container" v-b-tooltip.hover
></div>
<div class="audio-type ppe-icon" v-if="mk.nowPlayingItem.localFilesMetadata == null && cfg.audio.maikiwiAudio.ciderPPE === true"
:title="$root.getLz('settings.option.audio.enableAdvancedFunctionality.ciderPPE')" v-b-tooltip.hover
></div>
</div> </div>
<div class="info-rect"> <div class="info-rect">
<div class="song-name" <div class="song-name"

View file

@ -0,0 +1,67 @@
<script type="text/x-template" id="cider-socialprofile">
<div class="content-inner artist-page profile-page">
<div class="artist-header" :style="getArtistPalette(data)">
<div class="row">
<div class="col-sm" style="width: auto;">
<div class="artist-image">
<mediaitem-artwork
shadow="large"
:url="data.attributes.artwork ? data.attributes.artwork.url : ''"
size="220" type="artists"></mediaitem-artwork>
</div>
</div>
<div class="col flex-center">
<h1>{{ data.attributes.name }}</h1>
</div>
</div>
</div>
<div class="artist-body">
<template v-if="data.relationships && data.relationships['shared-playlists']">
<div class="row">
<div class="col">
<h3>{{ 'Shared Playlists' ?? ""}}</h3>
</div>
<div class="col-auto flex-center" v-if="data.relationships['shared-playlists'].data.length >= 10">
<button class="cd-btn-seeall" @click="app.showCollection(data.relationships['shared-playlists'],'Shared Playlists' ?? '', 'default')">{{app.getLz('term.seeAll')}}</button>
</div>
</div>
<mediaitem-square :item="item" v-for="item in data.relationships['shared-playlists'].data.limit(10)">
</mediaitem-square>
</template>
</div>
</div>
</script>
<script>
Vue.component('cider-socialprofile', {
template: "#cider-socialprofile",
props: ['data'],
data: function () {
return {
topSongsExpanded: false,
app: this.$root
}
},
methods: {
getArtistPalette(artist) {
if (artist?.attributes?.artwork != null) {
return {
"background": "#" + artist["attributes"]["artwork"]["bgColor"],
"color": "#" + artist["attributes"]["artwork"]["textColor1"],
}
} else {
return {
"background": "#000000",
"color": "#ffffff",
}
}
},
getTopResult() {
if (this.search.results["meta"]) {
return this.search.results[this.search.results.meta.results.order[0]]["data"][0]
} else {
return false;
}
}
}
})
</script>

View file

@ -1,557 +0,0 @@
{
"CookieSPAEnabled": false,
"MultiVariantTestingEnabled": false,
"UseV2": true,
"MobileSDK": false,
"SkipGeolocation": false,
"ScriptType": "PRODUCTION",
"Version": "6.26.0",
"OptanonDataJSON": "50da44be-0564-43df-b139-329aedcf267b",
"GeolocationUrl": "https://geolocation.onetrust.com/cookieconsentpub/v1/geo/location",
"BulkDomainCheckUrl": "https://cookies-data.onetrust.io/bannersdk/v1/domaingroupcheck",
"RuleSet": [
{
"Id": "fb7c8fa7-d912-4e6b-a0ef-181d7466bd99",
"Name": "Standard Notice Banner",
"Countries": [
"ps",
"hk",
"pw",
"ht",
"qa",
"id",
"il",
"ae",
"in",
"ag",
"za",
"al",
"am",
"ao",
"zm",
"au",
"az",
"zw",
"ba",
"bb",
"rs",
"bd",
"ru",
"jm",
"bf",
"jo",
"rw",
"bi",
"bj",
"bn",
"sa",
"sb",
"sc",
"bs",
"bt",
"sg",
"bw",
"by",
"bz",
"sl",
"sm",
"ke",
"sn",
"kg",
"kh",
"ki",
"ca",
"sr",
"st",
"kn",
"ch",
"ci",
"sz",
"kr",
"cm",
"cn",
"kw",
"kz",
"td",
"cv",
"tg",
"cw",
"th",
"la",
"lb",
"lc",
"tl",
"to",
"tr",
"lk",
"tt",
"tv",
"dj",
"tz",
"lr",
"ls",
"dm",
"ug",
"ma",
"md",
"me",
"mg",
"mh",
"us",
"mk",
"ml",
"mn",
"eg",
"mr",
"uz",
"mu",
"mv",
"mw",
"my",
"mz",
"vc",
"na",
"ne",
"vn",
"ng",
"vu",
"np",
"nr",
"fj",
"fm",
"nz",
"ga",
"ws",
"gd",
"om",
"ge",
"gh",
"gm",
"gn",
"gq",
"gw",
"gy",
"pg",
"ph",
"pk"
],
"States": {},
"LanguageSwitcherPlaceholder": {
"hi": "hi",
"de": "de",
"es-BO": "es-BO",
"zh-Hans": "zh-Hans",
"zh-Hant": "zh-Hant",
"es-BZ": "es-BZ",
"uk": "uk",
"es-CC": "es-CC",
"id": "id",
"ur": "ur",
"af": "af",
"es-SV": "es-SV",
"ms": "ms",
"es-GT": "es-GT",
"es-CR": "es-CR",
"it": "it",
"es-CL": "es-CL",
"es": "es",
"es-CO": "es-CO",
"es-PE": "es-PE",
"ar": "ar",
"vi": "vi",
"es-PA": "es-PA",
"ne": "ne",
"ja": "ja",
"az": "az",
"zu": "zu",
"nl": "nl",
"es-HN": "es-HN",
"ru": "ru",
"es-PR": "es-PR",
"es-PY": "es-PY",
"fr": "fr",
"bn": "bn",
"es-DO": "es-DO",
"default": "en",
"es-EC": "es-EC",
"en-PH": "en-PH",
"sr": "sr",
"sw": "sw",
"ko": "ko",
"pt-BR": "pt-BR",
"es-UY": "es-UY",
"es-VE": "es-VE",
"ta": "ta",
"es-MX": "es-MX",
"th": "th",
"es-AR": "es-AR",
"he": "he",
"tr": "tr",
"es-NI": "es-NI"
},
"BannerPushesDown": false,
"Default": false,
"Global": false,
"Type": "GENERIC",
"UseGoogleVendors": false,
"VariantEnabled": false,
"TestEndTime": null,
"Variants": [],
"TemplateName": "Spotify - Standard Notice Banner",
"Conditions": [],
"GCEnable": false
},
{
"Id": "87b34903-3ed8-41e8-873f-df7208bf4ac7",
"Name": "IAB 2.0 - Germany",
"Countries": [
"de"
],
"States": {},
"LanguageSwitcherPlaceholder": {
"default": "de"
},
"BannerPushesDown": false,
"Default": false,
"Global": false,
"Type": "IAB2",
"UseGoogleVendors": false,
"VariantEnabled": false,
"TestEndTime": null,
"Variants": [],
"TemplateName": "Spotify - GDPR IAB Banner (Germany)",
"Conditions": [],
"GCEnable": false
},
{
"Id": "047479d5-e10c-4c37-bb58-b85a33337d90",
"Name": "IAB 2.0 - Reject All Button",
"Countries": [
"fr"
],
"States": {},
"LanguageSwitcherPlaceholder": {
"no": "no",
"de": "de",
"sv": "sv",
"fi": "fi",
"pt": "pt",
"bg": "bg",
"el": "el",
"lt": "lt",
"en": "en",
"lv": "lv",
"is": "is",
"hr": "hr",
"it": "it",
"hu": "hu",
"es": "es",
"et": "et",
"cs": "cs",
"default": "fr",
"sk": "sk",
"sl": "sl",
"pl": "pl",
"ro": "ro",
"da": "da",
"nl": "nl"
},
"BannerPushesDown": false,
"Default": false,
"Global": false,
"Type": "IAB2",
"UseGoogleVendors": false,
"VariantEnabled": false,
"TestEndTime": null,
"Variants": [],
"TemplateName": "Spotify - GDPR IAB Banner (Reject all button)",
"Conditions": [],
"GCEnable": false
},
{
"Id": "9ffca9ee-89d4-4e64-9807-8f72fd75528a",
"Name": "IAB 2.0",
"Countries": [
"no",
"fi",
"be",
"pt",
"bg",
"dk",
"lt",
"lu",
"lv",
"hr",
"hu",
"se",
"si",
"sk",
"gb",
"ie",
"ee",
"mt",
"is",
"it",
"gr",
"es",
"at",
"cy",
"cz",
"pl",
"li",
"ro",
"nl"
],
"States": {},
"LanguageSwitcherPlaceholder": {
"no": "no",
"de": "de",
"sv": "sv",
"fi": "fi",
"pt": "pt",
"bg": "bg",
"el": "el",
"lt": "lt",
"lv": "lv",
"is": "is",
"hr": "hr",
"it": "it",
"fr": "fr",
"hu": "hu",
"es": "es",
"et": "et",
"cs": "cs",
"default": "en",
"sk": "sk",
"sl": "sl",
"pl": "pl",
"ro": "ro",
"da": "da",
"nl": "nl"
},
"BannerPushesDown": false,
"Default": true,
"Global": false,
"Type": "IAB2",
"UseGoogleVendors": false,
"VariantEnabled": false,
"TestEndTime": null,
"Variants": [],
"TemplateName": "Spotify - GDPR IAB Banner",
"Conditions": [],
"GCEnable": false
},
{
"Id": "74eec303-d5c3-4488-a6df-cb21b90c2b8c",
"Name": "Global",
"Countries": [
"pr",
"tw",
"hm",
"hn",
"py",
"do",
"ye",
"ua",
"ly",
"dz",
"um",
"ec",
"mm",
"mo",
"mp",
"eh",
"ad",
"im",
"uy",
"af",
"ms",
"io",
"iq",
"ai",
"ir",
"va",
"mx",
"er",
"ve",
"et",
"aq",
"vg",
"ar",
"as",
"vi",
"nc",
"aw",
"nf",
"ni",
"je",
"fk",
"bh",
"jp",
"nu",
"fo",
"bl",
"bm",
"bo",
"wf",
"bq",
"br",
"sd",
"bv",
"sh",
"sj",
"so",
"gg",
"cc",
"ss",
"cd",
"km",
"gi",
"cf",
"sv",
"cg",
"gl",
"sx",
"kp",
"sy",
"ck",
"cl",
"co",
"gs",
"gt",
"gu",
"ky",
"cr",
"tc",
"pa",
"tf",
"cu",
"pe",
"cx",
"pf",
"tj",
"tk",
"tm",
"tn",
"pm",
"pn"
],
"States": {},
"LanguageSwitcherPlaceholder": {
"hi": "hi",
"de": "de",
"es-BO": "es-BO",
"zh-Hans": "zh-Hans",
"zh-Hant": "zh-Hant",
"es-BZ": "es-BZ",
"uk": "uk",
"es-CC": "es-CC",
"id": "id",
"ur": "ur",
"af": "af",
"es-SV": "es-SV",
"ms": "ms",
"es-GT": "es-GT",
"es-CR": "es-CR",
"it": "it",
"es-CL": "es-CL",
"es": "es",
"es-CO": "es-CO",
"es-PE": "es-PE",
"ar": "ar",
"vi": "vi",
"es-PA": "es-PA",
"ne": "ne",
"ja": "ja",
"az": "az",
"zu": "zu",
"nl": "nl",
"es-HN": "es-HN",
"ru": "ru",
"es-PR": "es-PR",
"es-PY": "es-PY",
"fr": "fr",
"bn": "bn",
"es-DO": "es-DO",
"default": "en",
"es-EC": "es-EC",
"en-PH": "en-PH",
"sr": "sr",
"sw": "sw",
"ko": "ko",
"pt-BR": "pt-BR",
"es-UY": "es-UY",
"es-VE": "es-VE",
"ta": "ta",
"es-MX": "es-MX",
"th": "th",
"es-AR": "es-AR",
"he": "he",
"tr": "tr",
"es-NI": "es-NI"
},
"BannerPushesDown": false,
"Default": false,
"Global": true,
"Type": "GENERIC",
"UseGoogleVendors": false,
"VariantEnabled": false,
"TestEndTime": null,
"Variants": [],
"TemplateName": "Spotify - Standard Notice Banner",
"Conditions": [],
"GCEnable": false
}
],
"IabData": {
"cookieVersion": "1",
"createdTime": "2022-05-23T15:50:11.758903",
"updatedTime": "2022-05-23T15:50:11.758919",
"cmpId": "28",
"cmpVersion": "1",
"consentScreen": "1",
"consentLanguage": null,
"vendorListVersion": 0,
"maxVendorId": 0,
"encodingType": "0",
"globalVendorListUrl": "https://cdn.cookielaw.org/vendorlist/iabData.json"
},
"IabV2Data": {
"cookieVersion": "1",
"createdTime": "2022-05-23T15:50:11.809823",
"updatedTime": "2022-05-23T15:50:11.809837",
"cmpId": "28",
"cmpVersion": "1",
"consentScreen": "1",
"consentLanguage": null,
"vendorListVersion": 144,
"maxVendorId": 0,
"encodingType": "0",
"globalVendorListUrl": "https://cdn.cookielaw.org/vendorlist/iab2Data.json"
},
"GoogleData": {
"vendorListVersion": 1,
"googleVendorListUrl": "https://cdn.cookielaw.org/vendorlist/googleData.json"
},
"ScriptDynamicLoadEnabled": false,
"TenantFeatures": {
"CookieV2BannerFocus": true,
"CookieV2TargetedTemplates": true,
"CookieV2GPC": true,
"CookieV2AssignTemplateRule": true,
"CookieV2GeolocationJsonApi": true,
"CookieV2TCF21": true,
"CookieV2RemoveSettingsIcon": true,
"CookieV2GeneralVendors": true
},
"IsSuppressBanner": false,
"IsSuppressPC": false,
"PublisherCC": "DE",
"Domain": "spotify.com",
"TenantGuid": "f1b38160-cf19-4625-89df-35263d2d97c0",
"EnvId": "app-de-prod",
"RemoteActionsEnabled": false,
"GeoRuleGroupName": "Spotify Domains",
"GATrackToggle": true,
"GATrackAssignedCategory": "AS"
}