diff --git a/apps/web/src/app/xtream-tauri/account-info/account-info.component.html b/apps/web/src/app/xtream-tauri/account-info/account-info.component.html new file mode 100644 index 000000000..005c1ed2e --- /dev/null +++ b/apps/web/src/app/xtream-tauri/account-info/account-info.component.html @@ -0,0 +1,114 @@ +

{{ 'XTREAM.ACCOUNT_INFO.TITLE' | translate }}

+ + @if (accountInfo?.user_info?.message) { +
+ {{ accountInfo?.user_info?.message }} +
+ } +
+
+

{{ 'XTREAM.ACCOUNT_INFO.USER_INFO' | translate }}

+ + + {{ 'XTREAM.ACCOUNT_INFO.STATUS' | translate }}: + {{ + accountInfo?.user_info?.status + }} + + + {{ 'XTREAM.ACCOUNT_INFO.USERNAME' | translate }}: + {{ accountInfo?.user_info?.username }} + + + {{ 'XTREAM.ACCOUNT_INFO.ACTIVE_CONNECTIONS' | translate }}: + {{ accountInfo?.user_info?.active_cons }}/{{ + accountInfo?.user_info?.max_connections + }} + + + {{ 'XTREAM.ACCOUNT_INFO.CREATED' | translate }}: + {{ formattedCreatedDate }} + + + {{ 'XTREAM.ACCOUNT_INFO.EXPIRES' | translate }}: + {{ formattedExpDate }} + + + {{ 'XTREAM.ACCOUNT_INFO.TRIAL_ACCOUNT' | translate }}: + {{ + (isTrial + ? 'XTREAM.ACCOUNT_INFO.YES' + : 'XTREAM.ACCOUNT_INFO.NO' + ) | translate + }} + + + {{ 'XTREAM.ACCOUNT_INFO.ALLOWED_FORMATS' | translate }}: + + {{ + accountInfo?.user_info?.allowed_output_formats?.join( + ', ' + ) + }} + + + +
+ +
+

{{ 'XTREAM.ACCOUNT_INFO.SERVER_INFO' | translate }}

+ + + {{ 'XTREAM.ACCOUNT_INFO.LIVE_TV' | translate }}: + {{ liveStreamsCount }} + + + {{ 'XTREAM.ACCOUNT_INFO.MOVIES' | translate }}: + {{ vodStreamsCount }} + + + {{ 'XTREAM.ACCOUNT_INFO.TV_SERIES' | translate }}: + {{ seriesCount }} + + + {{ 'XTREAM.ACCOUNT_INFO.URL' | translate }}: + {{ accountInfo?.server_info?.url }} + + + {{ 'XTREAM.ACCOUNT_INFO.PROTOCOL' | translate }}: + {{ accountInfo?.server_info?.server_protocol }} + + + {{ 'XTREAM.ACCOUNT_INFO.TIMEZONE' | translate }}: + {{ accountInfo?.server_info?.timezone }} + + + {{ 'XTREAM.ACCOUNT_INFO.SERVER_TIME' | translate }}: + {{ accountInfo?.server_info?.time_now }} + + + {{ 'XTREAM.ACCOUNT_INFO.PORTS' | translate }}: +
+ {{ 'XTREAM.ACCOUNT_INFO.HTTP_PORT' | translate }}: + {{ accountInfo?.server_info?.port }} + {{ 'XTREAM.ACCOUNT_INFO.HTTPS_PORT' | translate }}: + {{ accountInfo?.server_info?.https_port }} + {{ 'XTREAM.ACCOUNT_INFO.RTMP_PORT' | translate }}: + {{ accountInfo?.server_info?.rtmp_port }} +
+
+
+
+
+
+ + + diff --git a/apps/web/src/app/xtream-tauri/account-info/account-info.component.ts b/apps/web/src/app/xtream-tauri/account-info/account-info.component.ts index feea9eede..2e1f168c3 100644 --- a/apps/web/src/app/xtream-tauri/account-info/account-info.component.ts +++ b/apps/web/src/app/xtream-tauri/account-info/account-info.component.ts @@ -1,4 +1,4 @@ -import { Component, Inject, inject } from '@angular/core'; +import { Component, inject } from '@angular/core'; import { MatButton } from '@angular/material/button'; import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog'; import { MatListModule } from '@angular/material/list'; @@ -11,150 +11,32 @@ import { XtreamAccountInfo } from './account-info.interface'; @Component({ selector: 'app-account-info', imports: [MatButton, MatDialogModule, MatListModule, TranslatePipe], - template: ` -

