multi_embed_player 3.1.0 → 3.1.1

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.
Files changed (117) hide show
  1. package/dist/iframe_api/bilibili.d.ts +210 -0
  2. package/dist/iframe_api/bilibili.d.ts.map +1 -0
  3. package/dist/iframe_api/bilibili.js +1035 -0
  4. package/dist/iframe_api/bilibili.js.map +1 -0
  5. package/dist/iframe_api/niconico.d.ts +191 -0
  6. package/dist/iframe_api/niconico.d.ts.map +1 -0
  7. package/dist/iframe_api/niconico.js +325 -0
  8. package/dist/iframe_api/niconico.js.map +1 -0
  9. package/dist/iframe_api/soundcloud.d.ts +152 -0
  10. package/dist/iframe_api/soundcloud.d.ts.map +1 -0
  11. package/dist/iframe_api/soundcloud.js +360 -0
  12. package/dist/iframe_api/soundcloud.js.map +1 -0
  13. package/dist/iframe_api/youtube.d.ts +96 -0
  14. package/dist/iframe_api/youtube.d.ts.map +1 -0
  15. package/dist/iframe_api/youtube.js +269 -0
  16. package/dist/iframe_api/youtube.js.map +1 -0
  17. package/dist/multi_embed_player.d.ts +215 -0
  18. package/dist/multi_embed_player.d.ts.map +1 -0
  19. package/dist/multi_embed_player.js +921 -0
  20. package/dist/multi_embed_player.js.map +1 -0
  21. package/package.json +1 -1
  22. package/.github/workflows/build-and-deploy.yml +0 -44
  23. package/.gitmodules +0 -3
  24. package/browserExtention/chrome/background.js +0 -55
  25. package/browserExtention/chrome/extention.json +0 -1
  26. package/browserExtention/chrome/liteplayer.js +0 -26439
  27. package/browserExtention/chrome/manifest.json +0 -31
  28. package/browserExtention/chrome/player-selector.js +0 -1854
  29. package/browserExtention/firefox/background.js +0 -27
  30. package/browserExtention/firefox/extention.json +0 -1
  31. package/browserExtention/firefox/liteplayer.js +0 -26439
  32. package/browserExtention/firefox/manifest.json +0 -19
  33. package/browserExtention/firefox/player-selector.js +0 -1854
  34. package/documents/.hugo_build.lock +0 -0
  35. package/documents/archetypes/default.md +0 -5
  36. package/documents/assets/jsconfig.json +0 -11
  37. package/documents/content/docs/install.md +0 -103
  38. package/documents/content/docs/quickstart.md +0 -51
  39. package/documents/content/docs/reference/HTML.md +0 -31
  40. package/documents/content/docs/reference/_index.md +0 -10
  41. package/documents/content/docs/reference/error_code.md +0 -23
  42. package/documents/content/docs/reference/iframe_api.md +0 -737
  43. package/documents/content/docs/reference/iframe_class.md +0 -230
  44. package/documents/content/docs/reference/multi_embed_player_class.md +0 -113
  45. package/documents/content/docs/reference/reserved_words.md +0 -71
  46. package/documents/content/docs/usage/GDPR_mode.md +0 -77
  47. package/documents/content/docs/usage/_index.md +0 -10
  48. package/documents/content/docs/usage/custom_playlist.md +0 -239
  49. package/documents/content/docs/usage/embed_api.md +0 -163
  50. package/documents/content/docs/usage/embed_various_service.md +0 -81
  51. package/documents/content/docs/usage/thumbnail_click.md +0 -57
  52. package/documents/go.mod +0 -8
  53. package/documents/go.sum +0 -14
  54. package/documents/hugo.toml +0 -18
  55. package/documents/layouts/partials/docs/sidebar.html +0 -117
  56. package/documents/layouts/partials/landing/features.html +0 -47
  57. package/documents/layouts/robots.txt +0 -4
  58. package/documents/static/_headers +0 -7
  59. package/documents/static/localStorageCheck.html +0 -27
  60. package/documents/static/no_extention.json +0 -1
  61. package/example.html +0 -27
  62. package/extention.json +0 -1
  63. package/icon/video_not_found.odg +0 -0
  64. package/icon/video_not_found.svgz +0 -0
  65. package/iframe_api/bilibili.ts +0 -1095
  66. package/iframe_api/niconico.ts +0 -429
  67. package/iframe_api/soundcloud.ts +0 -450
  68. package/iframe_api/youtube.ts +0 -311
  69. package/multi_embed_player.ts +0 -989
  70. package/player_api_gate/bilibili-api-gate/cgi/cpp/bilibili-api-gate-cgi.cpp +0 -281
  71. package/player_api_gate/bilibili-api-gate/cgi/go/src.go +0 -46
  72. package/player_api_gate/bilibili-api-gate/cloudflare_workers/package-lock.json +0 -1356
  73. package/player_api_gate/bilibili-api-gate/cloudflare_workers/package.json +0 -12
  74. package/player_api_gate/bilibili-api-gate/cloudflare_workers/src/index.js +0 -50
  75. package/player_api_gate/bilibili-api-gate/cloudflare_workers/wrangler.toml +0 -3
  76. package/player_api_gate/iframe-api-ts/.editorconfig +0 -12
  77. package/player_api_gate/iframe-api-ts/.prettierrc +0 -6
  78. package/player_api_gate/iframe-api-ts/package-lock.json +0 -3054
  79. package/player_api_gate/iframe-api-ts/package.json +0 -18
  80. package/player_api_gate/iframe-api-ts/src/bilibili.ts +0 -49
  81. package/player_api_gate/iframe-api-ts/src/index.ts +0 -35
  82. package/player_api_gate/iframe-api-ts/src/niconico.ts +0 -95
  83. package/player_api_gate/iframe-api-ts/src/soundcloud.ts +0 -38
  84. package/player_api_gate/iframe-api-ts/src/types.ts +0 -115
  85. package/player_api_gate/iframe-api-ts/src/url-proxy.ts +0 -29
  86. package/player_api_gate/iframe-api-ts/src/utils.ts +0 -82
  87. package/player_api_gate/iframe-api-ts/src/youtube.ts +0 -41
  88. package/player_api_gate/iframe-api-ts/test/bilibili.spec.ts +0 -47
  89. package/player_api_gate/iframe-api-ts/test/env.d.ts +0 -3
  90. package/player_api_gate/iframe-api-ts/test/index.spec.ts +0 -59
  91. package/player_api_gate/iframe-api-ts/test/niconico.spec.ts +0 -55
  92. package/player_api_gate/iframe-api-ts/test/soundcloud.spec.ts +0 -55
  93. package/player_api_gate/iframe-api-ts/test/tsconfig.json +0 -8
  94. package/player_api_gate/iframe-api-ts/test/url-proxy.spec.ts +0 -46
  95. package/player_api_gate/iframe-api-ts/test/youtube.spec.ts +0 -45
  96. package/player_api_gate/iframe-api-ts/tsconfig.json +0 -45
  97. package/player_api_gate/iframe-api-ts/vitest.config.mts +0 -11
  98. package/player_api_gate/iframe-api-ts/worker-configuration.d.ts +0 -5768
  99. package/player_api_gate/iframe-api-ts/wrangler.jsonc +0 -47
  100. package/player_api_gate/iframe_api/.editorconfig +0 -13
  101. package/player_api_gate/iframe_api/.prettierrc +0 -6
  102. package/player_api_gate/iframe_api/package-lock.json +0 -1307
  103. package/player_api_gate/iframe_api/package.json +0 -12
  104. package/player_api_gate/iframe_api/src/bilibili_api.js +0 -60
  105. package/player_api_gate/iframe_api/src/index.js +0 -47
  106. package/player_api_gate/iframe_api/src/niconico_api.js +0 -112
  107. package/player_api_gate/iframe_api/src/soundcloud_api.js +0 -57
  108. package/player_api_gate/iframe_api/src/url_proxy.js +0 -28
  109. package/player_api_gate/iframe_api/src/youtube_api.js +0 -44
  110. package/player_api_gate/iframe_api/wrangler.toml +0 -51
  111. package/player_api_gate/niconico-imager/cgi/go/src.go +0 -74
  112. package/player_api_gate/niconico-imager/cloudflare_workers/package-lock.json +0 -2175
  113. package/player_api_gate/niconico-imager/cloudflare_workers/package.json +0 -12
  114. package/player_api_gate/niconico-imager/cloudflare_workers/src/index.js +0 -78
  115. package/player_api_gate/niconico-imager/cloudflare_workers/wrangler.toml +0 -3
  116. package/test_script.html +0 -172
  117. package/tsconfig.json +0 -36
