From a54a37be1c8fab7db5707f8f47d55d7983f74cc3 Mon Sep 17 00:00:00 2001 From: gsd Date: Sun, 30 Mar 2025 02:11:30 +0300 Subject: [PATCH] =?UTF-8?q?=D0=B2=D0=BE=D0=BE=D0=BE=20=D0=BA=D1=80=D1=83?= =?UTF-8?q?=D1=82=D0=BE=D0=BE=D0=BE=20=D1=81=D0=BF=D0=B8=D1=81=D0=BA=D0=BE?= =?UTF-8?q?=D0=BA=20=D1=81=D0=B5=D1=80=D0=B2=D0=B5=D1=80=D0=BE=D0=B2=20?= =?UTF-8?q?=D0=B4=D0=B0=20=D0=B5=D1=89=D0=B5=20=D0=B8=20=D0=B8=D0=B3=D1=80?= =?UTF-8?q?=D0=BE=D0=BA=D0=B0=D0=BC=D0=B8=202?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/app.module.ts | 38 ++-- src/app/entities/profile/Permition.ts | 7 + src/app/entities/profile/PlayOn.ts | 7 + src/app/entities/profile/PlayerProfile.ts | 14 +- .../entities/profile/ProfileRequestData.ts | 3 +- src/app/entities/profile/Reports.ts | 5 + .../profile-page/profile-page.component.html | 163 +++++++++++++++++- .../profile-page/profile-page.component.scss | 7 + .../servers-page/servers-page.component.html | 4 +- .../servers-page/servers-page.component.ts | 4 +- src/app/services/auth.service.ts | 2 +- src/styles.scss | 6 + 12 files changed, 230 insertions(+), 30 deletions(-) create mode 100644 src/app/entities/profile/Permition.ts create mode 100644 src/app/entities/profile/PlayOn.ts create mode 100644 src/app/entities/profile/Reports.ts diff --git a/src/app/app.module.ts b/src/app/app.module.ts index d538857..79af618 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -30,6 +30,7 @@ import {ServerService} from "./services/server.service"; import {registerLocaleData} from "@angular/common"; import localeRu from "@angular/common/locales/ru"; import {Tf2dataService} from "./services/tf2data.service"; +import {MatDividerModule} from "@angular/material/divider"; registerLocaleData(localeRu, "ru") @@ -43,24 +44,25 @@ registerLocaleData(localeRu, "ru") RulesPageComponent, BanlistPageComponent ], - imports: [ - BrowserModule, - AppRoutingModule, - BrowserAnimationsModule, - MatToolbarModule, - MatIconModule, - MatButtonModule, - MatGridListModule, - MatCardModule, - MatInputModule, - MatChipsModule, - MatExpansionModule, - MatMenuModule, - HttpClientModule, - MatSnackBarModule, - MatAutocompleteModule, - FormsModule - ], + imports: [ + BrowserModule, + AppRoutingModule, + BrowserAnimationsModule, + MatToolbarModule, + MatIconModule, + MatButtonModule, + MatGridListModule, + MatCardModule, + MatInputModule, + MatChipsModule, + MatExpansionModule, + MatMenuModule, + HttpClientModule, + MatSnackBarModule, + MatAutocompleteModule, + FormsModule, + MatDividerModule + ], providers: [ {provide: LOCALE_ID, useValue: 'ru' }, AnnonceService, diff --git a/src/app/entities/profile/Permition.ts b/src/app/entities/profile/Permition.ts new file mode 100644 index 0000000..ea223d9 --- /dev/null +++ b/src/app/entities/profile/Permition.ts @@ -0,0 +1,7 @@ +export interface Permition { + flags: string; + u_timestamp: number; + amount: number; + immunity: number; + status: string +} diff --git a/src/app/entities/profile/PlayOn.ts b/src/app/entities/profile/PlayOn.ts new file mode 100644 index 0000000..bb00153 --- /dev/null +++ b/src/app/entities/profile/PlayOn.ts @@ -0,0 +1,7 @@ +export interface PlayOn { + server_id: string; + player_id: number; + ip: string; + name: string; + country: string; +} diff --git a/src/app/entities/profile/PlayerProfile.ts b/src/app/entities/profile/PlayerProfile.ts index a9ebe24..fe895a5 100644 --- a/src/app/entities/profile/PlayerProfile.ts +++ b/src/app/entities/profile/PlayerProfile.ts @@ -1,22 +1,26 @@ import {SteamData} from "./SteamData"; import {SteamIDs} from "./SteamIDs"; +import {Ban} from "../ban/Ban"; +import {Permition} from "./Permition"; +import {Reports} from "./Reports"; +import {PlayOn} from "./PlayOn"; export class PlayerProfile { - ban: any|null = null; + ban: Ban|null = null; gametime: {[srv_name: string]: {[map_name: string]: number}} = {}; lastplay: {[srv_name: string]: {[map_name: string]: number}} = {}; - permition: any|null = null; + permition: Permition|null = null; response_time: {[request: string]: number} = {}; steam_data: SteamData|null = null; steamids: SteamIDs|null = null; - play_on: any|null = null; + play_on: PlayOn|null = null; attached_discords: any[]|null = null; donates: any[]|null = null; ban_list: any[]|null = null; killfeed: any|null = null; killfeed_current: any = null; - messages: any = null; - reports: any = null; + messages: number|null = null; + reports: Reports|null = null; static fromData(data:any): PlayerProfile { const p = new PlayerProfile(); diff --git a/src/app/entities/profile/ProfileRequestData.ts b/src/app/entities/profile/ProfileRequestData.ts index 4d7f3d7..8b24214 100644 --- a/src/app/entities/profile/ProfileRequestData.ts +++ b/src/app/entities/profile/ProfileRequestData.ts @@ -16,7 +16,8 @@ export class ProfileRequestData { ProfileRequestData.PLAY_ON, ProfileRequestData.PERMITION, ProfileRequestData.BAN, - ProfileRequestData.STEAM_DATA + ProfileRequestData.STEAM_DATA, + ProfileRequestData.REPORTS ] param: string; description: string; diff --git a/src/app/entities/profile/Reports.ts b/src/app/entities/profile/Reports.ts new file mode 100644 index 0000000..c89e555 --- /dev/null +++ b/src/app/entities/profile/Reports.ts @@ -0,0 +1,5 @@ +export interface Reports { + created: number; + accepted: number; + selfcount: number; +} diff --git a/src/app/pages/profile-page/profile-page.component.html b/src/app/pages/profile-page/profile-page.component.html index d31157d..fd0c39d 100644 --- a/src/app/pages/profile-page/profile-page.component.html +++ b/src/app/pages/profile-page/profile-page.component.html @@ -15,7 +15,166 @@
-
-

Профиль малютки

+
+
+ + + {{profile.steam_data.nickname}} + +
+

Steam64: {{profile.steamids.steam64}}

+

Steam3: {{profile.steamids.steam3}}

+

Steam2: {{profile.steamids.steam2}}

+
+
+ +
+ + + + +
+ + Имеет {{profile.permition.status}} права + +
+

Назначены: {{profile.permition.u_timestamp * 1000 | date:"hh:mm dd.MM.YYYY"}}

+

{{profile.permition.amount == 0?'Выданы на неопределенный срок':'Выданы до: ' + (((profile.permition.u_timestamp + profile.permition.amount) * 1000)| date:"hh:mm dd.MM.YYYY")}}

+
+
+
+ + Бан, {{profile.ban.ban_length_seconds > 0?'до ' + ((profile.ban.ban_utime+profile.ban.ban_length_seconds)*1000 | date:"hh:mm dd.MM.YYYY"):'навсегда'}} + +
+

Причина: {{profile.ban.ban_reason}}

+

Дата: {{profile.ban.ban_utime*1000 | date:"hh:mm dd.MM.YYYY"}}

+
+
+ + + + + + +
+
+
+ + {{profile.reports.created}} + репортов создал + + + {{profile.reports.accepted}} + раз жаловались + + + {{profile.messages}} + раз писал в чат + + + Сейчас играет + на {{profile.play_on.server_id}} из {{profile.play_on.country}} + + + IP адрес + нажми чтоб скопировать + +
+ +
+ + + + + Последние подключение + + +
+

ебануть табличку где по серверам выборка когда чел полсдений раз заходил

+
+
+ + + + Наиграно времени + + +
+

ебануть табличку где разпределение по времени

+
+
+ + + + История банов + + +
+

Тоже табличку

+
+
+ + + + История получения VIP + + +
+

Табличка где каво когда

+
+
+ + + + Репорты с участием игрока + + +
+

Табличку с репортом

+
+
+ + + + Сообщения пользователя + + +
+

табличку с поиском сообщений

+
+
+ + + + Убийства на сервере + + +
+

табличку с убийствами

+
+
+ + + + Смерти на сервере + + +
+

huy

+
+
+ + + + Время загрузки данных с сервера (не для пельменя) + + +
+

{{req.key}} - {{req.value*1000}} милисекунды

+
+
+
+
diff --git a/src/app/pages/profile-page/profile-page.component.scss b/src/app/pages/profile-page/profile-page.component.scss index e69de29..b9ba95f 100644 --- a/src/app/pages/profile-page/profile-page.component.scss +++ b/src/app/pages/profile-page/profile-page.component.scss @@ -0,0 +1,7 @@ +.container { + padding: 24px; +} + +p { + margin: 0 0; +} diff --git a/src/app/pages/servers-page/servers-page.component.html b/src/app/pages/servers-page/servers-page.component.html index 526a8ab..8fc0ead 100644 --- a/src/app/pages/servers-page/servers-page.component.html +++ b/src/app/pages/servers-page/servers-page.component.html @@ -121,7 +121,7 @@ + (click)="authService.isAuth()?actionService.goToUrlViaRouter(['profile', player.steam.steam64]):actionService.showSnack('Сначала нужно войти на сайте')"> Открыть профиль на сайте @@ -131,7 +131,7 @@ в стиме + (click)="authService.isAuth()?null:actionService.showSnack('Сначала нужно войти на сайте')"> Пожаловаться на игрока который играет diff --git a/src/app/pages/servers-page/servers-page.component.ts b/src/app/pages/servers-page/servers-page.component.ts index 86696c6..747ec51 100644 --- a/src/app/pages/servers-page/servers-page.component.ts +++ b/src/app/pages/servers-page/servers-page.component.ts @@ -4,6 +4,7 @@ import {Server} from "../../entities/servers/Server"; import {KeyValue} from "@angular/common"; import {ActionService} from "../../services/action.service"; import {Tf2dataService} from "../../services/tf2data.service"; +import {AuthService} from "../../services/auth.service"; @Component({ selector: 'app-servers-page', @@ -16,7 +17,8 @@ export class ServersPageComponent implements OnInit { constructor(private servers_ws:WebsocketServersListenerService, public actionService: ActionService, - public tf2data: Tf2dataService) { } + public tf2data: Tf2dataService, + public authService: AuthService) { } ngOnInit(): void { this.servers_ws.getServers().subscribe((r) => { diff --git a/src/app/services/auth.service.ts b/src/app/services/auth.service.ts index 9c1a450..172a23b 100644 --- a/src/app/services/auth.service.ts +++ b/src/app/services/auth.service.ts @@ -23,7 +23,7 @@ export class AuthService { login() { sessionStorage.removeItem(AuthService.KEY); - window.open("api/auth/login?subdomain=tf3") + window.open(`api/auth/login?subdomain=${location.hostname.split(".").shift()}`) } logout() { diff --git a/src/styles.scss b/src/styles.scss index f16e383..aa15673 100644 --- a/src/styles.scss +++ b/src/styles.scss @@ -205,3 +205,9 @@ span { grid-template-columns: repeat(auto-fill, minmax(250px, 1fr)); gap: 24px; } + +.responsive-grid-400 { + display: grid; + grid-template-columns: repeat(auto-fill, minmax(350px, 1fr)); + gap: 24px; +}