Move server connections to lib
This commit is contained in:
@@ -4,10 +4,10 @@ import type { ApiClient, ConnectResponse } from 'jellyfin-apiclient';
|
||||
|
||||
import globalize from 'lib/globalize';
|
||||
import { ConnectionState } from 'lib/jellyfin-apiclient/connectionState';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
|
||||
import alert from './alert';
|
||||
import Loading from './loading/LoadingComponent';
|
||||
import ServerConnections from './ServerConnections';
|
||||
|
||||
enum AccessLevel {
|
||||
/** Requires a user with administrator access */
|
||||
|
||||
@@ -1,158 +0,0 @@
|
||||
// NOTE: This is used for jsdoc return type
|
||||
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
||||
import { Api } from '@jellyfin/sdk';
|
||||
import { Credentials, ApiClient } from 'jellyfin-apiclient';
|
||||
|
||||
import { appHost } from './apphost';
|
||||
import ConnectionManager from 'lib/jellyfin-apiclient/connectionManager';
|
||||
import Dashboard from '../utils/dashboard';
|
||||
import Events from '../utils/events.ts';
|
||||
import { setUserInfo } from '../scripts/settings/userSettings';
|
||||
import appSettings from '../scripts/settings/appSettings';
|
||||
import { toApi } from 'utils/jellyfin-apiclient/compat';
|
||||
|
||||
const normalizeImageOptions = options => {
|
||||
if (!options.quality && (options.maxWidth || options.width || options.maxHeight || options.height || options.fillWidth || options.fillHeight)) {
|
||||
options.quality = 90;
|
||||
}
|
||||
};
|
||||
|
||||
const getMaxBandwidth = () => {
|
||||
if (navigator.connection) {
|
||||
let max = navigator.connection.downlinkMax;
|
||||
if (max && max > 0 && max < Number.POSITIVE_INFINITY) {
|
||||
max /= 8;
|
||||
max *= 1000000;
|
||||
max *= 0.7;
|
||||
return parseInt(max, 10);
|
||||
}
|
||||
}
|
||||
|
||||
return null;
|
||||
};
|
||||
|
||||
class ServerConnections extends ConnectionManager {
|
||||
constructor() {
|
||||
super(...arguments);
|
||||
this.localApiClient = null;
|
||||
this.firstConnection = null;
|
||||
|
||||
Events.on(this, 'localusersignedout', (_e, logoutInfo) => {
|
||||
setUserInfo(null, null);
|
||||
// Ensure the updated credentials are persisted to storage
|
||||
credentialProvider.credentials(credentialProvider.credentials());
|
||||
|
||||
if (window.NativeShell && typeof window.NativeShell.onLocalUserSignedOut === 'function') {
|
||||
window.NativeShell.onLocalUserSignedOut(logoutInfo);
|
||||
}
|
||||
});
|
||||
|
||||
Events.on(this, 'apiclientcreated', (_e, apiClient) => {
|
||||
apiClient.getMaxBandwidth = getMaxBandwidth;
|
||||
apiClient.normalizeImageOptions = normalizeImageOptions;
|
||||
});
|
||||
}
|
||||
|
||||
initApiClient(server) {
|
||||
console.debug('creating ApiClient singleton');
|
||||
|
||||
const apiClient = new ApiClient(
|
||||
server,
|
||||
appHost.appName(),
|
||||
appHost.appVersion(),
|
||||
appHost.deviceName(),
|
||||
appHost.deviceId()
|
||||
);
|
||||
|
||||
apiClient.enableAutomaticNetworking = false;
|
||||
apiClient.manualAddressOnly = true;
|
||||
|
||||
this.addApiClient(apiClient);
|
||||
|
||||
this.setLocalApiClient(apiClient);
|
||||
|
||||
console.debug('loaded ApiClient singleton');
|
||||
}
|
||||
|
||||
connect(options) {
|
||||
return super.connect({
|
||||
enableAutoLogin: appSettings.enableAutoLogin(),
|
||||
...options
|
||||
});
|
||||
}
|
||||
|
||||
setLocalApiClient(apiClient) {
|
||||
if (apiClient) {
|
||||
this.localApiClient = apiClient;
|
||||
window.ApiClient = apiClient;
|
||||
}
|
||||
}
|
||||
|
||||
getLocalApiClient() {
|
||||
return this.localApiClient;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the ApiClient that is currently connected.
|
||||
* @returns {ApiClient|undefined} apiClient
|
||||
*/
|
||||
currentApiClient() {
|
||||
let apiClient = this.getLocalApiClient();
|
||||
|
||||
if (!apiClient) {
|
||||
const server = this.getLastUsedServer();
|
||||
|
||||
if (server) {
|
||||
apiClient = this.getApiClient(server.Id);
|
||||
}
|
||||
}
|
||||
|
||||
return apiClient;
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the Api that is currently connected.
|
||||
* @returns {Api|undefined} The current Api instance.
|
||||
*/
|
||||
getCurrentApi() {
|
||||
const apiClient = this.currentApiClient();
|
||||
if (!apiClient) return;
|
||||
|
||||
return toApi(apiClient);
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the ApiClient that is currently connected or throws if not defined.
|
||||
* @async
|
||||
* @returns {Promise<ApiClient>} The current ApiClient instance.
|
||||
*/
|
||||
async getCurrentApiClientAsync() {
|
||||
const apiClient = this.currentApiClient();
|
||||
if (!apiClient) throw new Error('[ServerConnection] No current ApiClient instance');
|
||||
|
||||
return apiClient;
|
||||
}
|
||||
|
||||
onLocalUserSignedIn(user) {
|
||||
const apiClient = this.getApiClient(user.ServerId);
|
||||
this.setLocalApiClient(apiClient);
|
||||
return setUserInfo(user.Id, apiClient).then(() => {
|
||||
if (window.NativeShell && typeof window.NativeShell.onLocalUserSignedIn === 'function') {
|
||||
return window.NativeShell.onLocalUserSignedIn(user, apiClient.accessToken());
|
||||
}
|
||||
return Promise.resolve();
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
const credentialProvider = new Credentials();
|
||||
|
||||
const capabilities = Dashboard.capabilities(appHost);
|
||||
|
||||
export default new ServerConnections(
|
||||
credentialProvider,
|
||||
appHost.appName(),
|
||||
appHost.appVersion(),
|
||||
appHost.deviceName(),
|
||||
appHost.deviceId(),
|
||||
capabilities);
|
||||
@@ -1,10 +1,10 @@
|
||||
import { FunctionComponent, useEffect } from 'react';
|
||||
import { useLocation } from 'react-router-dom';
|
||||
|
||||
import ServerConnections from './ServerConnections';
|
||||
import viewManager from './viewManager/viewManager';
|
||||
import globalize from '../lib/globalize';
|
||||
import type { RestoreViewFailResponse } from '../types/viewManager';
|
||||
import globalize from 'lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import type { RestoreViewFailResponse } from 'types/viewManager';
|
||||
|
||||
interface ServerContentPageProps {
|
||||
view: string
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import escapeHtml from 'escape-html';
|
||||
import Events from '../utils/events.ts';
|
||||
import globalize from '../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import dom from '../scripts/dom';
|
||||
import { formatRelative } from 'date-fns';
|
||||
import serverNotifications from '../scripts/serverNotifications';
|
||||
import '../elements/emby-button/emby-button';
|
||||
import './listview/listview.scss';
|
||||
import ServerConnections from './ServerConnections';
|
||||
import alert from './alert';
|
||||
import { getLocale } from '../utils/dateFnsLocale.ts';
|
||||
import { toBoolean } from '../utils/string.ts';
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import isEqual from 'lodash-es/isEqual';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import browser from '../../scripts/browser';
|
||||
import { playbackManager } from '../playback/playbackmanager';
|
||||
import dom from '../../scripts/dom';
|
||||
import * as userSettings from '../../scripts/settings/userSettings';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
|
||||
import './backdrop.scss';
|
||||
|
||||
|
||||
@@ -12,6 +12,7 @@ import browser from 'scripts/browser';
|
||||
import datetime from 'scripts/datetime';
|
||||
import dom from 'scripts/dom';
|
||||
import globalize from 'lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import { getBackdropShape, getPortraitShape, getSquareShape } from 'utils/card';
|
||||
import { getItemTypeIcon, getLibraryIcon } from 'utils/image';
|
||||
|
||||
@@ -22,7 +23,6 @@ import itemHelper from '../itemHelper';
|
||||
import layoutManager from '../layoutManager';
|
||||
import { playbackManager } from '../playback/playbackmanager';
|
||||
import { appRouter } from '../router/appRouter';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import itemShortcuts from '../shortcuts';
|
||||
|
||||
import 'elements/emby-button/paper-icon-button-light';
|
||||
|
||||
@@ -5,11 +5,12 @@
|
||||
*/
|
||||
|
||||
import escapeHtml from 'escape-html';
|
||||
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import datetime from '../../scripts/datetime';
|
||||
import imageLoader from '../images/imageLoader';
|
||||
import layoutManager from '../layoutManager';
|
||||
import browser from '../../scripts/browser';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
|
||||
const enableFocusTransform = !browser.slow && !browser.edge;
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@ import dom from '../../scripts/dom';
|
||||
import dialogHelper from '../dialogHelper/dialogHelper';
|
||||
import loading from '../loading/loading';
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import actionsheet from '../actionSheet/actionSheet';
|
||||
import '../../elements/emby-input/emby-input';
|
||||
import '../../elements/emby-button/paper-icon-button-light';
|
||||
@@ -10,7 +11,6 @@ import '../../elements/emby-button/emby-button';
|
||||
import '../listview/listview.scss';
|
||||
import 'material-design-icons-iconfont';
|
||||
import '../formdialog.scss';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
|
||||
export default class ChannelMapper {
|
||||
constructor(options) {
|
||||
|
||||
@@ -5,6 +5,7 @@ import loading from '../loading/loading';
|
||||
import layoutManager from '../layoutManager';
|
||||
import { appRouter } from '../router/appRouter';
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import '../../elements/emby-button/emby-button';
|
||||
import '../../elements/emby-button/paper-icon-button-light';
|
||||
import '../../elements/emby-checkbox/emby-checkbox';
|
||||
@@ -13,7 +14,6 @@ import '../../elements/emby-select/emby-select';
|
||||
import 'material-design-icons-iconfont';
|
||||
import '../formdialog.scss';
|
||||
import '../../styles/flexstyles.scss';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import toast from '../toast/toast';
|
||||
|
||||
let currentServerId;
|
||||
|
||||
@@ -6,6 +6,7 @@ import { appHost } from '../apphost';
|
||||
import focusManager from '../focusManager';
|
||||
import datetime from '../../scripts/datetime';
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import loading from '../loading/loading';
|
||||
import skinManager from '../../scripts/themeManager';
|
||||
import { PluginType } from '../../types/plugin.ts';
|
||||
@@ -14,7 +15,6 @@ import '../../elements/emby-select/emby-select';
|
||||
import '../../elements/emby-checkbox/emby-checkbox';
|
||||
import '../../elements/emby-button/emby-button';
|
||||
import '../../elements/emby-textarea/emby-textarea';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import toast from '../toast/toast';
|
||||
import template from './displaySettings.template.html';
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
import dom from '../../scripts/dom';
|
||||
import dialogHelper from '../dialogHelper/dialogHelper';
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import union from 'lodash-es/union';
|
||||
import Events from '../../utils/events.ts';
|
||||
import '../../elements/emby-checkbox/emby-checkbox';
|
||||
import '../../elements/emby-collapse/emby-collapse';
|
||||
import './style.scss';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import template from './filterdialog.template.html';
|
||||
import { stopMultiSelect } from '../../components/multiSelect/multiSelect';
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ import dialogHelper from '../dialogHelper/dialogHelper';
|
||||
import inputManager from '../../scripts/inputManager';
|
||||
import layoutManager from '../layoutManager';
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import * as userSettings from '../../scripts/settings/userSettings';
|
||||
import '../../elements/emby-checkbox/emby-checkbox';
|
||||
import '../../elements/emby-input/emby-input';
|
||||
@@ -14,7 +15,6 @@ import '../../elements/emby-select/emby-select';
|
||||
import 'material-design-icons-iconfont';
|
||||
import '../formdialog.scss';
|
||||
import '../../styles/flexstyles.scss';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import template from './filtermenu.template.html';
|
||||
|
||||
function onSubmit(e) {
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import dom from '../scripts/dom';
|
||||
import { appRouter } from './router/appRouter';
|
||||
import Dashboard from '../utils/dashboard';
|
||||
import ServerConnections from './ServerConnections';
|
||||
|
||||
function onGroupedCardClick(e, card) {
|
||||
const itemId = card.getAttribute('data-id');
|
||||
|
||||
@@ -2,6 +2,7 @@ import escapeHtml from 'escape-html';
|
||||
import inputManager from '../../scripts/inputManager';
|
||||
import browser from '../../scripts/browser';
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import Events from '../../utils/events.ts';
|
||||
import scrollHelper from '../../scripts/scrollHelper';
|
||||
import serverNotifications from '../../scripts/serverNotifications';
|
||||
@@ -25,7 +26,6 @@ import '../../elements/emby-tabs/emby-tabs';
|
||||
import '../../elements/emby-scroller/emby-scroller';
|
||||
import '../../styles/flexstyles.scss';
|
||||
import 'webcomponents.js/webcomponents-lite';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import template from './tvguide.template.html';
|
||||
|
||||
function showViewSettings(instance) {
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
import escapeHtml from 'escape-html';
|
||||
|
||||
import { getUserViewsQuery } from 'hooks/useUserViews';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import { toApi } from 'utils/jellyfin-apiclient/compat';
|
||||
import { queryClient } from 'utils/query/queryClient';
|
||||
|
||||
@@ -15,7 +16,6 @@ import dom from '../../scripts/dom';
|
||||
import '../listview/listview.scss';
|
||||
import '../../elements/emby-select/emby-select';
|
||||
import '../../elements/emby-checkbox/emby-checkbox';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import toast from '../toast/toast';
|
||||
import template from './homeScreenSettings.template.html';
|
||||
import { LibraryTab } from '../../types/libraryTab.ts';
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
import type { BaseItemDto } from '@jellyfin/sdk/lib/generated-client/models/base-item-dto';
|
||||
import type { ApiClient } from 'jellyfin-apiclient';
|
||||
|
||||
import ServerConnections from 'components/ServerConnections';
|
||||
import cardBuilder from 'components/cardbuilder/cardBuilder';
|
||||
import globalize from 'lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
|
||||
import type { SectionContainerElement, SectionOptions } from './section';
|
||||
|
||||
|
||||
@@ -5,8 +5,8 @@ import type { ApiClient } from 'jellyfin-apiclient';
|
||||
import { appRouter } from 'components/router/appRouter';
|
||||
import cardBuilder from 'components/cardbuilder/cardBuilder';
|
||||
import layoutManager from 'components/layoutManager';
|
||||
import ServerConnections from 'components/ServerConnections';
|
||||
import globalize from 'lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import { getBackdropShape } from 'utils/card';
|
||||
|
||||
import type { SectionContainerElement, SectionOptions } from './section';
|
||||
|
||||
@@ -4,8 +4,8 @@ import type { ApiClient } from 'jellyfin-apiclient';
|
||||
import cardBuilder from 'components/cardbuilder/cardBuilder';
|
||||
import layoutManager from 'components/layoutManager';
|
||||
import { appRouter } from 'components/router/appRouter';
|
||||
import ServerConnections from 'components/ServerConnections';
|
||||
import globalize from 'lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import type { UserSettings } from 'scripts/settings/userSettings';
|
||||
import { getBackdropShape } from 'utils/card';
|
||||
|
||||
|
||||
@@ -5,11 +5,11 @@ import { CollectionType } from '@jellyfin/sdk/lib/generated-client/models/collec
|
||||
import escapeHtml from 'escape-html';
|
||||
import type { ApiClient } from 'jellyfin-apiclient';
|
||||
|
||||
import cardBuilder from 'components/cardbuilder/cardBuilder';
|
||||
import layoutManager from 'components/layoutManager';
|
||||
import { appRouter } from 'components/router/appRouter';
|
||||
import globalize from 'lib/globalize';
|
||||
import ServerConnections from 'components/ServerConnections';
|
||||
import cardBuilder from 'components/cardbuilder/cardBuilder';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import { getBackdropShape, getPortraitShape, getSquareShape } from 'utils/card';
|
||||
|
||||
import type { SectionContainerElement, SectionOptions } from './section';
|
||||
|
||||
@@ -2,9 +2,9 @@ import type { BaseItemDto } from '@jellyfin/sdk/lib/generated-client/models/base
|
||||
import type { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-item-kind';
|
||||
import type { ApiClient } from 'jellyfin-apiclient';
|
||||
|
||||
import ServerConnections from 'components/ServerConnections';
|
||||
import cardBuilder from 'components/cardbuilder/cardBuilder';
|
||||
import globalize from 'lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import type { UserSettings } from 'scripts/settings/userSettings';
|
||||
import { getBackdropShape, getPortraitShape } from 'utils/card';
|
||||
|
||||
|
||||
@@ -7,12 +7,12 @@ import browser from '../../scripts/browser';
|
||||
import layoutManager from '../layoutManager';
|
||||
import scrollHelper from '../../scripts/scrollHelper';
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import '../../elements/emby-checkbox/emby-checkbox';
|
||||
import '../../elements/emby-button/paper-icon-button-light';
|
||||
import '../../elements/emby-button/emby-button';
|
||||
import '../formdialog.scss';
|
||||
import '../cardbuilder/card.scss';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import template from './imageDownloader.template.html';
|
||||
|
||||
const enableFocusTransform = !browser.slow && !browser.edge;
|
||||
|
||||
@@ -10,11 +10,12 @@ import loading from '../loading/loading';
|
||||
import scrollHelper from '../../scripts/scrollHelper';
|
||||
import layoutManager from '../layoutManager';
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
|
||||
import '../../elements/emby-button/emby-button';
|
||||
import '../../elements/emby-select/emby-select';
|
||||
import '../formdialog.scss';
|
||||
import './style.scss';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import toast from '../toast/toast';
|
||||
import template from './imageUploader.template.html';
|
||||
|
||||
|
||||
@@ -4,6 +4,7 @@ import dom from '../../scripts/dom';
|
||||
import layoutManager from '../layoutManager';
|
||||
import focusManager from '../focusManager';
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import scrollHelper from '../../scripts/scrollHelper';
|
||||
import imageLoader from '../images/imageLoader';
|
||||
import browser from '../../scripts/browser';
|
||||
@@ -13,7 +14,6 @@ import '../formdialog.scss';
|
||||
import '../../elements/emby-button/emby-button';
|
||||
import '../../elements/emby-button/paper-icon-button-light';
|
||||
import './imageeditor.scss';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import alert from '../alert';
|
||||
import confirm from '../confirm/confirm';
|
||||
import template from './imageeditor.template.html';
|
||||
|
||||
@@ -2,12 +2,12 @@ import browser from '../scripts/browser';
|
||||
import { copy } from '../scripts/clipboard';
|
||||
import dom from '../scripts/dom';
|
||||
import globalize from '../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import actionsheet from './actionSheet/actionSheet';
|
||||
import { appHost } from './apphost';
|
||||
import { appRouter } from './router/appRouter';
|
||||
import itemHelper, { canEditPlaylist } from './itemHelper';
|
||||
import { playbackManager } from './playback/playbackmanager';
|
||||
import ServerConnections from './ServerConnections';
|
||||
import toast from './toast/toast';
|
||||
import * as userSettings from '../scripts/settings/userSettings';
|
||||
import { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-item-kind';
|
||||
|
||||
@@ -7,7 +7,7 @@ import { getPlaylistsApi } from '@jellyfin/sdk/lib/utils/api/playlists-api';
|
||||
|
||||
import { appHost } from './apphost';
|
||||
import globalize from 'lib/globalize';
|
||||
import ServerConnections from './ServerConnections';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import { toApi } from 'utils/jellyfin-apiclient/compat';
|
||||
|
||||
export function getDisplayName(item, options = {}) {
|
||||
|
||||
@@ -11,6 +11,7 @@ import toast from '../toast/toast';
|
||||
import { copy } from '../../scripts/clipboard';
|
||||
import dom from '../../scripts/dom';
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import itemHelper from '../../components/itemHelper';
|
||||
import loading from '../loading/loading';
|
||||
import '../../elements/emby-select/emby-select';
|
||||
@@ -20,7 +21,6 @@ import '../../elements/emby-button/paper-icon-button-light';
|
||||
import '../formdialog.scss';
|
||||
import 'material-design-icons-iconfont';
|
||||
import '../../styles/flexstyles.scss';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import template from './itemMediaInfo.template.html';
|
||||
|
||||
// Do not add extra spaces between tags - they will be copied into the result
|
||||
|
||||
@@ -8,6 +8,7 @@ import escapeHtml from 'escape-html';
|
||||
import dialogHelper from '../dialogHelper/dialogHelper';
|
||||
import loading from '../loading/loading';
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import scrollHelper from '../../scripts/scrollHelper';
|
||||
import layoutManager from '../layoutManager';
|
||||
import focusManager from '../focusManager';
|
||||
@@ -18,7 +19,6 @@ import '../../elements/emby-button/paper-icon-button-light';
|
||||
import '../formdialog.scss';
|
||||
import 'material-design-icons-iconfont';
|
||||
import '../cardbuilder/card.scss';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import toast from '../toast/toast';
|
||||
import template from './itemidentifier.template.html';
|
||||
import datetime from '../../scripts/datetime';
|
||||
|
||||
@@ -10,12 +10,12 @@ import mediaInfo from '../mediainfo/mediainfo';
|
||||
import indicators from '../indicators/indicators';
|
||||
import layoutManager from '../layoutManager';
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import datetime from '../../scripts/datetime';
|
||||
import cardBuilder from '../cardbuilder/cardBuilder';
|
||||
import './listview.scss';
|
||||
import '../../elements/emby-ratingbutton/emby-ratingbutton';
|
||||
import '../../elements/emby-playstatebutton/emby-playstatebutton';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import { getDefaultBackgroundClass } from '../cardbuilder/cardBuilderUtils';
|
||||
import markdownIt from 'markdown-it';
|
||||
import DOMPurify from 'dompurify';
|
||||
|
||||
@@ -5,6 +5,7 @@ import { toApi } from 'utils/jellyfin-apiclient/compat';
|
||||
import dialogHelper from '../dialogHelper/dialogHelper';
|
||||
import layoutManager from '../layoutManager';
|
||||
import globalize from 'lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import loading from '../loading/loading';
|
||||
import focusManager from '../focusManager';
|
||||
import dom from '../../scripts/dom';
|
||||
@@ -16,7 +17,6 @@ import 'material-design-icons-iconfont';
|
||||
import './lyricseditor.scss';
|
||||
import '../../elements/emby-button/emby-button';
|
||||
import '../../styles/flexstyles.scss';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import toast from '../toast/toast';
|
||||
import template from './lyricseditor.template.html';
|
||||
import templatePreview from './lyricspreview.template.html';
|
||||
|
||||
@@ -3,12 +3,12 @@ import escapeHtml from 'escape-html';
|
||||
import { getLyricsApi } from '@jellyfin/sdk/lib/utils/api/lyrics-api';
|
||||
import { toApi } from 'utils/jellyfin-apiclient/compat';
|
||||
import dialogHelper from '../../components/dialogHelper/dialogHelper';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import dom from '../../scripts/dom';
|
||||
import loading from '../../components/loading/loading';
|
||||
import scrollHelper from '../../scripts/scrollHelper';
|
||||
import layoutManager from '../layoutManager';
|
||||
import globalize from 'lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import template from './lyricsuploader.template.html';
|
||||
import toast from '../toast/toast';
|
||||
import '../../elements/emby-button/emby-button';
|
||||
|
||||
@@ -6,6 +6,8 @@ import datetime from '../../scripts/datetime';
|
||||
import loading from '../loading/loading';
|
||||
import focusManager from '../focusManager';
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
|
||||
import '../../elements/emby-checkbox/emby-checkbox';
|
||||
import '../../elements/emby-input/emby-input';
|
||||
import '../../elements/emby-select/emby-select';
|
||||
@@ -17,7 +19,6 @@ import '../formdialog.scss';
|
||||
import '../../styles/clearbutton.scss';
|
||||
import '../../styles/flexstyles.scss';
|
||||
import './style.scss';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import toast from '../toast/toast';
|
||||
import { appRouter } from '../router/appRouter';
|
||||
import template from './metadataEditor.template.html';
|
||||
|
||||
@@ -2,9 +2,9 @@ import browser from '../../scripts/browser';
|
||||
import { appHost } from '../apphost';
|
||||
import loading from '../loading/loading';
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import dom from '../../scripts/dom';
|
||||
import './multiSelect.scss';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import alert from '../alert';
|
||||
import confirm from '../confirm/confirm';
|
||||
import itemHelper from '../itemHelper';
|
||||
|
||||
@@ -2,8 +2,8 @@ import serverNotifications from '../../scripts/serverNotifications';
|
||||
import { playbackManager } from '../playback/playbackmanager';
|
||||
import Events from '../../utils/events.ts';
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import { getItems } from '../../utils/jellyfin-apiclient/getItems.ts';
|
||||
import ServerConnections from '../../components/ServerConnections';
|
||||
|
||||
import NotificationIcon from './notificationicon.png';
|
||||
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
import { getImageUrl } from 'apps/stable/features/playback/utils/image';
|
||||
import { getItemTextLines } from 'apps/stable/features/playback/utils/itemText';
|
||||
import { appRouter, isLyricsPage } from 'components/router/appRouter';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
|
||||
import datetime from '../../scripts/datetime';
|
||||
import Events from '../../utils/events.ts';
|
||||
@@ -14,7 +15,6 @@ import globalize from 'lib/globalize';
|
||||
import itemContextMenu from '../itemContextMenu';
|
||||
import '../../elements/emby-button/paper-icon-button-light';
|
||||
import '../../elements/emby-ratingbutton/emby-ratingbutton';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import appFooter from '../appFooter/appFooter';
|
||||
import itemShortcuts from '../shortcuts';
|
||||
import './nowPlayingBar.scss';
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
import ServerConnections from 'components/ServerConnections';
|
||||
import { getItemQuery } from 'hooks/useItem';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import { toApi } from 'utils/jellyfin-apiclient/compat';
|
||||
import { queryClient } from 'utils/query/queryClient';
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
import { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-item-kind.js';
|
||||
import { PlaybackErrorCode } from '@jellyfin/sdk/lib/generated-client/models/playback-error-code.js';
|
||||
import { getMediaInfoApi } from '@jellyfin/sdk/lib/utils/api/media-info-api';
|
||||
import { MediaType } from '@jellyfin/sdk/lib/generated-client/models/media-type';
|
||||
@@ -14,7 +15,6 @@ import * as userSettings from '../../scripts/settings/userSettings';
|
||||
import globalize from '../../lib/globalize';
|
||||
import loading from '../loading/loading';
|
||||
import { appHost } from '../apphost';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import alert from '../alert';
|
||||
import { PluginType } from '../../types/plugin.ts';
|
||||
import { includesAny } from '../../utils/container.ts';
|
||||
@@ -24,10 +24,10 @@ import { getItemBackdropImageUrl } from '../../utils/jellyfin-apiclient/backdrop
|
||||
import { PlayerEvent } from 'apps/stable/features/playback/constants/playerEvent';
|
||||
import { bindMediaSegmentManager } from 'apps/stable/features/playback/utils/mediaSegmentManager';
|
||||
import { bindMediaSessionSubscriber } from 'apps/stable/features/playback/utils/mediaSessionSubscriber';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import { MediaError } from 'types/mediaError';
|
||||
import { getMediaError } from 'utils/mediaError';
|
||||
import { toApi } from 'utils/jellyfin-apiclient/compat';
|
||||
import { BaseItemKind } from '@jellyfin/sdk/lib/generated-client/models/base-item-kind.js';
|
||||
import { bindSkipSegment } from './skipsegment.ts';
|
||||
|
||||
const UNLIMITED_ITEMS = -1;
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
import actionsheet from '../actionSheet/actionSheet';
|
||||
import { playbackManager } from '../playback/playbackmanager';
|
||||
import globalize from '../../lib/globalize';
|
||||
import globalize from 'lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import qualityoptions from '../qualityOptions';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
|
||||
function showQualityMenu(player, btn) {
|
||||
const videoStream = playbackManager.currentMediaSource(player).MediaStreams.filter(function (stream) {
|
||||
|
||||
@@ -3,6 +3,7 @@ import escapeHTML from 'escape-html';
|
||||
|
||||
import { MediaSegmentAction } from 'apps/stable/features/playback/constants/mediaSegmentAction';
|
||||
import { getId, getMediaSegmentAction } from 'apps/stable/features/playback/utils/mediaSegmentSettings';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
|
||||
import appSettings from '../../scripts/settings/appSettings';
|
||||
import { appHost } from '../apphost';
|
||||
@@ -12,7 +13,6 @@ import qualityoptions from '../qualityOptions';
|
||||
import globalize from '../../lib/globalize';
|
||||
import loading from '../loading/loading';
|
||||
import Events from '../../utils/events.ts';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import toast from '../toast/toast';
|
||||
import template from './playbackSettings.template.html';
|
||||
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
import '../../elements/emby-button/paper-icon-button-light';
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import Events from '../../utils/events.ts';
|
||||
import layoutManager from '../layoutManager';
|
||||
import { playbackManager } from '../playback/playbackmanager';
|
||||
import playMethodHelper from '../playback/playmethodhelper';
|
||||
import { pluginManager } from '../pluginManager';
|
||||
import { PluginType } from '../../types/plugin.ts';
|
||||
|
||||
import './playerstats.scss';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
|
||||
function init(instance) {
|
||||
const parent = document.createElement('div');
|
||||
|
||||
@@ -8,6 +8,7 @@ import escapeHtml from 'escape-html';
|
||||
import toast from 'components/toast/toast';
|
||||
import dom from 'scripts/dom';
|
||||
import globalize from 'lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import { currentSettings as userSettings } from 'scripts/settings/userSettings';
|
||||
import { PluginType } from 'types/plugin';
|
||||
import { toApi } from 'utils/jellyfin-apiclient/compat';
|
||||
@@ -19,7 +20,6 @@ import layoutManager from '../layoutManager';
|
||||
import { playbackManager } from '../playback/playbackmanager';
|
||||
import { pluginManager } from '../pluginManager';
|
||||
import { appRouter } from '../router/appRouter';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
|
||||
import 'elements/emby-button/emby-button';
|
||||
import 'elements/emby-input/emby-input';
|
||||
|
||||
@@ -8,8 +8,8 @@ import { appRouter } from './router/appRouter';
|
||||
import * as inputManager from '../scripts/inputManager';
|
||||
import toast from '../components/toast/toast';
|
||||
import confirm from '../components/confirm/confirm';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import * as dashboard from '../utils/dashboard';
|
||||
import ServerConnections from '../components/ServerConnections';
|
||||
|
||||
// TODO: replace with each plugin version
|
||||
const cacheParam = new Date().getTime();
|
||||
|
||||
@@ -1,9 +1,10 @@
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import dom from '../../scripts/dom';
|
||||
import recordingHelper from './recordinghelper';
|
||||
|
||||
import '../../elements/emby-button/paper-icon-button-light';
|
||||
import '../../elements/emby-button/emby-button';
|
||||
import './recordingfields.scss';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
|
||||
function onRecordingButtonClick() {
|
||||
const item = this.item;
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
import dialogHelper from '../dialogHelper/dialogHelper';
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import layoutManager from '../layoutManager';
|
||||
import mediaInfo from '../mediainfo/mediainfo';
|
||||
import loading from '../loading/loading';
|
||||
@@ -8,6 +9,7 @@ import datetime from '../../scripts/datetime';
|
||||
import imageLoader from '../images/imageLoader';
|
||||
import RecordingFields from './recordingfields';
|
||||
import Events from '../../utils/events.ts';
|
||||
|
||||
import '../../elements/emby-button/emby-button';
|
||||
import '../../elements/emby-button/paper-icon-button-light';
|
||||
import '../../elements/emby-checkbox/emby-checkbox';
|
||||
@@ -16,7 +18,6 @@ import '../../elements/emby-input/emby-input';
|
||||
import '../formdialog.scss';
|
||||
import './recordingcreator.scss';
|
||||
import 'material-design-icons-iconfont';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import { playbackManager } from '../playback/playbackmanager';
|
||||
import template from './recordingcreator.template.html';
|
||||
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
|
||||
import dialogHelper from '../dialogHelper/dialogHelper';
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import layoutManager from '../layoutManager';
|
||||
import loading from '../loading/loading';
|
||||
import scrollHelper from '../../scripts/scrollHelper';
|
||||
|
||||
import '../../styles/scrollstyles.scss';
|
||||
import '../../elements/emby-button/emby-button';
|
||||
import '../../elements/emby-collapse/emby-collapse';
|
||||
@@ -13,7 +15,6 @@ import '../formdialog.scss';
|
||||
import './recordingcreator.scss';
|
||||
import 'material-design-icons-iconfont';
|
||||
import '../../styles/flexstyles.scss';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import template from './recordingeditor.template.html';
|
||||
|
||||
let currentDialog;
|
||||
|
||||
@@ -1,14 +1,15 @@
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import Events from '../../utils/events.ts';
|
||||
import serverNotifications from '../../scripts/serverNotifications';
|
||||
import loading from '../loading/loading';
|
||||
import dom from '../../scripts/dom';
|
||||
import recordingHelper from './recordinghelper';
|
||||
|
||||
import '../../elements/emby-button/emby-button';
|
||||
import '../../elements/emby-button/paper-icon-button-light';
|
||||
import './recordingfields.scss';
|
||||
import '../../styles/flexstyles.scss';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import toast from '../toast/toast';
|
||||
import template from './recordingfields.template.html';
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import globalize from '../../lib/globalize';
|
||||
import globalize from 'lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import loading from '../loading/loading';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import toast from '../toast/toast';
|
||||
import confirm from '../confirm/confirm';
|
||||
import dialog from '../dialog/dialog';
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
import dialogHelper from '../dialogHelper/dialogHelper';
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import layoutManager from '../layoutManager';
|
||||
import loading from '../loading/loading';
|
||||
import scrollHelper from '../../scripts/scrollHelper';
|
||||
import datetime from '../../scripts/datetime';
|
||||
|
||||
import '../../styles/scrollstyles.scss';
|
||||
import '../../elements/emby-button/emby-button';
|
||||
import '../../elements/emby-checkbox/emby-checkbox';
|
||||
@@ -14,7 +16,6 @@ import '../formdialog.scss';
|
||||
import './recordingcreator.scss';
|
||||
import 'material-design-icons-iconfont';
|
||||
import '../../styles/flexstyles.scss';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import template from './seriesrecordingeditor.template.html';
|
||||
|
||||
let currentDialog;
|
||||
|
||||
@@ -3,6 +3,8 @@ import dialogHelper from '../dialogHelper/dialogHelper';
|
||||
import loading from '../loading/loading';
|
||||
import layoutManager from '../layoutManager';
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
|
||||
import '../../elements/emby-input/emby-input';
|
||||
import '../../elements/emby-button/emby-button';
|
||||
import '../../elements/emby-button/paper-icon-button-light';
|
||||
@@ -10,7 +12,6 @@ import '../../elements/emby-checkbox/emby-checkbox';
|
||||
import '../../elements/emby-select/emby-select';
|
||||
import 'material-design-icons-iconfont';
|
||||
import '../formdialog.scss';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import toast from '../toast/toast';
|
||||
|
||||
function getEditorHtml() {
|
||||
|
||||
@@ -11,9 +11,11 @@ import { playbackManager } from '../playback/playbackmanager';
|
||||
import Events from '../../utils/events.ts';
|
||||
import { appHost } from '../apphost';
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import layoutManager from '../layoutManager';
|
||||
import * as userSettings from '../../scripts/settings/userSettings';
|
||||
import itemContextMenu from '../itemContextMenu';
|
||||
|
||||
import '../cardbuilder/card.scss';
|
||||
import '../../elements/emby-button/emby-button';
|
||||
import '../../elements/emby-button/paper-icon-button-light';
|
||||
@@ -21,7 +23,6 @@ import '../../elements/emby-itemscontainer/emby-itemscontainer';
|
||||
import './remotecontrol.scss';
|
||||
import '../../elements/emby-ratingbutton/emby-ratingbutton';
|
||||
import '../../elements/emby-slider/emby-slider';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import toast from '../toast/toast';
|
||||
import { appRouter } from '../router/appRouter';
|
||||
import { getDefaultBackgroundClass } from '../cardbuilder/cardBuilderUtils';
|
||||
|
||||
@@ -4,12 +4,12 @@ import { setBackdropTransparency } from '../backdrop/backdrop';
|
||||
import globalize from '../../lib/globalize';
|
||||
import itemHelper from '../itemHelper';
|
||||
import loading from '../loading/loading';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import alert from '../alert';
|
||||
|
||||
import { queryClient } from 'utils/query/queryClient';
|
||||
import { getItemQuery } from 'hooks/useItem';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import { toApi } from 'utils/jellyfin-apiclient/compat';
|
||||
import { queryClient } from 'utils/query/queryClient';
|
||||
import { history } from 'RootAppRouter';
|
||||
|
||||
/** Pages of "no return" (when "Go back" should behave differently, probably quitting the application). */
|
||||
|
||||
@@ -8,9 +8,9 @@ import { playbackManager } from './playback/playbackmanager';
|
||||
import inputManager from '../scripts/inputManager';
|
||||
import { appRouter } from './router/appRouter';
|
||||
import globalize from '../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import dom from '../scripts/dom';
|
||||
import recordingHelper from './recordingcreator/recordinghelper';
|
||||
import ServerConnections from './ServerConnections';
|
||||
import toast from './toast/toast';
|
||||
import * as userSettings from '../scripts/settings/userSettings';
|
||||
import { toApi } from 'utils/jellyfin-apiclient/compat';
|
||||
|
||||
@@ -3,16 +3,17 @@
|
||||
* @module components/slideshow/slideshow
|
||||
*/
|
||||
import dialogHelper from '../dialogHelper/dialogHelper';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import inputManager from '../../scripts/inputManager';
|
||||
import layoutManager from '../layoutManager';
|
||||
import focusManager from '../focusManager';
|
||||
import browser from '../../scripts/browser';
|
||||
import { appHost } from '../apphost';
|
||||
import dom from '../../scripts/dom';
|
||||
|
||||
import './style.scss';
|
||||
import 'material-design-icons-iconfont';
|
||||
import '../../elements/emby-button/paper-icon-button-light';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import screenfull from 'screenfull';
|
||||
import { randomInt } from '../../utils/number.ts';
|
||||
|
||||
|
||||
@@ -3,10 +3,12 @@ import { appHost } from '../apphost';
|
||||
import dialogHelper from '../dialogHelper/dialogHelper';
|
||||
import layoutManager from '../layoutManager';
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import * as userSettings from '../../scripts/settings/userSettings';
|
||||
import loading from '../loading/loading';
|
||||
import focusManager from '../focusManager';
|
||||
import dom from '../../scripts/dom';
|
||||
|
||||
import '../../elements/emby-select/emby-select';
|
||||
import '../listview/listview.scss';
|
||||
import '../../elements/emby-button/paper-icon-button-light';
|
||||
@@ -15,7 +17,6 @@ import 'material-design-icons-iconfont';
|
||||
import './subtitleeditor.scss';
|
||||
import '../../elements/emby-button/emby-button';
|
||||
import '../../styles/flexstyles.scss';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import toast from '../toast/toast';
|
||||
import confirm from '../confirm/confirm';
|
||||
import template from './subtitleeditor.template.html';
|
||||
|
||||
@@ -1,4 +1,5 @@
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import { appHost } from '../apphost';
|
||||
import appSettings from '../../scripts/settings/appSettings';
|
||||
import focusManager from '../focusManager';
|
||||
@@ -8,6 +9,7 @@ import subtitleAppearanceHelper from './subtitleappearancehelper';
|
||||
import settingsHelper from '../settingshelper';
|
||||
import dom from '../../scripts/dom';
|
||||
import Events from '../../utils/events.ts';
|
||||
|
||||
import '../listview/listview.scss';
|
||||
import '../../elements/emby-select/emby-select';
|
||||
import '../../elements/emby-slider/emby-slider';
|
||||
@@ -15,7 +17,6 @@ import '../../elements/emby-input/emby-input';
|
||||
import '../../elements/emby-checkbox/emby-checkbox';
|
||||
import '../../styles/flexstyles.scss';
|
||||
import './subtitlesettings.scss';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import toast from '../toast/toast';
|
||||
import template from './subtitlesettings.template.html';
|
||||
|
||||
|
||||
@@ -3,14 +3,15 @@ import escapeHtml from 'escape-html';
|
||||
import { getSubtitleApi } from '@jellyfin/sdk/lib/utils/api/subtitle-api';
|
||||
import { toApi } from 'utils/jellyfin-apiclient/compat';
|
||||
import dialogHelper from '../../components/dialogHelper/dialogHelper';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
import dom from '../../scripts/dom';
|
||||
import loading from '../../components/loading/loading';
|
||||
import scrollHelper from '../../scripts/scrollHelper';
|
||||
import layoutManager from '../layoutManager';
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import template from './subtitleuploader.template.html';
|
||||
import toast from '../toast/toast';
|
||||
|
||||
import '../../elements/emby-button/emby-button';
|
||||
import '../../elements/emby-select/emby-select';
|
||||
import '../formdialog.scss';
|
||||
|
||||
@@ -3,6 +3,7 @@ import { MediaType } from '@jellyfin/sdk/lib/generated-client/models/media-type'
|
||||
import { getLibraryApi } from '@jellyfin/sdk/lib/utils/api/library-api';
|
||||
|
||||
import { getItemQuery } from 'hooks/useItem';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import { currentSettings as userSettings } from 'scripts/settings/userSettings';
|
||||
import { ItemKind } from 'types/base/models/item-kind';
|
||||
import Events from 'utils/events.ts';
|
||||
@@ -10,7 +11,6 @@ import { toApi } from 'utils/jellyfin-apiclient/compat';
|
||||
import { queryClient } from 'utils/query/queryClient';
|
||||
|
||||
import { playbackManager } from './playback/playbackmanager';
|
||||
import ServerConnections from './ServerConnections';
|
||||
|
||||
let currentOwnerId;
|
||||
let currentThemeIds = [];
|
||||
|
||||
@@ -5,8 +5,9 @@ import mediaInfo from '../mediainfo/mediainfo';
|
||||
import layoutManager from '../layoutManager';
|
||||
import focusManager from '../focusManager';
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import itemHelper from '../itemHelper';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
|
||||
import './upnextdialog.scss';
|
||||
import '../../elements/emby-button/emby-button';
|
||||
import '../../styles/flexstyles.scss';
|
||||
|
||||
@@ -1,11 +1,12 @@
|
||||
import globalize from '../../lib/globalize';
|
||||
import ServerConnections from 'lib/jellyfin-apiclient/ServerConnections';
|
||||
import dom from '../../scripts/dom';
|
||||
import itemHelper from '../itemHelper';
|
||||
|
||||
import '../../elements/emby-button/paper-icon-button-light';
|
||||
import 'material-design-icons-iconfont';
|
||||
import '../../elements/emby-button/emby-button';
|
||||
import './userdatabuttons.scss';
|
||||
import ServerConnections from '../ServerConnections';
|
||||
|
||||
const userDataMethods = {
|
||||
markPlayed: markPlayed,
|
||||
|
||||
Reference in New Issue
Block a user