itube-specs 0.0.195
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +121 -0
- package/components/cards/f-video-mini-card.vue +49 -0
- package/components/grids/f-grid-categories.vue +20 -0
- package/components/grids/f-grid-channels.vue +23 -0
- package/components/grids/f-grid-models.vue +25 -0
- package/components/grids/f-grid-playlists.vue +21 -0
- package/components/grids/f-grid-videos.vue +33 -0
- package/components/page-components/f-breadcrumbs.vue +44 -0
- package/components/page-components/f-chips-panel.vue +101 -0
- package/components/page-components/f-pagination.vue +206 -0
- package/components/page-components/f-report.vue +221 -0
- package/components/page-components/f-share.vue +96 -0
- package/components/page-components/f-sort.vue +57 -0
- package/components/page-components/f-videos-title.vue +20 -0
- package/components/ui/f-button.vue +50 -0
- package/components/ui/f-checkbox.vue +55 -0
- package/components/ui/f-chips.vue +116 -0
- package/components/ui/f-count.vue +12 -0
- package/components/ui/f-country.vue +26 -0
- package/components/ui/f-dropdown.vue +122 -0
- package/components/ui/f-icon.vue +19 -0
- package/components/ui/f-img.vue +46 -0
- package/components/ui/f-input.vue +162 -0
- package/components/ui/f-label.vue +20 -0
- package/components/ui/f-link.vue +33 -0
- package/components/ui/f-model-tag.vue +28 -0
- package/components/ui/f-notification.vue +77 -0
- package/components/ui/f-popup.vue +136 -0
- package/components/ui/f-radio.vue +56 -0
- package/components/ui/f-select.vue +88 -0
- package/components/ui/f-slider.vue +55 -0
- package/components/ui/f-snackbar.vue +47 -0
- package/components/ui/f-timestamp.vue +51 -0
- package/components/ui/f-toggle.vue +29 -0
- package/composables/use-antiadblock-domains.ts +20 -0
- package/composables/use-auth-popup.ts +25 -0
- package/composables/use-convert-query-categories.ts +7 -0
- package/composables/use-generate-link.ts +30 -0
- package/composables/use-get-pure-route-name.ts +5 -0
- package/composables/use-get-videos-filter-request.ts +30 -0
- package/composables/use-meta.ts +42 -0
- package/composables/use-playlist-edit.ts +36 -0
- package/composables/use-report-popup.ts +21 -0
- package/composables/use-seo-links.ts +87 -0
- package/composables/use-share-popup.ts +23 -0
- package/composables/use-snackbar.ts +52 -0
- package/composables/use-test-composable.ts +3 -0
- package/lib/alphabet-items.ts +2 -0
- package/lib/contact-forms-scheme.ts +98 -0
- package/lib/contacts/report-issue-items.ts +5 -0
- package/lib/contacts/report-malware-items.ts +6 -0
- package/lib/contacts/report-reasons-items.ts +12 -0
- package/lib/contacts/report-wrong-items.ts +6 -0
- package/lib/index.ts +7 -0
- package/lib/report-forms-scheme.ts +205 -0
- package/nuxt.config.ts +20 -0
- package/package.json +53 -0
- package/runtime/enums/async-data.ts +48 -0
- package/runtime/enums/auth-step.ts +5 -0
- package/runtime/enums/contacts-subjects.ts +7 -0
- package/runtime/enums/languages.ts +9 -0
- package/runtime/enums/niche.ts +6 -0
- package/runtime/enums/playlist-step.ts +5 -0
- package/runtime/enums/playlist-type.ts +4 -0
- package/runtime/enums/report-forms-subjects.ts +7 -0
- package/runtime/index.ts +51 -0
- package/runtime/utils/cleaners/clean-category-card.ts +9 -0
- package/runtime/utils/cleaners/clean-category-info.ts +9 -0
- package/runtime/utils/cleaners/clean-channel-card.ts +12 -0
- package/runtime/utils/cleaners/clean-channel-info.ts +13 -0
- package/runtime/utils/cleaners/clean-model-card.ts +9 -0
- package/runtime/utils/cleaners/clean-model-info.ts +11 -0
- package/runtime/utils/cleaners/clean-playlist-card.ts +16 -0
- package/runtime/utils/cleaners/clean-playlist-data.ts +15 -0
- package/runtime/utils/cleaners/clean-playlist-video.ts +12 -0
- package/runtime/utils/cleaners/clean-profile-data.ts +11 -0
- package/runtime/utils/cleaners/clean-user-playlists-card.ts +11 -0
- package/runtime/utils/cleaners/clean-video-card.ts +19 -0
- package/runtime/utils/cleaners/clean-video-data.ts +27 -0
- package/runtime/utils/compress-image.ts +27 -0
- package/runtime/utils/converters/convert-categories-to-chips.ts +13 -0
- package/runtime/utils/converters/convert-categories-to-footer.ts +11 -0
- package/runtime/utils/converters/convert-date-to-timestamp.ts +37 -0
- package/runtime/utils/converters/convert-model-card-to-chips.ts +13 -0
- package/runtime/utils/converters/convert-string.ts +56 -0
- package/runtime/utils/converters/group-categories-by-first-letter.ts +24 -0
- package/runtime/utils/converters/group-objects-by-first-letter.ts +16 -0
- package/runtime/utils/format-date.ts +12 -0
- package/runtime/utils/format-number.ts +12 -0
- package/runtime/utils/format-time-ago.ts +21 -0
- package/runtime/utils/get-duration.ts +17 -0
- package/runtime/utils/get-month.ts +22 -0
- package/runtime/utils/get-multiple-query.ts +26 -0
- package/runtime/utils/get-selected-query.ts +6 -0
- package/runtime/utils/is-mobile.ts +15 -0
- package/runtime/utils/normalize-url.ts +43 -0
- package/runtime/utils/on-backdrop-click.ts +5 -0
- package/runtime/utils/scroll-lock.ts +28 -0
- package/runtime/utils/server/abort-controller.ts +14 -0
- package/runtime/utils/server/api-helper.ts +41 -0
- package/runtime/utils/server/get-url-with-proxied-params.ts +6 -0
- package/runtime/utils/server/parse-api-error.ts +14 -0
- package/runtime/utils/server/server-api-helper.ts +28 -0
- package/runtime/utils/validate-email.ts +4 -0
- package/runtime/utils/validate-password.ts +3 -0
- package/runtime/utils/validate-phone.ts +4 -0
- package/runtime/utils/validate-username.ts +4 -0
- package/runtime/utils/video-data-add-model-icon.ts +20 -0
- package/runtime/utils/vtt-helper.ts +86 -0
- package/types/authorization-forms.d.ts +16 -0
- package/types/breadcrumb-item.d.ts +4 -0
- package/types/button-sizes.d.ts +1 -0
- package/types/button-themes.d.ts +1 -0
- package/types/card-info.d.ts +22 -0
- package/types/category-card.d.ts +8 -0
- package/types/change-email-form.d.ts +3 -0
- package/types/change-password-form.d.ts +4 -0
- package/types/channel-card.d.ts +10 -0
- package/types/chips-item.d.ts +8 -0
- package/types/contacts-form.d.ts +10 -0
- package/types/contacts-scheme.d.ts +14 -0
- package/types/country.d.ts +5 -0
- package/types/css-breakpoints.d.ts +1 -0
- package/types/filter-scheme.d.ts +37 -0
- package/types/fluid-player.d.ts +226 -0
- package/types/gender.d.ts +5 -0
- package/types/group-categories.d.ts +15 -0
- package/types/index.d.ts +59 -0
- package/types/input-types.d.ts +1 -0
- package/types/link-item.d.ts +6 -0
- package/types/model-card.d.ts +7 -0
- package/types/model-filter-payload.d.ts +4 -0
- package/types/model-filter.d.ts +15 -0
- package/types/model-group.d.ts +5 -0
- package/types/model-tag.d.ts +5 -0
- package/types/multi-suggest.d.ts +105 -0
- package/types/navigation-items.d.ts +10 -0
- package/types/paginated-response.d.ts +8 -0
- package/types/parameter-model.d.ts +14 -0
- package/types/playlist-card.d.ts +16 -0
- package/types/playlist-data.d.ts +15 -0
- package/types/playlist-info-type.d.ts +28 -0
- package/types/playlist-video-form.d.ts +9 -0
- package/types/profile-data.d.ts +9 -0
- package/types/raw/raw-category-card.d.ts +23 -0
- package/types/raw/raw-category-info.d.ts +23 -0
- package/types/raw/raw-channel-card.d.ts +29 -0
- package/types/raw/raw-channel-info.d.ts +29 -0
- package/types/raw/raw-model-card.d.ts +53 -0
- package/types/raw/raw-model-info.d.ts +54 -0
- package/types/raw/raw-playlist-card.d.ts +27 -0
- package/types/raw/raw-playlist-data.d.ts +29 -0
- package/types/raw/raw-playlist-user.d.ts +24 -0
- package/types/raw/raw-playlist-video.d.ts +18 -0
- package/types/raw/raw-profile-data.d.ts +22 -0
- package/types/raw/raw-video-card.d.ts +78 -0
- package/types/raw/raw-video-data.d.ts +53 -0
- package/types/recovery-password-form.d.ts +4 -0
- package/types/related-phrases.d.ts +6 -0
- package/types/report-form.d.ts +9 -0
- package/types/report-scheme.d.ts +21 -0
- package/types/request-filters.d.ts +13 -0
- package/types/request-pagination.d.ts +5 -0
- package/types/search-top-models.d.ts +6 -0
- package/types/select-item.d.ts +10 -0
- package/types/tab-item.d.ts +6 -0
- package/types/thumbs-urls.d.ts +13 -0
- package/types/video-card.d.ts +18 -0
- package/types/video-data.d.ts +36 -0
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
interface AboutItem {
|
|
2
|
+
key: string;
|
|
3
|
+
sizeCache: string;
|
|
4
|
+
state: string;
|
|
5
|
+
unknownFields: string;
|
|
6
|
+
value: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
interface Body {
|
|
10
|
+
breastSize: string;
|
|
11
|
+
build: string;
|
|
12
|
+
eyeColor: string;
|
|
13
|
+
hairColor: string;
|
|
14
|
+
hairLength: string;
|
|
15
|
+
penisSize: string;
|
|
16
|
+
sizeCache: string;
|
|
17
|
+
state: string;
|
|
18
|
+
unknownFields: string;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
interface Person {
|
|
22
|
+
age: string;
|
|
23
|
+
body: Body;
|
|
24
|
+
sex: string;
|
|
25
|
+
sexualPreference: string;
|
|
26
|
+
sizeCache: string;
|
|
27
|
+
state: string;
|
|
28
|
+
unknownFields: string;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
interface ProfilePicture {
|
|
32
|
+
key: string;
|
|
33
|
+
sizeCache: string;
|
|
34
|
+
state: string;
|
|
35
|
+
unknownFields: string;
|
|
36
|
+
value: string;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
interface AwempireModel {
|
|
40
|
+
about: AboutItem[];
|
|
41
|
+
chatRoomUrl: string;
|
|
42
|
+
country: string;
|
|
43
|
+
ethnicity: string;
|
|
44
|
+
flags: string[];
|
|
45
|
+
id: string;
|
|
46
|
+
interactiveToyStatus: string;
|
|
47
|
+
languages: string[];
|
|
48
|
+
persons: Person[];
|
|
49
|
+
profilePictures: ProfilePicture[];
|
|
50
|
+
rating: number;
|
|
51
|
+
sizeCache: string;
|
|
52
|
+
state: string;
|
|
53
|
+
tags: string[];
|
|
54
|
+
unknownFields: string;
|
|
55
|
+
username: string;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
interface Category {
|
|
59
|
+
guid: string;
|
|
60
|
+
name: string;
|
|
61
|
+
title: string;
|
|
62
|
+
videosCount: number;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
interface Model {
|
|
66
|
+
title: string;
|
|
67
|
+
videosCount: number;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
interface Stream {
|
|
71
|
+
key: string;
|
|
72
|
+
sizeCache: string;
|
|
73
|
+
state: string;
|
|
74
|
+
unknownFields: string;
|
|
75
|
+
value: string;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
interface StripcashModel {
|
|
79
|
+
clickUrl: string;
|
|
80
|
+
country: string;
|
|
81
|
+
flags: string[];
|
|
82
|
+
gender: string;
|
|
83
|
+
hitCategory: boolean;
|
|
84
|
+
id: number;
|
|
85
|
+
languages: string[];
|
|
86
|
+
popularSnapshotUrl: string;
|
|
87
|
+
previewUrlThumbSmall: string;
|
|
88
|
+
sizeCache: string;
|
|
89
|
+
snapshotUrl: string;
|
|
90
|
+
state: string;
|
|
91
|
+
streamUrl: string;
|
|
92
|
+
streams: Stream[];
|
|
93
|
+
tags: string[];
|
|
94
|
+
unknownFields: string;
|
|
95
|
+
username: string;
|
|
96
|
+
viewersCount: number;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
export interface IMultiSuggest {
|
|
100
|
+
awempireModels: AwempireModel[];
|
|
101
|
+
categories: Category[];
|
|
102
|
+
models: Model[];
|
|
103
|
+
searchPhrases: string[];
|
|
104
|
+
stripcashModels: StripcashModel[];
|
|
105
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { IModelGroup } from '~/types/model-group';
|
|
2
|
+
|
|
3
|
+
export interface IParameterModelValue {
|
|
4
|
+
name: string
|
|
5
|
+
title: string
|
|
6
|
+
}
|
|
7
|
+
|
|
8
|
+
export interface IParameterModel {
|
|
9
|
+
name: string
|
|
10
|
+
title: string
|
|
11
|
+
values: IParameterModelValue[]
|
|
12
|
+
group: IModelGroup
|
|
13
|
+
kind: 'range' | 'select'
|
|
14
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { EPlaylistType } from '../runtime/enums/playlist-type';
|
|
2
|
+
|
|
3
|
+
export interface IPlaylistCard {
|
|
4
|
+
created: number;
|
|
5
|
+
id: string;
|
|
6
|
+
name: string;
|
|
7
|
+
username: string;
|
|
8
|
+
playlistType: EPlaylistType;
|
|
9
|
+
thumbUrls: string[];
|
|
10
|
+
videosCount: number;
|
|
11
|
+
firstVideoId?: string;
|
|
12
|
+
searchTags?: string[];
|
|
13
|
+
views?: number;
|
|
14
|
+
likes?: number;
|
|
15
|
+
dislikes?: number;
|
|
16
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { EPlaylistType } from '../runtime/enums/playlist-type';
|
|
2
|
+
|
|
3
|
+
export interface IPlaylistData {
|
|
4
|
+
updated: number;
|
|
5
|
+
id: string;
|
|
6
|
+
name: string;
|
|
7
|
+
username: string;
|
|
8
|
+
playlistType: EPlaylistType;
|
|
9
|
+
videosCount: number;
|
|
10
|
+
firstVideoId: string;
|
|
11
|
+
searchTags: string[];
|
|
12
|
+
views: number;
|
|
13
|
+
likes: number;
|
|
14
|
+
dislikes: number;
|
|
15
|
+
}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { IThumbUrls, ICardInfo } from '../types/index.d.ts';
|
|
2
|
+
|
|
3
|
+
type Thumb = {
|
|
4
|
+
videoMd5: string;
|
|
5
|
+
thumbNum: number;
|
|
6
|
+
urls: IThumbUrls;
|
|
7
|
+
};
|
|
8
|
+
|
|
9
|
+
export interface IPlaylistInfoType extends ICardInfo {
|
|
10
|
+
guid: string;
|
|
11
|
+
created: number;
|
|
12
|
+
updated: number;
|
|
13
|
+
id: string;
|
|
14
|
+
title: string;
|
|
15
|
+
identityGuid: string;
|
|
16
|
+
username: string;
|
|
17
|
+
playlistType: "public" | "private";
|
|
18
|
+
niche: string;
|
|
19
|
+
domain: string;
|
|
20
|
+
thumbs: Thumb[];
|
|
21
|
+
videosCount: number;
|
|
22
|
+
firstVideoId: string;
|
|
23
|
+
searchTags: string[];
|
|
24
|
+
views: number;
|
|
25
|
+
likes: number;
|
|
26
|
+
dislikes: number;
|
|
27
|
+
availableVideos: number;
|
|
28
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { IThumbUrls } from '../thumbs-urls';
|
|
2
|
+
|
|
3
|
+
export interface IRawCategoryCard {
|
|
4
|
+
guid: string; // unused
|
|
5
|
+
name: string; // ✅ used (для slug → computed: slug)
|
|
6
|
+
title: string; // ✅ used (в NuxtLink title и текст карточки)
|
|
7
|
+
tags: string[]; // unused
|
|
8
|
+
meta_title: string; // unused
|
|
9
|
+
meta_description: string; // unused
|
|
10
|
+
meta_keywords: string; // unused
|
|
11
|
+
language_guid: string; // unused
|
|
12
|
+
language_name: string; // unused
|
|
13
|
+
language_title: string; // unused
|
|
14
|
+
is_top: boolean; // unused
|
|
15
|
+
is_primary_filter: boolean; // unused
|
|
16
|
+
videosCount: number; // ✅ used (в FLabel)
|
|
17
|
+
video_guid: string; // unused
|
|
18
|
+
video_md5: string; // unused
|
|
19
|
+
thumb_number: number; // unused
|
|
20
|
+
description: string; // unused
|
|
21
|
+
header: string; // unused
|
|
22
|
+
video_thumb_urls: IThumbUrls; // ✅ used (для card.videoThumbUrls.webp['480X270'])
|
|
23
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { IThumbUrls } from '../thumbs-urls';
|
|
2
|
+
|
|
3
|
+
export interface IRawCategoryInfo {
|
|
4
|
+
guid: string;
|
|
5
|
+
name: string;
|
|
6
|
+
title: string;
|
|
7
|
+
tags: string[]; // unused
|
|
8
|
+
meta_title: string; // unused
|
|
9
|
+
meta_description: string; // unused
|
|
10
|
+
meta_keywords: string; // unused
|
|
11
|
+
language_guid: string; // unused
|
|
12
|
+
language_name: string; // unused
|
|
13
|
+
language_title: string; // unused
|
|
14
|
+
is_top: boolean; // unused
|
|
15
|
+
is_primary_filter: boolean; // unused
|
|
16
|
+
videosCount: number;
|
|
17
|
+
video_guid: string; // unused
|
|
18
|
+
video_md5: string; // unused
|
|
19
|
+
thumb_number: number; // unused
|
|
20
|
+
description: string;
|
|
21
|
+
header: string; // unused
|
|
22
|
+
video_thumb_urls: IThumbUrls;
|
|
23
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { IThumbUrls } from '../thumbs-urls';
|
|
2
|
+
|
|
3
|
+
export interface IRawChannelCard {
|
|
4
|
+
guid: string;
|
|
5
|
+
name: string;
|
|
6
|
+
url: string;
|
|
7
|
+
description: string; // unused
|
|
8
|
+
adv_text: string; // unused
|
|
9
|
+
adv_link: string; // unused
|
|
10
|
+
player_text: string; // unused
|
|
11
|
+
player_link: string; // unused
|
|
12
|
+
avatar_md5: string; // unused
|
|
13
|
+
mobile_banner_md5: string; // unused
|
|
14
|
+
mobile_banner_url: string; // unused
|
|
15
|
+
desktop_banner_md5: string; // unused
|
|
16
|
+
desktop_banner_url: string; // unused
|
|
17
|
+
tags: string[] | null; // unused
|
|
18
|
+
videos_count: number;
|
|
19
|
+
allow_ads: boolean; // unused
|
|
20
|
+
video_guid: string; // unused
|
|
21
|
+
video_md5: string; // unused
|
|
22
|
+
thumb_number: number; // unused
|
|
23
|
+
is_network: boolean;
|
|
24
|
+
updated: number;
|
|
25
|
+
avatar_url: string;
|
|
26
|
+
mobile_banner_image_url: string; // unused
|
|
27
|
+
desktop_banner_image_url: string; // unused
|
|
28
|
+
video_thumb_urls: IThumbUrls;
|
|
29
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { IThumbUrls } from '../thumbs-urls';
|
|
2
|
+
|
|
3
|
+
export interface IRawChannelInfo {
|
|
4
|
+
guid: string;
|
|
5
|
+
name: string;
|
|
6
|
+
url: string;
|
|
7
|
+
description: string;
|
|
8
|
+
adv_text: string; // unused
|
|
9
|
+
adv_link: string; // unused
|
|
10
|
+
player_text: string; // unused
|
|
11
|
+
player_link: string; // unused
|
|
12
|
+
avatar_md5: string; // unused
|
|
13
|
+
mobile_banner_md5: string; // unused
|
|
14
|
+
mobile_banner_url: string; // unused
|
|
15
|
+
desktop_banner_md5: string; // unused
|
|
16
|
+
desktop_banner_url: string; // unused
|
|
17
|
+
tags: string[] | null; // unused
|
|
18
|
+
videos_count: number;
|
|
19
|
+
allow_ads: boolean; // unused
|
|
20
|
+
video_guid: string; // unused
|
|
21
|
+
video_md5: string; // unused
|
|
22
|
+
thumb_number: number; // unused
|
|
23
|
+
is_network: boolean;
|
|
24
|
+
updated: number;
|
|
25
|
+
avatar_url: string;
|
|
26
|
+
mobile_banner_image_url: string; // unused
|
|
27
|
+
desktop_banner_image_url: string; // unused
|
|
28
|
+
video_thumb_urls: IThumbUrls;
|
|
29
|
+
}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { IThumbUrls } from '../thumbs-urls';
|
|
2
|
+
|
|
3
|
+
export interface IRawModelCard {
|
|
4
|
+
guid: string; // unused
|
|
5
|
+
title: string;
|
|
6
|
+
birthday: number; // unused
|
|
7
|
+
birthplace: string; // unused
|
|
8
|
+
description: string; // unused
|
|
9
|
+
eye_color: string; // unused
|
|
10
|
+
ethnicity: string; // unused
|
|
11
|
+
facial_hair: boolean; // unused
|
|
12
|
+
fake_boobs: boolean; // unused
|
|
13
|
+
foreskin: string; // unused
|
|
14
|
+
gender: string; // unused
|
|
15
|
+
hair_color: string; // unused
|
|
16
|
+
height: number; // unused
|
|
17
|
+
weight: number; // unused
|
|
18
|
+
interested: string; // unused
|
|
19
|
+
hobbies: string; // unused
|
|
20
|
+
piercings: boolean; // unused
|
|
21
|
+
relationship_status: string; // unused
|
|
22
|
+
star_sign: string; // unused
|
|
23
|
+
tattoos: boolean; // unused
|
|
24
|
+
website: string; // unused
|
|
25
|
+
bio: string; // unused
|
|
26
|
+
ranking: { // unused
|
|
27
|
+
LastMonth: string;
|
|
28
|
+
ModelRank: string;
|
|
29
|
+
MonthlyRank: string;
|
|
30
|
+
Subscribers: string;
|
|
31
|
+
VideoViews: string;
|
|
32
|
+
WeeklyRank: string;
|
|
33
|
+
YearlyRank: string;
|
|
34
|
+
};
|
|
35
|
+
social: { // unused
|
|
36
|
+
[ key: string ]: string | undefined;
|
|
37
|
+
};
|
|
38
|
+
orientation: string; // unused
|
|
39
|
+
videos_count: number; // unused (в шаблоне используется `card.videosCount`, см. ниже)
|
|
40
|
+
likes: number; // unused
|
|
41
|
+
dislikes: number; // unused
|
|
42
|
+
popularity: number; // unused
|
|
43
|
+
video_guid: string; // unused
|
|
44
|
+
video_md5: string; // unused
|
|
45
|
+
thumb_number: number; // unused
|
|
46
|
+
views: number; // unused
|
|
47
|
+
primary_image_md5: string; // unused (но вероятно используется косвенно через `primaryImageUrl`)
|
|
48
|
+
primary_image_url: string;
|
|
49
|
+
rank: number; // unused
|
|
50
|
+
number_of_videos_in_recent_days: number; // unused
|
|
51
|
+
turnons: string; // unused
|
|
52
|
+
video_thumb_urls: IThumbUrls;
|
|
53
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { IThumbUrls } from '../thumbs-urls';
|
|
2
|
+
import { IParameterModel } from '~/types';
|
|
3
|
+
|
|
4
|
+
export interface IRawModelInfo {
|
|
5
|
+
guid: string; // unused
|
|
6
|
+
title: string;
|
|
7
|
+
birthday: number;
|
|
8
|
+
birthplace: string;
|
|
9
|
+
description: string;
|
|
10
|
+
eye_color: string;
|
|
11
|
+
ethnicity: string;
|
|
12
|
+
facial_hair: boolean;
|
|
13
|
+
fake_boobs: boolean; // unused
|
|
14
|
+
foreskin: string; // unused
|
|
15
|
+
gender: string;
|
|
16
|
+
hair_color: string;
|
|
17
|
+
height: number;
|
|
18
|
+
weight: number; // unused
|
|
19
|
+
interested: string;
|
|
20
|
+
hobbies: string; // unused
|
|
21
|
+
piercings: boolean;
|
|
22
|
+
relationship_status: string;
|
|
23
|
+
star_sign: string;
|
|
24
|
+
tattoos: boolean;
|
|
25
|
+
website: string; // unused
|
|
26
|
+
bio: string; // unused
|
|
27
|
+
ranking: { // unused
|
|
28
|
+
LastMonth: string;
|
|
29
|
+
ModelRank: string;
|
|
30
|
+
MonthlyRank: string;
|
|
31
|
+
Subscribers: string;
|
|
32
|
+
VideoViews: string;
|
|
33
|
+
WeeklyRank: string;
|
|
34
|
+
YearlyRank: string;
|
|
35
|
+
};
|
|
36
|
+
social: {
|
|
37
|
+
[key: string]: string | undefined;
|
|
38
|
+
};
|
|
39
|
+
orientation: string;
|
|
40
|
+
videos_count: number;
|
|
41
|
+
likes: number; // unused
|
|
42
|
+
dislikes: number; // unused
|
|
43
|
+
popularity: number; // unused
|
|
44
|
+
video_guid: string; // unused
|
|
45
|
+
video_md5: string; // unused
|
|
46
|
+
thumb_number: number; // unused
|
|
47
|
+
views: number; // unused
|
|
48
|
+
primary_image_md5: string; // unused
|
|
49
|
+
rank: number; // unused
|
|
50
|
+
number_of_videos_in_recent_days: number; // unused
|
|
51
|
+
turnons: string; // unused
|
|
52
|
+
video_thumb_urls: IThumbUrls;
|
|
53
|
+
parameters: IParameterModel[]
|
|
54
|
+
}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { IThumbUrls } from '../thumbs-urls';
|
|
2
|
+
import { EPlaylistType } from '../../runtime';
|
|
3
|
+
|
|
4
|
+
export interface IRawPlaylistCard {
|
|
5
|
+
guid: string; // unused
|
|
6
|
+
created: number;
|
|
7
|
+
updated: number; // unused
|
|
8
|
+
id: string;
|
|
9
|
+
name: string;
|
|
10
|
+
identity_guid: string; // unused
|
|
11
|
+
username: string;
|
|
12
|
+
playlist_type: EPlaylistType;
|
|
13
|
+
niche: string; // unused
|
|
14
|
+
domain: string; // unused
|
|
15
|
+
thumbs: {
|
|
16
|
+
video_md5: string; // unused
|
|
17
|
+
thumb_num: number; // unused
|
|
18
|
+
urls: IThumbUrls;
|
|
19
|
+
}[];
|
|
20
|
+
videos_count: number;
|
|
21
|
+
first_video_id: string;
|
|
22
|
+
search_tags: string[];
|
|
23
|
+
views: number;
|
|
24
|
+
likes: number;
|
|
25
|
+
dislikes: number;
|
|
26
|
+
available_videos: number; // unused
|
|
27
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { IThumbUrls } from '../thumbs-urls';
|
|
2
|
+
import { EPlaylistType } from '../../runtime';
|
|
3
|
+
|
|
4
|
+
export interface IPlaylistThumb {
|
|
5
|
+
video_md5: string;
|
|
6
|
+
thumb_num: number;
|
|
7
|
+
urls: IThumbUrls;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export interface IRawPlaylistData {
|
|
11
|
+
guid: string; // unused
|
|
12
|
+
created: number; // unused
|
|
13
|
+
updated: number; // ✅ used → <FInfoChips :updated="playlistsData.updated" />
|
|
14
|
+
id: string; // ✅ used → :playlist-id="playlistsData.id", link to `/playlists/${id}`
|
|
15
|
+
name: string; // ✅ used → title, heading, dropdown alignment
|
|
16
|
+
identity_guid: string; // unused
|
|
17
|
+
username: string; // ✅ used → <p class="playlist__user-name">{{ playlistsData.username }}</p>
|
|
18
|
+
playlist_type: EPlaylistType; // ✅ used → v-if="playlistsData.playlistType === 'private'"
|
|
19
|
+
niche: string; // unused
|
|
20
|
+
domain: string; // unused
|
|
21
|
+
thumbs: IPlaylistThumb[]; // unused
|
|
22
|
+
videos_count: number; // ✅ used → <FInfoChips :videos-count="..." />
|
|
23
|
+
first_video_id: string; // ✅ used → <FLink :to="`/playlists/${id}/${firstVideoId}`" />
|
|
24
|
+
search_tags: string[]; // ✅ used → searchTags computed
|
|
25
|
+
views: number; // ✅ used → <FInfoChips :views="..." />
|
|
26
|
+
likes: number; // ✅ used (but assigned as **dislikes**)
|
|
27
|
+
dislikes: number; // ✅ used (but assigned as **likes**)
|
|
28
|
+
available_videos: number; // unused
|
|
29
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { EPlaylistType } from '../../runtime';
|
|
2
|
+
|
|
3
|
+
export interface IRawPlaylistsUser {
|
|
4
|
+
guid: string;
|
|
5
|
+
updated: number;
|
|
6
|
+
created: number;
|
|
7
|
+
id: string;
|
|
8
|
+
name: string;
|
|
9
|
+
identity: string;
|
|
10
|
+
username: string;
|
|
11
|
+
playlistType: EPlaylistType;
|
|
12
|
+
niche: string;
|
|
13
|
+
domain: string;
|
|
14
|
+
videoCount: number;
|
|
15
|
+
thumbs: string[];
|
|
16
|
+
availableVideos: number;
|
|
17
|
+
stat: {
|
|
18
|
+
likes: number;
|
|
19
|
+
dislikes: number;
|
|
20
|
+
views: number;
|
|
21
|
+
};
|
|
22
|
+
hasCurrentVideo: boolean;
|
|
23
|
+
firstVideoId: string;
|
|
24
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface IRawPlaylistVideo {
|
|
2
|
+
guid: string;
|
|
3
|
+
updated: number;
|
|
4
|
+
created: number;
|
|
5
|
+
niche: string;
|
|
6
|
+
domain: string;
|
|
7
|
+
playlistId: string;
|
|
8
|
+
videoGuid: string;
|
|
9
|
+
videoId: string;
|
|
10
|
+
name: string;
|
|
11
|
+
videoMd5: string;
|
|
12
|
+
thumbNum: number;
|
|
13
|
+
sOrder: number;
|
|
14
|
+
thumb: string;
|
|
15
|
+
duration: number;
|
|
16
|
+
isDeleted: boolean;
|
|
17
|
+
deletedAt: string | null;
|
|
18
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export interface IRawProfileData {
|
|
2
|
+
username: string; // ✅ used (в <p class="profile__title"> и form.name)
|
|
3
|
+
email: string; // ✅ used (form.email)
|
|
4
|
+
verified_email: boolean; // unused
|
|
5
|
+
avatar: string; // ✅ used (form.avatar)
|
|
6
|
+
identityId: string; // unused
|
|
7
|
+
source: string; // unused
|
|
8
|
+
presentationPhoto: string; // unused
|
|
9
|
+
presentationVideo: string; // unused
|
|
10
|
+
country: string | null; // ✅ used (formCountry init)
|
|
11
|
+
city: string; // ✅ used (form.city)
|
|
12
|
+
name: string; // unused (form.name использует username)
|
|
13
|
+
birthday: number; // ✅ used (form.birthday, and display via fromUnix)
|
|
14
|
+
languages: string[]; // unused
|
|
15
|
+
fetishes: string[] | null; // unused
|
|
16
|
+
gender: string | null; // ✅ used (formGender init)
|
|
17
|
+
orientation: string | null; // unused
|
|
18
|
+
interestedInGender: string | null; // unused
|
|
19
|
+
interestedInOrientation: string | null; // unused
|
|
20
|
+
blocked: boolean; // unused
|
|
21
|
+
blockingReason: string; // unused
|
|
22
|
+
}
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
import { IThumbUrls } from '../thumbs-urls';
|
|
2
|
+
import { ICategoryCard } from '../category-short';
|
|
3
|
+
|
|
4
|
+
interface IVideoAction {
|
|
5
|
+
duration: number;
|
|
6
|
+
title: string;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
interface IChannelVideo {
|
|
10
|
+
adv_link: string;
|
|
11
|
+
adv_text: string;
|
|
12
|
+
allow_ads: boolean;
|
|
13
|
+
avatar_md5: string;
|
|
14
|
+
avatar_url: string;
|
|
15
|
+
description: string;
|
|
16
|
+
desktop_banner_image_url: string;
|
|
17
|
+
desktop_banner_md5: string;
|
|
18
|
+
desktop_banner_url: string;
|
|
19
|
+
guid: string;
|
|
20
|
+
is_network: boolean;
|
|
21
|
+
mobile_banner_image_url: string;
|
|
22
|
+
mobile_banner_md5: string;
|
|
23
|
+
mobile_banner_url: string;
|
|
24
|
+
name: string;
|
|
25
|
+
player_link: string;
|
|
26
|
+
player_text: string;
|
|
27
|
+
tags: string[];
|
|
28
|
+
thumb_number: number;
|
|
29
|
+
updated: number;
|
|
30
|
+
url: string;
|
|
31
|
+
video_guid: string;
|
|
32
|
+
video_md5: string;
|
|
33
|
+
video_thumb_urls: IThumbUrls;
|
|
34
|
+
videos_count: number;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
export interface IRawVideoCard {
|
|
38
|
+
guid: string;
|
|
39
|
+
md5: string; // unused
|
|
40
|
+
quality: string;
|
|
41
|
+
orientation: string; // unused
|
|
42
|
+
duration: number;
|
|
43
|
+
created: number; // unused
|
|
44
|
+
is_hd: boolean; // unused
|
|
45
|
+
title: string;
|
|
46
|
+
description: string; // unused
|
|
47
|
+
views: number;
|
|
48
|
+
likes: number; // unused
|
|
49
|
+
dislikes: number; // unused
|
|
50
|
+
popularity: number; // unused
|
|
51
|
+
id: string;
|
|
52
|
+
tags: string[];
|
|
53
|
+
models: null; // unused
|
|
54
|
+
categories: ICategoryCard[]; // unused
|
|
55
|
+
actions: IVideoAction[]; // unused
|
|
56
|
+
primary_thumb_rank: number; // unused
|
|
57
|
+
is_new: boolean;
|
|
58
|
+
thumb_number: number; // unused
|
|
59
|
+
is_edited: boolean; // unused
|
|
60
|
+
fake_user_name: string; // unused
|
|
61
|
+
referer_phrases: null; // unused
|
|
62
|
+
is_canonical: boolean; // unused
|
|
63
|
+
custom_thumb_md5: string; // unused
|
|
64
|
+
channel: IChannelVideo;
|
|
65
|
+
uploader: Record<string, never>; // unused
|
|
66
|
+
is_deleted: boolean; // unused
|
|
67
|
+
url: string;
|
|
68
|
+
has_reels: boolean; // unused
|
|
69
|
+
cdn_preview_domain: string; // unused
|
|
70
|
+
cdn_thumbs_domain: string; // unused
|
|
71
|
+
cdn_video_domain: string; // unused
|
|
72
|
+
preview_url: string;
|
|
73
|
+
video_url: string; // unused
|
|
74
|
+
thumb_urls: IThumbUrls;
|
|
75
|
+
reels_url: string; // unused
|
|
76
|
+
vtt_url: string; // unused
|
|
77
|
+
vtt_sprite_url: string; // unused
|
|
78
|
+
}
|