Account Information

- - @if (accountInfo?.user_info?.message) { -
- {{ accountInfo?.user_info?.message }} -
- } -
-
-

User Information

- - - Status: - {{ - accountInfo?.user_info?.status - }} - - - Username: - {{ accountInfo?.user_info?.username }} - - - Active Connections: - {{ accountInfo?.user_info?.active_cons }}/{{ - accountInfo?.user_info?.max_connections - }} - - - Created: - {{ formattedCreatedDate }} - - - Expires: {{ formattedExpDate }} - - - Trial Account: - {{ - isTrial ? 'Yes' : 'No' - }} - - - Allowed Formats: - - {{ - accountInfo?.user_info?.allowed_output_formats?.join( - ', ' - ) - }} - - - -
- -
-

Server Information

- - - Live TV: - {{ liveStreamsCount }} - - - Movies: - {{ vodStreamsCount }} - - - TV Series: - {{ seriesCount }} - - - URL: - {{ accountInfo?.server_info?.url }} - - - Protocol: - {{ accountInfo?.server_info?.server_protocol }} - - - Timezone: - {{ accountInfo?.server_info?.timezone }} - - - Server Time: - {{ accountInfo?.server_info?.time_now }} - - - Ports: -
- HTTP: - {{ accountInfo?.server_info?.port }} - HTTPS: - {{ - accountInfo?.server_info?.https_port - }} - RTMP: - {{ - accountInfo?.server_info?.rtmp_port - }} -
-
-
-
-
-
- - - - `, + templateUrl: './account-info.component.html', styleUrl: './account-info.component.scss', }) export class AccountInfoComponent { - accountInfo: XtreamAccountInfo; - formattedExpDate: string; - formattedCreatedDate: string; - + readonly data = inject<{ + vodStreamsCount: number; + liveStreamsCount: number; + seriesCount: number; + }>(MAT_DIALOG_DATA); private readonly dataService = inject(DataService); private readonly store = inject(Store); + accountInfo: XtreamAccountInfo; + formattedExpDate: string; + formattedCreatedDate: string; vodStreamsCount: number; liveStreamsCount: number; seriesCount: number; readonly currentPlaylist = this.store.selectSignal(selectActivePlaylist); - constructor( - @Inject(MAT_DIALOG_DATA) - data: { - vodStreamsCount: number; - liveStreamsCount: number; - seriesCount: number; - } - ) { + constructor() { this.setAccountInfo(); - this.vodStreamsCount = data.vodStreamsCount; - this.liveStreamsCount = data.liveStreamsCount; - this.seriesCount = data.seriesCount; + this.vodStreamsCount = this.data.vodStreamsCount; + this.liveStreamsCount = this.data.liveStreamsCount; + this.seriesCount = this.data.seriesCount; } async setAccountInfo() { @@ -170,7 +52,7 @@ export class AccountInfoComponent { action: 'get_account_info', } ); - console.log(this.accountInfo); + if (this.accountInfo) { this.formattedExpDate = new Date( parseInt(this.accountInfo.user_info.exp_date) * 1000 diff --git a/apps/web/src/assets/i18n/de.json b/apps/web/src/assets/i18n/de.json index b8715234a..a97d8b5f7 100644 --- a/apps/web/src/assets/i18n/de.json +++ b/apps/web/src/assets/i18n/de.json @@ -219,6 +219,7 @@ "RELEASE_DATE": "Veröffentlichungsdatum", "ACTORS": "Schauspieler", "PLAY": "Abspielen", + "OPENING_PLAYER": "Player wird geöffnet...", "GENRE": "Genre", "DURATION": "Dauer", "COUNTRY": "Land", @@ -233,7 +234,32 @@ "DESCRIPTION": "Beschreibung", "KINOPOISK_RATING": "Bewertung Kinopoisk", "IMDB_RATING": "IMDB-Bewertung", - "EPISODE_RUN_TIME": "Laufzeit der Episode" + "EPISODE_RUN_TIME": "Laufzeit der Episode", + "ACCOUNT_INFO": { + "TITLE": "Kontoinformationen", + "USER_INFO": "Benutzerinformationen", + "STATUS": "Status", + "USERNAME": "Benutzername", + "ACTIVE_CONNECTIONS": "Aktive Verbindungen", + "CREATED": "Erstellt", + "EXPIRES": "Läuft ab", + "TRIAL_ACCOUNT": "Testkonto", + "YES": "Ja", + "NO": "Nein", + "ALLOWED_FORMATS": "Zulässige Formate", + "SERVER_INFO": "Serverinformationen", + "LIVE_TV": "Live-TV", + "MOVIES": "Filme", + "TV_SERIES": "Serien", + "URL": "URL", + "PROTOCOL": "Protokoll", + "TIMEZONE": "Zeitzone", + "SERVER_TIME": "Serverzeit", + "PORTS": "Ports", + "HTTP_PORT": "HTTP", + "HTTPS_PORT": "HTTPS", + "RTMP_PORT": "RTMP" + } }, "PORTALS": { "SIDEBAR": { diff --git a/apps/web/src/assets/i18n/en.json b/apps/web/src/assets/i18n/en.json index 2451434ef..658bf4f2a 100644 --- a/apps/web/src/assets/i18n/en.json +++ b/apps/web/src/assets/i18n/en.json @@ -264,6 +264,7 @@ "REFRESH": "Refresh", "XTREAM": { "PLAY": "Play", + "OPENING_PLAYER": "Opening player...", "NAME": "Name", "RELEASE_DATE": "Release date", "GENRE": "Genre", @@ -280,7 +281,32 @@ "YEAR": "Year", "AGE": "Age", "YOUTUBE_TRAILER": "YouTube Trailer", - "EPISODE": "Episode" + "EPISODE": "Episode", + "ACCOUNT_INFO": { + "TITLE": "Account Information", + "USER_INFO": "User Information", + "STATUS": "Status", + "USERNAME": "Username", + "ACTIVE_CONNECTIONS": "Active Connections", + "CREATED": "Created", + "EXPIRES": "Expires", + "TRIAL_ACCOUNT": "Trial Account", + "YES": "Yes", + "NO": "No", + "ALLOWED_FORMATS": "Allowed Formats", + "SERVER_INFO": "Server Information", + "LIVE_TV": "Live TV", + "MOVIES": "Movies", + "TV_SERIES": "TV Series", + "URL": "URL", + "PROTOCOL": "Protocol", + "TIMEZONE": "Timezone", + "SERVER_TIME": "Server Time", + "PORTS": "Ports", + "HTTP_PORT": "HTTP", + "HTTPS_PORT": "HTTPS", + "RTMP_PORT": "RTMP" + } }, "PORTALS": { "ALL_CATEGORIES": "All categories", diff --git a/apps/web/src/assets/i18n/ru.json b/apps/web/src/assets/i18n/ru.json index 9dec7a7d4..f363a9341 100644 --- a/apps/web/src/assets/i18n/ru.json +++ b/apps/web/src/assets/i18n/ru.json @@ -230,6 +230,7 @@ "RELEASE_DATE": "Дата выпуска", "ACTORS": "Актеры", "PLAY": "Воспроизвести", + "OPENING_PLAYER": "Открытие плеера...", "GENRE": "Жанр", "DURATION": "Продолжительность", "COUNTRY": "Страна", @@ -243,7 +244,32 @@ "YOUTUBE_TRAILER": "YouTube-трейлер", "DESCRIPTION": "Описание", "KINOPOISK_RATING": "Рейтинг на Кинопоиск", - "IMDB_RATING": "Рейтинг на IMDB" + "IMDB_RATING": "Рейтинг на IMDB", + "ACCOUNT_INFO": { + "TITLE": "Информация об аккаунте", + "USER_INFO": "Информация о пользователе", + "STATUS": "Статус", + "USERNAME": "Имя пользователя", + "ACTIVE_CONNECTIONS": "Активные подключения", + "CREATED": "Создано", + "EXPIRES": "Истекает", + "TRIAL_ACCOUNT": "Пробный аккаунт", + "YES": "Да", + "NO": "Нет", + "ALLOWED_FORMATS": "Разрешенные форматы", + "SERVER_INFO": "Информация о сервере", + "LIVE_TV": "Прямой эфир", + "MOVIES": "Фильмы", + "TV_SERIES": "Сериалы", + "URL": "URL", + "PROTOCOL": "Протокол", + "TIMEZONE": "Часовой пояс", + "SERVER_TIME": "Время сервера", + "PORTS": "Порты", + "HTTP_PORT": "HTTP", + "HTTPS_PORT": "HTTPS", + "RTMP_PORT": "RTMP" + } }, "PORTALS": { "ALL_CATEGORIES": "Все категории",