@@ -0,0 +1,210 @@
1
+ interface mep_bilibili_playerVars {
2
+ startSeconds?: number;
3
+ endSeconds?: number;
4
+ autoplay?: number;
5
+ displayComment?: number;
6
+ fastLoad?: number;
7
+ play_control_wrap?: number;
8
+ }
9
+ interface mep_bilibili_content {
10
+ videoId: string;
11
+ width: number;
12
+ height: number;
13
+ playerVars: mep_bilibili_playerVars;
14
+ overwrite?: boolean;
15
+ displayComment?: number;
16
+ play_control_wrap?: number;
17
+ startSeconds?: number;
18
+ endSeconds?: number;
19
+ }
20
+ interface BilibiliApiResponse {
21
+ code: number;
22
+ data?: {
23
+ title: string;
24
+ duration: number;
25
+ pic?: string;
26
+ };
27
+ image_base64?: string | null;
28
+ }
29
+ interface BilibiliPlayerState {
30
+ getPlayerState: string;
31
+ currentTime?: number;
32
+ dulation?: number;
33
+ volumeValue?: number;
34
+ getTitle?: string;
35
+ }
36
+ interface BilibiliQuery {
37
+ bvid: string;
38
+ t?: number;
39
+ autoplay: 0 | 1;
40
+ danmaku: 0 | 1;
41
+ }
42
+ /**
43
+ * Class representing a Bilibili player.
44
+ * @class
45
+ * @classdesc This class provides methods to control a Bilibili player and handle errors.
46
+ * @property {boolean} localStorageCheck - A flag indicating whether the local storage is accessible.
47
+ * @property {boolean} mep_extension_bilibili - A flag indicating whether the extension is installed.
48
+ * @property {string} api_endpoint - The API endpoint for the player.
49
+ * @property {string} no_extention_error - The error message to display when the extension is not installed.
50
+ * @property {string} player_base_url - The base URL for the player.
51
+ * @property {Object} bilibili_api_cache - The cache for the Bilibili API.
52
+ * @property {string} cors_proxy - The CORS proxy for the player.
53
+ * @constructor
54
+ * @param {HTMLElement|String} replacing_element - The element to replace with the player or the ID of the element to replace with the player.
55
+ * @param {Object} content - The content to display in the player.
56
+ * @param {Function} player_set_event_function - The function to set the player event.
57
+ */
58
+ declare class mep_bilibili {
59
+ #private;
60
+ player: HTMLIFrameElement | HTMLElement;
61
+ play_control_wrap: boolean;
62
+ front_error_code: number | undefined;
63
+ loading: boolean;
64
+ before_mute_volume: number;
65
+ content_width: number;
66
+ content_height: number;
67
+ videoid: string;
68
+ original_replacing_element: HTMLElement;
69
+ player_set_event: ((player: HTMLIFrameElement) => void) | undefined;
70
+ seek_time: number;
71
+ seek_time_used: boolean;
72
+ noextention_count_stop: number;
73
+ state: BilibiliPlayerState;
74
+ apicache: Record<string, any>;
75
+ no_extention_pause: boolean;
76
+ startSeconds: number;
77
+ innerStartSeconds: number;
78
+ autoplay_flag: boolean;
79
+ displayCommentMode: boolean;
80
+ fastload: boolean;
81
+ no_extention_estimate_stop: boolean;
82
+ play_start_time: number;
83
+ play_start_count_interval: number | undefined;
84
+ endSeconds: number;
85
+ end_point_observe: number | undefined;
86
+ custom_state: number | undefined;
87
+ estimate_time: number | undefined;
88
+ start_event_count: number;
89
+ end_event_count: number;
90
+ static error_description: {
91
+ 0: string;
92
+ 1: string;
93
+ 2: string;
94
+ 3: string;
95
+ 4: string;
96
+ };
97
+ static localStorageCheck: boolean | null;
98
+ static mep_extension_bilibili: boolean;
99
+ static api_endpoint: string;
100
+ static no_extention_error: string;
101
+ static player_base_url: string;
102
+ static bilibili_api_cache: Record<string, BilibiliApiResponse>;
103
+ static cors_proxy: string;
104
+ static currentTime_delay: number;
105
+ static bilibili_api_promise: Record<string, {
106
+ res: ((value: BilibiliApiResponse) => void)[];
107
+ rej: ((reason?: any) => void)[];
108
+ }>;
109
+ constructor(replacing_element: HTMLElement | string, content: mep_bilibili_content, player_set_event_function?: (player: HTMLIFrameElement) => void);
110
+ /**
111
+ * Loads the video player with the specified content in cue mode.
112
+ * @param {Object} content - The content to display in the player.
113
+ */
114
+ cueVideoById(content: Partial<mep_bilibili_content>): void;
115
+ /**
116
+ * Loads the video player with the specified content in play mode.
117
+ * @param {Object} content - The content to display in the player.
118
+ */
119
+ loadVideoById(content: Partial<mep_bilibili_content>): void;
120
+ /**
121
+ * Returns the current time of the video.
122
+ * @returns {Promise<number>} - The current time of the video.
123
+ */
124
+ getCurrentTime(): number;
125
+ /**
126
+ * Plays the video. If the Bilibili extension is not installed, loads the video with the specified parameters.
127
+ * If the extension is installed, sends a message to the extension to play the video.
128
+ */
129
+ playVideo(): void;
130
+ /**
131
+ * Pauses the video playback. If the Bilibili extension is not detected, it replaces the player with an image and stops the play start count interval.
132
+ * @function
133
+ */
134
+ pauseVideo(): void;
135
+ /**
136
+ * Seeks to the specified time in the video.
137
+ * @async
138
+ * @param {number} seektime - The time to seek to, in seconds.
139
+ */
140
+ seekTo(seektime: number): Promise<void>;
141
+ /**
142
+ * Calculates the real duration of the video based on the start and end seconds.
143
+ * @async
144
+ * @function
145
+ * @returns {Promise<number>} The real duration of the video.
146
+ */
147
+ getRealDulation(): Promise<number>;
148
+ /**
149
+ * Get the duration of the video.
150
+ * @async
151
+ * @returns {Promise<number>} The duration of the video in seconds.
152
+ */
153
+ getDuration(): Promise<number>;
154
+ /**
155
+ * Gets the title of the video.
156
+ * @returns {Promise<string>} The title of the video.
157
+ */
158
+ getTitle(): Promise<string>;
159
+ /**
160
+ * Returns the current state of the player.
161
+ * @async
162
+ * @returns {number} The state of the player. Possible values are:
163
+ * 0 - Player is not ready or cache is not available.
164
+ * 1 - Player is ready and not playing.
165
+ * 2 - Player is playing.
166
+ * 3 - Player is paused.
167
+ * 4 - Player was ended.
168
+ */
169
+ getPlayerState(): Promise<number>;
170
+ /**
171
+ * Sets the volume of the Bilibili player.
172
+ * When not install extention, this function will not work.
173
+ * @param {number} volume - The volume level to set, between 0 and 100.
174
+ */
175
+ setVolume(volume: number): void;
176
+ /**
177
+ * Gets the current volume of the Bilibili player.
178
+ * When not install extention, this function will not work.
179
+ * @returns {number} The current volume value.
180
+ */
181
+ getVolume(): number | undefined;
182
+ /**
183
+ * Checks if the player is currently muted.
184
+ * When not install extention, this function will not work.
185
+ * @returns {boolean} True if the player is muted, false otherwise.
186
+ */
187
+ isMuted(): boolean | undefined;
188
+ /**
189
+ * Mutes the player by setting the volume to 0.
190
+ * When not install extention, this function will not work.
191
+ * @function
192
+ * @returns {void}
193
+ */
194
+ mute(): void;
195
+ /**
196
+ * Unmutes the player by setting the volume to the previous volume.
197
+ * When not install extention, this function will not work.
198
+ * @function
199
+ * @returns {void}
200
+ */
201
+ unMute(): void;
202
+ /**
203
+ * Sends a message to the player's content window to display or hide comments.
204
+ * When not install extention, this function will not work.
205
+ * @param {string} mode - The visibility mode of the comments. Possible values are "visible" or "hidden".
206
+ * @returns {void}
207
+ */
208
+ displayComment(mode: string): void;
209
+ }
210
+ //# sourceMappingURL=bilibili.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bilibili.d.ts","sourceRoot":"","sources":["../../iframe_api/bilibili.ts"],"names":[],"mappings":"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"}