RFC Compat testing

This commit is contained in:
Luke Hagar
2022-07-29 22:54:22 -05:00
parent 5ac46d81ab
commit 360599bc4d
3 changed files with 68 additions and 52 deletions

12
package-lock.json generated
View File

@@ -14261,9 +14261,9 @@
} }
}, },
"node_modules/plex-api-oauth": { "node_modules/plex-api-oauth": {
"version": "1.1.46", "version": "1.1.58",
"resolved": "https://registry.npmjs.org/plex-api-oauth/-/plex-api-oauth-1.1.46.tgz", "resolved": "https://registry.npmjs.org/plex-api-oauth/-/plex-api-oauth-1.1.58.tgz",
"integrity": "sha512-FSStMHc6K6Fr1Ed4AiCejIHG2uZaN5yeJLDgtlhAhbKNmEIDFN5eYYgkJsdUuQ7LAV+NPejEPcWF6xsdi8y62A==", "integrity": "sha512-R0m9xQ24qLQgMLROzppY6OtvWQoSwxH3UPrQ4UCFCvN14ROVQqlC5pqbG7ufGldcA7zGWD+RxLWxOs5GOF7Jjg==",
"dependencies": { "dependencies": {
"axios": "^0.27.2", "axios": "^0.27.2",
"plex-oauth": "^2.0.2", "plex-oauth": "^2.0.2",
@@ -29568,9 +29568,9 @@
"integrity": "sha512-Igl37++MSa+4H8LNP3Ene9GU0e1YypmXvFVNvVUwoAx44e74jbUlJXy4Q5rLSBisn0O2lBKdE6VkFIwrDl+UnQ==" "integrity": "sha512-Igl37++MSa+4H8LNP3Ene9GU0e1YypmXvFVNvVUwoAx44e74jbUlJXy4Q5rLSBisn0O2lBKdE6VkFIwrDl+UnQ=="
}, },
"plex-api-oauth": { "plex-api-oauth": {
"version": "1.1.46", "version": "1.1.58",
"resolved": "https://registry.npmjs.org/plex-api-oauth/-/plex-api-oauth-1.1.46.tgz", "resolved": "https://registry.npmjs.org/plex-api-oauth/-/plex-api-oauth-1.1.58.tgz",
"integrity": "sha512-FSStMHc6K6Fr1Ed4AiCejIHG2uZaN5yeJLDgtlhAhbKNmEIDFN5eYYgkJsdUuQ7LAV+NPejEPcWF6xsdi8y62A==", "integrity": "sha512-R0m9xQ24qLQgMLROzppY6OtvWQoSwxH3UPrQ4UCFCvN14ROVQqlC5pqbG7ufGldcA7zGWD+RxLWxOs5GOF7Jjg==",
"requires": { "requires": {
"axios": "^0.27.2", "axios": "^0.27.2",
"plex-oauth": "^2.0.2", "plex-oauth": "^2.0.2",

View File

@@ -56,7 +56,16 @@ import Paper from '@mui/material/Paper';
import ReactJkMusicPlayer from 'react-jinke-music-player'; import ReactJkMusicPlayer from 'react-jinke-music-player';
import XMLParser from 'react-xml-parser'; import XMLParser from 'react-xml-parser';
import { PlexAPIOAuth } from 'plex-api-oauth'; import {
CreatePlexClientInformation,
PlexLogin,
GetLibraryPages,
GetPlexUserData,
GetPlexServers,
GetPlexLibraries,
LoadPlexSession,
SavePlexSession,
} from 'plex-api-oauth';
import qs from 'qs'; import qs from 'qs';
import InfiniteScroll from 'react-infinite-scroller'; import InfiniteScroll from 'react-infinite-scroller';
import NoArt from './noart.png'; import NoArt from './noart.png';
@@ -74,6 +83,16 @@ function App() {
const [activePage, setActivePage] = useState(0); const [activePage, setActivePage] = useState(0);
const [plexStateTracker, setPlexStateTracker] = useState(0); const [plexStateTracker, setPlexStateTracker] = useState(0);
const { tempplexClientInformation, tempplexTVAuthToken } = LoadPlexSession();
const [plexClientInformation, setPlexClientInformation] = useState(
tempplexClientInformation
);
const [plexTVAuthToken, setPlexTVAuthToken] = useState(tempplexTVAuthToken);
const [plexTVUserData, setPlexTVUserData] = useState();
const [plexServers, setPlexServers] = useState();
const [plexLibraries, setPlexLibraries] = useState();
const [query, setQuery] = useState(''); const [query, setQuery] = useState('');
const [pageNumber, setPageNumber] = useState(0); const [pageNumber, setPageNumber] = useState(0);
const [topic, setTopic] = useState(); const [topic, setTopic] = useState();
@@ -109,45 +128,52 @@ function App() {
// console.log('Theme'); // console.log('Theme');
// console.log(activeTheme); // console.log(activeTheme);
const PlexSession = new PlexAPIOAuth();
PlexSession.LoadPlexSession();
if (PlexSession.clientId === '' || PlexSession.clientId == null) {
PlexSession.GenerateClientId();
PlexSession.SavePlexSession();
}
async function PlexLoginButton() { async function PlexLoginButton() {
await PlexSession.PlexLogin(); setPlexClientInformation(CreatePlexClientInformation());
await PlexSession.GetPlexUserData(); setPlexTVAuthToken(await PlexLogin(plexClientInformation));
await PlexSession.GetPlexServers(); SavePlexSession({
await PlexSession.GetPlexLibraries(); plexClientInformation,
await PlexSession.SavePlexSession(); plexTVAuthToken,
await PlexSession.GetPlexServers(); });
await PlexSession.GetPlexLibraries(); setPlexTVUserData(
await GetPlexUserData(plexClientInformation, plexTVAuthToken)
);
setPlexServers(
await GetPlexServers(plexClientInformation, plexTVAuthToken)
);
setPlexLibraries(await GetPlexLibraries(plexServers));
setPlexStateTracker(plexStateTracker + 1); setPlexStateTracker(plexStateTracker + 1);
} }
async function PlexLogoutButton() { async function PlexLogoutButton() {
await PlexSession.PlexLogout();
await PlexSession.SavePlexSession();
setPlexStateTracker(plexStateTracker + 1); setPlexStateTracker(plexStateTracker + 1);
} }
const { items, hasMore, loading, error } = PlexSession.GetLibraryPages( const { items, hasMore, loading, error } = GetLibraryPages(
plexServers,
plexLibraries,
topic, topic,
query, query,
pageNumber pageNumber
); );
function clearQuery() { console.log('plexTVAuthToken');
setQuery(''); console.log(plexTVAuthToken);
} console.log('plexClientInformation');
console.log(plexClientInformation);
console.log('plexTVUserData');
console.log(plexTVUserData);
console.log('plexServers');
console.log(plexServers);
console.log('query');
console.log(query); console.log(query);
console.log('topic');
console.log(topic); console.log(topic);
console.log('hasMore');
console.log(hasMore); console.log(hasMore);
console.log('loading');
console.log(loading); console.log(loading);
console.log('error');
console.log(error); console.log(error);
// useEffect(() => { // useEffect(() => {
@@ -227,7 +253,6 @@ function App() {
onClick={() => { onClick={() => {
setActivePage(2); setActivePage(2);
setTopic('artists'); setTopic('artists');
clearQuery();
}} }}
> >
<ListItemIcon>{iconindex.Library}</ListItemIcon> <ListItemIcon>{iconindex.Library}</ListItemIcon>
@@ -240,7 +265,6 @@ function App() {
onClick={() => { onClick={() => {
setActivePage(3); setActivePage(3);
setTopic('albums'); setTopic('albums');
clearQuery();
}} }}
> >
<ListItemIcon>{iconindex.Library}</ListItemIcon> <ListItemIcon>{iconindex.Library}</ListItemIcon>
@@ -253,7 +277,6 @@ function App() {
onClick={() => { onClick={() => {
setActivePage(4); setActivePage(4);
setTopic('songs'); setTopic('songs');
clearQuery();
}} }}
> >
<ListItemIcon>{iconindex.Library}</ListItemIcon> <ListItemIcon>{iconindex.Library}</ListItemIcon>
@@ -502,7 +525,7 @@ function App() {
</Grid> </Grid>
<Grid item xs={12}> <Grid item xs={12}>
<Typography sx={{ flexGrow: 1 }} component="div"> <Typography sx={{ flexGrow: 1 }} component="div">
UUID:{PlexSession?.clientId} UUID:{plexClientInformation?.clientIdentifier}
</Typography> </Typography>
</Grid> </Grid>
<Grid item xs={12}> <Grid item xs={12}>
@@ -521,8 +544,8 @@ function App() {
<CardHeader <CardHeader
avatar={ avatar={
<Avatar <Avatar
alt={PlexSession?.plexTVUserData?.friendlyName} alt={plexTVUserData?.friendlyName}
src={PlexSession?.plexTVUserData?.thumb} src={plexTVUserData?.thumb}
sx={{ width: 56, height: 56 }} sx={{ width: 56, height: 56 }}
/> />
} }
@@ -548,8 +571,8 @@ function App() {
} }
title="Plex Account" title="Plex Account"
subheader={`Username: ${ subheader={`Username: ${
PlexSession?.plexTVUserData?.username plexTVUserData?.username
? PlexSession?.plexTVUserData?.username ? plexTVUserData?.username
: null : null
}`} }`}
/> />
@@ -576,8 +599,7 @@ function App() {
sx={{ flexGrow: 1 }} sx={{ flexGrow: 1 }}
component="div" component="div"
> >
Username:{' '} Username: {plexTVUserData?.username}
{PlexSession?.plexTVUserData?.username}
</Typography> </Typography>
</Grid> </Grid>
<Grid item xs={12}> <Grid item xs={12}>
@@ -585,7 +607,7 @@ function App() {
sx={{ flexGrow: 1 }} sx={{ flexGrow: 1 }}
component="div" component="div"
> >
Email: {PlexSession?.plexTVUserData?.email} Email: {plexTVUserData?.email}
</Typography> </Typography>
</Grid> </Grid>
<Grid item xs={12}> <Grid item xs={12}>
@@ -594,10 +616,7 @@ function App() {
component="div" component="div"
> >
Account Status:{' '} Account Status:{' '}
{ {plexTVUserData?.subscriptionDescription}
PlexSession?.plexTVUserData
?.subscriptionDescription
}
</Typography> </Typography>
</Grid> </Grid>
<Grid item xs={12}> <Grid item xs={12}>
@@ -605,10 +624,7 @@ function App() {
sx={{ flexGrow: 1 }} sx={{ flexGrow: 1 }}
component="div" component="div"
> >
Plex Auth Token:{' '} Plex Auth Token: {plexTVAuthToken || null}
{PlexSession?.plexTVAuthToken
? PlexSession?.plexTVAuthToken
: null}
</Typography> </Typography>
</Grid> </Grid>
<Grid item xs={12}> <Grid item xs={12}>
@@ -649,7 +665,7 @@ function App() {
</TableRow> </TableRow>
</TableHead> </TableHead>
<TableBody> <TableBody>
{PlexSession?.plexServers?.map((row) => ( {plexServers?.map((row) => (
<TableRow <TableRow
key={row.name} key={row.name}
sx={{ sx={{

View File

@@ -7870,9 +7870,9 @@
"version" "1.1.0" "version" "1.1.0"
"plex-api-oauth@^1.0.4": "plex-api-oauth@^1.0.4":
"integrity" "sha512-FSStMHc6K6Fr1Ed4AiCejIHG2uZaN5yeJLDgtlhAhbKNmEIDFN5eYYgkJsdUuQ7LAV+NPejEPcWF6xsdi8y62A==" "integrity" "sha512-R0m9xQ24qLQgMLROzppY6OtvWQoSwxH3UPrQ4UCFCvN14ROVQqlC5pqbG7ufGldcA7zGWD+RxLWxOs5GOF7Jjg=="
"resolved" "https://registry.npmjs.org/plex-api-oauth/-/plex-api-oauth-1.1.46.tgz" "resolved" "https://registry.npmjs.org/plex-api-oauth/-/plex-api-oauth-1.1.58.tgz"
"version" "1.1.46" "version" "1.1.58"
dependencies: dependencies:
"axios" "^0.27.2" "axios" "^0.27.2"
"plex-oauth" "^2.0.2" "plex-oauth" "^2.0.2"