Compare commits

...
1540 Commits
Author SHA1 Message Date
Harvey Zhao 65e51751cd feat: add danmuku plugin and i18n setup documentation
- Created a new documentation file for the danmuku plugin with code examples.
- Added a new documentation file for language settings (i18n) with detailed instructions on language imports, default languages, and how to add or modify languages.
- Included code snippets for initializing the Artplayer with different language settings.
2026-03-12 22:23:44 +08:00
Harvey Zhao daf133b226 refactor: update meta tags and content for improved clarity and consistency 2026-03-08 18:44:34 +08:00
Harvey Zhao 740ac4cb24 Refactor styles in ArtPlayer components for improved readability and consistency
- Consolidated loading styles in loading.less for better structure.
- Updated mask styles in mask.less to enhance clarity.
- Refined mini popup styles in mini.less, adding transition effects.
- Improved mixins in mixins.less for consistent styling across components.
- Adjusted mobile styles in mobile.less for better responsiveness.
- Enhanced notice styles in notice.less for improved visibility.
- Streamlined plugin styles in plugins.less for better organization.
- Simplified poster styles in poster.less for clarity.
- Refined progress styles in progress.less, enhancing hover effects.
- Updated selector styles in selector.less for better interaction.
- Improved settings styles in setting.less for better usability.
- Enhanced subtitle styles in subtitle.less for better visibility.
- Updated variable definitions in variables.less for consistency.
- Refined video styles in video.less for improved layout.
- Enhanced volume control styles in volume.less for better user experience.
- Optimized rate limiting logic in build-llm.js and trans-docs.js for better performance.
2026-03-08 15:03:43 +08:00
Harvey Zhao b11f0eb99a refactor: update cursor styles and progress variable
- Removed cursor pointer from .art-mask-show in mask.less for better UX.
- Added cursor pointer to .art-progress in progress.less to indicate interactivity.
- Adjusted hover effect for .art-control-progress-inner in progress.less to enhance visual feedback.
- Increased --art-progress-top-gap variable from 8px to 10px in variables.less for improved layout.
- Removed cursor pointer from .art-video in video.less to streamline styling.
2026-03-08 14:53:29 +08:00
Harvey Zhao 89a28e91fe refactor: update progress control to use $progress element for event handling 2026-03-08 14:38:37 +08:00
Harvey Zhao 92f09a4290 Refactor documentation for clarity and consistency
- Updated descriptions and terminology across various component documentation files for improved clarity.
- Changed headings and section titles for better readability and consistency.
- Enhanced the language and structure of the documentation to provide clearer guidance on usage and configuration.
- Removed the `fix-docs.js` script as its functionality has been integrated into the translation process.
- Improved the translation script to handle Markdown code block issues and added retry logic for API calls.
2026-03-08 13:15:13 +08:00
Harvey Zhao 3adff76edf feat: Enhance DeepSeek API integration with retries and timeout handling
- Updated API key environment variable from DEEPL_API_KEY to DEEPSEEK_API_KEY
- Increased maximum text chunk length from 5000 to 8000 characters
- Implemented request timeout and retry logic for API calls
- Added handling for rate limiting responses (HTTP 429)
- Improved error handling for API responses
2026-03-08 13:00:57 +08:00
Harvey Zhao 562cfe18db refactor: remove .parcel-cache from .npmignore files across multiple plugins 2026-03-07 21:42:20 +08:00
Harvey Zhao 5ce29ac190 refactor: standardize plugin import naming conventions in esm.html 2026-03-07 21:31:14 +08:00
Harvey Zhao 39a1fb1abd feat: add danmuku plugin documentation and i18n setup guide
- Created a new documentation file for the danmuku plugin, including code snippets for usage.
- Added a new i18n setup guide, detailing language settings, default languages, language imports, and how to add or modify languages.
- Included example code for initializing the Artplayer with different languages and importing language files.
2026-03-07 21:25:27 +08:00
Harvey Zhao bd43b6638d feat: add danmuku plugin documentation and i18n setup guide
- Created a new documentation file for the danmuku plugin with code examples for usage.
- Added a new i18n setup guide, detailing language settings, default languages, and how to import and modify languages.
- Included code snippets for initializing the Artplayer with different languages and examples for adding new languages.
2026-03-07 21:16:49 +08:00
Harvey Zhao dc850dd2d2 Refactor code structure for improved readability and maintainability 2026-03-07 21:07:48 +08:00
Harvey Zhao 9f5070b523 refactor: remove artplayer-tool-iframe plugin entry from README 2026-03-07 21:00:34 +08:00
Harvey Zhao 1c75731ca9 feat: introduce ArtplayerToolIframe for iframe control
- Removed the old ArtplayerPluginIframe implementation.
- Added ArtplayerToolIframe class with methods for iframe communication.
- Implemented postMessage and onMessage methods for message handling.
- Created a new TypeScript definition file for ArtplayerToolIframe.
- Updated documentation links to point to the new iframe tool.
- Added npm ignore file and README for the new package.
- Included compiled and uncompiled versions of the new iframe tool.
- Updated package.json with relevant metadata and exports.
2026-03-07 20:58:02 +08:00
Harvey Zhao 78e9cc74f8 Remove unused source map for Artplayer Tool Thumbnail 2026-03-07 20:46:41 +08:00
Harvey Zhao 1dc8e9a4ff refactor: update global name handling in build scripts
- Replaced `toPascalCase` with `getGlobalName` in build and dev scripts to standardize global variable naming for packages.
- Added `toCamelCase` and `getGlobalName` utility functions in `utils.js` to handle naming conventions based on package type.
2026-03-07 20:41:11 +08:00
Harvey Zhao 1e60637b74 refactor: remove global window assignment for Artplayer and template export
- Removed the assignment of Artplayer to the global window object in index.js of the artplayer package.
- Eliminated the window export for the template plugin in index.js, streamlining the code and reducing global scope pollution.
2026-03-07 20:24:29 +08:00
Harvey Zhao 2622b2c6ae Update CONTRIBUTING.md 2026-03-07 17:02:59 +08:00
Harvey Zhao 9cb7d6dc9f fix: improve regex for code block extraction and streamline match handling 2026-03-07 16:03:15 +08:00
Harvey Zhao 0f752260a4 fix: update test generation script to use Chinese documentation and exclude specific directories 2026-03-07 15:55:55 +08:00
Harvey Zhao 7bfee6c6dc feat: add build:test script and improve documentation code blocks
- Added a new script `build:test` to generate test cases from documentation code examples.
- Enhanced documentation files by ensuring proper code block formatting and adding missing closing backticks.
- Updated various markdown files to include new code blocks and fixed formatting issues.
2026-03-07 15:52:56 +08:00
Harvey Zhao 5cc8d14454 chore(i18n): remove outdated language files and update build script for i18n 2026-03-07 15:34:24 +08:00
Harvey Zhao 3bf0707faa fix(build): update cpy options to use flat for output directory 2026-03-07 15:32:38 +08:00
Harvey Zhao 699bf09577 feat: update changelog with Parcel to Vite refactor
feat: add danmuku plugin documentation and i18n setup guide

- Created a new documentation file for the danmuku plugin with code examples.
- Added a comprehensive guide for language settings (i18n) including default languages, importing languages, adding new languages, and modifying existing languages.
- Included code snippets for initializing the Artplayer with different language settings.

Add internationalization support for multiple languages in Artplayer

- Introduced Arabic (ar), Czech (cs), Spanish (es), Persian (fa), French (fr), Indonesian (id), Polish (pl), Russian (ru), Turkish (tr), Vietnamese (vi), and Traditional Chinese (zh-tw) translations.
- Created corresponding JavaScript and ES module files for each language containing translated strings for player controls and settings.
- Added a new documentation file for language settings in the project.

feat: add initial implementation of start option page with interactive code execution buttons

feat: add danmuku plugin documentation and i18n setup guide

- Created a new documentation file for the danmuku plugin, providing code examples for usage.
- Added a comprehensive guide for language settings, including default languages, importing languages, adding new languages, and modifying existing languages.
- Included code snippets for initializing the Artplayer with different language settings and importing language files.

refactor: update danmuku worker implementation and remove unused i18n files

- Changed the way the Danmuku class creates a Web Worker by using a worker loader instead of creating a blob.
- Removed Arabic, Czech, Spanish, Persian, French, Indonesian, Polish, Russian, Turkish, Vietnamese, and Traditional Chinese i18n files as they are no longer needed.
- Updated the Vite build configuration to disable banners for inline workers and added a plugin to remove worker banners from generated code.

feat: add danmuku plugin and i18n setup documentation

- Created a new documentation file for the danmuku plugin, providing code examples for usage.
- Added a new documentation file for language settings (i18n), detailing how to set default languages, import languages, and add new languages.
- Included code snippets for initializing the Artplayer with different language settings and examples for modifying existing languages.

feat: add danmuku plugin and i18n setup documentation

- Created a new documentation file for the danmuku plugin with code examples.
- Added a new documentation file for language settings (i18n) including import instructions and examples for setting default and custom languages.
- Updated the i18n documentation to include details on adding and modifying languages.

feat: add danmuku plugin and i18n setup documentation

- Created a new JavaScript file for the danmuku plugin documentation with multiple code execution buttons.
- Added a new JavaScript file for i18n (internationalization) setup documentation, including instructions for language settings, importing languages, and modifying language options.
- Included examples for setting default languages and adding new languages in the i18n documentation.

Refactor code structure for improved readability and maintainability
2026-03-07 15:21:34 +08:00
Harvey Zhao ddb78cf850 Refactor code structure for improved readability and maintainability 2026-03-05 14:00:27 +08:00
Harvey Zhao 3ae89ab349 Revert "feat: enhance Danmuku plugin with batch processing for top calculations"
This reverts commit 1841f754dc.
2026-03-05 13:58:53 +08:00
Harvey Zhao e112b33f97 feat: update meta tags and add structured data for improved SEO and user clarity 2026-03-03 11:21:33 +08:00
Harvey Zhao bad7892660 feat(contextmenu): enhance version link with referrer URL for better tracking 2026-03-02 17:39:47 +08:00
Harvey Zhao 88de2ae9e6 feat: comment out tracking event logging for future review 2026-03-02 11:25:26 +08:00
Harvey Zhao 9c819676bd feat: improve layout of file name overlay for better responsiveness 2026-03-01 20:00:13 +08:00
Harvey Zhao 7a4b429672 feat: add playsinline attribute to video elements for improved mobile playback 2026-03-01 19:55:59 +08:00
Harvey Zhao f07e51c071 feat: enhance layout and styling for improved user experience in upscaler page 2026-03-01 19:54:51 +08:00
Harvey Zhao 9a73b85fc7 feat: adjust layout dimensions for improved responsiveness in upscaler page 2026-03-01 19:44:53 +08:00
Harvey Zhao 150d14907e feat: store video file reference for improved processing in upscaler 2026-03-01 19:31:12 +08:00
Harvey Zhao d2e59f7d6b feat: add Baidu analytics script to upscaler page 2026-03-01 19:25:47 +08:00
Harvey Zhao 1f0ffbfa17 feat: reset progress indicators after upscaling attempt in upscaler page 2026-03-01 16:18:32 +08:00
Harvey Zhao 0c00074f6a feat: update sample video URL in upscaler page 2026-03-01 16:14:05 +08:00
Harvey Zhao 6b66029c54 feat: add sample video loading functionality and improve button styling in upscaler page 2026-03-01 15:56:57 +08:00
Harvey Zhao 9db9cd1f1e feat: remove muted attribute from original video in comparison section 2026-03-01 15:35:57 +08:00
Harvey Zhao 14ce165f50 feat: update index.html with improved link labels and add favicon to upscaler page 2026-03-01 15:27:06 +08:00
Harvey Zhao edc2b6c9f9 feat: add link to Video Upscaler in index.html and update upscaler page with Google AdSense integration 2026-03-01 15:12:33 +08:00
Harvey Zhao cea2859b40 feat: enhance video comparison functionality with improved drag-and-drop support and synchronized preview seeking
feat: update index.html for improved UI and UX with enhanced metadata and styling

feat: redesign index.html for enhanced UI and UX with improved layout and styling

feat: update index.html for improved UI with clearer messaging and streamlined layout

Update index.html

feat: enhance index.html with improved UI components, styling, and drag-and-drop support for video uploads

feat: update index.html for enhanced UI and improved video upload experience with preview functionality
2026-03-01 15:04:14 +08:00
Harvey Zhao f28b809a67 feat: enhance index.html with improved metadata and structured data for better SEO 2026-03-01 12:08:14 +08:00
Harvey Zhao f750e77e4f feat: add Upscaler web interface and core functionality
- Implemented a new HTML interface for image and video upscaling with WebGPU and WebGL support.
- Created the Upscaler class to handle image and video processing, including loading weights, managing workers, and handling real-time upscaling.
- Added support for selecting processing modes (small, medium, large) and handling file uploads.
- Integrated progress tracking and result display for processed images and videos.
- Implemented functionality for downloading processed results and real-time video processing from a URL.
2026-03-01 11:50:15 +08:00
Harvey Zhao 1841f754dc feat: enhance Danmuku plugin with batch processing for top calculations
- Implemented a callback pool in the Web Worker to handle concurrent requests without overwriting onmessage.
- Modified postMessage to generate unique IDs for messages and store corresponding callbacks.
- Improved state management by using in-place deletion for removing danmu from state pools.
- Optimized the rendering loop to batch calculate the top positions of danmu elements, reducing DOM reads and improving performance.
- Added a new function getDanmuTopBatch in the worker to handle batch requests for top calculations.
2026-02-19 12:48:32 +08:00
Harvey Zhao 0bdc59e446 chore: remove unused assets and sponsor page 2026-02-13 09:54:24 +08:00
Harvey Zhao cfaaea6a5c feat: add danmuku plugin documentation and i18n setup guide
- Created a new documentation file for the danmuku plugin with code examples.
- Added a comprehensive guide for language settings (i18n) including default languages, importing languages, adding new languages, and modifying existing languages.
- Included code snippets for initializing the Artplayer with different language configurations.
2026-02-12 16:55:43 +08:00
Harvey Zhao 687a34c6b3 Refactor canvas size calculation into a separate function and initialize canvas dimensions
- Moved the canvas size calculation logic into a dedicated function `calcCanvasSize`.
- Called `calcCanvasSize` to set the initial width and height of the canvas.
- Removed duplicate `calcCanvasSize` function definition from the code.
2026-02-11 23:03:24 +08:00
Harvey Zhao 14807e2633 feat: update artplayerPluginWebsr to support async upscale initialization
- Changed the return function to be async for handling asynchronous operations.
- Updated the call to startRealtimeUpscale to await its completion, allowing for proper handling of the upscale process with the specified network size option.
2026-02-11 23:00:36 +08:00
Harvey Zhao 210eb94b75 feat: add Upscaler class for image and video upscaling with Web Workers
- Implemented methods for initializing the upscaling process, loading weights, and processing images and videos.
- Added support for real-time video upscaling using OffscreenCanvas and Web Workers.
- Included utility functions for loading image and video metadata, handling blob responses, and managing network configurations.
- Introduced methods for downloading upscaled content and managing GPU capabilities.
- Added error handling and progress tracking for the upscaling process.
2026-02-11 22:54:13 +08:00
Harvey Zhao 17042867fc feat: add danmuku plugin and i18n setup documentation
- Created a new documentation file for the danmuku plugin with code examples.
- Added a new documentation file for language settings (i18n) with detailed instructions on language imports, default languages, and how to add or modify languages.
2026-02-10 23:12:03 +08:00
Harvey Zhao 7dffd99cfd Refactor code structure for improved readability and maintainability
Remove debugging border from the websr plugin's styling

Enhance canvas sizing logic in artplayer-plugin-websr

- Updated canvas positioning to center it within the player.
- Introduced a new function to calculate canvas size based on the video aspect ratio.
- Adjusted canvas dimensions during initialization and on resize events to maintain aspect ratio.
- Ensured canvas styles are updated to reflect the calculated dimensions.

feat: add comparison mode to artplayer-plugin-websr

- Updated README.md to reflect new comparison feature and simplified content.
- Modified package.json to remove unnecessary keywords.
- Enhanced index.js to implement comparison functionality, allowing users to compare original and upscaled video.
- Added new methods for enabling, disabling, and toggling comparison mode, as well as setting and getting the comparison position.
- Updated TypeScript definitions to include new comparison options and methods.
2026-02-10 23:02:31 +08:00
Harvey Zhao 07a5b0c0f0 Refactor controls.less for improved readability and structure
- Organized the control layout by grouping related styles together.
- Enhanced the alignment and spacing properties for better consistency.
- Maintained existing functionality while improving code clarity.
2026-01-12 22:10:34 +08:00
Harvey Zhao 8b5b366da3 docs: update CHANGELOG to prevent Hint.css from polluting global styles 2026-01-12 22:02:17 +08:00
Harvey Zhao 441909f8ac Refactor hint.less to integrate tooltip styles and improve organization
- Merged tooltip styling sections into a cohesive structure.
- Added comments for clarity on tooltip components and their functionalities.
- Ensured consistent formatting and indentation throughout the file.
- Preserved original functionality while enhancing readability and maintainability.
2026-01-12 18:57:50 +08:00
Harvey Zhao 486231f04b feat: update version to 1.1.0 and enhance VAST plugin with new event handling and configuration options 2026-01-04 23:31:30 +08:00
Harvey Zhao 4a980971f7 feat: update libUris in common.js with dynamically built plugin file paths 2026-01-04 21:09:35 +08:00
Harvey Zhao a3416fcb33 Refactor code structure for improved readability and maintainability 2026-01-04 18:00:12 +08:00
Harvey Zhao 9378aa21ee docs: update plugin documentation with version and download badge enhancements 2026-01-04 17:35:43 +08:00
Harvey Zhao 23a20d5d6d feat: enhance audio track plugin with waiting and playing event handling 2026-01-04 17:29:05 +08:00
Harvey Zhao ece55c5747 feat: add artplayer-plugin-asr and update danmuku-mask plugin entry in documentation 2026-01-04 17:07:01 +08:00
Harvey Zhao ca34b47180 Remove artplayer-plugin-liquid-glass plugin
- Deleted the plugin files including JavaScript, CSS, README, and type definitions.
- Removed references to the plugin from the documentation.
- Cleaned up the package structure by removing the .npmignore and package.json files related to the plugin.
2026-01-04 16:54:07 +08:00
Harvey Zhao c321d40cc3 fix: update danmuku mask plugin status and add download badge 2026-01-04 16:50:03 +08:00
Harvey Zhao b36f88db5f Update README.md 2026-01-04 16:36:04 +08:00
Harvey Zhao 6370f607f8 feat: add React and Vue usage examples to documentation 2026-01-04 16:28:42 +08:00
Harvey Zhao d9ac20b3f1 fix: enhance plugin documentation with descriptions and statuses 2026-01-04 16:15:43 +08:00
Harvey Zhao c655f073ae feat: add danmuku plugin documentation and i18n setup guide
- Created a new documentation file for the danmuku plugin with code examples.
- Added comprehensive language settings documentation, including default languages, import instructions, and examples for adding and modifying languages.
- Updated the i18n documentation to reflect changes in language handling and provide clear examples for users.
2026-01-04 15:59:52 +08:00
Harvey Zhao c88aa97c0a fix: update plugin names for consistency in config.js 2026-01-04 15:44:37 +08:00
Harvey Zhao 24352e01c4 fix: correct capitalization in plugin links for consistency 2026-01-03 22:01:49 +08:00
Harvey Zhao cf01186977 Refactor code structure for improved readability and maintainability 2026-01-03 19:56:06 +08:00
Harvey Zhao fb7eddf433 Update config.js 2026-01-03 19:35:58 +08:00
Harvey Zhao b69d020c5a feat: add artplayer-plugin-jassub for enhanced video subtitle rendering 2026-01-03 19:01:40 +08:00
Harvey Zhao 0d032f685b Merge branch 'artplayer-plugin-jassub' 2026-01-03 18:58:13 +08:00
Harvey Zhao f4d99eb09e Refactor code structure for improved readability and maintainability
feat: add JASSUB type definitions and update common.js references

feat: add JASSUB plugin for advanced subtitle rendering in HTML5 video

- Implemented a new JASSUB class for handling subtitle rendering with options for video and canvas targets.
- Added support for both synchronous and asynchronous rendering modes.
- Integrated Web Worker for offloading rendering tasks, improving performance.
- Included methods for managing subtitle tracks, styles, and events.
- Added color space verification and handling to ensure accurate subtitle display.
- Implemented local font access for enhanced typography options in subtitles.
- Introduced a benchmarking feature to assess rendering performance.

refactor: update README and type definitions for artplayer-plugin-jassub

- Removed installation and usage instructions from README.md for clarity.
- Updated index.js to remove direct assignment of jassub instance to art.
- Enhanced type definitions in artplayer-plugin-jassub.d.ts to include detailed JassubOption and JassubInstance interfaces.
2026-01-03 18:56:06 +08:00
Harvey Zhao c977790602 feat: update changelog with new features and fixes for upcoming release 2026-01-03 14:26:38 +08:00
Harvey Zhao fa2c69e83d feat: add React and Vue examples with Artplayer integration
- Implemented a React template with Vite, including ESLint configuration and necessary dependencies.
- Created a Vue template with Vite, including setup for Artplayer and plugins.
- Added internationalization support in both React and Vue examples.
- Included sample video and Danmuku plugin integration in both frameworks.
- Established project structure with appropriate configuration files and README documentation.
2026-01-03 14:08:31 +08:00
Harvey Zhao 62b4be9d82 feat: add update method to artplayerPluginAudioTrack for dynamic audio options 2026-01-03 14:03:26 +08:00
Harvey Zhao e559d3bc6f feat: enhance artplayerPluginAudioTrack with update method for dynamic option changes 2026-01-03 14:02:30 +08:00
Harvey Zhao a8d36a38ad feat: add artplayer-plugin-audio-track for audio synchronization with video
- Implemented the audio track plugin for ArtPlayer, allowing audio to be synchronized with video playback.
- Added main functionality in `src/index.js` to handle audio playback, synchronization, and event listeners for play, pause, seek, and volume changes.
- Created TypeScript definitions for the plugin in `types/artplayer-plugin-audio-track.d.ts`.
- Included necessary build files in `dist/` for various module formats (CommonJS, ES Module, and legacy).
- Updated package metadata in `package.json` and added a README for documentation.
- Added `.npmignore` to exclude unnecessary files from the package.
2026-01-03 13:42:11 +08:00
Harvey Zhao ae03670f9a Revert "feat(cssVar): add new CSS variables for font size and tooltip positioning"
This reverts commit 59e9a32ecb.
2026-01-03 00:11:00 +08:00
Harvey Zhao ce35026cb4 Revert "feat(cssVar): add new CSS variables for font size and tooltip positioning"
This reverts commit 59e9a32ecb.
2026-01-03 00:10:29 +08:00
Harvey Zhao 7968495416 feat: add artplayer-plugin-jassub to plugins list in README 2026-01-02 23:46:01 +08:00
Harvey Zhao fce3b33909 feat: add artplayer-plugin-jassub with initial implementation and documentation 2026-01-02 23:42:05 +08:00
Harvey Zhao 0bb4e1acdb Refactor code structure for improved readability and maintainability 2026-01-01 19:50:00 +08:00
Harvey Zhao 4a0fbda3c4 fix: update loadTimeout default value to 0 in README, MediaBunnyEngine, and TypeScript definitions 2026-01-01 17:43:21 +08:00
Harvey Zhao d892685a25 fix: prevent concurrent frame fetching in VideoEngine
Added a flag to manage the fetching state of video frames in the VideoEngine class. This change ensures that the updateNextFrame method does not attempt to fetch new frames while a previous fetch is still in progress, preventing potential race conditions and improving stability during playback.
2026-01-01 17:32:21 +08:00
Harvey Zhao 9d760a2f59 refactor: remove architecture documentation and improve code readability
- Deleted ARCHITECTURE.md file to streamline project documentation.
- Refactored AudioEngine, EventTarget, MediaBunnyEngine, VideoEngine, VideoShim, and index.js for improved readability by adding consistent line breaks and spacing.
- Enhanced code structure by ensuring single-responsibility principles and clearer flow in methods.
- Updated TypeScript definitions for better clarity on options available in the artplayer-proxy-mediabunny package.
2026-01-01 17:25:21 +08:00
Harvey Zhao be44c1f8dd Enhance property handling in artplayerProxyMediabunny
- Updated the way properties from the shim instance and its prototype are retrieved.
- Replaced the for-in loop with a Set to ensure all properties, including inherited ones, are considered.
- Excluded the 'constructor' property from being added to the canvas.

refactor: remove unused utility functions and streamline event handling

- Deleted `videoEvents.js`, `clamp.js`, and `sleep.js` as they were not utilized.
- Introduced a new `EventTarget` class to manage event listeners more efficiently.
- Enhanced `MediaBunnyEngine`, `AudioEngine`, `VideoEngine`, and `VideoShim` to utilize the new event system.
- Updated type definitions in `artplayer-proxy-mediabunny.d.ts` to include new configuration options.
- Added comprehensive architecture documentation to clarify the structure and flow of the MediaBunny engine.
- Refactored the codebase for improved readability and maintainability, including better naming conventions and JSDoc comments.
2026-01-01 17:03:44 +08:00
Harvey Zhao 59e9a32ecb feat(cssVar): add new CSS variables for font size and tooltip positioning
Refactor styles for consistency and improved theming

- Updated context menu styles to use new spacing and surface mixins.
- Adjusted control styles to utilize touch hit size for better accessibility.
- Refined info panel padding and applied panel surface mixin for uniformity.
- Standardized mini player transitions and background colors.
- Introduced new mixins for panel surfaces and flyout animations.
- Enhanced notice padding and applied consistent spacing variables.
- Updated plugin styles to use new icon sizes and panel surface mixin.
- Improved progress bar styles with consistent surface and shadow properties.
- Refactored selector styles to utilize new surface mixin and flyout animations.
- Streamlined setting panel styles with consistent spacing and hover effects.
- Added new variables for spacing, surface colors, and icon sizes.
- Updated volume panel styles to use new spacing and flyout animations.

feat(cssVar): add new CSS variables for enhanced theming and layout

Refactor styles in ArtPlayer

- Updated transition properties across various LESS files to use the new `--art-ease-standard` variable for consistency.
- Added new CSS variables for mobile padding and border radius.
- Introduced shadow variables for different elevation levels.
- Minor adjustments to ensure proper formatting and consistency in LESS files, including adding missing newlines at the end of files.

refactor: replace art-text-muted mixin with direct font-size in setting.less

Refactor styles for context menu, info panel, and settings

- Updated font sizes to use the new variable `--art-font-size-sm` for consistency across context menus, info panels, and settings.
- Introduced a new mixin `.art-menu-item-base` to standardize menu item styles, including padding and hover effects.
- Adjusted padding and positioning for tooltip elements in the progress bar.
- Added new CSS variables for tip padding and offset to enhance maintainability and readability of styles.
2025-12-14 12:30:20 +08:00
Harvey Zhao 51d49f857a chore: update version to 1.0.2 and improve chapter plugin functionality
- Bump version from 1.0.1 to 1.0.2 in package.json.
- Refactor index.js to remove unused variables and simplify event handling.
- Enhance title display logic in the chapter plugin for better user experience.
- Update styles in style.less for smoother transitions and improved visibility of chapter titles.
2025-12-14 11:05:34 +08:00
Harvey Zhao a93967d518 fix(thumbnailsMix): streamline loading logic and variable names
- Renamed 'loading' to 'loding' for consistency.
- Removed unnecessary 'isLoad' variable.
- Simplified loading checks in the showThumbnails function.
2025-12-13 23:09:47 +08:00
Harvey Zhao 8cb9cd480c refactor: simplify thumbnail display logic and improve hover effects
- Removed unnecessary hover event handling for thumbnails.
- Updated thumbnail visibility logic to always show when loading.
- Enhanced CSS for progress tip and thumbnails with scaling and opacity transitions.
- Added hover class to manage thumbnail visibility on progress hover.
2025-12-13 23:05:28 +08:00
Harvey Zhao 911c88d95f feat(progress): enhance progress tooltip and hover effects
- Updated the progress tooltip to display the current time or '00:00' when no time is available.
- Improved hover functionality by adding/removing a class on the player element based on the hover state.
- Refactored mousemove event handling to streamline tooltip visibility and highlight display logic.
- Removed unnecessary display property manipulation for the tooltip in CSS.
2025-12-13 22:39:15 +08:00
Harvey Zhao 7d8034ca18 fix: reset playback state on play after ended and emit additional events on video end 2025-12-13 20:22:38 +08:00
Harvey Zhao e45bc1ef20 fix: update video URL in danmuku.mask.js example 2025-12-13 19:08:56 +08:00
Harvey Zhao bd6ce34420 feat: add poster image and adjust liquid glass plugin styles 2025-12-13 17:19:40 +08:00
Harvey Zhao dbeaba78e6 feat: add i18n support documentation and language import examples
- Created a new documentation file for language settings in i18n.
- Added examples for setting default languages and importing additional languages.
- Included instructions for adding and modifying languages in the ArtPlayer plugin.
- Introduced a new plugin: artplayer-plugin-liquid-glass with various build formats (legacy, mjs, etc.).
2025-12-13 17:11:51 +08:00
Harvey Zhao 01d8dc680c feat: add liquid glass plugin to the README 2025-12-13 17:08:10 +08:00
Harvey Zhao ef537ecfbf Merge branch 'master' into artplayer-plugin-liquid-glass 2025-12-13 17:06:46 +08:00
Harvey Zhao b7d94558b2 feat: enhance liquid glass plugin with customizable width and improved s… 2025-12-13 17:05:51 +08:00
Harvey Zhao efa757ca2d feat: enhance liquid glass plugin with customizable width and improved styles 2025-12-13 16:50:59 +08:00
Harvey Zhao e27581b800 Refactor code structure for improved readability and maintainability 2025-12-13 16:16:30 +08:00
Harvey Zhao 48b3f76151 build all 2025-12-13 14:11:16 +08:00
Harvey Zhao b84b0af2ec Merge branch 'master' of https://github.com/zhw2590582/ArtPlayer 2025-12-13 14:08:10 +08:00
Harvey Zhao 99ad0d7b93 Update package.json
Remove options section from README for clarity

Add 'waiting' event emission during seeking in mediabunnyEngine

This change emits a 'waiting' event when the seeking process begins,
improving the event handling and allowing for better synchronization
during media playback.

fix(audioEngine): adjust audio context suspension timing for improved playback responsiveness

refactor(mediabunnyVideoShim): remove redundant width and height getters; enhance poster setter and add setAttribute method

feat: initialize artplayer-proxy-mediabunny with essential files and structure

feat: implement audio and video engines for mediabunny integration

- Added audioEngine.js to handle audio playback using MediaBunny.
- Created mediabunnyEngine.js to manage both audio and video playback.
- Implemented videoEngine.js for rendering video on a canvas.
- Introduced canvasProxy.js to create a canvas element and manage its methods.
- Developed mediabunnyVideoShim.js to bridge ArtPlayer and MediaBunny functionalities.
- Added videoEvents.js for custom event handling related to video playback.
- Included a utility function clamp.js for value clamping.

feat: add playback rate control to audio and video engines

- Introduced playback rate management in the audio engine, allowing dynamic adjustment of playback speed.
- Updated the mediabunny engine to expose the new setPlaybackRate method.
- Enhanced the mediabunny video shim to support playback rate adjustments, including getter and setter for playbackRate.
- Added event emission for rate changes to ensure proper handling in the application.

Enhance audio engine and video shim functionality

- Added a check to ensure the audio context is initialized before playing audio in the audio engine.
- Introduced a new 'playing' getter in the video shim to accurately reflect the playback state, indicating when the video is neither paused nor ended.

Refactor audio context initialization to handle errors and remove async/await

- Changed `ensureAudioContext` from async to synchronous to simplify error handling.
- Added a try-catch block to handle potential errors when creating the AudioContext with a specified sample rate.
- Updated calls to `ensureAudioContext` to remove unnecessary await statements.

Enhance Mediabunny Engine and Video Shim with State Management and Error Handling

- Added readyState, networkState, and error properties to the Mediabunny Engine for better state management.
- Implemented error handling during media loading, emitting appropriate events on error.
- Updated the Video Engine to emit a 'timeupdate' event for better synchronization.
- Extended the Mediabunny Video Shim to expose new properties (readyState, networkState, error) and methods for improved functionality.
- Added seekable property to the Video Shim to provide seekable range based on media duration.
- Implemented additional properties and methods in the Video Shim for autoplay, loop, controls, currentSrc, poster, preload, defaultMuted, and defaultPlaybackRate.
- Enhanced requestVideoFrameCallback and cancelVideoFrameCallback methods for better frame handling.

refactor: streamline audio and video engine implementations

- Updated audioEngine.js to improve readability and maintainability by using consistent formatting and simplifying function structures.
- Refactored mediabunnyEngine.js to enhance clarity and ensure consistent coding style.
- Enhanced videoEngine.js with improved async handling and clearer function definitions.
- Modified canvasProxy.js to maintain consistent formatting and improve readability.
- Updated mediabunnyVideoShim.js to streamline event handling and improve clarity.
- Refactored videoEvents.js for better readability and consistency in event listener management.
- Simplified clamp.js for improved readability.

feat: enhance audio and video loading with metadata callbacks

- Updated audioEngine to accept an optional onMetadata callback in the load function, which is triggered upon loading completion.
- Modified mediabunnyEngine to handle video and audio loading concurrently, emitting loadedmetadata and durationchange events only when both are ready.
- Enhanced videoEngine to include an onMetadata callback in the load function, ensuring metadata events are emitted appropriately.
- Implemented a throttling mechanism for the timeupdate event in videoEngine to reduce event emissions and improve performance.

feat: add seeking state and played property to mediabunny engine and video shim

- Introduced a `_seeking` state in the mediabunny engine to track seek operations.
- Emitted 'seeking' and 'seeked' events during seek operations.
- Added a `seeking` getter to expose the seeking state.
- Implemented a `played` property in the video shim to provide playback range information.
- Added `width` and `height` getters to the video shim for better video dimension access.
- Enhanced cross-origin handling in the video shim.

feat(audioEngine): enhance audio playback management with starvation detection

- Added an event emitter to notify when the audio context is waiting.
- Implemented a starvation check that suspends the audio context if playback is delayed.
- Introduced a mechanism to track the latest scheduled end time of audio buffers.
- Updated the handling of audio buffer playback to ensure proper state transitions.

refactor: remove unnecessary comments and streamline code in audio, video, and mediabunny engines

feat: add resize functionality to canvas proxy and update type definitions

- Implemented a resize function in canvasProxy.js to adjust canvas size based on player dimensions and video metadata.
- Updated TypeScript definitions for artplayer-proxy-mediabunny to include option and result types.
- Modified build-ts script to include all plugin type definitions.
- Added TypeScript definitions for artplayer-proxy-canvas and artplayer-proxy-mediabunny.

refactor: remove unused properties from Artplayer instance and make option parameter optional in artplayerProxyCanvas type definition

Enhance Mediabunny and Video Engine functionality

- Added event listener for 'ended' event in mediabunnyEngine to handle playback state.
- Modified seek function to check if playback should resume after seeking.
- Reset canvas dimensions to zero in videoEngine when video track is not available or cannot be decoded.
- Ensured canvas is cleared when video track is invalid to prevent rendering issues.

Emit 'waiting' event during loadstart in mediabunnyEngine

Refactor event emission in mediabunnyEngine and add sleep utility function

- Changed the event emission for 'loadstart' to be asynchronous using setTimeout.
- Introduced a new utility function 'sleep' to facilitate delayed execution in promises.

feat: enhance mediabunny proxy with new options and source handling

- Added options for event delay, load timeout, timeupdate interval, AV sync tolerance, poster, and source in README.
- Implemented source normalization in audio and video engines to support URL, Blob, and ReadableStream.
- Updated mediabunny engine to handle new options and improve load handling with timeout and error management.
- Enhanced video engine to draw a poster when no video source is available and manage playback rate.
- Modified shim to accept source option and integrate with the new engine options.
- Updated TypeScript definitions to reflect new options and source types.

feat: add dropLateFrames option to video and mediabunny engines

- Introduced dropLateFrames option in mediabunnyEngine and videoEngine to control frame dropping behavior.
- Updated videoEngine logic to handle frame rendering based on the dropLateFrames setting.
- Added type definition for dropLateFrames in TypeScript declaration file.

fix: delay loadstart event emission to ensure proper event handling

The 'loadstart' event emission is now wrapped in a setTimeout to ensure it is triggered after the current call stack is cleared. This change aims to improve the timing of event emissions and prevent potential issues with event handling in the mediabunny engine.

feat: add preflight range check and drop late frames option

- Updated README.md to include new options: dropLateFrames and preflightRange.
- Enhanced mediabunnyEngine to support new options with default values.
- Implemented preflight function in videoEngine to check server support for Range requests.
- Adjusted videoEngine to utilize preflight check before loading media.
- Updated TypeScript definitions to include preflightRange option.

Remove aspectRatio option from Artplayer configuration

Update README and mediabunny example URL for consistency

Refactor code structure for improved readability and maintainability

Update dependencies and fix play/seek state management in mediabunnyEngine

Refactor code structure for improved readability and maintainability

fix(types): update export syntax and formatting in TypeScript declaration files
2025-12-13 14:06:30 +08:00
Harvey Zhao 529ade25d5 Update package.json
Remove options section from README for clarity

Add 'waiting' event emission during seeking in mediabunnyEngine

This change emits a 'waiting' event when the seeking process begins,
improving the event handling and allowing for better synchronization
during media playback.

fix(audioEngine): adjust audio context suspension timing for improved playback responsiveness

refactor(mediabunnyVideoShim): remove redundant width and height getters; enhance poster setter and add setAttribute method

feat: initialize artplayer-proxy-mediabunny with essential files and structure

feat: implement audio and video engines for mediabunny integration

- Added audioEngine.js to handle audio playback using MediaBunny.
- Created mediabunnyEngine.js to manage both audio and video playback.
- Implemented videoEngine.js for rendering video on a canvas.
- Introduced canvasProxy.js to create a canvas element and manage its methods.
- Developed mediabunnyVideoShim.js to bridge ArtPlayer and MediaBunny functionalities.
- Added videoEvents.js for custom event handling related to video playback.
- Included a utility function clamp.js for value clamping.

feat: add playback rate control to audio and video engines

- Introduced playback rate management in the audio engine, allowing dynamic adjustment of playback speed.
- Updated the mediabunny engine to expose the new setPlaybackRate method.
- Enhanced the mediabunny video shim to support playback rate adjustments, including getter and setter for playbackRate.
- Added event emission for rate changes to ensure proper handling in the application.

Enhance audio engine and video shim functionality

- Added a check to ensure the audio context is initialized before playing audio in the audio engine.
- Introduced a new 'playing' getter in the video shim to accurately reflect the playback state, indicating when the video is neither paused nor ended.

Refactor audio context initialization to handle errors and remove async/await

- Changed `ensureAudioContext` from async to synchronous to simplify error handling.
- Added a try-catch block to handle potential errors when creating the AudioContext with a specified sample rate.
- Updated calls to `ensureAudioContext` to remove unnecessary await statements.

Enhance Mediabunny Engine and Video Shim with State Management and Error Handling

- Added readyState, networkState, and error properties to the Mediabunny Engine for better state management.
- Implemented error handling during media loading, emitting appropriate events on error.
- Updated the Video Engine to emit a 'timeupdate' event for better synchronization.
- Extended the Mediabunny Video Shim to expose new properties (readyState, networkState, error) and methods for improved functionality.
- Added seekable property to the Video Shim to provide seekable range based on media duration.
- Implemented additional properties and methods in the Video Shim for autoplay, loop, controls, currentSrc, poster, preload, defaultMuted, and defaultPlaybackRate.
- Enhanced requestVideoFrameCallback and cancelVideoFrameCallback methods for better frame handling.

refactor: streamline audio and video engine implementations

- Updated audioEngine.js to improve readability and maintainability by using consistent formatting and simplifying function structures.
- Refactored mediabunnyEngine.js to enhance clarity and ensure consistent coding style.
- Enhanced videoEngine.js with improved async handling and clearer function definitions.
- Modified canvasProxy.js to maintain consistent formatting and improve readability.
- Updated mediabunnyVideoShim.js to streamline event handling and improve clarity.
- Refactored videoEvents.js for better readability and consistency in event listener management.
- Simplified clamp.js for improved readability.

feat: enhance audio and video loading with metadata callbacks

- Updated audioEngine to accept an optional onMetadata callback in the load function, which is triggered upon loading completion.
- Modified mediabunnyEngine to handle video and audio loading concurrently, emitting loadedmetadata and durationchange events only when both are ready.
- Enhanced videoEngine to include an onMetadata callback in the load function, ensuring metadata events are emitted appropriately.
- Implemented a throttling mechanism for the timeupdate event in videoEngine to reduce event emissions and improve performance.

feat: add seeking state and played property to mediabunny engine and video shim

- Introduced a `_seeking` state in the mediabunny engine to track seek operations.
- Emitted 'seeking' and 'seeked' events during seek operations.
- Added a `seeking` getter to expose the seeking state.
- Implemented a `played` property in the video shim to provide playback range information.
- Added `width` and `height` getters to the video shim for better video dimension access.
- Enhanced cross-origin handling in the video shim.

feat(audioEngine): enhance audio playback management with starvation detection

- Added an event emitter to notify when the audio context is waiting.
- Implemented a starvation check that suspends the audio context if playback is delayed.
- Introduced a mechanism to track the latest scheduled end time of audio buffers.
- Updated the handling of audio buffer playback to ensure proper state transitions.

refactor: remove unnecessary comments and streamline code in audio, video, and mediabunny engines

feat: add resize functionality to canvas proxy and update type definitions

- Implemented a resize function in canvasProxy.js to adjust canvas size based on player dimensions and video metadata.
- Updated TypeScript definitions for artplayer-proxy-mediabunny to include option and result types.
- Modified build-ts script to include all plugin type definitions.
- Added TypeScript definitions for artplayer-proxy-canvas and artplayer-proxy-mediabunny.

refactor: remove unused properties from Artplayer instance and make option parameter optional in artplayerProxyCanvas type definition

Enhance Mediabunny and Video Engine functionality

- Added event listener for 'ended' event in mediabunnyEngine to handle playback state.
- Modified seek function to check if playback should resume after seeking.
- Reset canvas dimensions to zero in videoEngine when video track is not available or cannot be decoded.
- Ensured canvas is cleared when video track is invalid to prevent rendering issues.

Emit 'waiting' event during loadstart in mediabunnyEngine

Refactor event emission in mediabunnyEngine and add sleep utility function

- Changed the event emission for 'loadstart' to be asynchronous using setTimeout.
- Introduced a new utility function 'sleep' to facilitate delayed execution in promises.

feat: enhance mediabunny proxy with new options and source handling

- Added options for event delay, load timeout, timeupdate interval, AV sync tolerance, poster, and source in README.
- Implemented source normalization in audio and video engines to support URL, Blob, and ReadableStream.
- Updated mediabunny engine to handle new options and improve load handling with timeout and error management.
- Enhanced video engine to draw a poster when no video source is available and manage playback rate.
- Modified shim to accept source option and integrate with the new engine options.
- Updated TypeScript definitions to reflect new options and source types.

feat: add dropLateFrames option to video and mediabunny engines

- Introduced dropLateFrames option in mediabunnyEngine and videoEngine to control frame dropping behavior.
- Updated videoEngine logic to handle frame rendering based on the dropLateFrames setting.
- Added type definition for dropLateFrames in TypeScript declaration file.

fix: delay loadstart event emission to ensure proper event handling

The 'loadstart' event emission is now wrapped in a setTimeout to ensure it is triggered after the current call stack is cleared. This change aims to improve the timing of event emissions and prevent potential issues with event handling in the mediabunny engine.

feat: add preflight range check and drop late frames option

- Updated README.md to include new options: dropLateFrames and preflightRange.
- Enhanced mediabunnyEngine to support new options with default values.
- Implemented preflight function in videoEngine to check server support for Range requests.
- Adjusted videoEngine to utilize preflight check before loading media.
- Updated TypeScript definitions to include preflightRange option.

Remove aspectRatio option from Artplayer configuration

Update README and mediabunny example URL for consistency

Refactor code structure for improved readability and maintainability

Update dependencies and fix play/seek state management in mediabunnyEngine
2025-12-13 13:49:32 +08:00
Harvey Zhao 04b955f455 Enhance liquid glass plugin styles: update background properties and blur effect
- Removed !important from background-image in the art-bottom class.
- Increased blur effect to 12px for the art-liquid-glass class.
- Changed background color to a darker rgba value for better visibility.
2025-12-08 15:41:34 +08:00
Harvey Zhao 7b4ca85844 feat: add liquid-glass plugin for ArtPlayer with documentation and styles 2025-12-08 14:35:09 +08:00
WeidiDeng 2f42f85f90 use currentSrc to show video url (#1023) 2025-11-30 21:45:46 +08:00
Harvey Zhao 140674b511 Update artplayer.d.ts 2025-11-29 22:44:47 +08:00
Harvey Zhao a3fd5d9343 Update llms.txt 2025-11-29 22:33:12 +08:00
Harvey Zhao 86bbc95722 fix(docs): update language and formatting in documentation; remove danmuku plugin file 2025-11-29 22:26:42 +08:00
Harvey Zhao 47085d1275 feat: add new properties and methods to enhance player functionality and documentation 2025-11-29 22:12:38 +08:00
Harvey Zhao 4681a8bc7a feat: enhance Artplayer type definitions and improve component interfaces
- Updated Artplayer class to specify environment as 'development' | 'production'.
- Refined template query method to return specific element types.
- Improved event proxy method to handle multiple event names.
- Enhanced storage get method to support both key retrieval and full record retrieval.
- Modified i18n interface to include language initialization and partial language records.
- Adjusted notice interface to provide a getter for show state and a setter for messages.
- Updated layers, controls, and contextmenu to allow undefined elements.
- Enhanced subtitle interface with initialization method.
- Refined hotkey methods to use KeyboardEvent instead of Event.
- Updated setting methods to return updated settings instead of arrays.
- Improved plugin method to return a promise.
- Added new events for video handling and refined existing event parameters.
- Enhanced option interface for proxy and plugins to support promises.
- Updated player interface to include reset method.
- Refined setting props to allow optional values.
- Enhanced template interface with additional control elements.
- Improved utils methods for querying and manipulating DOM elements.

fix: update type definitions for notice and subtitle properties, and refine event types

fix: remove unnecessary console warnings in event listener error handling

fix: refactor event listener management to use Set for better performance and error handling
2025-11-29 21:41:52 +08:00
Harvey Zhao f5f3800449 chore: bump version to 5.3.1-beta.1 and update seekMix function to emit current time with seek event 2025-11-25 09:32:15 +08:00
Harvey Zhao 3f47356d2c fix: refactor video source handling in destroy method to use reset function 2025-10-16 15:40:23 +08:00
Harvey Zhao b6d0c07f8c fix: ensure video element loads correctly on destroy 2025-10-16 15:36:37 +08:00
Harvey Zhao 0044053348 docs: add missing code block closures in documentation files 2025-10-09 09:15:10 +08:00
Harvey Zhao a516c0b204 feat: add link to LLMs resource in navigation 2025-10-08 14:14:00 +08:00
Harvey Zhao 0a9aadf543 feat: add link to LLMs resource in README
Implement code changes to enhance functionality and improve performance

chore: add initial empty files for artplayer.d.ts, llm.txt, and build-llm.js

Refactor Artplayer examples for improved readability and consistency

- Updated mobile.js to enhance code formatting and structure.
- Refined mpegts.js for better readability and consistency in function usage.
- Improved multiple.subtitles.js with clearer structure and modern syntax.
- Enhanced setting.test.js for better organization and clarity in settings management.
- Streamlined thumbnail.js for consistent formatting.
- Updated vast.js for improved readability and consistency in plugin usage.
- Refined vtt.thumbnail.js for better code organization.
- Enhanced webtorrent.js for improved readability and consistency in async handling.
- Updated TypeScript definitions for various plugins to maintain consistency in export statements.
- Adjusted package.json linting script to include TypeScript files in the docs/assets/ts directory.
- Removed outdated types.test.js file to clean up the test suite.

refactor: remove outdated documentation files and update translation script

- Deleted i18n.md and option.md documentation files as they are no longer needed.
- Updated trans-docs.js to streamline the translation process and improve error handling.
- Adjusted plugin template package.json for consistency.
- Changed console.log to console.warn in various test files for better logging practices.

feat: add danmaku plugin documentation and i18n support

- Introduced comprehensive documentation for the Danmaku library, including installation, usage examples, and configuration options.
- Added language settings documentation, highlighting the need for manual language imports starting from version 5.1.0.
- Updated basic options documentation with detailed descriptions and examples for player configuration options.

Refactor documentation for clarity and consistency; update translation script to handle large Markdown chunks

refactor: improve documentation clarity and consistency across various components

- Updated property descriptions in layers.md and setting.md for better readability.
- Enhanced language and structure in index.md, danmuku.md, i18n.md, and option.md to ensure uniformity.
- Corrected minor grammatical errors and improved phrasing throughout the documentation.
- Ensured consistent formatting in tables and code snippets for better user experience.

feat: add build script for generating llm.txt and update translation source directories

Refactor build-llm.js to improve concurrency and enhance prompt clarity

- Introduced a MAX_CONCURRENT_REQUESTS constant to manage concurrent API requests.
- Added a runConcurrent function to handle task execution with a limit on concurrent requests.
- Updated the askDeepSeek function to include more informative logging.
- Enhanced prompts for summarizing documentation, TypeScript definitions, and JavaScript examples to improve clarity and maintain formatting.
- Modified the main function to fetch files concurrently and streamline the summarization process.

Increase text chunk size from 5000 to 8000 in summarizeSection function for improved processing of larger files.

fix: update lint script to include .js files in the scripts directory
2025-10-08 12:20:12 +08:00
Aruelius.L 987795503b perf: 进度条新增 padding-top 样式,防止点击进度条误触暂停 (#1004) 2025-10-05 18:04:59 +08:00
Harvey Zack b5b52bbf17 Add hidden mask element to loading styles for improved UI handling 2025-09-13 22:03:02 +08:00
Harvey Zack 8041de8411 fix: move hotkey initialization inside option check for better control 2025-09-13 17:48:56 +08:00
Harvey Zack e28be64026 Update README.md 2025-09-11 16:21:23 +08:00
Harvey Zack 630b6b9d93 fix: update default value of FULLSCREEN_WEB_IN_BODY to true in documentation 2025-09-11 10:39:05 +08:00
Harvey Zack 12d6781bf5 fix: add null check for target in Control and Setting classes
- Added a null check for the target parameter in the check method of the Control class to prevent potential errors when target is undefined.
- Implemented a similar null check in the check method of the Setting class for consistency and error handling.
- Updated FULLSCREEN_WEB_IN_BODY property in Artplayer to true for enabling fullscreen mode in web environments.
2025-09-11 09:59:29 +08:00
Harvey Zack 714c81e6c3 Enhance context menu version link styling for better visibility 2025-09-07 12:17:12 +08:00
Harvey Zack 8d1ebc4393 feat: add danmuku plugin documentation and i18n setup guide
- Created a new documentation file for the danmuku plugin with code examples.
- Added comprehensive language settings documentation, including default languages, importing languages, adding new languages, and modifying existing languages.
- Updated the i18n setup guide with code snippets for better clarity and usability.
2025-09-06 19:01:53 +08:00
Harvey Zack eb015c7fac fix: update type annotations for art and container in Player.vue
fix: remove beta version entry from changelog

fix: simplify i18n import in CHANGELOG.md
2025-09-06 18:28:07 +08:00
Harvey Zack 92ff80d285 fix: add missing types export in package.json and correct interface syntax in TypeScript definition 2025-09-06 15:13:23 +08:00
Harvey Zack 23da290357 fix: update import paths for Artplayer and plugins in test files 2025-09-06 14:25:49 +08:00
Harvey Zack 5b1cebb334 feat: add danmuku plugin documentation and i18n setup guide
- Created a new documentation file for the danmuku plugin with code examples.
- Added comprehensive i18n setup instructions, including default language settings, language imports, and examples for adding and modifying languages.
- Updated the structure and content of the i18n documentation to enhance clarity and usability.
2025-09-06 13:48:25 +08:00
Harvey Zack 18475f08fd chore: update artplayer-plugin-document-pip version to 1.0.2 in all relevant files 2025-09-06 13:20:05 +08:00
Harvey Zack fd9aeddbed feat: add danmuku plugin and i18n support in React template
- Implemented a new danmuku plugin in the React template for displaying bullet comments.
- Added internationalization (i18n) support with French and Indonesian languages.
- Updated the App component to include the new Player component with options for video playback.
- Enhanced the Player component to initialize Artplayer with plugins and language settings.
- Created separate files for App and Player components to improve code organization.
- Added example usage of language settings and plugins in the Player component.
2025-09-06 13:17:20 +08:00
Harvey Zack 811d83f463 feat: add danmuku plugin documentation and i18n setup guide
- Created a new documentation file for the danmuku plugin with code examples.
- Added comprehensive i18n (internationalization) setup instructions, including default language settings, language imports, and examples for adding and modifying languages.
- Updated the structure of the i18n documentation for better clarity and usability.
2025-09-06 12:38:24 +08:00
Harvey Zack 736a6c1973 feat: refactor Artplayer component and add Player component with TypeScript support 2025-09-06 12:31:10 +08:00
Harvey Zack 6be0ea9542 fix: add TypeScript support to Artplayer.vue and update i18n type declarations 2025-09-06 12:12:08 +08:00
Harvey Zack 474383853b Remove unnecessary i18n module declarations and simplify type definitions 2025-09-06 11:41:07 +08:00
Harvey Zack 649963f07c Update artplayer.d.ts 2025-09-05 22:20:44 +08:00
Harvey Zack 013fa21e7c Add internationalization support for multiple languages including Indonesian, Polish, Russian, Turkish, Vietnamese, and Traditional Chinese in Artplayer 2025-09-05 16:14:34 +08:00
Harvey Zack ea903dcf4c Update artplayer.d.ts 2025-09-05 15:57:38 +08:00
Harvey Zack cc7e7576ab feat: add Artplayer version logging to esm.test.js 2025-09-05 15:40:38 +08:00
Harvey Zack 14451c7221 Remove deprecated language files and update package version to 5.3.0-beta.1
- Deleted Indonesian (id.mjs), Polish (pl.js, pl.mjs), Russian (ru.js, ru.mjs), Turkish (tr.js, tr.mjs), Vietnamese (vi.js, vi.mjs), and Traditional Chinese (zh-tw.js, zh-tw.mjs) language files from the i18n directory.
- Updated package version in package.json from 5.3.0-beta.0 to 5.3.0-beta.1.
- Cleaned up screenfull.js by removing unnecessary code related to native API checks.
2025-09-05 15:37:31 +08:00
Harvey Zack 2a69147c8b Add Polish, Russian, Turkish, Vietnamese, and Traditional Chinese translations for Artplayer UI 2025-09-03 18:39:44 +08:00
Harvey Zack 9bfd535e57 feat: add option to remove video source on destroy
- Introduced a new static property REMOVE_SRC_WHEN_DESTROY in Artplayer to control whether the video source should be removed when the player is destroyed.
- Updated the destroy method in Artplayer to conditionally remove the video source based on the new property.
- Removed the line that sets the video source to an empty string in the Template class's destroy method, as this is now handled in Artplayer.
- Updated TypeScript definitions to include the new REMOVE_SRC_WHEN_DESTROY property.
2025-09-03 17:58:13 +08:00
Harvey Zack cb3d391c34 feat: update version number in config and remove outdated links 2025-08-31 12:20:53 +08:00
Harvey Zack 06c00906c2 feat: add danmuku plugin documentation and i18n setup guide
- Created a new documentation file for the danmuku plugin with code examples.
- Added a comprehensive guide for language settings, including default languages, importing languages, adding new languages, and modifying existing languages.
- Updated the i18n documentation to reflect changes in language handling and provide code snippets for implementation.
2025-08-31 12:11:13 +08:00
Harvey Zack ddbcdbd459 feat: update script tag to setup and use shallowRef for Artplayer instance 2025-08-25 10:40:01 +08:00
Harvey Zack 745d2b4848 Refactor code structure for improved readability and maintainability 2025-08-24 12:21:06 +08:00
Harvey Zack cf5057fa89 feat: allow custom properties in Setting and Selector interfaces 2025-08-23 12:12:46 +08:00
Harvey Zack fb8975272c feat: add support for custom properties in Selector interface 2025-08-22 10:00:28 +08:00
Harvey Zack 68b40de93c feat: update version to 1.0.2 and enhance ad event handling in VAST plugin 2025-08-19 09:19:31 +08:00
Harvey Zack eccea444b0 refactor: remove redundant comments and improve code clarity in build scripts 2025-08-17 23:53:26 +08:00
Harvey Zack e8b01c357f feat: add danmuku plugin documentation and i18n setup guide
- Created a new documentation file for the danmuku plugin with code examples.
- Added comprehensive i18n setup instructions, including default language settings, language imports, and examples for adding and modifying languages.
- Updated the structure of the i18n documentation for clarity and usability.
2025-08-17 23:51:45 +08:00
Harvey Zack 40b66b4b68 feat: enhance document Picture-in-Picture functionality with sleep delay
- Added sleep utility to introduce a delay before emitting resize events after opening and closing the document Picture-in-Picture.
- Updated the close function to be asynchronous for better handling of the sleep delay.
2025-08-17 21:22:29 +08:00
Harvey Zack 9e73b0aec9 Add resize event emission on document Picture-in-Picture open and close
- Emit 'resize' event after adding the document Picture-in-Picture class to the player.
- Emit 'resize' event after removing the document Picture-in-Picture class from the player.
2025-08-17 21:15:20 +08:00
Harvey Zack 79358663eb fix: improve indentation and formatting for style element creation in plugin 2025-08-17 18:43:57 +08:00
Harvey Zack 043947c9af feat: update .npmignore files to include src and package-lock.json; remove .npmrc files 2025-08-17 18:42:02 +08:00
Harvey Zack 1b856ae681 feat: add danmuku plugin documentation and i18n setup guide
- Created a new documentation file for the danmuku plugin with interactive code examples.
- Added comprehensive language settings documentation, including default languages, import instructions, and examples for adding and modifying languages.
- Updated the i18n documentation to reflect changes in language handling and provide clearer examples for users.
2025-08-17 18:33:36 +08:00
Harvey Zack 48b78d0ad7 Delete test.js 2025-08-17 18:31:34 +08:00
Harvey Zack e7633ed49d fix: update window export syntax for plugin; ensure compatibility with global scope
feat: add example usage for artplayer-plugin-test in test.js
2025-08-17 18:30:23 +08:00
Harvey Zack abbecff472 refactor: update TypeScript definitions for Artplayer plugin; change export syntax and improve interface structure 2025-08-17 18:28:43 +08:00
Harvey Zack 50320bad5d feat: add module and exports fields in package.json; improve style handling in index.js 2025-08-17 18:25:52 +08:00
Harvey Zack 241b4f3ee3 chore: update .npmignore files to include yarn.lock and package-lock.json 2025-08-17 18:13:14 +08:00
Harvey Zack 5cc6724f54 refactor: optimize component lifecycle and build process
- React: Removed unnecessary dependencies from useEffect in Artplayer component.
- Vue: Simplified instance emission in Artplayer component by removing nextTick.
- Build script: Added cpy to copy built i18n files to a new directory and set context to browser for Parcel.
2025-08-17 17:25:16 +08:00
Harvey Zack 0eed9c114b feat: update project structure and add React template with Artplayer integration 2025-08-17 14:55:06 +08:00
Harvey Zack 4b55b97e9e update vue template 2025-08-17 14:32:17 +08:00
Harvey Zack 0c0bcecb9e Add internationalization support and build process for multiple languages
- Implemented a build script to compile i18n files and copy them to the docs directory.
- Added compiled i18n files for Arabic, Czech, Spanish, Persian, French, Indonesian, Polish, Russian, Turkish, Vietnamese, and Traditional Chinese.
- Created an HTML file to demonstrate the usage of Artplayer with i18n support, including language options and a sample video.
2025-08-17 13:18:08 +08:00
Harvey Zack 09aab497ac Update esm.html 2025-08-17 12:35:05 +08:00
Harvey Zack 41040e5ac1 feat: add danmuku plugin documentation and i18n setup guide
- Created a new documentation file for the danmuku plugin with code examples for usage.
- Added comprehensive language settings documentation, including default languages, importing languages, adding new languages, and modifying existing languages.
- Updated the i18n setup guide to reflect changes in language handling and provide code snippets for implementation.
2025-08-17 12:22:55 +08:00
Harvey Zack c911928166 feat: add danmuku plugin documentation and i18n setup
- Created a new documentation file for the danmuku plugin with interactive code execution.
- Added comprehensive i18n setup instructions, including default language settings, language imports, and examples for adding and modifying languages.
- Introduced a test file to verify the integration of the danmuku plugin.
2025-08-17 12:09:50 +08:00
Harvey Zack 012dde8da4 feat: 更新类型定义,简化导入路径 2025-08-17 10:55:33 +08:00
Harvey Zack 8b32f050a0 feat: add danmuku plugin documentation and i18n setup guide
- Created a new documentation file for the danmuku plugin with code examples.
- Added comprehensive language settings documentation, including default languages, importing languages, adding new languages, and modifying existing languages.
- Updated the i18n setup guide to reflect changes in language handling and provide code snippets for implementation.
2025-08-17 10:46:04 +08:00
Harvey Zack ea34eda07b feat: add danmuku plugin documentation and i18n setup guide
- Created a new documentation file for the danmuku plugin with code examples.
- Added comprehensive language settings documentation, including default languages, import methods, and how to add or modify languages.
- Updated the i18n setup guide to reflect changes in language handling and provide code snippets for implementation.
2025-08-17 10:30:12 +08:00
Harvey Zack 6344a0bef9 Implement code changes to enhance functionality and improve performance 2025-08-16 21:49:43 +08:00
Harvey Zhao ada6afca69 Update README.md 2025-08-16 21:34:31 +08:00
Harvey Zack 52b38a48b2 Implement code changes to enhance functionality and improve performance 2025-08-16 21:28:49 +08:00
Harvey Zack 34fe45fa2d feat: update build:all script to include documentation build 2025-08-16 21:18:52 +08:00
Harvey Zack fa0961a9f9 refactor: update event handling in plugins and core
- Changed event handling from `art.proxy` to `art.on` for visibility change and pointer events in the ads and danmuku plugins to improve consistency and maintainability.
- Bumped version of the danmuku plugin from 5.1.8 to 5.1.9.
- Added pointer events to the global event initialization in the core to ensure proper event handling across the application.
2025-08-16 21:17:29 +08:00
Harvey Zack e834246641 feat: enforce browser environment for Artplayer initialization
- Added a check in the Artplayer constructor to throw an error if instantiated outside a browser environment.
- Updated the isBrowser utility to ensure both window and document are defined.
- Removed unused user agent checks for WeChat, IE, and Android from compatibility utilities.
- Updated TypeScript definitions to reflect the removal of unused properties.
- Added a basic test case for Artplayer initialization in SSR context.
2025-08-16 21:11:30 +08:00
Harvey Zack 3a2dcdb226 feat: add danmuku plugin documentation and i18n setup guide
- Created a new documentation file for the danmuku plugin with code examples.
- Added comprehensive language settings documentation, including default languages, importing languages, adding new languages, and modifying existing languages.
- Updated the structure of the i18n documentation to improve clarity and usability.
2025-08-16 20:51:26 +08:00
Harvey Zack 3cfc1c031c Remove outdated language files for Czech, Spanish, Persian, French, Indonesian, Polish, Russian, Turkish, Vietnamese, and Traditional Chinese from the Artplayer i18n package. 2025-08-16 20:48:55 +08:00
Harvey Zack 8af6f7c322 feat: Refactor global event handling in ArtPlayer
- Introduced a new globalInit function to manage document and window events.
- Replaced direct event proxies with a unified bindGlobalEvents method.
- Updated event handling in various modules to utilize the new global event system.
- Removed the deprecated documentInit module.
- Bumped version to 5.2.6 in package.json.
2025-08-16 20:45:19 +08:00
Harvey Zack abd64e11f2 refactor: update references from $container to $player in Document Picture-in-Picture plugin 2025-08-16 18:05:32 +08:00
Harvey Zack 84c118855d fix: 更新 Document Picture-in-Picture 占位符样式类名以提高可读性 2025-08-16 17:56:50 +08:00
Harvey Zack 1f142ced9f feat: 添加 Document Picture-in-Picture 插件样式支持 2025-08-16 17:52:48 +08:00
Harvey Zack 596269bf3f Replace pip.svg icon with a new design featuring a more modern look and updated dimensions 2025-08-16 17:38:36 +08:00
Harvey Zack 657dd7e77c refactor: improve document Picture-in-Picture support checks and update type definitions
- Renamed variable `dpipOK` to `isSupported` for clarity in checking Document Picture-in-Picture support.
- Updated the `open` function to use the new `isSupported` variable.
- Removed redundant checks in the `close` function related to Document Picture-in-Picture support.
- Added `isSupported` and `isActive` properties to the plugin's result interface in TypeScript definitions.
- Cleaned up the code for better readability and maintainability.
2025-08-16 17:00:01 +08:00
Harvey Zack a7d77f4f70 chore: remove Document Picture-in-Picture plugin files from the repository 2025-08-16 16:45:09 +08:00
Harvey Zack 571a4c8e1d fix: update description in README and package.json for clarity 2025-08-16 16:43:05 +08:00
Harvey Zack 7d4175efbc feat: add Document Picture-in-Picture plugin for ArtPlayer
- Implemented the core functionality of the Document Picture-in-Picture plugin.
- Created main plugin file `artplayer-plugin-document-pip.js` with support for opening and closing the PIP window.
- Added legacy support in `artplayer-plugin-document-pip.legacy.js`.
- Defined plugin options in `package.json` and included necessary metadata.
- Developed the main logic in `src/index.js`, including style copying and event handling.
- Created TypeScript definitions in `types/artplayer-plugin-document-pip.d.ts` for better type safety.
2025-08-16 16:39:58 +08:00
Harvey Zack c23520a4a6 feat: add Picture-in-Picture plugin for ArtPlayer
- Introduced `artplayer-plugin-pip` to enable Picture-in-Picture functionality.
- Updated `artplayer.d.ts` to export new types related to the plugin.
- Added example usage of the plugin in `pip.js`.
- Created TypeScript definitions for the plugin in `artplayer-plugin-pip.d.ts`.
- Implemented the plugin logic in `index.js` with necessary styles and event handling.
- Updated documentation to include the new plugin and its usage.
- Added README and package.json for the new plugin.
2025-08-16 15:55:21 +08:00
Harvey Zack bd071b2d63 feat: enhance autoOrientation plugin for better fullscreen handling
- Refactored rotation logic for web fullscreen to use a dedicated function.
- Added checks to prevent race conditions when applying rotation.
- Improved handling of native fullscreen orientation locking.
- Simplified class management for orientation states.
- Updated state retrieval to use constants for class names.
2025-08-11 23:31:54 +08:00
Harvey Zack f1fcbd75fe chore: Update change log, add removal of svg default fill color value and direct import optimization of Option 2025-08-03 19:48:34 +08:00
Harvey Zack 4fa1730242 Refactor SVG icons to remove fill attributes
- Updated arrow-left.svg, arrow-right.svg, check.svg, and loading.svg to remove fill attributes from path elements for better flexibility in styling.
- Modified aspect-ratio.svg and config.svg to maintain consistency in SVG structure by removing unnecessary fill attributes.
- Ensured playback-rate.svg retains its structure while removing fill attributes for improved styling options.
2025-08-03 19:43:28 +08:00
卡色 8460959a7f fix: cssVar can't be overwrite icon color (#945) 2025-08-03 19:35:20 +08:00
Harvey Zack d9c84d2dbc refactor: update type exports and improve type usage in tests 2025-08-03 18:57:40 +08:00
Harvey Zack 8a87de6df3 refactor: update export syntax to default for ASR and VAST plugins 2025-08-03 18:49:06 +08:00
Harvey Zack 6f3363014f refactor: update export syntax to default for ASR and VAST plugins 2025-08-03 18:47:09 +08:00
Harvey Zack fa755b5f61 refactor: update import statements to use node built-in modules
chore: update lerna configuration formatting

chore: bump version in package.json to 6.0.0

fix: modify build scripts for improved readability and consistency

feat: enhance translation scripts with better error handling and progress tracking

chore: improve plugin creation script for better user experience

style: format svgo configuration for consistency
2025-08-03 18:34:30 +08:00
Harvey Zack 3540cd0cce style:统一代码风格,移除多余分号 2025-08-03 18:23:42 +08:00
Harvey Zack e947be8a8e feat: add danmuku plugin documentation and i18n setup instructions
- Created a new documentation file for the danmuku plugin with code examples.
- Added comprehensive language settings documentation, including default languages, importing languages, adding new languages, and modifying existing languages.
- Updated the i18n setup examples to reflect the latest changes in language handling.
2025-08-03 18:21:59 +08:00
Harvey Zack 9d966bf696 refactor: update export syntax to default for multiple plugins and adjust package.json formatting 2025-08-03 17:19:12 +08:00
Harvey Zack f3c0a9a77d feat(danmuku): add unique identifier for danmuku items
- Introduced a new dataset attribute `data-id` to DOM elements for unique identification of danmuku items.
- Updated validation to include an optional `id` field for danmuku objects.
- Changed the property `$id` to `$index` for better clarity on its purpose as an index rather than a unique identifier.
- Ensured the `data-id` attribute is set for visibility control during hover interactions.
2025-08-03 14:32:26 +08:00
Harvey Zack 35ad9883af build all
Refactor utility functions for improved readability and consistency

- Updated compatibility.js to use consistent line endings and formatting.
- Refactored component.js for better readability and structure, including consistent use of arrow functions and binding.
- Simplified dom.js functions with consistent formatting and improved readability.
- Enhanced emitter.js with consistent formatting and arrow function usage.
- Streamlined error.js for improved readability and consistency.
- Refactored file.js to use consistent formatting and improved readability.
- Improved format.js functions for better readability and consistency.
- Updated index.js to maintain consistent export formatting.
- Refactored property.js for improved readability and consistency.
- Enhanced subtitle.js with consistent formatting and improved readability.
- Refactored time.js for better readability and consistent formatting.

fix: update lint script to target only source files for consistency

Revert "fix: restore export statements for various plugins and update type definitions for better clarity"

This reverts commit b5e969d81ec765cd8a34b06e6ef4f232ef25087f.

fix: restore export statements for various plugins and update type definitions for better clarity

Refactor type definitions to use interfaces instead of type aliases for better extensibility and clarity across i18n, icons, option, player, quality, setting, subtitle, template, and utils modules.
2025-08-03 13:17:33 +08:00
Harvey Zack 532dd67cfd Merge branch 'master' of https://github.com/zhw2590582/ArtPlayer 2025-08-03 12:06:26 +08:00
Harvey Zack 46ad399b2f fix: add missing newline at end of multiple package.json files and README.md 2025-08-03 11:54:36 +08:00
Harvey Zack 05ce97c6fd Refactor event path handling to use getComposedPath utility
- Replaced direct usage of event.composedPath() with a new utility function getComposedPath in Control component.
- Updated includeFromEvent function to utilize getComposedPath for better compatibility.
- Implemented getComposedPath function to ensure consistent event path retrieval across different browsers.
2025-08-03 11:43:01 +08:00
Harvey Zhao 603151af84 Update README.md 2025-08-02 17:21:18 +08:00
Harvey Zack 412b8e7fa7 Update CHANGELOG_CN.md 2025-08-01 15:37:24 +08:00
Harvey Zack 8d912c6c99 chore: bump version to 5.2.5 and remove unused exports from package.json 2025-08-01 15:32:32 +08:00
Harvey Zack ea392e0d60 feat: update version to 5.1.7 and add custom userAgent documentation 2025-08-01 09:57:50 +08:00
Harvey Zack 5337f9b075 feat: add danmuku plugin documentation and i18n setup guide
- Created a new documentation file for the danmuku plugin, detailing its usage and providing code examples.
- Added a comprehensive guide for language settings (i18n), including instructions for importing languages, setting default languages, and modifying language options.
- Included code snippets for initializing the Artplayer with different languages and examples for adding new languages.
2025-08-01 09:34:07 +08:00
Harvey Zack c1fe0e2b03 Delete sitemap.xml 2025-07-06 15:02:25 +08:00
Harvey Zack 11b59da2cf Create sitemap.xml 2025-07-06 14:57:56 +08:00
Harvey Zack 9932551352 Create googlebcdef0d1e9238554.html 2025-07-06 14:45:47 +08:00
Harvey Zack 84bc5a85bc Refactor code structure for improved readability and maintainability 2025-07-05 16:04:21 +08:00
dependabot[bot] 6d640062c9 chore(deps): bump svgo from 3.3.2 to 4.0.0 (#984)
Bumps [svgo](https://github.com/svg/svgo) from 3.3.2 to 4.0.0.
- [Release notes](https://github.com/svg/svgo/releases)
- [Commits](https://github.com/svg/svgo/compare/v3.3.2...v4.0.0)

---
updated-dependencies:
- dependency-name: svgo
  dependency-version: 4.0.0
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-24 09:06:22 +08:00
Harvey Zack 012c73c202 refactor: simplify version function export in context menu 2025-06-20 11:08:57 +08:00
Harvey Zack e8a7e050c4 refactor: update version handling and remove placeholder injection
- Simplified version display in context menu and template by directly importing version from package.json.
- Removed static version and environment methods from Artplayer class, replacing them with dynamic imports.
- Eliminated placeholder injection logic from build and dev scripts, streamlining the build process.
- Cleaned up build and dev scripts for better readability and maintainability.
2025-06-20 11:04:29 +08:00
Harvey Zack e2e8e83e63 Refactor code structure for improved readability and maintainability 2025-06-20 10:26:07 +08:00
Harvey Zhao 1374d530a4 fix mini position restore and typo (#981) 2025-06-20 10:19:28 +08:00
Harvey Zack 7e7bd8c0ad Refactor version display in context menu and clean up versioning format
- Updated the context menu version function to dynamically append the application version to the link and include a ref parameter in the URL.
- Removed the build version log from the initialization logs in the Artplayer class.
- Cleaned up the version and environment getters to return unquoted strings.
2025-06-20 10:18:39 +08:00
Harvey Zack da94223721 bump version to 5.2.4 2025-06-20 10:00:27 +08:00
Harvey Zack 3715a36cde fix: correct spelling of "height" in icon HTML attributes across documentation 2025-06-20 09:56:18 +08:00
Harvey Zhao 68d00e0166 docs(en): fix typos and improve wording (#980) 2025-06-20 09:53:34 +08:00
Harvey Zack c81b1ec83b Update CHANGELOG_CN.md 2025-06-15 18:35:02 +08:00
Harvey Zack bf5a186375 fix: update config method to allow initialization flag
- Modified the config method to accept an initialization flag, allowing for configuration during the initial setup without triggering unnecessary updates.
- Updated the call to config in the constructor to pass the new initialization flag.
2025-06-15 18:15:48 +08:00
Harvey Zhao 20b62ad3e3 refactor(types): improve definitions (#971) 2025-06-13 20:38:14 +08:00
Harvey Zhao 1941da46d9 fix: correct typos in player modules (#970) 2025-06-13 20:31:54 +08:00
Harvey Zhao 078b595819 fix: correct typos in player modules (#969) 2025-06-13 20:31:27 +08:00
Harvey Zhao 169c6a318a docs: fix autoPlayback typo (#967) 2025-06-12 21:24:58 +08:00
Harvey Zhao 77eaba8de9 fix: correct siblings helper name (#966) 2025-06-12 21:17:56 +08:00
Harvey Zhao db58d759b5 Update README.md 2025-06-08 15:17:51 +08:00
Harvey Zack 1ae4d17372 Remove artplayer-proxy-webav package and its related files including package.json, index.js, and type definitions. 2025-05-31 17:08:31 +08:00
Harvey Zack e773e2c44f 更新 VAST 插件文档和类型定义,修复描述和版本号,增强广告播放器功能 2025-05-30 10:45:31 +08:00
Harvey Zack 19756e8224 Add volume change handling to ASR plugin
- Implemented an event listener for 'video:volumechange' to adjust the gain node's value based on the current volume of the artplayer instance.
- This enhancement ensures that the audio processing reflects the user's volume adjustments in real-time.
2025-05-25 11:37:06 +08:00
Harvey Zack 826abd8c7d Update index.html 2025-05-24 12:06:52 +08:00
Harvey Zack d02740bd94 Update asr.js 2025-05-24 10:50:27 +08:00
Harvey Zack 5602ac315c Update asr.js 2025-05-24 10:12:18 +08:00
Harvey Zack b2f88cdd94 Update asr.js 2025-05-23 14:28:42 +08:00
Harvey Zack 15067279e3 Update asr.js 2025-05-23 12:37:17 +08:00
Harvey Zack 0d0a6f5516 Update README.md 2025-05-23 10:32:24 +08:00
Harvey Zack 10337ddb1d feat: add WAV format support for audio chunks in artplayer-plugin-asr
- Implemented pcmToWav function to convert PCM audio data to WAV format.
- Updated onAudioChunk callback to receive both PCM and WAV buffers.
- Modified TypeScript definitions to reflect changes in onAudioChunk parameter and append method.
2025-05-23 10:23:27 +08:00
Harvey Zack 62835bb042 fix: add optional chaining for safe access to voice_text_str in ASR response 2025-05-23 10:12:29 +08:00
Harvey Zack 3f0a1bd433 Refactor ASR plugin options and improve audio processing
- Renamed `hideTimeout` to `autoHideTimeout` for clarity.
- Updated the default options destructuring for better readability.
- Removed unnecessary comments and cleaned up the audio processing logic.
- Ensured that the audio buffer is processed correctly before sending to the `onAudioChunk` callback.
2025-05-23 10:08:20 +08:00
Harvey Zack 1ece90c582 Refactor code structure for improved readability and maintainability 2025-05-23 09:58:16 +08:00
Harvey Zack 4bdad1675b fix: add stop method to AsrPluginInstance interface 2025-05-23 09:05:00 +08:00
Harvey Zack 9fdbdabd7c Update index.js 2025-05-23 00:32:08 +08:00
Harvey Zack 5d7710979d fix: rename cleanupTimeout to hideTimeout for consistency in ASR plugin
Refactor artplayerPluginAsr: Enhance audio capture and processing

- Introduced gainNode for audio output management.
- Added mediaStream and mediaStreamSource for fallback audio capture.
- Refactored startCapture and stopCapture functions for better clarity and error handling.
- Improved audio source setup with a dedicated function for capturing audio from video.
- Ensured proper disconnection of audio nodes and cleanup of resources on destroy.

feat: enhance ASR plugin with improved subtitle handling and styling

fix: rename autoClearTimer to hideTimer for consistency in ASR plugin

Update asr.js

feat: refactor ASR plugin to improve audio chunk handling and WebSocket management

Update asr.js

fix: rename autoClearTimeout to cleanupTimeout for consistency

Update asr.js

feat: refactor ASR handling and improve WebSocket management

Update index.js

feat: add append and clear functions to enhance audio chunk handling

Update asr.js

Update asr.js

feat: release version 2.0.0 of artplayer-plugin-asr

- Implemented core functionality for audio recording using AudioWorklet.
- Added support for configurable audio capture interval and sample rate.
- Introduced WAV encoding for recorded audio chunks.
- Created a new plugin structure with proper TypeScript definitions.
- Added legacy support for older environments.
- Updated package.json with necessary metadata and export configurations.
- Included comprehensive inline documentation for better maintainability.
2025-05-23 00:09:13 +08:00
Harvey Zack 6c4e9f7e78 fix: enhance user agent detection to support custom user agent 2025-05-17 22:16:08 +08:00
Harvey Zack dd57cc2a03 add sourceMap 2025-04-21 09:54:32 +08:00
Harvey Zack ab06749c15 remove sourceMap 2025-04-21 09:10:21 +08:00
Harvey Zack c3343ad74f Refactor code structure for improved readability and maintainability 2025-04-20 19:54:19 +08:00
Harvey Zack 2a7e3d5e03 add index.esm.html 2025-04-20 19:35:10 +08:00
Harvey Zack a64e13c9c1 fix: update translation API and increase character limit for requests 2025-04-20 14:10:17 +08:00
Harvey Zack 674c6420e9 Refactor progress event handling in progress.js
- Moved the 'video:progress' event listener to be consistent with the RAF and timeupdate events.
- Ensured 'setBar' for 'loaded' is emitted during both RAF and video:progress events.
- Cleaned up the structure for better readability and maintainability.
2025-04-20 11:21:21 +08:00
Harvey Zack 9bdaaa3b7d Update nodejs.yml 2025-04-20 10:15:56 +08:00
Harvey Zack 0aabb42db3 update deps 2025-04-20 10:12:14 +08:00
Harvey Zack 17ece4c0c8 Add Vietnamese localization for Artplayer 2025-04-20 09:55:38 +08:00
Suika 2aaef7db45 fix: correct type definition in Option (#936) 2025-04-12 11:02:33 +08:00
Thành Hoàng Trần bc401159b6 feat: Vietnamese language support added (#932) 2025-04-09 10:10:03 +08:00
Harvey Zack 36865f1e7e feat: 新增手势配置项,支持移动端手势事件 2025-03-22 11:55:09 +08:00
Leo Wangandlion dd0fba6eb4 feat: 新增配置项gesture,是否开启手势快进快退操作。 (#919)
Co-authored-by: lion <lion>
2025-03-22 11:46:05 +08:00
Harvey Zack db5e9fc810 更新 artplayer-plugin-auto-thumbnail.js 版本至 1.0.1 2025-03-01 17:46:57 +08:00
Harvey Zack 4987579d92 Merge branch 'master' of https://github.com/zhw2590582/ArtPlayer 2025-03-01 17:45:58 +08:00
Harvey Zack b4e5c712f5 更新 artplayer-plugin-auto-thumbnail 版本至 1.0.1 2025-03-01 17:44:27 +08:00
dependabot[bot] 518bc45af0 chore(deps-dev): bump vitepress from 1.2.3 to 1.6.3 (#900)
Bumps [vitepress](https://github.com/vuejs/vitepress) from 1.2.3 to 1.6.3.
- [Release notes](https://github.com/vuejs/vitepress/releases)
- [Changelog](https://github.com/vuejs/vitepress/blob/main/CHANGELOG.md)
- [Commits](https://github.com/vuejs/vitepress/compare/v1.2.3...v1.6.3)

---
updated-dependencies:
- dependency-name: vitepress
  dependency-type: direct:development
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-20 09:36:45 +08:00
dependabot[bot] b52ea6b146 chore(deps): bump @webav/av-cliper from 0.16.5 to 1.0.17 (#907)
Bumps [@webav/av-cliper](https://github.com/bilibili/WebAV) from 0.16.5 to 1.0.17.
- [Changelog](https://github.com/bilibili/WebAV/blob/main/CHANGELOG.md)
- [Commits](https://github.com/bilibili/WebAV/commits)

---
updated-dependencies:
- dependency-name: "@webav/av-cliper"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-20 09:36:33 +08:00
WeidiDeng ff10f4f0a6 swap notice and seek event (#899) 2025-02-02 17:27:51 +08:00
Jealous a8458b050b fix: cancel video loading after destroying (#883) 2025-01-24 14:54:02 +08:00
Harvey Zack 4b4973eeb3 chore: 更新版本至 5.1.6,修复样式加载失败问题并优化样式插入逻辑 2025-01-19 20:50:26 +08:00
Harvey Zack c89b9e7871 chore: 更新版本至 5.1.5,修复多个问题并增强移动端支持 2025-01-19 17:34:40 +08:00
Harvey Zack fae71811db feat: 添加对 Chromecast 状态和会话变化的监听支持 2025-01-19 14:28:03 +08:00
Harvey Zack e7c31e55b3 feat: 添加对移动设备的支持并优化滑块事件处理 2025-01-18 16:44:04 +08:00
Harvey Zack 38ef03d31f Update dom.js 2024-12-16 14:51:02 +08:00
Harvey Zack ad0395fa37 Update artplayer-plugin-danmuku.d.ts 2024-12-16 10:43:21 +08:00
Harvey Zack 58b7eeb6e6 Update danmuku.md 2024-12-15 21:56:31 +08:00
Harvey Zack 9f4e6c3a1b chore: 将 artplayer-plugin-ambilight 的选项属性改为可选 2024-12-07 18:08:04 +08:00
Harvey Zack eb8cc22bf2 Update common.js 2024-11-30 10:42:28 +08:00
Harvey Zack 3a052a60e3 chore: 删除不再使用的 TypeScript 声明文件,并添加新的插件声明文件 2024-11-30 10:35:41 +08:00
Harvey Zack 57d6f25e5b Update main.js 2024-11-26 10:06:29 +08:00
Harvey Zack 13d4fc9210 chore: 更新 hls.js 版本至 1.5.17 2024-11-24 22:11:12 +08:00
Harvey Zhao 38054536ed Update index.js 2024-11-16 21:46:51 +08:00
Harvey Zhao 07de29c304 Update index.js 2024-11-12 23:26:28 +08:00
Harvey Zack f685e1a7db chore: 更新版本号至 5.2.2,并移除图片加载中的跨域设置 2024-10-28 15:53:26 +08:00
Harvey Zack 625f96534b docs: 添加 proxy 选项说明,支持代理现有的 video DOM 元素 2024-10-27 11:50:01 +08:00
Harvey Zack d3c66d8c44 Update index.js 2024-10-26 22:12:15 +08:00
Harvey Zack d33d59720f chore: 更新 CHANGELOG,新增 artplayer-plugin-dash-control 插件并修复相关问题 2024-10-26 15:54:31 +08:00
Harvey Zack 5e8047e33b Merge remote-tracking branch 'origin/artplayer-plugin-dash-control' 2024-10-26 15:26:14 +08:00
dependabot[bot] a7c45588fb chore(deps): bump @webav/av-cliper from 0.14.15 to 0.16.4 (#847)
Bumps [@webav/av-cliper](https://github.com/bilibili/WebAV) from 0.14.15 to 0.16.4.
- [Changelog](https://github.com/bilibili/WebAV/blob/main/CHANGELOG.md)
- [Commits](https://github.com/bilibili/WebAV/commits)

---
updated-dependencies:
- dependency-name: "@webav/av-cliper"
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-10-23 09:35:43 +08:00
Harvey Zack 11742b82dd Refactor Control class to remove unnecessary loading.show assignments 2024-10-21 18:48:41 +08:00
Harvey Zack cebbb6ec29 Refactor Control class to update control option variables and element references 2024-10-21 18:32:42 +08:00
Harvey Zack bb3fc27427 Refactor Control class to update control option variables and element references 2024-10-21 18:26:06 +08:00
Harvey Zack a01782732d Refactor Control class to update control option variables and element references 2024-10-21 17:32:48 +08:00
Harvey Zack 0b75f1d132 Refactor Control class to update control option variables and element references 2024-10-21 17:22:52 +08:00
Harvey Zack dcd6e081d8 Refactor Control class to update control option variables and element references 2024-10-21 16:16:29 +08:00
Harvey Zack cc13b9cc0f Refactor Control class to update control option variables and element references 2024-10-21 14:18:33 +08:00
Harvey Zack 2eb4be2bbe Refactor Control class to update control option variables and element references 2024-10-21 14:13:02 +08:00
Harvey Zack af1c769150 Update index.js 2024-10-21 12:42:49 +08:00
Harvey Zack 5dcb3e11c1 Refactor Artplayer class to use arrow functions for getter methods 2024-10-21 11:52:45 +08:00
Harvey Zack 395747f88f Refactor Artplayer class to update video URLs with query parameters 2024-10-21 11:49:14 +08:00
Harvey Zack 945ff841d5 Refactor Artplayer class to update qualityMix.js and component.js 2024-10-21 11:18:22 +08:00
Harvey Zack c82e381aa1 Refactor Artplayer class to remove unnecessary CSS transformations in setting.less 2024-10-21 10:27:26 +08:00
Harvey Zack ed88c73ab2 Refactor Artplayer class to update import path for Component 2024-10-21 00:18:28 +08:00
Harvey Zack 2db49bdede Refactor Artplayer class to update import path for Component 2024-10-20 23:58:07 +08:00
Harvey Zack c526b45820 Update index.js 2024-10-20 23:43:55 +08:00
Harvey Zack d87e120282 Update event.md 2024-10-20 22:44:25 +08:00
Harvey Zack 477331b0e2 Refactor Artplayer class to remove unnecessary CSS transformations in setting.less 2024-10-20 22:35:14 +08:00
Harvey Zack 0d5757b51c Refactor subtitleOffset function to update range values and append items 2024-10-20 22:03:35 +08:00
Harvey Zack 8566df6336 Refactor subtitleOffset function to update range values and append items 2024-10-20 22:02:01 +08:00
Harvey Zack 3cece10f9e Refactor Artplayer class to add isGetter utility function 2024-10-20 21:57:44 +08:00
Harvey Zack b6df6a6148 Refactor Artplayer class to add keydown event listener 2024-10-20 16:21:34 +08:00
Harvey Zack 0ddb7751a1 Refactor Artplayer class to update build timestamp 2024-10-20 15:06:06 +08:00
Harvey Zack fbfee926ca Refactor Setting class to update range values and append items 2024-10-20 14:46:40 +08:00
Harvey Zack d678378119 Update version to 5.2.1 in package.json and Artplayer class 2024-10-20 14:21:52 +08:00
Harvey Zack b949fedc06 Refactor Setting class to fix state loss issue, update range callback return type, and remove isStringOrNumber utility function 2024-10-20 13:56:22 +08:00
Harvey Zack 191c7736c4 Refactor Setting class to update range values 2024-10-20 13:28:39 +08:00
Harvey Zack c84157e30b Refactor Setting class to update and append items 2024-10-20 12:21:18 +08:00
Harvey Zack 1d191fe658 Refactor Setting class to update and append items 2024-10-20 10:49:45 +08:00
Harvey Zack bae22338dc Refactor Setting class to update and append items 2024-10-20 00:24:49 +08:00
Harvey Zack 6cf85b2f39 Refactor Setting class to update and append items 2024-10-20 00:09:09 +08:00
Harvey Zack 5e09d2e513 Refactor Setting class to append items to panel 2024-10-19 23:58:24 +08:00
Harvey Zack 49704ffc29 Refactor Setting class to fix formatting and event handling 2024-10-19 23:37:01 +08:00
Harvey Zack e8c317051a Refactor Setting class to fix formatting and event handling 2024-10-19 23:27:28 +08:00
Harvey Zack b16a845875 Refactor Setting class to fix formatting and event handling 2024-10-19 23:11:19 +08:00
Harvey Zack 885bbf5a6d Refactor Setting class to use correct import and naming conventions 2024-10-19 22:56:52 +08:00
Harvey Zack 5e38f2d3b5 Refactor Setting class to use correct import and naming conventions 2024-10-19 22:31:32 +08:00
Harvey Zack 74915ebf9f Refactor Setting class to use correct import and naming conventions 2024-10-19 18:19:37 +08:00
Harvey Zack f62640e6e9 Update artplayer package version to 5.2.0 2024-10-19 14:10:13 +08:00
Harvey Zack 9221d42964 Add artplayer-plugin-ambilight package and demo 2024-10-19 13:55:16 +08:00
Harvey Zack 5a4598f846 Update CHANGELOG_CN.md 2024-10-19 13:54:23 +08:00
Harvey Zack 5dfe50c719 Add artplayer-plugin-ambilight package and demo 2024-10-19 13:53:36 +08:00
Harvey Zack 406d71b53c Refactor thumbnailsMix to add hover event handling 2024-10-18 23:45:01 +08:00
Harvey Zack 8481bddba1 Update mobile.html 2024-10-14 23:16:51 +08:00
Harvey Zack edc33bb32f artplayer-plugin-vast@1.0.0 2024-10-12 16:58:23 +08:00
Harvey Zack 252c226473 chore: add .npmrc and .npmignore files to multiple packages 2024-10-08 19:49:55 +08:00
Harvey Zack b8c29f29dc refactor: remove unused $player reference and add segmenter initialization log 2024-10-08 19:29:25 +08:00
Harvey Zack ffe4dd0d37 Update index.js 2024-10-08 12:05:48 +08:00
Harvey Zack a7599c41b5 docs: update README and config to include danmuku-mask plugin link 2024-10-08 12:00:40 +08:00
Harvey Zack e9d544f416 Built@main artplayer-plugin-danmuku-mask 2024-10-08 11:57:45 +08:00
Harvey Zack 7a1240b889 fix Option 2024-10-08 11:53:26 +08:00
Harvey Zack fdfc44806c fix stopSegmentation 2024-10-08 10:09:29 +08:00
Harvey Zack bdecbffeeb add selfie_segmentation 2024-10-08 09:47:05 +08:00
Harvey Zack 56b71879e8 feat: add function to make white pixels transparent in danmuku mask canvas 2024-10-08 00:51:12 +08:00
Harvey Zack fed73a9409 feat: adjust canvas opacity and update color settings for danmuku mask functionality 2024-10-08 00:34:54 +08:00
Harvey Zack ef56482911 feat: remove unused style file and integrate TensorFlow body segmentation for danmuku mask functionality 2024-10-07 23:49:33 +08:00
Harvey Zack d9bdc9bdeb feat: add danmuku mask plugin for ArtPlayer with initial implementation and documentation 2024-10-07 22:41:51 +08:00
Harvey Zack a6f0dc50e5 feat: update version to 1.0.1 and enhance Chromecast plugin functionality 2024-09-24 10:50:26 +08:00
Harvey Zack c9d2d6c194 feat: filter empty lines in subtitle rendering for improved display 2024-09-22 21:33:42 +08:00
Harvey Zack 1e63b8dc83 feat: update version to 1.1.0 and simplify cue merging logic 2024-09-22 18:08:40 +08:00
Harvey Zack c0c5a12010 feat: update subtitle properties and events to enhance cue management and retrieval 2024-09-22 17:35:12 +08:00
Harvey Zack 8ea85476e0 feat: update subtitle handling to support multiple active cues and improve rendering logic 2024-09-22 17:23:43 +08:00
Harvey Zack 3d33458efc feat: update package version to 1.0.0 and remove deprecated HLS quality files 2024-09-22 16:38:44 +08:00
Harvey Zack 6b93dc95b0 feat: update HLS links in documentation to reflect migration to artplayer-plugin-hls-control 2024-09-22 16:37:20 +08:00
Harvey Zack e3db4125b0 feat: simplify HLS instance handling in update function 2024-09-22 16:29:23 +08:00
Harvey Zack b9878e43e0 feat: update HLS control example and improve audio/quality track selection logic 2024-09-22 14:37:01 +08:00
Harvey Zack 31bd66a33e feat: add audio control feature to artplayer-plugin-hls-control, include audio.svg and update documentation 2024-09-22 13:46:14 +08:00
Harvey Zack ef964c4bc0 feat: migrate from artplayer-plugin-hls-quality to artplayer-plugin-hls-control, update configurations and documentation 2024-09-22 12:46:59 +08:00
Harvey Zack 4a172377b5 feat: update artplayer-plugin-hls-quality to version 3.0.0, add quality.svg and remove image.svg 2024-09-22 12:17:30 +08:00
Harvey Zack 666d1d8585 Update option.md 2024-09-19 18:07:03 +08:00
Harvey Zack 610e1e6139 Update config.js 2024-09-19 10:54:31 +08:00
Harvey Zack 57725e8e27 feat: add initial implementation of artplayer-proxy-canvas with core functionality 2024-09-19 10:52:54 +08:00
Harvey Zack 1605df2943 feat: update artplayerProxyCanvas to accept a callback for custom rendering options 2024-09-17 11:11:52 +08:00
Harvey Zack 92654e911f feat: add picture-in-picture support and enhance event emission in artplayerProxyCanvas 2024-09-17 10:30:52 +08:00
Harvey Zack faa621c5be Update canvas.js 2024-09-17 10:11:44 +08:00
Harvey Zack 157d28a647 refactor: simplify artplayerProxyCanvas implementation and improve event handling 2024-09-17 09:38:57 +08:00
Harvey Zack 51e558dc50 feat: add Arabic language support to documentation and type definitions 2024-09-16 22:41:15 +08:00
Harvey Zack 8f4dab5005 feat: Arabic language support added 2024-09-16 22:35:14 +08:00
Sumer Ahmed 4f631a0d7f feat: Arabic language support added (#809) 2024-09-16 22:29:22 +08:00
Harvey Zack c0a280a6e8 fix: remove error throwing in artplayerProxyCanvas 2024-09-15 11:57:26 +08:00
Harvey Zack 2a864ad97d Update canvas.js 2024-09-15 11:13:08 +08:00
Harvey Zack 2ba1b7d77a fix: artplayerProxyCanvas 2024-09-15 11:05:56 +08:00
Harvey Zack a74e7bbff4 feat: createImageBitmap 2024-09-15 10:56:51 +08:00
Harvey Zack 710f9477f8 feat: artplayerProxyCanvas 2024-09-15 10:39:11 +08:00
Harvey Zack 22dce779d1 update controls 2024-09-15 00:24:02 +08:00
Harvey Zack 400ab2f9c4 fix drawImage 2024-09-15 00:15:03 +08:00
Harvey Zack 278119068c feat: 移除不必要的日志输出,优化视频元素的创建逻辑,增加视频播放时的内联属性 2024-09-15 00:03:32 +08:00
Harvey Zack d4a868621f feat: 重命名渲染函数,优化绘制逻辑,增加绘制事件的日志输出 2024-09-14 23:33:30 +08:00
Harvey Zack f867a97032 feat: 重构视频帧绘制逻辑,优化渲染流程,增加视频播放和暂停事件的日志输出 2024-09-14 18:32:37 +08:00
Harvey Zack 211e9d22a2 feat: 增加动态设置字幕偏移功能,更新相关文档 2024-09-14 17:37:47 +08:00
Harvey Zack 36fb27d7a1 feat: 优化字幕事件逻辑,新增字幕加载和更新事件,删除不再使用的字幕切换事件 2024-09-14 17:30:22 +08:00
Harvey Zack 9b87f9661d feat: 优化字幕偏移逻辑,增加对模板的支持,修复字幕切换事件参数 2024-09-14 16:59:24 +08:00
Harvey Zack 36b2c80666 add restoreInit 2024-09-14 16:48:30 +08:00
Harvey Zack 2b11d897ff feat: 增加字幕相关属性和事件,优化字幕切换逻辑 2024-09-14 16:14:59 +08:00
Harvey Zack a0b6af32d0 Refactor artplayer-proxy-canvas to use requestAnimationFrame for frame drawing 2024-09-11 18:48:33 +08:00
Harvey Zack c81364ca9a add sleep 2024-09-08 19:43:04 +08:00
Harvey Zack c8b5282af9 feat: Add sleep function for delayed frame drawing in artplayer-proxy-canvas 2024-09-08 18:53:00 +08:00
Harvey Zack 7bf8a00a7d chore: Update artplayer-proxy-canvas to support canvas proxy 2024-09-08 18:46:02 +08:00
Harvey Zack a4be7b0ee6 feat: Update artplayer-proxy-canvas to support canvas proxy 2024-09-08 18:28:39 +08:00
Harvey Zack 813528f916 chore: Update artplayer-proxy-canvas to support canvas proxy 2024-09-08 18:20:11 +08:00
Harvey Zack 0f60ea53ae chore: Update artplayer-proxy-canvas to support canvas proxy 2024-09-08 18:05:06 +08:00
Harvey Zack c984034234 Update package.json 2024-09-07 10:39:14 +08:00
Harvey Zack 9f1ba901bb Update package.json 2024-09-07 10:30:57 +08:00
Harvey Zack afcfebe01e Update Artplayer.vue 2024-09-06 10:02:29 +08:00
Harvey Zack 910c22391f Update Artplayer.vue 2024-09-06 10:02:18 +08:00
Harvey Zack 69133015e9 chore: Update auto.thumbnail.js and index.js 2024-09-01 12:14:53 +08:00
Harvey Zack 4e2d68854a Update README.md 2024-09-01 12:07:00 +08:00
Harvey Zack a33df191a4 feat: Add artplayer-plugin-auto-thumbnail plugin 2024-09-01 12:05:08 +08:00
Harvey Zack c44ec85ed2 refactor: Update artplayer-plugin-vtt-thumbnail version to 1.0.3 2024-08-31 12:02:16 +08:00
Harvey Zack 44171beb3a refactor: Update artplayer-plugin-vtt-thumbnail 2024-08-31 11:54:34 +08:00
Harvey Zack c7299b926e Merge branch 'master' of https://github.com/zhw2590582/ArtPlayer 2024-08-31 11:47:28 +08:00
Harvey Zack 3fdc11cf40 update artplayer-plugin-vtt-thumbnail 2024-08-31 11:47:23 +08:00
Harvey Zack 63223c8202 refactor: Remove unused libmedia proxy and related files 2024-08-25 14:44:11 +08:00
Harvey Zack 2fe7a09aaf refactor: Update Q群 link in index.html 2024-08-24 23:03:11 +08:00
Harvey Zack 9a4ebf7917 Update vast.js 2024-08-23 23:31:06 +08:00
Harvey Zack 4d43fffa87 refactor: Remove unused variables in VAST plugin 2024-08-23 23:27:09 +08:00
Harvey Zack 87b0506f51 refactor: Update VAST plugin in Artplayer 2024-08-23 23:23:50 +08:00
Harvey Zack f9192ff852 refactor: Update VAST plugin in Artplayer 2024-08-23 22:42:04 +08:00
Harvey Zack d2de5297d6 refactor: Update autoPlayback plugin in Artplayer 2024-08-23 16:20:25 +08:00
Harvey Zack 17b2268ce0 refactor: Remove unused loadImg function in Artplayer 2024-08-23 12:40:26 +08:00
Harvey Zack 27f161be40 refactor: Update thumbnail scale and video element resizing logic in Artplayer and artplayer-proxy-webav 2024-08-23 12:37:32 +08:00
Harvey Zack 1ee80cf012 refactor: Remove unused loadImg function in Artplayer 2024-08-23 12:06:49 +08:00
Harvey Zack 5764344aaf refactor: Update thumbnail scale in Artplayer 2024-08-23 12:05:06 +08:00
Harvey Zack 3a2e7addd9 refactor: Update video element resizing logic in Artplayer and artplayer-proxy-webav 2024-08-23 10:43:09 +08:00
Harvey Zack b2e54d6969 Update index.js 2024-08-23 10:17:17 +08:00
Harvey Zack 6f6d49bbae refactor: Update video element resizing logic in Artplayer and artplayer-proxy-webav 2024-08-22 18:29:23 +08:00
Harvey Zack 84986d384a Update option.d.ts 2024-08-22 15:40:46 +08:00
Harvey Zack 1d0139ee35 refactor: Improve video element resizing logic in Artplayer and artplayer-proxy-webav 2024-08-22 11:41:59 +08:00
Harvey Zack 71a1126aae Revert "refactor: Update video element resizing logic in Artplayer and artplayer-proxy-webav"
This reverts commit 77a3438e2d.
2024-08-22 11:38:24 +08:00
Harvey Zack 77a3438e2d refactor: Update video element resizing logic in Artplayer and artplayer-proxy-webav 2024-08-22 11:13:10 +08:00
Harvey Zack ce3503cc3a Update artplayer-proxy-webav.d.ts 2024-08-22 00:27:51 +08:00
Harvey Zack 52e424ad52 refactor: Update video element in Artplayer to support custom canvas or video 2024-08-22 00:21:23 +08:00
Harvey Zack 5bbbaa398e refactor: Update video element resizing logic in Artplayer and artplayer-proxy-webav 2024-08-22 00:09:03 +08:00
Harvey Zack b711291aee refactor: Update Artplayer's video element and add support for custom canvas or video
The code changes in this commit update the video element in Artplayer to support custom canvas or video. This enhancement allows for more flexibility in handling video playback and rendering. Additionally, new options such as volume, autoplay, autoSize, screenshot, setting, loop, flip, playbackRate, aspectRatio, fullscreen, fullscreenWeb, miniProgressBar, and autoPlayback are added to provide more control over the video player. These changes improve the functionality and usability of Artplayer.
2024-08-21 23:52:47 +08:00
Harvey Zack 5e37979e8f refactor: Update video element in Artplayer to support custom canvas or video 2024-08-21 23:44:01 +08:00
Harvey Zack ced8fb4fb1 refactor: Update video element in Artplayer to support custom canvas or video 2024-08-21 23:35:17 +08:00
Harvey Zack 984755b442 ```text
refactor: Update animation frame handling in artplayer-proxy-webav

The code changes replace the use of `requestAnimationFrame` with `setInterval` in the `start` function of `artplayer-proxy-webav`. This change improves the performance and stability of the animation frame handling, ensuring a smoother playback experience.
2024-08-21 23:29:38 +08:00
Harvey Zack 0374046606 refactor: Update loadedTime getter in Artplayer 2024-08-21 23:13:44 +08:00
Harvey Zack 796f25cea2 refactor: Update loadedTime getter in Artplayer
The code changes update the loadedTime getter in Artplayer to handle different scenarios. The getter now checks for the presence of the loadedTime property in the video element and returns it if available, otherwise it falls back to the previous logic of retrieving the buffered end time. This update improves the reliability and compatibility of Artplayer's loadedTime functionality.
2024-08-21 22:28:00 +08:00
Harvey Zack 0a7d3ca5aa refactor: Update loadedTime and playing getters in Artplayer 2024-08-21 22:10:24 +08:00
Harvey Zack 8613164368 refactor: Update loadedTime and playing getters in Artplayer
The code changes update the loadedTime and playing getters in Artplayer to handle different scenarios. The loadedTime getter now checks for the presence of the loadedTime property in the video element and returns it if available, otherwise it falls back to the previous logic of retrieving the buffered end time. Similarly, the playing getter now checks for the presence of the playing property in the video element and returns it if available, otherwise it falls back to the previous logic of determining if the video is playing based on its current time, paused state, ended state, and ready state. These updates improve the reliability and compatibility of Artplayer's loadedTime and playing functionality.
2024-08-21 21:56:08 +08:00
Harvey Zack 6dc6be5b9e refactor: Update library section heading in README and docs
The code changes update the heading for the library section in both the README and docs files. The heading is changed from "Library" to "Libraries" to provide a more accurate description of the content. This refactor improves the clarity and consistency of the documentation.
2024-08-18 21:46:11 +08:00
Harvey Zack 4fd012c20c feat: 添加动态代理支持
新增 `option.proxy` 选项,用于代理第三方的 `video` 和 `canvas`。新增 `artplayer-proxy-webav` 代理,来自 [bilibili/WebAV](https://github.com/bilibili/WebAV)。新增 `artplayer-proxy-libmedia` 代理,来自 [zhaohappy/libmedia](https://github.com/zhaohappy/libmedia)。
2024-08-18 21:19:34 +08:00
Harvey Zack 883762ed42 feat: Add support for dynamic proxies in Artplayer
The code changes introduce new proxy options (`artplayer-proxy-webav` and `artplayer-proxy-libmedia`) in Artplayer, allowing for the use of third-party video and canvas proxies. This enhancement provides more flexibility in handling video playback and rendering, improving the overall performance and compatibility of Artplayer.
2024-08-18 21:17:28 +08:00
Harvey Zack 7f6c9c8ee1 refactor: Update video element in Artplayer to support custom canvas or video 2024-08-18 21:06:56 +08:00
Harvey Zack 7fa69a7de8 refactor: Update video element in Artplayer to support custom canvas or video 2024-08-18 20:46:53 +08:00
Harvey Zack 66010cb376 refactor: Update video element in Artplayer to support custom canvas or video
This commit updates the `libmedia.js`, `option.d.ts`, `index.js`, `template.js`, and `scheme/index.js` files in the Artplayer repository. The changes introduce a new `video` property in the `Option` type, allowing for the use of a custom video element in Artplayer. The `video` property can be set to `null`, an `HTMLCanvasElement`, or an `HTMLVideoElement`. This enhancement provides flexibility in rendering video content and improves compatibility with different platforms and use cases.
2024-08-18 18:39:14 +08:00
Harvey Zack 5d6b94afa6 Update artplayer-plugin-canvas.d.ts 2024-08-17 21:04:32 +08:00
Harvey Zack 219956cabd refactor: Update build timestamp in Artplayer 2024-08-17 21:02:39 +08:00
Harvey Zack e9a488792c refactor: Update build timestamp in Artplayer
The build timestamp in Artplayer has been updated to "2024-08-15 23:17:21". This commit ensures that the build timestamp accurately reflects the latest changes made to the codebase.
2024-08-15 23:28:13 +08:00
Harvey Zack 65b0b2c53f refactor: Simplify thumbnails implementation in Artplayer 2024-08-15 23:08:33 +08:00
Harvey Zack 3e3b38fe07 feat: Refactor thumbnails implementation in Artplayer
This commit refactors the `thumbnails` implementation in Artplayer to improve code readability and maintainability. The code changes remove unnecessary variables and simplify the logic for displaying thumbnails. This refactor enhances the overall performance and user experience of the Artplayer plugin.
2024-08-15 22:56:19 +08:00
Harvey Zack 69168750f5 Update property.md 2024-08-15 22:51:20 +08:00
Harvey Zack 52d9064c8b feat: Add support for dynamic thumbnails in Artplayer
The code changes introduce a new `art.thumbnails` property that allows for dynamic setting of thumbnails in Artplayer. This feature enhances the user experience by providing a visual preview of the video content.
2024-08-15 22:50:21 +08:00
Harvey Zack 5655db4b20 feat: Disable hiding default right-click menu when Artplayer.CONTEXTMENU is set to false 2024-08-12 17:53:43 +08:00
Harvey Zack adff473f71 Update index.html 2024-08-06 15:03:55 +08:00
Harvey Zack 2e646ab4e1 Create ads.txt 2024-08-04 09:53:40 +08:00
Harvey Zack 0bb99184ca feat: Add Google AdSense script for ads in index.html and config.js 2024-08-04 09:43:38 +08:00
Harvey Zack 245ce6c6b7 feat: Add Google AdSense meta tag to index.html and config.js 2024-08-04 09:38:25 +08:00
Harvey Zack 0dd25d73c6 Update artplayer-plugin-chapter.d.ts 2024-07-18 09:43:41 +08:00
dependabot[bot] 00f0501c0e build(deps): Bump glob from 10.4.5 to 11.0.0 (#783)
Bumps [glob](https://github.com/isaacs/node-glob) from 10.4.5 to 11.0.0.
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v10.4.5...v11.0.0)

---
updated-dependencies:
- dependency-name: glob
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-07-10 09:33:23 +08:00
Harvey Zack 7414f4a86a Update index.html 2024-07-07 22:44:31 +08:00
Harvey Zack a86664b3db Update package.json 2024-07-04 09:59:42 +08:00
Harvey Zack e71e6ad0dd feat: Add support for custom file names in screenshot functionality 2024-07-04 09:57:13 +08:00
Harvey Zack caddb2091e feat: Add support for custom file names in screenshot functionality 2024-07-03 15:56:49 +08:00
Harvey Zack b2796a1f6c feat: Add Artplayer.STYLE property to Artplayer class 2024-06-21 11:44:02 +08:00
Harvey Zack 5a0b80b03e feat: Add STYLE property to Artplayer class 2024-06-19 19:13:04 +08:00
Harvey Zack cf0c3d9b09 Update sponsor.html 2024-06-19 09:18:26 +08:00
Harvey Zack 85bf3ea0d3 Update package.json 2024-06-17 23:18:37 +08:00
Harvey Zack c6b6e13799 feat: Update Artplayer initialization in documentation 2024-06-16 23:26:40 +08:00
Harvey Zack 0cee288097 feat: Add responsive behavior to danmuku plugin and improve panel positioning 2024-06-15 19:56:06 +08:00
Harvey Zack 74460a765e add width 2024-06-14 09:31:47 +08:00
Harvey Zack e2f27e8ea5 feat: Improve panel positioning in danmuku plugin 2024-06-13 11:20:45 +08:00
Harvey Zack b4e3121917 feat: Improve panel positioning in danmuku plugin 2024-06-13 11:12:23 +08:00
Harvey Zack 685241de57 chore: Bump version to 5.1.4 and update resize method in danmuku plugin 2024-06-13 09:46:40 +08:00
Harvey Zack ef3a1f7064 feat: Add width option for danmuku plugin 2024-06-12 21:48:44 +08:00
Harvey Zack 665348ad55 feat: Update danmuku plugin with responsive behavior 2024-06-12 21:40:17 +08:00
Harvey Zack 744913b0bf feat: Optimize progress bar and add highlight feature 2024-06-08 17:38:41 +08:00
Harvey Zack e2a40e67a0 Update utils.d.ts 2024-06-08 13:01:09 +08:00
Harvey Zack 73bafc988a feat: Fix dropdown menu bug in dev.js and build.js 2024-06-08 12:47:24 +08:00
Harvey Zack 1192f18de6 chore: Update npm dependencies and package.json files 2024-06-08 12:25:05 +08:00
Harvey Zack 232b8a3e17 feat: Add getRect function to utils and update player and control modules to use it 2024-06-08 12:17:45 +08:00
Harvey Zack 2721f61b41 Merge branch 'thumbnails' 2024-06-08 12:13:18 +08:00
Harvey Zack a7f4b0bc84 feat: Add lazy loading for thumbnails in mobile.js 2024-06-08 12:11:47 +08:00
Harvey Zack f4c9f1f639 update thumbnails 2024-06-08 12:11:11 +08:00
Harvey Zack c4fd5b1a5d Update README.md 2024-06-06 10:17:38 +08:00
Harvey Zack 7c52a30833 Update CHANGELOG_CN.md 2024-06-05 09:21:00 +08:00
Harvey Zack 1ee0342f11 Update danmuku.md 2024-06-05 09:19:03 +08:00
Harvey Zack 9973cdc4da feat: Optimize chapter handling in artplayer-plugin-chapter 2024-06-05 09:17:39 +08:00
Harvey Zack 403be5dc6b chore: Bump version to 5.1.2 and update style.less in artplayer-plugin-danmuku 2024-06-05 09:13:11 +08:00
Harvey Zack 8aea92f40a Update index.js 2024-06-04 23:06:20 +08:00
Harvey Zack 0e269c2f41 Refactor danmuku.js to use async/await for emitting danmus 2024-06-04 22:08:23 +08:00
Harvey Zack 2d44d602e4 feat: Add parameter to append danmuku library in artplayer-plugin-danmuku 2024-06-04 21:59:55 +08:00
Harvey Zack 390be821d6 feat: Refactor danmuku.js to use async/await for emitting danmus 2024-06-04 19:20:26 +08:00
Harvey Zack 69d99cc478 feat: Refactor worker.js to use dynamic function dispatch 2024-06-04 19:12:11 +08:00
Harvey Zack d57a13a2bd Optimize bilibiliDanmuParseFromUrl function in artplayer-plugin-danmuku 2024-06-04 19:00:49 +08:00
Harvey Zack e58285f2dd Optimize bilibiliDanmuParseFromUrl function in artplayer-plugin-danmuku 2024-06-04 18:52:59 +08:00
Harvey Zack 999988465c feat: Optimize chapter handling in artplayer-plugin-chapter 2024-06-03 12:00:44 +08:00
Harvey Zack e11a2da806 Optimize chapter end time handling in artplayer-plugin-chapter 2024-06-03 11:51:58 +08:00
Harvey Zack 586375eeb0 Update danmuku.js 2024-06-03 10:27:11 +08:00
Harvey Zack c8d3e5b5a6 build artplayer-plugin-chapter 2024-06-03 10:09:18 +08:00
Harvey Zack 5160dcabca Optimize setBar event and remove unnecessary class manipulation in artplayer-plugin-chapter 2024-06-03 10:04:09 +08:00
Harvey Zack f3db438d6b Optimize setBar event and handle non-array chapters in artplayer-plugin-chapter 2024-06-03 01:11:35 +08:00
Harvey Zack d8ff61acf7 chore: Refactor artplayer-plugin-chapter to sort chapters before processing 2024-06-03 01:10:29 +08:00
Harvey Zack 5edf5af672 Optimize setBar event and fix chapter display in artplayer-plugin-chapter 2024-06-03 01:02:22 +08:00
Harvey Zack bc5761ecdb Optimize setBar event and add lazy loading for thumbnails in artplayer-plugin-chapter 2024-06-03 00:38:54 +08:00
Harvey Zack 2e72e0cec2 Optimize setBar event and update chapter display in artplayer-plugin-chapter 2024-06-03 00:35:47 +08:00
Harvey Zack 94e34320e0 Optimize setBar event and reduce delay for hiding chapter title in artplayer-plugin-chapter 2024-06-03 00:17:32 +08:00
Harvey Zack e8d7ae91f0 Optimize setBar event and add lazy loading for thumbnails in artplayer-plugin-chapter 2024-06-02 23:55:20 +08:00
Harvey Zack d99fa9447a Optimize setBar event and add lazy loading for thumbnails in artplayer-plugin-chapter 2024-06-02 22:59:42 +08:00
Harvey Zack aaa5ef310e Optimize setBar event and add lazy loading for thumbnails in artplayer-plugin-chapter 2024-06-02 22:23:22 +08:00
Harvey Zack 0e58ce8cd9 feat: Optimize setBar event and add artplayerPluginChapter plugin 2024-06-02 22:09:58 +08:00
Harvey Zack 570c1611d3 feat: Add lazy loading for thumbnails in artplayer-plugin-chapter 2024-06-02 20:06:47 +08:00
Harvey Zack 17ab163e91 chore: Bump artplayer-plugin-danmuku version to 5.1.1 2024-06-02 19:52:25 +08:00
Harvey Zack 41cdde4b79 feat: Improve chapter display in artplayer-plugin-chapter 2024-06-02 19:26:33 +08:00
Harvey Zack 2326628b86 feat: Update chapter title display in artplayer-plugin-chapter 2024-06-02 19:12:27 +08:00
Harvey Zack 0804d1790b feat: Add chapter text display on progress hover in artplayer-plugin-chapter 2024-06-02 18:51:16 +08:00
Harvey Zack 33eba49a3b fix: Remove unused code for progress hover in artplayer 2024-06-02 18:13:29 +08:00
Harvey Zack 3e3e355e34 feat: Add support for video chapters in artplayer-plugin-chapter 2024-06-02 18:06:11 +08:00
Harvey Zack a59942ca58 chore: Update ArtPlayer version to 5.1.5 2024-06-02 14:22:04 +08:00
Harvey Zack 0fce9f5ffe Update common.js 2024-06-02 14:01:08 +08:00
Harvey Zack eef1d675df feat: Add support for video chapters in artplayer-plugin-chapter 2024-06-02 13:07:26 +08:00
Harvey Zack 502865ef65 Update create.js 2024-06-02 12:56:26 +08:00
Harvey Zack 924c3513e8 Update create.js 2024-06-02 12:45:54 +08:00
Harvey Zack 0f7a3ce02c chore: Update window object property name to ArtplayerPluginVast 2024-06-02 12:37:30 +08:00
Harvey Zhao fac7d15726 Vast (#762)
* add artplayer-plugin-vast

* chore: Add create:plugin script to package.json

* chore: Remove deprecated artplayer-plugin-{{name}} and artplayer-plugin-vast types

* chore: Update artplayer-plugin-vast package description

* chore: Update Prettier configuration and dependencies
2024-06-02 12:28:17 +08:00
Harvey Zack b398749ef8 chore: Update ArtPlayer version to 5.1.4 2024-06-01 21:43:06 +08:00
Harvey Zack 551eb64ea7 Update mobile.js 2024-06-01 12:05:06 +08:00
Harvey Zack 994f9e4b04 feat: Update mobile.js to enable auto preload for better performance 2024-06-01 11:59:44 +08:00
Harvey Zack 32078b9669 fix: Fix fullscreen functionality in mobile.html and fullscreenMix.js 2024-06-01 11:47:27 +08:00
Harvey Zack 77fb5c6d12 add fullscreenchange 2024-06-01 10:11:48 +08:00
Harvey Zack 0ffd7980d2 Update ArtPlayer version to 5.1.3 2024-06-01 09:51:01 +08:00
Harvey Zack 4f66533021 feat: Improve fullscreen functionality in mobile.html and fullscreenMix.js 2024-06-01 09:42:47 +08:00
Harvey Zack 80aa030aaa fix: Fix fullscreen functionality in mobile.html 2024-06-01 09:37:38 +08:00
Harvey Zack 794ab9ec29 Update danmuku.js 2024-06-01 09:25:14 +08:00
Harvey Zack 31125ac790 fix: Fix fullscreen functionality in mobile.html 2024-06-01 09:13:16 +08:00
Harvey Zack 67fdb31717 Update danmuku.js 2024-06-01 09:10:19 +08:00
Harvey Zack cb87252bbd fix: Fix fullscreen functionality in mobile.html 2024-06-01 09:06:55 +08:00
Harvey Zack e7727c0fa1 Update fullscreenMix.js 2024-06-01 08:59:47 +08:00
Harvey Zack 9d20cb75f7 Update fullscreenMix.js 2024-06-01 08:46:40 +08:00
Harvey Zack cc64281bb8 Update fullscreenMix.js 2024-06-01 08:42:47 +08:00
Harvey Zack 4dc1e9164a chore: Update ArtPlayer version to 5.1.3 2024-06-01 08:02:53 +08:00
Harvey Zack c1de88c3f4 chore: Update ArtPlayer version to 5.1.3 2024-06-01 07:59:02 +08:00
Harvey Zack 34b7018e3d chore: Remove screen.orientation.lock functionality due to compatibility issues 2024-06-01 07:19:03 +08:00
Harvey Zack d86840749b chore: Update screen.orientation.lock usage for autoOrientation plugin 2024-06-01 07:11:53 +08:00
Harvey Zack 574bb14643 chore: Update webtorrent.js link in navigation bar 2024-06-01 07:07:33 +08:00
Harvey Zack 2c7430d524 chore: Update webtorrent.js link in navigation bar 2024-06-01 06:56:48 +08:00
Harvey Zack fab977711e Update fullscreenMix.js 2024-06-01 00:24:06 +08:00
Harvey Zack 495083aba1 Update webtorrent.js 2024-05-31 10:20:01 +08:00
Harvey Zack a8151ba4fb chore: Update webtorrent.js link in navigation bar 2024-05-31 10:13:45 +08:00
Harvey Zack f260f3a9ec Update index.html 2024-05-30 21:42:08 +08:00
Harvey Zack bddaf178d9 Update sponsor.html 2024-05-30 21:32:23 +08:00
Harvey Zack 82d263bc6c chore: Update donation link in navigation bar 2024-05-30 21:28:27 +08:00
Harvey Zack 0d830e04d8 chore: Add donation link and QQ group to navigation bar 2024-05-30 20:32:05 +08:00
Harvey Zack 6d1f8e1c7f chore: Update danmuku plugin configuration handling and improve performance 2024-05-30 08:11:13 +08:00
Harvey Zack 20752bc170 chore: Update danmuku plugin configuration handling and improve performance 2024-05-30 08:07:10 +08:00
Harvey Zack 0af549189a Update artplayer-plugin-danmuku.d.ts 2024-05-30 06:09:07 +08:00
Harvey Zack f62bd0558a chore: Update danmuku plugin configuration handling and improve performance 2024-05-30 00:06:36 +08:00
Harvey Zack 63e7b1a9e6 Update artplayer-plugin-danmuku.d.ts 2024-05-30 00:03:32 +08:00
Harvey Zack 58846384c8 chore: Update danmuku plugin configuration handling and improve performance 2024-05-29 23:55:07 +08:00
Harvey Zack 5cee83817a Update danmuku.js 2024-05-29 23:37:02 +08:00
Harvey Zack 6d74b32b33 chore: Update danmuku plugin configuration handling and improve performance 2024-05-29 23:36:34 +08:00
Harvey Zack 0ae3b05d0a Update artplayer-plugin-danmuku.d.ts 2024-05-29 22:37:52 +08:00
Harvey Zack eb5af00d82 Update config.js 2024-05-29 14:22:00 +08:00
Harvey Zack 1ee87c8c2b Update artplayer-plugin-danmuku.d.ts 2024-05-29 12:44:03 +08:00
Harvey Zack fcef233746 chore: Update danmuku plugin configuration handling and improve performance 2024-05-29 12:42:04 +08:00
Harvey Zack 4971eaa17c chore: Optimize danmuku plugin performance and update configuration handling 2024-05-29 11:19:13 +08:00
Harvey Zack d0f1f4a76c chore: Update danmuku plugin configuration handling and improve performance 2024-05-29 11:16:56 +08:00
Harvey Zack 034444d77d chore: Improve danmuku plugin performance and update configuration handling 2024-05-29 10:59:45 +08:00
Harvey Zack b2bf084fbc chore: Set DOM node state and update styles for danmuku plugin 2024-05-29 10:41:59 +08:00
Harvey Zack 54b20cdfcb Merge branch 'master' of https://github.com/zhw2590582/ArtPlayer 2024-05-28 11:26:10 +08:00
Harvey Zack d932aa95ff Update style.css 2024-05-28 11:26:07 +08:00
Harvey Zack 5f0b7ffc77 Update nodejs.yml 2024-05-28 11:14:12 +08:00
Harvey Zack c1edb1ac6e chore: Update checkbox labels and improve code editor functionality 2024-05-28 11:11:31 +08:00
Harvey Zack 7464cfa80f Update package.json 2024-05-28 10:37:52 +08:00
Harvey Zack bc4e8ec3f7 Update package.json 2024-05-28 10:10:18 +08:00
Harvey Zack 67a5025d9e chore: Optimize danmuku plugin performance and update configuration handling 2024-05-28 10:08:03 +08:00
Harvey Zack 264ad16790 chore: Optimize danmuku plugin performance and update configuration handling 2024-05-28 10:05:34 +08:00
Harvey Zack 6719f516a5 chore: Optimize danmuku plugin performance and update configuration handling 2024-05-28 10:01:45 +08:00
Harvey Zack a158c5ebdc chore: Optimize danmuku plugin performance and update configuration handling 2024-05-28 09:32:24 +08:00
Harvey Zack e91bcff3a8 chore: Update danmuku plugin to resize and reset displayed danmuku 2024-05-28 09:02:28 +08:00
Harvey Zack 313b6ae54d chore: Refactor artplayerPluginDanmuku plugin and add artplayerPluginChromecast plugin 2024-05-28 08:45:43 +08:00
Harvey Zack 9ca560fd05 chore: Update danmuku plugin to improve performance and optimize configuration updates 2024-05-27 22:13:49 +08:00
Harvey Zack 0661848f64 chore: Update tooltip for danmuku toggle button 2024-05-27 22:04:09 +08:00
Harvey Zack 8366b0673a chore: Update Artplayer option type imports and usage 2024-05-27 18:30:06 +08:00
Harvey Zack ab109a1acd chore: Update mount parameter type in Danmuku and Setting classes 2024-05-27 18:16:40 +08:00
Harvey Zack f4396308fe Update danmuku.js 2024-05-27 17:46:20 +08:00
Harvey Zack 7ed2f58e6a chore: Update mount parameter type in Danmuku and Setting classes 2024-05-27 17:27:55 +08:00
Harvey Zack 27284099d7 chore: Update font size range for danmuku plugin 2024-05-27 14:18:58 +08:00
Harvey Zack 24e51b96e2 chore: Update Danmuku show and hide methods 2024-05-27 13:55:59 +08:00
Harvey Zack f79538d259 chore: Optimize configuration updates in Danmuku and Setting classes 2024-05-27 13:52:23 +08:00
Harvey Zack 6c74db3a06 Update danmuku.md 2024-05-27 12:46:55 +08:00
Harvey Zack c1457dd9ae chore: Update build.js to return compressedHtmlString instead of compressedCssString 2024-05-27 12:43:50 +08:00
Harvey Zack 774ca866d2 chore: Update build.js to return compressedHtmlString instead of compressedCssString 2024-05-27 12:30:30 +08:00
Harvey Zack c7e91e3c8f chore: Reset danmuku queue and emit event on reset 2024-05-27 11:47:31 +08:00
Harvey Zack b2f2251c63 Update artplayer-plugin-danmuku.d.ts 2024-05-27 11:44:20 +08:00
Harvey Zack e53c051166 chore: Update plugin names to use proper capitalization 2024-05-27 11:37:27 +08:00
Harvey Zack 43309b72cf Update common.js 2024-05-27 11:19:59 +08:00
Harvey Zack fb700fa988 chore: Update dependencies and optimize configuration updates in Danmuku and Setting classes 2024-05-27 11:03:26 +08:00
Harvey Zack e3a337d9ab chore: Remove unnecessary console.log statements 2024-05-27 10:01:40 +08:00
Harvey Zack 45c122027a chore: Optimize configuration updates in Danmuku and Setting classes 2024-05-26 22:55:53 +08:00
Harvey Zack c3ea0bdeec chore: Add artplayer plugins for various video formats 2024-05-26 22:53:06 +08:00
Harvey Zack eb5369573d chore: Remove unnecessary code and optimize configuration updates in Danmuku and Setting classes 2024-05-26 22:16:30 +08:00
Harvey Zack a1569b9ddf chore: Remove console.log statements from Danmuku and Setting classes 2024-05-26 21:39:16 +08:00
Harvey Zack 8a9132ea91 chore: Optimize configuration updates in Danmuku and Setting classes 2024-05-26 21:29:14 +08:00
Harvey Zack 2c618bc7b4 Update switchMix.js 2024-05-26 21:09:09 +08:00
WeidiDeng 2f9604c44a seek when video metadata is ready in switch url (#743) 2024-05-26 21:08:00 +08:00
Harvey Zack bc1554d240 Update nodejs.yml 2024-05-26 20:45:23 +08:00
Harvey Zack 5bb44b4998 Update nodejs.yml 2024-05-26 20:41:47 +08:00
Harvey Zack e01f49821c Update nodejs.yml 2024-05-26 20:38:40 +08:00
Harvey Zack 12b1c1d347 chore: Update package.json to set "private" flag to true 2024-05-26 20:29:25 +08:00
Harvey Zack c08798fb05 refactor: Update ESLint configuration to use latest ECMAScript version and warn about indentation 2024-05-26 20:01:27 +08:00
Harvey Zack 2b8c1e2d32 chore: Update npmClient to use yarn instead of lerna bootstrap 2024-05-26 19:53:13 +08:00
Harvey Zack 2665177532 chore: Update npmClient to use yarn instead of lerna bootstrap 2024-05-26 19:48:15 +08:00
Harvey Zack bf7629e1d7 Update nodejs.yml 2024-05-26 19:39:11 +08:00
Harvey Zack 699135afcf Danmuku (#759)
* chore: Bump artplayer-plugin-danmuku version to 5.1.0

* chore: Update danmuku plugin with new mount option

* chore: Update danmuku plugin with new mount option

* chore: Update danmuku plugin with new mount option

* chore: Update danmuku plugin with new mount option

* chore: Update danmuku plugin with new mount option

* chore: Update danmuku plugin with new mount option

* chore: Refactor getDanmuTop function to handle additional cases

* chore: Refactor getDanmuTop function to handle additional cases

* chore: Update danmuku plugin with new mount option

* chore: Update danmuku plugin with new mount option

* chore: Refactor danmuku plugin to always create a new Setting instance

* Refactor danmuku plugin to always create a new Setting instance

* Refactor danmuku plugin to always create a new Setting instance

* Update danmuku.js

* Update danmuku.js

* Refactor danmuku plugin to include a new Setting instance

* Refactor danmuku plugin to include a new Setting instance

* Refactor danmuku plugin styles for better alignment and spacing

* Refactor danmuku plugin styles for better alignment and spacing

* Refactor danmuku plugin styles for better alignment and spacing

* Refactor danmuku plugin styles for better alignment and spacing

* Refactor danmuku plugin styles for better alignment and spacing

* chore: Update package.json files

* Refactor danmuku plugin to remove unnecessary whitespace in the setting template

* chore: Remove ESLint configuration files and update npm dependencies

* chore: Update ESLint configuration to disable console warnings and fix unused variable warnings

* chore: Update ESLint configuration to fix quotes rule

* Update package.json

* Update package.json

* Update setting.js

* chore: Compress CSS code in build script

* chore: Update build script to compress JavaScript code

* chore: Update build script to compress JavaScript code

* chore: Refactor setting.js to improve code organization and remove unused variables

* chore: Add isHover flag to Control component for better control hiding behavior

* chore: Update Control component to use $bottom instead of $controls for better control hiding behavior

* Update package.json

* Update package.json

* Update package.json

* chore: Update lerna.json to use independent versioning and yarn as npm client

* refactor: Update Danmuku class to support configurable modes and visibility

* refactor: Update Danmuku styles for better visibility and configurability

* feat: Update font weight in Danmuku styles for better readability

* refactor: Update Danmuku class to support configurable modes and visibility

* refactor: Add opacity, area, font, and speed sliders to Danmuku settings

* refactor: Initialize sliders for opacity, area, font, and speed in Danmuku settings

* feat: Add slider UI for opacity, area, and speed in Danmuku settings

* feat: Update slider styles in Danmuku settings for better visibility and configurability

* refactor: Improve Danmuku settings UI for better visibility and configurability

* refactor: Improve Danmuku settings UI for better visibility and configurability

* refactor: Update slider styles in Danmuku settings for better visibility and configurability

* refactor: Update margin slider initialization in Danmuku settings

* refactor: Update slider styles and initialization in Danmuku settings

* refactor: Update Danmuku class to support configurable visibility

* refactor: Update Danmuku class to support configurable visibility

* refactor: Update Danmuku class to support configurable visibility

* refactor: Update Danmuku class to support configurable visibility

* refactor: Update Danmuku settings UI for better visibility and configurability

* refactor: Update Danmuku settings UI for better visibility and configurability

* refactor: Update Danmuku settings UI for better visibility and configurability

* refactor: Update Danmuku settings UI for better visibility and configurability

* refactor: Improve Danmuku settings UI for better visibility and configurability

* add lock

* refactor: Add lock and unlock methods to Danmuku settings

* refactor: Update Danmuku settings UI for better visibility and configurability

* refactor: Update Danmuku settings UI for better visibility and configurability

* refactor: Update Danmuku settings UI for better visibility and configurability

* refactor: Update Danmuku settings UI for better visibility and configurability

* Update artplayer-plugin-danmuku.d.ts

* refactor: Update Danmuku settings UI for better visibility and configurability

* refactor: Update Danmuku settings UI for better visibility and configurability

* refactor: Update Danmuku settings UI for better visibility and configurability

* refactor: Update Danmuku settings UI for better visibility and configurability

* refactor: Update Danmuku settings event listeners

* refactor: Update Danmuku settings UI for better visibility and configurability

* refactor: Update Danmuku settings UI for better visibility and configurability

* refactor: Update Danmuku settings UI for better visibility and configurability

* refactor: Update Danmuku settings UI for better visibility and configurability
2024-05-26 14:57:22 +08:00
Harvey Zack dfd1cf968d chore: Refactor lock plugin to improve code readability and maintainability 2024-05-11 12:44:14 +08:00
Harvey Zack 9daa14e32d Update index.js 2024-04-16 10:00:47 +08:00
Harvey Zack 3ca3a3b781 Update artplayer-plugin-chromecast.d.ts 2024-04-16 00:55:56 +08:00
Harvey Zack aa5dbd0418 Add artplayer-plugin-chromecast to index.html 2024-04-16 00:45:26 +08:00
Harvey Zack 8f8b69cc25 Update thumbnails.js 2024-04-12 10:50:57 +08:00
Harvey Zack 00f780a7dc Update index.html to remove QQ群•320881312 and add a new div for QQ群•320881312 in the tool section 2024-04-11 10:58:22 +08:00
Harvey Zack c47c39d13b Update index.html 2024-04-11 10:01:49 +08:00
Harvey Zack 5f694a7299 Update HTML files to improve language consistency and remove unused code 2024-04-10 22:13:01 +08:00
Harvey Zack 76a6c59e12 Update style.css to remove unused color property and improve layout 2024-04-10 22:06:17 +08:00
Harvey Zack 5f0e41ad40 Update donate link in index.html 2024-04-10 21:55:43 +08:00
Harvey Zack 5ae86a407f Update style.css to improve layout and design 2024-04-10 21:51:20 +08:00
Harvey Zack 1210eb8a98 Fix indentation in clickInit.js 2024-03-30 11:13:13 +08:00
WeidiDeng 8038397185 record click timestamps to calculate number of clicks (#728)
* record click timestamps to calculate number of clicks

* break after each case
2024-03-30 11:07:25 +08:00
Harvey Zack d982f4d3b1 Add supportsFlex() function and error handling for unsupported flex layout 2024-03-30 11:02:35 +08:00
Harvey Zack fb6179e2be Add fullscreenError event to Artplayer 2024-03-30 10:34:42 +08:00
Harvey Zack 7f295a5c84 Merge branch 'master' of https://github.com/zhw2590582/ArtPlayer 2024-03-29 17:16:25 +08:00
Harvey Zack 5e155770f6 Remove unused font files and deleted unnecessary JavaScript files 2024-03-29 17:16:05 +08:00
Harvey Zack 04905ff44f Update Artplayer version and service worker registration 2024-03-17 18:55:47 +08:00
Harvey Zack c9dd163ab5 Merge branch 'master' of https://github.com/zhw2590582/ArtPlayer 2024-03-17 18:28:35 +08:00
Harvey Zack 781b93523c Update fullscreen.less and package.json 2024-03-17 18:28:18 +08:00
Harvey Zack 83ab3419e0 Create frag_bunny.mp4 2024-02-04 11:25:26 +08:00
Harvey Zack 346bb0adf2 Update release date for version 5.1.1 2024-02-03 11:52:51 +08:00
Harvey Zack 3aa30de771 Update version to 5.1.1 and add support for synchronous and asynchronous plugin functions 2024-01-11 10:40:55 +08:00
Harvey Zack a1063c20ed update docs 2024-01-10 09:58:31 +08:00
Harvey Zack 50ba902df5 Update dependencies and remove unused files 2024-01-10 09:31:36 +08:00
Harvey Zack 0dee1ef446 update docs 2024-01-10 09:20:13 +08:00
Harvey Zack 434aa3d57d Update CHANGELOG_CN.md and template.js 2023-12-23 12:02:18 +08:00
Harvey Zack 0a0b1593ae Update style.css and index.html files 2023-12-11 17:34:06 +08:00
Harvey Zack c1d86cc029 Update checkbox styling and add PRO checkbox 2023-12-11 16:50:28 +08:00
Harvey Zack 8d4749c839 Delete unused files 2023-12-11 16:23:23 +08:00
Harvey Zack d3d8229496 Delete unused font files 2023-11-27 10:33:52 +08:00
Harvey Zack aa88683cbf Update danmuku.js file 2023-11-27 10:27:48 +08:00
Harvey Zack 4e7480fffc Delete video backup file and update video file 2023-11-27 10:14:20 +08:00
Harvey Zack 52be176830 Fix hotkey event handling for non-input elements 2023-11-27 10:00:10 +08:00
Harvey Zack 144ab64421 Merge branch 'master' of https://github.com/zhw2590582/ArtPlayer 2023-11-27 09:59:59 +08:00
Harvey Zack 52e4564776 Replace video file format in common.js 2023-11-27 09:59:52 +08:00
WeidiDeng 773618a177 not trigger shortcuts when ctrl or command key is pressed (#668)
* not trigger shortcuts when ctrl or command key is pressed

* exclude alt and shift keys from event trigger
2023-11-27 09:31:45 +08:00
Harvey Zack b2bffa8079 Refactor artplayerPluginLibass to use ES6 syntax 2023-11-26 15:03:17 +08:00
Harvey Zack 4360c1e695 Merge branch 'pr/654' 2023-11-26 14:51:34 +08:00
Harvey Zack d8720d3bcf Update artplayer plugin versions 2023-11-26 14:05:09 +08:00
Harvey Zack b235f9bbac Update dependencies and fix documentation 2023-11-26 13:35:34 +08:00
Harvey Zack 5a166f421d Add Danmuku plugin to config.js 2023-11-26 13:28:29 +08:00
Harvey Zack a2b57495a2 Update build:docs and trans:docs scripts 2023-11-26 13:23:21 +08:00
Harvey Zack a2d3e20479 Fix build:docs script order in package.json 2023-11-26 11:42:11 +08:00
Harvey Zack b6a62f8dc5 Update language and demo links in plugin
documentation
2023-11-26 11:26:18 +08:00
Harvey Zack 69197312cc Update OpenAI translation engine and increase max
tokens limit
2023-11-26 11:19:13 +08:00
Harvey Zack 7df74e227a Update package.json 2023-11-26 10:33:03 +08:00
Harvey Zack bbbeca6e4c Update HLS, FLV, and DASH player configurations
Update progress bar height in Artplayer

Add dynamic layer, controller, menu, and setting item management

Update Changelog_CN

Update utils.js

Update package.json

Update built-in management in Artplayer

Update i18n documentation

Add support for new languages

Update language import and modification
2023-11-26 10:30:24 +08:00
Harvey Zack 73fb04737a Update hover color and progress height in
variables.less and progress.less
2023-11-25 21:16:41 +08:00
Harvey Zack 24601dd18c Update transition property in bottom.less and
remove unnecessary styles in plugins.less and
miniProgressBar.js
2023-11-25 16:14:31 +08:00
Harvey Zack 2b18452644 Delete unnecessary files and update plugin names 2023-11-24 10:11:08 +08:00
Harvey Zack a2591533f3 Update CHANGELOG_CN.md 2023-11-24 10:03:12 +08:00
Harvey Zack 21a735f86b Fix async issue in plugin addition 2023-11-24 10:00:49 +08:00
Harvey Zack d579e7e86d Refactor subtitle loading function 2023-11-24 01:02:00 +08:00
Harvey Zack 7ba3098212 Fix subtitle merging issue 2023-11-24 00:37:37 +08:00
Harvey Zack 780124d84b Add new utility functions and update styles 2023-11-23 23:58:24 +08:00
Harvey Zack 29ff487547 Add isBrowser check in Artplayer initialization 2023-11-23 23:48:09 +08:00
Harvey Zack 53b5c4165c Fix bug in login functionality 2023-11-23 23:33:08 +08:00
Harvey Zack 783bf1cac3 Refactor loadSubtitleAsVtt to use
art.constructor.utils
2023-11-23 23:29:14 +08:00
Harvey Zack 89b8525f2f Add unescape utility function and
artplayerPluginMultipleSubtitles plugin
2023-11-23 23:23:51 +08:00
Harvey Zack 3db53c425e Remove loop event and property 2023-11-21 23:42:05 +08:00
Harvey Zack ce99b73d04 Add subtitle name to track label 2023-11-21 11:11:30 +08:00
Harvey Zack 3d8d22a98a Remove art.loop interval playback feature 2023-11-21 10:52:47 +08:00
journey-ad 08ec5716f9 feat(subtitle): add artplayer-plugin-libass 2023-11-14 12:36:35 +08:00
Harvey Zack cf8cea8283 Fix minor bugs and remove loop control 2023-11-11 10:20:45 +08:00
Harvey Zack 4e139ab6f0 Update FUNDING.yml 2023-10-28 12:41:20 +08:00
Harvey Zack 9de1d74b7a fix control 2023-10-24 23:42:23 +08:00
Harvey Zack c1780c3137 update control 2023-10-24 22:22:24 +08:00
Harvey Zack ea4ec61fd7 update style 2023-10-21 12:04:54 +08:00
Harvey Zack 9efdab28b9 fix style 2023-09-10 11:18:20 +08:00
Harvey Zack adc837e225 update next.js 2023-09-09 18:50:45 +08:00
Harvey Zack 59794f32c6 add art-subtitle-line 2023-09-01 21:27:59 +08:00
Harvey Zack 95ba1810b6 use || 2023-09-01 21:14:10 +08:00
VaSeala cafff9b155 fixed absolute url in the vtt file (#610)
fixed the type file path
2023-08-31 16:57:23 +08:00
Harvey Zack 1fe653e3c3 remove i18n 2023-08-27 12:41:27 +08:00
Harvey Zack ce012c1626 update d.ts 2023-08-26 17:01:40 +08:00
Harvey Zack a2034e643d update .gitignore 2023-08-26 16:53:34 +08:00
Harvey Zack 2fc9d4d3e9 Dep (#601)
* init

* update dep
2023-08-26 16:48:19 +08:00
Harvey Zack 45ec17798f update deps 2023-08-26 13:45:35 +08:00
Harvey Zack c930bafd67 add tr.js 2023-08-26 13:32:51 +08:00
Harvey Zack e71a683dfd I18n (#600)
* update i18n

* update i18n
2023-08-26 13:22:19 +08:00
Harvey Zack 9ba838aa52 add Artplayer.USE_RAF 2023-08-26 00:03:26 +08:00
Harvey Zack 6fc1532ada update CHANGELOG_CN 2023-08-25 21:57:05 +08:00
Harvey Zack 482d074ae2 fix video:seeked event 2023-08-22 20:54:47 +08:00
Harvey Zack 894a9db1d7 add Artplayer.LOG_VERSION 2023-08-22 20:51:39 +08:00
dependabot[bot] 3179d1241e Bump prettier from 2.8.8 to 3.0.0 (#574)
Bumps [prettier](https://github.com/prettier/prettier) from 2.8.8 to 3.0.0.
- [Release notes](https://github.com/prettier/prettier/releases)
- [Changelog](https://github.com/prettier/prettier/blob/main/CHANGELOG.md)
- [Commits](https://github.com/prettier/prettier/compare/2.8.8...3.0.0)

---
updated-dependencies:
- dependency-name: prettier
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-07-10 23:03:56 +08:00
Harvey Zack eac37379d3 add muted 2023-06-29 21:44:33 +08:00
Harvey Zack 6c7daa8dc7 update eventInit 2023-06-02 15:36:34 +08:00
O2bmm 16994e446e function-update-optimize (#549) 2023-06-02 15:18:03 +08:00
dependabot[bot] 7fc369d210 Bump workbox-build from 6.6.1 to 7.0.0 (#547)
Bumps [workbox-build](https://github.com/googlechrome/workbox) from 6.6.1 to 7.0.0.
- [Release notes](https://github.com/googlechrome/workbox/releases)
- [Commits](https://github.com/googlechrome/workbox/commits/v7.0.0)

---
updated-dependencies:
- dependency-name: workbox-build
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2023-06-02 15:17:51 +08:00
Harvey Zack 2dae9ed679 update docs 2023-05-24 16:05:01 +08:00
Harvey Zack 382b451bb9 update docs 2023-05-19 20:43:16 +08:00
Harvey Zack 4a088aebc4 update demo 2023-05-18 12:31:48 +08:00
Harvey Zack ac7667df29 update artplayer.d.ts 2023-05-14 11:39:44 +08:00
Harvey Zack 04be7f346c Update package.json 2023-05-14 11:30:35 +08:00
Harvey Zack f330081916 artplayer@5.0.9 2023-05-14 11:10:54 +08:00
Harvey Zack 7bb6af0731 artplayer@5.0.8 2023-05-13 23:48:59 +08:00
Harvey Zack f26db31777 Update miniMix.js 2023-05-13 23:25:16 +08:00
Harvey Zack e243d8b230 update docs 2023-05-13 22:48:24 +08:00
Harvey Zack 6ab5aec6d1 artplayer@5.0.7 2023-05-13 22:27:12 +08:00
Harvey Zack e3e42eb399 update docs 2023-05-13 21:57:45 +08:00
Harvey Zack 84c84e4cda Merge branch 'aspectRatio' 2023-05-13 21:41:06 +08:00
Harvey Zack 39452167c3 update resize 2023-05-13 21:39:45 +08:00
Harvey Zack 4902322808 Aspect ratio (#534)
* update

* update

* Create video2.mp4

* add art.quality

* fix art.theme
2023-05-13 21:23:05 +08:00
Harvey Zack 2faffecc00 fix art.theme 2023-05-13 21:22:43 +08:00
Harvey Zack 6c5393b691 add art.quality 2023-05-13 19:53:04 +08:00
Harvey Zack 8582259dd4 Create video2.mp4 2023-05-06 11:23:58 +08:00
Harvey Zack 0141129c74 update 2023-05-06 11:20:09 +08:00
Harvey Zack f8e07c4d25 update 2023-05-06 10:38:54 +08:00
Harvey Zack 1beff2c7fa update resizeInit 2023-05-06 10:21:04 +08:00
Harvey Zack 550aa0e7f2 update docs 2023-05-06 09:52:01 +08:00
Harvey Zack 2749d50209 Update nodejs.yml 2023-05-05 23:00:16 +08:00
Harvey Zack e095e45791 update heatmap.js 2023-05-05 22:56:00 +08:00
Harvey Zack 7cd91b8375 Test (#531)
* init

* init

* remove checkLeaks

* update browserslist
2023-05-05 22:20:04 +08:00
Harvey Zack edc99269bc update demo 2023-05-05 15:57:38 +08:00
Harvey Zack cf6670bc53 add isIOS13 2023-05-05 13:08:07 +08:00
Harvey Zack f6d6113423 update docs 2023-05-05 09:00:44 +08:00
Harvey Zack 8670175910 Update package.json 2023-05-04 15:36:04 +08:00
Harvey Zack 782a828758 update player.d.ts 2023-05-04 12:55:54 +08:00
Harvey Zack a6a9e93517 Update CHANGELOG_CN.md 2023-05-04 12:44:16 +08:00
Harvey Zack 37dc0a8203 update switchMix.js 2023-05-04 12:40:31 +08:00
Harvey Zack c301844a87 v5.0.6 2023-05-03 12:47:01 +08:00
Harvey Zack 601836c05c v5.0.5 2023-05-03 12:00:34 +08:00
Harvey Zack 8ff35b5f6f update demo 2023-05-03 11:08:49 +08:00
Harvey Zack 5959eb4669 build:all 2023-05-03 10:14:46 +08:00
Harvey Zack 283861b198 fix subtitle style 2023-05-03 09:57:28 +08:00
Harvey Zack 7dd21df106 update docs 2023-05-02 23:44:04 +08:00
Harvey Zack 0ad47e4cf1 build:all 2023-05-02 22:10:52 +08:00
Harvey Zack 88ae6d202c update docs 2023-05-02 21:41:01 +08:00
Harvey Zack 9ea091856b update heatmap 2023-05-02 20:03:29 +08:00
Harvey Zack ebc915e3ab update artplayerPluginDanmuku 2023-05-02 19:44:07 +08:00
Harvey Zack 85b3743a9f Update danmuku.js 2023-05-02 19:38:44 +08:00
Harvey Zack 4ff176c1bd fix heatmap style 2023-05-02 19:33:16 +08:00
Harvey Zack 272a98ada9 update danmuku.js 2023-05-02 19:22:47 +08:00
Harvey Zack 4d1a2acb51 Update sw.js 2023-05-02 19:14:48 +08:00
Harvey Zack 56af4ca4a4 update heatmap 2023-05-02 19:14:14 +08:00
Harvey Zack db5a7d3567 update danmuku 2023-05-02 15:51:33 +08:00
Harvey Zack ab4000d4f2 build artplayer-plugin-danmuku 2023-05-02 13:49:44 +08:00
Harvey Zack 4d9db7d1b5 update CHANGELOG_CN 2023-05-02 13:44:49 +08:00
Harvey Zack e3658aed6f Heatmap (#525)
* add heatmap

* update

* add heatmap
2023-05-02 13:43:05 +08:00
Harvey Zack 5ba1569f67 update demo 2023-04-30 13:37:34 +08:00
Harvey Zack 17f6d46fe0 update docs 2023-04-29 23:04:12 +08:00
Harvey Zack ab57157371 update docs 2023-04-29 22:52:08 +08:00
Harvey Zack 6264a54f93 build docs 2023-04-27 15:24:07 +08:00
Harvey Zack 2de2b991d5 5.0.4 2023-04-27 14:23:18 +08:00
Harvey Zack 217e83eac5 artplayer@5.0.3 2023-04-26 11:22:17 +08:00
Harvey Zack 336627cae3 build docs 2023-04-26 10:54:26 +08:00
Harvey Zack ddfce350ec update scripts 2023-04-26 10:25:02 +08:00
Harvey Zack 90a5f6d045 update Setting 2023-04-26 09:00:31 +08:00
Harvey Zack 7b65b414ff fix mobile m3u8 loading error 2023-04-25 21:59:25 +08:00
Harvey Zack b2084633db fix art-full 2023-04-24 22:47:54 +08:00
Harvey Zack 45c076bc3b 5.0.2 2023-04-24 17:14:23 +08:00
Harvey Zack 12c8b97af4 update fullscreenWeb.less 2023-04-24 11:34:44 +08:00
Harvey Zack 77b96112fb Update index.html 2023-04-24 11:22:05 +08:00
Harvey Zack 4583136d1f 5.0.1 2023-04-24 08:54:43 +08:00
Harvey Zack 93fe9a98f4 fix setting bug 2023-04-23 22:02:28 +08:00
Harvey Zack 59f8e984e2 add mobile.hls.html 2023-04-23 21:39:30 +08:00
Harvey Zack ac127bda77 v5.0.0 2023-04-23 18:15:36 +08:00
Harvey Zack 08ff3dd19d build:all 2023-04-23 16:14:40 +08:00
Harvey Zack 71199d7d0e update artplayer-plugin-control 2023-04-23 16:09:03 +08:00
Harvey Zack 2824b69174 build:all 2023-04-23 15:57:40 +08:00
Harvey Zack 868af2b230 Update CHANGELOG_CN.md 2023-04-23 15:40:52 +08:00
Harvey Zack 708fabbe61 update artplayer-plugin-danmuku 2023-04-23 15:37:05 +08:00
Harvey Zack 2371760d77 Update CHANGELOG_CN.md 2023-04-23 15:25:46 +08:00
Harvey Zack 55ca351b60 update docs 2023-04-23 15:11:08 +08:00
Harvey Zack 3f1e033152 update style 2023-04-23 14:38:13 +08:00
Harvey Zack ee49a0435e V5 (#509)
* update artplayer.d.ts

* update variables.less

* update artplayerPluginControl

* build:all

* update docs

* update docs

* update docs

* Update layers.md

* update index.js

* update docs

* update docs
2023-04-23 13:50:30 +08:00
Harvey Zack c8c08137c4 update setting 2023-04-23 00:24:05 +08:00
Harvey Zack 37d2ae1d01 Update events.d.ts 2023-04-23 00:22:20 +08:00
Harvey Zack 3b57470957 update docs 2023-04-23 00:21:38 +08:00
Harvey Zack 7c8a3c2c7d prettier 2023-04-22 19:00:25 +08:00
Harvey Zack 7fe80943a9 Update danmuku.js 2023-04-22 15:16:02 +08:00
Harvey Zack a801cd5613 fix setting add 2023-04-22 15:12:45 +08:00
Harvey Zack d34a6ba268 update property.js 2023-04-22 15:03:48 +08:00
Harvey Zack a3b767f15d update artplayer.d.ts 2023-04-21 22:55:16 +08:00
Harvey Zack 71fad99a6a update autoPlayback 2023-04-21 21:14:06 +08:00
Harvey Zack 51bee25800 Update player.d.ts 2023-04-21 16:49:37 +08:00
Harvey Zack 81edd00afc update d.ts 2023-04-21 16:44:32 +08:00
Harvey Zack 8904130837 update player.d.ts 2023-04-20 12:00:51 +08:00
Harvey Zack 4035135a69 update stateMix 2023-04-20 11:53:21 +08:00
Harvey Zack 609ccb4c46 update stateMix 2023-04-20 11:49:43 +08:00
Harvey Zack 6743144f44 update mobile.html 2023-04-20 11:14:42 +08:00
Harvey Zack b44394a3d8 Update mobile.html 2023-04-20 10:37:53 +08:00
Harvey Zack bac74f6202 Update mobile.html 2023-04-20 10:34:23 +08:00
Harvey Zack 232b12effb Update mobile.html 2023-04-20 00:34:20 +08:00
Harvey Zack ad8c50ddd7 update aspectRatioReset 2023-04-20 00:23:01 +08:00
Harvey Zack 61cf68f0bc update gestureInit 2023-04-19 23:27:02 +08:00
Harvey Zack c7a6e67940 update --art-settings-scale 2023-04-19 14:40:35 +08:00
Harvey Zack 274205a180 update --art-control-opacity 2023-04-19 14:27:36 +08:00
Harvey Zack 641b0abd64 update --art-indicator-size 2023-04-19 14:21:52 +08:00
Harvey Zack 909f9cab59 add --art-indicator-scale 2023-04-19 14:20:14 +08:00
Harvey Zack a8f0ea12c0 update time 2023-04-19 14:07:04 +08:00
Harvey Zack fb445bf669 add DBCLICK_FULLSCREEN 2023-04-19 11:43:50 +08:00
Harvey Zack 4244b085dc update artplayer-plugin-ads 2023-04-19 11:06:29 +08:00
Harvey Zack a490a0f5d9 build 2023-04-19 10:01:51 +08:00
Harvey Zack a6ab0aa276 add --art-border-radius 2023-04-19 09:59:57 +08:00
Harvey Zack 572788a9ab update style 2023-04-19 09:56:53 +08:00
Harvey Zack 48268ef091 update style 2023-04-19 09:39:52 +08:00
Harvey Zack 89206e3924 update style 2023-04-19 09:26:39 +08:00
Harvey Zack 4848b9e48c update style 2023-04-19 09:04:18 +08:00
Harvey Zack 677c99aa38 update events.d.ts 2023-04-19 02:55:29 +08:00
Harvey Zack 90915652aa update Component 2023-04-19 02:47:37 +08:00
Harvey Zack 3c8cb0e2e2 update component 2023-04-19 02:36:13 +08:00
Harvey Zack e23e828b3d Update component.d.ts 2023-04-18 23:06:43 +08:00
Harvey Zack 70f551b878 update component 2023-04-18 23:04:52 +08:00
Harvey Zack d1156a40b1 update Component 2023-04-18 23:02:51 +08:00
Harvey Zack 13f3398765 add beforeUnmount 2023-04-18 22:58:16 +08:00
Harvey Zack 645e2e2ec3 update component.d.ts 2023-04-18 22:52:33 +08:00
Harvey Zack cd28cc795f update toggle 2023-04-18 22:39:47 +08:00
Harvey Zack 776a02a221 update component 2023-04-18 22:24:06 +08:00
Harvey Zack 6d81287de9 update isStringOrNumber 2023-04-18 18:25:51 +08:00
Harvey Zack 6b6fca8b74 update setting 2023-04-18 18:17:39 +08:00
Harvey Zack 4ba822fdf2 update --art-control-height 2023-04-18 16:30:21 +08:00
Harvey Zack 058325d3cc Setting (#502)
* init

* remove updateStyle

* Revert "remove updateStyle"

This reverts commit 053654ae72.

* add --art-tip-background
2023-04-18 16:02:00 +08:00
Harvey Zack 4b9e8dfc9d Update artplayer.d.ts 2023-04-18 00:52:24 +08:00
Harvey Zack 7d6b7f2070 update setting 2023-04-18 00:51:06 +08:00
Harvey Zack 3ab2e96144 rename moveInit 2023-04-18 00:03:59 +08:00
Harvey Zack 455bd807a7 build:all 2023-04-17 23:16:44 +08:00
Harvey Zack 5354917b5a update mask.less 2023-04-17 23:06:40 +08:00
Harvey Zack c283504f0a update i18n.d.ts 2023-04-17 22:58:25 +08:00
Harvey Zack cf95177ad6 add --art-subtitle-border 2023-04-17 22:54:55 +08:00
Harvey Zack 27cf18a997 update player.d.ts 2023-04-17 22:50:11 +08:00
Harvey Zack 443afeb496 update optionInit 2023-04-17 22:45:08 +08:00
Harvey Zack 339034d30d add cssVar 2023-04-17 22:40:22 +08:00
Harvey Zack 49e1ed15b8 add cssPropertyMix 2023-04-17 22:39:18 +08:00
Harvey Zack f013f8604e add CssVar 2023-04-17 22:11:06 +08:00
Harvey Zack c4252b21b5 add documentInit 2023-04-17 22:04:57 +08:00
Harvey Zack d531c41735 update event.button === 0 2023-04-17 18:54:16 +08:00
Harvey Zack e9e1e08de5 update isMobile 2023-04-17 18:51:48 +08:00
Harvey Zack 18b4bae2fa update mobile style 2023-04-17 18:33:21 +08:00
Harvey Zack 7b53de941d V5 (#500)
* update dep

* Update package.json

* update contextmenu

* update d.ts

* update onVttLoad

* build artplayer

* update style

* --art-theme

* update style

* update style

* update user-select

* add getIcon

* update style

* update style

* update style

* update style

* update style

* update style

* update style

* update style

* update style

* update style

* update style

* update style

* update style

* update style

* update style

* add progress-hover

* update mini

* update style

* update style

* update style

* update style

* update style

* update volume

* update style

* add art-backdrop

* update style

* update style

* update style

* update currentLevel

* update artplayerPluginControl

* update artplayerPluginDanmuku

* Update package.json
2023-04-16 23:01:26 +08:00
Harvey Zack af12bd9634 update docs 2023-03-31 22:25:27 +08:00
Harvey Zack a7e7c2ea06 Update package.json 2023-03-31 22:24:03 +08:00
Nick Panteleeff 7e9f30bfe1 Add russian translation (#490) 2023-03-27 10:31:15 +08:00
Harvey Zack ec38a16be0 update docs 2023-02-24 21:52:52 +08:00
Harvey Zack 9700b2dff9 Update package.json 2023-02-24 21:31:09 +08:00
Harvey Zack 9433cbc2bb update docs 2023-02-24 21:29:55 +08:00
几句レし a3425da515 Add Indonesian (Bahasa Indonesia) Language (#477)
* Update artplayer.d.ts

* Update option.md

* Update option.md

* Create id.json

* Update index.js

* Update i18n.d.ts
2023-02-24 16:11:39 +08:00
Harvey Zack f43a2921b7 update docs 2023-02-24 11:20:58 +08:00
Harvey Zack 2011c77df4 update docs 2023-02-24 11:16:00 +08:00
Harvey Zack f73e00fde2 add webtorrent 2023-02-19 23:27:24 +08:00
Harvey Zack fee92a9247 Update package.json 2023-02-18 19:28:01 +08:00
Harvey Zack e0fcc50055 bugfix 2023-02-18 19:27:56 +08:00
Harvey Zack 4b9c7fd4cf Update package.json 2023-02-18 13:06:27 +08:00
Harvey Zack f472410a3b add artplayer-plugin-dash-quality 2023-02-18 13:06:23 +08:00
Harvey Zack 3f399e4b41 typo fix 2023-02-18 11:34:58 +08:00
Harvey Zack 3391ca1fed artplayer-plugin-hls-quality.js v1.0.1 2023-02-18 11:34:45 +08:00
Aurèle ZANNOU-TCHOKO d3862db0f3 Add french language (#460)
* Create fr.json

* Update index.js

* Update i18n.d.ts

* Update option.md

* Update option.md

* Update artplayer.d.ts
2023-01-31 10:39:56 +08:00
Harvey Zack 35d2028bcc Update CHANGELOG_CN.md 2023-01-27 09:15:39 +08:00
Harvey Zack e2582dc185 artplayer@4.6.2 2023-01-26 15:28:58 +08:00
Harvey Zack 43fda18f18 artplayer@4.6.2 2023-01-26 15:28:49 +08:00
Harvey Zack 1d56947e16 update docs 2023-01-21 11:33:04 +08:00
Harvey Zack c733375d75 add FULLSCREEN_WEB_IN_BODY 2023-01-21 11:32:08 +08:00
Harvey Zack 827be6ee02 build docs 2023-01-21 11:20:20 +08:00
Harvey Zack 5898dad3d7 fix video:ratechange 2023-01-20 15:54:08 +08:00
Harvey Zack ff54b34275 fix setting bug 2023-01-20 15:48:03 +08:00
Harvey Zack 38ad57192d update vue3 2023-01-19 17:30:33 +08:00
Harvey Zack 181121a36d update docs 2023-01-18 15:51:04 +08:00
Harvey Zack b97184bf48 build docs 2023-01-18 15:24:59 +08:00
Harvey Zack d5844af7ae update docs 2023-01-18 14:52:27 +08:00
Harvey Zack 5414fbfd81 add aspect-ratio 2023-01-18 14:35:59 +08:00
Harvey Zack 07f4b808b8 update screenshot.png 2023-01-15 10:49:50 +08:00
Harvey Zack 2229c0a348 build all 2023-01-15 10:26:47 +08:00
Harvey Zack ccd026a4d5 update subtitleOffset 2023-01-14 18:47:45 +08:00
Harvey Zack d696e817cf update docs 2023-01-14 18:39:52 +08:00
Harvey Zack 8b515906f5 update CHANGELOG_CN.md 2023-01-14 14:55:03 +08:00
Harvey Zack fe18fce0d8 add artplayer-plugin-vtt-thumbnail 2023-01-14 14:42:32 +08:00
Harvey Zack 4028a46195 add artplayer-plugin-vtt-thumbnail 2023-01-14 14:41:50 +08:00
Harvey Zack 20a4252955 update docs 2023-01-14 11:11:58 +08:00
Harvey Zack b924ed48d7 update docs 2023-01-12 09:51:33 +08:00
Harvey Zack bd7585bcb4 update docs 2023-01-12 09:51:04 +08:00
Harvey Zack 3e0a35e080 update docs 2023-01-12 09:48:40 +08:00
Harvey Zack 92706a04cf update docs 2023-01-12 09:37:04 +08:00
Harvey Zack 4365bacbad add updateStyle 2023-01-11 23:04:15 +08:00
Harvey Zack 37f4b1868c update docs 2023-01-11 22:39:57 +08:00
Harvey Zack a07b2ecfbf update docs 2023-01-11 22:22:44 +08:00
Harvey Zack 15519a6929 Update CHANGELOG_CN.md 2023-01-11 22:17:21 +08:00
Harvey Zack 99190ef88c Update CHANGELOG_CN.md 2023-01-11 22:14:48 +08:00
Harvey Zack 9a1078aed7 update docs 2023-01-11 21:05:38 +08:00
Harvey Zack 9b4eb62453 update qq 2023-01-11 21:04:47 +08:00
Harvey Zack d295952d60 build:all 2023-01-11 20:53:12 +08:00
Harvey Zack 4125e3385b Update nodejs.yml 2023-01-11 20:45:35 +08:00
Harvey Zack fa7954de0d Artplayer vitepress (#446)
* init

* init

* update

* update

* update

* update

* update

* update

* add i18n option

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update

* update
2023-01-11 20:45:01 +08:00
Harvey Zack 6a866f88c3 4.6.0 2023-01-01 10:37:33 +08:00
Harvey Zack e971df5c18 update thumbnails 2023-01-01 10:16:52 +08:00
Harvey Zack 78d22e4e54 update docs 2023-01-01 00:30:01 +08:00
Harvey Zack ac490964eb update artplayer-plugin-control 2023-01-01 00:17:15 +08:00
Harvey Zack 46af8a32d7 Update control.js 2023-01-01 00:10:57 +08:00
Harvey Zack 5421ccc9d6 update artplayerPluginControl 2022-12-31 23:51:07 +08:00
Harvey Zack 692a43e4ec fix updateStyle 2022-12-31 23:44:26 +08:00
Harvey Zack 0da181faae update style 2022-12-31 23:41:08 +08:00
Harvey Zack b5c61a25a2 update style 2022-12-31 23:40:59 +08:00
Harvey Zack 1b4d9815a3 update style 2022-12-31 23:38:10 +08:00
Harvey Zack c941f01650 update style 2022-12-31 23:37:51 +08:00
Harvey Zack fd63a64539 mouseout -> mouseleave 2022-12-31 23:21:00 +08:00
Harvey Zack 42f2087b66 Update index.html 2022-12-31 23:09:43 +08:00
Harvey Zack b39b5c9eda build all 2022-12-31 23:09:38 +08:00
Harvey Zack a52d5c92c0 fix setting style 2022-12-31 23:05:00 +08:00
Harvey Zack 7aad1936c2 update docs 2022-12-31 22:37:51 +08:00
Harvey Zack bfec31bc5f fix artplayer-plugin-control style 2022-12-31 21:46:51 +08:00
Harvey Zack 1df2bd1def update build-ts 2022-12-31 21:40:57 +08:00
Harvey Zack 054ee3f3f6 add artplayer-plugin-control 2022-12-31 21:38:03 +08:00
Harvey Zack aafa046a9f update artplayer-plugin-control 2022-12-31 21:30:15 +08:00
Harvey Zack 6b791be35a Aliyundrive (#436)
* init

* init

* add example

* add initControl

* add initControl

* update style

* update style

* update style

* update style

* update style

* update style

* update style

* update style

* build all

* build all

* update style
2022-12-31 21:16:54 +08:00
Harvey Zack 4dcde5a539 update scripts 2022-12-25 18:16:37 +08:00
Harvey Zack c18739387a update scripts 2022-12-25 18:16:08 +08:00
Harvey Zack 4158136809 4.5.13 2022-12-14 23:14:03 +08:00
Harvey Zack a7a820d9f1 Update package.json 2022-12-07 21:12:57 +08:00
Harvey Zack 7167173d87 Fix type 2022-12-07 21:12:51 +08:00
Harvey Zack 417964d183 Fix typo DEBUG 2022-12-07 21:09:52 +08:00
Harvey Zack bffa21364c Update package.json 2022-12-04 21:08:32 +08:00
Harvey Zack a6c204908e update d.ts 2022-11-24 13:21:10 +08:00
Harvey Zack bf88d47ff3 4.5.12 2022-11-20 12:49:18 +08:00
Harvey Zack 920600c29f build:all 2022-11-17 16:03:39 +08:00
Harvey Zack 2fb895349f update docs 2022-11-17 16:00:42 +08:00
Harvey Zack 678e409a3f fix art.loop 2022-11-14 23:18:51 +08:00
Harvey Zack 5fc659b454 4.5.11 2022-11-13 23:00:23 +08:00
Harvey Zack 09e6942c01 whitelist default true 2022-11-13 22:53:09 +08:00
Harvey Zack 02904faddb Update CHANGELOG_CN.md 2022-11-10 18:01:33 +08:00
Harvey Zack 6250936443 add Artplayer.CONTEXTMENU 2022-11-10 18:01:28 +08:00
Harvey Zack aab4a1caaf add mobile controls 2022-11-08 20:27:37 +08:00
Harvey Zack aef5083fcb update vconsole 2022-11-08 08:19:48 +08:00
Harvey Zack 9a08306c10 build all 2022-11-06 20:47:18 +08:00
Harvey Zack 364060bd8a remove font-smoothing 2022-11-06 17:30:05 +08:00
Harvey Zack 1e2d1a23a8 Update player.d.ts 2022-11-06 14:33:24 +08:00
Harvey Zack ecc54b7428 update style 2022-11-06 14:04:13 +08:00
Harvey Zack d6e4cf01a6 update theme color 2022-11-06 13:49:59 +08:00
Harvey Zack 7890b01c4d update style 2022-11-06 13:29:17 +08:00
Harvey Zack 5edeb39b07 Update CHANGELOG_CN.md 2022-11-05 12:02:04 +08:00
Harvey Zack c2d61beb40 Update CHANGELOG_CN.md 2022-11-05 11:59:53 +08:00
Harvey Zack ea74b5fc5f artplayer@4.5.10 2022-11-05 11:59:47 +08:00
Myon f8af7c88c3 fix firefox subtitle does not show (#415) 2022-11-05 11:53:41 +08:00
Harvey Zack 2a4b271d5f update style 2022-11-05 11:40:54 +08:00
Harvey Zack 2d0560157a Update artplayer.less 2022-11-05 11:37:57 +08:00
Harvey Zack 9a58cd7a71 update style 2022-11-05 11:37:50 +08:00
Harvey Zack 795ef1f136 artplayer@4.5.9 2022-11-05 09:42:35 +08:00
Harvey Zack 824baca8b4 update docs 2022-11-05 09:31:23 +08:00
Harvey Zack e0b351831e Update README.md 2022-11-05 09:23:53 +08:00
Harvey Zack 6c4d6bf6c8 Update .prettierignore 2022-11-04 23:05:52 +08:00
Harvey Zack 7912559c17 update .prettierignore 2022-11-04 23:05:13 +08:00
Harvey Zack 463884b50a Update package.json 2022-11-04 20:57:59 +08:00
Harvey Zack 4f223885bf Update package.json 2022-11-04 20:55:24 +08:00
Harvey Zack 1593a4a528 add prettier 2022-11-04 20:55:17 +08:00
Harvey Zack 4092b51c4e remove examples dir 2022-11-04 20:29:15 +08:00
Harvey Zack 1ca9ffa832 uodate d.ts 2022-11-03 22:38:06 +08:00
Harvey Zack 9c90ed86f4 update 2022-11-03 22:18:17 +08:00
Harvey Zack 3d72f2d95f add Artplayer.PROGRESS_HEIGHT 2022-11-03 22:13:30 +08:00
Harvey Zack 6f94ebade3 fix css 2022-11-03 22:01:44 +08:00
Harvey Zack cb51568f7f update demo 2022-10-30 11:02:49 +08:00
Harvey Zack fbf1039681 fix test error 2022-10-30 10:47:21 +08:00
Harvey Zack 004a764b28 build all 2022-10-30 10:36:54 +08:00
Harvey Zack 39627bdd82 update utils 2022-10-30 10:04:02 +08:00
Harvey Zack 6715bc457a Playback rate (#411)
* update
2022-10-29 21:14:17 +08:00
Harvey Zack efc9cf7362 update docs 2022-10-27 21:47:21 +08:00
Harvey 7210653334 build all 2022-10-27 17:14:33 +08:00
Harvey bb21e129b8 update artplayer-tool-thumbnail 2022-10-27 17:12:59 +08:00
Harvey 309fb7bf95 update demo 2022-10-27 16:41:15 +08:00
Harvey c245d7faa1 Update CHANGELOG_CN.md 2022-10-27 16:34:55 +08:00
Harvey 2aa95fd3a8 Update hls.quality.js 2022-10-27 16:12:43 +08:00
Harvey 46de63b86e update demo 2022-10-27 16:11:00 +08:00
Harvey Zack 97c73c1115 Hls quality (#409)
* update docs
2022-10-27 15:30:47 +08:00
Harvey Zack 431a8642f6 update docs (#408) 2022-10-27 11:11:26 +08:00
Harvey Zack b86cc3870e update sw.js 2022-10-23 10:34:38 +08:00
Harvey Zack 3e640c1d33 typofix 2022-10-22 12:21:17 +08:00
Harvey Zack c96120a0eb Update index.js 2022-10-22 12:18:21 +08:00
Harvey 45fd1777c4 update docs 2022-10-21 13:55:34 +08:00
Harvey f0e856093e add art.type 2022-10-21 11:29:25 +08:00
Harvey 31a2a29871 update docs 2022-10-21 10:55:48 +08:00
Harvey Zack fed80dcca4 artplayer-plugin-iframe(#407)
* update artplayer-plugin-iframe
2022-10-21 10:36:50 +08:00
Harvey Zack 08f284a64b Update iframe.helper.js 2022-10-20 21:54:43 +08:00
Harvey fb96049de9 Update artplayer.d.ts 2022-10-20 17:41:25 +08:00
Harvey 8dcaada8cf Update iframe.helper.js 2022-10-20 17:31:31 +08:00
Harvey 96781698ba update iframe.helper.js 2022-10-20 17:19:02 +08:00
Harvey Zack d055eb3e60 Iframe inject (#406) 2022-10-20 16:46:26 +08:00
Harvey b5727b60a2 update iframe-fullscreen-web 2022-10-20 12:23:32 +08:00
Harvey Zack c74b86b367 Update style.css 2022-10-20 07:13:55 +08:00
Harvey Zack 9af64c0968 update demo 2022-10-20 07:12:51 +08:00
Harvey 68bb6e0a58 update demo 2022-10-19 17:48:31 +08:00
Harvey 1e9a5e21ab update d.ts 2022-10-18 18:14:52 +08:00
dependabot[bot] 0da0b55a1b Bump lerna from 5.6.2 to 6.0.0
Bumps [lerna](https://github.com/lerna/lerna/tree/HEAD/core/lerna) from 5.6.2 to 6.0.0.
- [Release notes](https://github.com/lerna/lerna/releases)
- [Changelog](https://github.com/lerna/lerna/blob/main/core/lerna/CHANGELOG.md)
- [Commits](https://github.com/lerna/lerna/commits/v6.0.0/core/lerna)

---
updated-dependencies:
- dependency-name: lerna
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-10-14 10:04:49 +08:00
Harvey 8ccab4d756 Create audio.mp3 2022-10-12 15:14:23 +08:00
Harvey 38a424c10b update docs 2022-10-12 13:32:04 +08:00
Harvey ba1dd88050 Delete artplayer.legacy.js.js 2022-10-11 17:57:32 +08:00
Harvey c6cbba717c Fix build name error 2022-10-11 17:56:22 +08:00
Harvey 5e330a59cc add legacy.js 2022-10-11 17:54:25 +08:00
Harvey 1d5197ab07 artplayer-plugin-danmuku@4.4.11 2022-10-11 10:48:42 +08:00
Harvey Zack e0351a7b93 Update common.js 2022-10-10 20:59:37 +08:00
Harvey Zack 26c2a63b55 Update artplayer.d.ts 2022-10-10 20:26:33 +08:00
Harvey Zack 84e8c23ad0 Update utils.d.ts 2022-10-10 20:25:41 +08:00
Harvey 55587c32c7 Update option.d.ts 2022-10-10 10:19:38 +08:00
Harvey 572c9db7f7 update test 2022-10-10 09:19:11 +08:00
Harvey ce97ac7f2d add lastPlaybackRate 2022-10-10 08:32:45 +08:00
DRAWCORE 07c206ab89 set right playbackrate after fastforward on mobile 2022-10-09 22:21:47 +08:00
Harvey Zack 2cf2a464b9 Update CHANGELOG_CN.md 2022-10-09 20:59:42 +08:00
Harvey Zack 0e2644c8e7 artplayer@4.5.8 2022-10-09 20:58:42 +08:00
Harvey e57be9ff2e update demo 2022-10-09 18:14:54 +08:00
Harvey bd7de49585 Update sw.js 2022-10-09 18:03:46 +08:00
Harvey 0736b7e4d2 add ts to demo 2022-10-09 18:03:23 +08:00
Harvey 57f5c44d17 Update option.d.ts 2022-10-09 17:14:43 +08:00
Harvey d2d0e2d8db update d.ts 2022-10-09 16:48:20 +08:00
Harvey 05b6dba336 Update setting.d.ts 2022-10-09 16:34:35 +08:00
Harvey Zack 02953257f7 New type (#399)
* Update artplayer.d.ts
2022-10-09 15:43:32 +08:00
Harvey e4196f53d9 add art.setting.update 2022-10-09 10:19:36 +08:00
Harvey 95c09d17ec update d.ts 2022-10-08 14:36:16 +08:00
Harvey ebb6f84358 update docs 2022-10-08 10:06:16 +08:00
Harvey 167bbbd5e8 Update sw.js 2022-10-08 09:57:31 +08:00
Harvey 500acc2444 add Artplayer.DEGUG 2022-10-08 09:51:49 +08:00
Harvey Zack eda1fab811 build 2022-10-04 20:56:27 +08:00
Harvey Zack a9af217408 add farsi language 2022-10-04 20:40:55 +08:00
mahdiasli 2346bf1271 Rename es.json to fa.json 2022-10-04 20:29:52 +08:00
mahdiasli ac4ea205cb Update es.json 2022-10-04 20:29:52 +08:00
mahdiasli c355468f99 Update index.js
importing farsi language
2022-10-04 20:29:52 +08:00
Harvey 30d6eb93b0 artplayer@4.5.7 2022-09-28 14:54:56 +08:00
Harvey 37bfafb174 Fix mobile progress 2022-09-28 11:40:19 +08:00
Harvey 783b973fb2 Fix mobile touchstart 2022-09-28 10:51:26 +08:00
Harvey Zack 4d1a695f33 Update CHANGELOG_CN.md 2022-09-27 08:28:53 +08:00
Harvey 067a0fc0c8 add art.isRotate 2022-09-26 18:32:14 +08:00
Harvey af6e936854 add art.isRotate 2022-09-26 18:28:22 +08:00
Harvey 1cbef4c6f4 Update CHANGELOG_CN.md 2022-09-26 16:04:43 +08:00
Harvey 28e85ea490 Update CHANGELOG_CN.md 2022-09-26 09:11:14 +08:00
Harvey 86d083dcc2 fix mobile control click event 2022-09-26 08:56:34 +08:00
Harvey 0f99168529 Fix progress event 2022-09-26 08:46:15 +08:00
Harvey 95407c1f75 add range onChange 2022-09-26 08:30:31 +08:00
Harvey Zack 6c5f1c8433 Update iframe.inner.html 2022-09-21 23:28:55 +08:00
Harvey Zack 2d48f247ad update iframe demo 2022-09-21 23:18:19 +08:00
Harvey 8b8d58dd66 add Iframe test 2022-09-21 11:03:45 +08:00
Harvey 4c40dbf8d8 Fix svg miss 2022-09-21 09:57:42 +08:00
Harvey 241bca703c update svg size 2022-09-21 09:52:37 +08:00
Harvey ac11b68667 Update mobile.html 2022-09-21 09:43:04 +08:00
Harvey e155f20593 Update mobile.html 2022-09-21 09:40:03 +08:00
Harvey f69ef95b80 update docs 2022-09-21 09:20:43 +08:00
Harvey 1a18ce0b9b update d.ts 2022-09-20 14:45:09 +08:00
Harvey 92ad45b976 add Artplayer.SEEK_STEP 2022-09-20 14:43:18 +08:00
Harvey 2ba636f3c7 Revert "click the progress on the mobile"
This reverts commit 01fd77c835.
2022-09-20 09:39:15 +08:00
Harvey 01fd77c835 click the progress on the mobile 2022-09-20 09:36:42 +08:00
Harvey Zack 3ab7427b74 artplayer@4.5.6 2022-09-19 23:21:51 +08:00
Harvey 650f81b8fb Update CHANGELOG_CN.md 2022-09-19 10:13:00 +08:00
Harvey 273b75d07d 4.5.5 2022-09-19 10:03:17 +08:00
Harvey Zack 0b0aad78a5 Merge branch 'master' of https://github.com/zhw2590582/ArtPlayer 2022-09-16 13:05:32 +08:00
Harvey Zack 2ca2eb88a0 expose danmuku option 2022-09-16 13:05:30 +08:00
Harvey Zack 7b2bf35bdb Update index.js 2022-09-16 09:08:21 +08:00
Harvey Zack c043498280 update d.ts 2022-09-16 08:40:39 +08:00
Harvey Zack 0a6ef6214e update dev build 2022-09-16 08:29:58 +08:00
Harvey Zack f0ca2c0ca4 Update CHANGELOG_CN.md 2022-09-16 08:26:51 +08:00
Nicolás Herrera 6a93517674 Addition of spanish language 2022-09-16 08:16:19 +08:00
Harvey Zack 6d93e581b7 Update mobile.html 2022-09-10 08:30:09 +08:00
Harvey cc65c58e4f update dependencies 2022-09-09 10:26:21 +08:00
dependabot[bot] 918d300e2a Bump node-html-parser from 5.4.2 to 6.0.0
Bumps [node-html-parser](https://github.com/taoqf/node-fast-html-parser) from 5.4.2 to 6.0.0.
- [Release notes](https://github.com/taoqf/node-fast-html-parser/releases)
- [Changelog](https://github.com/taoqf/node-html-parser/blob/main/CHANGELOG.md)
- [Commits](https://github.com/taoqf/node-fast-html-parser/compare/v5.4.2...v6.0.0)

---
updated-dependencies:
- dependency-name: node-html-parser
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-09-09 08:41:08 +08:00
Harvey 14ac231e08 update sw 2022-09-08 15:49:08 +08:00
Harvey a5b035e031 update subtitle.js 2022-09-07 16:54:01 +08:00
Harvey 8d057080f1 fix ios subtitle 2022-09-07 16:45:05 +08:00
Harvey 1e460de2e8 remove screenfull.on('change') 2022-09-07 15:49:51 +08:00
Harvey 489b81bb43 Fix mobile subtitle 2022-09-07 15:38:53 +08:00
Harvey Zack ce2184f016 add danmuku reset 2022-09-06 22:01:23 +08:00
Harvey 978ce9a4ed update d.ts 2022-08-31 15:48:19 +08:00
Harvey 815556b69a update d.ts 2022-08-31 15:45:03 +08:00
Harvey 2a32703868 update d.ts 2022-08-31 15:34:22 +08:00
Harvey 4bd67b5b87 update d.ts 2022-08-31 15:29:52 +08:00
Harvey 0aa9189d17 update d.ts 2022-08-31 15:26:52 +08:00
dependabot[bot] e2e15994c6 Bump docusaurus-lunr-search from 2.1.16 to 2.2.0
Bumps [docusaurus-lunr-search](https://github.com/lelouch77/docusaurus-lunr-search) from 2.1.16 to 2.2.0.
- [Release notes](https://github.com/lelouch77/docusaurus-lunr-search/releases)
- [Commits](https://github.com/lelouch77/docusaurus-lunr-search/compare/v2.1.16...v2.2.0)

---
updated-dependencies:
- dependency-name: docusaurus-lunr-search
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-31 08:23:48 +08:00
Harvey Zack 673c15670c Update package.json 2022-08-25 15:20:36 +08:00
Harvey eb1466288b update d.ts 2022-08-24 10:52:53 +08:00
Harvey 8c9db3f302 add createElement 2022-08-18 09:40:33 +08:00
Harvey 326a292e27 update d.ts 2022-08-16 15:18:23 +08:00
dependabot[bot] 2cbacb2704 Bump docusaurus-lunr-search from 2.1.15 to 2.1.16
Bumps [docusaurus-lunr-search](https://github.com/lelouch77/docusaurus-lunr-search) from 2.1.15 to 2.1.16.
- [Release notes](https://github.com/lelouch77/docusaurus-lunr-search/releases)
- [Commits](https://github.com/lelouch77/docusaurus-lunr-search/compare/v2.1.15...v2.1.16)

---
updated-dependencies:
- dependency-name: docusaurus-lunr-search
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-08-09 09:37:31 +08:00
Harvey e394b73553 update ads 2022-08-02 10:40:29 +08:00
Harvey 66c6bc667c update ads demo 2022-08-02 10:34:40 +08:00
Harvey 4a481a898b update docs 2022-08-02 10:27:09 +08:00
Harvey cccb9dfcf9 Update build.js 2022-08-02 10:06:57 +08:00
Hannes Fant 95e0e18ecc Add support for muted ads
Allows for more reliable autoplaying when the source video has sound by muting it automatically
2022-08-02 09:04:44 +08:00
Harvey Zack 6a602f4054 artplayer@4.5.4 2022-08-01 22:00:16 +08:00
Harvey 41c39284c5 add Artplayer.TOUCH_MOVE_RATIO 2022-07-28 17:49:24 +08:00
Harvey 62988f04e0 add option.id 2022-07-28 10:12:43 +08:00
Harvey ec09bcdc92 update types.test.ts 2022-07-19 14:16:38 +08:00
Harvey Zack bcd8010ade update docs 2022-07-18 21:42:18 +08:00
Harvey Zack e793fea93e Merge branch 'master' of https://github.com/zhw2590582/ArtPlayer 2022-07-18 21:33:12 +08:00
Harvey Zack e6b4669ae9 Update thumbnails.js 2022-07-18 21:33:08 +08:00
Harvey 6c8df95f56 update build 2022-07-18 09:23:07 +08:00
Harvey fab5afed28 add screenfull.js 2022-07-18 09:22:34 +08:00
Harvey 9f1971f7d6 Update CHANGELOG_CN.md 2022-07-14 10:34:47 +08:00
Harvey 856ab536fb update d.ts 2022-07-14 10:24:48 +08:00
Harvey 7e65d486bc add Artplayer.AUTO_PLAYBACK_MIN 2022-07-14 10:23:45 +08:00
Harvey 60b61dd7b1 Update package.json 2022-07-14 09:40:51 +08:00
Harvey d8b0477cdc remove some disable 2022-07-14 09:35:45 +08:00
Harvey 99bae1fab2 artplayer@4.5.3 2022-07-13 16:16:18 +08:00
Harvey 2294620436 update airplayMix 2022-07-13 16:10:39 +08:00
Harvey a39a2a19da update sw.js 2022-07-13 16:02:12 +08:00
Harvey 5758d4c93e update docs 2022-07-13 15:42:25 +08:00
Harvey fbd1d2170a add airplay 2022-07-13 15:35:04 +08:00
Harvey 55c7560ce2 update d.ts 2022-07-11 11:18:36 +08:00
Harvey bff84f9cb6 update urlMix 2022-06-27 10:37:13 +08:00
Harvey 19d9e5cea9 update screenfull 2022-06-27 09:53:01 +08:00
Harvey b6c274b2cf update dep 2022-06-27 09:44:00 +08:00
Harvey f665cf9b92 Update CHANGELOG_CN.md 2022-06-22 17:48:49 +08:00
Harvey ace7540b9c Update CHANGELOG_CN.md 2022-06-22 17:27:41 +08:00
Harvey 1d5ff8adf0 update playMix.js 2022-06-22 17:22:15 +08:00
Harvey c09713d50f artplayer@4.5.2 2022-06-22 16:58:46 +08:00
Harvey 0971aba7f9 Update CHANGELOG_CN.md 2022-06-22 16:51:13 +08:00
Harvey d29f821338 artplayer@4.5.1 2022-06-22 16:50:34 +08:00
Harvey 1db287fb24 update docs 2022-06-22 16:47:41 +08:00
Harvey eb9e42c8f5 update style 2022-06-22 14:35:03 +08:00
Harvey e48c50956d update autoPlayback 2022-06-22 14:27:42 +08:00
Harvey 691202ace4 artplayer-plugin-ads@1.0.4 2022-06-22 10:31:39 +08:00
Harvey 1d4b2d58ac artplayer-plugin-ads@1.0.3 2022-06-22 09:37:50 +08:00
Harvey d81f9d4f65 artplayer-plugin-ads@1.0.2 2022-06-21 14:55:27 +08:00
Harvey 7a2fb8302d Update test.png 2022-06-21 14:38:12 +08:00
Harvey dbac833a26 update mobile demo 2022-06-21 14:30:53 +08:00
Harvey d148e7d9e5 update mobile demo 2022-06-21 14:06:47 +08:00
Harvey 8d04f11048 update mobile demo 2022-06-21 13:57:14 +08:00
Harvey 829d3a4b42 update mobile demo 2022-06-21 13:49:45 +08:00
Harvey a831975f4f Fix test error 2022-06-21 11:13:40 +08:00
Harvey 25d2319287 artplayer-plugin-ads@1.0.0 2022-06-21 10:52:33 +08:00
Harvey d1ead6c543 Update sw.js 2022-06-21 10:46:03 +08:00
Harvey 0149a6e557 update docs 2022-06-21 10:45:20 +08:00
Harvey 35856b745f add ads loading 2022-06-21 10:32:31 +08:00
Harvey 667b7f16e1 Update CHANGELOG_CN.md 2022-06-21 10:09:41 +08:00
Harvey 910c020488 add artplayer-plugin-ads 2022-06-21 10:08:55 +08:00
Harvey 463e05fcc0 Update package.json 2022-06-21 10:02:57 +08:00
Harvey 9a2fd6d9fd update 2022-06-21 10:01:07 +08:00
Harvey Zack 0535b798b2 update 2022-06-20 22:10:24 +08:00
Harvey 199c15ff3f update 2022-06-20 18:17:50 +08:00
Harvey 830720790e update 2022-06-20 17:52:00 +08:00
Harvey 3dea070ade update 2022-06-20 17:23:05 +08:00
Harvey 9716f97a51 update 2022-06-20 16:27:06 +08:00
Harvey ff1f38aeb7 update 2022-06-20 15:12:59 +08:00
Harvey 640360abd7 update 2022-06-20 11:44:00 +08:00
Harvey 0c70663345 update ads demo 2022-06-20 11:13:07 +08:00
Harvey a4d7ff721b init artplayerPluginAds 2022-06-20 10:29:39 +08:00
Harvey 13ace1b8a8 update docs 2022-06-20 10:12:24 +08:00
Harvey 7bbe1ed0be remove ads 2022-06-20 10:09:20 +08:00
Harvey 92f751250e Update package.json 2022-06-17 15:51:29 +08:00
Harvey 422728844a update docs 2022-06-13 15:02:32 +08:00
Harvey 107d884274 add vue2 demo 2022-06-13 15:00:06 +08:00
Harvey 102037dd42 artplayer-plugin-danmuku@4.4.8 2022-06-13 13:28:03 +08:00
Harvey dce698a648 artplayer@4.4.7 2022-06-13 11:31:59 +08:00
Harvey Zack 7cbf28e134 增加弹幕库解析的兼容 2022-06-12 20:17:20 +08:00
Harvey Zack 1a638c490a Update package.json 2022-06-12 19:57:33 +08:00
Harvey Zack 47c2fab768 artplayer@4.4.6 2022-06-11 14:19:39 +08:00
dependabot[bot] 064841f555 Bump lerna from 4.0.0 to 5.1.1
Bumps [lerna](https://github.com/lerna/lerna/tree/HEAD/core/lerna) from 4.0.0 to 5.1.1.
- [Release notes](https://github.com/lerna/lerna/releases)
- [Changelog](https://github.com/lerna/lerna/blob/main/core/lerna/CHANGELOG.md)
- [Commits](https://github.com/lerna/lerna/commits/v5.1.1/core/lerna)

---
updated-dependencies:
- dependency-name: lerna
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-06-10 10:55:44 +08:00
Harvey 530448c3b4 修改匹配 XML 弹幕的正则表达式 2022-06-08 16:22:27 +08:00
Genteure 19061122b2 修改匹配 XML 弹幕的正则表达式 2022-06-08 16:21:22 +08:00
Harvey edfc95e4c3 回滚到用正则解析弹幕xml 2022-06-08 10:15:16 +08:00
Harvey 8cedc12387 Update CHANGELOG_CN.md 2022-06-08 10:00:20 +08:00
Harvey e2558dafc0 使用DOMParser解析弹幕xml 2022-06-08 10:00:04 +08:00
Genteure d644d322c3 使用 DOMParser 解析弹幕 XML 文件
这样的实现更标准,主要有两个优点:
1. 能正确处理转义过的字符,如 `<d p="2,1,25,16777215,0,0,0,0">&lt;&lt;&lt;&lt;</d>`
2. 能支持其他“兼容”B站弹幕XML格式的弹幕文件
2022-06-08 09:59:11 +08:00
Harvey 3d4f8ce3aa 调整字幕字体大小参数 2022-06-06 14:58:42 +08:00
Harvey Zack a10a9f9507 Update artplayer-plugin-danmuku.d.ts 2022-06-04 11:51:53 +08:00
Harvey Zack b6254f41bc Update artplayer.d.ts 2022-06-04 11:49:01 +08:00
Harvey Zack 86d7b380d5 add danmuku d.ts 2022-06-04 11:32:18 +08:00
Harvey Zack d6b36b49fa artplayer@4.4.5 2022-06-02 21:39:45 +08:00
Harvey 49f4ac5ca9 Update CHANGELOG_CN.md 2022-05-26 13:39:21 +08:00
Harvey b43522263e artplayer@4.4.3 2022-05-26 13:37:45 +08:00
Harvey d716c31af5 Update setting.js 2022-05-24 11:18:23 +08:00
Harvey Zack ea2c3dc289 update danmuku 2022-05-23 20:28:30 +08:00
Harvey 3d47813f12 Update package.json 2022-05-23 17:54:55 +08:00
Harvey Zack c8a4958883 Update mobile.html 2022-05-22 22:10:41 +08:00
Harvey Zack dee47af58f Merge branch 'master' of https://github.com/zhw2590582/ArtPlayer 2022-05-21 08:46:37 +08:00
Harvey Zack 2c625d72fa Update CONTRIBUTING.md 2022-05-21 08:46:34 +08:00
Harvey Zack ede78ea7cf Update nodejs.yml 2022-05-21 08:41:23 +08:00
Harvey Zack f1c180ddeb Update package.json 2022-05-21 08:40:59 +08:00
Harvey Zack 5255061db3 add postinstall 2022-05-21 08:32:14 +08:00
Harvey 8aba96a9bd 4.4.2 2022-05-20 18:13:34 +08:00
Harvey Zack 6d638b3983 Update CHANGELOG_CN.md 2022-05-19 21:32:51 +08:00
Harvey Zack 85c6eddcf0 Fix setting bug 2022-05-19 21:31:22 +08:00
Harvey d554e4b6f7 add autoSize transition 2022-05-19 09:18:31 +08:00
Harvey 596a3d24f3 Update mobile.html 2022-05-19 09:13:05 +08:00
Harvey 361c0b5eba Update mobile.html 2022-05-19 09:10:58 +08:00
Harvey 8a5910b530 remove danmuku video:loadedmetadata 2022-05-19 09:00:39 +08:00
Harvey Zack d3fbe7c288 fix loading display 2022-05-19 07:35:41 +08:00
Harvey Zack 823c7b0b6f fix mask display 2022-05-19 07:33:02 +08:00
Harvey Zack b0c6005a2e fix control display 2022-05-19 07:27:54 +08:00
Harvey Zack f682321d25 fix highlight display 2022-05-19 07:16:41 +08:00
Harvey Zack 70fd29429e bugfix 2022-05-18 20:04:58 +08:00
Harvey Zack e528465a6e bugfix 2022-05-18 20:01:57 +08:00
Harvey a0175e845f update docs 2022-05-18 13:36:22 +08:00
Harvey 2f9e0d49ee add error icon 2022-05-18 13:25:56 +08:00
Harvey 5dbac4897b update docs 2022-05-18 12:36:08 +08:00
Harvey f160d8eb61 remove art.once('video:loadedmetadata') 2022-05-18 11:29:05 +08:00
Harvey Zack e225966202 update docs 2022-05-17 21:28:01 +08:00
Harvey aa4d8d0211 Update CHANGELOG_CN.md 2022-05-17 15:51:18 +08:00
Harvey ad7022b599 artplayer@4.4.1 2022-05-17 15:50:40 +08:00
Harvey 0eb07c22f2 update style 2022-05-17 13:48:10 +08:00
Harvey 72a314590c add danmuku theme 2022-05-17 13:40:01 +08:00
Harvey ab5ab9b85a update docs 2022-05-17 12:45:43 +08:00
Harvey f83e8a01fc update docs 2022-05-17 12:32:09 +08:00
Harvey 7330c0224c update docs 2022-05-17 10:18:14 +08:00
Harvey 0fac6ba017 update docs 2022-05-17 10:14:17 +08:00
Harvey Zack e34e186085 Update compatibility.js 2022-05-16 22:59:14 +08:00
Harvey Zack a754f6181d typo fix 2022-05-16 22:53:16 +08:00
Harvey Zack f656116ac6 typo fix 2022-05-16 22:49:31 +08:00
Harvey Zack 9728032922 update danmuku maxWidth 2022-05-16 22:07:20 +08:00
Harvey Zack a6188f0fe2 update docs 2022-05-16 21:59:26 +08:00
Harvey Zack 9b054d195a Update layers.less 2022-05-16 21:51:44 +08:00
Harvey Zack 876989a572 remove danmuku mount 2022-05-16 21:48:42 +08:00
Harvey Zack 7379df3f00 update style 2022-05-16 21:01:25 +08:00
Harvey Zack 7909571e70 update danmuku 2022-05-16 20:59:45 +08:00
Harvey f020c30f56 remove danmuku.html 2022-05-16 18:27:24 +08:00
Harvey 0531717000 update danmuku style 2022-05-16 17:53:06 +08:00
Harvey 5eff6bccd9 update danmuku style 2022-05-16 17:47:28 +08:00
Harvey 83322860e0 Update danmuku.html 2022-05-16 17:35:45 +08:00
Harvey 40b76e1b74 add moveOnFullscreen to danmuku 2022-05-16 17:34:43 +08:00
Harvey 3b3b469b9b add loadedmetadata to danmuku 2022-05-16 17:03:59 +08:00
Harvey 1aeb2a93f8 update svgs 2022-05-16 16:57:34 +08:00
Harvey 893f77ba08 update mobile demo 2022-05-16 16:38:10 +08:00
Harvey 2cb73141fb add danmuku maxWidth 2022-05-16 16:24:31 +08:00
Harvey 93a517eaf8 update docs 2022-05-16 15:40:05 +08:00
Harvey d0f6d643a4 add danumuku lockTime 2022-05-16 13:49:41 +08:00
Harvey a989de98e5 update gestureInit.js 2022-05-16 13:18:10 +08:00
Harvey 7410a5be98 update docs 2022-05-16 13:13:07 +08:00
Harvey 2c5ba00521 add art.isLock 2022-05-16 13:09:08 +08:00
Harvey 2189a41334 update ts 2022-05-16 10:28:17 +08:00
Harvey 112256ddd7 add isAndroid and isiOS 2022-05-16 09:11:12 +08:00
Harvey Zack 42d43dfd15 update danmuku demo 2022-05-15 19:54:23 +08:00
Harvey Zack ffb74b9717 update sw.js 2022-05-15 19:45:21 +08:00
Harvey Zack c3f092dc2a 更新弹幕demo 2022-05-15 19:41:12 +08:00
Harvey Zack e8d721f92f 更新弹幕demo 2022-05-15 18:59:33 +08:00
Harvey Zack 3f4ceefbc7 Update CHANGELOG_CN.md 2022-05-15 17:50:45 +08:00
Harvey Zack fc978e9d85 添加滑动设置 2022-05-15 17:49:46 +08:00
Harvey Zack 4c12972101 Update README.md 2022-05-15 13:12:54 +08:00
Harvey Zack ddbb580fca add CHANGELOG 2022-05-15 13:10:20 +08:00
Harvey Zack 92348f004d update docs 2022-05-15 09:12:24 +08:00
Harvey Zack 7558d98116 Update index.js 2022-05-15 08:16:37 +08:00
Harvey Zack a5cda09e3c add danmuku resize 2022-05-15 07:55:52 +08:00
Harvey Zack 2b934ab988 add art.isInput 2022-05-15 07:42:28 +08:00
Harvey Zack 3741f876d5 artplayer@4.4.0 2022-05-14 23:24:13 +08:00
Harvey Zack 9c623b7fd7 add artplayerPluginDanmuku.env 2022-05-14 22:07:20 +08:00
Harvey Zack c568076b6b update danmuku.js 2022-05-14 22:00:28 +08:00
Harvey 1ba6898705 Update index.js 2022-05-14 12:09:37 +08:00
Harvey c1f34caa2e add checkVersion 2022-05-14 12:01:21 +08:00
Harvey e85f14e1b5 update ts 2022-05-14 11:44:51 +08:00
Harvey c46a8b86f7 update docs 2022-05-14 11:44:51 +08:00
Harvey 8bcc020627 add danmuku colors 2022-05-14 11:44:51 +08:00
Harvey Zack e690af2de4 update danmuku style 2022-05-14 11:44:51 +08:00
Harvey Zack 1ec4719806 add danmuku style 2022-05-14 11:44:51 +08:00
Harvey Zack 31eacefa97 update danmuku 2022-05-14 11:44:51 +08:00
Harvey Zack ddac5fd0f2 update danmuku.js 2022-05-14 11:44:51 +08:00
Harvey Zack d50e22ea9b update docs 2022-05-13 20:58:18 +08:00
Harvey Zack 887792c853 add flip icon 2022-05-13 20:44:56 +08:00
Harvey 642a2ac1a9 update danmuku setting 2022-05-13 18:44:31 +08:00
Harvey 59f7a88e51 update sw.js 2022-05-13 18:36:26 +08:00
Harvey 8c9e1e3446 update daumuku demo 2022-05-13 18:33:06 +08:00
Harvey a043a55b38 update danmuku fontSize 2022-05-13 17:06:10 +08:00
Harvey fd40fa71f6 update danmuku demo 2022-05-13 17:01:29 +08:00
Harvey a3889236be update danmuku 2022-05-13 16:10:19 +08:00
Harvey 31bd26a813 update setting 2022-05-13 13:15:46 +08:00
Harvey c964f8e0fc update setting 2022-05-13 13:07:19 +08:00
Harvey ae682b0525 Update mobile.html 2022-05-13 12:53:18 +08:00
Harvey 89a3b02ff5 update sw.js 2022-05-13 12:45:57 +08:00
Harvey 0aeb1262db fix demo 2022-05-13 12:42:27 +08:00
Harvey 737b667c1b update docs 2022-05-13 12:37:07 +08:00
Harvey a6d144d555 Merge branch 'setting-switch' 2022-05-13 12:36:58 +08:00
Harvey 0c1e8f0305 update docs 2022-05-13 11:17:57 +08:00
Harvey a18152b483 update setting 2022-05-13 11:10:29 +08:00
Harvey 2f51e3d546 update setting 2022-05-13 11:07:57 +08:00
Harvey d540b7f32e remove subtitle control 2022-05-13 10:07:54 +08:00
Harvey de9005cf20 update mobile demo 2022-05-13 09:31:11 +08:00
Harvey 7ff42596ef update docs 2022-05-12 18:33:02 +08:00
Harvey e069101c99 add new icons 2022-05-12 18:33:02 +08:00
Harvey c1acf27cd0 Update index.js 2022-05-12 18:33:02 +08:00
Harvey 62ce58330e update docs 2022-05-12 18:32:42 +08:00
Harvey b5148d5f2f add new icons 2022-05-12 17:14:26 +08:00
Harvey 1a7cc79bb6 Update index.js 2022-05-12 16:26:01 +08:00
Harvey Zack a1167f64e1 Update danmuku.js 2022-05-07 23:38:11 +08:00
Harvey Zack 25ed8303f2 Update sw.js 2022-05-07 23:37:33 +08:00
Harvey Zack 68c2c4058b Update danmuku.js 2022-05-07 23:37:18 +08:00
Harvey Zack 628cc0633b update sw.js 2022-05-07 23:29:08 +08:00
Harvey Zack 8b862abb40 fix typo 2022-05-07 21:39:32 +08:00
Harvey 3775f5972b update docs 2022-05-07 16:38:36 +08:00
Harvey 9e3389f8c0 artplayer@4.3.23 2022-05-06 16:29:05 +08:00
Harvey e30aa833db artplayer@4.3.22 2022-05-06 16:23:04 +08:00
Harvey f07ea0796a update docs 2022-05-06 11:44:45 +08:00
Harvey 3c7d76954e build all 2022-05-06 11:25:51 +08:00
Harvey fd51264bb8 update docs 2022-05-06 11:05:16 +08:00
Harvey 33bb679046 update docs 2022-05-06 11:00:10 +08:00
Harvey d88a992efb update docs 2022-05-06 10:46:17 +08:00
Harvey 194c65778b update docs 2022-05-06 10:21:32 +08:00
Harvey Zack 481d8fefbb Update ArtPlayer.js 2022-05-05 23:32:46 +08:00
Harvey Zack 611c6eb6f0 Merge branch 'damuku-v2' 2022-05-05 23:31:40 +08:00
Harvey Zack af9f9b3263 update template 2022-05-05 23:30:58 +08:00
Harvey Zack b78ff00d3a artplayer@4.3.21 2022-05-05 23:27:15 +08:00
Harvey Zack 316f798709 artplayer@4.3.20 2022-05-05 23:27:15 +08:00
Harvey 8a5c96f8bf update 2022-05-05 23:27:15 +08:00
Harvey 8b8ac80d72 update 2022-05-05 23:27:15 +08:00
Harvey 4181109ec6 update 2022-05-05 23:27:15 +08:00
Harvey 9e83d738b6 add danmuku.isStop 2022-05-05 23:27:15 +08:00
Harvey 955dbc0ac2 add option.mount 2022-05-05 23:27:15 +08:00
Harvey 13ffb722a1 add danmuku style 2022-05-05 23:27:15 +08:00
Harvey c9e8d891e1 add vue 2022-05-05 23:27:15 +08:00
Harvey a39a64b3b1 init 2022-05-05 23:27:15 +08:00
Harvey Zack 145d6b7a96 artplayer@4.3.21 2022-05-05 23:21:55 +08:00
Harvey Zack d73e1efaf1 artplayer@4.3.20 2022-05-05 23:13:24 +08:00
Harvey f74a2633b3 update 2022-05-05 18:17:02 +08:00
Harvey 2df5d7dc6d update 2022-05-05 18:02:10 +08:00
Harvey 185830e7a1 update 2022-05-05 17:41:33 +08:00
Harvey a01a587ca0 add danmuku.isStop 2022-05-05 17:32:41 +08:00
Harvey 58c16a737c add option.mount 2022-05-05 17:29:31 +08:00
Harvey 0d7725aabb add danmuku style 2022-05-05 17:18:54 +08:00
Harvey 0ed7f87794 add vue 2022-05-05 17:09:18 +08:00
Harvey 26fba8e2a6 init 2022-05-05 16:41:01 +08:00
Harvey fa3c70e99f update docs 2022-05-05 14:57:09 +08:00
Harvey c366813c12 Update danmuku.js 2022-05-05 14:42:44 +08:00
Harvey 22af442720 Update danmuku.js 2022-05-05 14:37:22 +08:00
Harvey 3c4e4845e3 Update danmuku.js 2022-05-05 14:29:21 +08:00
Harvey d8b4479f5d Update danmuku.js 2022-05-05 14:25:55 +08:00
Harvey Zack 288e29af3a Update index.html 2022-05-04 16:39:17 +08:00
Harvey Zack b2280d8b58 artplayer@4.3.19 2022-05-04 16:37:07 +08:00
Harvey Zack b2278c91b8 Update mobile.html 2022-05-03 12:19:39 +08:00
Harvey Zack d27f43adfe Update mobile.html 2022-05-03 12:17:36 +08:00
Harvey Zack 9d31e8d6e0 artplayer-plugin-danmuku@4.3.23 2022-05-03 12:11:01 +08:00
Harvey Zack c9cafbb55f artplayer-plugin-danmuku@4.3.22 2022-05-03 12:03:43 +08:00
Harvey Zack 21d4a50c54 artplayer@4.3.18 2022-05-03 11:52:09 +08:00
Harvey Zack c3e5afe4d3 update docs 2022-05-03 11:23:36 +08:00
Harvey Zack 703f881019 add artplayer-template 2022-05-03 11:11:23 +08:00
Harvey Zack 8fa763b9c7 Update Artplayer.js 2022-05-03 10:20:51 +08:00
Harvey Zack 9b723947e6 update d.ts 2022-05-03 09:08:51 +08:00
Daxxxis 277dc9129d translations fixes 2022-05-03 08:58:00 +08:00
Daxxxis 66700e0dff Quick fix 2022-05-03 08:58:00 +08:00
Daxxxis f8d0bae5d5 Add pl and cs languages 2022-05-03 08:58:00 +08:00
Harvey Zack 7efa43d5d5 artplayer@4.3.17 2022-05-02 16:27:54 +08:00
Harvey Zack 7ce17f90c4 artplayer@4.3.17 2022-05-02 16:27:25 +08:00
Harvey Zack 3e97b05a73 Update sw.js 2022-05-02 08:06:34 +08:00
Harvey Zack 67fd787128 update danmuku demo 2022-05-02 07:11:19 +08:00
Harvey Zack e5753e8f82 artplayer-plugin-danmuku@4.3.19 2022-05-02 07:03:17 +08:00
Harvey Zack 526096bef3 update docs 2022-05-02 00:57:02 +08:00
Harvey Zack e9aadad873 artplayer-plugin-danmuku@4.3.18 2022-05-02 00:52:28 +08:00
Harvey Zack 992803e10c add useWorker to danmuku 2022-05-02 00:48:40 +08:00
Harvey Zack e437cb7a84 Fix Worker Error 2022-05-02 00:43:33 +08:00
Harvey Zack 91c3370fdd Update sw.js 2022-05-02 00:26:12 +08:00
Harvey Zack 5e05f9e4c2 artplayer-plugin-danmuku@4.3.17 2022-05-02 00:23:06 +08:00
Harvey Zack 7bcc296fc2 add worker to danmuku 2022-05-02 00:14:46 +08:00
Harvey Zack 5ff4a8f70b add worker 2022-05-01 22:45:24 +08:00
Harvey Zack 09d1c2ed08 fix d.ts 2022-05-01 22:05:24 +08:00
Harvey Zack 57f22a2fcb update docs 2022-05-01 19:01:05 +08:00
Harvey Zack b26b522d8b artplayer@4.3.16 2022-05-01 18:01:31 +08:00
Harvey Zack 611fd68575 artplayer-plugin-danmuku@4.3.16 2022-05-01 18:00:06 +08:00
Harvey Zack 49337a3e3f update sw.js 2022-05-01 17:55:42 +08:00
Harvey Zack f2ca05758c artplayer-plugin-danmuku@4.3.15 2022-05-01 16:52:03 +08:00
Harvey Zack de8d7ec999 update 2022-05-01 16:39:15 +08:00
Harvey Zack c84acbc39b update 2022-05-01 16:33:47 +08:00
dependabot[bot] 73695722cf Bump mocha from 9.2.2 to 10.0.0
Bumps [mocha](https://github.com/mochajs/mocha) from 9.2.2 to 10.0.0.
- [Release notes](https://github.com/mochajs/mocha/releases)
- [Changelog](https://github.com/mochajs/mocha/blob/master/CHANGELOG.md)
- [Commits](https://github.com/mochajs/mocha/compare/v9.2.2...v10.0.0)

---
updated-dependencies:
- dependency-name: mocha
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-05-01 15:24:58 +08:00
Harvey Zack 38d87bf213 artplayer-plugin-danmuku@4.3.14 2022-05-01 15:20:31 +08:00
Harvey Zack 9b153ff0dd reset after fontSize change 2022-05-01 15:17:03 +08:00
Harvey Zack f840edf899 rebuild sw.js 2022-05-01 15:06:05 +08:00
Harvey Zack 77641f4aa3 update docs 2022-05-01 15:04:53 +08:00
Harvey Zack 54b64418be update 2022-05-01 15:02:30 +08:00
Harvey Zack b195d93e63 update 2022-05-01 15:02:30 +08:00
Harvey Zack bd9d0a436c update 2022-05-01 15:02:30 +08:00
Harvey Zack 13e56aed01 update 2022-05-01 15:02:30 +08:00
Harvey Zack 5508660c19 update 2022-05-01 15:02:30 +08:00
Harvey Zack cba10856da update 2022-05-01 15:02:30 +08:00
Harvey Zack 755c6dc36a update 2022-05-01 15:02:30 +08:00
Harvey Zack 632e88ae0b update 2022-05-01 15:02:30 +08:00
Harvey Zack 8087a93534 update 2022-05-01 15:02:30 +08:00
Harvey Zack 43fb02c4cc update 2022-05-01 15:02:30 +08:00
Harvey Zack 235b235245 update 2022-05-01 15:02:30 +08:00
Harvey Zack 99dce8c673 update 2022-05-01 15:02:30 +08:00
Harvey Zack 3761ff4979 update 2022-05-01 15:02:30 +08:00
Harvey Zack 2dfa895ba2 update 2022-05-01 15:02:30 +08:00
Harvey Zack 2e1c5fdc18 update 2022-05-01 15:02:30 +08:00
Harvey Zack de70e41590 update 2022-05-01 15:02:30 +08:00
Harvey Zack 659b4e965a update 2022-05-01 15:02:30 +08:00
Harvey Zack 14c1240671 update 2022-05-01 15:02:30 +08:00
Harvey Zack 617ac9e893 update 2022-05-01 15:02:30 +08:00
Harvey Zack 98b7f33fab update 2022-05-01 15:02:30 +08:00
Harvey Zack 1502212085 fix srt subtitle parsing 2022-04-30 18:11:19 +08:00
Harvey Zack 7585f9895c 4.3.13 2022-04-30 17:57:57 +08:00
Harvey Zack def8c6df46 update getDanmuTop 2022-04-30 17:31:41 +08:00
Harvey Zack 8ea10853ad update danmuku demo 2022-04-30 17:21:01 +08:00
Harvey Zack 9cefead73e update mobile demo 2022-04-30 13:40:13 +08:00
Harvey Zack 2ffdaa6175 update mobile demo 2022-04-30 13:27:40 +08:00
Harvey Zack 22765b27dd 4.3.12 2022-04-30 09:16:06 +08:00
Harvey Zack 2979fc49bc add compiled dir 2022-04-30 09:09:47 +08:00
Harvey Zack bc838bf0f2 use prompts dep 2022-04-30 08:21:50 +08:00
Harvey Zack 8a1546f9dd update docs 2022-04-29 23:22:00 +08:00
Harvey Zack 4dcdda0089 update readme 2022-04-29 23:00:22 +08:00
Harvey Zack 544eaa0ecc update icon 2022-04-29 22:16:32 +08:00
Harvey Zack 58e18c1d60 update danmuku.js 2022-04-29 22:02:47 +08:00
Harvey Zack 5667235d8d udpate danmuku example 2022-04-29 20:42:55 +08:00
Harvey Zack ef66416389 add danmu filter 2022-04-29 20:34:57 +08:00
Harvey 763d5c0788 Update index.js 2022-04-29 18:48:15 +08:00
Harvey fce810092f update docs 2022-04-29 18:45:49 +08:00
Harvey Zack e141163350 Create README.md 2022-04-29 18:11:36 +08:00
Harvey e34d09a99c use async/await 2022-04-29 18:04:50 +08:00
Harvey facf8876b5 add normalSizeMix 2022-04-29 17:51:46 +08:00
Harvey 227268ecda update sw.js 2022-04-29 17:43:20 +08:00
Harvey b53deb5ad8 update danmuku.js 2022-04-29 17:01:30 +08:00
Harvey 3fe822253a update getDanmuTop 2022-04-29 16:36:51 +08:00
Harvey 06782590b7 update danmuku.js 2022-04-29 15:33:21 +08:00
Harvey e7c23f359a update danmuku.js 2022-04-29 13:49:48 +08:00
Harvey 2ac14e96b9 update danmuku 2022-04-29 11:46:52 +08:00
Harvey 46fbccd267 add browserslist 2022-04-29 11:02:46 +08:00
Harvey 93d049e18c update build script 2022-04-29 10:55:22 +08:00
Harvey 79d4ef3d36 update style 2022-04-29 10:42:41 +08:00
Harvey 744a6496c7 change icon size 2022-04-29 10:27:19 +08:00
Harvey 32e73ab588 update docs 2022-04-29 10:14:28 +08:00
Harvey 208096f3c7 change some icons 2022-04-29 10:14:19 +08:00
Harvey Zack e2d016c28f Update package.json 2022-04-29 07:29:09 +08:00
Harvey Zack 6799b6b337 update build-sw.js 2022-04-29 07:25:16 +08:00
Harvey Zack 5486bc31d6 update hint color 2022-04-29 07:18:46 +08:00
Harvey Zack 4f4b52e423 Fix template.js 2022-04-29 07:16:18 +08:00
Harvey Zack f47138112a update setting height 2022-04-29 06:37:23 +08:00
Harvey cc6151d0bd update docs 2022-04-28 14:35:45 +08:00
Harvey f2b755ef35 update lerna.json 2022-04-28 14:07:20 +08:00
Harvey Zack 6e302d4b76 Update nodejs.yml 2022-04-28 14:03:22 +08:00
Harvey 6f2b9bd6d0 Update lerna.json 2022-04-28 13:56:36 +08:00
Harvey fd0bcf4b5c add package-lock.json 2022-04-28 13:52:47 +08:00
Harvey Zack 4310fdbc21 Update nodejs.yml 2022-04-28 13:43:27 +08:00
Harvey b5a71650ea update package.json 2022-04-28 13:37:01 +08:00
Harvey ac6a6c8136 Merge branch 'parceljs' of https://github.com/zhw2590582/ArtPlayer into parceljs 2022-04-28 13:28:54 +08:00
Harvey c551231edc add build:all 2022-04-28 13:28:51 +08:00
Harvey Zack 352c027bb5 Update nodejs.yml 2022-04-28 13:18:06 +08:00
Harvey db66272555 add banner 2022-04-28 13:15:48 +08:00
Harvey dd8ba4c64d Fix dev.js 2022-04-28 13:04:58 +08:00
Harvey 9cb8c56e4d add hint.less 2022-04-28 12:45:45 +08:00
Harvey c2ea7d0ce0 Update package.json 2022-04-28 12:27:34 +08:00
Harvey 7d728556c8 Fix eslint 2022-04-28 12:26:46 +08:00
Harvey ec54a0519d update test 2022-04-28 11:53:59 +08:00
Harvey 526f6ea8ca fix test 2022-04-28 11:50:53 +08:00
Harvey 810266c44e update parcel 2022-04-28 11:47:50 +08:00
Harvey bf342975db update 2022-04-28 11:26:35 +08:00
Harvey 3fc4b99841 update 2022-04-28 10:37:12 +08:00
Harvey c4b4d4e7a8 update 2022-04-28 10:00:21 +08:00
Harvey 5001490210 init 2022-04-28 09:32:41 +08:00
Harvey Zack 7397a0d18d update style 2022-04-28 07:31:39 +08:00
Harvey Zack 28a487777f update style 2022-04-28 07:26:50 +08:00
Harvey Zack f95384b41a remove outline util 2022-04-28 07:19:48 +08:00
Harvey Zack d05ec2095d remove art-layer-fast-forward 2022-04-27 22:18:52 +08:00
Harvey Zack 7ca0cd5529 update MOBILE_AUTO_ORIENTATION_TIME 2022-04-27 22:10:54 +08:00
Harvey Zack 78d042b33b fix miniProgressBar 2022-04-27 21:46:37 +08:00
Harvey Zack be507d05e9 update style 2022-04-27 21:35:51 +08:00
Harvey Zack 9c5b1cdc4a fix miniProgressBar 2022-04-27 21:33:48 +08:00
Harvey Zack 64015fcec2 fix miniProgressBar 2022-04-27 21:17:58 +08:00
Harvey Zack cf5099f259 try screen.orientation.lock 2022-04-27 20:57:05 +08:00
Harvey e4f815e24f update gestureInit 2022-04-27 18:33:33 +08:00
Harvey f4ade95551 onSelect can return a promise 2022-04-27 15:44:06 +08:00
Harvey ec6b439d39 4.3.11 2022-04-27 15:10:39 +08:00
Harvey 07a58c0a38 4.3.10 2022-04-27 15:00:42 +08:00
Harvey 178c044070 update fastForward 2022-04-27 14:52:25 +08:00
Harvey c5ed370c8b update fastForward 2022-04-27 14:37:16 +08:00
Harvey 8c7edbb83a update style 2022-04-27 14:19:09 +08:00
Harvey cbc8b7a808 update style 2022-04-27 14:08:34 +08:00
Harvey a87d2df05e update style 2022-04-27 14:08:01 +08:00
Harvey 14de0c6a01 update style 2022-04-27 14:02:42 +08:00
Harvey 3b63e1a59b add fastForward 2022-04-27 13:55:47 +08:00
Harvey 17262ff63d update style 2022-04-27 13:26:20 +08:00
Harvey a891ccd7d1 remove indicatorGestureInit 2022-04-27 13:19:03 +08:00
Harvey 26fedfa3d1 4.3.9 2022-04-27 11:14:22 +08:00
Harvey b60326491e remove autoPlayback from mobile demo 2022-04-27 11:07:53 +08:00
Harvey 9611bc8a0c add INDICATOR_SIZE_MOBILE_ICON 2022-04-27 10:48:57 +08:00
Harvey fc3abd7d1d separate variable constants 2022-04-27 10:42:07 +08:00
Harvey 57a14f63ac add indicatorGestureInit 2022-04-27 09:45:47 +08:00
Harvey 99ba0f6131 update mobile style 2022-04-26 18:49:19 +08:00
Harvey d4c67a8a7d update indicatorSize 2022-04-26 18:41:17 +08:00
Harvey 69d97f4d77 update getPosFromEventMobile 2022-04-26 18:22:06 +08:00
Harvey e862f8d56c add getPosFromEventMobile 2022-04-26 18:21:24 +08:00
Harvey 8549661327 update touchmove event 2022-04-26 17:52:15 +08:00
Harvey 3a3c21e059 update touchmove event 2022-04-26 17:50:17 +08:00
Harvey 49aedb0026 update style 2022-04-26 17:31:07 +08:00
Harvey b86fb446b0 add autoOrientation state 2022-04-26 17:23:42 +08:00
Harvey b292b769bd add autoOrientation 2022-04-26 17:23:42 +08:00
Harvey 4539a46a82 update setting 2022-04-26 13:23:25 +08:00
Harvey df375808d9 update build-sw.js 2022-04-26 12:21:03 +08:00
Harvey 7e58717e07 add build-sw.js 2022-04-26 11:53:11 +08:00
dependabot[bot] be88f55657 Bump @rollup/plugin-commonjs from 21.1.0 to 22.0.0
Bumps [@rollup/plugin-commonjs](https://github.com/rollup/plugins/tree/HEAD/packages/commonjs) from 21.1.0 to 22.0.0.
- [Release notes](https://github.com/rollup/plugins/releases)
- [Changelog](https://github.com/rollup/plugins/blob/master/packages/commonjs/CHANGELOG.md)
- [Commits](https://github.com/rollup/plugins/commits/commonjs-v22.0.0/packages/commonjs)

---
updated-dependencies:
- dependency-name: "@rollup/plugin-commonjs"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-26 09:05:17 +08:00
Harvey Zack 9aae64d5cf 4.3.8 2022-04-25 22:15:56 +08:00
Harvey Zack c9e45567ab bugfix 2022-04-25 22:11:46 +08:00
Harvey Zack 3d37b5e056 update 2022-04-25 22:11:46 +08:00
Harvey e0ddedaff5 Fix autoPlayback ready 2022-04-25 16:14:12 +08:00
Harvey 65fcc3d128 Fix autoPlayback event 2022-04-25 16:09:24 +08:00
Harvey 9a68d13e1c typo: clean -> clear 2022-04-25 16:02:54 +08:00
Harvey c134be8c75 add autoPlayback clear function 2022-04-25 15:55:54 +08:00
Harvey e490c65f99 update docs 2022-04-25 15:43:09 +08:00
Harvey 429753aa6e add autoPlayback 2022-04-25 15:38:26 +08:00
Harvey Zack b46dacd353 update i18n 2022-04-25 15:38:26 +08:00
Harvey Zack 59d19b67c7 add autoPlayback 2022-04-25 15:38:26 +08:00
Harvey Zack 07edda2e22 add subtitle outline style 2022-04-23 17:15:14 +08:00
Harvey Zack d08ceb3855 Delete artplayer.png 2022-04-23 10:54:33 +08:00
Harvey Zack f8abfabe17 Update README.md 2022-04-23 10:54:20 +08:00
Harvey Zack 7014cc8e4d Add files via upload 2022-04-23 10:53:54 +08:00
Harvey Zack e4e05eb4b3 Add files via upload 2022-04-23 10:51:32 +08:00
Harvey Zack 8e995dd2b6 Update README.md 2022-04-23 10:49:27 +08:00
Harvey Zack a9bdf0729f Add files via upload 2022-04-23 10:46:40 +08:00
Harvey Zack b0a5c2df1c Create mobile.js 2022-04-23 10:33:19 +08:00
Harvey 87e7b87a1f add lock state 2022-04-23 09:10:28 +08:00
Harvey 6972cd49af 4.3.7 2022-04-22 16:44:54 +08:00
Harvey 13bccc4cbf update docs 2022-04-22 16:38:21 +08:00
Harvey a58e0139b5 Merge branch 'lock' 2022-04-22 16:32:02 +08:00
Harvey aaeaf87bc2 Fix lock style 2022-04-22 16:30:25 +08:00
Harvey b22906e0fa add lock 2022-04-22 16:25:51 +08:00
Harvey f08c4767c2 update 2022-04-22 16:25:51 +08:00
Harvey 4a9d98ac4d Create lock.js 2022-04-22 16:25:51 +08:00
Harvey c4c89ac2b2 add lock 2022-04-22 16:25:28 +08:00
Harvey 39a16f8c36 update 2022-04-22 15:41:49 +08:00
Harvey f1310a3148 Create lock.js 2022-04-22 13:50:41 +08:00
Harvey 0ed695a899 update docs 2022-04-22 11:19:24 +08:00
Harvey 9e90028be6 update docs 2022-04-22 10:57:06 +08:00
Harvey 03fcc89abf add readyCallback 2022-04-21 17:49:12 +08:00
Harvey 92393357c7 4.3.6 2022-04-21 17:25:10 +08:00
Harvey 225eea4158 4.3.5 2022-04-21 17:15:22 +08:00
Harvey 9697a61526 add dblclick event 2022-04-21 17:05:01 +08:00
Harvey 6ad6e8fddc update docs 2022-04-21 16:14:34 +08:00
Harvey c709b5d7db update mask mobile style 2022-04-21 16:02:03 +08:00
dependabot[bot] 1191909961 Bump glob from 7.2.0 to 8.0.1
Bumps [glob](https://github.com/isaacs/node-glob) from 7.2.0 to 8.0.1.
- [Release notes](https://github.com/isaacs/node-glob/releases)
- [Changelog](https://github.com/isaacs/node-glob/blob/main/changelog.md)
- [Commits](https://github.com/isaacs/node-glob/compare/v7.2.0...v8.0.1)

---
updated-dependencies:
- dependency-name: glob
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-04-12 09:16:08 +08:00
Harvey 54882b4e25 4.3.4 2022-03-23 18:14:49 +08:00
Harvey 2a5913c658 update style 2022-03-23 17:22:12 +08:00
Harvey b3e3d2fe62 add setting to mobile demo 2022-03-23 17:09:07 +08:00
Harvey d43057c8af add mobile playsInline 2022-03-23 16:44:01 +08:00
dependabot[bot] cc39bed24d Bump @mdx-js/react from 1.6.22 to 2.1.0
Bumps [@mdx-js/react](https://github.com/mdx-js/mdx/tree/HEAD/packages/react) from 1.6.22 to 2.1.0.
- [Release notes](https://github.com/mdx-js/mdx/releases)
- [Changelog](https://github.com/mdx-js/mdx/blob/main/changelog.md)
- [Commits](https://github.com/mdx-js/mdx/commits/2.1.0/packages/react)

---
updated-dependencies:
- dependency-name: "@mdx-js/react"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-03-19 21:05:33 +08:00
zhw2590582 146a8c0256 4.3.3 2022-03-16 23:01:07 +08:00
zhw2590582 c0321f660c 4.3.2 2022-03-16 22:49:04 +08:00
zhw2590582 3b365b7933 update mobile demo 2022-03-16 22:35:08 +08:00
zhw2590582 7db6cb7ef4 Update mobile.html 2022-03-16 22:25:10 +08:00
zhw2590582 fbe6df0939 Update mobile.html 2022-03-16 22:22:09 +08:00
zhw2590582 b88e3be378 Update index.js 2022-03-16 22:20:13 +08:00
zhw2590582 4f10486987 add playsInline option 2022-03-16 22:02:28 +08:00
Harvey b284381534 update demo 2022-03-11 13:42:08 +08:00
Harvey 5471464dae update gestureInit 2022-03-10 18:42:50 +08:00
Harvey 0f388c5173 update gestureInit 2022-03-10 18:40:12 +08:00
Harvey 8898ab0078 update mobile demo 2022-03-10 18:33:42 +08:00
Harvey 56df5ad1e7 up[date gestureInit 2022-03-10 18:28:07 +08:00
Harvey 3a3246ee3f update gestureInit 2022-03-10 18:22:40 +08:00
Harvey b4500e701f remove bilingual 2022-03-10 09:48:32 +08:00
Harvey 5defc28505 Update index.js 2022-03-10 09:40:07 +08:00
Harvey 30a0dff4e8 Merge branch 'master' of https://github.com/zhw2590582/ArtPlayer 2022-03-10 09:25:00 +08:00
Harvey 4bc97c5d37 update sample files 2022-03-10 09:24:24 +08:00
zhw2590582 1684c2c7e6 Create SourceHanSansCN-Medium.otf 2022-03-09 20:53:39 +08:00
zhw2590582 d43e4540fb update JavascriptSubtitlesOctopus 2022-03-09 20:43:47 +08:00
Harvey 08a29d5cb0 Create subtitles-octopus-worker-legacy.js 2022-03-07 14:35:10 +08:00
Harvey da5e4de861 add JavascriptSubtitlesOctopus to demo 2022-03-07 14:32:50 +08:00
Harvey fccfd63022 add thumbnails 2022-03-04 10:07:39 +08:00
Harvey a65596de3e Merge branch 'master' of https://github.com/zhw2590582/ArtPlayer 2022-03-03 14:51:37 +08:00
Harvey 060bed6e72 Create vite.test.vue 2022-03-03 14:51:34 +08:00
dependabot[bot] 67565203bb Bump @rollup/plugin-replace from 3.1.0 to 4.0.0
Bumps [@rollup/plugin-replace](https://github.com/rollup/plugins/tree/HEAD/packages/replace) from 3.1.0 to 4.0.0.
- [Release notes](https://github.com/rollup/plugins/releases)
- [Changelog](https://github.com/rollup/plugins/blob/master/packages/replace/CHANGELOG.md)
- [Commits](https://github.com/rollup/plugins/commits/url-v4.0.0/packages/replace)

---
updated-dependencies:
- dependency-name: "@rollup/plugin-replace"
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
2022-02-24 10:41:23 +08:00
1164 changed files with 500004 additions and 35639 deletions

No files matched your search

-14
View File
@@ -1,14 +0,0 @@
{
"presets": [
[
"@babel/env",
{
"modules": false
}
]
],
"plugins": [
"@babel/plugin-external-helpers",
"@babel/plugin-transform-runtime"
]
}
-7
View File
@@ -1,7 +0,0 @@
/docs
/dist
/test
/scripts
/node_modules
/packages/**/node_modules
/packages/**/dist
-36
View File
@@ -1,36 +0,0 @@
{
"parser": "@babel/eslint-parser",
"extends": ["standard", "prettier"],
"env": {
"browser": true,
"es6": true
},
"globals": {
"Artplayer": false
},
"rules": {
"no-shadow": 0,
"no-param-reassign": 0,
"no-restricted-exports": 0,
"no-loss-of-precision": 0,
"no-promise-executor-return": 0,
"no-unreachable-loop": 0,
"no-unsafe-optional-chaining": 0,
"no-useless-backreference": 0,
"default-case-last": 0,
"no-nonoctal-decimal-escape": 0,
"prefer-object-spread": 0,
"prefer-destructuring": 0,
"arrow-body-style": 0,
"accessor-pairs": 0,
"import/named": 0
},
"parserOptions": {
"sourceType": "module",
"ecmaVersion": 8,
"requireConfigFile": false,
"babelOptions": {
"presets": ["@babel/preset-react"]
}
}
}
-1
View File
@@ -1,4 +1,3 @@
# These are supported funding model platforms
patreon: artplayer
custom: https://paypal.me/harveyzack
-20
View File
@@ -1,20 +0,0 @@
version: 2
updates:
- package-ecosystem: npm
directory: "/"
schedule:
interval: daily
time: "19:00"
open-pull-requests-limit: 10
ignore:
- dependency-name: cssnano
versions:
- 5.0.0
- 5.0.1
- dependency-name: autoprefixer
versions:
- 10.2.4
- 10.2.5
- dependency-name: eslint-config-prettier
versions:
- 8.0.0
+25 -26
View File
@@ -4,11 +4,6 @@ on:
push:
branches:
- master
paths-ignore:
- '**.md'
- 'docs/**'
- 'dist/**'
- 'images/**'
jobs:
build:
@@ -17,26 +12,30 @@ jobs:
strategy:
matrix:
node-version: [16.x]
node-version: [20.x]
steps:
- uses: actions/checkout@v1
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}
- name: npm install, lint, build, and test
run: |
npm install
npx lerna bootstrap --hoist
npm run lint
npm run build:all
cd packages/artplayer-document && ls
npm install
npm run build
cd ../../ && ls
npm run test:create
npm run test
npm run sizereport
env:
CI: true
- uses: actions/checkout@v2
- name: Use Node.js ${{ matrix.node-version }}
uses: actions/setup-node@v2
with:
node-version: ${{ matrix.node-version }}
- name: install, lint, build, and test
run: |
yarn
yarn lint
yarn build:all
env:
CI: true
- name: Deploy to GitHub Pages
if: success()
run: |
git config --global user.name 'github-actions[bot]'
git config --global user.email 'github-actions[bot]@users.noreply.github.com'
git add -f docs
git commit -m 'Deploy to GitHub Pages'
git subtree split --prefix docs master -b gh-pages-temp
git push origin gh-pages-temp:refs/heads/gh-pages --force
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+3 -4
View File
@@ -1,8 +1,7 @@
node_modules
.env
.vscode
.DS_Store
*.log
commit.json
node_modules
package-lock.json
.size-snapshot.json
lerna-debug.log
yarn.lock
-7
View File
@@ -1,7 +0,0 @@
{
"useTabs": false,
"tabWidth": 4,
"singleQuote": true,
"trailingComma": "all",
"printWidth": 120
}
+433
View File
@@ -0,0 +1,433 @@
# Changelog
All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
## [Unreleased]
## [5.4.0] - 2026-03-12
- Refactor `Parcel` to `Vite`
- Change `Artplayer.FULLSCREEN_WEB_IN_BODY` defaults to `true`
- The `reset` method is used to reset video request
- Fix [#1014](https://github.com/zhw2590582/ArtPlayer/issues/1014)
- Fix [#1023](https://github.com/zhw2590582/ArtPlayer/issues/1023)
- Fix [#1028](https://github.com/zhw2590582/ArtPlayer/issues/1028)
- Add `artplayer-plugin-jassub` plugin
- Add `artplayer-proxy-mediabunny` plugin
- Add `artplayer-plugin-audio-track` plugin
- Add `artplayer-plugin-asr` plugin
- Add `artplayer-plugin-danmuku-mask` plugin
- Deprecate `artplayer-plugin-libass` plugin
- Prevent `Hint.css` from polluting global styles
## [5.3.0] - 2025-09-06
- Rename `.esm.js` to `.mjs`
- Remove the default `fill` color value of `svg`
- Optimize the `autoOrientation` logic
- Add `Artplayer.REMOVE_SRC_WHEN_DESTROY`
- Add `artplayer-plugin-document-pip` plugin
- Add `art.events.bindGlobalEvents` method for rebinding global methods
- Optimize `artplayer.d.ts`, now you can directly import `Option`
```ts
import type { Option } from 'artplayer'
const option: Option = {
container: '.artplayer-app',
url: './assets/sample/video.mp4',
}
```
- Simplify `i18n` import
```ts
import fr from 'artplayer/i18n/fr'
import id from 'artplayer/i18n/id'
const option = {
container: '.artplayer-app',
url: './assets/sample/video.mp4',
i18n: { id, fr },
lang: 'fr',
}
```
## [5.2.5] - 2025-08-01
- Add `ESM` version for all packages, such as `artplayer/dist/artplayer.esm.js`
- Recognize `globalThis.CUSTOM_USER_AGENT` global variable for customizing `navigator.userAgent`
- Fix missing `mount` parameter when initializing `artplayer-plugin-danmuku`
## [5.2.3] - 2025-04-20
- Add Vietnamese `vi`
- Clear the `video.src` property on destroy
- Add `onClick` option for `Setting`
- Fix style loading failure of danmuku and chapter plugins when the page has no head tag
- Add `gesture` option to enable or disable gesture events on mobile `video` element
## [5.2.2] - 2025-01-19
- Fix thumbnail crossover issue
- Fix style loading failure when the page has no head tag
- Add slider support in subtitle plugin settings panel for mobile dragging
- Fix positioning error of settings panel when rotating screen
- Fix classname switching error when fullscreen state changes
## [5.2.1] - 2024-10-26
- Refactor `Setting` component, fix state loss issue
- For `Setting` of type `range`, callback now returns an array of numbers instead of a single number
- Remove `isStringOrNumber` utility function
- Fix inconsistent state issue in `artplayer-plugin-hls-control`
- Deprecate `artplayer-plugin-dash-quality` plugin
- Add new `artplayer-plugin-dash-control` plugin
- Use `code` instead of deprecated `keyCode` for keyboard events
- Add `keydown` event to listen for `keydown` from `document`
## [5.2.0] - 2024-10-19
- Add `option.proxy` for proxying third-party `video` and `canvas`
- Add `artplayer-proxy-canvas` proxy, enabling video playback via `canvas`
- Add `option.thumbnails.scale` for preview image scaling
- Fix bug where changing `art.url` didn’t trigger `autoPlayback`: [#797](https://github.com/zhw2590582/ArtPlayer/issues/797)
- Add `art.subtitle.cues` property for retrieving all subtitle list
- Add `art.subtitle.activeCues` property for retrieving active subtitles
- Add `subtitleBeforeUpdate` event triggered before subtitle element rendering
- Change `subtitleUpdate` event to `subtitleAfterUpdate`, triggered after subtitle element rendering
- Optimize trigger timing and callback parameters of `subtitleLoad` event
- Remove `subtitleSwitch` event; use `subtitleLoad` instead
- Upgrade `artplayer-plugin-hls-quality` to `artplayer-plugin-hls-control`
- Add `artplayer-plugin-ambilight` plugin
- Fix `thumbnails` display bug
## [5.1.7] - 2024-08-15
- Add `Artplayer.STYLE` property to return player style text
- `art.screenshot('your-name')` now supports custom file names
- When `Artplayer.CONTEXTMENU` is `false`, default context menu is no longer hidden
- Add `art.thumbnails` property for dynamically setting `thumbnails`
## [5.1.6] - 2024-06-15
- Optimize `setBar` event
- Add `artplayerPluginChapter` plugin
- Add `art.plugins.artplayerPluginDanmuku.load(target)` parameter for appending danmuku library
- Add `width` option to danmuku plugin; when player width is smaller than this, danmuku sender is placed at the bottom
- Fix `artplayerPluginVttThumbnail` not displaying on mobile
- Fix danmuku plugin style and percentage font-size bug
- `thumbnails` are now visible on mobile too
- Restore `screen.orientation.lock` functionality
## [5.1.5] - 2024-06-01
- Refactor `artplayerPluginDanmuku` plugin
- Add `artplayerPluginChromecast` plugin
- Add `fullscreenError` event
- Optimize double-click event: [#728](https://github.com/zhw2590582/ArtPlayer/pull/728)
- Fix delayed display of `thumbnails`
- Add `art.plugins.lock.state = true/false` for manually controlling `lock` state
- Control bar no longer auto-hides when mouse is on it or when settings panel is open
- Remove `screen.orientation.lock` due to compatibility issues
- Fix `fullscreen` bug on mobile
## [5.1.1] - 2024-01-11
- Plugin functions now support both synchronous and asynchronous returns
## [5.1.0] - 2023-12-23
- Plugin functions now support async return
- Player will no longer be destroyed after reaching error limit for playback address
- Split language files, core no longer bundles multiple languages [Language Settings](https://artplayer.org/document/start/i18n.html)
- Updating components now supports updating only specified fields [pull/549](https://github.com/zhw2590582/ArtPlayer/pull/549)
- Add `muted` event triggered when mute state changes
- Add `Artplayer.LOG_VERSION` global config to control whether to print player version (default `true`)
- Add `Artplayer.USE_RAF` global config to control whether to use `requestAnimationFrame` (default `false`), currently for smooth progress bar effect
- Remove default styles `margin:0;padding:0;` to avoid conflicts with third-party libraries
- Subtitle line changed from `p` to `div` tag, with classname `art-subtitle-line`
- On mobile, tapping video toggles control bar display
- Remove `art.loop` interval playback feature (not commonly used)
- Subtitle track now has `label` attribute to display subtitle names on mobile
- Add utility functions `unescape`, `isBrowser`, `setStyleText`
- Add `artplayerPluginMultipleSubtitles` plugin for merged subtitle files: [demo](https://www.artplayer.org/?libs=./uncompiled/artplayer-plugin-multiple-subtitles/index.js&example=multiple.subtitles)
- Modify mini progress bar display
## [5.0.9] - 2023-05-14
- Fix `art.autoOrientation` style bug
- Remove animation effect of player container
## [5.0.8] - 2023-05-13
- Fix conflict of `art.mini`
- Fix animation bug of `art.aspectRatio`
## [5.0.7] - 2023-05-13
- Switching via `switchUrl` or `switchQuality` preserves existing adjustments such as `aspectRatio`, `playbackRate`, `flip`, `autoSize`
- Remove the second `name` parameter from `switchUrl` and `switchQuality`
- Add `isIOS13` utility to fix inaccurate `isMobile` detection on iOS 13+
- `art.autoSize` and `art.autoHeight` are now methods: `art.autoSize()` and `art.autoHeight()`
- Add new property `art.quality` for dynamically updating quality list
- Fix incorrect `art.aspectRatio` property
- Add `art.switch` setter property, same as `art.switchUrl` method
## [5.0.6] - 2023-05-03
- Fix style bug of settings panel
## [5.0.5] - 2023-05-03
- Add `heatmap` option to danmuku plugin for enabling heatmap (default: off)
- Fix English subtitle line break style bug
- Fix settings panel style bug
- Remove unnecessary global properties
- Remove `title` option (not useful now)
- Remove `whitelist` option (not useful now)
## [5.0.4] - 2023-04-27
- Fix controller dropdown list style bug
## [5.0.3] - 2023-04-26
- Fix `event.pageY` value error in volume controller
- Update build config, `artplayer.legacy.js` now compatible with IE 11
## [5.0.2] - 2023-04-24
- Fix style compatibility issue of control bar position
## [5.0.1] - 2023-04-24
- Fix web fullscreen style bug
- Fix built-in settings text error
## [5.0.0] - 2023-04-23
- Rewrite volume controller
- Fix incorrect progress drag angle on mobile
- Rewrite `mini` mode, now video detaches from original container
- All components (layers, controller, contextmenu, settings panel) support dynamic deletion and updating
- Subtitle option adds `onVttLoad` for modifying vtt text before output
- Rewrite all styles, add many `css` variables
- Add `cssVar` option for initializing `css` variables
- Add `cssVar` method for getting/setting `css` variables
- `artplayer-plugin-hls-quality` adds `getResolution` function option for getting resolution text from level
- Add `artplayer-plugin-dash-quality` plugin for adding Dash quality list to player
- Fix `lock` and `loop` event issues
- Add Russian `ru` and Indonesian `id` languages
- Update `artplayer-plugin-control` for `artplayer@5.0.0`
- Update `artplayer-plugin-dash-quality` for `artplayer@5.0.0`
- Update `artplayer-plugin-hls-quality` for `artplayer@5.0.0`
- Update `artplayer-plugin-danmuku` for `artplayer@5.0.0`
## [4.6.2] - 2023-01-26
- Default `Artplayer.PROGRESS_HEIGHT` changed to `6`
- Add `artplayer-plugin-vtt-thumbnail` to generate video preview images from vtt subtitle files
- Add `Artplayer.FULLSCREEN_WEB_IN_BODY` for whether to mount player to `document.body` in web fullscreen (default `false`)
- Change subtitle offset adjustment to slider
- Subtitle option adds `escape` (default `true`) for HTML escaping
## [4.6.1] - 2023-01-11
- Write brand new docs
- Optimize `d.ts`
- Remove redundant events
- Optimize some styles
- Add `i18n` option
## [4.6.0] - 2022-12-31
- Optimize style effects of control bar icons
- Optimize style effects of settings panel
- Fix incorrect `art.fullscreen` state detection
- Add `artplayer-plugin-control` plugin to change control bar style
## [4.5.12] - 2022-11-20
- Fix `art.loop = []` display bug
## [4.5.11] - 2022-11-06
- Add `Artplayer.CONTEXTMENU` for controlling whether to show contextmenu (default `true`)
- Whitelist function default `true` on mobile, all devices use player UI
## [4.5.10] - 2022-11-05
- Fix subtitle not showing in Firefox: [#pull/415](https://github.com/zhw2590582/ArtPlayer/pull/415)
- Info popup supports clicking to select video property text
## [4.5.9] - 2022-11-05
- Add `art.type` property to get/set video type
- Add `art.video` property to get video element
- Add `artplayer-tool-iframe` plugin to control player inside iframe
- Add `artplayer-plugin-hls-quality` plugin for adding Hls quality list
- Add `Artplayer.PLAYBACK_RATE` for default playback rates `[0.5, 0.75, 1, 1.25, 1.5, 2]`
- Add `Artplayer.ASPECT_RATIO` for default ratios `['default','4:3','16:9']`
- Add `Artplayer.FLIP` for default flip options `['normal','horizontal','vertical']`
- Add `Artplayer.PROGRESS_HEIGHT` (default: `4`)
- Add `legacy.js` version for older browsers (larger size)
- Remove `examples` dir, no longer provide Vue/React examples
## [4.5.8] - 2022-10-09
- Add Farsi language
- Add `Artplayer.DEBUG` (default `false`) for debug logs
- Add `art.setting.update()` for dynamic settings update
- Optimize `artplayer.d.ts`
## [4.5.7] - 2022-09-28
- Add `Artplayer.VOLUME_STEP` for controlling volume step (default `0.1`)
- Add `Artplayer.SEEK_STEP` for controlling seek step (default `5s`)
- Fix some svg icons not showing on mobile
- Fix desktop progress bar cannot click+drag simultaneously
- Fix mobile progress bar cannot click+drag
- Add `art.isRotate` property for detecting auto fullscreen rotation
- Settings panel `range` adds `onChange` option for real-time values
```js
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
setting: true,
settings: [
{
html: 'Slider',
tooltip: '5x',
range: [5, 1, 10, 0.1],
onChange: function (item) {
return item.range + 'x';
},
},
],
});
```
## [4.5.6] - 2022-09-19
- Fix hls.js not working in Safari
## [4.5.5] - 2022-09-19
- Ad plugin adds `option.muted` for autoplay muted ads
- Danmuku plugin exposes `art.plugins.artplayerPluginDanmuku.reset()` to clear display
- Danmuku plugin exposes `art.plugins.artplayerPluginDanmuku.option` for current config
- Fix subtitle bug in iOS fullscreen
- Add Spanish `es`
## [4.5.4] - 2022-08-01
### Added
- Add `Artplayer.AUTO_PLAYBACK_MIN` for min playback memory value (default `5s`)
- Add `Artplayer.TOUCH_MOVE_RATIO` for mobile progress drag ratio (default `0.5`)
- `option.thumbnails` adds optional `width`/`height`
- Add `option.id` for unique playback memory identifier
## [4.5.3] - 2022-07-13
### Added
- `url` option allows empty string for async `art.url`
```js
const art = new Artplayer({
url: '',
container: '.artplayer-app',
});
setTimeout(() => {
art.url = '/assets/sample/video.mp4';
}, 1000);
```
- `art.play()` always returns Promise; `play` event is async
```js
const art = new Artplayer({
url: '/assets/sample/video.mp4',
container: '.artplayer-app',
});
art.on('ready', async () => {
try {
await art.play();
console.log('Play success');
} catch (error) {
console.log('Play failed', error.message);
}
});
```
- Add `airplay` (only Safari)
```js
const art = new Artplayer({
url: '/assets/sample/video.mp4',
container: '.artplayer-app',
airplay: true,
});
```
## [4.5.2] - 2022-06-22
- Optimize auto-playback to allow user choice
## [4.5.0] - 2022-06-21
- Remove built-in ads
- Add ad plugin
## [4.4.7] - 2022-06-13
- Support danmuku lib d.ts
- Update deps
## [4.4.6] - 2022-06-11
- Add danmuku lib d.ts
- Adjust subtitle font-size param
- Optimize regex parsing of xml danmuku
## [4.4.5] - 2022-06-02
- Fix theme color missing in mini mode
## [4.4.3] - 2022-05-26
- Fix custom mounted input residual on danmuku destroy
- Fix mini mode size calculation error
## [4.4.2] - 2022-05-20
- Remove UI init `video:loadedmetadata` event
- Danmuku exposes `load` for switching sources
- Add error icon after video load error limit
- Fix multiple init of setting panel bug
## [4.4.1] - 2022-05-17
- Add `art.isInput`, when true control bar won’t auto-hide (e.g. typing danmuku)
- Add `art.isLock`, when true on mobile prevents seek/play/pause
- Fix fixed width bug of danmuku input box
- Settings panel supports `range` and `onRange`
- Add `isAndroid` and `isIOS` utils
- Danmuku adds `lockTime`, `maxLength`, `minWidth`, `maxWidth`, `mount`, `beforeEmit`, `theme`
## [4.4.0] - 2022-05-15
- Settings panel supports `switch` and `onSwitch`
- Danmuku plugin adds settings panel and send
- Danmuku adds default mode and font-size
- Danmuku font-size supports percentage of player
- Fix flip icon missing
- Player with focus won’t auto-hide control bar
- Remove subtitle toggle button (manual config required)
+35
View File
@@ -0,0 +1,35 @@
This project uses `vite` as a development and packaging tool, so there are few overall configuration options
## 1. Install dependencies
```bash
npm install
```
or
```bash
yarn
```
## 2. Develop the project and open the demo page
```base
npm run dev
```
or
```bash
yarn dev
```
## 3. Package the project
```bash
npm run build
```
```bash
yarn build
```
+1 -1
View File
@@ -1,6 +1,6 @@
MIT License
Copyright (c) 2018 Harvey Zack
Copyright (c) 2018 Harvey Zhao
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
+75 -14
View File
@@ -8,10 +8,13 @@
</p>
<p align="center">
<img src="https://img.shields.io/bundlephobia/minzip/artplayer" alt="Size">
<img src="https://img.shields.io/npm/dm/artplayer.svg?sanitize=true" alt="Downloads">
<img src="https://img.shields.io/npm/v/artplayer.svg?sanitize=true" alt="Version">
<img src="https://img.shields.io/npm/l/artplayer.svg?sanitize=true" alt="License">
<a href="https://www.npmjs.com/package/artplayer">
<img src="https://img.shields.io/bundlephobia/minzip/artplayer" alt="Size">
<img src="https://img.shields.io/npm/dm/artplayer.svg?sanitize=true" alt="Downloads">
<img src="https://img.shields.io/npm/v/artplayer.svg?sanitize=true" alt="Version">
<img src="https://img.shields.io/npm/l/artplayer.svg?sanitize=true" alt="License">
<img src="https://data.jsdelivr.com/v1/package/npm/artplayer/badge?style=rounded" alt="jsdelivr">
</a>
</p>
<p align="center">
@@ -20,16 +23,28 @@
<span>・</span>
<a href="https://artplayer.org/document">API Document</a>
<span>・</span>
<a href="https://artplayer.org/?libs=.%2Funcompiled%2Fartplayer-plugin-danmuku.js&example=danmuku">弹幕演示</a>
<a href="https://artplayer.org/?libs=./uncompiled/artplayer-plugin-danmuku/index.js&example=danmuku">Danmuku</a>
<span>・</span>
<a href="./CHANGELOG.md">Changelog</a>
<span>・</span>
<a href="https://artplayer.org/llms.txt">🤖LLMs</a>
<span>・</span>
</p>
<p align="center">
<a href="https://artplayer.org">
<img src="./images/screenshot.png" alt="screenshot">
<img src="./images/screenshot.png" alt="screenshot" width="720">
</a>
</p>
## Home Page
[https://artplayer.org](https://artplayer.org)
## Mobile Demo
<img src="./images/qrcode.png" width="250">
## Features
[ArtPlayer.js](https://artplayer.org) is an easy-to-use and feature-rich HTML5 video player, and most of the player's functional controls support customization, which makes it easy to connect with your business logic. In addition, it directly supports `.vtt`, `.ass` and `.srt` subtitle formats. Integration with other dependencies such as `flv.js`, `hls.js`, `dash.js`, etc. is also very simple. The code is highly decoupled, the structure and logic are clear, and it is easy to track errors and add new features.
@@ -49,7 +64,7 @@ $ yarn add artplayer
```
```js
import Artplayer from 'artplayer';
import Artplayer from 'artplayer'
```
Or umd build also available:
@@ -77,20 +92,66 @@ Will expose the global variable to `window.Artplayer`.
```
```js
var art = new Artplayer({
container: '.artplayer-app',
url: 'path/to/video.mp4',
});
let art = new Artplayer({
container: '.artplayer-app',
url: 'path/to/video.mp4',
})
```
## Plugins
| Name | Describe | State |
| :--- | :--- | :--- |
| [artplayer-plugin-danmuku](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-danmuku/index.js&example=danmuku) | Danmuku (bullet comment) system | <img src="https://img.shields.io/npm/v/artplayer-plugin-danmuku.svg?sanitize=true"><br><img src="https://img.shields.io/npm/dm/artplayer-plugin-danmuku.svg?sanitize=true"> |
| [artplayer-plugin-hls-control](https://artplayer.org/?libs=https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.5.17/hls.min.js%0A./uncompiled/artplayer-plugin-hls-control/index.js&example=hls.control) | HLS quality control | <img src="https://img.shields.io/npm/v/artplayer-plugin-hls-control.svg?sanitize=true"><br><img src="https://img.shields.io/npm/dm/artplayer-plugin-hls-control.svg?sanitize=true"> |
| [artplayer-plugin-dash-control](https://artplayer.org/?libs=https://cdnjs.cloudflare.com/ajax/libs/dashjs/4.5.2/dash.all.min.js%0A./uncompiled/artplayer-plugin-dash-control/index.js&example=dash.control) | DASH quality control | <img src="https://img.shields.io/npm/v/artplayer-plugin-dash-control.svg?sanitize=true"><br><img src="https://img.shields.io/npm/dm/artplayer-plugin-dash-control.svg?sanitize=true"> |
| [artplayer-plugin-vtt-thumbnail](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-vtt-thumbnail/index.js&example=vtt.thumbnail) | VTT thumbnail preview | <img src="https://img.shields.io/npm/v/artplayer-plugin-vtt-thumbnail.svg?sanitize=true"><br><img src="https://img.shields.io/npm/dm/artplayer-plugin-vtt-thumbnail.svg?sanitize=true"> |
| [artplayer-plugin-multiple-subtitles](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-multiple-subtitles/index.js&example=multiple.subtitles) | Multiple subtitles support | <img src="https://img.shields.io/npm/v/artplayer-plugin-multiple-subtitles.svg?sanitize=true"><br><img src="https://img.shields.io/npm/dm/artplayer-plugin-multiple-subtitles.svg?sanitize=true"> |
| [artplayer-plugin-chromecast](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-chromecast/index.js&example=chromecast) | Google Chromecast support | <img src="https://img.shields.io/npm/v/artplayer-plugin-chromecast.svg?sanitize=true"><br><img src="https://img.shields.io/npm/dm/artplayer-plugin-chromecast.svg?sanitize=true"> |
| [artplayer-plugin-vast](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-vast/index.js&example=vast) | VAST/VPAID advertising | <img src="https://img.shields.io/npm/v/artplayer-plugin-vast.svg?sanitize=true"><br><img src="https://img.shields.io/npm/dm/artplayer-plugin-vast.svg?sanitize=true"> |
| [artplayer-plugin-chapter](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-chapter/index.js&example=chapter) | Video chapters support | <img src="https://img.shields.io/npm/v/artplayer-plugin-chapter.svg?sanitize=true"><br><img src="https://img.shields.io/npm/dm/artplayer-plugin-chapter.svg?sanitize=true"> |
| [artplayer-plugin-auto-thumbnail](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-auto-thumbnail/index.js&example=auto.thumbnail) | Auto-generated thumbnails | <img src="https://img.shields.io/npm/v/artplayer-plugin-auto-thumbnail.svg?sanitize=true"><br><img src="https://img.shields.io/npm/dm/artplayer-plugin-auto-thumbnail.svg?sanitize=true"> |
| [artplayer-plugin-ambilight](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-ambilight/index.js&example=ambilight) | Ambilight effect | <img src="https://img.shields.io/npm/v/artplayer-plugin-ambilight.svg?sanitize=true"><br><img src="https://img.shields.io/npm/dm/artplayer-plugin-ambilight.svg?sanitize=true"> |
| [artplayer-plugin-document-pip](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-document-pip/index.js&example=document.pip) | Document Picture-in-Picture | <img src="https://img.shields.io/npm/v/artplayer-plugin-document-pip.svg?sanitize=true"><br><img src="https://img.shields.io/npm/dm/artplayer-plugin-document-pip.svg?sanitize=true"> |
| [artplayer-plugin-audio-track](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-audio-track/index.js&example=audio.track) | Independent audio track playback | <img src="https://img.shields.io/npm/v/artplayer-plugin-audio-track.svg?sanitize=true"><br><img src="https://img.shields.io/npm/dm/artplayer-plugin-audio-track.svg?sanitize=true"> |
| [artplayer-plugin-jassub](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-jassub/index.js&example=jassub) | ASS/SSA subtitle support | <img src="https://img.shields.io/npm/v/artplayer-plugin-jassub.svg?sanitize=true"><br><img src="https://img.shields.io/npm/dm/artplayer-plugin-jassub.svg?sanitize=true"> |
| [artplayer-plugin-danmuku-mask](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-danmuku/index.js%0A./uncompiled/artplayer-plugin-danmuku-mask/index.js&example=danmuku.mask) | Danmuku masking (smart blocking) | <img src="https://img.shields.io/npm/v/artplayer-plugin-danmuku-mask.svg?sanitize=true"><br><img src="https://img.shields.io/npm/dm/artplayer-plugin-danmuku-mask.svg?sanitize=true"> |
| [artplayer-plugin-asr](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-asr/index.js&example=asr) | Automatic Speech Recognition | <img src="https://img.shields.io/npm/v/artplayer-plugin-asr.svg?sanitize=true"><br><img src="https://img.shields.io/npm/dm/artplayer-plugin-asr.svg?sanitize=true"> |
| [artplayer-plugin-ads](https://artplayer.org/?libs=./uncompiled/artplayer-plugin-ads/index.js&example=ads) | Video advertising plugin | WIP |
## Libraries
| Name | Describe | State |
| :--- | :--- | :--- |
| [hls.js](https://artplayer.org/?libs=https://cdnjs.cloudflare.com/ajax/libs/hls.js/1.5.17/hls.min.js&example=hls) | HLS client | <img src="https://img.shields.io/npm/v/hls.js.svg?sanitize=true"><br><img src="https://img.shields.io/npm/dm/hls.js.svg?sanitize=true"> |
| [dash.js](https://artplayer.org/?libs=https://cdnjs.cloudflare.com/ajax/libs/dashjs/4.5.2/dash.all.min.js&example=dash) | MPEG DASH player | <img src="https://img.shields.io/npm/v/dashjs.svg?sanitize=true"><br><img src="https://img.shields.io/npm/dm/dashjs.svg?sanitize=true"> |
| [flv.js](https://artplayer.org/?libs=https://cdnjs.cloudflare.com/ajax/libs/flv.js/1.6.2/flv.min.js&example=flv) | HTML5 FLV Player | <img src="https://img.shields.io/npm/v/flv.js.svg?sanitize=true"><br><img src="https://img.shields.io/npm/dm/flv.js.svg?sanitize=true"> |
| [mpegts.js](https://artplayer.org/?libs=https://cdn.jsdelivr.net/npm/mpegts.js@1.7.3/dist/mpegts.min.js&example=mpegts) | MPEG-TS/FLV Player | <img src="https://img.shields.io/npm/v/mpegts.js.svg?sanitize=true"><br><img src="https://img.shields.io/npm/dm/mpegts.js.svg?sanitize=true"> |
| [webtorrent.js](https://artplayer.org/?libs=https://cdn.jsdelivr.net/npm/webtorrent@1/webtorrent.min.js&example=webtorrent) | Streaming torrent client | <img src="https://img.shields.io/npm/v/webtorrent.svg?sanitize=true"><br><img src="https://img.shields.io/npm/dm/webtorrent.svg?sanitize=true"> |
## Proxys
| Name | Describe | State |
| :--- | :--- | :--- |
| [Canvas](https://artplayer.org/?libs=./uncompiled/artplayer-proxy-canvas/index.js&example=canvas) | Proxy video to canvas | <img src="https://img.shields.io/npm/v/artplayer-proxy-canvas.svg?sanitize=true"><br><img src="https://img.shields.io/npm/dm/artplayer-proxy-canvas.svg?sanitize=true"> |
| [Mediabunny](https://artplayer.org/?libs=./uncompiled/artplayer-proxy-mediabunny/index.js&example=mediabunny) | Mediabunny proxy | <img src="https://img.shields.io/npm/v/artplayer-proxy-mediabunny.svg?sanitize=true"><br><img src="https://img.shields.io/npm/dm/artplayer-proxy-mediabunny.svg?sanitize=true"> |
## Changelog
[CHANGELOG.md](./CHANGELOG.md)
## Contributing
[CONTRIBUTING.md](./CONTRIBUTING.md)
## Donations
We accept donations through these channels:
![pay](./images/pay.png)
- [Patreon](https://www.patreon.com/artplayer)
- [Paypal](https://www.paypal.me/harveyzack)
- [Patreon](https://www.patreon.com/artplayer)
- [Paypal](https://www.paypal.me/harveyzack)
## QQ Group
@@ -98,4 +159,4 @@ We accept donations through these channels:
## License
MIT © Harvey Zack
MIT © Harvey Zhao
-8
View File
@@ -1,8 +0,0 @@
/*!
* artplayer-plugin-danmuku.js v4.3.0
* Github: https://github.com/zhw2590582/ArtPlayer#readme
* (c) 2017-2022 Harvey Zack
* Released under the MIT License.
*/
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).artplayerPluginDanmuku=e()}(this,(function(){"use strict";function t(t,e,n){return e in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function e(t,e){for(var n=0;n<e.length;n++){var r=e[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,r.key,r)}}var n={"zh-cn":{"Danmu opacity":"弹幕透明度","Danmu speed":"弹幕速度","Danmu size":"弹幕大小","Danmu text cannot be empty":"弹幕文本不能为空","The length of the danmu does not exceed":"弹幕文本字数不能超过","Danmu speed synchronous playback multiple":"弹幕速度同步播放倍数"},"zh-tw":{"Danmu opacity":"彈幕透明度","Danmu speed":"彈幕速度","Danmu size":"弹幕大小","Danmu text cannot be empty":"彈幕文本不能為空","The length of the danmu does not exceed":"彈幕文本字數不能超過","Danmu speed synchronous playback multiple":"彈幕速度同步播放倍數"}};function r(t,e,n){return t.filter((function(t){return t.$state===e})).map(n)}function i(t,e){var n=t.getBoundingClientRect();return e?n[e]:n}function o(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,r=new Array(e);n<e;n++)r[n]=t[n];return r}function a(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var r,i,o=[],a=!0,s=!1;try{for(n=n.call(t);!(a=(r=n.next()).done)&&(o.push(r.value),!e||o.length!==e);a=!0);}catch(t){s=!0,i=t}finally{try{a||null==n.return||n.return()}finally{if(s)throw i}}return o}}(t,e)||function(t,e){if(t){if("string"==typeof t)return o(t,e);var n=Object.prototype.toString.call(t).slice(8,-1);return"Object"===n&&t.constructor&&(n=t.constructor.name),"Map"===n||"Set"===n?Array.from(t):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?o(t,e):void 0}}(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function s(t){switch(t){case 1:case 2:case 3:default:return 0;case 4:case 5:return 1}}function u(t){return fetch(t).then((function(t){return t.text()})).then((function(t){return function(t){if("string"!=typeof t)return[];var e=t.match(/<d([\S ]*?>[\S ]*?)<\/d>/gi);return e&&e.length?e.map((function(t){var e=a(t.match(/<d p="(.+)">(.+)<\/d>/),3),n=e[1],r=e[2],i=n.split(",");return 8===i.length&&r.trim()?{text:r,time:Number(i[0]),mode:s(Number(i[1])),fontSize:Number(i[2]),color:"#".concat(Number(i[3]).toString(16)),timestamp:Number(i[4]),pool:Number(i[5]),userID:i[6],rowID:Number(i[7])}:null})):[]}(t)}))}function l(t,e){var n=a(t.option.margin,2),r=n[0],o=n[1],s=i(t.art.template.$player),u=t.queue.filter((function(t){return t.mode===e.mode&&"emit"===t.$state&&t.$ref&&t.$ref.style.fontSize===e.$ref.style.fontSize&&parseFloat(t.$ref.style.top)<=s.height-o})).map((function(t){var e=i(t.$ref),n=e.width,r=e.height,o=e.top-s.top,a=e.left-s.left;return{top:o,left:a,height:r,width:n,right:s.width-a-n}})).sort((function(t,e){return t.top-e.top}));return 0===u.length?r:(u.unshift({top:0,left:0,right:0,height:r,width:s.width}),u.push({top:s.height-o,left:0,right:0,height:o,width:s.width}),function(t){for(var e=0,n={},r=0;r<t.length;r+=1){var i=t[r];n[i.top]?n[i.top].push(i):n[i.top]=[i]}for(var o=Object.keys(n),s=0,u=1;u<t.length;u+=1){var l=t[u],f=t[u-1],c=f.top+f.height,p=l.top-c;p>s&&(e=c,s=p)}if(0===e)for(var h=0,m=0;m<o.length;m+=1){for(var d=t[0].width,y=o[m],g=n[y],b=0;b<g.length;b+=1){var $=g[b];$.right<d&&(d=$.right)}d>h&&(h=d,e=a(g,1)[0].top)}if(0===e){var v=o.filter((function(t,e){return 0!==e&&e!==o.length-1})).sort((function(t,e){return n[t].length-n[e].length}));e=a(v,1)[0]}return e}(u))}function f(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);e&&(r=r.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,r)}return n}function c(e){for(var n=1;n<arguments.length;n++){var r=null!=arguments[n]?arguments[n]:{};n%2?f(Object(r),!0).forEach((function(n){t(e,n,r[n])})):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):f(Object(r)).forEach((function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))}))}return e}var p=function(){function t(e,r){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),e.i18n.update(n),this.art=e,this.queue=[],this.option={},this.config(r),this.isStop=!1,this.isHide=!1,this.animationFrameTimer=null,this.$danmuku=e.template.$danmuku,e.on("video:play",this.start.bind(this)),e.on("video:playing",this.start.bind(this)),e.on("video:pause",this.stop.bind(this)),e.on("video:waiting",Line truncated
-8
View File
@@ -1,8 +0,0 @@
/*!
* artplayer-tool-thumbnail.js v4.0.0
* Github: https://github.com/zhw2590582/ArtPlayer#readme
* (c) 2017-2022 Harvey Zack
* Released under the MIT License.
*/
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).ArtplayerToolThumbnail=e()}(this,(function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,i.key,i)}}function n(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function i(t,e){return i=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},i(t,e)}function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function r(t,e){if(e&&("object"===o(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return n(t)}function a(t){return a=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},a(t)}var s={exports:{}};function u(){}function l(t,e,n){return Math.max(Math.min(t,Math.max(e,n)),Math.min(e,n))}function c(t){var e=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){}))),!0}catch(t){return!1}}();return function(){var n,i=a(t);if(e){var o=a(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return r(this,n)}}u.prototype={on:function(t,e,n){var i=this.e||(this.e={});return(i[t]||(i[t]=[])).push({fn:e,ctx:n}),this},once:function(t,e,n){var i=this;function o(){i.off(t,o),e.apply(n,arguments)}return o._=e,this.on(t,o,n)},emit:function(t){for(var e=[].slice.call(arguments,1),n=((this.e||(this.e={}))[t]||[]).slice(),i=0,o=n.length;i<o;i++)n[i].fn.apply(n[i].ctx,e);return this},off:function(t,e){var n=this.e||(this.e={}),i=n[t],o=[];if(i&&e)for(var r=0,a=i.length;r<a;r++)i[r].fn!==e&&i[r].fn._!==e&&o.push(i[r]);return o.length?n[t]=o:delete n[t],this}},s.exports=u,s.exports.TinyEmitter=u;var h=function(o){!function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&i(t,e)}(h,o);var r,a,s,u=c(h);function h(){var e,i=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return t(this,h),(e=u.call(this)).processing=!1,e.option={},e.setup(Object.assign({},h.DEFAULTS,i)),e.video=h.creatVideo(),e.duration=0,e.inputChange=e.inputChange.bind(n(e)),e.ondrop=e.ondrop.bind(n(e)),e.option.fileInput.addEventListener("change",e.inputChange),e.option.fileInput.addEventListener("dragover",h.ondragover),e.option.fileInput.addEventListener("drop",h.ondrop),e}return r=h,a=[{key:"ondrop",value:function(t){t.preventDefault();var e=t.dataTransfer.files[0];this.loadVideo(e)}},{key:"setup",value:function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};this.option=Object.assign({},this.option,e);var n=this.option,i=n.fileInput,o=n.number,r=n.width,a=n.column;if(this.errorHandle(i instanceof Element,"The 'fileInput' is not a Element"),"INPUT"!==i.tagName||"file"!==i.type){i.style.position="relative";var s=document.createElement("input");s.type="file",s.style.position="absolute",s.style.width="100%",s.style.height="100%",s.style.left="0",s.style.top="0",s.style.right="0",s.style.bottom="0",s.style.opacity="0",i.appendChild(s),this.option.fileInput=s}return["number","width","column","begin","end"].forEach((function(e){t.errorHandle("number"==typeof t.option[e],"The '".concat(e,"' is not a number"))})),this.option.number=l(o,10,1e3),this.option.width=l(r,10,1e3),this.option.column=l(a,1,1e3),this}},{key:"inputChange",value:function(t){var e=this.option.fileInput.files[0];this.loadVideo(e),t.target.value=""}},{key:"loadVideo",value:function(t){if(t){var e=this.video.canPlayType(t.type);this.errorHandle("maybe"===e||"probably"===e,"Playback of this file format is not supported: ".concat(t.type));var n=URL.createObjectURL(t);this.videoUrl=n,this.file=t,this.emit("file",this.file),this.video.src=n,this.emit("video",this.video)}}},{key:"start",value:function(){var t,e=this;if(!this.video.duration)return(t=1e3,new Promise((function(e){return setTimeout(e,t)}))).then((function(){return e.start()}));var n=this.option,i=n.width,o=n.number,r=n.begin,a=n.end,s=this.video.videoHeight/this.video.videoWidth*i;this.option.height=s,this.option.begin=l(r,0,this.video.duration),this.option.end=l(a||this.video.duration,r,this.video.duration),this.errorHandle(this.option.endLine truncated
-8
View File
@@ -1,8 +0,0 @@
/*!
* artplayer.js v4.3.1
* Github: https://github.com/zhw2590582/ArtPlayer#readme
* (c) 2017-2022 Harvey Zack
* Released under the MIT License.
*/
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).Artplayer=e()}(this,(function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function r(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function n(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function o(t,e){return o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},o(t,e)}function i(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&o(t,e)}function a(t){return a="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},a(t)}function c(t,e){if(e&&("object"===a(e)||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return n(t)}function l(t){return l=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},l(t)}!function(t,e){void 0===e&&(e={});var r=e.insertAt;if(t&&"undefined"!=typeof document){var n=document.head||document.getElementsByTagName("head")[0],o=document.createElement("style");o.type="text/css","top"===r&&n.firstChild?n.insertBefore(o,n.firstChild):n.appendChild(o),o.styleSheet?o.styleSheet.cssText=t:o.appendChild(document.createTextNode(t))}}('.art-video-player{zoom:1;-webkit-tap-highlight-color:rgba(0,0,0,0);-ms-high-contrast-adjust:none;background-color:#000;color:#eee;direction:ltr;display:flex;font-family:Roboto,Arial,Helvetica,sans-serif;font-size:14px;height:100%;line-height:1.3;margin:0 auto;outline:0;position:relative;text-align:left;touch-action:manipulation;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;width:100%;z-index:20}.art-video-player *{box-sizing:border-box;margin:0;padding:0}.art-video-player ::-webkit-scrollbar{height:5px;width:5px}.art-video-player ::-webkit-scrollbar-thumb{background-color:#666}.art-video-player ::-webkit-scrollbar-thumb:hover{background-color:#ccc}.art-video-player .art-icon{align-items:center;display:inline-flex;justify-content:center;line-height:1.5}.art-video-player .art-icon svg{fill:#fff}.art-video-player img{max-width:100%;vertical-align:top}@supports ((-webkit-backdrop-filter:initial) or (backdrop-filter:initial)){.art-video-player .art-backdrop-filter{-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px);background-color:rgba(0,0,0,.7)!important}}.art-video-player .art-video{background-color:#000;cursor:pointer;z-index:10}.art-video-player .art-poster,.art-video-player .art-video{bottom:0;height:100%;left:0;position:absolute;right:0;top:0;width:100%}.art-video-player .art-poster{background-position:50%;background-repeat:no-repeat;background-size:cover;pointer-events:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:11}.art-video-player .art-subtitle{bottom:10px;color:#fff;display:none;font-size:20px;padding:0 20px;pointer-events:none;position:absolute;text-align:center;text-shadow:.5px .5px .5px rgba(0,0,0,.5);width:100%;z-index:20}.art-video-player .art-subtitle p{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content;line-height:1.2;margin:5px 0 0;word-break:break-all}.art-video-player .art-bilingual p:nth-child(n+2){transform:scale(.6);transform-origin:center top}.art-video-player.art-subtitle-show .art-subtitle{display:block}.art-video-player.art-control-show .art-subtitle{bottom:50px}.art-video-player .art-danmuku{z-index:30}.art-video-player .art-danmuku,.art-video-player .art-layers{bottom:0;height:100%;left:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0;width:100%}.art-video-player .art-layers{display:none;z-index:40}.art-video-player .art-layers .art-layer{pointer-events:auto}.art-video-player.art-layer-show .art-layers{display:block}.art-video-player .art-mask{align-items:center;bottom:0;display:none;height:100%;justify-content:center;left:0;overflow:hidden;pointer-events:none;position:absolute;right:0;top:0;width:100%;z-index:50}.art-video-player .art-mask .art-state{align-items:center;bottom:65px;display:flex;height:60px;justify-content:center;opacity:.6;position:absolute;right:30px;width:60px}.art-video-player.art-mask-show .art-mask{display:flex}.art-video-player .art-loadingLine truncated
+1
View File
@@ -0,0 +1 @@
google.com, pub-8579453810848662, DIRECT, f08c47fec0942fa0
@@ -0,0 +1,10 @@
# MediaPipe JavaScript Solutions
MediaPipe offers out of the box solutions to use our ML technology with live and streaming media.
Visit us as [mediapipe.dev]()
See live demos of our JavaScript solutions at [code.mediapipe.dev/codepen]()
For more information on each of the solutions and how to use them, visit https://google.github.io/mediapipe/getting_started/javascript.
+111
View File
@@ -0,0 +1,111 @@
/**
* @fileoverview Declarations for the face tracking API.
*/
/**
* Version number of this package.
*/
export const VERSION: string;
/**
* We support several ways to get image inputs.
*/
export type InputImage = HTMLVideoElement | HTMLImageElement | HTMLCanvasElement;
/**
* Legal inputs.
*/
export interface InputMap {
image: InputImage;
}
/**
* GpuBuffers should all be compatible with Canvas' `drawImage`
*/
type GpuBuffer = HTMLCanvasElement | HTMLImageElement | ImageBitmap;
/**
* Possible results from SelfieSegmentation.
*/
export interface Results {
image: GpuBuffer;
segmentationMask: GpuBuffer;
}
/**
* Configurable options for SelfieSegmentation.
*/
export interface Options {
selfieMode?: boolean;
modelSelection?: number;
}
/**
* Listener for any results from SelfieSegmentation.
*/
export type ResultsListener = (results: Results) => (Promise<void>|void);
/**
* Contains all of the setup options to drive the face solution.
*/
export interface SelfieSegmentationConfig {
locateFile?: (path: string, prefix?: string) => string;
}
/**
* Declares the interface of SelfieSegmentation.
*/
declare interface SelfieSegmentationInterface {
close(): Promise<void>;
onResults(listener: ResultsListener): void;
initialize(): Promise<void>;
reset(): void;
send(inputs: InputMap): Promise<void>;
setOptions(options: Options): void;
}
/**
* Encapsulates the entire SelfieSegmentation solution. All that is needed from the
* developer is the source of the image data. The user will call `send`
* repeatedly and if a face is detected, then the user can receive callbacks
* with this metadata.
*/
export declare class SelfieSegmentation implements SelfieSegmentationInterface {
constructor(config?: SelfieSegmentationConfig);
/**
* Shuts down the object. Call before creating a new instance.
*/
close(): Promise<void>;
/**
* Registers a single callback that will carry any results that occur
* after calling Send().
*/
onResults(listener: ResultsListener): void;
/**
* Initializes the solution. This includes loading ML models and mediapipe
* configurations, as well as setting up potential listeners for metadata. If
* `initialize` is not called manually, then it will be called the first time
* the developer calls `send`.
*/
initialize(): Promise<void>;
/**
* Tells the graph to restart before the next frame is sent.
*/
reset(): void;
/**
* Processes a single frame of data, which depends on the options sent to the
* constructor.
*/
send(inputs: InputMap): Promise<void>;
/**
* Adjusts options in the solution. This may trigger a graph reload the next
* time the graph tries to run.
*/
setOptions(options: Options): void;
}
@@ -0,0 +1,27 @@
{
"name": "@mediapipe/selfie_segmentation",
"version": "0.1.1675465747",
"description": "Mediapipe Selfie Segmentation Solution",
"main": "selfie_segmentation.js",
"module": "selfie_segmentation.js",
"jsdelivr": "selfie_segmentation.js",
"unpkg": "selfie_segmentation.js",
"types": "index.d.ts",
"author": "mhays@google.com",
"license": "Apache-2.0",
"homepage": "https://google.github.io/mediapipe/solutions/selfie_segmentation",
"keywords": [ "AR", "ML", "Augmented" ],
"devDependencies": {
},
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"dependencies": {
},
"browser": {
"node-fetch": false,
"util": false,
"crypto": false
},
"sideEffects" : []
}
@@ -0,0 +1,93 @@
(function(){/*
Copyright The Closure Library Authors.
SPDX-License-Identifier: Apache-2.0
*/
'use strict';var x;function aa(a){var b=0;return function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}}}var ba="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){if(a==Array.prototype||a==Object.prototype)return a;a[b]=c.value;return a};
function ca(a){a=["object"==typeof globalThis&&globalThis,a,"object"==typeof window&&window,"object"==typeof self&&self,"object"==typeof global&&global];for(var b=0;b<a.length;++b){var c=a[b];if(c&&c.Math==Math)return c}throw Error("Cannot find global object");}var y=ca(this);function z(a,b){if(b)a:{var c=y;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];if(!(e in c))break a;c=c[e]}a=a[a.length-1];d=c[a];b=b(d);b!=d&&null!=b&&ba(c,a,{configurable:!0,writable:!0,value:b})}}
z("Symbol",function(a){function b(g){if(this instanceof b)throw new TypeError("Symbol is not a constructor");return new c(d+(g||"")+"_"+e++,g)}function c(g,f){this.h=g;ba(this,"description",{configurable:!0,writable:!0,value:f})}if(a)return a;c.prototype.toString=function(){return this.h};var d="jscomp_symbol_"+(1E9*Math.random()>>>0)+"_",e=0;return b});
z("Symbol.iterator",function(a){if(a)return a;a=Symbol("Symbol.iterator");for(var b="Array Int8Array Uint8Array Uint8ClampedArray Int16Array Uint16Array Int32Array Uint32Array Float32Array Float64Array".split(" "),c=0;c<b.length;c++){var d=y[b[c]];"function"===typeof d&&"function"!=typeof d.prototype[a]&&ba(d.prototype,a,{configurable:!0,writable:!0,value:function(){return da(aa(this))}})}return a});function da(a){a={next:a};a[Symbol.iterator]=function(){return this};return a}
function A(a){var b="undefined"!=typeof Symbol&&Symbol.iterator&&a[Symbol.iterator];return b?b.call(a):{next:aa(a)}}function ea(a){if(!(a instanceof Array)){a=A(a);for(var b,c=[];!(b=a.next()).done;)c.push(b.value);a=c}return a}var fa="function"==typeof Object.assign?Object.assign:function(a,b){for(var c=1;c<arguments.length;c++){var d=arguments[c];if(d)for(var e in d)Object.prototype.hasOwnProperty.call(d,e)&&(a[e]=d[e])}return a};z("Object.assign",function(a){return a||fa});
var ha="function"==typeof Object.create?Object.create:function(a){function b(){}b.prototype=a;return new b},ia;if("function"==typeof Object.setPrototypeOf)ia=Object.setPrototypeOf;else{var ja;a:{var ka={a:!0},la={};try{la.__proto__=ka;ja=la.a;break a}catch(a){}ja=!1}ia=ja?function(a,b){a.__proto__=b;if(a.__proto__!==b)throw new TypeError(a+" is not extensible");return a}:null}var ma=ia;
function na(a,b){a.prototype=ha(b.prototype);a.prototype.constructor=a;if(ma)ma(a,b);else for(var c in b)if("prototype"!=c)if(Object.defineProperties){var d=Object.getOwnPropertyDescriptor(b,c);d&&Object.defineProperty(a,c,d)}else a[c]=b[c];a.za=b.prototype}function oa(){this.m=!1;this.j=null;this.i=void 0;this.h=1;this.v=this.s=0;this.l=null}function pa(a){if(a.m)throw new TypeError("Generator is already running");a.m=!0}oa.prototype.u=function(a){this.i=a};
function qa(a,b){a.l={ma:b,na:!0};a.h=a.s||a.v}oa.prototype.return=function(a){this.l={return:a};this.h=this.v};function D(a,b,c){a.h=c;return{value:b}}function ra(a){this.h=new oa;this.i=a}function sa(a,b){pa(a.h);var c=a.h.j;if(c)return ta(a,"return"in c?c["return"]:function(d){return{value:d,done:!0}},b,a.h.return);a.h.return(b);return ua(a)}
function ta(a,b,c,d){try{var e=b.call(a.h.j,c);if(!(e instanceof Object))throw new TypeError("Iterator result "+e+" is not an object");if(!e.done)return a.h.m=!1,e;var g=e.value}catch(f){return a.h.j=null,qa(a.h,f),ua(a)}a.h.j=null;d.call(a.h,g);return ua(a)}function ua(a){for(;a.h.h;)try{var b=a.i(a.h);if(b)return a.h.m=!1,{value:b.value,done:!1}}catch(c){a.h.i=void 0,qa(a.h,c)}a.h.m=!1;if(a.h.l){b=a.h.l;a.h.l=null;if(b.na)throw b.ma;return{value:b.return,done:!0}}return{value:void 0,done:!0}}
function va(a){this.next=function(b){pa(a.h);a.h.j?b=ta(a,a.h.j.next,b,a.h.u):(a.h.u(b),b=ua(a));return b};this.throw=function(b){pa(a.h);a.h.j?b=ta(a,a.h.j["throw"],b,a.h.u):(qa(a.h,b),b=ua(a));return b};this.return=function(b){return sa(a,b)};this[Symbol.iterator]=function(){return this}}function wa(a){function b(d){return a.next(d)}function c(d){return a.throw(d)}return new Promise(function(d,e){function g(f){f.done?d(f.value):Promise.resolve(f.value).then(b,c).then(g,e)}g(a.next())})}
function E(a){return wa(new va(new ra(a)))}
z("Promise",function(a){function b(f){this.i=0;this.j=void 0;this.h=[];this.u=!1;var h=this.l();try{f(h.resolve,h.reject)}catch(k){h.reject(k)}}function c(){this.h=null}function d(f){return f instanceof b?f:new b(function(h){h(f)})}if(a)return a;c.prototype.i=function(f){if(null==this.h){this.h=[];var h=this;this.j(function(){h.m()})}this.h.push(f)};var e=y.setTimeout;c.prototype.j=function(f){e(f,0)};c.prototype.m=function(){for(;this.h&&this.h.length;){var f=this.h;this.h=[];for(var h=0;h<f.length;++h){var k=
f[h];f[h]=null;try{k()}catch(l){this.l(l)}}}this.h=null};c.prototype.l=function(f){this.j(function(){throw f;})};b.prototype.l=function(){function f(l){return function(m){k||(k=!0,l.call(h,m))}}var h=this,k=!1;return{resolve:f(this.I),reject:f(this.m)}};b.prototype.I=function(f){if(f===this)this.m(new TypeError("A Promise cannot resolve to itself"));else if(f instanceof b)this.L(f);else{a:switch(typeof f){case "object":var h=null!=f;break a;case "function":h=!0;break a;default:h=!1}h?this.F(f):this.s(f)}};
b.prototype.F=function(f){var h=void 0;try{h=f.then}catch(k){this.m(k);return}"function"==typeof h?this.M(h,f):this.s(f)};b.prototype.m=function(f){this.v(2,f)};b.prototype.s=function(f){this.v(1,f)};b.prototype.v=function(f,h){if(0!=this.i)throw Error("Cannot settle("+f+", "+h+"): Promise already settled in state"+this.i);this.i=f;this.j=h;2===this.i&&this.K();this.H()};b.prototype.K=function(){var f=this;e(function(){if(f.D()){var h=y.console;"undefined"!==typeof h&&h.error(f.j)}},1)};b.prototype.D=
function(){if(this.u)return!1;var f=y.CustomEvent,h=y.Event,k=y.dispatchEvent;if("undefined"===typeof k)return!0;"function"===typeof f?f=new f("unhandledrejection",{cancelable:!0}):"function"===typeof h?f=new h("unhandledrejection",{cancelable:!0}):(f=y.document.createEvent("CustomEvent"),f.initCustomEvent("unhandledrejection",!1,!0,f));f.promise=this;f.reason=this.j;return k(f)};b.prototype.H=function(){if(null!=this.h){for(var f=0;f<this.h.length;++f)g.i(this.h[f]);this.h=null}};var g=new c;b.prototype.L=
function(f){var h=this.l();f.T(h.resolve,h.reject)};b.prototype.M=function(f,h){var k=this.l();try{f.call(h,k.resolve,k.reject)}catch(l){k.reject(l)}};b.prototype.then=function(f,h){function k(p,n){return"function"==typeof p?function(q){try{l(p(q))}catch(t){m(t)}}:n}var l,m,r=new b(function(p,n){l=p;m=n});this.T(k(f,l),k(h,m));return r};b.prototype.catch=function(f){return this.then(void 0,f)};b.prototype.T=function(f,h){function k(){switch(l.i){case 1:f(l.j);break;case 2:h(l.j);break;default:throw Error("Unexpected state: "+
l.i);}}var l=this;null==this.h?g.i(k):this.h.push(k);this.u=!0};b.resolve=d;b.reject=function(f){return new b(function(h,k){k(f)})};b.race=function(f){return new b(function(h,k){for(var l=A(f),m=l.next();!m.done;m=l.next())d(m.value).T(h,k)})};b.all=function(f){var h=A(f),k=h.next();return k.done?d([]):new b(function(l,m){function r(q){return function(t){p[q]=t;n--;0==n&&l(p)}}var p=[],n=0;do p.push(void 0),n++,d(k.value).T(r(p.length-1),m),k=h.next();while(!k.done)})};return b});
function xa(a,b){a instanceof String&&(a+="");var c=0,d=!1,e={next:function(){if(!d&&c<a.length){var g=c++;return{value:b(g,a[g]),done:!1}}d=!0;return{done:!0,value:void 0}}};e[Symbol.iterator]=function(){return e};return e}z("Array.prototype.keys",function(a){return a?a:function(){return xa(this,function(b){return b})}});
z("Array.prototype.fill",function(a){return a?a:function(b,c,d){var e=this.length||0;0>c&&(c=Math.max(0,e+c));if(null==d||d>e)d=e;d=Number(d);0>d&&(d=Math.max(0,e+d));for(c=Number(c||0);c<d;c++)this[c]=b;return this}});function F(a){return a?a:Array.prototype.fill}z("Int8Array.prototype.fill",F);z("Uint8Array.prototype.fill",F);z("Uint8ClampedArray.prototype.fill",F);z("Int16Array.prototype.fill",F);z("Uint16Array.prototype.fill",F);z("Int32Array.prototype.fill",F);
z("Uint32Array.prototype.fill",F);z("Float32Array.prototype.fill",F);z("Float64Array.prototype.fill",F);z("Object.is",function(a){return a?a:function(b,c){return b===c?0!==b||1/b===1/c:b!==b&&c!==c}});z("Array.prototype.includes",function(a){return a?a:function(b,c){var d=this;d instanceof String&&(d=String(d));var e=d.length;c=c||0;for(0>c&&(c=Math.max(c+e,0));c<e;c++){var g=d[c];if(g===b||Object.is(g,b))return!0}return!1}});
z("String.prototype.includes",function(a){return a?a:function(b,c){if(null==this)throw new TypeError("The 'this' value for String.prototype.includes must not be null or undefined");if(b instanceof RegExp)throw new TypeError("First argument to String.prototype.includes must not be a regular expression");return-1!==this.indexOf(b,c||0)}});var ya=this||self;
function Aa(a,b){a=a.split(".");var c=ya;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)a.length||void 0===b?c[d]&&c[d]!==Object.prototype[d]?c=c[d]:c=c[d]={}:c[d]=b};function Ba(a){var b;a:{if(b=ya.navigator)if(b=b.userAgent)break a;b=""}return-1!=b.indexOf(a)};var Ca=Array.prototype.map?function(a,b){return Array.prototype.map.call(a,b,void 0)}:function(a,b){for(var c=a.length,d=Array(c),e="string"===typeof a?a.split(""):a,g=0;g<c;g++)g in e&&(d[g]=b.call(void 0,e[g],g,a));return d};var Da={},Ea=null;function Fa(a){var b=a.length,c=3*b/4;c%3?c=Math.floor(c):-1!="=.".indexOf(a[b-1])&&(c=-1!="=.".indexOf(a[b-2])?c-2:c-1);var d=new Uint8Array(c),e=0;Ga(a,function(g){d[e++]=g});return e!==c?d.subarray(0,e):d}
function Ga(a,b){function c(k){for(;d<a.length;){var l=a.charAt(d++),m=Ea[l];if(null!=m)return m;if(!/^[\s\xa0]*$/.test(l))throw Error("Unknown base64 encoding at char: "+l);}return k}Ha();for(var d=0;;){var e=c(-1),g=c(0),f=c(64),h=c(64);if(64===h&&-1===e)break;b(e<<2|g>>4);64!=f&&(b(g<<4&240|f>>2),64!=h&&b(f<<6&192|h))}}
function Ha(){if(!Ea){Ea={};for(var a="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".split(""),b=["+/=","+/","-_=","-_.","-_"],c=0;5>c;c++){var d=a.concat(b[c].split(""));Da[c]=d;for(var e=0;e<d.length;e++){var g=d[e];void 0===Ea[g]&&(Ea[g]=e)}}}};var Ia="undefined"!==typeof Uint8Array,Ja=!(Ba("Trident")||Ba("MSIE"))&&"function"===typeof ya.btoa;
function Ka(a){if(!Ja){var b;void 0===b&&(b=0);Ha();b=Da[b];for(var c=Array(Math.floor(a.length/3)),d=b[64]||"",e=0,g=0;e<a.length-2;e+=3){var f=a[e],h=a[e+1],k=a[e+2],l=b[f>>2];f=b[(f&3)<<4|h>>4];h=b[(h&15)<<2|k>>6];k=b[k&63];c[g++]=l+f+h+k}l=0;k=d;switch(a.length-e){case 2:l=a[e+1],k=b[(l&15)<<2]||d;case 1:a=a[e],c[g]=b[a>>2]+b[(a&3)<<4|l>>4]+k+d}return c.join("")}for(b="";10240<a.length;)b+=String.fromCharCode.apply(null,a.subarray(0,10240)),a=a.subarray(10240);b+=String.fromCharCode.apply(null,
a);return btoa(b)}var La=RegExp("[-_.]","g");function Ma(a){switch(a){case "-":return"+";case "_":return"/";case ".":return"=";default:return""}}function Na(a){if(!Ja)return Fa(a);La.test(a)&&(a=a.replace(La,Ma));a=atob(a);for(var b=new Uint8Array(a.length),c=0;c<a.length;c++)b[c]=a.charCodeAt(c);return b}var Oa;function Pa(){return Oa||(Oa=new Uint8Array(0))}var Qa={};var Ra="function"===typeof Uint8Array.prototype.slice,G=0,H=0;function Sa(a){var b=0>a;a=Math.abs(a);var c=a>>>0;a=Math.floor((a-c)/4294967296);b&&(c=A(Ta(c,a)),b=c.next().value,a=c.next().value,c=b);G=c>>>0;H=a>>>0}var Ua="function"===typeof BigInt;function Ta(a,b){b=~b;a?a=~a+1:b+=1;return[a,b]};function Va(a,b){this.i=a>>>0;this.h=b>>>0}
function Wa(a){if(!a)return Xa||(Xa=new Va(0,0));if(!/^-?\d+$/.test(a))return null;if(16>a.length)Sa(Number(a));else if(Ua)a=BigInt(a),G=Number(a&BigInt(4294967295))>>>0,H=Number(a>>BigInt(32)&BigInt(4294967295));else{var b=+("-"===a[0]);H=G=0;for(var c=a.length,d=b,e=(c-b)%6+b;e<=c;d=e,e+=6)d=Number(a.slice(d,e)),H*=1E6,G=1E6*G+d,4294967296<=G&&(H+=G/4294967296|0,G%=4294967296);b&&(b=A(Ta(G,H)),a=b.next().value,b=b.next().value,G=a,H=b)}return new Va(G,H)}var Xa;function Ya(a,b){return Error("Invalid wire type: "+a+" (at position "+b+")")}function Za(){return Error("Failed to read varint, encoding is invalid.")}function $a(a,b){return Error("Tried to read past the end of the data "+b+" > "+a)};function K(){throw Error("Invalid UTF8");}function ab(a,b){b=String.fromCharCode.apply(null,b);return null==a?b:a+b}var bb=void 0,cb,db="undefined"!==typeof TextDecoder,eb,fb="undefined"!==typeof TextEncoder;var gb;function hb(a){if(a!==Qa)throw Error("illegal external caller");}function ib(a,b){hb(b);this.V=a;if(null!=a&&0===a.length)throw Error("ByteString should be constructed with non-empty values");}function jb(){return gb||(gb=new ib(null,Qa))}function kb(a){hb(Qa);var b=a.V;b=null==b||Ia&&null!=b&&b instanceof Uint8Array?b:"string"===typeof b?Na(b):null;return null==b?b:a.V=b};function lb(a){if("string"===typeof a)return{buffer:Na(a),C:!1};if(Array.isArray(a))return{buffer:new Uint8Array(a),C:!1};if(a.constructor===Uint8Array)return{buffer:a,C:!1};if(a.constructor===ArrayBuffer)return{buffer:new Uint8Array(a),C:!1};if(a.constructor===ib)return{buffer:kb(a)||Pa(),C:!0};if(a instanceof Uint8Array)return{buffer:new Uint8Array(a.buffer,a.byteOffset,a.byteLength),C:!1};throw Error("Type not convertible to a Uint8Array, expected a Uint8Array, an ArrayBuffer, a base64 encoded string, a ByteString or an Array of numbers");
};function mb(a,b){this.i=null;this.m=!1;this.h=this.j=this.l=0;nb(this,a,b)}function nb(a,b,c){c=void 0===c?{}:c;a.S=void 0===c.S?!1:c.S;b&&(b=lb(b),a.i=b.buffer,a.m=b.C,a.l=0,a.j=a.i.length,a.h=a.l)}mb.prototype.reset=function(){this.h=this.l};function L(a,b){a.h=b;if(b>a.j)throw $a(a.j,b);}
function ob(a){var b=a.i,c=a.h,d=b[c++],e=d&127;if(d&128&&(d=b[c++],e|=(d&127)<<7,d&128&&(d=b[c++],e|=(d&127)<<14,d&128&&(d=b[c++],e|=(d&127)<<21,d&128&&(d=b[c++],e|=d<<28,d&128&&b[c++]&128&&b[c++]&128&&b[c++]&128&&b[c++]&128&&b[c++]&128)))))throw Za();L(a,c);return e}function pb(a,b){if(0>b)throw Error("Tried to read a negative byte length: "+b);var c=a.h,d=c+b;if(d>a.j)throw $a(b,a.j-c);a.h=d;return c}var qb=[];function rb(){this.h=[]}rb.prototype.length=function(){return this.h.length};rb.prototype.end=function(){var a=this.h;this.h=[];return a};function sb(a,b,c){for(;0<c||127<b;)a.h.push(b&127|128),b=(b>>>7|c<<25)>>>0,c>>>=7;a.h.push(b)}function M(a,b){for(;127<b;)a.h.push(b&127|128),b>>>=7;a.h.push(b)};function tb(a,b){if(qb.length){var c=qb.pop();nb(c,a,b);a=c}else a=new mb(a,b);this.h=a;this.j=this.h.h;this.i=this.l=-1;this.setOptions(b)}tb.prototype.setOptions=function(a){a=void 0===a?{}:a;this.ca=void 0===a.ca?!1:a.ca};tb.prototype.reset=function(){this.h.reset();this.j=this.h.h;this.i=this.l=-1};
function ub(a){var b=a.h;if(b.h==b.j)return!1;a.j=a.h.h;var c=ob(a.h)>>>0;b=c>>>3;c&=7;if(!(0<=c&&5>=c))throw Ya(c,a.j);if(1>b)throw Error("Invalid field number: "+b+" (at position "+a.j+")");a.l=b;a.i=c;return!0}
function vb(a){switch(a.i){case 0:if(0!=a.i)vb(a);else a:{a=a.h;for(var b=a.h,c=b+10,d=a.i;b<c;)if(0===(d[b++]&128)){L(a,b);break a}throw Za();}break;case 1:a=a.h;L(a,a.h+8);break;case 2:2!=a.i?vb(a):(b=ob(a.h)>>>0,a=a.h,L(a,a.h+b));break;case 5:a=a.h;L(a,a.h+4);break;case 3:b=a.l;do{if(!ub(a))throw Error("Unmatched start-group tag: stream EOF");if(4==a.i){if(a.l!=b)throw Error("Unmatched end-group tag");break}vb(a)}while(1);break;default:throw Ya(a.i,a.j);}}var wb=[];function xb(){this.j=[];this.i=0;this.h=new rb}function N(a,b){0!==b.length&&(a.j.push(b),a.i+=b.length)}function yb(a,b){if(b=b.R){N(a,a.h.end());for(var c=0;c<b.length;c++)N(a,kb(b[c])||Pa())}};var O="function"===typeof Symbol&&"symbol"===typeof Symbol()?Symbol():void 0;function P(a,b){if(O)return a[O]|=b;if(void 0!==a.A)return a.A|=b;Object.defineProperties(a,{A:{value:b,configurable:!0,writable:!0,enumerable:!1}});return b}function zb(a,b){O?a[O]&&(a[O]&=~b):void 0!==a.A&&(a.A&=~b)}function Q(a){var b;O?b=a[O]:b=a.A;return null==b?0:b}function R(a,b){O?a[O]=b:void 0!==a.A?a.A=b:Object.defineProperties(a,{A:{value:b,configurable:!0,writable:!0,enumerable:!1}})}
function Ab(a){P(a,1);return a}function Bb(a,b){R(b,(a|0)&-51)}function Cb(a,b){R(b,(a|18)&-41)};var Db={};function Eb(a){return null!==a&&"object"===typeof a&&!Array.isArray(a)&&a.constructor===Object}var Fb,Gb=[];R(Gb,23);Fb=Object.freeze(Gb);function Hb(a){if(Q(a.o)&2)throw Error("Cannot mutate an immutable Message");}function Ib(a){var b=a.length;(b=b?a[b-1]:void 0)&&Eb(b)?b.g=1:(b={},a.push((b.g=1,b)))};function Jb(a){var b=a.i+a.G;return a.B||(a.B=a.o[b]={})}function S(a,b){return-1===b?null:b>=a.i?a.B?a.B[b]:void 0:a.o[b+a.G]}function U(a,b,c,d){Hb(a);Kb(a,b,c,d)}function Kb(a,b,c,d){a.j&&(a.j=void 0);b>=a.i||d?Jb(a)[b]=c:(a.o[b+a.G]=c,(a=a.B)&&b in a&&delete a[b])}function Lb(a,b,c,d){var e=S(a,b);Array.isArray(e)||(e=Fb);var g=Q(e);g&1||Ab(e);if(d)g&2||P(e,2),c&1||Object.freeze(e);else{d=!(c&2);var f=g&2;c&1||!f?d&&g&16&&!f&&zb(e,16):(e=Ab(Array.prototype.slice.call(e)),Kb(a,b,e))}return e}
function Mb(a,b){var c=S(a,b);var d=null==c?c:"number"===typeof c||"NaN"===c||"Infinity"===c||"-Infinity"===c?Number(c):void 0;null!=d&&d!==c&&Kb(a,b,d);return d}
function Nb(a,b,c,d,e){a.h||(a.h={});var g=a.h[c],f=Lb(a,c,3,e);if(!g){var h=f;g=[];var k=!!(Q(a.o)&16);f=!!(Q(h)&2);var l=h;!e&&f&&(h=Array.prototype.slice.call(h));for(var m=f,r=0;r<h.length;r++){var p=h[r];var n=b,q=!1;q=void 0===q?!1:q;p=Array.isArray(p)?new n(p):q?new n:void 0;if(void 0!==p){n=p.o;var t=q=Q(n);f&&(t|=2);k&&(t|=16);t!=q&&R(n,t);n=t;m=m||!!(2&n);g.push(p)}}a.h[c]=g;k=Q(h);b=k|33;b=m?b&-9:b|8;k!=b&&(m=h,Object.isFrozen(m)&&(m=Array.prototype.slice.call(m)),R(m,b),h=m);l!==h&&Kb(a,
c,h);(e||d&&f)&&P(g,2);d&&Object.freeze(g);return g}e||(e=Object.isFrozen(g),d&&!e?Object.freeze(g):!d&&e&&(g=Array.prototype.slice.call(g),a.h[c]=g));return g}function Ob(a,b,c){var d=!!(Q(a.o)&2);b=Nb(a,b,c,d,d);a=Lb(a,c,3,d);if(!(d||Q(a)&8)){for(d=0;d<b.length;d++){c=b[d];if(Q(c.o)&2){var e=Pb(c,!1);e.j=c}else e=c;c!==e&&(b[d]=e,a[d]=e.o)}P(a,8)}return b}
function V(a,b,c){if(null!=c&&"number"!==typeof c)throw Error("Value of float/double field must be a number|null|undefined, found "+typeof c+": "+c);U(a,b,c)}function Qb(a,b,c,d,e){Hb(a);var g=Nb(a,c,b,!1,!1);c=null!=d?d:new c;a=Lb(a,b,2,!1);void 0!=e?(g.splice(e,0,c),a.splice(e,0,c.o)):(g.push(c),a.push(c.o));c.C()&&zb(a,8);return c}function Rb(a,b){return null==a?b:a}function W(a,b,c){c=void 0===c?0:c;return Rb(Mb(a,b),c)};var Sb;function Tb(a){switch(typeof a){case "number":return isFinite(a)?a:String(a);case "object":if(a)if(Array.isArray(a)){if(0!==(Q(a)&128))return a=Array.prototype.slice.call(a),Ib(a),a}else{if(Ia&&null!=a&&a instanceof Uint8Array)return Ka(a);if(a instanceof ib){var b=a.V;return null==b?"":"string"===typeof b?b:a.V=Ka(b)}}}return a};function Ub(a,b,c,d){if(null!=a){if(Array.isArray(a))a=Vb(a,b,c,void 0!==d);else if(Eb(a)){var e={},g;for(g in a)e[g]=Ub(a[g],b,c,d);a=e}else a=b(a,d);return a}}function Vb(a,b,c,d){var e=Q(a);d=d?!!(e&16):void 0;a=Array.prototype.slice.call(a);for(var g=0;g<a.length;g++)a[g]=Ub(a[g],b,c,d);c(e,a);return a}function Wb(a){return a.ja===Db?a.toJSON():Tb(a)}function Xb(a,b){a&128&&Ib(b)};function Yb(a,b,c){c=void 0===c?Cb:c;if(null!=a){if(Ia&&a instanceof Uint8Array)return a.length?new ib(new Uint8Array(a),Qa):jb();if(Array.isArray(a)){var d=Q(a);if(d&2)return a;if(b&&!(d&32)&&(d&16||0===d))return R(a,d|2),a;a=Vb(a,Yb,d&4?Cb:c,!0);b=Q(a);b&4&&b&2&&Object.freeze(a);return a}return a.ja===Db?Zb(a):a}}
function $b(a,b,c,d,e,g,f){if(a=a.h&&a.h[c]){d=Q(a);d&2?d=a:(g=Ca(a,Zb),Cb(d,g),Object.freeze(g),d=g);Hb(b);f=null==d?Fb:Ab([]);if(null!=d){g=!!d.length;for(a=0;a<d.length;a++){var h=d[a];g=g&&!(Q(h.o)&2);f[a]=h.o}g=(g?8:0)|1;a=Q(f);(a&g)!==g&&(Object.isFrozen(f)&&(f=Array.prototype.slice.call(f)),R(f,a|g));b.h||(b.h={});b.h[c]=d}else b.h&&(b.h[c]=void 0);Kb(b,c,f,e)}else U(b,c,Yb(d,g,f),e)}function Zb(a){if(Q(a.o)&2)return a;a=Pb(a,!0);P(a.o,2);return a}
function Pb(a,b){var c=a.o,d=[];P(d,16);var e=a.constructor.h;e&&d.push(e);e=a.B;if(e){d.length=c.length;d.fill(void 0,d.length,c.length);var g={};d[d.length-1]=g}0!==(Q(c)&128)&&Ib(d);b=b||a.C()?Cb:Bb;g=a.constructor;Sb=d;d=new g(d);Sb=void 0;a.R&&(d.R=a.R.slice());g=!!(Q(c)&16);for(var f=e?c.length-1:c.length,h=0;h<f;h++)$b(a,d,h-a.G,c[h],!1,g,b);if(e)for(var k in e)$b(a,d,+k,e[k],!0,g,b);return d};function X(a,b,c){null==a&&(a=Sb);Sb=void 0;var d=this.constructor.i||0,e=0<d,g=this.constructor.h,f=!1;if(null==a){a=g?[g]:[];var h=48;var k=!0;e&&(d=0,h|=128);R(a,h)}else{if(!Array.isArray(a))throw Error();if(g&&g!==a[0])throw Error();var l=h=P(a,0);if(k=0!==(16&l))(f=0!==(32&l))||(l|=32);if(e)if(128&l)d=0;else{if(0<a.length){var m=a[a.length-1];if(Eb(m)&&"g"in m){d=0;l|=128;delete m.g;var r=!0,p;for(p in m){r=!1;break}r&&a.pop()}}}else if(128&l)throw Error();h!==l&&R(a,l)}this.G=(g?0:-1)-d;this.h=
void 0;this.o=a;a:{g=this.o.length;d=g-1;if(g&&(g=this.o[d],Eb(g))){this.B=g;this.i=d-this.G;break a}void 0!==b&&-1<b?(this.i=Math.max(b,d+1-this.G),this.B=void 0):this.i=Number.MAX_VALUE}if(!e&&this.B&&"g"in this.B)throw Error('Unexpected "g" flag in sparse object of message that is not a group type.');if(c){b=k&&!f&&!0;e=this.i;var n;for(k=0;k<c.length;k++)f=c[k],f<e?(f+=this.G,(d=a[f])?ac(d,b):a[f]=Fb):(n||(n=Jb(this)),(d=n[f])?ac(d,b):n[f]=Fb)}}
X.prototype.toJSON=function(){return Vb(this.o,Wb,Xb)};X.prototype.C=function(){return!!(Q(this.o)&2)};function ac(a,b){if(Array.isArray(a)){var c=Q(a),d=1;!b||c&2||(d|=16);(c&d)!==d&&R(a,c|d)}}X.prototype.ja=Db;X.prototype.toString=function(){return this.o.toString()};function bc(a,b,c){if(c){var d={},e;for(e in c){var g=c[e],f=g.ra;f||(d.J=g.xa||g.oa.W,g.ia?(d.aa=cc(g.ia),f=function(h){return function(k,l,m){return h.J(k,l,m,h.aa)}}(d)):g.ka?(d.Z=dc(g.da.P,g.ka),f=function(h){return function(k,l,m){return h.J(k,l,m,h.Z)}}(d)):f=d.J,g.ra=f);f(b,a,g.da);d={J:d.J,aa:d.aa,Z:d.Z}}}yb(b,a)}var ec=Symbol();function fc(a,b,c){return a[ec]||(a[ec]=function(d,e){return b(d,e,c)})}
function gc(a){var b=a[ec];if(!b){var c=hc(a);b=function(d,e){return ic(d,e,c)};a[ec]=b}return b}function jc(a){var b=a.ia;if(b)return gc(b);if(b=a.wa)return fc(a.da.P,b,a.ka)}function kc(a){var b=jc(a),c=a.da,d=a.oa.U;return b?function(e,g){return d(e,g,c,b)}:function(e,g){return d(e,g,c)}}function lc(a,b){var c=a[b];"function"==typeof c&&0===c.length&&(c=c(),a[b]=c);return Array.isArray(c)&&(mc in c||nc in c||0<c.length&&"function"==typeof c[0])?c:void 0}
function oc(a,b,c,d,e,g){b.P=a[0];var f=1;if(a.length>f&&"number"!==typeof a[f]){var h=a[f++];c(b,h)}for(;f<a.length;){c=a[f++];for(var k=f+1;k<a.length&&"number"!==typeof a[k];)k++;h=a[f++];k-=f;switch(k){case 0:d(b,c,h);break;case 1:(k=lc(a,f))?(f++,e(b,c,h,k)):d(b,c,h,a[f++]);break;case 2:k=f++;k=lc(a,k);e(b,c,h,k,a[f++]);break;case 3:g(b,c,h,a[f++],a[f++],a[f++]);break;case 4:g(b,c,h,a[f++],a[f++],a[f++],a[f++]);break;default:throw Error("unexpected number of binary field arguments: "+k);}}return b}
var pc=Symbol();function cc(a){var b=a[pc];if(!b){var c=qc(a);b=function(d,e){return rc(d,e,c)};a[pc]=b}return b}function dc(a,b){var c=a[pc];c||(c=function(d,e){return bc(d,e,b)},a[pc]=c);return c}var nc=Symbol();function sc(a,b){a.push(b)}function tc(a,b,c){a.push(b,c.W)}function uc(a,b,c,d){var e=cc(d),g=qc(d).P,f=c.W;a.push(b,function(h,k,l){return f(h,k,l,g,e)})}function vc(a,b,c,d,e,g){var f=dc(d,g),h=c.W;a.push(b,function(k,l,m){return h(k,l,m,d,f)})}
function qc(a){var b=a[nc];if(b)return b;b=oc(a,a[nc]=[],sc,tc,uc,vc);mc in a&&nc in a&&(a.length=0);return b}var mc=Symbol();function wc(a,b){a[0]=b}function xc(a,b,c,d){var e=c.U;a[b]=d?function(g,f,h){return e(g,f,h,d)}:e}function yc(a,b,c,d,e){var g=c.U,f=gc(d),h=hc(d).P;a[b]=function(k,l,m){return g(k,l,m,h,f,e)}}function zc(a,b,c,d,e,g,f){var h=c.U,k=fc(d,e,g);a[b]=function(l,m,r){return h(l,m,r,d,k,f)}}
function hc(a){var b=a[mc];if(b)return b;b=oc(a,a[mc]={},wc,xc,yc,zc);mc in a&&nc in a&&(a.length=0);return b}
function ic(a,b,c){for(;ub(b)&&4!=b.i;){var d=b.l,e=c[d];if(!e){var g=c[0];g&&(g=g[d])&&(e=c[d]=kc(g))}if(!e||!e(b,a,d)){e=b;d=a;g=e.j;vb(e);var f=e;if(!f.ca){e=f.h.h-g;f.h.h=g;f=f.h;if(0==e)e=jb();else{g=pb(f,e);if(f.S&&f.m)e=f.i.subarray(g,g+e);else{f=f.i;var h=g;e=g+e;e=h===e?Pa():Ra?f.slice(h,e):new Uint8Array(f.subarray(h,e))}e=0==e.length?jb():new ib(e,Qa)}(g=d.R)?g.push(e):d.R=[e]}}}return a}
function rc(a,b,c){for(var d=c.length,e=1==d%2,g=e?1:0;g<d;g+=2)(0,c[g+1])(b,a,c[g]);bc(a,b,e?c[0]:void 0)}function Ac(a,b){return{U:a,W:b}}
var Y=Ac(function(a,b,c){if(5!==a.i)return!1;a=a.h;var d=a.i,e=a.h,g=d[e];var f=d[e+1];var h=d[e+2];d=d[e+3];L(a,a.h+4);f=(g<<0|f<<8|h<<16|d<<24)>>>0;a=2*(f>>31)+1;g=f>>>23&255;f&=8388607;U(b,c,255==g?f?NaN:Infinity*a:0==g?a*Math.pow(2,-149)*f:a*Math.pow(2,g-150)*(f+Math.pow(2,23)));return!0},function(a,b,c){b=Mb(b,c);if(null!=b){M(a.h,8*c+5);a=a.h;var d=+b;0===d?0<1/d?G=H=0:(H=0,G=2147483648):isNaN(d)?(H=0,G=2147483647):(d=(c=0>d?-2147483648:0)?-d:d,3.4028234663852886E38<d?(H=0,G=(c|2139095040)>>>
0):1.1754943508222875E-38>d?(d=Math.round(d/Math.pow(2,-149)),H=0,G=(c|d)>>>0):(b=Math.floor(Math.log(d)/Math.LN2),d*=Math.pow(2,-b),d=Math.round(8388608*d),16777216<=d&&++b,H=0,G=(c|b+127<<23|d&8388607)>>>0));c=G;a.h.push(c>>>0&255);a.h.push(c>>>8&255);a.h.push(c>>>16&255);a.h.push(c>>>24&255)}}),Bc=Ac(function(a,b,c){if(0!==a.i)return!1;var d=a.h,e=0,g=a=0,f=d.i,h=d.h;do{var k=f[h++];e|=(k&127)<<g;g+=7}while(32>g&&k&128);32<g&&(a|=(k&127)>>4);for(g=3;32>g&&k&128;g+=7)k=f[h++],a|=(k&127)<<g;L(d,
h);if(128>k){d=e>>>0;k=a>>>0;if(a=k&2147483648)d=~d+1>>>0,k=~k>>>0,0==d&&(k=k+1>>>0);d=4294967296*k+(d>>>0)}else throw Za();U(b,c,a?-d:d);return!0},function(a,b,c){b=S(b,c);null!=b&&("string"===typeof b&&Wa(b),null!=b&&(M(a.h,8*c),"number"===typeof b?(a=a.h,Sa(b),sb(a,G,H)):(c=Wa(b),sb(a.h,c.i,c.h))))}),Cc=Ac(function(a,b,c){if(0!==a.i)return!1;U(b,c,ob(a.h));return!0},function(a,b,c){b=S(b,c);if(null!=b&&null!=b)if(M(a.h,8*c),a=a.h,c=b,0<=c)M(a,c);else{for(b=0;9>b;b++)a.h.push(c&127|128),c>>=7;a.h.push(1)}}),
Dc=Ac(function(a,b,c){if(2!==a.i)return!1;var d=ob(a.h)>>>0;a=a.h;var e=pb(a,d);a=a.i;if(db){var g=a,f;(f=cb)||(f=cb=new TextDecoder("utf-8",{fatal:!0}));a=e+d;g=0===e&&a===g.length?g:g.subarray(e,a);try{var h=f.decode(g)}catch(r){if(void 0===bb){try{f.decode(new Uint8Array([128]))}catch(p){}try{f.decode(new Uint8Array([97])),bb=!0}catch(p){bb=!1}}!bb&&(cb=void 0);throw r;}}else{h=e;d=h+d;e=[];for(var k=null,l,m;h<d;)l=a[h++],128>l?e.push(l):224>l?h>=d?K():(m=a[h++],194>l||128!==(m&192)?(h--,K()):
e.push((l&31)<<6|m&63)):240>l?h>=d-1?K():(m=a[h++],128!==(m&192)||224===l&&160>m||237===l&&160<=m||128!==((g=a[h++])&192)?(h--,K()):e.push((l&15)<<12|(m&63)<<6|g&63)):244>=l?h>=d-2?K():(m=a[h++],128!==(m&192)||0!==(l<<28)+(m-144)>>30||128!==((g=a[h++])&192)||128!==((f=a[h++])&192)?(h--,K()):(l=(l&7)<<18|(m&63)<<12|(g&63)<<6|f&63,l-=65536,e.push((l>>10&1023)+55296,(l&1023)+56320))):K(),8192<=e.length&&(k=ab(k,e),e.length=0);h=ab(k,e)}U(b,c,h);return!0},function(a,b,c){b=S(b,c);if(null!=b){var d=!1;
d=void 0===d?!1:d;if(fb){if(d&&/(?:[^\uD800-\uDBFF]|^)[\uDC00-\uDFFF]|[\uD800-\uDBFF](?![\uDC00-\uDFFF])/.test(b))throw Error("Found an unpaired surrogate");b=(eb||(eb=new TextEncoder)).encode(b)}else{for(var e=0,g=new Uint8Array(3*b.length),f=0;f<b.length;f++){var h=b.charCodeAt(f);if(128>h)g[e++]=h;else{if(2048>h)g[e++]=h>>6|192;else{if(55296<=h&&57343>=h){if(56319>=h&&f<b.length){var k=b.charCodeAt(++f);if(56320<=k&&57343>=k){h=1024*(h-55296)+k-56320+65536;g[e++]=h>>18|240;g[e++]=h>>12&63|128;
g[e++]=h>>6&63|128;g[e++]=h&63|128;continue}else f--}if(d)throw Error("Found an unpaired surrogate");h=65533}g[e++]=h>>12|224;g[e++]=h>>6&63|128}g[e++]=h&63|128}}b=e===g.length?g:g.subarray(0,e)}M(a.h,8*c+2);M(a.h,b.length);N(a,a.h.end());N(a,b)}}),Ec=Ac(function(a,b,c,d,e){if(2!==a.i)return!1;b=Qb(b,c,d);c=a.h.j;d=ob(a.h)>>>0;var g=a.h.h+d,f=g-c;0>=f&&(a.h.j=g,e(b,a,void 0,void 0,void 0),f=g-a.h.h);if(f)throw Error("Message parsing ended unexpectedly. Expected to read "+(d+" bytes, instead read "+
(d-f)+" bytes, either the data ended unexpectedly or the message misreported its own length"));a.h.h=g;a.h.j=c;return!0},function(a,b,c,d,e){b=Ob(b,d,c);if(null!=b)for(d=0;d<b.length;d++){var g=a;M(g.h,8*c+2);var f=g.h.end();N(g,f);f.push(g.i);g=f;e(b[d],a);f=a;var h=g.pop();for(h=f.i+f.h.length()-h;127<h;)g.push(h&127|128),h>>>=7,f.i++;g.push(h);f.i++}});function Fc(a){return function(b,c){a:{if(wb.length){var d=wb.pop();d.setOptions(c);nb(d.h,b,c);b=d}else b=new tb(b,c);try{var e=hc(a);var g=ic(new e.P,b,e);break a}finally{e=b.h,e.i=null,e.m=!1,e.l=0,e.j=0,e.h=0,e.S=!1,b.l=-1,b.i=-1,100>wb.length&&wb.push(b)}g=void 0}return g}}function Gc(a){return function(){var b=new xb;rc(this,b,qc(a));N(b,b.h.end());for(var c=new Uint8Array(b.i),d=b.j,e=d.length,g=0,f=0;f<e;f++){var h=d[f];c.set(h,g);g+=h.length}b.j=[c];return c}};function Z(a){X.call(this,a)}na(Z,X);var Hc=[Z,1,Cc,2,Y,3,Dc,4,Dc];Z.prototype.l=Gc(Hc);function Ic(a){X.call(this,a,-1,Jc)}na(Ic,X);Ic.prototype.addClassification=function(a,b){Qb(this,1,Z,a,b);return this};var Jc=[1],Kc=Fc([Ic,1,Ec,Hc]);function Lc(a){X.call(this,a)}na(Lc,X);var Mc=[Lc,1,Y,2,Y,3,Y,4,Y,5,Y];Lc.prototype.l=Gc(Mc);function Nc(a){X.call(this,a,-1,Oc)}na(Nc,X);var Oc=[1],Pc=Fc([Nc,1,Ec,Mc]);function Qc(a){X.call(this,a)}na(Qc,X);var Rc=[Qc,1,Y,2,Y,3,Y,4,Y,5,Y,6,Bc],Sc=Fc(Rc);Qc.prototype.l=Gc(Rc);function Tc(a,b,c){c=a.createShader(0===c?a.VERTEX_SHADER:a.FRAGMENT_SHADER);a.shaderSource(c,b);a.compileShader(c);if(!a.getShaderParameter(c,a.COMPILE_STATUS))throw Error("Could not compile WebGL shader.\n\n"+a.getShaderInfoLog(c));return c};function Uc(a){return Ob(a,Z,1).map(function(b){var c=S(b,1);return{index:null==c?0:c,qa:W(b,2),label:null!=S(b,3)?Rb(S(b,3),""):void 0,displayName:null!=S(b,4)?Rb(S(b,4),""):void 0}})};function Vc(a){return{x:W(a,1),y:W(a,2),z:W(a,3),visibility:null!=Mb(a,4)?W(a,4):void 0}};function Wc(a,b){this.i=a;this.h=b;this.m=0}
function Xc(a,b,c){Yc(a,b);if("function"===typeof a.h.canvas.transferToImageBitmap)return Promise.resolve(a.h.canvas.transferToImageBitmap());if(c)return Promise.resolve(a.h.canvas);if("function"===typeof createImageBitmap)return createImageBitmap(a.h.canvas);void 0===a.j&&(a.j=document.createElement("canvas"));return new Promise(function(d){a.j.height=a.h.canvas.height;a.j.width=a.h.canvas.width;a.j.getContext("2d",{}).drawImage(a.h.canvas,0,0,a.h.canvas.width,a.h.canvas.height);d(a.j)})}
function Yc(a,b){var c=a.h;if(void 0===a.s){var d=Tc(c,"\n attribute vec2 aVertex;\n attribute vec2 aTex;\n varying vec2 vTex;\n void main(void) {\n gl_Position = vec4(aVertex, 0.0, 1.0);\n vTex = aTex;\n }",0),e=Tc(c,"\n precision mediump float;\n varying vec2 vTex;\n uniform sampler2D sampler0;\n void main(){\n gl_FragColor = texture2D(sampler0, vTex);\n }",1),g=c.createProgram();c.attachShader(g,d);c.attachShader(g,e);c.linkProgram(g);if(!c.getProgramParameter(g,c.LINK_STATUS))throw Error("Could not compile WebGL program.\n\n"+
c.getProgramInfoLog(g));d=a.s=g;c.useProgram(d);e=c.getUniformLocation(d,"sampler0");a.l={O:c.getAttribLocation(d,"aVertex"),N:c.getAttribLocation(d,"aTex"),ya:e};a.v=c.createBuffer();c.bindBuffer(c.ARRAY_BUFFER,a.v);c.enableVertexAttribArray(a.l.O);c.vertexAttribPointer(a.l.O,2,c.FLOAT,!1,0,0);c.bufferData(c.ARRAY_BUFFER,new Float32Array([-1,-1,-1,1,1,1,1,-1]),c.STATIC_DRAW);c.bindBuffer(c.ARRAY_BUFFER,null);a.u=c.createBuffer();c.bindBuffer(c.ARRAY_BUFFER,a.u);c.enableVertexAttribArray(a.l.N);c.vertexAttribPointer(a.l.N,
2,c.FLOAT,!1,0,0);c.bufferData(c.ARRAY_BUFFER,new Float32Array([0,1,0,0,1,0,1,1]),c.STATIC_DRAW);c.bindBuffer(c.ARRAY_BUFFER,null);c.uniform1i(e,0)}d=a.l;c.useProgram(a.s);c.canvas.width=b.width;c.canvas.height=b.height;c.viewport(0,0,b.width,b.height);c.activeTexture(c.TEXTURE0);a.i.bindTexture2d(b.glName);c.enableVertexAttribArray(d.O);c.bindBuffer(c.ARRAY_BUFFER,a.v);c.vertexAttribPointer(d.O,2,c.FLOAT,!1,0,0);c.enableVertexAttribArray(d.N);c.bindBuffer(c.ARRAY_BUFFER,a.u);c.vertexAttribPointer(d.N,
2,c.FLOAT,!1,0,0);c.bindFramebuffer(c.DRAW_FRAMEBUFFER?c.DRAW_FRAMEBUFFER:c.FRAMEBUFFER,null);c.clearColor(0,0,0,0);c.clear(c.COLOR_BUFFER_BIT);c.colorMask(!0,!0,!0,!0);c.drawArrays(c.TRIANGLE_FAN,0,4);c.disableVertexAttribArray(d.O);c.disableVertexAttribArray(d.N);c.bindBuffer(c.ARRAY_BUFFER,null);a.i.bindTexture2d(0)}function Zc(a){this.h=a};var $c=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,2,1,0,10,9,1,7,0,65,0,253,15,26,11]);function ad(a,b){return b+a}function bd(a,b){window[a]=b}function cd(a){var b=document.createElement("script");b.setAttribute("src",a);b.setAttribute("crossorigin","anonymous");return new Promise(function(c){b.addEventListener("load",function(){c()},!1);b.addEventListener("error",function(){c()},!1);document.body.appendChild(b)})}
function dd(){return E(function(a){switch(a.h){case 1:return a.s=2,D(a,WebAssembly.instantiate($c),4);case 4:a.h=3;a.s=0;break;case 2:return a.s=0,a.l=null,a.return(!1);case 3:return a.return(!0)}})}
function ed(a){this.h=a;this.listeners={};this.l={};this.L={};this.s={};this.v={};this.M=this.u=this.ga=!0;this.I=Promise.resolve();this.fa="";this.D={};this.locateFile=a&&a.locateFile||ad;if("object"===typeof window)var b=window.location.pathname.toString().substring(0,window.location.pathname.toString().lastIndexOf("/"))+"/";else if("undefined"!==typeof location)b=location.pathname.toString().substring(0,location.pathname.toString().lastIndexOf("/"))+"/";else throw Error("solutions can only be loaded on a web page or in a web worker");
this.ha=b;if(a.options){b=A(Object.keys(a.options));for(var c=b.next();!c.done;c=b.next()){c=c.value;var d=a.options[c].default;void 0!==d&&(this.l[c]="function"===typeof d?d():d)}}}x=ed.prototype;x.close=function(){this.j&&this.j.delete();return Promise.resolve()};
function fd(a){var b,c,d,e,g,f,h,k,l,m,r;return E(function(p){switch(p.h){case 1:if(!a.ga)return p.return();b=void 0===a.h.files?[]:"function"===typeof a.h.files?a.h.files(a.l):a.h.files;return D(p,dd(),2);case 2:c=p.i;if("object"===typeof window)return bd("createMediapipeSolutionsWasm",{locateFile:a.locateFile}),bd("createMediapipeSolutionsPackedAssets",{locateFile:a.locateFile}),f=b.filter(function(n){return void 0!==n.data}),h=b.filter(function(n){return void 0===n.data}),k=Promise.all(f.map(function(n){var q=
gd(a,n.url);if(void 0!==n.path){var t=n.path;q=q.then(function(w){a.overrideFile(t,w);return Promise.resolve(w)})}return q})),l=Promise.all(h.map(function(n){return void 0===n.simd||n.simd&&c||!n.simd&&!c?cd(a.locateFile(n.url,a.ha)):Promise.resolve()})).then(function(){var n,q,t;return E(function(w){if(1==w.h)return n=window.createMediapipeSolutionsWasm,q=window.createMediapipeSolutionsPackedAssets,t=a,D(w,n(q),2);t.i=w.i;w.h=0})}),m=function(){return E(function(n){a.h.graph&&a.h.graph.url?n=D(n,
gd(a,a.h.graph.url),0):(n.h=0,n=void 0);return n})}(),D(p,Promise.all([l,k,m]),7);if("function"!==typeof importScripts)throw Error("solutions can only be loaded on a web page or in a web worker");d=b.filter(function(n){return void 0===n.simd||n.simd&&c||!n.simd&&!c}).map(function(n){return a.locateFile(n.url,a.ha)});importScripts.apply(null,ea(d));e=a;return D(p,createMediapipeSolutionsWasm(Module),6);case 6:e.i=p.i;a.m=new OffscreenCanvas(1,1);a.i.canvas=a.m;g=a.i.GL.createContext(a.m,{antialias:!1,
alpha:!1,va:"undefined"!==typeof WebGL2RenderingContext?2:1});a.i.GL.makeContextCurrent(g);p.h=4;break;case 7:a.m=document.createElement("canvas");r=a.m.getContext("webgl2",{});if(!r&&(r=a.m.getContext("webgl",{}),!r))return alert("Failed to create WebGL canvas context when passing video frame."),p.return();a.K=r;a.i.canvas=a.m;a.i.createContext(a.m,!0,!0,{});case 4:a.j=new a.i.SolutionWasm,a.ga=!1,p.h=0}})}
function hd(a){var b,c,d,e,g,f,h,k;return E(function(l){if(1==l.h){if(a.h.graph&&a.h.graph.url&&a.fa===a.h.graph.url)return l.return();a.u=!0;if(!a.h.graph||!a.h.graph.url){l.h=2;return}a.fa=a.h.graph.url;return D(l,gd(a,a.h.graph.url),3)}2!=l.h&&(b=l.i,a.j.loadGraph(b));c=A(Object.keys(a.D));for(d=c.next();!d.done;d=c.next())e=d.value,a.j.overrideFile(e,a.D[e]);a.D={};if(a.h.listeners)for(g=A(a.h.listeners),f=g.next();!f.done;f=g.next())h=f.value,id(a,h);k=a.l;a.l={};a.setOptions(k);l.h=0})}
x.reset=function(){var a=this;return E(function(b){a.j&&(a.j.reset(),a.s={},a.v={});b.h=0})};
x.setOptions=function(a,b){var c=this;if(b=b||this.h.options){for(var d=[],e=[],g={},f=A(Object.keys(a)),h=f.next();!h.done;g={X:g.X,Y:g.Y},h=f.next())if(h=h.value,!(h in this.l&&this.l[h]===a[h])){this.l[h]=a[h];var k=b[h];void 0!==k&&(k.onChange&&(g.X=k.onChange,g.Y=a[h],d.push(function(l){return function(){var m;return E(function(r){if(1==r.h)return D(r,l.X(l.Y),2);m=r.i;!0===m&&(c.u=!0);r.h=0})}}(g))),k.graphOptionXref&&(h=Object.assign({},{calculatorName:"",calculatorIndex:0},k.graphOptionXref,
{valueNumber:1===k.type?a[h]:0,valueBoolean:0===k.type?a[h]:!1,valueString:2===k.type?a[h]:""}),e.push(h)))}if(0!==d.length||0!==e.length)this.u=!0,this.H=(void 0===this.H?[]:this.H).concat(e),this.F=(void 0===this.F?[]:this.F).concat(d)}};
function jd(a){var b,c,d,e,g,f,h;return E(function(k){switch(k.h){case 1:if(!a.u)return k.return();if(!a.F){k.h=2;break}b=A(a.F);c=b.next();case 3:if(c.done){k.h=5;break}d=c.value;return D(k,d(),4);case 4:c=b.next();k.h=3;break;case 5:a.F=void 0;case 2:if(a.H){e=new a.i.GraphOptionChangeRequestList;g=A(a.H);for(f=g.next();!f.done;f=g.next())h=f.value,e.push_back(h);a.j.changeOptions(e);e.delete();a.H=void 0}a.u=!1;k.h=0}})}
x.initialize=function(){var a=this;return E(function(b){return 1==b.h?D(b,fd(a),2):3!=b.h?D(b,hd(a),3):D(b,jd(a),0)})};function gd(a,b){var c,d;return E(function(e){if(b in a.L)return e.return(a.L[b]);c=a.locateFile(b,"");d=fetch(c).then(function(g){return g.arrayBuffer()});a.L[b]=d;return e.return(d)})}x.overrideFile=function(a,b){this.j?this.j.overrideFile(a,b):this.D[a]=b};x.clearOverriddenFiles=function(){this.D={};this.j&&this.j.clearOverriddenFiles()};
x.send=function(a,b){var c=this,d,e,g,f,h,k,l,m,r;return E(function(p){switch(p.h){case 1:if(!c.h.inputs)return p.return();d=1E3*(void 0===b||null===b?performance.now():b);return D(p,c.I,2);case 2:return D(p,c.initialize(),3);case 3:e=new c.i.PacketDataList;g=A(Object.keys(a));for(f=g.next();!f.done;f=g.next())if(h=f.value,k=c.h.inputs[h]){a:{var n=a[h];switch(k.type){case "video":var q=c.s[k.stream];q||(q=new Wc(c.i,c.K),c.s[k.stream]=q);0===q.m&&(q.m=q.i.createTexture());if("undefined"!==typeof HTMLVideoElement&&
n instanceof HTMLVideoElement){var t=n.videoWidth;var w=n.videoHeight}else"undefined"!==typeof HTMLImageElement&&n instanceof HTMLImageElement?(t=n.naturalWidth,w=n.naturalHeight):(t=n.width,w=n.height);w={glName:q.m,width:t,height:w};t=q.h;t.canvas.width=w.width;t.canvas.height=w.height;t.activeTexture(t.TEXTURE0);q.i.bindTexture2d(q.m);t.texImage2D(t.TEXTURE_2D,0,t.RGBA,t.RGBA,t.UNSIGNED_BYTE,n);q.i.bindTexture2d(0);q=w;break a;case "detections":q=c.s[k.stream];q||(q=new Zc(c.i),c.s[k.stream]=q);
q.data||(q.data=new q.h.DetectionListData);q.data.reset(n.length);for(w=0;w<n.length;++w){t=n[w];var v=q.data,B=v.setBoundingBox,J=w;var I=t.la;var u=new Qc;V(u,1,I.sa);V(u,2,I.ta);V(u,3,I.height);V(u,4,I.width);V(u,5,I.rotation);U(u,6,I.pa);I=u.l();B.call(v,J,I);if(t.ea)for(v=0;v<t.ea.length;++v){u=t.ea[v];B=q.data;J=B.addNormalizedLandmark;I=w;u=Object.assign({},u,{visibility:u.visibility?u.visibility:0});var C=new Lc;V(C,1,u.x);V(C,2,u.y);V(C,3,u.z);u.visibility&&V(C,4,u.visibility);u=C.l();J.call(B,
I,u)}if(t.ba)for(v=0;v<t.ba.length;++v)B=q.data,J=B.addClassification,I=w,u=t.ba[v],C=new Z,V(C,2,u.qa),u.index&&U(C,1,u.index),u.label&&U(C,3,u.label),u.displayName&&U(C,4,u.displayName),u=C.l(),J.call(B,I,u)}q=q.data;break a;default:q={}}}l=q;m=k.stream;switch(k.type){case "video":e.pushTexture2d(Object.assign({},l,{stream:m,timestamp:d}));break;case "detections":r=l;r.stream=m;r.timestamp=d;e.pushDetectionList(r);break;default:throw Error("Unknown input config type: '"+k.type+"'");}}c.j.send(e);
return D(p,c.I,4);case 4:e.delete(),p.h=0}})};
function kd(a,b,c){var d,e,g,f,h,k,l,m,r,p,n,q,t,w;return E(function(v){switch(v.h){case 1:if(!c)return v.return(b);d={};e=0;g=A(Object.keys(c));for(f=g.next();!f.done;f=g.next())h=f.value,k=c[h],"string"!==typeof k&&"texture"===k.type&&void 0!==b[k.stream]&&++e;1<e&&(a.M=!1);l=A(Object.keys(c));f=l.next();case 2:if(f.done){v.h=4;break}m=f.value;r=c[m];if("string"===typeof r)return t=d,w=m,D(v,ld(a,m,b[r]),14);p=b[r.stream];if("detection_list"===r.type){if(p){var B=p.getRectList();for(var J=p.getLandmarksList(),
I=p.getClassificationsList(),u=[],C=0;C<B.size();++C){var T=Sc(B.get(C)),od=W(T,1),pd=W(T,2),qd=W(T,3),rd=W(T,4),sd=W(T,5,0),za=void 0;za=void 0===za?0:za;T={la:{sa:od,ta:pd,height:qd,width:rd,rotation:sd,pa:Rb(S(T,6),za)},ea:Ob(Pc(J.get(C)),Lc,1).map(Vc),ba:Uc(Kc(I.get(C)))};u.push(T)}B=u}else B=[];d[m]=B;v.h=7;break}if("proto_list"===r.type){if(p){B=Array(p.size());for(J=0;J<p.size();J++)B[J]=p.get(J);p.delete()}else B=[];d[m]=B;v.h=7;break}if(void 0===p){v.h=3;break}if("float_list"===r.type){d[m]=
p;v.h=7;break}if("proto"===r.type){d[m]=p;v.h=7;break}if("texture"!==r.type)throw Error("Unknown output config type: '"+r.type+"'");n=a.v[m];n||(n=new Wc(a.i,a.K),a.v[m]=n);return D(v,Xc(n,p,a.M),13);case 13:q=v.i,d[m]=q;case 7:r.transform&&d[m]&&(d[m]=r.transform(d[m]));v.h=3;break;case 14:t[w]=v.i;case 3:f=l.next();v.h=2;break;case 4:return v.return(d)}})}
function ld(a,b,c){var d;return E(function(e){return"number"===typeof c||c instanceof Uint8Array||c instanceof a.i.Uint8BlobList?e.return(c):c instanceof a.i.Texture2dDataOut?(d=a.v[b],d||(d=new Wc(a.i,a.K),a.v[b]=d),e.return(Xc(d,c,a.M))):e.return(void 0)})}
function id(a,b){for(var c=b.name||"$",d=[].concat(ea(b.wants)),e=new a.i.StringList,g=A(b.wants),f=g.next();!f.done;f=g.next())e.push_back(f.value);g=a.i.PacketListener.implement({onResults:function(h){for(var k={},l=0;l<b.wants.length;++l)k[d[l]]=h.get(l);var m=a.listeners[c];m&&(a.I=kd(a,k,b.outs).then(function(r){r=m(r);for(var p=0;p<b.wants.length;++p){var n=k[d[p]];"object"===typeof n&&n.hasOwnProperty&&n.hasOwnProperty("delete")&&n.delete()}r&&(a.I=r)}))}});a.j.attachMultiListener(e,g);e.delete()}
x.onResults=function(a,b){this.listeners[b||"$"]=a};Aa("Solution",ed);Aa("OptionType",{BOOL:0,NUMBER:1,ua:2,0:"BOOL",1:"NUMBER",2:"STRING"});function md(a){void 0===a&&(a=0);switch(a){case 1:return"selfie_segmentation_landscape.tflite";default:return"selfie_segmentation.tflite"}}
function nd(a){var b=this;a=a||{};this.h=new ed({locateFile:a.locateFile,files:function(c){return[{simd:!0,url:"selfie_segmentation_solution_simd_wasm_bin.js"},{simd:!1,url:"selfie_segmentation_solution_wasm_bin.js"},{data:!0,url:md(c.modelSelection)}]},graph:{url:"selfie_segmentation.binarypb"},listeners:[{wants:["segmentation_mask","image_transformed"],outs:{image:{type:"texture",stream:"image_transformed"},segmentationMask:{type:"texture",stream:"segmentation_mask"}}}],inputs:{image:{type:"video",
stream:"input_frames_gpu"}},options:{useCpuInference:{type:0,graphOptionXref:{calculatorType:"InferenceCalculator",fieldName:"use_cpu_inference"},default:"object"!==typeof window||void 0===window.navigator?!1:"iPad Simulator;iPhone Simulator;iPod Simulator;iPad;iPhone;iPod".split(";").includes(navigator.platform)||navigator.userAgent.includes("Mac")&&"ontouchend"in document},selfieMode:{type:0,graphOptionXref:{calculatorType:"GlScalerCalculator",calculatorIndex:1,fieldName:"flip_horizontal"}},modelSelection:{type:1,
graphOptionXref:{calculatorType:"ConstantSidePacketCalculator",calculatorName:"ConstantSidePacketCalculatorModelSelection",fieldName:"int_value"},onChange:function(c){var d,e,g;return E(function(f){if(1==f.h)return d=md(c),e="third_party/mediapipe/modules/selfie_segmentation/"+d,D(f,gd(b.h,d),2);g=f.i;b.h.overrideFile(e,g);return f.return(!0)})}}}})}x=nd.prototype;x.close=function(){this.h.close();return Promise.resolve()};x.onResults=function(a){this.h.onResults(a)};
x.initialize=function(){var a=this;return E(function(b){return D(b,a.h.initialize(),0)})};x.reset=function(){this.h.reset()};x.send=function(a){var b=this;return E(function(c){return D(c,b.h.send(a),0)})};x.setOptions=function(a){this.h.setOptions(a)};Aa("SelfieSegmentation",nd);Aa("VERSION","0.1.1675465747");}).call(this);
@@ -0,0 +1,21 @@
var createMediapipeSolutionsWasm = (() => {
var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;
return (
function(createMediapipeSolutionsWasm) {
createMediapipeSolutionsWasm = createMediapipeSolutionsWasm || {};
var Module=typeof createMediapipeSolutionsWasm!="undefined"?createMediapipeSolutionsWasm:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});["_main","_fflush","___getTypeName","__embind_initialize_bindings","onRuntimeInitialized"].forEach(prop=>{if(!Object.getOwnPropertyDescriptor(Module["ready"],prop)){Object.defineProperty(Module["ready"],prop,{get:()=>abort("You are getting "+prop+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js"),set:()=>abort("You are setting "+prop+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")})}});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(Module["ENVIRONMENT"]){throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)")}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;if(e&&typeof e=="object"&&e.stack){toLog=[e,e.stack]}err("exiting due to exception: "+toLog)}if(ENVIRONMENT_IS_NODE){if(typeof process=="undefined"||!process.release||process.release.name!=="node")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=(filename,onload,onerror)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof process=="object"&&typeof require==="function"||typeof window=="object"||typeof importScripts=="function")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){let data;if(typeof readbuffer=="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data=="object");return data};readAsync=function readAsync(f,onload,onerror){setTimeout(()=>onload(readBinary(f)),0)};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit=="function"){quit_=(status,toThrow)=>{logExceptionOnExit(toThrow);quit(status)}}if(typeof print!="undefined"){if(typeof console=="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}if(!(typeof window=="object"||typeof importScripts=="function"))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - anLine truncated
return createMediapipeSolutionsWasm.ready
}
);
})();
if (typeof exports === 'object' && typeof module === 'object')
module.exports = createMediapipeSolutionsWasm;
else if (typeof define === 'function' && define['amd'])
define([], function() { return createMediapipeSolutionsWasm; });
else if (typeof exports === 'object')
exports["createMediapipeSolutionsWasm"] = createMediapipeSolutionsWasm;
@@ -0,0 +1,21 @@
var createMediapipeSolutionsWasm = (() => {
var _scriptDir = typeof document !== 'undefined' && document.currentScript ? document.currentScript.src : undefined;
if (typeof __filename !== 'undefined') _scriptDir = _scriptDir || __filename;
return (
function(createMediapipeSolutionsWasm) {
createMediapipeSolutionsWasm = createMediapipeSolutionsWasm || {};
var Module=typeof createMediapipeSolutionsWasm!="undefined"?createMediapipeSolutionsWasm:{};var readyPromiseResolve,readyPromiseReject;Module["ready"]=new Promise(function(resolve,reject){readyPromiseResolve=resolve;readyPromiseReject=reject});["_main","_fflush","___getTypeName","__embind_initialize_bindings","onRuntimeInitialized"].forEach(prop=>{if(!Object.getOwnPropertyDescriptor(Module["ready"],prop)){Object.defineProperty(Module["ready"],prop,{get:()=>abort("You are getting "+prop+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js"),set:()=>abort("You are setting "+prop+" on the Promise object, instead of the instance. Use .then() to get called back with the instance, see the MODULARIZE docs in src/settings.js")})}});var moduleOverrides=Object.assign({},Module);var arguments_=[];var thisProgram="./this.program";var quit_=(status,toThrow)=>{throw toThrow};var ENVIRONMENT_IS_WEB=typeof window=="object";var ENVIRONMENT_IS_WORKER=typeof importScripts=="function";var ENVIRONMENT_IS_NODE=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string";var ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(Module["ENVIRONMENT"]){throw new Error("Module.ENVIRONMENT has been deprecated. To force the environment, use the ENVIRONMENT compile-time option (for example, -sENVIRONMENT=web or -sENVIRONMENT=node)")}var scriptDirectory="";function locateFile(path){if(Module["locateFile"]){return Module["locateFile"](path,scriptDirectory)}return scriptDirectory+path}var read_,readAsync,readBinary,setWindowTitle;function logExceptionOnExit(e){if(e instanceof ExitStatus)return;let toLog=e;if(e&&typeof e=="object"&&e.stack){toLog=[e,e.stack]}err("exiting due to exception: "+toLog)}if(ENVIRONMENT_IS_NODE){if(typeof process=="undefined"||!process.release||process.release.name!=="node")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");var fs=require("fs");var nodePath=require("path");if(ENVIRONMENT_IS_WORKER){scriptDirectory=nodePath.dirname(scriptDirectory)+"/"}else{scriptDirectory=__dirname+"/"}read_=(filename,binary)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);return fs.readFileSync(filename,binary?undefined:"utf8")};readBinary=filename=>{var ret=read_(filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};readAsync=(filename,onload,onerror)=>{filename=isFileURI(filename)?new URL(filename):nodePath.normalize(filename);fs.readFile(filename,function(err,data){if(err)onerror(err);else onload(data.buffer)})};if(process["argv"].length>1){thisProgram=process["argv"][1].replace(/\\/g,"/")}arguments_=process["argv"].slice(2);process["on"]("uncaughtException",function(ex){if(!(ex instanceof ExitStatus)){throw ex}});process["on"]("unhandledRejection",function(reason){throw reason});quit_=(status,toThrow)=>{if(keepRuntimeAlive()){process["exitCode"]=status;throw toThrow}logExceptionOnExit(toThrow);process["exit"](status)};Module["inspect"]=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL){if(typeof process=="object"&&typeof require==="function"||typeof window=="object"||typeof importScripts=="function")throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - and run it someplace else - like on the web?)");if(typeof read!="undefined"){read_=function shell_read(f){return read(f)}}readBinary=function readBinary(f){let data;if(typeof readbuffer=="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data=="object");return data};readAsync=function readAsync(f,onload,onerror){setTimeout(()=>onload(readBinary(f)),0)};if(typeof scriptArgs!="undefined"){arguments_=scriptArgs}else if(typeof arguments!="undefined"){arguments_=arguments}if(typeof quit=="function"){quit_=(status,toThrow)=>{logExceptionOnExit(toThrow);quit(status)}}if(typeof print!="undefined"){if(typeof console=="undefined")console={};console.log=print;console.warn=console.error=typeof printErr!="undefined"?printErr:print}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){if(ENVIRONMENT_IS_WORKER){scriptDirectory=self.location.href}else if(typeof document!="undefined"&&document.currentScript){scriptDirectory=document.currentScript.src}if(_scriptDir){scriptDirectory=_scriptDir}if(scriptDirectory.indexOf("blob:")!==0){scriptDirectory=scriptDirectory.substr(0,scriptDirectory.replace(/[?#].*/,"").lastIndexOf("/")+1)}else{scriptDirectory=""}if(!(typeof window=="object"||typeof importScripts=="function"))throw new Error("not compiled for this environment (did you build to HTML and try to run it not on the web, or set ENVIRONMENT to something - like node - anLine truncated
return createMediapipeSolutionsWasm.ready
}
);
})();
if (typeof exports === 'object' && typeof module === 'object')
module.exports = createMediapipeSolutionsWasm;
else if (typeof define === 'function' && define['amd'])
define([], function() { return createMediapipeSolutionsWasm; });
else if (typeof exports === 'object')
exports["createMediapipeSolutionsWasm"] = createMediapipeSolutionsWasm;
-19
View File
@@ -1,19 +0,0 @@
html, body {
height: 100%;
overflow: hidden;
}
.container {
height: 100%;
padding: 10px;
box-sizing: border-box;
}
.artplayer-app {
width: 100%;
height: 50%;
}
.tip {
text-align: center;
}
+91 -16
View File
@@ -14,6 +14,9 @@ body {
padding: 0;
color: #ccc;
background: rgb(16, 17, 19);
display: flex;
flex-direction: column;
overflow: hidden;
}
*,
@@ -36,6 +39,10 @@ img {
vertical-align: top;
}
input[type="file"] {
cursor: pointer;
}
::-webkit-scrollbar {
width: 5px;
height: 5px;
@@ -53,9 +60,10 @@ img {
display: flex;
justify-content: space-between;
align-items: center;
font-size: 13px;
font-size: 14px;
height: 48px;
width: 100%;
flex-shrink: 0;
padding: 0 0 0 20px;
border-bottom: 1px solid rgb(17, 21, 24);
background-color: rgb(28, 32, 34);
@@ -65,30 +73,48 @@ img {
display: flex;
justify-content: space-between;
align-items: center;
margin-right: 30px;
}
.header .logo img {
margin-right: 10px;
}
.header .tool {
display: flex;
align-items: center;
justify-content: space-between;
height: 100%;
line-height: 1;
gap: 20px;
}
.header .checkbox {
display: flex;
align-items: center;
}
.header .checkbox input {
margin-right: 5px;
}
.header .menus {
display: flex;
align-items: center;
flex: 1;
height: 100%;
gap: 30px;
}
.header .menus .item {
display: flex;
align-items: center;
margin-left: 20px;
height: 100%;
line-height: 1;
}
.header .menus .has-sub-menu {
position: relative;
cursor: pointer;
}
.header .menus .has-sub-menu:hover .sub-menu {
@@ -98,36 +124,44 @@ img {
.header .menus .has-sub-menu .sub-menu {
display: none;
position: absolute;
z-index: 9;
top: 45px;
z-index: 9999;
top: 40px;
left: 0;
width: 200px;
width: 280px;
padding: 0 10px;
background: #2b2b2b;
background: #1b1b1b;
border-radius: 3px;
border: 1px solid rgb(255, 255, 255, 0.05);
box-shadow: 0 0 10px rgba(0, 0, 0, 0.5);
}
.header .menus .has-sub-menu .sub-menu ul {
padding: 0;
margin-bottom: 15px;
margin-bottom: 20px;
}
.header .menus .has-sub-menu .sub-menu li {
display: block;
list-style: none;
margin-bottom: 15px;
margin-bottom: 10px;
}
.header .menus .has-sub-menu .sub-menu li.title {
color: #fff;
font-size: 16px;
margin-bottom: 15px;
font-weight: bold;
}
.header .menus .has-sub-menu .sub-menu li a:hover {
text-decoration: underline;
}
.header .run {
display: flex;
justify-content: center;
align-items: center;
width: 100px;
padding: 0 15px;
height: 100%;
line-height: 1;
cursor: pointer;
@@ -144,6 +178,7 @@ img {
display: flex;
flex: 1;
height: 100%;
overflow: hidden;
}
.main .part-left {
@@ -154,55 +189,84 @@ img {
}
.main .part-left .libs {
height: 55px;
display: flex;
height: 50px;
border-bottom: 1px solid rgb(17, 21, 24);
}
.main .part-left .upload {
position: relative;
display: flex;
align-items: center;
justify-content: center;
padding: 0 15px;
height: 100%;
font-size: 13px;
color: #f1fa8c;
border-right: 1px solid rgb(17, 21, 24);
background-color: rgb(39, 41, 54);
}
.main .part-left #file {
opacity: 0;
position: absolute;
inset: 0;
width: 100%;
height: 100%;
}
.main .part-left .libsInput {
height: 100%;
width: 100%;
flex: 1;
padding: 10px;
outline: none;
resize: none;
border: none;
font-size: 13px;
color: #ccc;
border-bottom: 1px solid rgb(17, 21, 24);
background-color: rgb(28, 32, 34);
}
.main .part-left .code {
flex: 1;
overflow: auto;
}
.main .part-left .code .codeMirrorWrap {
height: 100%;
overflow: hidden;
}
.main .part-right {
flex: 1;
display: flex;
flex-direction: column;
}
.part-right .video-wrap {
display: flex;
height: 70%;
flex: 1;
align-items: center;
justify-content: center;
flex-direction: column;
border-bottom: 1px solid rgba(255, 255, 255, 0.05);
}
.part-right .video-wrap .artplayer-app {
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-size: 20px;
width: 90%;
height: 65%;
margin-bottom: 10px;
background-color: rgb(0 0 0 / 20%);
border: 1px dashed rgba(255, 255, 255, 0.1);
}
.part-right .video-wrap .artplayer-danmuku {
width: 300px;
}
.part-right .console {
position: relative;
z-index: 8;
@@ -237,3 +301,14 @@ img {
background-position: center center;
background-size: contain;
}
.fullscreenWeb {
position: fixed;
z-index: 9999;
width: 100%;
height: 100%;
left: 0;
top: 0;
right: 0;
bottom: 0;
}
+48
View File
@@ -0,0 +1,48 @@
// npm i artplayer-plugin-ads
// import artplayerPluginAds from 'artplayer-plugin-ads';
const art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
autoSize: true,
fullscreen: true,
fullscreenWeb: true,
plugins: [
artplayerPluginAds({
// html广告,假如是视频广告则忽略该值
html: '<img src="/assets/sample/poster.jpg">',
// 视频广告的地址
video: '/assets/sample/test1.mp4',
// 广告跳转网址,为空则不跳转
url: 'http://artplayer.org',
// 必须观看的时长,期间不能被跳过,单位为秒
// 当该值大于或等于totalDuration时,不能提前关闭广告
// 当该值等于或小于0时,则随时都可以关闭广告
playDuration: 5,
// 广告总时长,单位为秒
totalDuration: 10,
// 多语言支持
i18n: {
close: '关闭广告',
countdown: '%s秒',
detail: '查看详情',
canBeClosed: '%s秒后可关闭广告',
},
}),
],
})
// 广告被点击
art.on('artplayerPluginAds:click', (ads) => {
console.info('广告被点击', ads)
})
// 广告被跳过
art.on('artplayerPluginAds:skip', (ads) => {
console.info('广告被跳过', ads)
})
+16
View File
@@ -0,0 +1,16 @@
// npm i artplayer-plugin-ambilight
// import artplayerPluginAmbilight from 'artplayer-plugin-ambilight';
const art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
autoSize: true,
plugins: [
artplayerPluginAmbilight({
blur: '50px',
opacity: 1,
frequency: 10,
duration: 0.3,
}),
],
})
+61
View File
@@ -0,0 +1,61 @@
const art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/steve-jobs.mp4',
autoSize: true,
fullscreen: true,
fullscreenWeb: true,
moreVideoAttr: {
// crossOrigin: 'anonymous',
},
plugins: [
artplayerPluginAsr({
length: 2,
interval: 40,
sampleRate: 16000,
autoHideTimeout: 10000,
// Use your AI tool to convert pcm into subtitles
onAudioChunk: ({ pcm }) => startAsr(pcm),
}),
],
})
let ws = null
let loading = false
function stopAsr() {
try {
ws.send(JSON.stringify({ type: 'end' }))
ws.close()
}
catch {}
ws = null
loading = false
}
async function startAsr(buffer) {
if (loading)
return
if (!ws) {
loading = true
const api = 'https://api.aimu.app/asr/tencent?engine_model_type=16k_en'
const { url } = await (await fetch(api)).json()
ws = new WebSocket(url)
ws.binaryType = 'arraybuffer'
ws.onmessage = (event) => {
const { code, result, message } = JSON.parse(event.data)
if (code === 0) {
art.plugins.artplayerPluginAsr.append(result?.voice_text_str)
}
else {
console.error(code, message)
stopAsr()
}
}
loading = false
}
if (ws?.readyState === WebSocket.OPEN) {
ws.send(buffer)
}
}
art.on('destroy', stopAsr)
+14
View File
@@ -0,0 +1,14 @@
// npm i artplayer-plugin-audio-track
// import artplayerPluginAudioTrack from 'artplayer-plugin-audio-track';
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/sprite-fight.mp4',
plugins: [
artplayerPluginAudioTrack({
url: '/assets/sample/sprite-fight.aac',
offset: 0,
sync: 0.3,
}),
],
});
+12
View File
@@ -0,0 +1,12 @@
// npm i artplayer-plugin-auto-thumbnail
// import artplayerPluginAutoThumbnail from 'artplayer-plugin-auto-thumbnail';
const art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
plugins: [
artplayerPluginAutoThumbnail({
//
}),
],
})
+30
View File
@@ -0,0 +1,30 @@
// npm i artplayer-proxy-canvas
// import artplayerProxyCanvas from 'artplayer-proxy-canvas';
const art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
poster: '/assets/sample/poster.jpg',
volume: 0.5,
autoplay: false,
autoSize: false,
screenshot: true,
setting: true,
loop: true,
flip: true,
pip: true,
playbackRate: true,
aspectRatio: true,
fullscreen: true,
fullscreenWeb: true,
miniProgressBar: true,
autoPlayback: true,
autoOrientation: true,
thumbnails: {
url: '/assets/sample/thumbnails.png',
number: 60,
column: 10,
scale: 0.85,
},
proxy: artplayerProxyCanvas(),
})
+28
View File
@@ -0,0 +1,28 @@
// npm i artplayer-plugin-chapter
// import artplayerPluginChapter from 'artplayer-plugin-chapter';
const art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
autoSize: true,
fullscreen: true,
fullscreenWeb: true,
miniProgressBar: true,
autoOrientation: true,
thumbnails: {
url: '/assets/sample/thumbnails.png',
number: 60,
column: 10,
},
plugins: [
artplayerPluginChapter({
chapters: [
{ start: 0, end: 18, title: 'One more chance' },
{ start: 18, end: 36, title: '谁でもいいはずなのに' },
{ start: 36, end: 54, title: '夏の想い出がまわる' },
{ start: 54, end: 72, title: 'こんなとこにあるはずもないのに' },
{ start: 72, end: Infinity, title: '终わり' },
],
}),
],
})
+15
View File
@@ -0,0 +1,15 @@
// npm i artplayer-plugin-chromecast
// import artplayerPluginChromecast from 'artplayer-plugin-chromecast';
const art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
fullscreen: true,
fullscreenWeb: true,
plugins: [
artplayerPluginChromecast({
// sdk: '', // The URL of the Cast SDK
// mimeType: '', // The MIME type of the media
}),
],
})
+54 -45
View File
@@ -1,45 +1,54 @@
var art = new Artplayer({
container: '.artplayer-app',
url: 'https://artplayer.org/assets/sample/video.mp4',
autoSize: true,
plugins: [
artplayerPluginDanmuku({
danmuku: '/assets/sample/danmuku.xml',
speed: 5,
maxlength: 50,
margin: [10, 100],
opacity: 1,
fontSize: 25,
synchronousPlayback: false,
}),
],
controls: [
{
position: 'right',
html: '隐藏弹幕',
click: function (_, event) {
if (art.plugins.artplayerPluginDanmuku.isHide) {
art.plugins.artplayerPluginDanmuku.show();
event.target.innerText = '隐藏弹幕';
} else {
art.plugins.artplayerPluginDanmuku.hide();
event.target.innerText = '显示弹幕';
}
},
},
{
position: 'right',
html: '发送弹幕',
click: function () {
var text = prompt('请输入弹幕文本', '弹幕测试文本');
if (!text || !text.trim()) return;
var color = '#' + Math.floor(Math.random() * 0xffffff).toString(16);
art.plugins.artplayerPluginDanmuku.emit({
text: text,
color: color,
border: true,
});
},
},
],
});
// npm i artplayer-plugin-danmuku
// import artplayerPluginDanmuku from 'artplayer-plugin-danmuku';
// 使用文档 https://artplayer.org/document/plugin/danmuku.html
const art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
autoSize: true,
fullscreen: true,
fullscreenWeb: true,
autoOrientation: true,
plugins: [
artplayerPluginDanmuku({
danmuku: '/assets/sample/danmuku.xml',
// 以下为非必填
speed: 5, // 弹幕持续时间,范围在[1 ~ 10]
margin: [10, '25%'], // 弹幕上下边距,支持像素数字和百分比
opacity: 1, // 弹幕透明度,范围在[0 ~ 1]
color: '#FFFFFF', // 默认弹幕颜色,可以被单独弹幕项覆盖
mode: 0, // 默认弹幕模式: 0: 滚动,1: 顶部,2: 底部
modes: [0, 1, 2], // 弹幕可见的模式
fontSize: 25, // 弹幕字体大小,支持像素数字和百分比
antiOverlap: true, // 弹幕是否防重叠
synchronousPlayback: false, // 是否同步播放速度
mount: undefined, // 弹幕发射器挂载点, 默认为播放器控制栏中部
heatmap: true, // 是否开启热力图
width: 512, // 当播放器宽度小于此值时,弹幕发射器置于播放器底部
points: [], // 热力图数据
filter: danmu => danmu.text.length <= 100, // 弹幕载入前的过滤器
beforeVisible: () => true, // 弹幕显示前的过滤器,返回 true 则可以发送
visible: true, // 弹幕层是否可见
emitter: true, // 是否开启弹幕发射器
maxLength: 200, // 弹幕输入框最大长度, 范围在[1 ~ 1000]
lockTime: 5, // 输入框锁定时间,范围在[1 ~ 60]
theme: 'dark', // 弹幕主题,支持 dark 和 light,只在自定义挂载时生效
OPACITY: {}, // 不透明度配置项
FONT_SIZE: {}, // 弹幕字号配置项
MARGIN: {}, // 显示区域配置项
SPEED: {}, // 弹幕速度配置项
COLOR: [], // 颜色列表配置项
// 手动发送弹幕前的过滤器,返回 true 则可以发送,可以做存库处理
beforeEmit(danmu) {
return new Promise((resolve) => {
console.log(danmu)
setTimeout(() => {
resolve(true)
}, 1000)
})
},
}),
],
})
+22
View File
@@ -0,0 +1,22 @@
// npm i artplayer-plugin-danmuku-mask
// import artplayerPluginDanmukuMask from 'artplayer-plugin-danmuku-mask';
// npm i @mediapipe/selfie_segmentation
// 把 node_modules/@mediapipe/selfie_segmentation 目录复制到你的项目下
const art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/steve-jobs.mp4',
autoSize: true,
fullscreen: true,
fullscreenWeb: true,
autoOrientation: true,
plugins: [
artplayerPluginDanmuku({
danmuku: '/assets/sample/danmuku.xml',
}),
artplayerPluginDanmukuMask({
solutionPath: '/assets/@mediapipe/selfie_segmentation',
}),
],
})
+52
View File
@@ -0,0 +1,52 @@
// npm i dashjs
// npm i artplayer-plugin-dash-control
// import dashjs from 'dashjs';
// import artplayerPluginDashControl from 'artplayer-plugin-dash-control';
const art = new Artplayer({
container: '.artplayer-app',
url: 'https://media.axprod.net/TestVectors/v7-Clear/Manifest_1080p.mpd',
setting: true,
plugins: [
artplayerPluginDashControl({
quality: {
// Show qualitys in control
control: true,
// Show qualitys in setting
setting: true,
// Get the quality name from level
getName: level => `${level.height}P`,
// I18n
title: 'Quality',
auto: 'Auto',
},
audio: {
// Show audios in control
control: true,
// Show audios in setting
setting: true,
// Get the audio name from track
getName: track => track.lang.toUpperCase(),
// I18n
title: 'Audio',
auto: 'Auto',
},
}),
],
customType: {
mpd: function playMpd(video, url, art) {
if (dashjs.supportsMediaSource()) {
if (art.dash)
art.dash.destroy()
const dash = dashjs.MediaPlayer().create()
dash.initialize(video, url, art.option.autoplay)
art.dash = dash
art.on('destroy', () => dash.destroy())
}
else {
art.notice.show = 'Unsupported playback format: mpd'
}
},
},
})
+29
View File
@@ -0,0 +1,29 @@
// npm i dashjs
// import dashjs from 'dashjs';
function playMpd(video, url, art) {
if (dashjs.supportsMediaSource()) {
if (art.dash)
art.dash.destroy()
const dash = dashjs.MediaPlayer().create()
dash.initialize(video, url, art.option.autoplay)
art.dash = dash
art.on('destroy', () => dash.destroy())
}
else {
art.notice.show = 'Unsupported playback format: mpd'
}
}
const art = new Artplayer({
container: '.artplayer-app',
url: 'https://dash.akamaized.net/akamai/bbb_30fps/bbb_30fps.mpd',
type: 'mpd',
customType: {
mpd: playMpd,
},
})
art.on('ready', () => {
console.info(art.dash)
})
+19
View File
@@ -0,0 +1,19 @@
// npm i artplayer-plugin-document-pip
// import artplayerPluginDocumentPip from 'artplayer-plugin-document-pip';
const art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
plugins: [
artplayerPluginDocumentPip({
width: 480,
height: 270,
fallbackToVideoPiP: true,
placeholder: `Playing in Document Picture-in-Picture`,
}),
],
})
art.on('document-pip', (state) => {
console.log('Document Picture-in-Picture', state)
})
+30
View File
@@ -0,0 +1,30 @@
// npm i flv.js
// import flvjs from 'flv.js';
function playFlv(video, url, art) {
if (flvjs.isSupported()) {
if (art.flv)
art.flv.destroy()
const flv = flvjs.createPlayer({ type: 'flv', url })
flv.attachMediaElement(video)
flv.load()
art.flv = flv
art.on('destroy', () => flv.destroy())
}
else {
art.notice.show = 'Unsupported playback format: flv'
}
}
const art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.flv',
type: 'flv',
customType: {
flv: playFlv,
},
})
art.on('ready', () => {
console.info(art.flv)
})
+56
View File
@@ -0,0 +1,56 @@
// npm i hls.js
// npm i artplayer-plugin-hls-control
// import Hls from 'hls.js';
// import artplayerPluginHlsControl from 'artplayer-plugin-hls-control';
const art = new Artplayer({
container: '.artplayer-app',
url: 'https://playertest.longtailvideo.com/adaptive/elephants_dream_v4/index.m3u8',
setting: true,
plugins: [
artplayerPluginHlsControl({
quality: {
// Show qualitys in control
control: true,
// Show qualitys in setting
setting: true,
// Get the quality name from level
getName: level => `${level.height}P`,
// I18n
title: 'Quality',
auto: 'Auto',
},
audio: {
// Show audios in control
control: true,
// Show audios in setting
setting: true,
// Get the audio name from track
getName: track => track.name,
// I18n
title: 'Audio',
auto: 'Auto',
},
}),
],
customType: {
m3u8: function playM3u8(video, url, art) {
if (Hls.isSupported()) {
if (art.hls)
art.hls.destroy()
const hls = new Hls()
hls.loadSource(url)
hls.attachMedia(video)
art.hls = hls
art.on('destroy', () => hls.destroy())
}
else if (video.canPlayType('application/vnd.apple.mpegurl')) {
video.src = url
}
else {
art.notice.show = 'Unsupported playback format: m3u8'
}
},
},
})
+33
View File
@@ -0,0 +1,33 @@
// npm i hls.js
// import Hls from 'hls.js';
function playM3u8(video, url, art) {
if (Hls.isSupported()) {
if (art.hls)
art.hls.destroy()
const hls = new Hls()
hls.loadSource(url)
hls.attachMedia(video)
art.hls = hls
art.on('destroy', () => hls.destroy())
}
else if (video.canPlayType('application/vnd.apple.mpegurl')) {
video.src = url
}
else {
art.notice.show = 'Unsupported playback format: m3u8'
}
}
const art = new Artplayer({
container: '.artplayer-app',
url: 'https://test-streams.mux.dev/x36xhzz/x36xhzz.m3u8',
type: 'm3u8',
customType: {
m3u8: playM3u8,
},
})
art.on('ready', () => {
console.info(art.hls)
})
+47
View File
@@ -0,0 +1,47 @@
// npm i artplayer-tool-iframe
// import ArtplayerToolIframe from 'artplayer-tool-iframe';
const $iframe = document.createElement('iframe')
$iframe.allowFullscreen = true
$iframe.width = '100%'
$iframe.height = '100%'
const $container = document.querySelector('.artplayer-app')
$container.innerHTML = ''
$container.appendChild($iframe)
const iframe = new ArtplayerToolIframe({
iframe: $iframe,
url: '/iframe.html',
})
iframe.message(({ type, data }) => {
switch (type) {
case 'fullscreenWeb':
if (data) {
$iframe.classList.add('fullscreenWeb')
}
else {
$iframe.classList.remove('fullscreenWeb')
}
break
default:
break
}
})
iframe.commit(() => {
const art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
fullscreen: true,
fullscreenWeb: true,
})
art.on('fullscreenWeb', (state) => {
ArtplayerToolIframe.postMessage({
type: 'fullscreenWeb',
data: state,
})
})
})
+185 -130
View File
@@ -1,135 +1,190 @@
var art = new Artplayer({
container: '.artplayer-app',
url: 'https://artplayer.org/assets/sample/video.mp4',
title: 'One More Time One More Chance',
poster: '/assets/sample/poster.jpg',
volume: 0.5,
isLive: false,
muted: false,
autoplay: false,
pip: true,
autoSize: true,
autoMini: true,
screenshot: true,
setting: true,
loop: true,
flip: true,
playbackRate: true,
aspectRatio: true,
fullscreen: true,
fullscreenWeb: true,
subtitleOffset: true,
miniProgressBar: true,
mutex: true,
backdrop: true,
theme: '#23ade5',
lang: navigator.language.toLowerCase(),
moreVideoAttr: {
crossOrigin: 'anonymous',
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
poster: '/assets/sample/poster.jpg',
volume: 0.5,
isLive: false,
muted: false,
autoplay: false,
pip: true,
autoSize: true,
autoMini: true,
screenshot: true,
setting: true,
loop: true,
flip: true,
playbackRate: true,
aspectRatio: true,
fullscreen: true,
fullscreenWeb: true,
subtitleOffset: true,
miniProgressBar: true,
mutex: true,
backdrop: true,
playsInline: true,
autoPlayback: true,
airplay: true,
theme: '#23ade5',
lang: navigator.language.toLowerCase(),
moreVideoAttr: {
crossOrigin: 'anonymous',
},
settings: [
{
width: 200,
html: 'Subtitle',
tooltip: 'Bilingual',
icon: '<img width="22" height="22" src="/assets/img/subtitle.svg">',
selector: [
{
html: 'Display',
tooltip: 'Show',
switch: true,
onSwitch(item) {
item.tooltip = item.switch ? 'Hide' : 'Show'
art.subtitle.show = !item.switch
return !item.switch
},
},
{
default: true,
html: 'Bilingual',
url: '/assets/sample/subtitle.srt',
},
{
html: 'Chinese',
url: '/assets/sample/subtitle.cn.srt',
},
{
html: 'Japanese',
url: '/assets/sample/subtitle.jp.srt',
},
],
onSelect(item) {
art.subtitle.switch(item.url, {
name: item.html,
})
return item.html
},
},
settings: [
{
width: 200,
html: 'Custom Setting',
tooltip: 'Click This',
icon: '<img width="22" heigth="22" src="/assets/img/indicator.svg">',
selector: [
{
default: true,
html: 'Setting 01',
},
{
html: 'Setting 02',
},
],
onSelect: function (item) {
console.info('You clicked on the custom setting', item.html);
return item.html;
},
},
],
contextmenu: [
{
html: 'Custom menu',
click: function (contextmenu) {
console.info('You clicked on the custom menu');
contextmenu.show = false;
},
},
],
layers: [
{
html: '<img width="100" src="/assets/sample/layer.png">',
click: function () {
console.info('You clicked on the custom layer');
},
style: {
position: 'absolute',
top: '20px',
right: '20px',
opacity: '.9',
},
},
],
quality: [
{
default: true,
html: 'SD 480P',
url: '/assets/sample/video.mp4',
},
{
html: 'HD 720P',
url: '/assets/sample/video.mp4',
},
],
thumbnails: {
url: '/assets/sample/thumbnails.png',
number: 100,
column: 10,
{
html: 'Switcher',
icon: '<img width="22" height="22" src="/assets/img/state.svg">',
tooltip: 'OFF',
switch: false,
onSwitch(item) {
item.tooltip = item.switch ? 'OFF' : 'ON'
console.info('You clicked on the custom switch', item.switch)
return !item.switch
},
},
subtitle: {
url: '/assets/sample/subtitle.srt',
type: 'srt',
style: {
color: '#03A9F4',
},
encoding: 'utf-8',
bilingual: true,
{
html: 'Slider',
icon: '<img width="22" height="22" src="/assets/img/state.svg">',
tooltip: '5x',
range: [5, 1, 10, 0.1],
onRange(item) {
return `${item.range[0]}x`
},
},
highlight: [
{
time: 60,
text: 'One more chance',
},
{
time: 120,
text: '谁でもいいはずなのに',
},
{
time: 180,
text: '夏の想い出がまわる',
},
{
time: 240,
text: 'こんなとこにあるはずもないのに',
},
{
time: 300,
text: '终わり',
},
],
controls: [
{
position: 'right',
html: 'Control',
click: function () {
console.info('You clicked on the custom control');
},
},
],
icons: {
loading: '<img src="/assets/img/ploading.gif">',
state: '<img width="150" heigth="150" src="/assets/img/state.svg">',
indicator: '<img width="16" heigth="16" src="/assets/img/indicator.svg">',
{
html: 'Button',
icon: '<img width="22" height="22" src="/assets/img/state.svg">',
tooltip: 'tooltip',
onClick() {
return 'Button clicked'
},
},
});
],
contextmenu: [
{
html: 'Custom menu',
click(contextmenu) {
console.info('You clicked on the custom menu')
contextmenu.show = false
},
},
],
layers: [
{
html: '<img width="100" src="/assets/sample/layer.png">',
click() {
window.open('https://aimu.app')
console.info('You clicked on the custom layer')
},
style: {
position: 'absolute',
top: '20px',
right: '20px',
opacity: '.9',
},
},
],
quality: [
{
default: true,
html: 'SD 480P',
url: '/assets/sample/video.mp4?q=480',
},
{
html: 'HD 720P',
url: '/assets/sample/video.mp4?q=720',
},
],
thumbnails: {
url: '/assets/sample/thumbnails.png',
number: 60,
column: 10,
scale: 0.85,
},
subtitle: {
url: '/assets/sample/subtitle.srt',
type: 'srt',
style: {
color: '#fe9200',
fontSize: '20px',
},
encoding: 'utf-8',
},
highlight: [
{
time: 15,
text: 'One more chance',
},
{
time: 30,
text: '谁でもいいはずなのに',
},
{
time: 45,
text: '夏の想い出がまわる',
},
{
time: 60,
text: 'こんなとこにあるはずもないのに',
},
{
time: 75,
text: '终わり',
},
],
controls: [
{
position: 'right',
html: 'Control',
index: 1,
tooltip: 'Control Tooltip',
style: {
marginRight: '20px',
},
click() {
console.info('You clicked on the custom control')
},
},
],
icons: {
loading: '<img src="/assets/img/ploading.gif">',
state: '<img width="150" height="150" src="/assets/img/state.svg">',
indicator: '<img width="16" height="16" src="/assets/img/indicator.svg">',
},
})
+28
View File
@@ -0,0 +1,28 @@
// https://github.com/ThaUnknown/jassub
// npm i artplayer-plugin-jassub
// import artplayerPluginJassub from 'artplayer-plugin-jassub';
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/jassub/FGOBD.mp4',
autoSize: true,
fullscreen: true,
fullscreenWeb: true,
plugins: [
artplayerPluginJassub({
subUrl: '/assets/jassub/FGOBD.ass',
workerUrl: '/assets/jassub/jassub-worker.js',
wasmUrl: '/assets/jassub/jassub-worker.wasm',
modernWasmUrl: '/assets/jassub/jassub-worker-modern.wasm',
availableFonts: {
'liberation sans': '/assets/jassub/default.woff2'
},
fonts: [
'/assets/jassub/fonts/Averia Sans Libre Light.ttf',
'/assets/jassub/fonts/Averia Serif Simple Light.ttf',
'/assets/jassub/fonts/Gramond.ttf'
],
timeOffset: -0.041
}),
],
});
+25
View File
@@ -0,0 +1,25 @@
// npm i artplayer-proxy-mediabunny
// import artplayerProxyMediabunny from 'artplayer-proxy-mediabunny';
const art = new Artplayer({
container: '.artplayer-app',
url: 'https://artplayer.org/assets/sample/frag_bunny.mp4',
autoSize: true,
screenshot: true,
setting: true,
loop: true,
flip: true,
playbackRate: true,
fullscreen: true,
fullscreenWeb: true,
miniProgressBar: true,
autoPlayback: true,
autoOrientation: true,
thumbnails: {
url: '/assets/sample/frag_bunny.png',
number: 60,
column: 10,
scale: 0.85,
},
proxy: artplayerProxyMediabunny(),
})
+98
View File
@@ -0,0 +1,98 @@
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
poster: '/assets/sample/poster.jpg',
autoSize: true,
loop: true,
mutex: true,
setting: true,
flip: true,
lock: true,
fastForward: true,
playbackRate: true,
aspectRatio: true,
theme: '#ff0057',
fullscreen: true,
fullscreenWeb: true,
miniProgressBar: true,
autoOrientation: true,
airplay: true,
moreVideoAttr: {
'x5-video-player-type': 'h5',
'x5-video-player-fullscreen': false,
'x5-video-orientation': 'portraint',
'preload': 'metadata',
},
thumbnails: {
url: '/assets/sample/thumbnails.png',
number: 60,
column: 10,
scale: 0.6,
},
subtitle: {
name: '中日双语',
url: '/assets/sample/subtitle.srt',
style: {
color: '#48aff0',
fontSize: '16px',
},
},
layers: [
{
html: `<img width="50" src="/assets/sample/layer.png">`,
click() {
art.notice.show = '你点击了自定义层'
},
style: {
position: 'absolute',
top: '10px',
right: '10px',
opacity: '.9',
},
},
],
icons: {
loading: '<img src="/assets/img/ploading.gif">',
state: '<img width="150" height="150" src="/assets/img/state.svg">',
indicator: '<img width="16" height="16" src="/assets/img/indicator.svg">',
},
settings: [
{
width: 200,
html: '切换字幕',
tooltip: '双语',
icon: '<img width="22" height="22" src="/assets/img/subtitle.svg">',
selector: [
{
html: '开关',
switch: true,
tooltip: '显示',
onSwitch(item) {
item.tooltip = item.switch ? '隐藏' : '显示'
art.subtitle.show = !item.switch
return !item.switch
},
},
{
default: true,
html: '双语',
url: '/assets/sample/subtitle.srt',
},
{
html: '中文',
url: '/assets/sample/subtitle.cn.srt',
},
{
html: '日文',
url: '/assets/sample/subtitle.jp.srt',
},
],
onSelect(item) {
art.subtitle.switch(item.url, {
name: item.html,
})
return item.html
},
},
],
})
+36
View File
@@ -0,0 +1,36 @@
// npm i mpegts
// import mpegts from 'mpegts';
function playFlv(video, url, art) {
if (mpegts.isSupported()) {
if (art.flv)
art.flv.destroy()
const flv = mpegts.createPlayer({
type: 'flv',
url,
})
flv.attachMediaElement(video)
flv.load()
flv.play()
art.flv = flv
art.on('destroy', () => flv.destroy())
}
else {
art.notice.show = 'Unsupported playback format: flv'
}
}
const art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.flv',
type: 'flv',
customType: {
flv: playFlv,
},
})
art.on('ready', () => {
console.info(art.flv)
})
+113
View File
@@ -0,0 +1,113 @@
// npm i artplayer-plugin-multiple-subtitles
// import artplayerPluginMultipleSubtitles from 'artplayer-plugin-multiple-subtitles';
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
setting: true,
plugins: [
artplayerPluginMultipleSubtitles({
subtitles: [
{
name: 'chinese',
url: '/assets/sample/subtitle.cn.srt',
},
{
name: 'japanese',
url: '/assets/sample/subtitle.jp.srt',
},
],
}),
],
settings: [
{
width: 200,
html: 'Subtitle',
tooltip: 'Double',
icon: '<img width="22" height="22" src="/assets/img/subtitle.svg">',
selector: [
{
html: 'Display',
tooltip: 'Show',
switch: true,
onSwitch(item) {
item.tooltip = item.switch ? 'Hide' : 'Show'
// 显示/隐藏字幕
// Show/hide subtitles
art.subtitle.show = !item.switch
return !item.switch
},
},
{
html: 'Reverse',
tooltip: 'Off',
switch: false,
onSwitch(item) {
item.tooltip = item.switch ? 'Off' : 'On'
// 修改字幕顺序
// Change the order of subtitles
if (item.switch) {
art.plugins.multipleSubtitles.tracks(['chinese', 'japanese'])
}
else {
art.plugins.multipleSubtitles.tracks(['japanese', 'chinese'])
}
return !item.switch
},
},
{
default: true,
html: 'Double',
name: 'double',
},
{
html: 'Chinese',
name: 'chinese',
},
{
html: 'Japanese',
name: 'japanese',
},
],
onSelect(item) {
if (item.name === 'double') {
// 重置字幕
// Reset subtitles
art.plugins.multipleSubtitles.reset()
}
else {
// 显示单个字幕
// Show single subtitle
art.plugins.multipleSubtitles.tracks([item.name])
}
return item.html
},
},
],
})
// 自定义你自己的样式,请勿复制以下代码
// Customize your own style, please do not copy the following code
const style = `
.art-subtitle-chinese {
color: red;
font-size: 18px;
}
.art-subtitle-japanese {
color: yellow;
font-size: 12px;
}
`
const $style = document.getElementById('artplayer-subtitle-style')
if ($style) {
$style.textContent = style
}
else {
const $style = document.createElement('style')
$style.id = 'artplayer-subtitle-style'
$style.textContent = style
document.head.appendChild($style)
}
+140
View File
@@ -0,0 +1,140 @@
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
setting: true,
flip: true,
playbackRate: true,
aspectRatio: true,
subtitleOffset: true,
settings: [
{
width: 200,
html: 'Subtitle',
name: 'subtitle',
tooltip: 'Bilingual',
icon: '<img width="22" height="22" src="/assets/img/subtitle.svg">',
selector: [
{
html: 'Display',
tooltip: 'Show',
switch: true,
onSwitch(item) {
item.tooltip = item.switch ? 'Hide' : 'Show'
art.subtitle.show = !item.switch
return !item.switch
},
},
{
default: true,
html: 'Bilingual',
url: '/assets/sample/subtitle.srt',
},
{
html: 'Chinese',
url: '/assets/sample/subtitle.cn.srt',
},
{
html: 'Japanese',
url: '/assets/sample/subtitle.jp.srt',
},
],
onSelect(item) {
art.subtitle.switch(item.url, {
name: item.html,
})
return item.html
},
mounted(...args) {
console.info(args)
},
},
{
html: 'Switcher',
icon: '<img width="22" height="22" src="/assets/img/state.svg">',
tooltip: 'OFF',
switch: false,
onSwitch(item) {
item.tooltip = item.switch ? 'OFF' : 'ON'
console.info('You clicked on the custom switch', item.switch)
return !item.switch
},
mounted(...args) {
console.info(args)
},
},
{
html: 'Slider',
icon: '<img width="22" height="22" src="/assets/img/state.svg">',
tooltip: '5x',
range: [5, 1, 10, 0.1],
onRange(item) {
return `${item.range[0]}x`
},
mounted(...args) {
console.info(args)
},
},
],
}, async () => {
const { sleep } = Artplayer.utils
art.setting.show = true
console.log(art.setting.builtin)
console.log(art.setting.find('aspect-ratio'))
console.log(art.setting.find('aspect-ratio2'))
await sleep(1000)
art.setting.resize()
await sleep(1000)
art.setting.inactivate(art.setting.find('subtitle'))
art.setting.remove('aspect-ratio')
try {
art.setting.remove('aspect-ratio2')
}
catch (error) {
console.log(error.message)
}
await sleep(1000)
art.setting.update({
name: 'subtitle-offset',
html: 'new offset',
range: [5, -11, 11, 1],
})
await sleep(1000)
art.setting.find('subtitle-offset').range = [0, -0, 10, 1]
await sleep(1000)
art.setting.update({
name: 'subtitle-offset2',
html: 'new offset 2',
range: [5, -11, 11, 1],
onChange(item) {
return `${item.range[0]}s`
},
})
await sleep(1000)
art.setting.update({
name: 'flip',
html: 'new flip',
tooltip: 'OFF',
switch: false,
})
await sleep(1000)
art.setting.find('flip').switch = true
await sleep(1000)
art.setting.update({
name: 'flip2',
html: 'new flip2',
tooltip: 'OFF',
switch: true,
})
await sleep(1000)
try {
art.setting.add({
name: 'flip2',
html: 'new flip2',
tooltip: 'OFF',
switch: true,
})
}
catch (error) {
console.log(error.message)
}
})
+13 -68
View File
@@ -1,69 +1,14 @@
if (window.lastThumbnail) {
window.lastThumbnail.destroy();
}
// npm i artplayer-plugin-thumbnail
// import artplayerPluginThumbnail from 'artplayer-plugin-thumbnail';
var $popups = document.querySelector('.popups');
var $popinner = document.querySelector('.popinner');
var $artplayer = document.querySelector('.artplayer-app');
$artplayer.innerHTML = 'Drop video file here or click to upload.';
var thumbnail = new ArtplayerToolThumbnail({
fileInput: $artplayer,
number: 60, // 数量
width: 160, // 宽度
column: 10, // 列数
begin: 0, // 开始
end: NaN, // 结束
});
window.lastThumbnail = thumbnail;
thumbnail.on('file', function (file) {
console.log('Read video successfully: ' + file.name);
});
thumbnail.on('video', function (video) {
console.log('Video size: ' + video.videoWidth + ' x ' + video.videoHeight);
console.log('Video duration: ' + video.duration + 's');
thumbnail.start();
});
thumbnail.on('canvas', function (canvas) {
console.log('Build canvas successfully');
console.log('Canvas size: ' + canvas.width + ' x ' + canvas.height);
console.log('Preview density: ' + thumbnail.density + ' p/s');
});
thumbnail.on('update', function (url, percentage) {
console.log('Processing: ' + Math.floor(percentage.toFixed(2) * 100) + '%');
$popups.style.display = 'flex';
$popinner.style.backgroundImage = 'url(' + url + ')';
});
thumbnail.on('download', function (name) {
console.log('Start download preview: ' + name);
});
thumbnail.on('done', function () {
$popups.style.display = 'none';
thumbnail.download();
console.log('Build preview image complete');
[...Artplayer.instances].forEach(function (art) {
art.destroy(true);
});
new Artplayer({
container: $artplayer,
url: thumbnail.videoUrl,
autoSize: true,
poster: thumbnail.thumbnailUrl,
thumbnails: {
url: thumbnail.thumbnailUrl,
number: thumbnail.option.number,
column: thumbnail.option.column,
},
});
console.log('Build player complete');
});
const art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
plugins: [
artplayerPluginThumbnail({
width: 160,
number: 100,
scale: 1,
}),
],
})
+69
View File
@@ -0,0 +1,69 @@
if (window.lastThumbnail) {
window.lastThumbnail.destroy();
}
var $popups = document.querySelector('.popups');
var $popinner = document.querySelector('.popinner');
var $artplayer = document.querySelector('.artplayer-app');
$artplayer.innerHTML = 'Drop video file here or click to upload.';
var thumbnail = new ArtplayerToolThumbnail({
fileInput: $artplayer,
number: 60, // 数量
width: 160, // 宽度
column: 10, // 列数
begin: 0, // 开始
end: NaN, // 结束
});
window.lastThumbnail = thumbnail;
thumbnail.on('file', function (file) {
console.log('Read video successfully: ' + file.name);
});
thumbnail.on('video', function (video) {
console.log('Video size: ' + video.videoWidth + ' x ' + video.videoHeight);
console.log('Video duration: ' + video.duration + 's');
thumbnail.start();
});
thumbnail.on('canvas', function (canvas) {
console.log('Build canvas successfully');
console.log('Canvas size: ' + canvas.width + ' x ' + canvas.height);
console.log('Preview density: ' + thumbnail.density + ' p/s');
});
thumbnail.on('update', function (url, percentage) {
console.log('Processing: ' + Math.floor(percentage.toFixed(2) * 100) + '%');
$popups.style.display = 'flex';
$popinner.style.backgroundImage = 'url(' + url + ')';
});
thumbnail.on('download', function (name) {
console.log('Start download preview: ' + name);
});
thumbnail.on('done', function () {
$popups.style.display = 'none';
thumbnail.download();
console.log('Build preview image complete');
[...Artplayer.instances].forEach(function (art) {
art.destroy(true);
});
new Artplayer({
container: $artplayer,
url: thumbnail.videoUrl,
autoSize: true,
poster: thumbnail.thumbnailUrl,
thumbnails: {
url: thumbnail.thumbnailUrl,
number: thumbnail.option.number,
column: thumbnail.option.column,
},
});
console.log('Build player complete');
});
+24
View File
@@ -0,0 +1,24 @@
// Depends on:
// https://glomex.github.io/vast-ima-player/
// https://developers.google.com/interactive-media-ads/docs/sdks/html5/client-side
// Google's IMA SDK are blocked by your Ad blocker.
// Please Turn Off Your Ad Blocker.
// npm i artplayer-plugin-vast
// import artplayerPluginVast from 'artplayer-plugin-vast';
var art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/video.mp4',
fullscreen: true,
fullscreenWeb: true,
plugins: [
artplayerPluginVast(({ playUrl, imaPlayer, ima }) => {
// Play the ad when the video is played
art.once('play', () => {
playUrl('https://artplayer.org/assets/vast/linear-ad.xml')
})
}),
],
})
+12
View File
@@ -0,0 +1,12 @@
// npm i artplayer-plugin-vtt-thumbnail
// import artplayerPluginVttThumbnail from 'artplayer-plugin-vtt-thumbnail';
const art = new Artplayer({
container: '.artplayer-app',
url: '/assets/sample/bbb-video.mp4',
plugins: [
artplayerPluginVttThumbnail({
vtt: '/assets/sample/bbb-thumbnails.vtt',
}),
],
})
+38
View File
@@ -0,0 +1,38 @@
// npm i webtorrent
// import WebTorrent from 'webtorrent';
async function playTorrent(video, url, art) {
if (WebTorrent.WEBRTC_SUPPORT) {
if (art.torrent)
art.torrent.destroy()
art.torrent = new WebTorrent()
await navigator.serviceWorker.register('/webtorrent.sw.min.js')
art.torrent.loadWorker(navigator.serviceWorker.controller)
art.torrent.add(url, (torrent) => {
const file = torrent.files.find((file) => {
return file.name.endsWith('.mp4')
})
file.streamTo(video)
})
art.on('destroy', () => art.torrent.destroy())
}
else {
art.notice.show = 'Unsupported playback format: torrent'
}
}
const art = new Artplayer({
container: '.artplayer-app',
url: 'magnet:?xt=urn:btih:08ada5a7a6183aae1e09d831df6748d566095a10&dn=Sintel&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fsintel.torrent',
type: 'torrent',
customType: {
torrent: playTorrent,
},
})
art.on('ready', () => {
console.info(art.torrent)
})
+34
View File
@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg viewBox="0 0 80 80" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<polygon id="dcacc03d-ebe2-486b-86c6-02f40070ed49" points="0 0 80 0 80 80 0 80"></polygon>
<path d="M52.5463795,8.01403034 C54.5470371,7.84763808 56.3253994,9.18911826 56.7676959,11.0911381 C56.8718466,11.5365362 56.8612939,11.8985083 56.8069245,12.2287648 C56.7500316,12.556723 56.6424397,12.8481393 56.4951605,13.110368 C56.4219797,13.2418271 56.3354933,13.3636336 56.2494657,13.4856699 L56.2494657,13.4856699 L55.9916124,13.8522385 L55.4708587,14.5816985 C54.7716265,15.5508645 54.0556475,16.50762 53.3171867,17.4480581 C53.3121398,17.4544931 53.3068634,17.4606984 53.3020459,17.4671334 C54.2015503,17.5075824 55.1010548,17.5517085 56.0005592,17.6022697 C57.096436,17.6624835 58.1918539,17.7339586 59.2877307,17.8093407 L59.2877307,17.8093407 L60.9309723,17.9320665 L61.7527078,17.9980259 L62.1635756,18.0324994 L62.3688948,18.0495064 L62.471669,18.0580098 L62.5872901,18.0699607 C63.8533868,18.1864812 65.1027368,18.520185 66.2644533,19.0451021 C67.4263993,19.5697893 68.5000236,20.2872985 69.4304979,21.1587894 C70.3609723,22.0295909 71.1487556,23.0543742 71.7511781,24.1807396 C72.3552065,25.3059558 72.7702036,26.5343627 72.9750639,27.7944854 C73.0051162,27.9514549 73.0214041,28.1100331 73.0429684,28.2681518 L73.0429684,28.2681518 L73.0581092,28.3867407 L73.0714148,28.4988946 L73.0927497,28.7045867 L73.178089,29.5271253 L73.3366092,31.1733515 C73.4377777,32.2714485 73.5267875,33.3709245 73.6061623,34.4713197 C73.9220556,38.8708323 74.0704819,43.2995325 73.9677076,47.7257047 C73.8695214,52.1475102 73.5717513,56.5518491 73.123949,60.9389512 C73.1124787,61.0662734 73.0904556,61.2356534 73.070956,61.3930826 C73.0530623,61.5521205 73.0269099,61.7104689 72.9989223,61.8683577 L72.9583172,62.1053058 L72.9083065,62.3406451 C72.8745837,62.4976146 72.8410903,62.6543543 72.7979618,62.8092554 C72.638524,63.4309282 72.4281579,64.0401904 72.1691575,64.6280791 C71.6523038,65.8043162 70.9393071,66.8927606 70.0700844,67.8368758 C69.2020087,68.7819103 68.1783951,69.5837648 67.0510896,70.1990025 C65.9240135,70.8153893 64.6934749,71.2433208 63.4282958,71.4609637 C63.2697757,71.485325 63.1117143,71.5129038 62.9525059,71.5331283 L62.9525059,71.5331283 L62.4762572,71.5859877 L61.6545217,71.6574628 L60.0108212,71.7907605 C58.9151739,71.8769444 57.8190677,71.9509475 56.723191,72.0210437 C54.5309786,72.1573291 52.3383075,72.2648865 50.1451775,72.3455546 C41.3733459,72.6696058 32.5989908,72.5652659 23.8315179,72.0442559 C22.7356412,71.9799053 21.6402232,71.9031442 20.5445759,71.8238551 L20.5445759,71.8238551 L18.9015636,71.6951539 L18.0802869,71.6264367 L17.6696486,71.5910438 L17.4643294,71.5731176 C17.3957368,71.5671422 17.3305852,71.5620861 17.2461635,71.5522036 C15.9706611,71.433155 14.7132819,71.091867 13.5460596,70.5609746 C12.3779196,70.0296225 11.3006248,69.3040695 10.368774,68.4252242 C9.4371526,67.5466086 8.64822227,66.5163096 8.04901145,65.3832794 C7.4486536,64.2513983 7.03686821,63.0188545 6.83407251,61.7557442 C6.80952597,61.5978554 6.78268537,61.4401964 6.7670857,61.2811585 L6.7670857,61.2811585 L6.7407039,61.0428314 L6.72762771,60.9240127 L6.71868084,60.8210517 L6.6475647,59.9978237 L6.51565574,58.3504483 C6.43283985,57.2518916 6.35942964,56.1524157 6.29565452,55.0522503 C6.03986583,50.6529675 5.93755035,46.2348392 6.03825998,41.8194687 C6.13667554,37.4068562 6.41012856,33.0075734 6.82604327,28.6223099 C6.94441723,27.3608083 7.26696333,26.1147049 7.78312886,24.9545555 C8.29814735,23.7937167 9.0047206,22.7195213 9.86476706,21.7871271 C10.7243547,20.8542732 11.7390214,20.0655187 12.8543978,19.4603933 C13.9695447,18.8548081 15.1865483,18.43561 16.4368159,18.2241723 C16.5935008,18.2007303 16.7494975,18.1726918 16.9068707,18.1540761 L16.9068707,18.1540761 L17.3762372,18.1030552 L18.1975139,18.0336485 L19.8398379,17.9037982 C20.9350264,17.8199126 22.0302149,17.7482077 23.1254035,17.6801799 C24.2455974,17.6123819 25.3662501,17.552398 26.4866734,17.4993087 C26.4731384,17.4823018 26.459374,17.465065 26.4458389,17.4480581 C25.7073781,16.50762 24.9911698,15.5508645 24.2919376,14.5816985 L24.2919376,14.5816985 L23.7714133,13.8522385 L23.51356,13.4856699 C23.4275324,13.3636336 23.3408166,13.2418271 23.2678652,13.110368 C23.1203565,12.8481393 23.0129941,12.556723 22.9558718,12.2287648 C22.9017318,11.8985083 22.8909496,11.5365362 22.9953298,11.0911381 C23.4527671,9.13281148 25.2740285,7.85039596 27.2166461,8.01403034 C27.6717894,8.05195123 28.0122293,8.1735279 28.3093112,8.32682022 C28.6031814,8.48195113 28.8468116,8.67408363 29.0507543,8.89540373 C29.1530698,9.00548922 29.2418502,9.12568695 29.3313189,9.24519521 L29.3313189,9.24519521 L29.6001838,9.60371998 L30.1328666,10.3244467 C30.8380634,11.289246 31.5265136,12.266226 32.1922524,13.2595235 C32.8575324,14.2532806 33.5042304,15.2605973 34.1217938,16.2890578 C34.3094487,16.6025372 34.4950388,16.9178551 34.6778761,17.2350116 C37.4016243,17.1878978 40.125143,17.1791645 42.8488911,17.1968609 C43.5962988,17.2026065 44.3441653,17.2120293 45.0918023,17.2232906 C45.2723456,16.9100411 45.4558711,16.59886 45.6410025,16.2890578 C46.2587952,15.2605973 46.9054933,14.2532806 47.5707733,1Line truncated
<filter x="-15.4%" y="-16.3%" width="130.9%" height="132.5%" filterUnits="objectBoundingBox" id="6229a4d6-d7ef-4db2-a990-2e5a9a80e5fb">
<feOffset dx="0" dy="2" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
<feGaussianBlur stdDeviation="1" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.3 0" type="matrix" in="shadowBlurOuter1" result="shadowMatrixOuter1"></feColorMatrix>
<feOffset dx="0" dy="0" in="SourceAlpha" result="shadowOffsetOuter2"></feOffset>
<feGaussianBlur stdDeviation="3.5" in="shadowOffsetOuter2" result="shadowBlurOuter2"></feGaussianBlur>
<feColorMatrix values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0.2 0" type="matrix" in="shadowBlurOuter2" result="shadowMatrixOuter2"></feColorMatrix>
<feMerge>
<feMergeNode in="shadowMatrixOuter1"></feMergeNode>
<feMergeNode in="shadowMatrixOuter2"></feMergeNode>
</feMerge>
</filter>
</defs>
<g stroke="none" stroke-width="1" fill="none" fill-rule="evenodd" opacity="0.800000012">
<g transform="translate(-674.000000, -832.000000)">
<g transform="translate(514.000000, 759.000000)">
<g transform="translate(160.000000, 73.000000)">
<mask id="6571edcb-5f96-450a-80cd-4185b762ee4d" fill="white">
<use xlink:href="#dcacc03d-ebe2-486b-86c6-02f40070ed49"></use>
</mask>
<g mask="url(#6571edcb-5f96-450a-80cd-4185b762ee4d)">
<use fill="black" fill-opacity="1" filter="url(#6229a4d6-d7ef-4db2-a990-2e5a9a80e5fb)" xlink:href="#271c2bc0-87b1-41ff-8ceb-2ef24f2896fe"></use>
<use fill="#FFFFFF" fill-rule="evenodd" xlink:href="#271c2bc0-87b1-41ff-8ceb-2ef24f2896fe"></use>
</g>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 MiB

+4
View File
@@ -0,0 +1,4 @@
<svg xmlns="http://www.w3.org/2000/svg" height="24" width="24" viewBox="0 0 48 48">
<path d="M0 0h48v48H0z" fill="none"/>
<path fill="#ffffff" d="M40 8H8c-2.21 0-4 1.79-4 4v24c0 2.21 1.79 4 4 4h32c2.21 0 4-1.79 4-4V12c0-2.21-1.79-4-4-4zM8 24h8v4H8v-4zm20 12H8v-4h20v4zm12 0h-8v-4h8v4zm0-8H20v-4h20v4z"/>
</svg>

After

Width:  |  Height:  |  Size: 318 B

File diff suppressed because it is too large. Load diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
+11
View File
@@ -0,0 +1,11 @@
"use strict";async function Module(i={}){var g,v=i,y=(...t)=>console.log(...t),h=(...t)=>console.error(...t);function T(){j?.(v)}G=(t=>()=>{t(),self.wasmMemory=B,self.HEAPU8C=new Uint8ClampedArray(B.buffer),self.HEAPU8=new Uint8Array(B.buffer)})(G);function P(t){throw t}var j,w,C,A,M,E,O,ie,oe,le=!1;function G(){var t=B.buffer;w=new Int8Array(t),A=new Int16Array(t),C=new Uint8Array(t),M=new Uint16Array(t),E=new Int32Array(t),O=new Uint32Array(t),ie=new Float32Array(t),oe=new Float64Array(t)}function $e(){{var t=62914560;B=new WebAssembly.Memory({initial:t/65536,maximum:32768})}G()}$e();var X=t=>Xe(t),Q=()=>Qe(),B,fe=new TextDecoder,Z=(t,r,n,s)=>{var o=r+n;if(s)return o;for(;t[r]&&!(r>=o);)++r;return r},q=(t,r,n)=>{if(!t)return"";var s=Z(C,t,r,n);return fe.decode(C.subarray(t,s))},Ce=(t,r,n,s)=>P(`Assertion failed: ${q(t)}, at: `+[r?q(r):"unknown filename",n,s?q(s):"unknown function"]);function _e(t,r,n){return 0}var we=(t,r,n)=>{};function tr(t,r,n){return 0}function nr(t,r,n,s){}var ar=()=>P(""),sr=(t,r,n,s,o)=>{},U=t=>{for(var r="";;){var n=C[t++];if(!n)return r;r+=String.fromCharCode(n)}},J={},K={},ue={},N=class extends Error{constructor(r){super(r),this.name="BindingError"}},$=t=>{throw new N(t)};function ir(t,r,n={}){var s=r.name;if(t||$(`type "${s}" must have a positive integer typeid pointer`),K.hasOwnProperty(t)){if(n.ignoreDuplicateRegistrations)return;$(`Cannot register type '${s}' twice`)}if(K[t]=r,delete ue[t],J.hasOwnProperty(t)){var o=J[t];delete J[t],o.forEach(l=>l())}}function L(t,r,n={}){return ir(t,r,n)}var or=(t,r,n,s)=>{r=U(r),L(t,{name:r,fromWireType:function(o){return!!o},toWireType:function(o,l){return l?n:s},readValueFromPointer:function(o){return this.fromWireType(C[o])},destructorFunction:null})},lr=t=>({count:t.count,deleteScheduled:t.deleteScheduled,preservePointerOnDelete:t.preservePointerOnDelete,ptr:t.ptr,ptrType:t.ptrType,smartPtr:t.smartPtr,smartPtrType:t.smartPtrType}),Te=t=>{function r(n){return n.$$.ptrType.registeredClass.name}$(r(t)+" instance already deleted")},Pe=!1,Me=t=>{},fr=t=>{t.smartPtr?t.smartPtrType.rawDestructor(t.smartPtr):t.ptrType.registeredClass.rawDestructor(t.ptr)},Re=t=>{t.count.value-=1;var r=t.count.value===0;r&&fr(t)},ee=t=>globalThis.FinalizationRegistry?(Pe=new FinalizationRegistry(r=>{Re(r.$$)}),ee=r=>{var n=r.$$,s=!!n.smartPtr;if(s){var o={$$:n};Pe.register(r,o,r)}return r},Me=r=>Pe.unregister(r),ee(t)):(ee=r=>r,t),ce=[],ur=()=>{for(;ce.length;){var t=ce.pop();t.$$.deleteScheduled=!1,t.delete()}},Ee,cr=()=>{let t=de.prototype;Object.assign(t,{isAliasOf(n){if(!(this instanceof de)||!(n instanceof de))return!1;var s=this.$$.ptrType.registeredClass,o=this.$$.ptr;n.$$=n.$$;for(var l=n.$$.ptrType.registeredClass,u=n.$$.ptr;s.baseClass;)o=s.upcast(o),s=s.baseClass;for(;l.baseClass;)u=l.upcast(u),l=l.baseClass;return s===l&&o===u},clone(){if(this.$$.ptr||Te(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var n=ee(Object.create(Object.getPrototypeOf(this),{$$:{value:lr(this.$$)}}));return n.$$.count.value+=1,n.$$.deleteScheduled=!1,n},delete(){this.$$.ptr||Te(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&$("Object already scheduled for deletion"),Me(this),Re(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)},isDeleted(){return!this.$$.ptr},deleteLater(){return this.$$.ptr||Te(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&$("Object already scheduled for deletion"),ce.push(this),ce.length===1&&Ee&&Ee(ur),this.$$.deleteScheduled=!0,this}});const r=Symbol.dispose;r&&(t[r]=t.delete)};function de(){}var ke=(t,r)=>Object.defineProperty(r,"name",{value:t}),We={},Ue=(t,r,n)=>{if(t[r].overloadTable===void 0){var s=t[r];t[r]=function(...o){return t[r].overloadTable.hasOwnProperty(o.length)||$(`Function '${n}' called with an invalid number of arguments (${o.length}) - expects one of (${t[r].overloadTable})!`),t[r].overloadTable[o.length].apply(this,o)},t[r].overloadTable=[],t[r].overloadTable[s.argCount]=s}},dr=(t,r,n)=>{v.hasOwnProperty(t)?((n===void 0||v[t].overloadTable!==void 0&&v[t].overloadTable[n]!==void 0)&&$(`Cannot register public name '${t}' twice`),Ue(v,t,t),v[t].overloadTable.hasOwnProperty(n)&&$(`Cannot register multiple overloads of a function with the same number of arguments (${n})!`),v[t].overloadTable[n]=r):(v[t]=r,v[t].argCount=n)},vr=48,pr=57,gr=t=>{t=t.replace(/[^a-zA-Z0-9_]/g,"$");var r=t.charCodeAt(0);return r>=vr&&r<=pr?`_${t}`:t};function br(t,r,n,s,o,l,u,f){this.name=t,this.constructor=r,this.instancePrototype=n,this.rawDestructor=s,this.baseClass=o,this.getActualType=l,this.upcast=u,this.downcast=f,this.pureVirtualFunctions=[]}var ve=(t,r,n)=>{for(;r!==n;)r.upcast||$(`Expected null or instance of ${n.name}, got an instance of ${r.name}`),t=r.upcast(t),r=r.baseClass;return t},je=t=>{if(t===null)return"null";var r=typeof t;return r==="object"||r==="array"||r==="function"?t.toString():""+t};function hr(t,r){if(r===null)return this.isReferencLine truncated
`;o&&(m+=`var destructors = [];
`);var _=o?"destructors":"null",S=["humanName","throwBindingError","invoker","fn","runDestructors","fromRetWire","toClassParamWire"];r&&(m+=`var thisWired = toClassParamWire(${_}, this);
`);for(var p=0;p<l;++p){var R=`toArg${p}Wire`;m+=`var arg${p}Wired = ${R}(${_}, arg${p});
`,S.push(R)}if(m+=(n||s?"var rv = ":"")+`invoker(${f});
`,o)m+=`runDestructors(destructors);
`;else for(var p=r?1:2;p<t.length;++p){var F=p===1?"thisWired":"arg"+(p-2)+"Wired";t[p].destructorFunction!==null&&(m+=`${F}_dtor(${F});
`,S.push(`${F}_dtor`))}return n&&(m+=`var ret = fromRetWire(rv);
return ret;
`),m+=`}
`,new Function(S,m)}function He(t,r,n,s,o,l){var u=r.length;u<2&&$("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var f=r[1]!==null&&n!==null,p=xe(r),m=!r[0].isVoid,_=r[0],S=r[1],R=[t,$,s,o,Le,_.fromWireType.bind(_),S?.toWireType.bind(S)],F=2;F<u;++F){var k=r[F];R.push(k.toWireType.bind(k))}if(!p)for(var F=f?1:2;F<r.length;++F)r[F].destructorFunction!==null&&R.push(r[F].destructorFunction);var x=Er(r,f,m,l)(...R);return ke(t,x)}var kr=(t,r,n,s,o,l)=>{var u=Be(r,n);o=H(s,o),z([],[t],f=>{f=f[0];var p=`constructor ${f.name}`;if(f.registeredClass.constructor_body===void 0&&(f.registeredClass.constructor_body=[]),f.registeredClass.constructor_body[r-1]!==void 0)throw new N(`Cannot register multiple constructors with identical number of parameters (${r-1}) for class '${f.name}'! Overload resolution is currently only performed using the parameter count, not actual type info!`);return f.registeredClass.constructor_body[r-1]=()=>{te(`Cannot construct ${f.name} due to unbound types`,u)},z([],u,m=>(m.splice(1,0,null),f.registeredClass.constructor_body[r-1]=He(p,m,null,o,l),[])),[]})},Wr=t=>{t=t.trim();const r=t.indexOf("(");return r===-1?t:t.slice(0,r)},Ur=(t,r,n,s,o,l,u,f,p,m)=>{var _=Be(n,s);r=U(r),r=Wr(r),l=H(o,l,p),z([],[t],S=>{S=S[0];var R=`${S.name}.${r}`;r.startsWith("@@")&&(r=Symbol[r.substring(2)]),f&&S.registeredClass.pureVirtualFunctions.push(r);function F(){te(`Cannot call ${R} due to unbound types`,_)}var k=S.registeredClass.instancePrototype,D=k[r];return D===void 0||D.overloadTable===void 0&&D.className!==S.name&&D.argCount===n-2?(F.argCount=n-2,F.className=S.name,k[r]=F):(Ue(k,r,R),k[r].overloadTable[n-2]=F),z([],_,x=>{var I=He(R,x,S,l,u,p);return k[r].overloadTable===void 0?(I.argCount=n-2,k[r]=I):k[r].overloadTable[n-2]=I,[]}),[]})},Ve=(t,r,n)=>(t instanceof Object||$(`${n} with invalid "this": ${t}`),t instanceof r.registeredClass.constructor||$(`${n} incompatible with "this" of type ${t.constructor.name}`),t.$$.ptr||$(`cannot call emscripten binding method ${n} on deleted object`),ve(t.$$.ptr,t.$$.ptrType.registeredClass,r.registeredClass)),Dr=(t,r,n,s,o,l,u,f,p,m)=>{r=U(r),o=H(s,o),z([],[t],_=>{_=_[0];var S=`${_.name}.${r}`,R={get(){te(`Cannot access ${S} due to unbound types`,[n,u])},enumerable:!0,configurable:!0};return p?R.set=()=>te(`Cannot access ${S} due to unbound types`,[n,u]):R.set=F=>$(S+" is a read-only property"),Object.defineProperty(_.registeredClass.instancePrototype,r,R),z([],p?[n,u]:[n],F=>{var k=F[0],D={get(){var I=Ve(this,_,S+" getter");return k.fromWireType(o(l,I))},enumerable:!0};if(p){p=H(f,p);var x=F[1];D.set=function(I){var se=Ve(this,_,S+" setter"),W=[];p(m,se,x.toWireType(W,I)),Le(W)}}return Object.defineProperty(_.registeredClass.instancePrototype,r,D),[]}),[]})},ze=[],Y=[0,1,,1,null,1,!0,1,!1,1],Ir=t=>{t>9&&--Y[t+1]===0&&(Y[t]=void 0,ze.push(t))},Fe={toValue:t=>(t||$(`Cannot use deleted val. handle = ${t}`),Y[t]),toHandle:t=>{switch(t){case void 0:return 2;case null:return 4;case!0:return 6;case!1:return 8;default:{const r=ze.pop()||Y.length;return Y[r]=t,Y[r+1]=1,r}}}},Br={name:"emscripten::val",fromWireType:t=>{var r=Fe.toValue(t);return Ir(t),r},toWireType:(t,r)=>Fe.toHandle(r),readValueFromPointer:pe,destructorFunction:null},Lr=t=>L(t,Br),xr=(t,r)=>{switch(r){case 4:return function(n){return this.fromWireType(ie[n>>2])};case 8:return function(n){return this.fromWireType(oe[n>>3])};default:throw new TypeError(`invalid float width (${r}): ${t}`)}},Hr=(t,r,n)=>{r=U(r),L(t,{name:r,fromWireType:s=>s,toWireType:(s,o)=>o,readValueFromPointer:xr(r,n),destructorFunction:null})},Vr=(t,r,n)=>{switch(r){case 1:return n?s=>w[s]:s=>C[s];case 2:return n?s=>A[s>>1]:s=>M[s>>1];case 4:return n?s=>E[s>>2]:s=>O[s>>2];default:throw new TypeError(`invalid integer width (${r}): ${t}`)}},zr=(t,r,n,s,o)=>{r=U(r);const l=s===0;let u=p=>p;if(l){var f=32-8*n;u=p=>p<<f>>>f,o=u(o)}L(t,{name:r,fromWireType:u,toWireType:(p,m)=>m,readValueFromPointer:Vr(r,n,s!==0),destructorFunction:null})},Gr=(t,r,n)=>{var s=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],o=s[r];function l(u){var f=O[u>>2],p=O[u+4>>2];return new o(w.buffer,p,f)}n=U(n),L(t,{name:n,fromWireType:l,readValueFromPointer:l},{ignoreDuplicateRegistrations:!0})},qr=(t,r,n,s)=>{if(!(s>0))return 0;for(var o=n,l=n+s-1,u=0;u<t.length;++u){var f=t.codePointAt(u);if(f<=127){if(n>=l)break;r[n++]=f}else if(f<=2047){if(n+1>=l)break;r[n++]=192|f>>6,r[n++]=128|f&63}else if(f<=65535){if(n+2>=l)break;r[n++]=224|f>>12,r[n++]=128|f>>6&63,r[n++]=128|f&63}else{if(n+3>=l)break;r[n++]=240|f>>18,r[n++]=128|f>>12&63,r[n++]=128|f>>6&63,r[n++]=128|f&63,u++}}return r[n]=0,n-o},Ge=(t,r,n)=>qr(t,C,r,n),qe=t=>{for(var r=0,n=0;n<t.length;++n){var s=t.charCodeAt(n);s<=127?r++:s<=2047?r+=2:s>=55296&&s<=57343?(r+=4,++n):r+=3}return r},Jr=(t,r)=>{r=U(r),L(t,{name:r,fromWireType(n){var s=O[n>>2],o=n+4,l;return l=q(o,s,!0),V(n),l},toWireType(n,s){s instanceof ArrayBuffer&&(s=new Uint8Arr Line truncated
Binary file not shown.
+290 -215
View File
@@ -1,237 +1,312 @@
(function () {
var userAgent = window.navigator.userAgent;
var isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(userAgent);
var isIE = /MSIE|Trident/.test(userAgent);
Artplayer.DEBUG = true
if (isMobile || isIE) {
window.location.href = './mobile.html';
return;
if (Artplayer.utils.isMobile) {
window.location.href = `./mobile.html${location.search}`
}
let $codeMirror = document.querySelector('.codeMirrorWrap')
let $lib = document.querySelector('.libsInput')
let $run = document.querySelector('.run')
let $popups = document.querySelector('.popups')
let $console = document.querySelector('.console')
let $prod = document.querySelector('#prod')
let $ts = document.querySelector('#ts')
let $code = document.querySelector('#code')
let $log = document.querySelector('#log')
let $file = document.querySelector('#file')
let $editor = document.querySelector('#editor')
window.consoleLog($console)
// Helper functions for localStorage
const getStorageBoolean = (key) => localStorage.getItem(key) === 'true'
const setStorageBoolean = (key, value) => localStorage.setItem(key, value ? 'true' : 'false')
$prod.checked = getStorageBoolean('prod')
$ts.checked = getStorageBoolean('ts')
$code.checked = getStorageBoolean('code')
$log.checked = getStorageBoolean('log')
if ($code.checked) {
$editor.style.display = 'none'
}
if ($log.checked) {
$console.style.display = 'none'
}
let editor = null
let loadedLibs = []
require.config({ paths: { vs: './assets/js/vs' } })
require(['vs/editor/editor.main'], async () => {
monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({
noSemanticValidation: true,
noSyntaxValidation: false,
})
monaco.languages.typescript.javascriptDefaults.setCompilerOptions({
target: monaco.languages.typescript.ScriptTarget.ES6,
allowNonTsExtensions: true,
})
let libUris = [
'./assets/ts/artplayer-plugin-ads.d.ts',
'./assets/ts/artplayer-plugin-ambilight.d.ts',
'./assets/ts/artplayer-plugin-asr.d.ts',
'./assets/ts/artplayer-plugin-audio-track.d.ts',
'./assets/ts/artplayer-plugin-auto-thumbnail.d.ts',
'./assets/ts/artplayer-plugin-chapter.d.ts',
'./assets/ts/artplayer-plugin-chromecast.d.ts',
'./assets/ts/artplayer-plugin-danmuku-mask.d.ts',
'./assets/ts/artplayer-plugin-danmuku.d.ts',
'./assets/ts/artplayer-plugin-dash-control.d.ts',
'./assets/ts/artplayer-plugin-document-pip.d.ts',
'./assets/ts/artplayer-plugin-hls-control.d.ts',
'./assets/ts/artplayer-plugin-jassub.d.ts',
'./assets/ts/artplayer-plugin-multiple-subtitles.d.ts',
'./assets/ts/artplayer-plugin-vast.d.ts',
'./assets/ts/artplayer-plugin-vtt-thumbnail.d.ts',
'./assets/ts/artplayer-proxy-canvas.d.ts',
'./assets/ts/artplayer-proxy-mediabunny.d.ts',
'./assets/ts/artplayer-tool-iframe.d.ts',
'./assets/ts/artplayer.d.ts',
]
for (let index = 0; index < libUris.length; index++) {
let libUri = libUris[index]
let libSource = await (await fetch(libUri)).text()
monaco.languages.typescript.javascriptDefaults.addExtraLib(libSource, libUri)
monaco.editor.createModel(libSource, 'typescript', monaco.Uri.parse(libUri))
}
var $codeMirror = document.querySelector('.codeMirrorWrap');
var $lib = document.querySelector('.libsInput');
var $run = document.querySelector('.run');
var $popups = document.querySelector('.popups');
var $console = document.querySelector('.console');
var loaddLib = [];
const disposable = monaco.editor.onDidCreateEditor(() => {
disposable.dispose()
setTimeout(initApp, 1000)
})
window.consoleLog($console);
editor = monaco.editor.create($codeMirror, {
theme: 'vs-dark',
folding: true,
automaticLayout: true,
quickSuggestions: {
other: true,
comments: true,
strings: true,
},
model: monaco.editor.createModel(
[
'var art = new Artplayer({',
'\tcontainer: \'.artplayer-app\',',
'\turl: \'/assets/sample/video.mp4\',',
'});',
].join('\n'),
$ts.checked ? 'typescript' : 'javascript',
),
})
})
var editor = null;
require.config({ paths: { vs: './assets/js/vs' } });
require(['vs/editor/editor.main'], function () {
var libUri = './assets/ts/artplayer.d.ts';
fetch(libUri)
.then((res) => res.text())
.then((libSource) => {
monaco.languages.typescript.javascriptDefaults.setDiagnosticsOptions({
noSemanticValidation: true,
noSyntaxValidation: false,
});
function getURLParameters(url) {
return (url.match(/([^?=&]+)(=([^&]*))/g) || []).reduce((params, pair) => {
const index = pair.indexOf('=')
params[pair.slice(0, index)] = pair.slice(index + 1)
return params
}, {})
}
monaco.languages.typescript.javascriptDefaults.setCompilerOptions({
target: monaco.languages.typescript.ScriptTarget.ES6,
allowNonTsExtensions: true,
});
monaco.languages.typescript.javascriptDefaults.addExtraLib(libSource, libUri);
monaco.editor.createModel(libSource, 'typescript', monaco.Uri.parse(libUri));
var disposable = monaco.editor.onDidCreateEditor(function () {
disposable.dispose();
setTimeout(initApp, 1000);
});
editor = monaco.editor.create($codeMirror, {
theme: 'vs-dark',
automaticLayout: true,
model: monaco.editor.createModel(
[
'var art = new Artplayer({',
"\tcontainer: '.artplayer-app',",
"\turl: 'https://artplayer.org/assets/sample/video.mp4',",
'});',
].join('\n'),
'javascript',
),
});
});
});
function initArt(art) {
Artplayer.config.events.forEach(function (item) {
art &&
art.on('video:' + item, function (event) {
console.log('video: ' + event.type);
});
});
function getExt(url) {
if (url.includes('?')) {
return getExt(url.split('?')[0])
}
function getURLParameters(url) {
return (url.match(/([^?=&]+)(=([^&]*))/g) || []).reduce(function (a, v) {
return (a[v.slice(0, v.indexOf('='))] = v.slice(v.indexOf('=') + 1)), a;
}, {});
if (url.includes('#')) {
return getExt(url.split('#')[0])
}
function getExt(url) {
if (url.includes('?')) {
return getExt(url.split('?')[0]);
}
return url.trim().toLowerCase().split('.').pop()
}
if (url.includes('#')) {
return getExt(url.split('#')[0]);
}
function loadScript(url) {
return new Promise((resolve, reject) => {
const originalDefine = window.define
window.define = undefined
const script = document.createElement('script')
script.type = 'text/javascript'
script.src = url
script.onload = () => {
window.define = originalDefine
resolve(url)
}
script.onerror = () => {
window.define = originalDefine
reject(new Error(`Loading script failed: ${url}`))
}
document.head.appendChild(script)
})
}
return url.trim().toLowerCase().split('.').pop();
function loadStyle(url) {
return new Promise((resolve, reject) => {
const link = document.createElement('link')
link.rel = 'stylesheet'
link.href = url
link.onload = () => resolve(url)
link.onerror = () => reject(new Error(`Loading style failed: ${url}`))
document.head.appendChild(link)
})
}
function loadLib(libs) {
const libPromises = []
const libsDecoded = decodeURIComponent(libs || '')
const urls = libsDecoded
.split(/\r?\n/)
.filter((url) => url.trim() && !loadedLibs.includes(url))
urls.forEach((url) => {
const ext = getExt(url)
if (ext === 'js') {
libPromises.push(loadScript(url))
} else if (ext === 'css') {
libPromises.push(loadStyle(url))
}
})
$lib.value = libsDecoded
return Promise.all(libPromises)
}
function runExample(name) {
fetch(`./assets/example/${name}.js`)
.then((response) => {
return response.text()
})
.then((text) => {
editor.setValue(text)
runCode()
})
.catch((err) => {
console.error(err)
})
}
function loadCode(code, example) {
if (example) {
runExample(example)
}
function loadScript(url) {
return new Promise(function (resolve, reject) {
var define2 = window.define;
window.define = undefined;
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
script.onload = function () {
window.define = define2;
resolve(url);
};
script.onerror = function () {
reject(new Error('Loading script failed:' + url));
};
document.querySelector('head').appendChild(script);
});
else if (code) {
editor.setValue(decodeURIComponent(code).trim())
runCode()
}
function loadStyle(url) {
return new Promise(function (resolve, reject) {
var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = url;
link.onload = function () {
resolve(url);
};
link.onerror = function () {
reject(new Error('Loading style failed:' + url));
};
document.querySelector('head').appendChild(link);
});
else {
runExample('index')
}
}
function loadLib(libs) {
var libPromise = [];
var libsDecode = decodeURIComponent(libs || '');
libsDecode
.split(/\r?\n/)
.filter(function (url) {
return !loaddLib.includes(url);
})
.forEach(function (url) {
var ext = getExt(url);
if (ext === 'js') {
libPromise.push(loadScript(url));
} else if (ext === 'css') {
libPromise.push(loadStyle(url));
}
});
$lib.value = libsDecode;
return Promise.all(libPromise);
function runCode() {
// Destroy all existing instances
Artplayer.instances.forEach((art) => art.destroy(true))
const value = editor.getValue()
eval(value)
window.art = Artplayer.instances[0]
}
function initApp() {
const urlParams = getURLParameters(window.location.href)
const { code, libs, example } = urlParams
loadLib(libs)
.then((result) => {
loadedLibs.push(...result)
loadCode(code, example)
})
.catch((err) => {
console.error('Failed to initialize app:', err)
})
}
function restart() {
const libs = encodeURIComponent($lib.value)
const code = encodeURIComponent(editor.getValue())
const url = `${window.location.origin}${window.location.pathname}?libs=${libs}&code=${code}`
history.pushState(null, null, url)
initApp()
}
function readFile(file) {
return new Promise((resolve) => {
const reader = new FileReader()
reader.onload = () => resolve(reader.result)
reader.readAsText(file)
})
}
$run.addEventListener('click', () => {
restart()
})
$popups.addEventListener('click', function (event) {
if (event.target === this) {
this.style.display = 'none'
}
})
function runExample(name) {
fetch('./assets/example/' + name + '.js')
.then(function (response) {
return response.text();
})
.then(function (text) {
editor.setValue(text);
runCode();
})
.catch(function (err) {
console.error(err);
});
$prod.addEventListener('change', () => {
setStorageBoolean('prod', $prod.checked)
window.location.reload()
})
$ts.addEventListener('change', () => {
setStorageBoolean('ts', $ts.checked)
window.location.reload()
})
$code.addEventListener('change', () => {
setStorageBoolean('code', $code.checked)
window.location.reload()
})
$log.addEventListener('change', () => {
setStorageBoolean('log', $log.checked)
window.location.reload()
})
$file.addEventListener('change', async () => {
for (let index = 0; index < $file.files.length; index++) {
const file = $file.files[index]
const name = file.name.toLowerCase().trim()
if (name.endsWith('.css')) {
const text = await readFile(file)
const $style = document.createElement('style')
$style.textContent = text
document.body.appendChild($style)
$lib.value = `\n[${name}]`
$lib.value = $lib.value.trim()
}
if (name.endsWith('.js')) {
const text = await readFile(file)
const $script = document.createElement('script')
$script.textContent = text
document.body.appendChild($script)
$lib.value = `\n[${name}]`
$lib.value = $lib.value.trim()
}
}
})
function loadCode(code, example) {
if (example) {
runExample(example);
} else if (code) {
editor.setValue(decodeURIComponent(code).trim());
runCode();
} else {
runExample('index');
}
window.addEventListener('error', (err) => {
console.error(err)
})
window.addEventListener('unhandledrejection', (err) => {
console.error(err)
})
document.addEventListener('keydown', (event) => {
if ((event.ctrlKey || event.metaKey) && event.key === 's') {
event.preventDefault()
restart()
}
function formatDate(date) {
var date = new Date(Number(date));
var YY = date.getFullYear() + '-';
var MM = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
var DD = date.getDate() < 10 ? '0' + date.getDate() : date.getDate();
var hh = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
var mm = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
var ss = date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds();
return YY + MM + DD + ' ' + hh + mm + ss;
}
function runCode() {
Artplayer.instances.forEach(function (art) {
art.destroy(true);
});
var code = editor.getValue();
eval(code);
initArt(Artplayer.instances[0]);
console.debug('Artplayer@' + Artplayer.version);
console.debug('Env@' + Artplayer.env);
console.debug('Build@' + formatDate(Artplayer.build));
}
function initApp() {
var _getURLParameters = getURLParameters(window.location.href),
code = _getURLParameters.code,
libs = _getURLParameters.libs;
example = _getURLParameters.example;
loadLib(libs)
.then(function (result) {
loaddLib = loaddLib.concat(result);
loadCode(code, example);
})
.catch(function (err) {
console.error(err);
});
}
function restart() {
var libs = encodeURIComponent($lib.value);
var code = encodeURIComponent(editor.getValue());
var url = window.location.origin + window.location.pathname + '?libs=' + libs + '&code=' + code;
history.pushState(null, null, url);
initApp();
}
$run.addEventListener('click', function () {
restart();
});
$popups.addEventListener('click', function (event) {
if (event.target === this) {
this.style.display = 'none';
}
});
window.addEventListener('error', function (err) {
console.error(err);
});
window.addEventListener('unhandledrejection', function (err) {
console.error(err);
});
document.addEventListener('keydown', function (event) {
if ((event.ctrlKey || event.metaKey) && event.key === 's') {
event.preventDefault();
restart();
}
});
})();
})
})()
+97 -67
View File
@@ -1,70 +1,100 @@
var vConsole = new VConsole();
(function () {
Artplayer.DEBUG = true;
var art = new Artplayer({
container: '.artplayer-app',
url: 'https://artplayer.org/assets/sample/video.mp4',
title: 'One More Time One More Chance',
poster: '/assets/sample/poster.jpg',
autoSize: true,
loop: true,
mutex: true,
theme: '#ff0057',
fullscreen: true,
fullscreenWeb: true,
miniProgressBar: true,
moreVideoAttr: {
playsInline: true,
'webkit-playsinline': true,
'x5-video-player-type': 'h5',
'x5-video-player-fullscreen': false,
'x5-video-orientation': 'portraint',
},
subtitle: {
url: '/assets/sample/subtitle.srt',
style: {
color: '#fff',
fontSize: '14px',
},
},
layers: [
{
html: `<img width="50" src="/assets/sample/layer.png">`,
click: function () {
console.info('You clicked on the custom layer');
},
style: {
position: 'absolute',
top: '10px',
right: '10px',
opacity: '.9',
},
},
],
icons: {
loading: '<img src="/assets/img/ploading.gif">',
state: '<img width="150" heigth="150" src="/assets/img/state.svg">',
indicator: '<img width="16" heigth="16" src="/assets/img/indicator.svg">',
},
plugins: [
artplayerPluginDanmuku({
danmuku: '/assets/sample/danmuku.xml',
speed: 5,
maxlength: 100,
margin: [10, 70],
opacity: 1,
fontSize: 14,
synchronousPlayback: false,
}),
],
whitelist: ['*'],
});
function getURLParameters(url) {
return (url.match(/([^?=&]+)(=([^&]*))/g) || []).reduce(function (a, v) {
return (a[v.slice(0, v.indexOf('='))] = v.slice(v.indexOf('=') + 1)), a;
}, {});
}
Artplayer.config.events.forEach(function (item) {
art.on('video:' + item, function (event) {
console.log('video: ' + event.type);
});
});
function getExt(url) {
if (url.includes('?')) {
return getExt(url.split('?')[0]);
}
if (Artplayer.utils.isWechat) {
document.querySelector('.tip').textContent = '微信环境需手动触发播放';
}
if (url.includes('#')) {
return getExt(url.split('#')[0]);
}
return url.trim().toLowerCase().split('.').pop();
}
function loadScript(url) {
return new Promise(function (resolve, reject) {
var define2 = window.define;
window.define = undefined;
var script = document.createElement('script');
script.type = 'text/javascript';
script.src = url;
script.onload = function () {
window.define = define2;
resolve(url);
};
script.onerror = function () {
reject(new Error('Loading script failed:' + url));
};
document.querySelector('head').appendChild(script);
});
}
function loadStyle(url) {
return new Promise(function (resolve, reject) {
var link = document.createElement('link');
link.rel = 'stylesheet';
link.href = url;
link.onload = function () {
resolve(url);
};
link.onerror = function () {
reject(new Error('Loading style failed:' + url));
};
document.querySelector('head').appendChild(link);
});
}
function loadLib(libs) {
var libPromise = [];
var libsDecode = decodeURIComponent(libs || '');
libsDecode
.split(/\r?\n/)
.forEach(function (url) {
var ext = getExt(url);
if (ext === 'js') {
libPromise.push(loadScript(url));
} else if (ext === 'css') {
libPromise.push(loadStyle(url));
}
});
return Promise.all(libPromise);
}
function runExample(name) {
fetch('./assets/example/' + name + '.js')
.then(function (response) {
return response.text();
})
.then(function (text) {
eval(text);
})
}
function loadCode(code, example) {
if (example) {
runExample(example);
} else if (code) {
eval(decodeURIComponent(code).trim());
} else {
runExample('mobile');
}
}
var _getURLParameters = getURLParameters(window.location.href),
code = _getURLParameters.code,
libs = _getURLParameters.libs;
example = _getURLParameters.example;
loadLib(libs)
.then(function () {
loadCode(code, example);
})
})();
-13
View File
@@ -1,13 +0,0 @@
/**
* core-js 3.19.2
* https://github.com/zloirock/core-js
* License: http://rock.mit-license.org
* © 2021 Denis Pushkarev (zloirock.ru)
*/
!function(t){"use strict";var r,e,n;r=[function(t,r,e){e(1),e(84),e(85),e(86),e(87),e(88),e(89),e(90),e(91),e(92),e(93),e(94),e(95),e(96),e(97),e(98),e(113),e(115),e(117),e(119),e(121),e(123),e(124),e(125),e(126),e(128),e(129),e(131),e(135),e(136),e(137),e(138),e(142),e(143),e(145),e(146),e(147),e(150),e(151),e(152),e(153),e(154),e(159),e(161),e(162),e(163),e(164),e(171),e(173),e(176),e(177),e(178),e(179),e(180),e(181),e(185),e(186),e(188),e(189),e(190),e(192),e(193),e(194),e(195),e(196),e(197),e(205),e(207),e(208),e(209),e(211),e(212),e(214),e(215),e(217),e(218),e(219),e(220),e(221),e(222),e(223),e(224),e(225),e(226),e(227),e(231),e(232),e(234),e(236),e(237),e(238),e(239),e(240),e(242),e(244),e(245),e(246),e(248),e(249),e(251),e(252),e(253),e(254),e(256),e(257),e(258),e(259),e(260),e(261),e(262),e(263),e(265),e(266),e(267),e(268),e(269),e(270),e(271),e(272),e(273),e(274),e(276),e(277),e(278),e(279),e(291),e(292),e(293),e(294),e(295),e(296),e(297),e(298),e(300),e(301),e(302),e(303),e(304),e(305),e(306),e(307),e(308),e(309),e(315),e(316),e(318),e(319),e(320),e(321),e(322),e(323),e(324),e(326),e(329),e(330),e(331),e(332),e(336),e(337),e(339),e(340),e(341),e(342),e(344),e(345),e(346),e(347),e(348),e(349),e(351),e(352),e(353),e(356),e(357),e(358),e(359),e(360),e(361),e(362),e(363),e(364),e(365),e(366),e(367),e(368),e(374),e(375),e(376),e(377),e(378),e(379),e(380),e(381),e(382),e(383),e(384),e(385),e(386),e(390),e(391),e(392),e(393),e(394),e(395),e(396),e(397),e(398),e(399),e(400),e(401),e(402),e(403),e(404),e(405),e(406),e(407),e(408),e(409),e(410),e(411),e(412),e(414),e(415),e(416),e(423),e(424),e(425),e(426),e(428),e(429),e(431),e(432),e(433),e(434),e(436),e(437),e(439),e(440),e(441),e(442),e(443),e(444),e(445),e(446),e(447),e(448),e(449),e(450),e(451),e(453),e(455),e(456),e(457),e(458),e(460),e(461),e(462),e(463),e(464),e(465),e(466),e(467),e(468),e(469),e(470),e(471),e(472),e(474),e(476),e(478),e(479),e(480),e(481),e(483),e(484),e(486),e(487),e(488),e(489),e(490),e(491),e(493),e(494),e(495),e(496),e(498),e(499),e(500),e(501),e(502),e(504),e(505),e(506),e(507),e(508),e(509),e(510),e(511),e(512),e(513),e(514),e(515),e(516),e(518),e(519),e(520),e(521),e(522),e(523),e(524),e(526),e(527),e(528),e(529),e(530),e(531),e(532),e(533),e(534),e(536),e(537),e(538),e(540),e(541),e(542),e(543),e(544),e(545),e(546),e(547),e(548),e(549),e(550),e(551),e(552),e(553),e(554),e(555),e(556),e(557),e(558),e(559),e(560),e(561),e(562),e(563),e(564),e(565),e(566),e(567),e(568),e(569),e(570),e(571),e(572),e(573),e(574),e(575),e(576),e(577),e(578),e(579),e(580),e(581),e(582),e(585),e(586),e(587),e(588),e(589),e(593),t.exports=e(592)},function(r,e,n){var o,i=n(2),a=n(3),u=n(20),f=n(62),c=n(7),s=n(12),l=n(32),h=n(5),p=n(23),g=n(6),v=n(35),d=n(63),y=n(18),m=n(17),x=n(21),b=n(19),w=n(42),S=n(36),A=n(10),I=n(15),E=n(64),R=n(9),T=n(67),O=n(69),M=n(52),P=n(71),j=n(60),N=n(4),k=n(41),_=n(8),U=n(74),L=n(43),D=n(31),C=n(47),B=n(48),z=n(37),W=n(30),q=n(75),G=n(76),V=n(78),Y=n(45),K=n(79).forEach,H=C("hidden"),$="Symbol",J=W("toPrimitive"),X=Y.set,Q=Y.getterFor($),Z=Object.prototype,tt=a.Symbol,rt=tt&&tt.prototype,et=a.TypeError,nt=a.QObject,ot=u("JSON","stringify"),it=N.f,ut=k.f,ft=P.f,ct=_.f,st=s([].push),lt=D("symbols"),ht=D("op-symbols"),pt=D("string-to-symbol-registry"),gt=D("symbol-to-string-registry"),vt=D("wks"),dt=!nt||!nt.prototype||!nt.prototype.findChild,yt=h&&g((function(){return 7!=T(ut({},"a",{get:function(){return ut(this,"a",{value:7}).a}})).a}))?function(t,r,e){var n=it(Z,r);n&&delete Z[r],ut(t,r,e),n&&t!==Z&&ut(Z,r,n)}:ut,wrap=function(t,r){var e=lt[t]=T(rt);return X(e,{type:$,tag:t,description:r}),h||(e.description=r),e},mt=function defineProperty(t,r,e){t===Z&&mt(ht,r,e),w(t);var n=I(r);return w(e),v(lt,n)?(e.enumerable?(v(t,H)&&t[H][n]&&(t[H][n]=!1),e=T(e,{enumerable:R(0,!1)})):(v(t,H)||ut(t,H,R(1,{})),t[H][n]=!0),yt(t,n,e)):ut(t,n,e)},xt=function defineProperties(t,r){var e,n;return w(t),e=A(r),n=O(e).concat(At(e)),K(n,(function(r){h&&!c(bt,e,r)||mt(t,r,e[r])})),t},bt=function propertyIsEnumerable(t){var r=I(t),e=c(ct,this,r);return!(this===Z&&v(lt,r)&&!v(ht,r))&&(!(e||!v(this,r)||!v(lt,r)||v(this,H)&&this[H][r])||e)},wt=function getOwnPropertyDescriptor(t,r){var e,n=A(t),o=I(r);if(n!==Z||!v(lt,o)||v(ht,o))return!(e=it(n,o))||!v(lt,o)||v(n,H)&&n[H][o]||(e.enumerable=!0),e},St=function getOwnPropertyNames(t){var r=ft(A(t)),e=[];return K(r,(function(t){v(lt,t)||v(B,t)||st(e,t)})),e},At=function getOwnPropertySymbols(t){var r=t===Z,e=ft(r?ht:A(t)),n=[];return K(e,(function(t){!v(lt,t)||r&&!v(Z,t)||st(n,lt[t])})),n};p||(tt=function Symbol(){var r,e,n;if(x(rt,this))throw et("Symbol is not a constructor");return r=arguments.length&&arguments[0]!==t?E(arguments[0]):t,e=z(r),n=function(t){this===Z&&c(n,ht,t),v(this,H)&&v(this[H],e)&&(this[H][e]=!1),yt(this,e,R(1,t))},h&&dt&&yt(Z,e,{configurable:!0,set:n}),wrap(e,r)},L(rt=tt.prototype,"toString",(function toString(){return Q(this).tag})),L(tt,"withoutSetter",(function(t){return wrapLine truncated
})}),(function(){var r=l(this),e=r.target,n=r.kind,o=r.index++;return!e||o>=e.length?(r.target=t,{value:t,done:!0}):"keys"==n?{value:o,done:!1}:"values"==n?{value:e[o],done:!1}:{value:[o,e[o]],done:!1}}),"values"),a.Arguments=a.Array,i("keys"),i("values"),i("entries")},function(t,r,e){var n=e(2),o=e(7),i=e(32),a=e(49),u=e(18),f=e(140),c=e(99),s=e(101),l=e(78),h=e(40),p=e(43),g=e(30),v=e(107),d=e(141),y=a.PROPER,m=a.CONFIGURABLE,x=d.IteratorPrototype,b=d.BUGGY_SAFARI_ITERATORS,w=g("iterator"),S="keys",A="values",I="entries",returnThis=function(){return this};t.exports=function(t,r,e,a,g,d,E){var R,T,O,M,P,j,N,k,_,U;if(f(e,r,a),R=function(t){if(t===g&&j)return j;if(!b&&t in M)return M[t];switch(t){case S:return function keys(){return new e(this,t)};case A:return function values(){return new e(this,t)};case I:return function entries(){return new e(this,t)}}return function(){return new e(this)}},T=r+" Iterator",O=!1,P=(M=t.prototype)[w]||M["@@iterator"]||g&&M[g],j=!b&&P||R(g),(N="Array"==r&&M.entries||P)&&(k=c(N.call(new t)))!==Object.prototype&&k.next&&(i||c(k)===x||(s?s(k,x):u(k[w])||p(k,w,returnThis)),l(k,T,!0,!0),i&&(v[T]=returnThis)),y&&g==A&&P&&P.name!==A&&(!i&&m?h(M,"name",A):(O=!0,j=function values(){return o(P,this)})),g)if(_={values:R(A),keys:d?j:R(S),entries:R(I)},E)for(U in _)(b||O||!(U in M))&&p(M,U,_[U]);else n({target:r,proto:!0,forced:b||O},_);return i&&!E||M[w]===j||p(M,w,j,{name:g}),v[r]=j,_}},function(t,r,e){var n=e(141).IteratorPrototype,o=e(67),i=e(9),a=e(78),u=e(107),returnThis=function(){return this};t.exports=function(t,r,e){var f=r+" Iterator";return t.prototype=o(n,{next:i(1,e)}),a(t,f,!1,!0),u[f]=returnThis,t}},function(r,e,n){var o,i,a,u=n(6),f=n(18),c=n(67),s=n(99),l=n(43),h=n(30),p=n(32),g=h("iterator"),v=!1;[].keys&&("next"in(a=[].keys())?(i=s(s(a)))!==Object.prototype&&(o=i):v=!0),o==t||u((function(){var t={};return o[g].call(t)!==t}))?o={}:p&&(o=c(o)),f(o[g])||l(o,g,(function(){return this})),r.exports={IteratorPrototype:o,BUGGY_SAFARI_ITERATORS:v}},function(r,e,n){var o=n(2),i=n(12),a=n(11),u=n(10),f=n(120),c=i([].join),s=a!=Object,l=f("join",",");o({target:"Array",proto:!0,forced:s||!l},{join:function join(r){return c(u(this),r===t?",":r)}})},function(t,r,e){var n=e(2),o=e(144);n({target:"Array",proto:!0,forced:o!==[].lastIndexOf},{lastIndexOf:o})},function(t,r,e){var n=e(62),o=e(10),i=e(56),a=e(57),u=e(120),f=Math.min,c=[].lastIndexOf,s=!!c&&1/[1].lastIndexOf(1,-0)<0,l=u("lastIndexOf");t.exports=s||!l?function lastIndexOf(t){var r,e,u;if(s)return n(c,this,arguments)||0;for(r=o(this),u=(e=a(r))-1,arguments.length>1&&(u=f(u,i(arguments[1]))),u<0&&(u=e+u);u>=0;u--)if(u in r&&r[u]===t)return u||0;return-1}:c},function(r,e,n){var o=n(2),i=n(79).map;o({target:"Array",proto:!0,forced:!n(116)("map")},{map:function map(r){return i(this,r,arguments.length>1?arguments[1]:t)}})},function(t,r,e){var n=e(2),o=e(3),i=e(6),a=e(83),u=e(73),f=o.Array;n({target:"Array",stat:!0,forced:i((function(){function F(){}return!(f.of.call(F)instanceof F)}))},{of:function of(){for(var t=0,r=arguments.length,e=new(a(this)?this:f)(r);r>t;)u(e,t,arguments[t++]);return e.length=r,e}})},function(r,e,n){var o=n(2),i=n(148).left,a=n(120),u=n(24),f=n(149);o({target:"Array",proto:!0,forced:!a("reduce")||!f&&u>79&&u<83},{reduce:function reduce(r){var e=arguments.length;return i(this,r,e,e>1?arguments[1]:t)}})},function(t,r,e){var n=e(3),o=e(27),i=e(36),a=e(11),u=e(57),f=n.TypeError,createMethod=function(t){return function(r,e,n,c){var s,l,h,p,g;if(o(e),s=i(r),l=a(s),h=u(s),p=t?h-1:0,g=t?-1:1,n<2)for(;;){if(p in l){c=l[p],p+=g;break}if(p+=g,t?p<0:h<=p)throw f("Reduce of empty array with no initial value")}for(;t?p>=0:h>p;p+=g)p in l&&(c=e(c,l[p],p,s));return c}};t.exports={left:createMethod(!1),right:createMethod(!0)}},function(t,r,e){var n=e(13),o=e(3);t.exports="process"==n(o.process)},function(r,e,n){var o=n(2),i=n(148).right,a=n(120),u=n(24),f=n(149);o({target:"Array",proto:!0,forced:!a("reduceRight")||!f&&u>79&&u<83},{reduceRight:function reduceRight(r){return i(this,r,arguments.length,arguments.length>1?arguments[1]:t)}})},function(t,r,e){var n=e(2),o=e(12),i=e(63),a=o([].reverse),u=[1,2];n({target:"Array",proto:!0,forced:String(u)===String(u.reverse())},{reverse:function reverse(){return i(this)&&(this.length=this.length),a(this)}})},function(r,e,n){var o=n(2),i=n(3),a=n(63),u=n(83),f=n(17),c=n(55),s=n(57),l=n(10),h=n(73),p=n(30),g=n(116),v=n(74),d=g("slice"),y=p("species"),m=i.Array,x=Math.max;o({target:"Array",proto:!0,forced:!d},{slice:function slice(r,e){var n,o,i,p=l(this),g=s(p),d=c(r,g),b=c(e===t?g:e,g);if(a(p)&&((u(n=p.constructor)&&(n===m||a(n.prototype))||f(n)&&null===(n=n[y]))&&(n=t),n===m||n===t))return v(p,d,b);for(o=new(n===t?m:n)(x(b-d,0)),i=0;d<b;d++,i++)d in p&&h(o,i,p[d]);return o.length=i,o}})},function(r,e,n){var o=n(2),i=n(79).some;o({target:"Array",proto:!0,forced:!n(120)("some")},{some:function some(r){return i(this,r,arguments.length>1?arguments[1]:t)}})},function(r,e,n){var o=n(2),i=Line truncated
})},function(t,r,e){var n=e(3),o=e(6),i=e(12),a=e(64),u=e(229).trim,f=e(230),c=n.parseInt,s=n.Symbol,l=s&&s.iterator,h=/^[+-]?0x/i,p=i(h.exec),g=8!==c(f+"08")||22!==c(f+"0x16")||l&&!o((function(){c(Object(l))}));t.exports=g?function parseInt(t,r){var e=u(a(t));return c(e,r>>>0||(p(h,e)?16:10))}:c},function(t,r,e){var n=e(2),o=e(3),i=e(12),a=e(56),u=e(228),f=e(184),c=e(6),s=o.RangeError,l=o.String,h=Math.floor,p=i(f),g=i("".slice),v=i(1..toFixed),pow=function(t,r,e){return 0===r?e:r%2==1?pow(t,r-1,e*t):pow(t*t,r/2,e)},multiply=function(t,r,e){for(var n=-1,o=e;++n<6;)t[n]=(o+=r*t[n])%1e7,o=h(o/1e7)},divide=function(t,r){for(var e=6,n=0;--e>=0;)t[e]=h((n+=t[e])/r),n=n%r*1e7},dataToString=function(t){for(var r,e=6,n="";--e>=0;)""===n&&0!==e&&0===t[e]||(r=l(t[e]),n=""===n?r:n+p("0",7-r.length)+r);return n};n({target:"Number",proto:!0,forced:c((function(){return"0.000"!==v(8e-5,3)||"1"!==v(.9,0)||"1.25"!==v(1.255,2)||"1000000000000000128"!==v(0xde0b6b3a7640080,0)}))||!c((function(){v({})}))},{toFixed:function toFixed(t){var r,e,n,o,i=u(this),f=a(t),c=[0,0,0,0,0,0],h="",v="0";if(f<0||f>20)throw s("Incorrect fraction digits");if(i!=i)return"NaN";if(i<=-1e21||i>=1e21)return l(i);if(i<0&&(h="-",i=-i),i>1e-21)if(e=(r=function(t){for(var r=0,e=t;e>=4096;)r+=12,e/=4096;for(;e>=2;)r+=1,e/=2;return r}(i*pow(2,69,1))-69)<0?i*pow(2,-r,1):i/pow(2,r,1),e*=4503599627370496,(r=52-r)>0){for(multiply(c,0,e),n=f;n>=7;)multiply(c,1e7,0),n-=7;for(multiply(c,pow(10,n,1),0),n=r-1;n>=23;)divide(c,1<<23),n-=23;divide(c,1<<n),multiply(c,1,1),divide(c,2),v=dataToString(c)}else multiply(c,0,e),multiply(c,1<<-r,0),v=dataToString(c)+p("0",f);return f>0?h+((o=v.length)<=f?"0."+p("0",f-o)+v:g(v,0,o-f)+"."+g(v,o-f)):h+v}})},function(r,e,n){var o=n(2),i=n(12),a=n(6),u=n(228),f=i(1..toPrecision);o({target:"Number",proto:!0,forced:a((function(){return"1"!==f(1,t)}))||!a((function(){f({})}))},{toPrecision:function toPrecision(r){return r===t?f(u(this)):f(u(this),r)}})},function(t,r,e){var n=e(2),o=e(247);n({target:"Object",stat:!0,forced:Object.assign!==o},{assign:o})},function(t,r,e){var n=e(5),o=e(12),i=e(7),a=e(6),u=e(69),f=e(60),c=e(8),s=e(36),l=e(11),h=Object.assign,p=Object.defineProperty,g=o([].concat);t.exports=!h||a((function(){var t,r,e,o;return!(!n||1===h({b:1},h(p({},"a",{enumerable:!0,get:function(){p(this,"b",{value:3,enumerable:!1})}}),{b:2})).b)||(r={},o="abcdefghijklmnopqrst",(t={})[e=Symbol()]=7,o.split("").forEach((function(t){r[t]=t})),7!=h({},t)[e]||u(h({},r)).join("")!=o)}))?function assign(t,r){for(var e,o,a,h,p,v=s(t),d=arguments.length,y=1,m=f.f,x=c.f;d>y;)for(e=l(arguments[y++]),a=(o=m?g(u(e),m(e)):u(e)).length,h=0;a>h;)p=o[h++],n&&!i(x,e,p)||(v[p]=e[p]);return v}:h},function(t,r,e){e(2)({target:"Object",stat:!0,sham:!e(5)},{create:e(67)})},function(t,r,e){var n=e(2),o=e(5),i=e(250),a=e(27),u=e(36),f=e(41);o&&n({target:"Object",proto:!0,forced:i},{__defineGetter__:function __defineGetter__(t,r){f.f(u(this),t,{get:a(r),enumerable:!0,configurable:!0})}})},function(t,r,e){var n=e(32),o=e(3),i=e(6),a=e(158);t.exports=n||!i((function(){if(!(a&&a<535)){var t=Math.random();__defineSetter__.call(null,t,(function(){})),delete o[t]}}))},function(t,r,e){var n=e(2),o=e(5);n({target:"Object",stat:!0,forced:!o,sham:!o},{defineProperties:e(68)})},function(t,r,e){var n=e(2),o=e(5);n({target:"Object",stat:!0,forced:!o,sham:!o},{defineProperty:e(41).f})},function(t,r,e){var n=e(2),o=e(5),i=e(250),a=e(27),u=e(36),f=e(41);o&&n({target:"Object",proto:!0,forced:i},{__defineSetter__:function __defineSetter__(t,r){f.f(u(this),t,{set:a(r),enumerable:!0,configurable:!0})}})},function(t,r,e){var n=e(2),o=e(255).entries;n({target:"Object",stat:!0},{entries:function entries(t){return o(t)}})},function(t,r,e){var n=e(5),o=e(12),i=e(69),a=e(10),u=o(e(8).f),f=o([].push),createMethod=function(t){return function(r){for(var e,o=a(r),c=i(o),s=c.length,l=0,h=[];s>l;)e=c[l++],n&&!u(o,e)||f(h,t?[e,o[e]]:o[e]);return h}};t.exports={entries:createMethod(!0),values:createMethod(!1)}},function(t,r,e){var n=e(2),o=e(202),i=e(6),a=e(17),u=e(199).onFreeze,f=Object.freeze;n({target:"Object",stat:!0,forced:i((function(){f(1)})),sham:!o},{freeze:function freeze(t){return f&&a(t)?f(u(t)):t}})},function(t,r,e){var n=e(2),o=e(105),i=e(73);n({target:"Object",stat:!0},{fromEntries:function fromEntries(t){var r={};return o(t,(function(t,e){i(r,t,e)}),{AS_ENTRIES:!0}),r}})},function(t,r,e){var n=e(2),o=e(6),i=e(10),a=e(4).f,u=e(5),f=o((function(){a(1)}));n({target:"Object",stat:!0,forced:!u||f,sham:!u},{getOwnPropertyDescriptor:function getOwnPropertyDescriptor(t,r){return a(i(t),r)}})},function(r,e,n){var o=n(2),i=n(5),a=n(51),u=n(10),f=n(4),c=n(73);o({target:"Object",stat:!0,sham:!i},{getOwnPropertyDescriptors:function getOwnPropertyDescriptors(r){for(var e,n,o=u(r),i=f.f,s=a(o),l={},h=0;s.length>h;)(n=i(o,e=s[h++]))!==t&&c(l,e,n);return l}})},function(t,r,e){var n=e(2),o=e(6),i=e(71).f;n({target:"Object",stat:!0,forced:o((function(){return!Object.getOwnPropertyNames(1)}))},Line truncated
;if("string"==typeof i&&-1===I(i,a)&&-1===I(i,"$<")&&(u=n(e,C,B,i)).done)return u.value;for((f=s(i))||(i=p(i)),(g=C.global)&&(d=C.unicode,C.lastIndex=0),x=[];null!==(R=m(C,B))&&(A(x,R),g);)""===p(R[0])&&(C.lastIndex=v(B,h(C.lastIndex),d));for(T="",O=0,M=0;M<x.length;M++){for(P=p((R=x[M])[0]),j=b(w(l(R.index),B.length),0),N=[],k=1;k<R.length;k++)A(N,(D=R[k])===t?D:String(D));_=R.groups,f?(U=S([P],N,j,B),_!==t&&A(U,_),L=p(o(i,t,U))):L=y(P,B,j,N,_,i),j>=O&&(T+=E(B,O,j)+L,O=j+P.length)}return T+E(B,O)}]}),!!f((function(){var t=/./;return t.exec=function(){var t=[];return t.groups={a:"7"},t},"7"!=="".replace(t,"$<a>")}))||!R||T)},function(r,e,n){var o=n(12),i=n(36),a=Math.floor,u=o("".charAt),f=o("".replace),c=o("".slice),s=/\$([$&'`]|\d{1,2}|<[^>]*>)/g,l=/\$([$&'`]|\d{1,2})/g;r.exports=function(r,e,n,o,h,p){var g=n+r.length,v=o.length,d=l;return h!==t&&(h=i(h),d=s),f(p,d,(function(i,f){var s,l,p;switch(u(f,0)){case"$":return"$";case"&":return r;case"`":return c(e,0,n);case"'":return c(e,g);case"<":s=h[c(f,1,-1)];break;default:if(0==(l=+f))return i;if(l>v)return 0===(p=a(l/10))?i:p<=v?o[p-1]===t?u(f,1):o[p-1]+u(f,1):i;s=o[l-1]}return s===t?"":s}))}},function(r,e,n){var o=n(2),i=n(3),a=n(7),u=n(12),f=n(14),c=n(18),s=n(310),l=n(64),h=n(26),p=n(311),g=n(343),v=n(30),d=n(32),y=v("replace"),m=RegExp.prototype,x=i.TypeError,b=u(p),w=u("".indexOf),S=u("".replace),A=u("".slice),I=Math.max,stringIndexOf=function(t,r,e){return e>t.length?-1:""===r?e:w(t,r,e)};o({target:"String",proto:!0},{replaceAll:function replaceAll(r,e){var n,o,i,u,p,v,E,R,T,O=f(this),M=0,P=0,j="";if(null!=r){if((n=s(r))&&(o=l(f("flags"in m?r.flags:b(r))),!~w(o,"g")))throw x("`.replaceAll` does not allow non-global regexes");if(i=h(r,y))return a(i,r,O,e);if(d&&n)return S(l(O),r,e)}for(u=l(O),p=l(r),(v=c(e))||(e=l(e)),R=I(1,E=p.length),M=stringIndexOf(u,p,0);-1!==M;)T=v?l(e(p,M,u)):g(p,u,M,[],t,e),j+=A(u,P,M)+T,P=M+E,M=stringIndexOf(u,p,M+R);return P<u.length&&(j+=A(u,P)),j}})},function(r,e,n){var o=n(7),i=n(333),a=n(42),u=n(14),f=n(264),c=n(64),s=n(26),l=n(335);i("search",(function(r,e,n){return[function search(e){var n=u(this),i=e==t?t:s(e,r);return i?o(i,e,n):new RegExp(e)[r](c(n))},function(t){var r,o,i=a(this),u=c(t),s=n(e,i,u);return s.done?s.value:(f(r=i.lastIndex,0)||(i.lastIndex=0),o=l(i,u),f(i.lastIndex,r)||(i.lastIndex=r),null===o?-1:o.index)}]}))},function(r,e,n){var o=n(62),i=n(7),a=n(12),u=n(333),f=n(310),c=n(42),s=n(14),l=n(174),h=n(334),p=n(58),g=n(64),v=n(26),d=n(72),y=n(335),m=n(317),x=n(312),b=n(6),w=x.UNSUPPORTED_Y,S=4294967295,A=Math.min,I=[].push,E=a(/./.exec),R=a(I),T=a("".slice),O=!b((function(){var t,r=/(?:)/,e=r.exec;return r.exec=function(){return e.apply(this,arguments)},2!==(t="ab".split(r)).length||"a"!==t[0]||"b"!==t[1]}));u("split",(function(r,e,n){var a;return a="c"=="abbc".split(/(b)*/)[1]||4!="test".split(/(?:)/,-1).length||2!="ab".split(/(?:ab)*/).length||4!=".".split(/(.?)(.?)/).length||".".split(/()()/).length>1||"".split(/.?/).length?function(r,n){var a,u,c,l,h,p,v=g(s(this)),y=n===t?S:n>>>0;if(0===y)return[];if(r===t)return[v];if(!f(r))return i(e,v,r,y);for(a=[],u=0,c=new RegExp(r.source,(r.ignoreCase?"i":"")+(r.multiline?"m":"")+(r.unicode?"u":"")+(r.sticky?"y":"")+"g");(l=i(m,c,v))&&!((h=c.lastIndex)>u&&(R(a,T(v,u,l.index)),l.length>1&&l.index<v.length&&o(I,a,d(l,1)),p=l[0].length,u=h,a.length>=y));)c.lastIndex===l.index&&c.lastIndex++;return u===v.length?!p&&E(c,"")||R(a,""):R(a,T(v,u)),a.length>y?d(a,0,y):a}:"0".split(t,0).length?function(r,n){return r===t&&0===n?[]:i(e,this,r,n)}:e,[function split(e,n){var o=s(this),u=e==t?t:v(e,r);return u?i(u,e,o,n):i(a,g(o),e,n)},function(r,o){var i,u,f,s,v,d,m,x,b,I,E=c(this),O=g(r),M=n(a,E,O,o,a!==e);if(M.done)return M.value;if(i=l(E,RegExp),u=E.unicode,f=new i(w?"^(?:"+E.source+")":E,(E.ignoreCase?"i":"")+(E.multiline?"m":"")+(E.unicode?"u":"")+(w?"g":"y")),0===(s=o===t?S:o>>>0))return[];if(0===O.length)return null===y(f,O)?[O]:[];for(v=0,d=0,m=[];d<O.length;)if(f.lastIndex=w?0:d,null===(x=y(f,w?T(O,d):O))||(b=A(p(f.lastIndex+(w?d:0)),O.length))===v)d=h(O,d,u);else{if(R(m,T(O,v,d)),m.length===s)return m;for(I=1;I<=x.length-1;I++)if(R(m,x[I]),m.length===s)return m;d=v=b}return R(m,T(O,v)),m}]}),!O,w)},function(r,e,n){var o,i=n(2),a=n(12),u=n(4).f,f=n(58),c=n(64),s=n(327),l=n(14),h=n(328),p=n(32),g=a("".startsWith),v=a("".slice),d=Math.min,y=h("startsWith");i({target:"String",proto:!0,forced:!(!p&&!y&&(o=u(String.prototype,"startsWith"),o&&!o.writable)||y)},{startsWith:function startsWith(r){var e,n,o=c(l(this));return s(r),e=f(d(arguments.length>1?arguments[1]:t,o.length)),n=c(r),g?g(o,n,e):v(o,e,e+n.length)===n}})},function(r,e,n){var o=n(2),i=n(12),a=n(14),u=n(56),f=n(64),c=i("".slice),s=Math.max,l=Math.min;o({target:"String",proto:!0,forced:!"".substr||"b"!=="ab".substr(-1)},{substr:function substr(r,e){var n,o,i=f(a(this)),h=i.length,p=u(r);return p===Infinity&&(p=0),p<0&&(p=s(h+p,0)),(n=e===t?h:u(e))<=0||n===Infinity||p>=(o=l(p+n,h))?"":c(i,p,o)}})},function(t,r,eLine truncated
from:function from(r){var e,n=u(r),o=g(n,y);return o&&(e=l(n,o),f(c,e))?e:e===t&&(o=p(n))?new d(h(n,o)):new m({iterator:e!==t?e:n})}})},function(r,e,n){var o=n(2),i=n(62),a=n(27),u=n(42),f=n(438)((function(r,e){var n=this,o=n.mapper;return r.resolve(u(i(n.next,n.iterator,e))).then((function(e){return u(e).done?(n.done=!0,{done:!0,value:t}):r.resolve(o(e.value)).then((function(t){return{done:!1,value:t}}))}))}));o({target:"AsyncIterator",proto:!0,real:!0},{map:function map(t){return new f({iterator:u(this),mapper:a(t)})}})},function(r,e,n){var o=n(2),i=n(3),a=n(7),u=n(27),f=n(42),c=n(20)("Promise"),s=i.TypeError;o({target:"AsyncIterator",proto:!0,real:!0},{reduce:function reduce(r){var e=f(this),n=u(e.next),o=arguments.length<2,i=o?t:arguments[1];return u(r),new c((function(t,u){var loop=function(){try{c.resolve(f(a(n,e))).then((function(e){try{if(f(e).done)o?u(s("Reduce of empty iterator with no initial value")):t(i);else{var n=e.value;o?(o=!1,i=n,loop()):c.resolve(r(i,n)).then((function(t){i=t,loop()}),u)}}catch(a){u(a)}}),u)}catch(l){u(l)}};loop()}))}})},function(t,r,e){var n=e(2),o=e(422).some;n({target:"AsyncIterator",proto:!0,real:!0},{some:function some(t){return o(this,t)}})},function(r,e,n){var o=n(2),i=n(62),a=n(7),u=n(42),f=n(372),c=n(438)((function(r,e){var n,o,u=this.iterator;return this.remaining--?i(this.next,u,e):(o={done:!0,value:t},this.done=!0,(n=u["return"])!==t?r.resolve(a(n,u)).then((function(){return o})):o)}));o({target:"AsyncIterator",proto:!0,real:!0},{take:function take(t){return new c({iterator:u(this),remaining:f(t)})}})},function(r,e,n){var o=n(2),i=n(422).toArray;o({target:"AsyncIterator",proto:!0,real:!0},{toArray:function toArray(){return i(this,t,[])}})},function(t,r,e){var n=e(2),o=e(452);"function"==typeof BigInt&&n({target:"BigInt",stat:!0},{range:function range(t,r,e){return new o(t,r,e,"bigint",BigInt(0),BigInt(1))}})},function(r,e,n){var o=n(3),i=n(45),a=n(140),u=n(17),f=n(68),c=n(5),s="Incorrect Number.range arguments",l="NumericRangeIterator",h=i.set,p=i.getterFor(l),g=o.RangeError,v=o.TypeError,d=a((function NumericRangeIterator(r,e,n,o,i,a){var f,p,d;if(typeof r!=o||e!==Infinity&&e!==-Infinity&&typeof e!=o)throw new v(s);if(r===Infinity||r===-Infinity)throw new g(s);if(f=e>r,p=!1,n===t)d=t;else if(u(n))d=n.step,p=!!n.inclusive;else{if(typeof n!=o)throw new v(s);d=n}if(null==d&&(d=f?a:-a),typeof d!=o)throw new v(s);if(d===Infinity||d===-Infinity||d===i&&r!==e)throw new g(s);h(this,{type:l,start:r,end:e,step:d,inclusiveEnd:p,hitsEnd:r!=r||e!=e||d!=d||e>r!=d>i,currentCount:i,zero:i}),c||(this.start=r,this.end=e,this.step=d,this.inclusive=p)}),l,(function next(){var r,e,n,o,i=p(this);return i.hitsEnd?{value:t,done:!0}:(e=i.end,(n=(r=i.start)+i.step*i.currentCount++)===e&&(i.hitsEnd=!0),o=i.inclusiveEnd,(e>r?o?n>e:n>=e:o?e>n:e>=n)?{value:t,done:i.hitsEnd=!0}:{value:n,done:!1})})),getter=function(t){return{get:t,set:function(){},configurable:!0,enumerable:!1}};c&&f(d.prototype,{start:getter((function(){return p(this).start})),end:getter((function(){return p(this).end})),inclusive:getter((function(){return p(this).inclusiveEnd})),step:getter((function(){return p(this).step}))}),r.exports=d},function(t,r,e){var n=e(2),o=e(3),i=e(62),a=e(454),u=e(20),f=e(67),c=o.Object,initializer=function(){var t=u("Object","freeze");return t?t(f(null)):f(null)};n({global:!0},{compositeKey:function compositeKey(){return i(a,c,arguments).get("object",initializer)}})},function(t,r,e){var n,o,i,a,u,f,c,s,l,h;e(197),e(412),n=e(3),o=e(20),i=e(67),a=e(17),u=n.Object,f=n.TypeError,c=o("Map"),s=o("WeakMap"),(l=function(){this.object=null,this.symbol=null,this.primitives=null,this.objectsByIndex=i(null)}).prototype.get=function(t,r){return this[t]||(this[t]=r())},l.prototype.next=function(t,r,e){var n=e?this.objectsByIndex[t]||(this.objectsByIndex[t]=new s):this.primitives||(this.primitives=new c),o=n.get(r);return o||n.set(r,o=new l),o},h=new l,t.exports=function(){var t,r,e=h,n=arguments.length;for(t=0;t<n;t++)a(r=arguments[t])&&(e=e.next(t,r,!0));if(this===u&&e===h)throw f("Composite keys must contain a non-primitive component");for(t=0;t<n;t++)a(r=arguments[t])||(e=e.next(t,r,!1));return e}},function(t,r,e){var n=e(2),o=e(454),i=e(20),a=e(62);n({global:!0},{compositeSymbol:function compositeSymbol(){return 1==arguments.length&&"string"==typeof arguments[0]?i("Symbol")["for"](arguments[0]):a(o,null,arguments).get("symbol",i("Symbol"))}})},function(t,r,e){e(194)},function(t,r,e){var n=e(2),o=e(3),i=e(168),a=e(18),u=e(40),f=e(6),c=e(35),s=e(30),l=e(141).IteratorPrototype,h=e(32),p=s("toStringTag"),g=o.Iterator,v=h||!a(g)||g.prototype!==l||!f((function(){g({})})),d=function Iterator(){i(this,l)};c(l,p)||u(l,p,"Iterator"),!v&&c(l,"constructor")&&l.constructor!==Object||u(l,"constructor",d),d.prototype=l,n({global:!0,forced:v},{Iterator:d})},function(t,r,e){var n=e(2),o=e(62),i=e(42),a=e(459)((function(t){var r=i(o(this.next,this.iterator,t));if(!(this.done=!!r.done))return[this.index++,r.value]}));Line truncated
var o=n(172),i=n(430),a=n(389),u=o.aTypedArray;(0,o.exportTypedArrayMethod)("groupBy",(function groupBy(r){var e=arguments.length>1?arguments[1]:t;return i(u(this),r,e,a)}))},function(t,r,e){var n=e(12),o=e(172),i=e(435),a=e(387),u=o.aTypedArray,f=o.exportTypedArrayMethod,c=n(i);f("uniqueBy",(function uniqueBy(t){return a(this,c(u(this),t))}))},function(t,r,e){e(2)({target:"WeakMap",proto:!0,real:!0,forced:e(32)},{deleteAll:e(473)})},function(t,r,e){e(2)({target:"WeakMap",stat:!0},{from:e(482)})},function(t,r,e){e(2)({target:"WeakMap",stat:!0},{of:e(492)})},function(t,r,e){e(2)({target:"WeakMap",proto:!0,real:!0,forced:e(32)},{emplace:e(475)})},function(t,r,e){e(2)({target:"WeakMap",proto:!0,real:!0,forced:e(32)},{upsert:e(497)})},function(t,r,e){e(2)({target:"WeakSet",proto:!0,real:!0,forced:e(32)},{addAll:e(535)})},function(t,r,e){e(2)({target:"WeakSet",proto:!0,real:!0,forced:e(32)},{deleteAll:e(473)})},function(t,r,e){e(2)({target:"WeakSet",stat:!0},{from:e(482)})},function(t,r,e){e(2)({target:"WeakSet",stat:!0},{of:e(492)})},function(t,r,e){var n,o=e(3),i=e(583),a=e(584),u=e(130),f=e(40),handlePrototype=function(t){if(t&&t.forEach!==u)try{f(t,"forEach",u)}catch(r){t.forEach=u}};for(n in i)i[n]&&handlePrototype(o[n]&&o[n].prototype);handlePrototype(a)},function(t,r){t.exports={CSSRuleList:0,CSSStyleDeclaration:0,CSSValueList:0,ClientRectList:0,DOMRectList:0,DOMStringList:0,DOMTokenList:1,DataTransferItemList:0,FileList:0,HTMLAllCollection:0,HTMLCollection:0,HTMLFormElement:0,HTMLSelectElement:0,MediaList:0,MimeTypeArray:0,NamedNodeMap:0,NodeList:1,PaintRequestList:0,Plugin:0,PluginArray:0,SVGLengthList:0,SVGNumberList:0,SVGPathSegList:0,SVGPointList:0,SVGStringList:0,SVGTransformList:0,SourceBufferList:0,StyleSheetList:0,TextTrackCueList:0,TextTrackList:0,TouchList:0}},function(r,e,n){var o=n(39)("span").classList,i=o&&o.constructor&&o.constructor.prototype;r.exports=i===Object.prototype?t:i},function(t,r,e){var n,o=e(3),i=e(583),a=e(584),u=e(138),f=e(40),c=e(30),s=c("iterator"),l=c("toStringTag"),h=u.values,handlePrototype=function(t,r){if(t){if(t[s]!==h)try{f(t,s,h)}catch(n){t[s]=h}if(t[l]||f(t,l,r),i[r])for(var e in u)if(t[e]!==u[e])try{f(t,e,u[e])}catch(n){t[e]=u[e]}}};for(n in i)handlePrototype(o[n]&&o[n].prototype,n);handlePrototype(a,"DOMTokenList")},function(t,r,e){var n=e(2),o=e(3),i=e(281);n({global:!0,bind:!0,enumerable:!0,forced:!o.setImmediate||!o.clearImmediate},{setImmediate:i.set,clearImmediate:i.clear})},function(t,r,e){var n=e(2),o=e(3),i=e(283),a=e(149),u=o.process;n({global:!0,enumerable:!0,noTargetGet:!0},{queueMicrotask:function queueMicrotask(t){var r=a&&u.domain;i(r?r.bind(t):t)}})},function(r,e,n){var o=n(2),i=n(3),a=n(62),u=n(18),f=n(25),c=n(74),s=/MSIE .\./.test(f),l=i.Function,wrap=function(r){return function(e,n){var o=arguments.length>2,i=o?c(arguments,2):t;return r(o?function(){a(u(e)?e:l(e),this,i)}:e,n)}};o({global:!0,bind:!0,forced:s},{setTimeout:wrap(i.setTimeout),setInterval:wrap(i.setInterval)})},function(r,e,n){var o,i,a,u,f,c,s,l,h,p,g,v,d,y,m,x,b,w,S,A,I,E,R,T,O,M,P,j,N,k,_,U,L,D,C,B,z,W,q,G,V,Y,K,H,$,J,X,Q,Z,tt,rt,et,nt,ot,it,ut,ft,ct,st,lt,ht,pt,gt,vt,dt,yt,mt,xt,bt,wt,St,At,It,Et,Rt,Tt,Ot,Mt,Pt,jt,Nt,kt,_t,Ut,Lt,Ft,Dt,Ct,Bt,zt,Wt,qt,Gt,Vt,Yt,Kt;n(331),o=n(2),i=n(5),a=n(590),u=n(3),f=n(80),c=n(12),s=n(68),l=n(43),h=n(168),p=n(35),g=n(247),v=n(132),d=n(72),y=n(325).codeAt,m=n(591),x=n(64),b=n(78),w=n(592),S=n(45),A=S.set,I=S.getterFor("URL"),E=w.URLSearchParams,R=w.getState,T=u.URL,O=u.TypeError,M=u.parseInt,P=Math.floor,j=Math.pow,N=c("".charAt),k=c(/./.exec),_=c([].join),U=c(1..toString),L=c([].pop),D=c([].push),C=c("".replace),B=c([].shift),z=c("".split),W=c("".slice),q=c("".toLowerCase),G=c([].unshift),V="Invalid scheme",Y="Invalid host",K="Invalid port",H=/[a-z]/i,$=/[\d+-.a-z]/i,J=/\d/,X=/^0x/i,Q=/^[0-7]+$/,Z=/^\d+$/,tt=/^[\da-f]+$/i,rt=/[\0\t\n\r #%/:<>?@[\\\]^|]/,et=/[\0\t\n\r #/:<>?@[\\\]^|]/,nt=/^[\u0000-\u0020]+|[\u0000-\u0020]+$/g,ot=/[\t\n\r]/g,ut=function(t){var r,e,n,o,i,a,u,f=z(t,".");if(f.length&&""==f[f.length-1]&&f.length--,(r=f.length)>4)return t;for(e=[],n=0;n<r;n++){if(""==(o=f[n]))return t;if(i=10,o.length>1&&"0"==N(o,0)&&(i=k(X,o)?16:8,o=W(o,8==i?1:2)),""===o)a=0;else{if(!k(10==i?Z:8==i?Q:tt,o))return t;a=M(o,i)}D(e,a)}for(n=0;n<r;n++)if(a=e[n],n==r-1){if(a>=j(256,5-r))return null}else if(a>255)return null;for(u=L(e),n=0;n<e.length;n++)u+=e[n]*j(256,3-n);return u},ft=function(t){var r,e,n,o,i,a,u,f=[0,0,0,0,0,0,0,0],c=0,s=null,l=0,chr=function(){return N(t,l)};if(":"==chr()){if(":"!=N(t,1))return;l+=2,s=++c}for(;chr();){if(8==c)return;if(":"!=chr()){for(r=e=0;e<4&&k(tt,chr());)r=16*r+M(chr(),16),l++,e++;if("."==chr()){if(0==e)return;if(l-=e,c>6)return;for(n=0;chr();){if(o=null,n>0){if(!("."==chr()&&n<4))return;l++}if(!k(J,chr()))return;for(;k(J,chr());){if(i=M(chr(),10),null===o)o=i;else{if(0==o)return;o=10*o+i}if(o>255)return;l++}f[c]=256*f[c]+o,2!=++n&&4!=n||c++}if(4!=n)return;break}if(":"==chr()){if(l++,!chr())return}else if(chr())retuLine truncated
//# sourceMappingURL=minified.js.map
@@ -1,47 +0,0 @@
(function(global) {
'use strict';
if (typeof module !== "undefined" && module.exports) {
module.exports = global;
}
global["encoding-indexes"] =
{
"big5":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,17392,19506,17923,17830,17784,160359,19831,17843,162993,19682,163013,15253,18230,18244,19527,19520,148159,144919,160594,159371,159954,19543,172881,18255,17882,19589,162924,19719,19108,18081,158499,29221,154196,137827,146950,147297,26189,22267,null,32149,22813,166841,15860,38708,Line truncated
"euc-kr":[44034,44035,44037,44038,44043,44044,44045,44046,44047,44056,44062,44063,44065,44066,44067,44069,44070,44071,44072,44073,44074,44075,44078,44082,44083,44084,null,null,null,null,null,null,44085,44086,44087,44090,44091,44093,44094,44095,44097,44098,44099,44100,44101,44102,44103,44104,44105,44106,44108,44110,44111,44112,44113,44114,44115,44117,null,null,null,null,null,null,44118,44119,44121,44122,44123,44125,44126,44127,44128,44129,44130,44131,44132,44133,44134,44135,44136,44137,44138,44139,44140,44141,44142,44143,44146,44147,44149,44150,44153,44155,44156,44157,44158,44159,44162,44167,44168,44173,44174,44175,44177,44178,44179,44181,44182,44183,44184,44185,44186,44187,44190,44194,44195,44196,44197,44198,44199,44203,44205,44206,44209,44210,44211,44212,44213,44214,44215,44218,44222,44223,44224,44226,44227,44229,44230,44231,44233,44234,44235,44237,44238,44239,44240,44241,44242,44243,44244,44246,44248,44249,44250,44251,44252,44253,44254,44255,44258,44259,44261,44262,44265,44267,44269,44270,44274,44276,44279,44280,44281,44282,44283,44286,44287,44289,44290,44291,44293,44295,44296,44297,44298,44299,44302,44304,44306,44307,44308,44309,44310,44311,44313,44314,44315,44317,44318,44319,44321,44322,44323,44324,44325,44326,44327,44328,44330,44331,44334,44335,44336,44337,44338,44339,null,null,null,null,null,null,44342,44343,44345,44346,44347,44349,44350,44351,44352,44353,44354,44355,44358,44360,44362,44363,44364,44365,44366,44367,44369,44370,44371,44373,44374,44375,null,null,null,null,null,null,44377,44378,44379,44380,44381,44382,44383,44384,44386,44388,44389,44390,44391,44392,44393,44394,44395,44398,44399,44401,44402,44407,44408,44409,44410,44414,44416,44419,44420,44421,44422,44423,44426,44427,44429,44430,44431,44433,44434,44435,44436,44437,44438,44439,44440,44441,44442,44443,44446,44447,44448,44449,44450,44451,44453,44454,44455,44456,44457,44458,44459,44460,44461,44462,44463,44464,44465,44466,44467,44468,44469,44470,44472,44473,44474,44475,44476,44477,44478,44479,44482,44483,44485,44486,44487,44489,44490,44491,44492,44493,44494,44495,44498,44500,44501,44502,44503,44504,44505,44506,44507,44509,44510,44511,44513,44514,44515,44517,44518,44519,44520,44521,44522,44523,44524,44525,44526,44527,44528,44529,44530,44531,44532,44533,44534,44535,44538,44539,44541,44542,44546,44547,44548,44549,44550,44551,44554,44556,44558,44559,44560,44561,44562,44563,44565,44566,44567,44568,44569,44570,44571,44572,null,null,null,null,null,null,44573,44574,44575,44576,44577,44578,44579,44580,44581,44582,44583,44584,44585,44586,44587,44588,44589,44590,44591,44594,44595,44597,44598,44601,44603,44604,null,null,null,null,null,null,44605,44606,44607,44610,44612,44615,44616,44617,44619,44623,44625,44626,44627,44629,44631,44632,44633,44634,44635,44638,44642,44643,44644,44646,44647,44650,44651,44653,44654,44655,44657,44658,44659,44660,44661,44662,44663,44666,44670,44671,44672,44673,44674,44675,44678,44679,44680,44681,44682,44683,44685,44686,44687,44688,44689,44690,44691,44692,44693,44694,44695,44696,44697,44698,44699,44700,44701,44702,44703,44704,44705,44706,44707,44708,44709,44710,44711,44712,44713,44714,44715,44716,44717,44718,44719,44720,44721,44722,44723,44724,44725,44726,44727,44728,44729,44730,44731,44735,44737,44738,44739,44741,44742,44743,44744,44745,44746,44747,44750,44754,44755,44756,44757,44758,44759,44762,44763,44765,44766,44767,44768,44769,44770,44771,44772,44773,44774,44775,44777,44778,44780,44782,44783,44784,44785,44786,44787,44789,44790,44791,44793,44794,44795,44797,44798,44799,44800,44801,44802,44803,44804,44805,null,null,null,null,null,null,44806,44809,44810,44811,44812,44814,44815,44817,44818,44819,44820,44821,44822,44823,44824,44825,44826,44827,44828,44829,44830,44831,44832,44833,44834,44835,null,null,null,null,null,null,44836,44837,44838,44839,44840,44841,44842,44843,44846,44847,44849,44851,44853,44854,44855,44856,44857,44858,44859,44862,44864,44868,44869,44870,44871,44874,44875,44876,44877,44878,44879,44881,44882,44883,44884,44885,44886,44887,44888,44889,44890,44891,44894,44895,44896,44897,44898,44899,44902,44903,44904,44905,44906,44907,44908,44909,44910,44911,44912,44913,44914,44915,44916,44917,44918,44919,44920,44922,44923,44924,44925,44926,44927,44929,44930,44931,44933,44934,44935,44937,44938,44939,44940,44941,44942,44943,44946,44947,44948,44950,44951,44952,44953,44954,44955,44957,44958,44959,44960,44961,44962,44963,44964,44965,44966,44967,44968,44969,44970,44971,44972,44973,44974,44975,44976,44977,44978,44979,44980,44981,44982,44983,44986,44987,44989,44990,44991,44993,44994,44995,44996,44997,44998,45002,45004,45007,45008,45009,45010,45011,45013,45014,45015,45016,45017,45018,45019,45021,45022,45023,45024,45025,null,null,null,null,null,null,45026,45027,45028,45029,45030,45031,45034,45035,45036,45037,45038,45039,45042,45043,45045,45046,45047,45049,45050,45051,45052,45053,45054,45055,45058,45059,null,null,null,null,null,null,45061,45062,45063,45064,45065,45066,45067,45069,45070,45071,45073,45074,45075,45077,45078,45079,45080,4Line truncated
"gb18030":[19970,19972,19973,19974,19983,19986,19991,19999,20000,20001,20003,20006,20009,20014,20015,20017,20019,20021,20023,20028,20032,20033,20034,20036,20038,20042,20049,20053,20055,20058,20059,20066,20067,20068,20069,20071,20072,20074,20075,20076,20077,20078,20079,20082,20084,20085,20086,20087,20088,20089,20090,20091,20092,20093,20095,20096,20097,20098,20099,20100,20101,20103,20106,20112,20118,20119,20121,20124,20125,20126,20131,20138,20143,20144,20145,20148,20150,20151,20152,20153,20156,20157,20158,20168,20172,20175,20176,20178,20186,20187,20188,20192,20194,20198,20199,20201,20205,20206,20207,20209,20212,20216,20217,20218,20220,20222,20224,20226,20227,20228,20229,20230,20231,20232,20235,20236,20242,20243,20244,20245,20246,20252,20253,20257,20259,20264,20265,20268,20269,20270,20273,20275,20277,20279,20281,20283,20286,20287,20288,20289,20290,20292,20293,20295,20296,20297,20298,20299,20300,20306,20308,20310,20321,20322,20326,20328,20330,20331,20333,20334,20337,20338,20341,20343,20344,20345,20346,20349,20352,20353,20354,20357,20358,20359,20362,20364,20366,20368,20370,20371,20373,20374,20376,20377,20378,20380,20382,20383,20385,20386,20388,20395,20397,20400,20401,20402,20403,20404,20406,20407,20408,20409,20410,20411,20412,20413,20414,20416,20417,20418,20422,20423,20424,20425,20427,20428,20429,20434,20435,20436,20437,20438,20441,20443,20448,20450,20452,20453,20455,20459,20460,20464,20466,20468,20469,20470,20471,20473,20475,20476,20477,20479,20480,20481,20482,20483,20484,20485,20486,20487,20488,20489,20490,20491,20494,20496,20497,20499,20501,20502,20503,20507,20509,20510,20512,20514,20515,20516,20519,20523,20527,20528,20529,20530,20531,20532,20533,20534,20535,20536,20537,20539,20541,20543,20544,20545,20546,20548,20549,20550,20553,20554,20555,20557,20560,20561,20562,20563,20564,20566,20567,20568,20569,20571,20573,20574,20575,20576,20577,20578,20579,20580,20582,20583,20584,20585,20586,20587,20589,20590,20591,20592,20593,20594,20595,20596,20597,20600,20601,20602,20604,20605,20609,20610,20611,20612,20614,20615,20617,20618,20619,20620,20622,20623,20624,20625,20626,20627,20628,20629,20630,20631,20632,20633,20634,20635,20636,20637,20638,20639,20640,20641,20642,20644,20646,20650,20651,20653,20654,20655,20656,20657,20659,20660,20661,20662,20663,20664,20665,20668,20669,20670,20671,20672,20673,20674,20675,20676,20677,20678,20679,20680,20681,20682,20683,20684,20685,20686,20688,20689,20690,20691,20692,20693,20695,20696,20697,20699,20700,20701,20702,20703,20704,20705,20706,20707,20708,20709,20712,20713,20714,20715,20719,20720,20721,20722,20724,20726,20727,20728,20729,20730,20732,20733,20734,20735,20736,20737,20738,20739,20740,20741,20744,20745,20746,20748,20749,20750,20751,20752,20753,20755,20756,20757,20758,20759,20760,20761,20762,20763,20764,20765,20766,20767,20768,20770,20771,20772,20773,20774,20775,20776,20777,20778,20779,20780,20781,20782,20783,20784,20785,20786,20787,20788,20789,20790,20791,20792,20793,20794,20795,20796,20797,20798,20802,20807,20810,20812,20814,20815,20816,20818,20819,20823,20824,20825,20827,20829,20830,20831,20832,20833,20835,20836,20838,20839,20841,20842,20847,20850,20858,20862,20863,20867,20868,20870,20871,20874,20875,20878,20879,20880,20881,20883,20884,20888,20890,20893,20894,20895,20897,20899,20902,20903,20904,20905,20906,20909,20910,20916,20920,20921,20922,20926,20927,20929,20930,20931,20933,20936,20938,20941,20942,20944,20946,20947,20948,20949,20950,20951,20952,20953,20954,20956,20958,20959,20962,20963,20965,20966,20967,20968,20969,20970,20972,20974,20977,20978,20980,20983,20990,20996,20997,21001,21003,21004,21007,21008,21011,21012,21013,21020,21022,21023,21025,21026,21027,21029,21030,21031,21034,21036,21039,21041,21042,21044,21045,21052,21054,21060,21061,21062,21063,21064,21065,21067,21070,21071,21074,21075,21077,21079,21080,21081,21082,21083,21085,21087,21088,21090,21091,21092,21094,21096,21099,21100,21101,21102,21104,21105,21107,21108,21109,21110,21111,21112,21113,21114,21115,21116,21118,21120,21123,21124,21125,21126,21127,21129,21130,21131,21132,21133,21134,21135,21137,21138,21140,21141,21142,21143,21144,21145,21146,21148,21156,21157,21158,21159,21166,21167,21168,21172,21173,21174,21175,21176,21177,21178,21179,21180,21181,21184,21185,21186,21188,21189,21190,21192,21194,21196,21197,21198,21199,21201,21203,21204,21205,21207,21209,21210,21211,21212,21213,21214,21216,21217,21218,21219,21221,21222,21223,21224,21225,21226,21227,21228,21229,21230,21231,21233,21234,21235,21236,21237,21238,21239,21240,21243,21244,21245,21249,21250,21251,21252,21255,21257,21258,21259,21260,21262,21265,21266,21267,21268,21272,21275,21276,21278,21279,21282,21284,21285,21287,21288,21289,21291,21292,21293,21295,21296,21297,21298,21299,21300,21301,21302,21303,21304,21308,21309,21312,21314,21316,21318,21323,21324,21325,21328,21332,21336,21337,21339,21341,21349,21352,21354,21356,21357,21362,21366,21369,21371,21372,21373,21374,21376,21377,21379,21383,21384,21386,21390,21391,21392,21393,21394,21395,21396,21398,21399,21401,Line truncated
"gb18030-ranges":[[0,128],[36,165],[38,169],[45,178],[50,184],[81,216],[89,226],[95,235],[96,238],[100,244],[103,248],[104,251],[105,253],[109,258],[126,276],[133,284],[148,300],[172,325],[175,329],[179,334],[208,364],[306,463],[307,465],[308,467],[309,469],[310,471],[311,473],[312,475],[313,477],[341,506],[428,594],[443,610],[544,712],[545,716],[558,730],[741,930],[742,938],[749,962],[750,970],[805,1026],[819,1104],[820,1106],[7922,8209],[7924,8215],[7925,8218],[7927,8222],[7934,8231],[7943,8241],[7944,8244],[7945,8246],[7950,8252],[8062,8365],[8148,8452],[8149,8454],[8152,8458],[8164,8471],[8174,8482],[8236,8556],[8240,8570],[8262,8596],[8264,8602],[8374,8713],[8380,8720],[8381,8722],[8384,8726],[8388,8731],[8390,8737],[8392,8740],[8393,8742],[8394,8748],[8396,8751],[8401,8760],[8406,8766],[8416,8777],[8419,8781],[8424,8787],[8437,8802],[8439,8808],[8445,8816],[8482,8854],[8485,8858],[8496,8870],[8521,8896],[8603,8979],[8936,9322],[8946,9372],[9046,9548],[9050,9588],[9063,9616],[9066,9622],[9076,9634],[9092,9652],[9100,9662],[9108,9672],[9111,9676],[9113,9680],[9131,9702],[9162,9735],[9164,9738],[9218,9793],[9219,9795],[11329,11906],[11331,11909],[11334,11913],[11336,11917],[11346,11928],[11361,11944],[11363,11947],[11366,11951],[11370,11956],[11372,11960],[11375,11964],[11389,11979],[11682,12284],[11686,12292],[11687,12312],[11692,12319],[11694,12330],[11714,12351],[11716,12436],[11723,12447],[11725,12535],[11730,12543],[11736,12586],[11982,12842],[11989,12850],[12102,12964],[12336,13200],[12348,13215],[12350,13218],[12384,13253],[12393,13263],[12395,13267],[12397,13270],[12510,13384],[12553,13428],[12851,13727],[12962,13839],[12973,13851],[13738,14617],[13823,14703],[13919,14801],[13933,14816],[14080,14964],[14298,15183],[14585,15471],[14698,15585],[15583,16471],[15847,16736],[16318,17208],[16434,17325],[16438,17330],[16481,17374],[16729,17623],[17102,17997],[17122,18018],[17315,18212],[17320,18218],[17402,18301],[17418,18318],[17859,18760],[17909,18811],[17911,18814],[17915,18820],[17916,18823],[17936,18844],[17939,18848],[17961,18872],[18664,19576],[18703,19620],[18814,19738],[18962,19887],[19043,40870],[33469,59244],[33470,59336],[33471,59367],[33484,59413],[33485,59417],[33490,59423],[33497,59431],[33501,59437],[33505,59443],[33513,59452],[33520,59460],[33536,59478],[33550,59493],[37845,63789],[37921,63866],[37948,63894],[38029,63976],[38038,63986],[38064,64016],[38065,64018],[38066,64021],[38069,64025],[38075,64034],[38076,64037],[38078,64042],[39108,65074],[39109,65093],[39113,65107],[39114,65112],[39115,65127],[39116,65132],[39265,65375],[39394,65510],[189000,65536]],
"jis0208":[12288,12289,12290,65292,65294,12539,65306,65307,65311,65281,12443,12444,180,65344,168,65342,65507,65343,12541,12542,12445,12446,12291,20189,12293,12294,12295,12540,8213,8208,65295,65340,65374,8741,65372,8230,8229,8216,8217,8220,8221,65288,65289,12308,12309,65339,65341,65371,65373,12296,12297,12298,12299,12300,12301,12302,12303,12304,12305,65291,65293,177,215,247,65309,8800,65308,65310,8806,8807,8734,8756,9794,9792,176,8242,8243,8451,65509,65284,65504,65505,65285,65283,65286,65290,65312,167,9734,9733,9675,9679,9678,9671,9670,9633,9632,9651,9650,9661,9660,8251,12306,8594,8592,8593,8595,12307,null,null,null,null,null,null,null,null,null,null,null,8712,8715,8838,8839,8834,8835,8746,8745,null,null,null,null,null,null,null,null,8743,8744,65506,8658,8660,8704,8707,null,null,null,null,null,null,null,null,null,null,null,8736,8869,8978,8706,8711,8801,8786,8810,8811,8730,8765,8733,8757,8747,8748,null,null,null,null,null,null,null,8491,8240,9839,9837,9834,8224,8225,182,null,null,null,null,9711,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,65296,65297,65298,65299,65300,65301,65302,65303,65304,65305,null,null,null,null,null,null,null,65313,65314,65315,65316,65317,65318,65319,65320,65321,65322,65323,65324,65325,65326,65327,65328,65329,65330,65331,65332,65333,65334,65335,65336,65337,65338,null,null,null,null,null,null,65345,65346,65347,65348,65349,65350,65351,65352,65353,65354,65355,65356,65357,65358,65359,65360,65361,65362,65363,65364,65365,65366,65367,65368,65369,65370,null,null,null,null,12353,12354,12355,12356,12357,12358,12359,12360,12361,12362,12363,12364,12365,12366,12367,12368,12369,12370,12371,12372,12373,12374,12375,12376,12377,12378,12379,12380,12381,12382,12383,12384,12385,12386,12387,12388,12389,12390,12391,12392,12393,12394,12395,12396,12397,12398,12399,12400,12401,12402,12403,12404,12405,12406,12407,12408,12409,12410,12411,12412,12413,12414,12415,12416,12417,12418,12419,12420,12421,12422,12423,12424,12425,12426,12427,12428,12429,12430,12431,12432,12433,12434,12435,null,null,null,null,null,null,null,null,null,null,null,12449,12450,12451,12452,12453,12454,12455,12456,12457,12458,12459,12460,12461,12462,12463,12464,12465,12466,12467,12468,12469,12470,12471,12472,12473,12474,12475,12476,12477,12478,12479,12480,12481,12482,12483,12484,12485,12486,12487,12488,12489,12490,12491,12492,12493,12494,12495,12496,12497,12498,12499,12500,12501,12502,12503,12504,12505,12506,12507,12508,12509,12510,12511,12512,12513,12514,12515,12516,12517,12518,12519,12520,12521,12522,12523,12524,12525,12526,12527,12528,12529,12530,12531,12532,12533,12534,null,null,null,null,null,null,null,null,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,931,932,933,934,935,936,937,null,null,null,null,null,null,null,null,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,963,964,965,966,967,968,969,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1040,1041,1042,1043,1044,1045,1025,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1072,1073,1074,1075,1076,1077,1105,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,null,null,null,null,null,null,null,null,null,null,null,null,null,9472,9474,9484,9488,9496,9492,9500,9516,9508,9524,9532,9473,9475,9487,9491,9499,9495,9507,9523,9515,9531,9547,9504,9519,9512,9527,9535,9501,9520,9509,9528,9538,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,nLine truncated
"jis0212":[null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,728,711,184,729,733,175,731,730,65374,900,901,null,null,null,null,null,null,null,null,161,166,191,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,186,170,169,174,8482,164,8470,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,902,904,905,906,938,null,908,null,910,939,null,911,null,null,null,null,940,941,942,943,970,912,972,962,973,971,944,974,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,1038,1039,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,1118,1119,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,198,272,null,294,null,306,null,321,319,null,330,216,338,null,358,222,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,230,273,240,295,305,307,312,322,320,329,331,248,339,223,359,254,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,193,192,196,194,258,461,256,260,197,195,262,264,268,199,266,270,201,200,203,202,282,278,274,280,null,284,286,290,288,292,205,204,207,206,463,304,298,302,296,308,310,313,317,315,323,327,325,209,211,210,214,212,465,336,332,213,340,344,342,346,348,352,350,356,354,218,217,220,219,364,467,368,362,370,366,360,471,475,473,469,372,221,376,374,377,381,379,null,null,null,null,null,null,null,225,224,228,226,259,462,257,261,229,227,263,265,269,231,267,271,233,232,235,234,283,279,275,281,501,285,287,null,289,293,237,236,239,238,464,null,299,303,297,309,311,314,318,316,324,328,326,241,243,242,246,244,466,337,333,245,341,345,343,347,349,353,351,357,355,250,249,252,251,365,468,369,363,371,367,361,472,476,474,470,373,253,255,375,378,382,380,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,nuLine truncated
"ibm866":[1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,9617,9618,9619,9474,9508,9569,9570,9558,9557,9571,9553,9559,9565,9564,9563,9488,9492,9524,9516,9500,9472,9532,9566,9567,9562,9556,9577,9574,9568,9552,9580,9575,9576,9572,9573,9561,9560,9554,9555,9579,9578,9496,9484,9608,9604,9612,9616,9600,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,1025,1105,1028,1108,1031,1111,1038,1118,176,8729,183,8730,8470,164,9632,160],
"iso-8859-2":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,260,728,321,164,317,346,167,168,352,350,356,377,173,381,379,176,261,731,322,180,318,347,711,184,353,351,357,378,733,382,380,340,193,194,258,196,313,262,199,268,201,280,203,282,205,206,270,272,323,327,211,212,336,214,215,344,366,218,368,220,221,354,223,341,225,226,259,228,314,263,231,269,233,281,235,283,237,238,271,273,324,328,243,244,337,246,247,345,367,250,369,252,253,355,729],
"iso-8859-3":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,294,728,163,164,null,292,167,168,304,350,286,308,173,null,379,176,295,178,179,180,181,293,183,184,305,351,287,309,189,null,380,192,193,194,null,196,266,264,199,200,201,202,203,204,205,206,207,null,209,210,211,212,288,214,215,284,217,218,219,220,364,348,223,224,225,226,null,228,267,265,231,232,233,234,235,236,237,238,239,null,241,242,243,244,289,246,247,285,249,250,251,252,365,349,729],
"iso-8859-4":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,260,312,342,164,296,315,167,168,352,274,290,358,173,381,175,176,261,731,343,180,297,316,711,184,353,275,291,359,330,382,331,256,193,194,195,196,197,198,302,268,201,280,203,278,205,206,298,272,325,332,310,212,213,214,215,216,370,218,219,220,360,362,223,257,225,226,227,228,229,230,303,269,233,281,235,279,237,238,299,273,326,333,311,244,245,246,247,248,371,250,251,252,361,363,729],
"iso-8859-5":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,1025,1026,1027,1028,1029,1030,1031,1032,1033,1034,1035,1036,173,1038,1039,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103,8470,1105,1106,1107,1108,1109,1110,1111,1112,1113,1114,1115,1116,167,1118,1119],
"iso-8859-6":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,null,null,null,164,null,null,null,null,null,null,null,1548,173,null,null,null,null,null,null,null,null,null,null,null,null,null,1563,null,null,null,1567,null,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,null,null,null,null,null,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1611,1612,1613,1614,1615,1616,1617,1618,null,null,null,null,null,null,null,null,null,null,null,null,null],
"iso-8859-7":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,8216,8217,163,8364,8367,166,167,168,169,890,171,172,173,null,8213,176,177,178,179,900,901,902,183,904,905,906,187,908,189,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,null,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,null],
"iso-8859-8":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,null,162,163,164,165,166,167,168,169,215,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,247,187,188,189,190,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,null,8215,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,null,null,8206,8207,null],
"iso-8859-10":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,260,274,290,298,296,310,167,315,272,352,358,381,173,362,330,176,261,275,291,299,297,311,183,316,273,353,359,382,8213,363,331,256,193,194,195,196,197,198,302,268,201,280,203,278,205,206,207,208,325,332,211,212,213,214,360,216,370,218,219,220,221,222,223,257,225,226,227,228,229,230,303,269,233,281,235,279,237,238,239,240,326,333,243,244,245,246,361,248,371,250,251,252,253,254,312],
"iso-8859-13":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,8221,162,163,164,8222,166,167,216,169,342,171,172,173,174,198,176,177,178,179,8220,181,182,183,248,185,343,187,188,189,190,230,260,302,256,262,196,197,280,274,268,201,377,278,290,310,298,315,352,323,325,211,332,213,214,215,370,321,346,362,220,379,381,223,261,303,257,263,228,229,281,275,269,233,378,279,291,311,299,316,353,324,326,243,333,245,246,247,371,322,347,363,252,380,382,8217],
"iso-8859-14":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,7682,7683,163,266,267,7690,167,7808,169,7810,7691,7922,173,174,376,7710,7711,288,289,7744,7745,182,7766,7809,7767,7811,7776,7923,7812,7813,7777,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,372,209,210,211,212,213,214,7786,216,217,218,219,220,221,374,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,373,241,242,243,244,245,246,7787,248,249,250,251,252,253,375,255],
"iso-8859-15":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,161,162,163,8364,165,352,167,353,169,170,171,172,173,174,175,176,177,178,179,381,181,182,183,382,185,186,187,338,339,376,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255],
"iso-8859-16":[128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153,154,155,156,157,158,159,160,260,261,321,8364,8222,352,167,353,169,536,171,377,173,378,379,176,177,268,322,381,8221,182,183,382,269,537,187,338,339,376,380,192,193,194,258,196,262,198,199,200,201,202,203,204,205,206,207,272,323,210,211,212,336,214,346,368,217,218,219,220,280,538,223,224,225,226,259,228,263,230,231,232,233,234,235,236,237,238,239,273,324,242,243,244,337,246,347,369,249,250,251,252,281,539,255],
"koi8-r":[9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9600,9604,9608,9612,9616,9617,9618,9619,8992,9632,8729,8730,8776,8804,8805,160,8993,176,178,183,247,9552,9553,9554,1105,9555,9556,9557,9558,9559,9560,9561,9562,9563,9564,9565,9566,9567,9568,9569,1025,9570,9571,9572,9573,9574,9575,9576,9577,9578,9579,9580,169,1102,1072,1073,1094,1076,1077,1092,1075,1093,1080,1081,1082,1083,1084,1085,1086,1087,1103,1088,1089,1090,1091,1078,1074,1100,1099,1079,1096,1101,1097,1095,1098,1070,1040,1041,1062,1044,1045,1060,1043,1061,1048,1049,1050,1051,1052,1053,1054,1055,1071,1056,1057,1058,1059,1046,1042,1068,1067,1047,1064,1069,1065,1063,1066],
"koi8-u":[9472,9474,9484,9488,9492,9496,9500,9508,9516,9524,9532,9600,9604,9608,9612,9616,9617,9618,9619,8992,9632,8729,8730,8776,8804,8805,160,8993,176,178,183,247,9552,9553,9554,1105,1108,9556,1110,1111,9559,9560,9561,9562,9563,1169,1118,9566,9567,9568,9569,1025,1028,9571,1030,1031,9574,9575,9576,9577,9578,1168,1038,169,1102,1072,1073,1094,1076,1077,1092,1075,1093,1080,1081,1082,1083,1084,1085,1086,1087,1103,1088,1089,1090,1091,1078,1074,1100,1099,1079,1096,1101,1097,1095,1098,1070,1040,1041,1062,1044,1045,1060,1043,1061,1048,1049,1050,1051,1052,1053,1054,1055,1071,1056,1057,1058,1059,1046,1042,1068,1067,1047,1064,1069,1065,1063,1066],
"macintosh":[196,197,199,201,209,214,220,225,224,226,228,227,229,231,233,232,234,235,237,236,238,239,241,243,242,244,246,245,250,249,251,252,8224,176,162,163,167,8226,182,223,174,169,8482,180,168,8800,198,216,8734,177,8804,8805,165,181,8706,8721,8719,960,8747,170,186,937,230,248,191,161,172,8730,402,8776,8710,171,187,8230,160,192,195,213,338,339,8211,8212,8220,8221,8216,8217,247,9674,255,376,8260,8364,8249,8250,64257,64258,8225,183,8218,8222,8240,194,202,193,203,200,205,206,207,204,211,212,63743,210,218,219,217,305,710,732,175,728,729,730,184,733,731,711],
"windows-874":[8364,129,130,131,132,8230,134,135,136,137,138,139,140,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,152,153,154,155,156,157,158,159,160,3585,3586,3587,3588,3589,3590,3591,3592,3593,3594,3595,3596,3597,3598,3599,3600,3601,3602,3603,3604,3605,3606,3607,3608,3609,3610,3611,3612,3613,3614,3615,3616,3617,3618,3619,3620,3621,3622,3623,3624,3625,3626,3627,3628,3629,3630,3631,3632,3633,3634,3635,3636,3637,3638,3639,3640,3641,3642,null,null,null,null,3647,3648,3649,3650,3651,3652,3653,3654,3655,3656,3657,3658,3659,3660,3661,3662,3663,3664,3665,3666,3667,3668,3669,3670,3671,3672,3673,3674,3675,null,null,null,null],
"windows-1250":[8364,129,8218,131,8222,8230,8224,8225,136,8240,352,8249,346,356,381,377,144,8216,8217,8220,8221,8226,8211,8212,152,8482,353,8250,347,357,382,378,160,711,728,321,164,260,166,167,168,169,350,171,172,173,174,379,176,177,731,322,180,181,182,183,184,261,351,187,317,733,318,380,340,193,194,258,196,313,262,199,268,201,280,203,282,205,206,270,272,323,327,211,212,336,214,215,344,366,218,368,220,221,354,223,341,225,226,259,228,314,263,231,269,233,281,235,283,237,238,271,273,324,328,243,244,337,246,247,345,367,250,369,252,253,355,729],
"windows-1251":[1026,1027,8218,1107,8222,8230,8224,8225,8364,8240,1033,8249,1034,1036,1035,1039,1106,8216,8217,8220,8221,8226,8211,8212,152,8482,1113,8250,1114,1116,1115,1119,160,1038,1118,1032,164,1168,166,167,1025,169,1028,171,172,173,174,1031,176,177,1030,1110,1169,181,182,183,1105,8470,1108,187,1112,1029,1109,1111,1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,1103],
"windows-1252":[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,381,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,382,376,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253,254,255],
"windows-1253":[8364,129,8218,402,8222,8230,8224,8225,136,8240,138,8249,140,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,152,8482,154,8250,156,157,158,159,160,901,902,163,164,165,166,167,168,169,null,171,172,173,174,8213,176,177,178,179,900,181,182,183,904,905,906,187,908,189,910,911,912,913,914,915,916,917,918,919,920,921,922,923,924,925,926,927,928,929,null,931,932,933,934,935,936,937,938,939,940,941,942,943,944,945,946,947,948,949,950,951,952,953,954,955,956,957,958,959,960,961,962,963,964,965,966,967,968,969,970,971,972,973,974,null],
"windows-1254":[8364,129,8218,402,8222,8230,8224,8225,710,8240,352,8249,338,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,353,8250,339,157,158,376,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206,207,286,209,210,211,212,213,214,215,216,217,218,219,220,304,350,223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238,239,287,241,242,243,244,245,246,247,248,249,250,251,252,305,351,255],
"windows-1255":[8364,129,8218,402,8222,8230,8224,8225,710,8240,138,8249,140,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,154,8250,156,157,158,159,160,161,162,163,8362,165,166,167,168,169,215,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,247,187,188,189,190,191,1456,1457,1458,1459,1460,1461,1462,1463,1464,1465,1466,1467,1468,1469,1470,1471,1472,1473,1474,1475,1520,1521,1522,1523,1524,null,null,null,null,null,null,null,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,null,null,8206,8207,null],
"windows-1256":[8364,1662,8218,402,8222,8230,8224,8225,710,8240,1657,8249,338,1670,1688,1672,1711,8216,8217,8220,8221,8226,8211,8212,1705,8482,1681,8250,339,8204,8205,1722,160,1548,162,163,164,165,166,167,168,169,1726,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,1563,187,188,189,190,1567,1729,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,215,1591,1592,1593,1594,1600,1601,1602,1603,224,1604,226,1605,1606,1607,1608,231,232,233,234,235,1609,1610,238,239,1611,1612,1613,1614,244,1615,1616,247,1617,249,1618,251,252,8206,8207,1746],
"windows-1257":[8364,129,8218,131,8222,8230,8224,8225,136,8240,138,8249,140,168,711,184,144,8216,8217,8220,8221,8226,8211,8212,152,8482,154,8250,156,175,731,159,160,null,162,163,164,null,166,167,216,169,342,171,172,173,174,198,176,177,178,179,180,181,182,183,248,185,343,187,188,189,190,230,260,302,256,262,196,197,280,274,268,201,377,278,290,310,298,315,352,323,325,211,332,213,214,215,370,321,346,362,220,379,381,223,261,303,257,263,228,229,281,275,269,233,378,279,291,311,299,316,353,324,326,243,333,245,246,247,371,322,347,363,252,380,382,729],
"windows-1258":[8364,129,8218,402,8222,8230,8224,8225,710,8240,138,8249,338,141,142,143,144,8216,8217,8220,8221,8226,8211,8212,732,8482,154,8250,339,157,158,376,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190,191,192,193,194,258,196,197,198,199,200,201,202,203,768,205,206,207,272,209,777,211,212,416,214,215,216,217,218,219,220,431,771,223,224,225,226,259,228,229,230,231,232,233,234,235,769,237,238,239,273,241,803,243,244,417,246,247,248,249,250,251,252,432,8363,255],
"x-mac-cyrillic":[1040,1041,1042,1043,1044,1045,1046,1047,1048,1049,1050,1051,1052,1053,1054,1055,1056,1057,1058,1059,1060,1061,1062,1063,1064,1065,1066,1067,1068,1069,1070,1071,8224,176,1168,163,167,8226,182,1030,174,169,8482,1026,1106,8800,1027,1107,8734,177,8804,8805,1110,181,1169,1032,1028,1108,1031,1111,1033,1113,1034,1114,1112,1029,172,8730,402,8776,8710,171,187,8230,160,1035,1115,1036,1116,1109,8211,8212,8220,8221,8216,8217,247,8222,1038,1118,1039,1119,8470,1025,1105,1103,1072,1073,1074,1075,1076,1077,1078,1079,1080,1081,1082,1083,1084,1085,1086,1087,1088,1089,1090,1091,1092,1093,1094,1095,1096,1097,1098,1099,1100,1101,1102,8364]
};
// For strict environments where `this` inside the global scope
// is `undefined`, take a pure object instead
}(this || {}));
File diff suppressed because it is too large. Load diff
-418
View File
@@ -1,418 +0,0 @@
(function(self) {
'use strict';
// if __disableNativeFetch is set to true, the it will always polyfill fetch
// with Ajax.
if (!self.__disableNativeFetch && self.fetch) {
return
}
function normalizeName(name) {
if (typeof name !== 'string') {
name = String(name)
}
if (/[^a-z0-9\-#$%&'*+.\^_`|~]/i.test(name)) {
throw new TypeError('Invalid character in header field name')
}
return name.toLowerCase()
}
function normalizeValue(value) {
if (typeof value !== 'string') {
value = String(value)
}
return value
}
function Headers(headers) {
this.map = {}
if (headers instanceof Headers) {
headers.forEach(function(value, name) {
this.append(name, value)
}, this)
} else if (headers) {
Object.getOwnPropertyNames(headers).forEach(function(name) {
this.append(name, headers[name])
}, this)
}
}
Headers.prototype.append = function(name, value) {
name = normalizeName(name)
value = normalizeValue(value)
var list = this.map[name]
if (!list) {
list = []
this.map[name] = list
}
list.push(value)
}
Headers.prototype['delete'] = function(name) {
delete this.map[normalizeName(name)]
}
Headers.prototype.get = function(name) {
var values = this.map[normalizeName(name)]
return values ? values[0] : null
}
Headers.prototype.getAll = function(name) {
return this.map[normalizeName(name)] || []
}
Headers.prototype.has = function(name) {
return this.map.hasOwnProperty(normalizeName(name))
}
Headers.prototype.set = function(name, value) {
this.map[normalizeName(name)] = [normalizeValue(value)]
}
Headers.prototype.forEach = function(callback, thisArg) {
Object.getOwnPropertyNames(this.map).forEach(function(name) {
this.map[name].forEach(function(value) {
callback.call(thisArg, value, name, this)
}, this)
}, this)
}
function consumed(body) {
if (body.bodyUsed) {
return Promise.reject(new TypeError('Already read'))
}
body.bodyUsed = true
}
function fileReaderReady(reader) {
return new Promise(function(resolve, reject) {
reader.onload = function() {
resolve(reader.result)
}
reader.onerror = function() {
reject(reader.error)
}
})
}
function readBlobAsArrayBuffer(blob) {
var reader = new FileReader()
reader.readAsArrayBuffer(blob)
return fileReaderReady(reader)
}
function readBlobAsText(blob, options) {
var reader = new FileReader()
var contentType = options.headers.map['content-type'] ? options.headers.map['content-type'].toString() : ''
var regex = /charset\=[0-9a-zA-Z\-\_]*;?/
var _charset = blob.type.match(regex) || contentType.match(regex)
var args = [blob]
if(_charset) {
args.push(_charset[0].replace(/^charset\=/, '').replace(/;$/, ''))
}
reader.readAsText.apply(reader, args)
return fileReaderReady(reader)
}
var support = {
blob: 'FileReader' in self && 'Blob' in self && (function() {
try {
new Blob();
return true
} catch(e) {
return false
}
})(),
formData: 'FormData' in self,
arrayBuffer: 'ArrayBuffer' in self
}
function Body() {
this.bodyUsed = false
this._initBody = function(body, options) {
this._bodyInit = body
if (typeof body === 'string') {
this._bodyText = body
} else if (support.blob && Blob.prototype.isPrototypeOf(body)) {
this._bodyBlob = body
this._options = options
} else if (support.formData && FormData.prototype.isPrototypeOf(body)) {
this._bodyFormData = body
} else if (!body) {
this._bodyText = ''
} else if (support.arrayBuffer && ArrayBuffer.prototype.isPrototypeOf(body)) {
// Only support ArrayBuffers for POST method.
// Receiving ArrayBuffers happens via Blobs, instead.
} else {
throw new Error('unsupported BodyInit type')
}
}
if (support.blob) {
this.blob = function() {
var rejected = consumed(this)
if (rejected) {
return rejected
}
if (this._bodyBlob) {
return Promise.resolve(this._bodyBlob)
} else if (this._bodyFormData) {
throw new Error('could not read FormData body as blob')
} else {
return Promise.resolve(new Blob([this._bodyText]))
}
}
this.arrayBuffer = function() {
return this.blob().then(readBlobAsArrayBuffer)
}
this.text = function() {
var rejected = consumed(this)
if (rejected) {
return rejected
}
if (this._bodyBlob) {
return readBlobAsText(this._bodyBlob, this._options)
} else if (this._bodyFormData) {
throw new Error('could not read FormData body as text')
} else {
return Promise.resolve(this._bodyText)
}
}
} else {
this.text = function() {
var rejected = consumed(this)
return rejected ? rejected : Promise.resolve(this._bodyText)
}
}
if (support.formData) {
this.formData = function() {
return this.text().then(decode)
}
}
this.json = function() {
return this.text().then(JSON.parse)
}
return this
}
// HTTP methods whose capitalization should be normalized
var methods = ['DELETE', 'GET', 'HEAD', 'OPTIONS', 'POST', 'PUT']
function normalizeMethod(method) {
var upcased = method.toUpperCase()
return (methods.indexOf(upcased) > -1) ? upcased : method
}
function Request(input, options) {
options = options || {}
var body = options.body
if (Request.prototype.isPrototypeOf(input)) {
if (input.bodyUsed) {
throw new TypeError('Already read')
}
this.url = input.url
this.credentials = input.credentials
if (!options.headers) {
this.headers = new Headers(input.headers)
}
this.method = input.method
this.mode = input.mode
if (!body) {
body = input._bodyInit
input.bodyUsed = true
}
} else {
this.url = input
}
this.credentials = options.credentials || this.credentials || 'omit'
if (options.headers || !this.headers) {
this.headers = new Headers(options.headers)
}
this.method = normalizeMethod(options.method || this.method || 'GET')
this.mode = options.mode || this.mode || null
this.referrer = null
if ((this.method === 'GET' || this.method === 'HEAD') && body) {
throw new TypeError('Body not allowed for GET or HEAD requests')
}
this._initBody(body, options)
}
Request.prototype.clone = function() {
return new Request(this)
}
function decode(body) {
var form = new FormData()
body.trim().split('&').forEach(function(bytes) {
if (bytes) {
var split = bytes.split('=')
var name = split.shift().replace(/\+/g, ' ')
var value = split.join('=').replace(/\+/g, ' ')
form.append(decodeURIComponent(name), decodeURIComponent(value))
}
})
return form
}
function headers(xhr) {
var head = new Headers()
var pairs = xhr.getAllResponseHeaders().trim().split('\n')
pairs.forEach(function(header) {
var split = header.trim().split(':')
var key = split.shift().trim()
var value = split.join(':').trim()
head.append(key, value)
})
return head
}
Body.call(Request.prototype)
function Response(bodyInit, options) {
if (!options) {
options = {}
}
this._initBody(bodyInit, options)
this.type = 'default'
this.status = options.status
this.ok = this.status >= 200 && this.status < 300
this.statusText = options.statusText
this.headers = options.headers instanceof Headers ? options.headers : new Headers(options.headers)
this.url = options.url || ''
}
Body.call(Response.prototype)
Response.prototype.clone = function() {
return new Response(this._bodyInit, {
status: this.status,
statusText: this.statusText,
headers: new Headers(this.headers),
url: this.url
})
}
Response.error = function() {
var response = new Response(null, {status: 0, statusText: ''})
response.type = 'error'
return response
}
var redirectStatuses = [301, 302, 303, 307, 308]
Response.redirect = function(url, status) {
if (redirectStatuses.indexOf(status) === -1) {
throw new RangeError('Invalid status code')
}
return new Response(null, {status: status, headers: {location: url}})
}
self.Headers = Headers;
self.Request = Request;
self.Response = Response;
self.fetch = function(input, init) {
return new Promise(function(resolve, reject) {
var request
if (Request.prototype.isPrototypeOf(input) && !init) {
request = input
} else {
request = new Request(input, init)
}
var xhr = new XMLHttpRequest()
function responseURL() {
if ('responseURL' in xhr) {
return xhr.responseURL
}
// Avoid security warnings on getResponseHeader when not allowed by CORS
if (/^X-Request-URL:/m.test(xhr.getAllResponseHeaders())) {
return xhr.getResponseHeader('X-Request-URL')
}
return;
}
var __onLoadHandled = false;
function onload() {
if (xhr.readyState !== 4) {
return
}
var status = (xhr.status === 1223) ? 204 : xhr.status
if (status < 100 || status > 599) {
if (__onLoadHandled) { return; } else { __onLoadHandled = true; }
reject(new TypeError('Network request failed'))
return
}
var options = {
status: status,
statusText: xhr.statusText,
headers: headers(xhr),
url: responseURL()
}
var body = 'response' in xhr ? xhr.response : xhr.responseText;
if (__onLoadHandled) { return; } else { __onLoadHandled = true; }
resolve(new Response(body, options))
}
xhr.onreadystatechange = onload;
xhr.onload = onload;
xhr.onerror = function() {
if (__onLoadHandled) { return; } else { __onLoadHandled = true; }
reject(new TypeError('Network request failed'))
}
xhr.open(request.method, request.url, true)
// `withCredentials` should be setted after calling `.open` in IE10
// http://stackoverflow.com/a/19667959/1219343
try {
if (request.credentials === 'include') {
if ('withCredentials' in xhr) {
xhr.withCredentials = true;
} else {
console && console.warn && console.warn('withCredentials is not supported, you can ignore this warning');
}
}
} catch (e) {
console && console.warn && console.warn('set withCredentials error:' + e);
}
if ('responseType' in xhr && support.blob) {
xhr.responseType = 'blob'
}
request.headers.forEach(function(value, name) {
xhr.setRequestHeader(name, value)
})
xhr.send(typeof request._bodyInit === 'undefined' ? null : request._bodyInit)
})
}
self.fetch.polyfill = true
// Support CommonJS
if (typeof module !== 'undefined' && module.exports) {
module.exports = self.fetch;
}
})(typeof self !== 'undefined' ? self : this);
+3 -5
View File
@@ -1,12 +1,10 @@
/*!
* vConsole v3.2.0 (https://github.com/Tencent/vConsole)
*
* vConsole v3.15.0 (https://github.com/Tencent/vConsole)
*
* Tencent is pleased to support the open source community by making vConsole available.
* Copyright (C) 2017 THL A29 Limited, a Tencent company. All rights reserved.
* Licensed under the MIT License (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at
* http://opensource.org/licenses/MIT
* Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
*/
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.VConsole=t():e.VConsole=t()}(this,function(){return function(e){function t(n){if(o[n])return o[n].exports;var i=o[n]={exports:{},id:n,loaded:!1};return e[n].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var o={};return t.m=e,t.c=o,t.p="",t(0)}([function(e,t,o){"use strict";function n(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0}),o(1);var i=o(2),a=n(i),r=o(18),l=n(r);a["default"].VConsolePlugin=l["default"],t["default"]=a["default"],e.exports=t["default"]},function(e,t){"use strict";if("undefined"==typeof Symbol){window.Symbol=function(){};var o="__symbol_iterator_key";window.Symbol.iterator=o,Array.prototype[o]=function(){var e=this,t=0;return{next:function(){return{done:e.length===t,value:e.length===t?void 0:e[t++]}}}}}},function(e,t,o){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t["default"]=e,t}function i(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,o,n){return o&&e(t.prototype,o),n&&e(t,n),t}}(),l=o(3),c=i(l),s=o(4),d=n(s),u=o(5),v=i(u);o(7);var f=o(11),p=i(f),h=o(12),g=i(h),b=o(13),m=i(b),y=o(14),_=i(y),w=o(15),x=i(w),k=o(16),C=i(k),T=o(24),O=i(T),E=o(26),S=i(E),L=o(30),j=i(L),N=o(37),P=i(N),M="#__vconsole",A=function(){function e(t){if(a(this,e),v["default"].one(M))return void console.debug("vConsole is already exists.");var o=this;if(this.version=c["default"].version,this.$dom=null,this.isInited=!1,this.option={defaultPlugins:["system","network","element","storage"]},this.activedTab="",this.tabList=[],this.pluginList={},this.switchPos={x:10,y:10,startX:0,startY:0,endX:0,endY:0},this.tool=d,this.$=v["default"],d.isObject(t))for(var n in t)this.option[n]=t[n];this._addBuiltInPlugins();var i=function(){o.isInited||(o._render(),o._mockTap(),o._bindEvent(),o._autoRun())};void 0!==document?"complete"==document.readyState?i():v["default"].bind(window,"load",i):!function(){var e=void 0,t=function o(){document&&"complete"==document.readyState?(e&&clearTimeout(e),i()):e=setTimeout(o,1)};e=setTimeout(t,1)}()}return r(e,[{key:"_addBuiltInPlugins",value:function(){this.addPlugin(new C["default"]("default","Log"));var e=this.option.defaultPlugins,t={system:{proto:O["default"],name:"System"},network:{proto:S["default"],name:"Network"},element:{proto:j["default"],name:"Element"},storage:{proto:P["default"],name:"Storage"}};if(e&&d.isArray(e))for(var o=0;o<e.length;o++){var n=t[e[o]];n?this.addPlugin(new n.proto(e[o],n.name)):console.debug("Unrecognized default plugin ID:",e[o])}}},{key:"_render",value:function(){if(!v["default"].one(M)){var e=document.createElement("div");e.innerHTML=p["default"],document.documentElement.insertAdjacentElement("beforeend",e.children[0])}this.$dom=v["default"].one(M);var t=v["default"].one(".vc-switch",this.$dom),o=1*d.getStorage("switch_x"),n=1*d.getStorage("switch_y");(o||n)&&(o+t.offsetWidth>document.documentElement.offsetWidth&&(o=document.documentElement.offsetWidth-t.offsetWidth),n+t.offsetHeight>document.documentElement.offsetHeight&&(n=document.documentElement.offsetHeight-t.offsetHeight),0>o&&(o=0),0>n&&(n=0),this.switchPos.x=o,this.switchPos.y=n,v["default"].one(".vc-switch").style.right=o+"px",v["default"].one(".vc-switch").style.bottom=n+"px");var i=window.devicePixelRatio||1,a=document.querySelector('[name="viewport"]');if(a&&a.content){var r=a.content.match(/initial\-scale\=\d+(\.\d+)?/),l=r?parseFloat(r[0].split("=")[1]):1;1>l&&(this.$dom.style.fontSize=13*i+"px")}v["default"].one(".vc-mask",this.$dom).style.display="none"}},{key:"_mockTap",value:function(){var e=700,t=10,o=void 0,n=void 0,i=void 0,a=!1,r=null;this.$dom.addEventListener("touchstart",function(e){if(void 0===o){var t=e.targetTouches[0];n=t.pageX,i=t.pageY,o=e.timeStamp,r=e.target.nodeType===Node.TEXT_NODE?e.target.parentNode:e.target}},!1),this.$dom.addEventListener("touchmove",function(e){var o=e.changedTouches[0];(Math.abs(o.pageX-n)>t||Math.abs(o.pageY-i)>t)&&(a=!0)}),this.$dom.addEventListener("touchend",function(t){if(a===!1&&t.timeStamp-o<e&&null!=r){var n=r.tagName.toLowerCase(),i=!1;switch(n){case"textarea":i=!0;break;case"input":switch(r.type){case"button":case"checkbox":case"file":case"image":case"radio":case"submit":i=!1;break;default:i=!r.disabled&&!r.readOnly}}i?r.focus():t.preventDefault();var l=t.changedTouches[0],c=document.createEvent("MouseEvents");c.initMouseEvent("click",!0,!0,window,1,l.screenX,l.screenY,l.clientX,l.clientY,!1,!Line truncated
}),a=e.href;e.href=URL.createObjectURL(i),a&&URL.revokeObjectURL(a)}var f={},p=function(e){var t;return function(){return"undefined"==typeof t&&(t=e.apply(this,arguments)),t}},h=p(function(){return/msie [6-9]\b/.test(window.navigator.userAgent.toLowerCase())}),g=p(function(){return document.head||document.getElementsByTagName("head")[0]}),b=null,m=0,y=[];e.exports=function(e,t){t=t||{},"undefined"==typeof t.singleton&&(t.singleton=h()),"undefined"==typeof t.insertAt&&(t.insertAt="bottom");var o=i(e);return n(o,t),function(e){for(var a=[],r=0;r<o.length;r++){var l=o[r],c=f[l.id];c.refs--,a.push(c)}if(e){var s=i(e);n(s,t)}for(var r=0;r<a.length;r++){var c=a[r];if(0===c.refs){for(var d=0;d<c.parts.length;d++)c.parts[d]();delete f[c.id]}}}};var _=function(){var e=[];return function(t,o){return e[t]=o,e.filter(Boolean).join("\n")}}()},function(e,t){e.exports='<div id="__vconsole" class="">\n <div class="vc-switch">vConsole</div>\n <div class="vc-mask">\n </div>\n <div class="vc-panel">\n <div class="vc-tabbar">\n </div>\n <div class="vc-topbar">\n </div>\n <div class="vc-content">\n </div>\n <div class="vc-toolbar">\n <a class="vc-tool vc-global-tool vc-tool-last vc-hide">Hide</a>\n </div>\n </div>\n</div>'},function(e,t){e.exports='<a class="vc-tab" data-tab="{{id}}" id="__vc_tab_{{id}}">{{name}}</a>'},function(e,t){e.exports='<div class="vc-logbox" id="__vc_log_{{id}}">\n \n</div>'},function(e,t){e.exports='<a class="vc-toptab vc-topbar-{{pluginID}}{{if (className)}} {{className}}{{/if}}">{{name}}</a>'},function(e,t){e.exports='<a class="vc-tool vc-tool-{{pluginID}}">{{name}}</a>'},function(e,t,o){"use strict";function n(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var o in e)Object.prototype.hasOwnProperty.call(e,o)&&(t[o]=e[o]);return t["default"]=e,t}function i(e){return e&&e.__esModule?e:{"default":e}}function a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var c=function(){function e(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,o,n){return o&&e(t.prototype,o),n&&e(t,n),t}}(),s=function w(e,t,o){null===e&&(e=Function.prototype);var n=Object.getOwnPropertyDescriptor(e,t);if(void 0===n){var i=Object.getPrototypeOf(e);return null===i?void 0:w(i,t,o)}if("value"in n)return n.value;var a=n.get;if(void 0!==a)return a.call(o)},d=o(5),u=i(d),v=o(4),f=n(v),p=o(17),h=i(p),g=o(22),b=i(g),m=o(23),y=i(m),_=function(e){function t(){var e;a(this,t);for(var o=arguments.length,n=Array(o),i=0;o>i;i++)n[i]=arguments[i];var l=r(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(n)));return l.tplTabbox=b["default"],l.windowOnError=null,l}return l(t,e),c(t,[{key:"onReady",value:function(){var e=this;s(Object.getPrototypeOf(t.prototype),"onReady",this).call(this),u["default"].bind(u["default"].one(".vc-cmd",this.$tabbox),"submit",function(t){t.preventDefault();var o=u["default"].one(".vc-cmd-input",t.target),n=o.value;o.value="",""!==n&&e.evalCommand(n)});var o="";o+="if (!!window) {",o+="window.__vConsole_cmd_result = undefined;",o+="window.__vConsole_cmd_error = false;",o+="}";var n=document.getElementsByTagName("script"),i="";n.length>0&&(i=n[0].getAttribute("nonce")||"");var a=document.createElement("SCRIPT");a.innerHTML=o,a.setAttribute("nonce",i),document.documentElement.appendChild(a),document.documentElement.removeChild(a)}},{key:"mockConsole",value:function(){s(Object.getPrototypeOf(t.prototype),"mockConsole",this).call(this);var e=this;f.isFunction(window.onerror)&&(this.windowOnError=window.onerror),window.onerror=function(t,o,n,i,a){var r=t;o&&(r+="\n"+o.replace(location.origin,"")),(n||i)&&(r+=":"+n+":"+i);var l=!!a&&!!a.stack,c=l&&a.stack.toString()||"";e.printLog({logType:"error",logs:[r,c],noOrigin:!0}),f.isFunction(e.windowOnError)&&e.windowOnError.call(window,t,o,n,i,a)}}},{key:"evalCommand",value:function(e){this.printLog({logType:"log",content:u["default"].render(y["default"],{content:e,type:"input"}),noMeta:!0,style:""});var t="";t+="try {\n",t+="window.__vConsole_cmd_result = (function() {\n",t+="return "+e+";\n",t+="})();\n",t+="window.__vConsole_cmd_error = false;\n",t+="} catch (e) {\n",t+="window.__vConsole_cmd_result = e.message;\n",t+="window.__vConsole_cmd_error = true;\n",t+="}";var o=document.getElementsByTagName("script"),n="";o.length>0&&(n=o[0].getAttribute("noncLine truncated
}function r(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function l(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var c=function(){function e(e,t){for(var o=0;o<t.length;o++){var n=t[o];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}return function(t,o,n){return o&&e(t.prototype,o),n&&e(t,n),t}}();o(31);var s=o(18),d=i(s),u=o(33),v=i(u),f=o(34),p=i(f),h=o(4),g=(n(h),o(5)),b=i(g),m=function(e){function t(){var e;a(this,t);for(var o=arguments.length,n=Array(o),i=0;o>i;i++)n[i]=arguments[i];var l=r(this,(e=Object.getPrototypeOf(t)).call.apply(e,[this].concat(n))),c=l;c.isInited=!1,c.node={},c.$tabbox=b["default"].render(v["default"],{}),c.nodes=[],c.activedElem={};var s=window.MutationObserver||window.WebKitMutationObserver||window.MozMutationObserver;return c.observer=new s(function(e){for(var t=0;t<e.length;t++){var o=e[t];c._isInVConsole(o.target)||c.onMutation(o)}}),l}return l(t,e),c(t,[{key:"onRenderTab",value:function(e){e(this.$tabbox)}},{key:"onAddTool",value:function(e){var t=this,o=[{name:"Expend",global:!1,onClick:function(e){if(t.activedElem)if(b["default"].hasClass(t.activedElem,"vc-toggle"))for(var o=0;o<t.activedElem.childNodes.length;o++){var n=t.activedElem.childNodes[o];if(b["default"].hasClass(n,"vcelm-l")&&!b["default"].hasClass(n,"vcelm-noc")&&!b["default"].hasClass(n,"vc-toggle")){b["default"].one(".vcelm-node",n).click();break}}else b["default"].one(".vcelm-node",t.activedElem).click()}},{name:"Collapse",global:!1,onClick:function(e){t.activedElem&&(b["default"].hasClass(t.activedElem,"vc-toggle")?b["default"].one(".vcelm-node",t.activedElem).click():t.activedElem.parentNode&&b["default"].hasClass(t.activedElem.parentNode,"vcelm-l")&&b["default"].one(".vcelm-node",t.activedElem.parentNode).click())}}];e(o)}},{key:"onShow",value:function(){if(!this.isInited){this.isInited=!0,this.node=this.getNode(document.documentElement);var e=this.renderView(this.node,b["default"].one(".vc-log",this.$tabbox)),t=b["default"].one(".vcelm-node",e);t&&t.click();var o={attributes:!0,childList:!0,characterData:!0,subtree:!0};this.observer.observe(document.documentElement,o)}}},{key:"onRemove",value:function(){this.observer.disconnect()}},{key:"onMutation",value:function(e){switch(e.type){case"childList":e.removedNodes.length>0&&this.onChildRemove(e),e.addedNodes.length>0&&this.onChildAdd(e);break;case"attributes":this.onAttributesChange(e);break;case"characterData":this.onCharacterDataChange(e)}}},{key:"onChildRemove",value:function(e){var t=e.target,o=t.__vconsole_node;if(o){for(var n=0;n<e.removedNodes.length;n++){var i=e.removedNodes[n],a=i.__vconsole_node;a&&a.view&&a.view.parentNode.removeChild(a.view)}this.getNode(t)}}},{key:"onChildAdd",value:function(e){var t=e.target,o=t.__vconsole_node;if(o){this.getNode(t),o.view&&b["default"].removeClass(o.view,"vcelm-noc");for(var n=0;n<e.addedNodes.length;n++){var i=e.addedNodes[n],a=i.__vconsole_node;if(a)if(null!==e.nextSibling){var r=e.nextSibling.__vconsole_node;r.view&&this.renderView(a,r.view,"insertBefore")}else o.view&&(o.view.lastChild?this.renderView(a,o.view.lastChild,"insertBefore"):this.renderView(a,o.view))}}}},{key:"onAttributesChange",value:function(e){var t=e.target.__vconsole_node;t&&(t=this.getNode(e.target),t.view&&this.renderView(t,t.view,!0))}},{key:"onCharacterDataChange",value:function(e){var t=e.target.__vconsole_node;t&&(t=this.getNode(e.target),t.view&&this.renderView(t,t.view,!0))}},{key:"renderView",value:function(e,t,o){var n=this,i=new p["default"](e).get();switch(e.view=i,b["default"].delegate(i,"click",".vcelm-node",function(t){t.stopPropagation();var o=this.parentNode;if(!b["default"].hasClass(o,"vcelm-noc")){n.activedElem=o,b["default"].hasClass(o,"vc-toggle")?b["default"].removeClass(o,"vc-toggle"):b["default"].addClass(o,"vc-toggle");for(var i=-1,a=0;a<o.children.length;a++){var r=o.children[a];b["default"].hasClass(r,"vcelm-l")&&(i++,r.children.length>0||(e.childNodes[i]?n.renderView(e.childNodes[i],r,"replace"):r.style.display="none"))}}}),o){case"replace":t.parentNode.replaceChild(i,t);break;case"insertBefore":t.parentNode.insertBefore(i,t);break;default:t.appendChild(i)}return i}},{key:"getNode",value:function(e){if(!this._isIgnoredElement(e)){var t=e.__vconsole_node||{};if(t.nodeType=e.nodeType,t.nodeName=e.nodeName,t.tagName=e.tagName||"",t.textContent="",t.nodeType!=e.TEXT_NODE&&t.nodeType!=e.DOCUMENT_TYPE_NODE||(t.textContent=e.textContent),t.id=e.id||"",t.className=e.className||"",t.attributes=[],e.hasAttributes&&e.hasAttributes())for(var o=0;o<eLine truncated
!function(t,n){"object"==typeof exports&&"object"==typeof module?module.exports=n():"function"==typeof define&&define.amd?define("VConsole",[],n):"object"==typeof exports?exports.VConsole=n():t.VConsole=n()}(this||self,(function(){return function(){var __webpack_modules__={4264:function(t,n,e){t.exports=e(7588)},5036:function(t,n,e){e(1719),e(5677),e(6394),e(5334),e(6969),e(2021),e(8328),e(2129);var o=e(1287);t.exports=o.Promise},2582:function(t,n,e){e(1646),e(6394),e(2004),e(462),e(8407),e(2429),e(1172),e(8288),e(1274),e(8201),e(6626),e(3211),e(9952),e(15),e(9831),e(7521),e(2972),e(6956),e(5222),e(2257);var o=e(1287);t.exports=o.Symbol},8257:function(t,n,e){var o=e(7583),r=e(9212),i=e(5637),a=o.TypeError;t.exports=function(t){if(r(t))return t;throw a(i(t)+" is not a function")}},1186:function(t,n,e){var o=e(7583),r=e(2097),i=e(5637),a=o.TypeError;t.exports=function(t){if(r(t))return t;throw a(i(t)+" is not a constructor")}},9882:function(t,n,e){var o=e(7583),r=e(9212),i=o.String,a=o.TypeError;t.exports=function(t){if("object"==typeof t||r(t))return t;throw a("Can't set "+i(t)+" as a prototype")}},6288:function(t,n,e){var o=e(3649),r=e(3590),i=e(4615),a=o("unscopables"),c=Array.prototype;null==c[a]&&i.f(c,a,{configurable:!0,value:r(null)}),t.exports=function(t){c[a][t]=!0}},4761:function(t,n,e){var o=e(7583),r=e(2447),i=o.TypeError;t.exports=function(t,n){if(r(n,t))return t;throw i("Incorrect invocation")}},2569:function(t,n,e){var o=e(7583),r=e(794),i=o.String,a=o.TypeError;t.exports=function(t){if(r(t))return t;throw a(i(t)+" is not an object")}},5766:function(t,n,e){var o=e(2977),r=e(6782),i=e(1825),a=function(t){return function(n,e,a){var c,u=o(n),s=i(u),l=r(a,s);if(t&&e!=e){for(;s>l;)if((c=u[l++])!=c)return!0}else for(;s>l;l++)if((t||l in u)&&u[l]===e)return t||l||0;return!t&&-1}};t.exports={includes:a(!0),indexOf:a(!1)}},4805:function(t,n,e){var o=e(2938),r=e(7386),i=e(5044),a=e(1324),c=e(1825),u=e(4822),s=r([].push),l=function(t){var n=1==t,e=2==t,r=3==t,l=4==t,f=6==t,d=7==t,v=5==t||f;return function(h,p,g,m){for(var _,b,y=a(h),w=i(y),E=o(p,g),L=c(w),T=0,x=m||u,C=n?x(h,L):e||d?x(h,0):void 0;L>T;T++)if((v||T in w)&&(b=E(_=w[T],T,y),t))if(n)C[T]=b;else if(b)switch(t){case 3:return!0;case 5:return _;case 6:return T;case 2:s(C,_)}else switch(t){case 4:return!1;case 7:s(C,_)}return f?-1:r||l?l:C}};t.exports={forEach:l(0),map:l(1),filter:l(2),some:l(3),every:l(4),find:l(5),findIndex:l(6),filterReject:l(7)}},9269:function(t,n,e){var o=e(6544),r=e(3649),i=e(4061),a=r("species");t.exports=function(t){return i>=51||!o((function(){var n=[];return(n.constructor={})[a]=function(){return{foo:1}},1!==n[t](Boolean).foo}))}},4546:function(t,n,e){var o=e(7583),r=e(6782),i=e(1825),a=e(5999),c=o.Array,u=Math.max;t.exports=function(t,n,e){for(var o=i(t),s=r(n,o),l=r(void 0===e?o:e,o),f=c(u(l-s,0)),d=0;s<l;s++,d++)a(f,d,t[s]);return f.length=d,f}},6917:function(t,n,e){var o=e(7386);t.exports=o([].slice)},5289:function(t,n,e){var o=e(7583),r=e(4521),i=e(2097),a=e(794),c=e(3649)("species"),u=o.Array;t.exports=function(t){var n;return r(t)&&(n=t.constructor,(i(n)&&(n===u||r(n.prototype))||a(n)&&null===(n=n[c]))&&(n=void 0)),void 0===n?u:n}},4822:function(t,n,e){var o=e(5289);t.exports=function(t,n){return new(o(t))(0===n?0:n)}},3616:function(t,n,e){var o=e(3649)("iterator"),r=!1;try{var i=0,a={next:function(){return{done:!!i++}},return:function(){r=!0}};a[o]=function(){return this},Array.from(a,(function(){throw 2}))}catch(t){}t.exports=function(t,n){if(!n&&!r)return!1;var e=!1;try{var i={};i[o]=function(){return{next:function(){return{done:e=!0}}}},t(i)}catch(t){}return e}},9624:function(t,n,e){var o=e(7386),r=o({}.toString),i=o("".slice);t.exports=function(t){return i(r(t),8,-1)}},3058:function(t,n,e){var o=e(7583),r=e(8191),i=e(9212),a=e(9624),c=e(3649)("toStringTag"),u=o.Object,s="Arguments"==a(function(){return arguments}());t.exports=r?a:function(t){var n,e,o;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(e=function(t,n){try{return t[n]}catch(t){}}(n=u(t),c))?e:s?a(n):"Object"==(o=a(n))&&i(n.callee)?"Arguments":o}},1509:function(t,n,e){var o=e(7386)("".replace),r=String(Error("zxcasd").stack),i=/\n\s*at [^:]*:[^\n]*/,a=i.test(r);t.exports=function(t,n){if(a&&"string"==typeof t)for(;n--;)t=o(t,i,"");return t}},3478:function(t,n,e){var o=e(2870),r=e(929),i=e(6683),a=e(4615);t.exports=function(t,n,e){for(var c=r(n),u=a.f,s=i.f,l=0;l<c.length;l++){var f=c[l];o(t,f)||e&&o(e,f)||u(t,f,s(n,f))}}},926:function(t,n,e){var o=e(6544);t.exports=!o((function(){function t(){}return t.prototype.constructor=null,Object.getPrototypeOf(new t)!==t.prototype}))},4683:function(t,n,e){"use strict";var o=e(2365).IteratorPrototype,r=e(3590),i=e(4677),a=e(8821),c=e(339),u=function(){return this};t.exports=function(t,n,e,s){var l=n+" Iterator";return t.prototype=r(o,{next:i(+!s,e)}),a(t,l,!1,!0),c[l]=u,t}},57:function(t,n,e){var o=e(8494),r=e(4615),i=e(4677);t.exports=o?function(t,n,e){return r.f(t,n,i(1,e))}:function(t,n,e){reLine truncated
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 276 KiB

+361
View File
@@ -0,0 +1,361 @@
WEBVTT
00:00.000 --> 00:05.000
bbb-sprite.jpg#xywh=0,0,128,72
00:05.000 --> 00:10.000
bbb-sprite.jpg#xywh=128,0,128,72
00:10.000 --> 00:15.000
bbb-sprite.jpg#xywh=256,0,128,72
00:15.000 --> 00:20.000
bbb-sprite.jpg#xywh=384,0,128,72
00:20.000 --> 00:25.000
bbb-sprite.jpg#xywh=512,0,128,72
00:25.000 --> 00:30.000
bbb-sprite.jpg#xywh=640,0,128,72
00:30.000 --> 00:35.000
bbb-sprite.jpg#xywh=768,0,128,72
00:35.000 --> 00:40.000
bbb-sprite.jpg#xywh=896,0,128,72
00:40.000 --> 00:45.000
bbb-sprite.jpg#xywh=1024,0,128,72
00:45.000 --> 00:50.000
bbb-sprite.jpg#xywh=1152,0,128,72
00:50.000 --> 00:55.000
bbb-sprite.jpg#xywh=1280,0,128,72
00:55.000 --> 01:00.000
bbb-sprite.jpg#xywh=0,72,128,72
01:00.000 --> 01:05.000
bbb-sprite.jpg#xywh=128,72,128,72
01:05.000 --> 01:10.000
bbb-sprite.jpg#xywh=256,72,128,72
01:10.000 --> 01:15.000
bbb-sprite.jpg#xywh=384,72,128,72
01:15.000 --> 01:20.000
bbb-sprite.jpg#xywh=512,72,128,72
01:20.000 --> 01:25.000
bbb-sprite.jpg#xywh=640,72,128,72
01:25.000 --> 01:30.000
bbb-sprite.jpg#xywh=768,72,128,72
01:30.000 --> 01:35.000
bbb-sprite.jpg#xywh=896,72,128,72
01:35.000 --> 01:40.000
bbb-sprite.jpg#xywh=1024,72,128,72
01:40.000 --> 01:45.000
bbb-sprite.jpg#xywh=1152,72,128,72
01:45.000 --> 01:50.000
bbb-sprite.jpg#xywh=1280,72,128,72
01:50.000 --> 01:55.000
bbb-sprite.jpg#xywh=0,144,128,72
01:55.000 --> 02:00.000
bbb-sprite.jpg#xywh=128,144,128,72
02:00.000 --> 02:05.000
bbb-sprite.jpg#xywh=256,144,128,72
02:05.000 --> 02:10.000
bbb-sprite.jpg#xywh=384,144,128,72
02:10.000 --> 02:15.000
bbb-sprite.jpg#xywh=512,144,128,72
02:15.000 --> 02:20.000
bbb-sprite.jpg#xywh=640,144,128,72
02:20.000 --> 02:25.000
bbb-sprite.jpg#xywh=768,144,128,72
02:25.000 --> 02:30.000
bbb-sprite.jpg#xywh=896,144,128,72
02:30.000 --> 02:35.000
bbb-sprite.jpg#xywh=1024,144,128,72
02:35.000 --> 02:40.000
bbb-sprite.jpg#xywh=1152,144,128,72
02:40.000 --> 02:45.000
bbb-sprite.jpg#xywh=1280,144,128,72
02:45.000 --> 02:50.000
bbb-sprite.jpg#xywh=0,216,128,72
02:50.000 --> 02:55.000
bbb-sprite.jpg#xywh=128,216,128,72
02:55.000 --> 03:00.000
bbb-sprite.jpg#xywh=256,216,128,72
03:00.000 --> 03:05.000
bbb-sprite.jpg#xywh=384,216,128,72
03:05.000 --> 03:10.000
bbb-sprite.jpg#xywh=512,216,128,72
03:10.000 --> 03:15.000
bbb-sprite.jpg#xywh=640,216,128,72
03:15.000 --> 03:20.000
bbb-sprite.jpg#xywh=768,216,128,72
03:20.000 --> 03:25.000
bbb-sprite.jpg#xywh=896,216,128,72
03:25.000 --> 03:30.000
bbb-sprite.jpg#xywh=1024,216,128,72
03:30.000 --> 03:35.000
bbb-sprite.jpg#xywh=1152,216,128,72
03:35.000 --> 03:40.000
bbb-sprite.jpg#xywh=1280,216,128,72
03:40.000 --> 03:45.000
bbb-sprite.jpg#xywh=0,288,128,72
03:45.000 --> 03:50.000
bbb-sprite.jpg#xywh=128,288,128,72
03:50.000 --> 03:55.000
bbb-sprite.jpg#xywh=256,288,128,72
03:55.000 --> 04:00.000
bbb-sprite.jpg#xywh=384,288,128,72
04:00.000 --> 04:05.000
bbb-sprite.jpg#xywh=512,288,128,72
04:05.000 --> 04:10.000
bbb-sprite.jpg#xywh=640,288,128,72
04:10.000 --> 04:15.000
bbb-sprite.jpg#xywh=768,288,128,72
04:15.000 --> 04:20.000
bbb-sprite.jpg#xywh=896,288,128,72
04:20.000 --> 04:25.000
bbb-sprite.jpg#xywh=1024,288,128,72
04:25.000 --> 04:30.000
bbb-sprite.jpg#xywh=1152,288,128,72
04:30.000 --> 04:35.000
bbb-sprite.jpg#xywh=1280,288,128,72
04:35.000 --> 04:40.000
bbb-sprite.jpg#xywh=0,360,128,72
04:40.000 --> 04:45.000
bbb-sprite.jpg#xywh=128,360,128,72
04:45.000 --> 04:50.000
bbb-sprite.jpg#xywh=256,360,128,72
04:50.000 --> 04:55.000
bbb-sprite.jpg#xywh=384,360,128,72
04:55.000 --> 05:00.000
bbb-sprite.jpg#xywh=512,360,128,72
05:00.000 --> 05:05.000
bbb-sprite.jpg#xywh=640,360,128,72
05:05.000 --> 05:10.000
bbb-sprite.jpg#xywh=768,360,128,72
05:10.000 --> 05:15.000
bbb-sprite.jpg#xywh=896,360,128,72
05:15.000 --> 05:20.000
bbb-sprite.jpg#xywh=1024,360,128,72
05:20.000 --> 05:25.000
bbb-sprite.jpg#xywh=1152,360,128,72
05:25.000 --> 05:30.000
bbb-sprite.jpg#xywh=1280,360,128,72
05:30.000 --> 05:35.000
bbb-sprite.jpg#xywh=0,432,128,72
05:35.000 --> 05:40.000
bbb-sprite.jpg#xywh=128,432,128,72
05:40.000 --> 05:45.000
bbb-sprite.jpg#xywh=256,432,128,72
05:45.000 --> 05:50.000
bbb-sprite.jpg#xywh=384,432,128,72
05:50.000 --> 05:55.000
bbb-sprite.jpg#xywh=512,432,128,72
05:55.000 --> 06:00.000
bbb-sprite.jpg#xywh=640,432,128,72
06:00.000 --> 06:05.000
bbb-sprite.jpg#xywh=768,432,128,72
06:05.000 --> 06:10.000
bbb-sprite.jpg#xywh=896,432,128,72
06:10.000 --> 06:15.000
bbb-sprite.jpg#xywh=1024,432,128,72
06:15.000 --> 06:20.000
bbb-sprite.jpg#xywh=1152,432,128,72
06:20.000 --> 06:25.000
bbb-sprite.jpg#xywh=1280,432,128,72
06:25.000 --> 06:30.000
bbb-sprite.jpg#xywh=0,504,128,72
06:30.000 --> 06:35.000
bbb-sprite.jpg#xywh=128,504,128,72
06:35.000 --> 06:40.000
bbb-sprite.jpg#xywh=256,504,128,72
06:40.000 --> 06:45.000
bbb-sprite.jpg#xywh=384,504,128,72
06:45.000 --> 06:50.000
bbb-sprite.jpg#xywh=512,504,128,72
06:50.000 --> 06:55.000
bbb-sprite.jpg#xywh=640,504,128,72
06:55.000 --> 07:00.000
bbb-sprite.jpg#xywh=768,504,128,72
07:00.000 --> 07:05.000
bbb-sprite.jpg#xywh=896,504,128,72
07:05.000 --> 07:10.000
bbb-sprite.jpg#xywh=1024,504,128,72
07:10.000 --> 07:15.000
bbb-sprite.jpg#xywh=1152,504,128,72
07:15.000 --> 07:20.000
bbb-sprite.jpg#xywh=1280,504,128,72
07:20.000 --> 07:25.000
bbb-sprite.jpg#xywh=0,576,128,72
07:25.000 --> 07:30.000
bbb-sprite.jpg#xywh=128,576,128,72
07:30.000 --> 07:35.000
bbb-sprite.jpg#xywh=256,576,128,72
07:35.000 --> 07:40.000
bbb-sprite.jpg#xywh=384,576,128,72
07:40.000 --> 07:45.000
bbb-sprite.jpg#xywh=512,576,128,72
07:45.000 --> 07:50.000
bbb-sprite.jpg#xywh=640,576,128,72
07:50.000 --> 07:55.000
bbb-sprite.jpg#xywh=768,576,128,72
07:55.000 --> 08:00.000
bbb-sprite.jpg#xywh=896,576,128,72
08:00.000 --> 08:05.000
bbb-sprite.jpg#xywh=1024,576,128,72
08:05.000 --> 08:10.000
bbb-sprite.jpg#xywh=1152,576,128,72
08:10.000 --> 08:15.000
bbb-sprite.jpg#xywh=1280,576,128,72
08:15.000 --> 08:20.000
bbb-sprite.jpg#xywh=0,648,128,72
08:20.000 --> 08:25.000
bbb-sprite.jpg#xywh=128,648,128,72
08:25.000 --> 08:30.000
bbb-sprite.jpg#xywh=256,648,128,72
08:30.000 --> 08:35.000
bbb-sprite.jpg#xywh=384,648,128,72
08:35.000 --> 08:40.000
bbb-sprite.jpg#xywh=512,648,128,72
08:40.000 --> 08:45.000
bbb-sprite.jpg#xywh=640,648,128,72
08:45.000 --> 08:50.000
bbb-sprite.jpg#xywh=768,648,128,72
08:50.000 --> 08:55.000
bbb-sprite.jpg#xywh=896,648,128,72
08:55.000 --> 09:00.000
bbb-sprite.jpg#xywh=1024,648,128,72
09:00.000 --> 09:05.000
bbb-sprite.jpg#xywh=1152,648,128,72
09:05.000 --> 09:10.000
bbb-sprite.jpg#xywh=1280,648,128,72
09:10.000 --> 09:15.000
bbb-sprite.jpg#xywh=0,720,128,72
09:15.000 --> 09:20.000
bbb-sprite.jpg#xywh=128,720,128,72
09:20.000 --> 09:25.000
bbb-sprite.jpg#xywh=256,720,128,72
09:25.000 --> 09:30.000
bbb-sprite.jpg#xywh=384,720,128,72
09:30.000 --> 09:35.000
bbb-sprite.jpg#xywh=512,720,128,72
09:35.000 --> 09:40.000
bbb-sprite.jpg#xywh=640,720,128,72
09:40.000 --> 09:45.000
bbb-sprite.jpg#xywh=768,720,128,72
09:45.000 --> 09:50.000
bbb-sprite.jpg#xywh=896,720,128,72
09:50.000 --> 09:55.000
bbb-sprite.jpg#xywh=1024,720,128,72
09:55.000 --> 10:00.000
bbb-sprite.jpg#xywh=1152,720,128,72
+1
View File
@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><i><chatserver></chatserver><chatid>11724691</chatid><mission></mission><maxlimit></maxlimit><state></state><real_name></real_name><source></source><d p="0.465,5,25,26214,1480410348,11,e6d2b8ad,2704552969">泷:三叶,请记住我的名字“I LOVE YOU”</d><d p="0.465,5,25,16777215,1480410348,11,e6d2b8ad,2704553613">泷:三叶,请记住我的名字“I LOVE YOU”</d><d p="0.465,5,25,26112,1480410348,11,e6d2b8ad,2704554207">泷:三叶,请记住我的名字“I LOVE YOU”</d><d p="0.465,5,25,153,1480410349,11,e6d2b8ad,2704554619">泷:三叶,请记住我的名字“I LOVE YOU”</d><d p="0.465,5,25,6750054,1480410349,11,e6d2b8ad,2704555293">泷:三叶,请记住我的名字“I LOVE YOU”</d><d p="0,1,25,16777215,1480507709,1,f1118a60,2707380543"> 被秀了一脸恩爱</d><d p="0,1,25,16777215,1480507733,11,71176b2b,2707448679">和素未相识的网友一起配对啦!有点小激动~</d><d p="0.397,1,25,16777215,1480507736,11,30ae2d68,2707456541">配对成功,领到票了!~感谢B站!</d><d p="0.998,4,25,16711680,1480511354,11,784632ed,2707517761">长理携手同行~君之名</d><d p="0.464,5,25,16711680,1480511374,11,b430db82,2707587437">南宁单身狗的愤怒!!!!抢不到票!只能买!!!</d><d p="0,5,25,6750156,1485234066,11,e3205a8,2892019964">真·神作</d><d p="0.659,5,25,16777215,1494846439,11,6f2da951,3360883360">小僚机,我知道你会来看</d><d p="0.216,5,25,15138834,1627771015,1,ec179f6,52758493762945027">十个在哭,九个在狂笑(指鬼畜)</d><d p="1.103,1,25,16777215,1479974691,11,34d8ddf9,2689553545">我要把我欠的票都还了</d><d p="1.101,5,25,15138834,1479982003,11,7a51ca7e,2689798191">新海诚的票该还了!</d><d p="1.186,5,25,16711680,1480179684,11,9b7de097,2697536623">清露,牵手一起看吧</d><d p="1.242,5,25,41194,1480413988,1,1bf2e5d0,2704646713">呐,媳妇,我们一起看吧,然后订婚吧</d><d p="1.236,5,25,16777215,1480507737,1,4c53bc94,2707460573">你们能够理解我找妹子但是她登陆不上</d><d p="1.236,5,25,16777215,1480507737,11,4c53bc94,2707462659">最后迫不得已和室友配对成功,妹子又能登陆了</d><d p="1.984,1,25,16777215,1480842316,1,9ec9710f,2719145455">诚哥已经暴走碾压票房了</d><d p="1.362,5,25,16737843,1480932398,11,11000a3,2722220923">希望下辈子可以做个东京的帅哥</d><d p="1.687,1,25,16776960,1480939732,11,9d428cc8,2722641857">你的名字并出示你的驾驶证,你已经违规超速</d><d p="1.024,5,25,16777215,1481346068,11,a1d2e4fd,2735207423">希望下辈子可以做个东京的帅哥</d><d p="1.382,5,25,16707842,1487761657,9,d1f803de,3034151580">你的名字,茨木童子</d><d p="1.336,5,25,15138834,1501816307,1,116cf666,3647711960">结果跟基友看了。。。</d><d p="1.819,5,25,16777215,1523157002,11,42ca01f4,4446088750">bgm是黄昏之时 32秒开始</d><d p="1.662,4,25,9487136,1563115700,10,234a8c6a,18860487968030784">看的时候几乎从中间就开始哭,哭到坐车回家的路上还是在哭</d><d p="1.415,5,25,15138834,1626699746,1,ec179f6,52196839793360899">一个被鬼畜区玩坏的新海诚作品预告</d><d p="2.977,1,25,16777215,1479711804,8,a95074f6,2681576151">把之前欠诚哥的电影票还了!!!!</d><d p="2.403,1,25,14811775,1479711820,1,540181fb,2681602949">今晚逃晚自习来看</d><d p="2.261,1,25,16777215,1479867045,7,57aabaf6,2686476547">一天看 十次的节奏</d><d p="2.914,1,25,16777215,1479996640,11,6d5943e4,2690508451">已订票!!!坐标成都!!</d><d p="2.746,5,25,65535,1480064712,11,6719b12f,2692368809">清晨,我睁开眼睛时</d><d p="2.542,1,25,16777215,1480158460,7,b69f3e5a,2696198143">看完超级感动!!!!想和喜欢的人一起去看!!!你的名字是——SXY</d><d p="2.363,5,25,16776960,1480165758,5,c160358f,2696604905">钟晋我们一起去看吧</d><d p="2.311,5,25,16777215,1480233862,4,8017a98f,2699305393">荧荧。我们一起去看好吗。</d><d p="2.036,4,18,16777215,1480345885,7,d948d805,2703226509">目が覚めると</d><d p="2.601,1,25,41194,1480413988,1,1bf2e5d0,2704647585">呐,媳妇,我们一起看吧,然后订婚吧</d><d p="2.527,1,25,10079232,1480417658,11,2805d07,2704838747">小祁啊~好想和你一起去看啊</d><d p="2.98,1,25,16777215,1480507716,9,7c74b51c,2707397713">Morphine,其实Sekka想跟你一起去</d><d p="2.683,5,25,14811775,1480507722,9,4c28c99,2707414993">好的 安徒生</d><d p="2.12,5,25,16711680,1480507737,1,3c70614c,2707461715">邓云遥,我们一起去看吧~</d><d p="2.813,1,25,16777215,1480511374,6,1be1c658,2707587439">宝贝,咱俩一起看</d><d p="2.618,5,25,6737151,1480511393,11,2168da58,2707658573">同南宁,估计又得自己去淘票了!</d><d p="2.159,1,25,16777215,1480518663,9,e4a4c1fc,2707915557">不知道为什么只是看见这个开头就有种想哭的感</d><d p="2.03,1,25,14811775,1480536244,9,b647f440,2708348593">没抢到票。。。Line truncated
+1
View File
@@ -0,0 +1 @@
<?xml version="1.0" encoding="UTF-8"?><i><chatserver>chat.bilibili.com</chatserver><chatid>580770634</chatid><mission>0</mission><maxlimit>1500</maxlimit><state>0</state><real_name>0</real_name><source>k-v</source><d p="481.89400,1,25,16777215,1653692078,0,70e36298,1062005140992593408,11">可以去太湖捞捞试试(狗头保命</d><d p="265.37800,1,25,16777215,1653616680,0,88afabc0,1061372654017566976,11">好了,今天就到这,我感觉生物钟启动了,我要睡了</d><d p="777.55400,1,25,16777215,1653575476,0,9bcc00a2,1061027009955725568,11">当然是sha256(sha256(pw)+salt)</d><d p="13.88600,1,25,16777215,1653570775,0,966e6348,1060987581535333376,11">Swift~~~</d><d p="454.63400,1,25,16777215,1652717912,0,6d2da793,1053833248746068480,11">搞个共享数据库,像挖矿一样每个人算好的都可以上传</d><d p="177.13900,1,25,16777215,1652453333,0,fb4f660b,1051613793517396736,11">有点懵,但感到很震撼</d><d p="22.57900,1,25,16777215,1652430212,0,bdb52a9e,1051419843691098880,11">哈希值</d><d p="58.06700,1,25,16777215,1652368788,0,e91e8413,1050904578150762496,11">有了粉碎机,家里就只剩下粉碎机了</d><d p="275.65900,5,25,16777215,1652354865,0,397b3aab,1050787785968982016,11">《我知道了》</d><d p="774.77900,1,25,16777215,1652256952,0,542886c4,1049966433997495040,11">奥卡姆剃刀</d><d p="352.26200,1,25,16777215,1652247365,0,139fd1a2,1049886011934382080,11">加盐只是通过不确定的盐来隐藏确定的原值,增加彩虹表的制作难度</d><d p="395.65900,1,25,16777215,1652169656,0,e2308d98,1049234139607279872,11">哈希冲突</d><d p="346.72900,1,25,16777215,1652112430,0,54ba448a,1048754095986328064,11">《彩虹表》</d><d p="653.60600,1,25,16777215,1652101305,0,5ec1b46c,1048660766959520768,11">哈哈,这个可以使git库瞬间挂掉</d><d p="461.75200,1,25,16777215,1652101091,0,5ec1b46c,1048658979179723264,11">做个超级字典,把最常用的组合记录下来就行了</d><d p="94.11200,1,25,16777215,1652100683,0,5ec1b46c,1048655552173002240,11">哈希根本不是加密,只是摘要算法</d><d p="386.19500,1,25,16777215,1652097650,0,c4cc4296,1048630114516051968,11">组合数学开始了</d><d p="414.69100,1,25,16777215,1652084321,0,fafcfbb0,1048518297794048256,11">设计者自己找不到(doge</d><d p="59.62300,5,25,16707842,1652052664,0,971041b8,1048252744781197824,11">我会!</d><d p="445.99300,1,25,16777215,1651998604,0,53d75164,1047799249896694016,11">哎嘿 很勇哦</d><d p="641.24300,1,25,16777215,1651991247,0,ed4717ed,1047737536325133312,11">但是加盐还是有用</d><d p="408.97200,1,25,16777215,1651977907,0,4bd9a2d7,1047625636933279232,11">可以存在一个笼子里一只鸽子也没有</d><d p="511.84900,1,25,16777215,1651972503,0,f0826639,1047580298436422144,11">哈希冲突</d><d p="520.96700,5,25,16777215,1651967260,0,27acb016,1047536317854342656,11">列巴的列(补充</d><d p="558.75200,1,25,16777215,1651940306,0,860de6bd,1047310216540149504,11">《模仿游戏》来了</d><d p="505.15000,1,25,16777215,1651940233,0,860de6bd,1047309599239544064,11">电影《模仿游戏》</d><d p="488.98600,1,25,16777215,1651927542,0,44f3ad45,1047203142191739648,11">俺姆昂鸽瑞!</d><d p="586.48600,1,25,16777215,1651849723,0,29026d4b,1046550345196703488,11">烫烫烫哈哈哈哈哈哈!</d><d p="102.05200,1,25,16777215,1651839216,0,1336ac64,1046462209011973120,11">王小云,指数级缩短了MD5的碰撞时间</d><d p="55.82000,1,25,16777215,1651825875,0,38443e73,1046350293337386752,11">一半我做的登录都会生成一个密码盐,存在本地</d><d p="681.33200,1,25,16777215,1651819803,0,fc3f2a25,1046299363606827264,11">加盐也对付不了碰撞 只能对付彩虹表</d><d p="18.26500,1,25,16777215,1651816441,0,cf2bea01,1046271154899279872,11">A(欸)P(劈)P(劈)</d><d p="567.29500,1,25,16777215,1651812016,0,5309839c,1046234041289880832,11">你错了,图灵对这个并不熟</d><d p="504.07300,1,25,16777215,1651806653,0,58c10bda,1046189050064611584,11">加盐</d><d p="350.22000,1,25,16777215,1651798844,0,d3cbe582,1046123548323639040,11">所以要加盐</d><d p="59.55900,1,25,16777215,1651793262,0,dc9b4d74,1046076722316952576,11">哈希有很小很小的概率把两个不一样的东西映射成一个</d><d p="468.25000,1,25,16777215,1651762009,0,1e90bb3e,1045814547245588736,11">量子计算:这个我熟</d><d p="565.29300,1,25,16777215,1651722446,0,1b70a4,1045482667682264064,11">图灵说:这个我熟</d><d p="652.84300,1,25,16777215,1651713497,0,9e19237c,1045407604815323904,11">图片隐写</d><d p="391.57200,1,25,16777215,1651622858,0,d78de8a,1044647266629422336,11">吾生而有崖</d><d p="273.57700,1,25,16777215,1651509100,0,c8ed82e9,1043692993388749056,11">《也可以100行以内》</d><d p="494.74000,1,25,16777215,1651405107,0,8262fe93,1042820639116808192,11">数据库!</d><d p="753.23500,1,25,16777215,1651385801,0,ea9eeeda,1042658687317412864,11">火速换RSA!</d><d p="747.76900,1,25,16777215Line truncated
+1
View File
@@ -0,0 +1 @@
[{"text":"\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u6253\u620f\u8d4f\u5fc3\u60a6\u76ee","time":60.139,"color":"#FFFFFF"},{"text":"\u6765\u770b\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u6f14\u6280\u5927\u8d4f","time":61.765,"color":"#FABE96"},{"text":"\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u597d\u4e0a\u955c","time":61.857,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u6253\u620f\u975e\u5e38\u884c\u4e91\u6d41\u6c34","time":61,"color":"#FFFFFF"},{"text":"\u60f3\u5230\u4e86\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u6a21\u4eff\u522b\u4eba\u5b66\u7740\u4f9d\u504e\u7684\u6837\u5b50","time":61.486,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u4eea\u6001\u597d\u6c14\u8d28\u4f73","time":62.995,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u6253\u620f\u8d4f\u5fc3\u60a6\u76ee","time":62.925,"color":"#FFFFFF"},{"text":"\u770b\u4e86\u8fd9\u4e2a\u5267\u66f4\u559c\u6b22\u7f57\u4e91\u7199\u4e86","time":62.717,"color":"#FFFFFF"},{"text":"\u6211\u53ef\u592a\u559c\u6b22\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u7684\u7709\u773c\u4e86","time":63.529,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u554a\u554a\u554a\u554a","time":63.287,"color":"#FFFFFF"},{"text":"\u5927\u7231\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u7684\u989c\u503c\u6c14\u8d28","time":64.412,"color":"#FFFFFF"},{"text":"\u9ed1\u5316\u5427\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec","time":64.365,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u6f14\u6280\u975e\u5e38\u597d","time":65.875,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u6253\u620f\u771f\u7cbe\u5f69","time":66.107,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u8ff7\u7684\u6211\u4e94\u8ff7\u4e09\u9053","time":66.316,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u62ff\u7a33\u88ab\u8650\u5267\u672c","time":66.873,"color":"#FFFFFF"},{"text":"\u6765\u770b\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u6f14\u6280\u5927\u8d4f","time":67.407,"color":"#FABE96"},{"text":"\u770b\u5b8c\u4e0a\u5b98\u900f\u6765\u770b\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u8fa3","time":67.848,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u6253\u620f\u884c\u4e91\u6d41\u6c34","time":67.964,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u725b\u903c","time":67.454,"color":"#FFFFFF"},{"text":"\u7247\u5934\u90fd\u820d\u4e0d\u5f97\u8df3","time":68.336,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u6253\u620f\u5f88\u597d","time":68.661,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u51fa\u573a\u5373\u60ca\u8273","time":68.474,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u7684\u6bcf\u4e00\u4e2a\u89d2\u8272\u90fd\u8ba9\u4eba\u65e0\u6cd5\u6297\u62d2","time":68.984,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u786e\u5b9e\u503c\u5f97\u4e00\u770b","time":69.311,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u6211\u592a\u53ef\u4ee5\u4e86","time":69,"color":"#FFFFFF"},{"text":"\u770b\u4e86\u8fd9\u4e2a\u5267\u66f4\u559c\u6b22\u7f57\u4e91\u7199\u4e86","time":69.915,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u80fd\u628a\u60ac\u6d6e\u7684\u6fb9\u53f0\u70ec\u9970\u6f14\u7684\u8ba9\u4eba\u5171\u60c5","time":69,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u6f14\u6280\u592a\u597d\u4e86","time":69.775,"color":"#FFFFFF"},{"text":"\u5439\u7206\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec","time":70.356,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u771f\u662f\u624b\u63a7\u798f\u5229","time":70.913,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u60c5\u5546\u6ee1\u5206","time":70.797,"color":"#FFFFFF"},{"text":"\u4e0b\u73ed\u5403\u996d\u5b8c\u5c31\u6253\u5f00\u7535\u8111","time":70.89,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u53e4\u88c5\u9ca8\u6211","time":70.1,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u597d\u5e05","time":70,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u7f57\u4e91\u7199","time":70.978,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u65f6\u9694\u4e94\u5e74\u7684\u53e4\u88c5\u4ed9\u4fa0\u957f\u6708\u70ec\u660e","time":70.867,"color":"#FFFFFF"},{"text":"\u5927\u7231\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u7684\u989c\u503c\u6c14\u8d28","time":71.238,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u7684\u6fb9\u53f0\u70ec\u975e\u5e38\u6709\u827a\u672f\u5438\u5f15\u529b","time":71,"color":"#FFFFFF"},{"text":"\u770b\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u7b80\u76f4\u662f\u79cd\u4eab\u53d7","time":72.515,"color":"#FFFFFF"},{"text":"\u597d\u559c\u6b22\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u7684\u8fd9\u4e2a\u611f\u89c9","time":72.33,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec\u597d\u82cf\u554a","time":72,"color":"#FFFFFF"},{"text":"\u559c\u6b22\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec","time":72.33,"color":"#FFFFFF"},{"text":"\u71ac\u591c\u770b\u7f57\u4e91\u7199\u6fb9\u53f0\u70ec","time":72.98,"color":"#FFFFFF"},{"text":"\u7f57\u4e91\u7199\u6fb9\u53fLine truncated
+515
View File
@@ -0,0 +1,515 @@
[Script Info]
Title: bilibili ASS 弹幕在线转换
Original Script: 根据 danmuku.xml 的弹幕信息,由 https://github.com/tiansh/us-danmaku 生成
ScriptType: v4.00+
Collisions: Normal
PlayResX: 560
PlayResY: 420
Timer: 10.0000
[V4+ Styles]
Format: Name, Fontname, Fontsize, PrimaryColour, SecondaryColour, OutlineColour, BackColour, Bold, Italic, Underline, StrikeOut, ScaleX, ScaleY, Spacing, Angle, BorderStyle, Outline, Shadow, Alignment, MarginL, MarginR, MarginV, Encoding
Style: Fix,Source Han Sans CN Bold,25,&H66FFFFFF,&H66FFFFFF,&H66000000,&H66000000,1,0,0,0,100,100,0,0,1,2,0,2,20,20,2,0
Style: R2L,Source Han Sans CN Bold,25,&H66FFFFFF,&H66FFFFFF,&H66000000,&H66000000,1,0,0,0,100,100,0,0,1,2,0,2,20,20,2,0
[Events]
Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text
Dialogue: 0,0:00:00.00,0:00:04.00,Fix,,20,20,2,,{\pos(280,25)\c&H000099\3c&HFFFFFF}自己看的
Dialogue: 0,0:00:00.00,0:00:08.00,R2L,,20,20,2,,{\move(722.5,25,-162.5,25)}三叶的口嚼酒我能喝到肝硬化
Dialogue: 0,0:00:00.00,0:00:04.00,Fix,,20,20,2,,{\pos(280,50)\c&HCCFF66}真·神作
Dialogue: 0,0:00:00.00,0:00:08.00,R2L,,20,20,2,,{\move(590,50,-30,50)}mmp
Dialogue: 0,0:00:00.31,0:00:08.31,R2L,,20,20,2,,{\move(597.5,75,-37.5,75)\c&H1200E7}龙思颖
Dialogue: 0,0:00:00.47,0:00:04.47,Fix,,20,20,2,,{\pos(280,370)}我好喜欢这这一段话~~~
Dialogue: 0,0:00:00.49,0:00:08.49,R2L,,20,20,2,,{\move(772.5,100,-212.5,100)\c&H1200E7}求野生字幕君把罗马音加上,急急急~
Dialogue: 0,0:00:00.65,0:00:04.65,Fix,,20,20,2,,{\pos(280,75)}小僚机,我知道你会来看
Dialogue: 0,0:00:00.66,0:00:04.66,Fix,,20,20,2,,{\pos(280,100)\c&H1200E7}@你的光头! !
Dialogue: 0,0:00:00.91,0:00:04.91,Fix,,20,20,2,,{\pos(280,125)}这里的伴奏真的好配啊!
Dialogue: 0,0:00:01.06,0:00:09.06,R2L,,20,20,2,,{\move(597.5,125,-37.5,125)}你好!
Dialogue: 0,0:00:01.10,0:00:05.10,Fix,,20,20,2,,{\pos(280,150)}本大爷的名字,世间无人不晓
Dialogue: 0,0:00:01.14,0:00:09.14,R2L,,20,20,2,,{\move(642.5,150,-82.5,150)}电影院6刷路过
Dialogue: 0,0:00:01.24,0:00:05.24,Fix,,20,20,2,,{\pos(280,175)\c&H02F1FE}求BGM
Dialogue: 0,0:00:01.32,0:00:09.32,R2L,,20,20,2,,{\move(660,175,-100,175)}看了两遍哭了两遍
Dialogue: 0,0:00:01.33,0:00:05.33,Fix,,20,20,2,,{\pos(280,200)\c&H1200E7}结果跟基友看了。。。
Dialogue: 0,0:00:01.38,0:00:05.38,Fix,,20,20,2,,{\pos(280,225)\c&H02F1FE}你的名字,茨木童子
Dialogue: 0,0:00:01.56,0:00:09.56,R2L,,20,20,2,,{\move(628,50,-68,50)\c&H439800}五刷纪念 sc
Dialogue: 0,0:00:01.58,0:00:09.58,R2L,,20,20,2,,{\move(677,200,-117,200)}这里的BGM是什么啊
Dialogue: 0,0:00:01.73,0:00:05.73,Fix,,20,20,2,,{\pos(280,345)\c&H00FFFF}asa、me ga sameruto nazeka naiteiru。
Dialogue: 0,0:00:01.81,0:00:05.81,Fix,,20,20,2,,{\pos(280,250)}bgm是黄昏之时 32秒开始
Dialogue: 0,0:00:01.86,0:00:09.86,R2L,,20,20,2,,{\move(627,75,-67,75)}BGM好棒!
Dialogue: 0,0:00:02.24,0:00:10.24,R2L,,20,20,2,,{\move(768.5,225,-208.5,225)\c&H1200E7}预告片都好燃 好喜欢 够我无限循环了
Dialogue: 0,0:00:02.50,0:00:10.50,R2L,,20,20,2,,{\move(772.5,250,-212.5,250)}朝、目が覚めるとなぜか泣いている。
Dialogue: 0,0:00:02.64,0:00:06.64,Fix,,20,20,2,,{\pos(280,275)\c&H1200E7}今晚三刷!
Dialogue: 0,0:00:02.93,0:00:10.93,R2L,,20,20,2,,{\move(635,25,-75,25)}三刷回来留念
Dialogue: 0,0:00:02.95,0:00:06.95,Fix,,20,20,2,,{\pos(280,300)\c&H1200E7}入宅神作
Dialogue: 0,0:00:03.12,0:00:11.12,R2L,,20,20,2,,{\move(610,50,-50,50)}你的名字
Dialogue: 0,0:00:03.16,0:00:11.16,R2L,,20,20,2,,{\move(660,125,-100,125)\c&H0000FF}你的名字:陈常鑫
Dialogue: 0,0:00:03.42,0:00:11.42,R2L,,20,20,2,,{\move(660,175,-100,175)}为啥我听不见qwq
Dialogue: 0,0:00:03.49,0:00:11.49,R2L,,20,20,2,,{\move(800.5,275,-240.5,275)\c&H000000\3c&HFFFFFF}“爱”就是科学与逻辑永远无法解释的程序。
Dialogue: 0,0:00:03.78,0:00:11.78,R2L,,20,20,2,,{\move(697.5,150,-137.5,150)}在中国这样的评价不错了
Dialogue: 0,0:00:03.93,0:00:11.93,R2L,,20,20,2,,{\move(810,300,-250,300)}每天刷几遍!预告片真的超好 字幕翻译也好
Dialogue: 0,0:00:03.94,0:00:11.94,R2L,,20,20,2,,{\move(672.5,200,-112.5,200)}国语版的真心不好听
Dialogue: 0,0:00:03.95,0:00:11.95,R2L,,20,20,2,,{\move(772.5,100,-212.5,100)\c&H1200E7}朝、目が覚めるとなぜか泣いている。
Dialogue: 0,0:00:04.00,0:00:08.00,Fix,,20,20,2,,{\pos(280,50)\c&H1200E7}好温柔的声音,大爱
Dialogue: 0,0:00:04.00,0:00:08.00,Fix,,20,20,2,,{\pos(280,25)\c&HEAA000}嵩嵩
Dialogue: 0,0:00:04.24,0:00:12.24,R2L,,20,20,2,,{\move(969,325,-409,325)}宫水三叶立花泷,夫妻携手战B萌。泷叶八进四生死局,请大家投票支援!
Dialogue: 0,0:00:04.33,0:00:12.33,R2L,,20,20,2,,{\move(597.5,50,-37.5,50)}美哭了
Dialogue: 0,0:00:04.47,0:00:08.47,Fix,,20,20,2,,{\pos(280,370)\c&H3300CC}2016 12月 一起看的同学们 你们好吗
Dialogue: 0,0:00:04.65,0:00:12.65,R2L,,20,20,2,,{\move(710,75,-150,75)}果然还是大陆版的预告最好
Dialogue: 0,0:00:04.66,0:00:08.66,Fix,,20,20,2,,{\pos(280,100)\c&H00FFFF}miteita hazu no yume wa itsumo omoidasenai
Dialogue: 0,0:00:04.67,0:00:12.67,R2L,,20,20,2,,{\move(637.5,25,-77.5,25)}2017年继续刷
Dialogue: 0,0:00:05.27,0:00:13.27,R2L,,20,20,2,,{\move(597.5,125,-37.5,125)}嘟嘟嘟
Dialogue: 0,0:00:05.54,0:00:09.53,Fix,,20,20,2,,{\pos(280,75)\c&HEAA000}刚看完国语感觉各种不适应
Dialogue: 0,0:00:05.55,0:00:13.55,R2L,,20,20,2,,{\move(610,50,-50,50)}再次回归
Dialogue: 0,0:00:05.65,0:00:13.65,R2L,,20,20,2,,{\move(735,225,-175,225)\c&H0000FF}预告片,大陆这版做的最为优秀
Dialogue: 0,0:00:05.89,0:00:13.89,R2L,,20,20,2,,{\move(685,175,-125,175)\c&H0203FE}这预告片比电影还带劲
Dialogue: 0,0:00:06.05,0:00:10.05,Fix,,20,20,2,,{\pos(280,345)\c&H02F1FE}朝目が覚めると なぜか泣いている
Dialogue: 0,0:00:06.20,0:00:14.20,R2L,,20,20,2,,{\move(969,350,-409,350)}宫水三叶立花泷,夫妻携手战B萌。泷叶八进四生死局,请大家投票支援!
Dialogue: 0,0:00:06.21,0:00:14.21,R2L,,20,20,2,,{\move(565.5,125,-5.5,125)}1
Dialogue: 0,0:00:06.42,0:00:14.42,R2L,,20,20,2,,{\move(829,250,-269,250)}三叶的口嚼酒喝到肝硬化的站住,我能喝到肾衰~
Dialogue: 0,0:00:06.57,0:00:14.57,R2L,,20,20,2,,{\move(647.5,25,-87.5,25)}王卿一起去看吧
Dialogue: 0,0:00:06.81,0:00:14.81,R2L,,20,20,2,,{\move(730.5,150,-170.5,150)\c&H02F1FE}一般般我也就看了100多遍而已
Dialogue: 0,0:00:07.18,0:00:15.18,R2L,,20,20,2,,{\move(785,275,-225,275)\c&H1200E7}見ていたはずの夢はいつも思い出せない
Dialogue: 0,0:00:07.24,0:00:11.24,Fix,,20,20,2,,{\pos(280,125)\c&H1200E7}看预告比正片有感觉系列
Dialogue: 0,0:00:07.43,0:00:15.43,R2L,,20,20,2,,{\move(610,125,-50,125)}啦啦啦啦
Dialogue: 0,0:00:07.44,0:00:15.44,R2L,,20,20,2,,{\move(697.5,75,-137.5,75)}一周年后,我还是一个人
Dialogue: 0,0:00:07.52,0:00:11.52,Fix,,20,20,2,,{\pos(280,320)\c&H02F1FE}見ていたはずの夢は いつも思い出せない
Dialogue: 0,0:00:07.72,0:00:15.72,R2L,,20,20,2,,{\move(810,100,-250,100)}无数次刷预告片,如果电影院能在上映就好了
Dialogue: 0,0:00:07.97,0:00:15.97,R2L,,20,20,2,,{\move(844.5,200,-284.5,200)}看完中毒了,越看中毒越深,新海诚你算计我..........
Dialogue: 0,0:00:08.56,0:00:12.56,Fix,,20,20,2,,{\pos(280,25)\c&H1200E7}希望下辈子可以做个东京的帅哥
Dialogue: 0,0:00:08.73,0:00:16.73,R2L,,20,20,2,,{\move(585,225,-25,225)}哈哈
Dialogue: 0,0:00:09.10,0:00:17.10,R2L,,20,20,2,,{\move(747.5,175,-187.5,175)}希望快出资源,没能二刷有点遗憾
Dialogue: 0,0:00:09.12,0:00:17.12,R2L,,20,20,2,,{\move(635,125,-75,125)}这段话好喜欢
Dialogue: 0,0:00:09.13,0:00:13.13,Fix,,20,20,2,,{\pos(280,50)\c&H7F02E2}1.5倍速出戏
Dialogue: 0,0:00:09.24,0:00:17.24,R2L,,20,20,2,,{\move(969,300,-409,300)\c&HEAA000}宫水三叶立花泷,夫妻携手战B萌。泷叶八进四生死局,请大家投票支援!
Dialogue: 0,0:00:09.24,0:00:17.24,R2L,,20,20,2,,{\move(800.5,50,-240.5,50)\c&H000000\3c&HFFFFFF}“爱”就是科学与逻辑永远无法解释的程序。
Dialogue: 0,0:00:09.59,0:00:13.59,Fix,,20,20,2,,{\pos(280,75)}我看几遍都没想哭的感觉
Dialogue: 0,0:00:09.65,0:00:17.65,R2L,,20,20,2,,{\move(735,25,-175,25)\c&H993333}无论在哪我都会去找你,周元歆
Dialogue: 0,0:00:09.67,0:00:17.67,R2L,,20,20,2,,{\move(597.5,225,-37.5,225)}我来了
Dialogue: 0,0:00:09.84,0:00:13.84,Fix,,20,20,2,,{\pos(280,370)\c&H00FFFF}tada (tada) zutto nanika o sagashiteiru.
Dialogue: 0,0:00:10.07,0:00:18.07,R2L,,20,20,2,,{\move(610,75,-50,75)}画质好评
Dialogue: 0,0:00:10.18,0:00:18.18,R2L,,20,20,2,,{\move(764.5,150,-204.5,150)}本大爷下次要做个漂亮的小姐姐 芒果
Dialogue: 0,0:00:10.34,0:00:18.34,R2L,,20,20,2,,{\move(723.5,250,-163.5,250)}你的名字 一目连_(:3 」∠ )_
Dialogue: 0,0:00:10.60,0:00:14.60,Fix,,20,20,2,,{\pos(280,345)\c&H02F1FE}ただ ずっと何かを探している
Dialogue: 0,0:00:10.75,0:00:18.75,R2L,,20,20,2,,{\move(681.5,275,-121.5,275)}mjx你为什么要拒绝我
Dialogue: 0,0:00:10.76,0:00:14.76,Fix,,20,20,2,,{\pos(280,295)\c&H1200E7}看透太多
Dialogue: 0,0:00:11.02,0:00:19.02,R2L,,20,20,2,,{\move(647.5,125,-87.5,125)}真的是百看不厌
Dialogue: 0,0:00:11.13,0:00:19.13,R2L,,20,20,2,,{\move(622.5,225,-62.5,225)}三叶毒晚期
Dialogue: 0,0:00:11.29,0:00:19.29,R2L,,20,20,2,,{\move(585,75,-25,75)}十刷
Dialogue: 0,0:00:11.49,0:00:19.49,R2L,,20,20,2,,{\move(647.5,100,-87.5,100)}什么时候可以看
Dialogue: 0,0:00:11.50,0:00:15.50,Fix,,20,20,2,,{\pos(280,100)}看了很多地区预还是觉得大陆预告舒服
Dialogue: 0,0:00:12.01,0:00:20.01,R2L,,20,20,2,,{\move(710,200,-150,200)}还是大陆版的预告片最好看
Dialogue: 0,0:00:12.04,0:00:20.04,R2L,,20,20,2,,{\move(969,325,-409,325)\c&HEAA000}宫水三叶立花泷,夫妻携手战B萌。泷叶八进四生死局,请大家投票支援!
Dialogue: 0,0:00:12.06,0:00:20.06,R2L,,20,20,2,,{\move(590,75,-30,75)}6666
Dialogue: 0,0:00:12.31,0:00:20.31,R2L,,20,20,2,,{\move(584.5,175,-24.5,175)}.......
Dialogue: 0,0:00:12.59,0:00:20.59,R2L,,20,20,2,,{\move(622.5,225,-62.5,225)\c&H439800}每日刷预告
Dialogue: 0,0:00:12.71,0:00:20.71,R2L,,20,20,2,,{\move(760,350,-200,350)}一直不敢看第二遍,怕把自己又看哭
Dialogue: 0,0:00:12.73,0:00:20.73,R2L,,20,20,2,,{\move(660,25,-100,25)}最喜欢的这段对话
Dialogue: 0,0:00:12.93,0:00:20.93,R2L,,20,20,2,,{\move(610,125,-50,125)}耶稣基督
Dialogue: 0,0:00:13.00,0:00:21.00,R2L,,20,20,2,,{\move(597.5,75,-37.5,75)}看哭了
Dialogue: 0,0:00:13.02,0:00:21.02,R2L,,20,20,2,,{\move(810,50,-250,50)\c&H1200E7}ただ、ずっと何かを・・・誰かを探している
Dialogue: 0,0:00:13.12,0:00:21.12,R2L,,20,20,2,,{\move(591.5,175,-31.5,175)},,,,
Dialogue: 0,0:00:13.17,0:00:21.17,R2L,,20,20,2,,{\move(610,275,-50,275)}耶稣基督
Dialogue: 0,0:00:13.29,0:00:21.29,R2L,,20,20,2,,{\move(693.5,250,-133.5,250)}0.5声线都变了2333333
Dialogue: 0,0:00:13.40,0:00:21.40,R2L,,20,20,2,,{\move(642.5,100,-82.5,100)}66666666666
Dialogue: 0,0:00:13.56,0:00:21.56,R2L,,20,20,2,,{\move(649,150,-89,150)}bgm:黄昏之时
Dialogue: 0,0:00:13.80,0:00:17.80,Fix,,20,20,2,,{\pos(280,320)}你的名字:奥巴马
Dialogue: 0,0:00:13.93,0:00:21.93,R2L,,20,20,2,,{\move(572.5,175,-12.5,175)}!
Dialogue: 0,0:00:13.99,0:00:21.99,R2L,,20,20,2,,{\move(672.5,300,-112.5,300)}声优的声音太无敌了
Dialogue: 0,0:00:14.05,0:00:22.05,R2L,,20,20,2,,{\move(597.5,225,-37.5,225)\c&H000000\3c&HFFFFFF}二刷了
Dialogue: 0,0:00:14.14,0:00:22.14,R2L,,20,20,2,,{\move(585,125,-25,125)}爱♥
Dialogue: 0,0:00:14.27,0:00:22.27,R2L,,20,20,2,,{\move(572.5,175,-12.5,175)}!
Dialogue: 0,0:00:14.57,0:00:22.57,R2L,,20,20,2,,{\move(628,75,-68,75)}好巧我101遍
Dialogue: 0,0:00:14.80,0:00:22.80,R2L,,20,20,2,,{\move(625.5,200,-65.5,200)\c&H1200E7}神木dd!!
Dialogue: 0,0:00:14.83,0:00:22.83,R2L,,20,20,2,,{\move(647.5,25,-87.5,25)}每次看都激动啊
Dialogue: 0,0:00:14.93,0:00:22.93,R2L,,20,20,2,,{\move(585,175,-25,175)\c&H000000\3c&HFFFFFF}好ㄟ
Dialogue: 0,0:00:15.08,0:00:23.08,R2L,,20,20,2,,{\move(597.5,125,-37.5,125)}刚看完
Dialogue: 0,0:00:15.22,0:00:23.22,R2L,,20,20,2,,{\move(622.5,100,-62.5,100)}声音好甜啊
Dialogue: 0,0:00:15.66,0:00:23.66,R2L,,20,20,2,,{\move(660,150,-100,150)}天啊,整屏都是字
Dialogue: 0,0:00:15.80,0:00:23.80,R2L,,20,20,2,,{\move(697.5,275,-137.5,275)}你的名字是,,,吉良吉影
Dialogue: 0,0:00:15.88,0:00:19.88,Fix,,20,20,2,,{\pos(280,370)\c&H00FFFF}takikun....oboete nai?
Dialogue: 0,0:00:15.98,0:00:23.98,R2L,,20,20,2,,{\move(649,225,-89,225)}bgm:黄昏之时
Dialogue: 0,0:00:16.03,0:00:24.03,R2L,,20,20,2,,{\move(585,125,-25,125)}好看
Dialogue: 0,0:00:16.14,0:00:24.14,R2L,,20,20,2,,{\move(610,175,-50,175)}明天二刷
Dialogue: 0,0:00:16.62,0:00:24.62,R2L,,20,20,2,,{\move(697.5,300,-137.5,300)}我也觉得大陆的预告最好
Dialogue: 0,0:00:16.68,0:00:24.68,R2L,,20,20,2,,{\move(622.5,100,-62.5,100)}三叶是我的
Dialogue: 0,0:00:16.79,0:00:24.79,R2L,,20,20,2,,{\move(685,50,-125,50)}中国版预告片真的很棒
Dialogue: 0,0:00:16.79,0:00:24.79,R2L,,20,20,2,,{\move(800.5,325,-240.5,325)\c&H000000\3c&HFFFFFF}“爱”就是科学与逻辑永远无法解释的程序。
Dialogue: 0,0:00:16.84,0:00:20.84,Fix,,20,20,2,,{\pos(280,25)\c&H1200E7}表白能当着面去说么
Dialogue: 0,0:00:16.86,0:00:24.86,R2L,,20,20,2,,{\move(785,250,-225,250)}你……我……想和你一起看《你的名字》
Dialogue: 0,0:00:16.93,0:00:24.93,R2L,,20,20,2,,{\move(872.5,350,-312.5,350)}看了也没脱单,让我找一个漂亮的德国妹子做女朋友吧!
Dialogue: 0,0:00:16.94,0:00:24.94,R2L,,20,20,2,,{\move(660,25,-100,25)}极速救不了这画质
Dialogue: 0,0:00:17.24,0:00:25.24,R2L,,20,20,2,,{\move(610,125,-50,125)}画质感人
Dialogue: 0,0:00:17.35,0:00:25.35,R2L,,20,20,2,,{\move(597.5,175,-37.5,175)}艾子健
Dialogue: 0,0:00:17.65,0:00:25.65,R2L,,20,20,2,,{\move(735,75,-175,75)\c&H1200E7}希望下辈子可以做个京都的帅哥
Dialogue: 0,0:00:17.73,0:00:25.73,R2L,,20,20,2,,{\move(722.5,200,-162.5,200)}想看看不了啊啊啊啊啊啊啊啊
Dialogue: 0,0:00:17.82,0:00:21.82,Fix,,20,20,2,,{\pos(280,345)\c&H0000FF}滝君 覚えて ない?
Dialogue: 0,0:00:18.28,0:00:26.28,R2L,,20,20,2,,{\move(672.5,225,-112.5,225)}一年后再来看预告片
Dialogue: 0,0:00:18.44,0:00:26.44,R2L,,20,20,2,,{\move(680,275,-120,275)\c&H00FFFF}其他9位老伙伴你们好
Dialogue: 0,0:00:18.45,0:00:26.45,R2L,,20,20,2,,{\move(581,125,-21,125)}......
Dialogue: 0,0:00:18.56,0:00:26.56,R2L,,20,20,2,,{\move(610,175,-50,175)}字为什么
Dialogue: 0,0:00:18.72,0:00:26.72,R2L,,20,20,2,,{\move(733,150,-173,150)\c&HEAA000}赶上了我们这儿的最后一场π_π
Dialogue: 0,0:00:18.97,0:00:26.97,R2L,,20,20,2,,{\move(672.5,100,-112.5,100)}大陆这剪辑真是人才
Dialogue: 0,0:00:19.42,0:00:27.42,R2L,,20,20,2,,{\move(697.5,50,-137.5,50)\c&H0000FF}你的名字是,,,吉良吉影
Dialogue: 0,0:00:19.66,0:00:27.66,R2L,,20,20,2,,{\move(610,125,-50,125)}看哭了我
Dialogue: 0,0:00:19.79,0:00:23.79,Fix,,20,20,2,,{\pos(280,320)\c&H1200E7}覚えってない
Dialogue: 0,0:00:20.01,0:00:28.01,R2L,,20,20,2,,{\move(735,25,-175,25)\c&HCC00FF}无论在哪我都会去找你,周元歆
Dialogue: 0,0:00:20.02,0:00:28.02,R2L,,20,20,2,,{\move(622.5,175,-62.5,175)\c&H397992}相変わらず
Dialogue: 0,0:00:20.42,0:00:28.42,R2L,,20,20,2,,{\move(747.5,250,-187.5,250)\c&H000000\3c&HFFFFFF}和我家小可爱一起去看的(男的)
Dialogue: 0,0:00:20.57,0:00:28.57,R2L,,20,20,2,,{\move(636.5,225,-76.5,225)}bgm黄昏之时
Dialogue: 0,0:00:20.64,0:00:24.64,Fix,,20,20,2,,{\pos(280,50)}bgm燃起
Dialogue: 0,0:00:20.67,0:00:28.67,R2L,,20,20,2,,{\move(647.5,200,-87.5,200)\c&H000000\3c&HFFFFFF}欠的电影票已还
Dialogue: 0,0:00:20.72,0:00:28.72,R2L,,20,20,2,,{\move(697.5,75,-137.5,75)}HYJ真的好想和你一起看
Dialogue: 0,0:00:21.07,0:00:29.07,R2L,,20,20,2,,{\move(697.5,275,-137.5,275)}每次到着都鸡皮疙瘩一身
Dialogue: 0,0:00:21.12,0:00:29.12,R2L,,20,20,2,,{\move(622.5,125,-62.5,125)}感动的要死
Dialogue: 0,0:00:21.26,0:00:29.26,R2L,,20,20,2,,{\move(585,100,-25,100)}爱♥
Dialogue: 0,0:00:21.37,0:00:29.37,R2L,,20,20,2,,{\move(969,300,-409,300)\c&HEAA000}宫水三叶立花泷,夫妻携手战B萌。泷叶八进四生死局,请大家投票支援!
Dialogue: 0,0:00:21.77,0:00:29.77,R2L,,20,20,2,,{\move(685,150,-125,150)}我还是忘不了巨石强森
Dialogue: 0,0:00:22.06,0:00:30.06,R2L,,20,20,2,,{\move(610,50,-50,50)}你的绳子
Dialogue: 0,0:00:22.17,0:00:30.17,R2L,,20,20,2,,{\move(662.5,175,-102.5,175)\c&H1200E7}电影院20刷达成!
Dialogue: 0,0:00:22.58,0:00:30.58,R2L,,20,20,2,,{\move(610,200,-50,200)}你的名字
Dialogue: 0,0:00:22.58,0:00:30.58,R2L,,20,20,2,,{\move(622.5,125,-62.5,125)}我看了四遍
Dialogue: 0,0:00:22.72,0:00:30.72,R2L,,20,20,2,,{\move(622.5,100,-62.5,100)}算是考古吧
Dialogue: 0,0:00:23.09,0:00:31.09,R2L,,20,20,2,,{\move(647.5,25,-87.5,25)}雅蠛蝶!!!!
Dialogue: 0,0:00:23.27,0:00:31.27,R2L,,20,20,2,,{\move(591,50,-31,50)}.........
Dialogue: 0,0:00:23.36,0:00:31.36,R2L,,20,20,2,,{\move(622.5,75,-62.5,75)\c&H000000\3c&HFFFFFF}看完泪目了
Dialogue: 0,0:00:23.69,0:00:31.69,R2L,,20,20,2,,{\move(739.5,225,-179.5,225)}看完以后老子月考就上去了 神奇
Dialogue: 0,0:00:24.18,0:00:32.18,R2L,,20,20,2,,{\move(622.5,100,-62.5,100)}我要看整部
Dialogue: 0,0:00:24.18,0:00:32.18,R2L,,20,20,2,,{\move(630,125,-70,125)}画质666666
Dialogue: 0,0:00:24.24,0:00:32.24,R2L,,20,20,2,,{\move(660,150,-100,150)}预告片看了好多次
Dialogue: 0,0:00:24.28,0:00:32.28,R2L,,20,20,2,,{\move(747.5,275,-187.5,275)}对!就是这个纪录片超感动!!!
Dialogue: 0,0:00:24.44,0:00:28.44,Fix,,20,20,2,,{\pos(280,25)\c&H00FFFF}av7752928 萌新剪辑英文歌BGM加你的名字求支持
Dialogue: 0,0:00:24.48,0:00:32.48,R2L,,20,20,2,,{\move(610,50,-50,50)}哭什么哭
Dialogue: 0,0:00:24.82,0:00:32.82,R2L,,20,20,2,,{\move(610,75,-50,75)\c&H000000\3c&HFFFFFF}非常喜欢
Dialogue: 0,0:00:24.94,0:00:32.94,R2L,,20,20,2,,{\move(709,175,-149,175)}CJX ZZC 2017.2.17想念你
Dialogue: 0,0:00:24.98,0:00:28.98,Fix,,20,20,2,,{\pos(280,370)\c&H0000FF}これってもしかして
Dialogue: 0,0:00:24.99,0:00:32.99,R2L,,20,20,2,,{\move(610,25,-50,25)}每日一刷
Dialogue: 0,0:00:25.17,0:00:33.17,R2L,,20,20,2,,{\move(969,250,-409,250)\c&HEAA000}宫水三叶立花泷,夫妻携手战B萌。泷叶八进四生死局,请大家投票支援!
Dialogue: 0,0:00:25.51,0:00:33.51,R2L,,20,20,2,,{\move(722.5,200,-162.5,200)}让我失忆一天,我再去看一遍
Dialogue: 0,0:00:25.87,0:00:33.87,R2L,,20,20,2,,{\move(635,100,-75,100)\c&H1200E7}夸爆洋次郎哇
Dialogue: 0,0:00:25.87,0:00:33.87,R2L,,20,20,2,,{\move(635,125,-75,125)}中文字幕最美
Dialogue: 0,0:00:26.12,0:00:34.12,R2L,,20,20,2,,{\move(969,300,-409,300)\c&HEAA000}宫水三叶立花泷,夫妻携手战B萌。泷叶八进四生死局,请大家投票支援!
Dialogue: 0,0:00:26.17,0:00:34.17,R2L,,20,20,2,,{\move(635,50,-75,50)}刚看完中文的
Dialogue: 0,0:00:26.69,0:00:34.69,R2L,,20,20,2,,{\move(635,25,-75,25)\c&H1200E7}エッチしたい
Dialogue: 0,0:00:27.32,0:00:35.32,R2L,,20,20,2,,{\move(735,150,-175,150)\c&HCCFF99}无论在哪我都会去找你,周元歆
Dialogue: 0,0:00:27.64,0:00:35.64,R2L,,20,20,2,,{\move(712.5,75,-152.5,75)\c&H33FF99}请高数CYQ我下辈子还爱他
Dialogue: 0,0:00:27.70,0:00:31.70,Fix,,20,20,2,,{\pos(280,345)\c&H0000FF}俺たち夢の中で
Dialogue: 0,0:00:27.75,0:00:35.75,R2L,,20,20,2,,{\move(847.5,225,-287.5,225)}这个宣传片的字幕不知道比电影院播放的正片好多少
Dialogue: 0,0:00:28.08,0:00:36.08,R2L,,20,20,2,,{\move(647.5,50,-87.5,50)}看完第二天分手
Dialogue: 0,0:00:28.14,0:00:36.14,R2L,,20,20,2,,{\move(897.5,275,-337.5,275)}看了四遍不止,还各种安利给别人看,可惜别人好像都看不懂
Dialogue: 0,0:00:28.15,0:00:36.15,R2L,,20,20,2,,{\move(747.5,175,-187.5,175)}这就是我们梦寐以求的,唐朝和尚
Dialogue: 0,0:00:28.34,0:00:36.34,R2L,,20,20,2,,{\move(685,100,-125,100)\c&H33FF99}来世我要做东京的帅哥
Dialogue: 0,0:00:28.66,0:00:36.66,R2L,,20,20,2,,{\move(710,125,-150,125)}不对,不是纪录片是预告片
Dialogue: 0,0:00:28.67,0:00:36.67,R2L,,20,20,2,,{\move(742,200,-182,200)}为什么会早就该分手呢哈哈,zwj
Dialogue: 0,0:00:29.15,0:00:37.15,R2L,,20,20,2,,{\move(685,25,-125,25)}超级喜欢大陆的版本!
Dialogue: 0,0:00:29.81,0:00:33.81,Fix,,20,20,2,,{\pos(280,370)\c&H0000FF}入れ替わってる
Dialogue: 0,0:00:29.98,0:00:37.98,R2L,,20,20,2,,{\move(610,50,-50,50)\c&H000000\3c&HFFFFFF}五刷路过
Dialogue: 0,0:00:30.55,0:00:38.55,R2L,,20,20,2,,{\move(720,75,-160,75)}你的好友:RADWIMPS已上线
Dialogue: 0,0:00:30.81,0:00:38.81,R2L,,20,20,2,,{\move(685,100,-125,100)}听到这音乐就鸡皮疙瘩
Dialogue: 0,0:00:31.33,0:00:35.33,Fix,,20,20,2,,{\pos(280,25)\c&H7F02E2}哈哈哈哈哈哈哈0.5倍速
Dialogue: 0,0:00:31.36,0:00:35.36,Fix,,20,20,2,,{\pos(280,320)\c&H0000FF}3刷路过
Dialogue: 0,0:00:31.36,0:00:35.36,Fix,,20,20,2,,{\pos(280,295)\c&H1200E7}约会必看
Dialogue: 0,0:00:31.37,0:00:39.37,R2L,,20,20,2,,{\move(619,50,-59,50)}^o^已看完
Dialogue: 0,0:00:31.46,0:00:39.46,R2L,,20,20,2,,{\move(660,125,-100,125)}从隔壁英语版过来
Dialogue: 0,0:00:31.56,0:00:39.56,R2L,,20,20,2,,{\move(622.5,150,-62.5,150)}看来八遍了
Dialogue: 0,0:00:31.56,0:00:35.56,Fix,,20,20,2,,{\pos(280,270)\c&HEAA000}幸瑜,我们一起去看吧
Dialogue: 0,0:00:31.62,0:00:39.62,R2L,,20,20,2,,{\move(672.5,25,-112.5,25)}最喜欢大陆的预告片
Dialogue: 0,0:00:31.70,0:00:35.70,Fix,,20,20,2,,{\pos(280,345)}浓缩的都是精华
Dialogue: 0,0:00:31.75,0:00:39.75,R2L,,20,20,2,,{\move(747.5,175,-187.5,175)}被同事安利好久,所以决定不看了
Dialogue: 0,0:00:32.60,0:00:36.60,Fix,,20,20,2,,{\pos(280,245)\c&H00FFFF}tyotto takikun, danshi no shisen, sukato tyui
Dialogue: 0,0:00:32.77,0:00:40.77,R2L,,20,20,2,,{\move(610,50,-50,50)\c&H000000\3c&HFFFFFF}生蛋胯热
Dialogue: 0,0:00:33.28,0:00:41.28,R2L,,20,20,2,,{\move(649,100,-89,100)}怎么下载成mp3
Dialogue: 0,0:00:33.37,0:00:37.37,Fix,,20,20,2,,{\pos(280,220)\c&H0000CC}ちょっと 滝君
Dialogue: 0,0:00:33.46,0:00:41.46,R2L,,20,20,2,,{\move(630,75,-70,75)\c&H000000\3c&HFFFFFF}2017-03-19
Dialogue: 0,0:00:33.98,0:00:41.98,R2L,,20,20,2,,{\move(597.5,50,-37.5,50)}好球!
Dialogue: 0,0:00:34.92,0:00:42.92,R2L,,20,20,2,,{\move(572.5,50,-12.5,50)}…
Dialogue: 0,0:00:35.06,0:00:43.06,R2L,,20,20,2,,{\move(597.5,75,-37.5,75)}王彬力
Dialogue: 0,0:00:35.07,0:00:39.07,Fix,,20,20,2,,{\pos(280,370)\c&H0000CC}男子の視線 スカッと注意
Dialogue: 0,0:00:35.19,0:00:43.19,R2L,,20,20,2,,{\move(785,25,-225,25)\c&H02F1FE}一个人刷了七遍就我了吧,我还是个男生
Dialogue: 0,0:00:36.37,0:00:44.37,R2L,,20,20,2,,{\move(735,125,-175,125)\c&H7B3A68}我想下辈子是一个漂亮的小姐姐
Dialogue: 0,0:00:36.75,0:00:40.75,Fix,,20,20,2,,{\pos(280,345)\c&H0000CC}てめぇ 三葉
Dialogue: 0,0:00:37.17,0:00:45.17,R2L,,20,20,2,,{\move(825,100,-265,100)\c&H7F02E2}截止到20号,断断续续去刷了六遍,也是没谁了
Dialogue: 0,0:00:37.52,0:00:41.52,Fix,,20,20,2,,{\pos(280,25)\c&H1200E7}三刷 无悔!
Dialogue: 0,0:00:37.60,0:00:45.60,R2L,,20,20,2,,{\move(635,50,-75,50)}口昌占戈哥欠
Dialogue: 0,0:00:37.60,0:00:45.60,R2L,,20,20,2,,{\move(572.5,75,-12.5,75)}爱
Dialogue: 0,0:00:38.22,0:00:42.22,Fix,,20,20,2,,{\pos(280,320)\c&H0000CC}俺の人間関係変えるなよ
Dialogue: 0,0:00:38.75,0:00:46.75,R2L,,20,20,2,,{\move(660,25,-100,25)}和朋友去看的……
Dialogue: 0,0:00:38.81,0:00:46.81,R2L,,20,20,2,,{\move(610,75,-50,75)\c&H000000\3c&HFFFFFF}看了八遍
Dialogue: 0,0:00:39.45,0:00:47.45,R2L,,20,20,2,,{\move(697.5,125,-137.5,125)}不怎么好看,天天想而已
Dialogue: 0,0:00:40.87,0:00:44.87,Fix,,20,20,2,,{\pos(280,370)\c&H0000CC}ほんとに自分のおっぱい好きあな
Dialogue: 0,0:00:40.90,0:00:44.90,Fix,,20,20,2,,{\pos(280,50)\c&H1200E7}这不是你们的表白墙谢谢
Dialogue: 0,0:00:40.94,0:00:48.94,R2L,,20,20,2,,{\move(597.5,25,-37.5,25)}看看看
Dialogue: 0,0:00:41.12,0:00:45.12,Fix,,20,20,2,,{\pos(280,345)\c&H7B3A68}希望我下辈子能做一个漂亮的小姐姐
Dialogue: 0,0:00:41.37,0:00:45.37,Fix,,20,20,2,,{\pos(280,295)\c&H00FFFF}hontoni jibun no oppai suki yana
Dialogue: 0,0:00:42.27,0:00:50.27,R2L,,20,20,2,,{\move(735,50,-175,50)\c&H00FFFF}无论在哪我都会去找你,周元歆
Dialogue: 0,0:00:42.56,0:00:50.56,R2L,,20,20,2,,{\move(720,75,-160,75)}我电影院刷了2遍,云盘20遍
Dialogue: 0,0:00:42.66,0:00:46.66,Fix,,20,20,2,,{\pos(280,25)\c&H1200E7}这样好痛苦,我记得你,你不记得我
Dialogue: 0,0:00:43.57,0:00:51.57,R2L,,20,20,2,,{\move(624.5,25,-64.5,25)}6的一批- -
Dialogue: 0,0:00:43.82,0:00:51.82,R2L,,20,20,2,,{\move(660,100,-100,100)\c&H1200E7}和对象一起去看过
Dialogue: 0,0:00:43.85,0:00:51.85,R2L,,20,20,2,,{\move(810,125,-250,125)\c&H000000\3c&HFFFFFF}看完电影再看预告的那个等等我,我也是哈哈
Dialogue: 0,0:00:44.90,0:00:48.90,Fix,,20,20,2,,{\pos(280,50)\c&HCBC084}一个星期连着看了4遍,看一遍哭一遍(17.11.8)
Dialogue: 0,0:00:45.34,0:00:53.34,R2L,,20,20,2,,{\move(647.5,50,-87.5,50)}日刷一遍。哈哈
Dialogue: 0,0:00:45.40,0:00:53.40,R2L,,20,20,2,,{\move(659,143,-99,143)\c&HEAA000\fs18}喵,还记得一起看完的么
Dialogue: 0,0:00:45.47,0:00:53.47,R2L,,20,20,2,,{\move(681.5,75,-121.5,75)}刷3遍的在此(*¯︶¯*)
Dialogue: 0,0:00:45.48,0:00:53.48,R2L,,20,20,2,,{\move(647.5,25,-87.5,25)\c&H1200E7}电影院去了四遍
Dialogue: 0,0:00:45.93,0:00:53.93,R2L,,20,20,2,,{\move(572.5,100,-12.5,100)}嘉
Dialogue: 0,0:00:46.61,0:00:54.61,R2L,,20,20,2,,{\move(586,100,-26,100)}0.5#
Dialogue: 0,0:00:47.38,0:00:55.38,R2L,,20,20,2,,{\move(636,25,-76,25)}0.5#瞬间解毒
Dialogue: 0,0:00:47.45,0:00:55.45,R2L,,20,20,2,,{\move(660,50,-100,50)\c&H0000FF}超喜欢预告的剪辑
Dialogue: 0,0:00:47.54,0:00:51.54,Fix,,20,20,2,,{\pos(280,370)\c&H0000CC}あの男(女)は
Dialogue: 0,0:00:47.63,0:00:55.63,R2L,,20,20,2,,{\move(727,125,-167,125)}过了半年再刷 还是激动到捂嘴
Dialogue: 0,0:00:47.64,0:00:51.64,Fix,,20,20,2,,{\pos(280,345)\c&H00FFFF}ano otoko (onna) wa
Dialogue: 0,0:00:47.83,0:00:55.83,R2L,,20,20,2,,{\move(735,100,-175,100)}看完中文版,看一下原版压压惊
Dialogue: 0,0:00:47.89,0:00:55.89,R2L,,20,20,2,,{\move(593,75,-33,75)}hyx♡
Dialogue: 0,0:00:49.69,0:00:53.69,Fix,,20,20,2,,{\pos(280,320)\c&H00FFFF}kieteku
Dialogue: 0,0:00:49.80,0:00:57.80,R2L,,20,20,2,,{\move(585,25,-25,25)}虐了
Dialogue: 0,0:00:49.89,0:00:53.89,Fix,,20,20,2,,{\pos(280,295)\c&H0000CC}消えてる
Dialogue: 0,0:00:50.16,0:00:58.16,R2L,,20,20,2,,{\move(610,50,-50,50)}三刷归来
Dialogue: 0,0:00:51.13,0:00:59.13,R2L,,20,20,2,,{\move(685,75,-125,75)\c&H000000\3c&HFFFFFF}没声音的我是一个人吗
Dialogue: 0,0:00:51.37,0:00:55.37,Fix,,20,20,2,,{\pos(280,270)\c&H0000CC}まさか
Dialogue: 0,0:00:51.70,0:00:55.70,Fix,,20,20,2,,{\pos(280,370)\c&H00FFFF}masaka hakkiri oboeteru
Dialogue: 0,0:00:51.74,0:00:59.74,R2L,,20,20,2,,{\move(610,25,-50,25)}2017双11
Dialogue: 0,0:00:51.90,0:00:59.90,R2L,,20,20,2,,{\move(599.5,50,-39.5,50)}217.6.1
Dialogue: 0,0:00:52.23,0:00:56.23,Fix,,20,20,2,,{\pos(280,345)\c&H0000CC}はっきり覚えてる
Dialogue: 0,0:00:52.47,0:00:56.47,Fix,,20,20,2,,{\pos(280,25)\c&H00FF00}真想问问表白那些人
Dialogue: 0,0:00:52.47,0:00:56.47,Fix,,20,20,2,,{\pos(280,50)\c&H00FF00}在这里表白算什么
Dialogue: 0,0:00:52.47,0:00:56.47,Fix,,20,20,2,,{\pos(280,75)\c&H00FF00}只能说你是懦夫
Dialogue: 0,0:00:52.55,0:01:00.55,R2L,,20,20,2,,{\move(663,100,-103,100)}神木dd声音好棒啊
Dialogue: 0,0:00:52.68,0:01:00.68,R2L,,20,20,2,,{\move(735,125,-175,125)}没感觉还点进来的你是有多贱?
Dialogue: 0,0:00:52.78,0:01:00.78,R2L,,20,20,2,,{\move(716,150,-156,150)}up的头像把我的感动整没了.
Dialogue: 0,0:00:52.96,0:01:00.96,R2L,,20,20,2,,{\move(583,25,-23,25)}-0-
Dialogue: 0,0:00:53.12,0:01:01.12,R2L,,20,20,2,,{\move(610,50,-50,50)}鸡皮疙瘩
Dialogue: 0,0:00:53.78,0:00:57.78,Fix,,20,20,2,,{\pos(280,100)}这个宣传片的字幕比影院播放的正片好太多了
Dialogue: 0,0:00:54.21,0:01:02.21,R2L,,20,20,2,,{\move(735,75,-175,75)}无论在哪我都会去找你,周元歆
Dialogue: 0,0:00:54.52,0:01:02.52,R2L,,20,20,2,,{\move(610,25,-50,25)}看了八次
Dialogue: 0,0:00:55.00,0:01:03.00,R2L,,20,20,2,,{\move(635,50,-75,50)}盘李猿的够了
Dialogue: 0,0:00:55.43,0:00:59.43,Fix,,20,20,2,,{\pos(280,125)}说的对↑
Dialogue: 0,0:00:55.97,0:01:03.97,R2L,,20,20,2,,{\move(605,25,-45,25)\c&H000000\3c&HFFFFFF}我3刷了
Dialogue: 0,0:00:57.52,0:01:01.52,Fix,,20,20,2,,{\pos(280,25)\c&HEAA000}这个背影由我承包↓
Dialogue: 0,0:00:57.84,0:01:01.84,Fix,,20,20,2,,{\pos(280,370)\c&H0000CC}誰だ
Dialogue: 0,0:00:58.26,0:01:06.26,R2L,,20,20,2,,{\move(847.5,75,-287.5,75)}说实话陨石这里的音乐能加进一个防空警报就更好了
Dialogue: 0,0:00:58.72,0:01:02.72,Fix,,20,20,2,,{\pos(280,345)\c&H0000CC}誰
Dialogue: 0,0:00:58.94,0:01:02.94,Fix,,20,20,2,,{\pos(280,50)\c&H0203FE}不想忘记你
Dialogue: 0,0:00:59.15,0:01:07.15,R2L,,20,20,2,,{\move(563.5,25,-3.5,25)}.
Dialogue: 0,0:00:59.22,0:01:07.22,R2L,,20,20,2,,{\move(860,50,-300,50)\c&H439800}无论你在世界的哪里,我都会再一次的去见你,周佳音
Dialogue: 0,0:00:59.22,0:01:07.22,R2L,,20,20,2,,{\move(860,100,-300,100)\c&H7B3A68}无论你在世界的哪里,我都会再一次的去见你,周佳音
Dialogue: 0,0:00:59.23,0:01:07.23,R2L,,20,20,2,,{\move(669,125,-109,125)}lxc 我想和你一起看
Dialogue: 0,0:00:59.55,0:01:07.55,R2L,,20,20,2,,{\move(860,150,-300,150)\c&HEAA000}无论你在世界的哪里,我都会再一次的去见你,周佳音
Dialogue: 0,0:00:59.61,0:01:07.61,R2L,,20,20,2,,{\move(760,175,-200,175)}想问一下手机里的信息是怎么消失的
Dialogue: 0,0:00:59.93,0:01:03.93,Fix,,20,20,2,,{\pos(280,320)\c&H0000CC}誰に会いに来た
Dialogue: 0,0:01:01.47,0:01:09.47,R2L,,20,20,2,,{\move(650,125,-90,125)}必须刷50遍以上
Dialogue: 0,0:01:02.09,0:01:10.09,R2L,,20,20,2,,{\move(722.5,25,-162.5,25)}不想出门,在网上看了盗版的
Dialogue: 0,0:01:02.31,0:01:10.31,R2L,,20,20,2,,{\move(714.5,75,-154.5,75)} 每次到这里总会起鸡皮疙瘩
Dialogue: 0,0:01:02.43,0:01:06.43,Fix,,20,20,2,,{\pos(280,370)\c&HFF0000\3c&HFFFFFF}運命だとか未来とか
Dialogue: 0,0:01:02.54,0:01:06.54,Fix,,20,20,2,,{\pos(280,25)\c&H722E00\3c&HFFFFFF}语文课PPT
Dialogue: 0,0:01:02.95,0:01:10.95,R2L,,20,20,2,,{\move(572.5,175,-12.5,175)}。
Dialogue: 0,0:01:03.36,0:01:11.36,R2L,,20,20,2,,{\move(697.5,50,-137.5,50)}韩越珊走吧,相约电影院
Dialogue: 0,0:01:03.36,0:01:11.36,R2L,,20,20,2,,{\move(663.5,100,-103.5,100)}别说了,三叶是我的
Dialogue: 0,0:01:03.42,0:01:11.42,R2L,,20,20,2,,{\move(579.5,125,-19.5,125)}MS
Dialogue: 0,0:01:03.63,0:01:07.63,Fix,,20,20,2,,{\pos(280,345)\c&HFF6600\fs18}不管“命运”“未来”这种话语有多少
Dialogue: 0,0:01:03.69,0:01:11.69,R2L,,20,20,2,,{\move(747.5,150,-187.5,150)}神木小天使的声音啊啊啊啊苏爆了
Dialogue: 0,0:01:03.80,0:01:11.80,R2L,,20,20,2,,{\move(885,200,-325,200)}我的妈呀那些不知道男主女主名字的人不要刷好吗看着别扭
Dialogue: 0,0:01:04.47,0:01:12.47,R2L,,20,20,2,,{\move(648,175,-88,175)\c&H000000\3c&HFFFFFF}电影院看完的+1
Dialogue: 0,0:01:04.63,0:01:12.63,R2L,,20,20,2,,{\move(610,125,-50,125)}天降正义
Dialogue: 0,0:01:05.02,0:01:13.02,R2L,,20,20,2,,{\move(610,25,-50,25)}耳机福利
Dialogue: 0,0:01:05.16,0:01:13.16,R2L,,20,20,2,,{\move(647.5,75,-87.5,75)}真的是神剪辑!
Dialogue: 0,0:01:05.52,0:01:13.52,R2L,,20,20,2,,{\move(597.5,100,-37.5,100)}斯提拉
Dialogue: 0,0:01:05.76,0:01:09.76,Fix,,20,20,2,,{\pos(280,327)\c&HFF0000\3c&HFFFFFF}って言葉が どれだけ手を
Dialogue: 0,0:01:05.99,0:01:13.99,R2L,,20,20,2,,{\move(610,50,-50,50)}配音好好
Dialogue: 0,0:01:06.35,0:01:14.35,R2L,,20,20,2,,{\move(615.5,25,-55.5,25)\c&H000000\3c&HFFFFFF}bgm 火花
Dialogue: 0,0:01:06.52,0:01:10.52,Fix,,20,20,2,,{\pos(280,370)\c&H0000FF}夢は
Dialogue: 0,0:01:06.68,0:01:14.68,R2L,,20,20,2,,{\move(697.5,100,-137.5,100)}这是什么歌啊啊啊好好听
Dialogue: 0,0:01:06.69,0:01:14.69,R2L,,20,20,2,,{\move(902,225,-342,225)\c&H000000\3c&HFFFFFF}这部电影的BGM次次听都能想起来电影里的场景然后开始泪目
Dialogue: 0,0:01:06.90,0:01:14.90,R2L,,20,20,2,,{\move(710,150,-150,150)\c&H000000\3c&HFFFFFF}全片最感动的地方之一!!
Dialogue: 0,0:01:07.21,0:01:15.21,R2L,,20,20,2,,{\move(585,50,-25,50)}夢は
Dialogue: 0,0:01:07.26,0:01:15.26,R2L,,20,20,2,,{\move(660,75,-100,75)\c&H0000FF}刷人名的原地爆炸
Dialogue: 0,0:01:07.37,0:01:11.37,Fix,,20,20,2,,{\pos(280,302)\c&H0000FF}目覚めればいつか消える
Dialogue: 0,0:01:07.47,0:01:11.47,Fix,,20,20,2,,{\pos(280,277)\c&HFF6600\fs18}来伸出手吧
Dialogue: 0,0:01:07.54,0:01:15.54,R2L,,20,20,2,,{\move(735,175,-175,175)}每次到陨石这里就一身鸡皮疙瘩
Dialogue: 0,0:01:07.57,0:01:15.57,R2L,,20,20,2,,{\move(722.5,125,-162.5,125)}男主たき女主みつはみやみつ
Dialogue: 0,0:01:08.17,0:01:16.17,R2L,,20,20,2,,{\move(896.5,200,-336.5,200)}这里的BGM确实是スパ一クル的,不过要等7分多钟才到那儿
Dialogue: 0,0:01:08.25,0:01:16.25,R2L,,20,20,2,,{\move(647.5,25,-87.5,25)}我们已经分手了
Dialogue: 0,0:01:09.42,0:01:17.42,R2L,,20,20,2,,{\move(706,100,-146,100)}见你 哪怕是借助神的力量
Dialogue: 0,0:01:10.14,0:01:14.14,Fix,,20,20,2,,{\pos(280,345)\c&HFF0000\3c&HFFFFFF}伸ばそうと 届かない
Dialogue: 0,0:01:10.28,0:01:18.28,R2L,,20,20,2,,{\move(735,50,-175,50)\c&H66FF33}无论在哪我都会去找你,周元歆
Dialogue: 0,0:01:10.49,0:01:18.49,R2L,,20,20,2,,{\move(827,75,-267,75)}花火的最后一分钟才是。。。这个BGM是10分钟的
Dialogue: 0,0:01:10.52,0:01:14.52,Fix,,20,20,2,,{\pos(280,370)\c&H0000FF}違う
Dialogue: 0,0:01:10.55,0:01:18.55,R2L,,20,20,2,,{\move(672.5,25,-112.5,25)\c&HFF0000\3c&HFFFFFF}運命だとか未来とか
Dialogue: 0,0:01:10.69,0:01:14.69,Fix,,20,20,2,,{\pos(280,259)\c&H00FFFF}tigau, yume jya nakatta.
Dialogue: 0,0:01:11.50,0:01:15.50,Fix,,20,20,2,,{\pos(280,25)\c&H02F1FE}这段BGM在一个近⑨分钟的音乐里,非常好听。
Dialogue: 0,0:01:11.78,0:01:15.78,Fix,,20,20,2,,{\pos(280,320)\c&H0000FF}夢じゃなかった
Dialogue: 0,0:01:12.30,0:01:16.30,Fix,,20,20,2,,{\pos(280,295)\c&HFF6600\fs18}我们在它们传达不到的地方恋爱
Dialogue: 0,0:01:12.84,0:01:20.84,R2L,,20,20,2,,{\move(647.5,25,-87.5,25)}我们已经分手了
Dialogue: 0,0:01:13.28,0:01:21.28,R2L,,20,20,2,,{\move(622.5,100,-62.5,100)}预告好良心
Dialogue: 0,0:01:13.36,0:01:21.36,R2L,,20,20,2,,{\move(660,50,-100,50)}在哪里可以看整部
Dialogue: 0,0:01:13.36,0:01:17.36,Fix,,20,20,2,,{\pos(280,234)\c&H0000FF}あの人の
Dialogue: 0,0:01:13.49,0:01:17.49,Fix,,20,20,2,,{\pos(280,209)\c&HFF0000\3c&HFFFFFF}場所で僕ら恋をする
Dialogue: 0,0:01:13.55,0:01:21.55,R2L,,20,20,2,,{\move(665.5,125,-105.5,125)}神木DD少年音好苏
Dialogue: 0,0:01:13.95,0:01:17.95,Fix,,20,20,2,,{\pos(280,184)\c&H00FFFF}anohito no mamae omoidasen no
Dialogue: 0,0:01:14.40,0:01:22.40,R2L,,20,20,2,,{\move(585,75,-25,75)}火花
Dialogue: 0,0:01:15.13,0:01:23.13,R2L,,20,20,2,,{\move(672.5,25,-112.5,25)}看过电影还是很激动
Dialogue: 0,0:01:15.34,0:01:23.34,R2L,,20,20,2,,{\move(597.5,75,-37.5,75)}求地址
Dialogue: 0,0:01:15.40,0:01:23.40,R2L,,20,20,2,,{\move(610,100,-50,100)}十刷路过
Dialogue: 0,0:01:15.46,0:01:23.46,R2L,,20,20,2,,{\move(610,50,-50,50)}白色强势
Dialogue: 0,0:01:16.62,0:01:24.62,R2L,,20,20,2,,{\move(735,125,-175,125)}看完之后更加不可能有女朋友了
Dialogue: 0,0:01:16.68,0:01:24.68,R2L,,20,20,2,,{\move(610,50,-50,50)}配音好赞
Dialogue: 0,0:01:16.85,0:01:20.85,Fix,,20,20,2,,{\pos(280,370)}misuha!!!
Dialogue: 0,0:01:16.89,0:01:24.89,R2L,,20,20,2,,{\move(789.5,150,-229.5,150)}无限大な梦のあとの 何もない世の中じゃ
Dialogue: 0,0:01:17.26,0:01:25.26,R2L,,20,20,2,,{\move(635,100,-75,100)\c&H000000\3c&HFFFFFF}みつは!!!
Dialogue: 0,0:01:17.42,0:01:25.42,R2L,,20,20,2,,{\move(660,25,-100,25)}米萨!!!!!!
Dialogue: 0,0:01:18.22,0:01:22.22,Fix,,20,20,2,,{\pos(280,345)\c&HFF0000\3c&HFFFFFF}時計の針を2人を
Dialogue: 0,0:01:18.41,0:01:22.41,Fix,,20,20,2,,{\pos(280,320)\c&HFF6600\fs18}在两人深情对视时
Dialogue: 0,0:01:18.42,0:01:26.42,R2L,,20,20,2,,{\move(735,75,-175,75)\c&H9999CC}无论在哪我都会去找你,周元歆
Dialogue: 0,0:01:18.58,0:01:26.58,R2L,,20,20,2,,{\move(647.5,50,-87.5,50)\c&HEAA000}想不起就别想了
Dialogue: 0,0:01:18.95,0:01:26.95,R2L,,20,20,2,,{\move(622.5,100,-62.5,100)}スパークル
Dialogue: 0,0:01:19.94,0:01:27.94,R2L,,20,20,2,,{\move(735,125,-175,125)\c&HFF9933}无论在哪我都会去找你,周元歆
Dialogue: 0,0:01:20.06,0:01:28.06,R2L,,20,20,2,,{\move(697.5,25,-137.5,25)}是米子哈,不是米傻好吧
Dialogue: 0,0:01:20.41,0:01:28.41,R2L,,20,20,2,,{\move(595.5,100,-35.5,100)}misha
Dialogue: 0,0:01:20.53,0:01:28.53,R2L,,20,20,2,,{\move(650,50,-90,50)}89这个数字神了
Dialogue: 0,0:01:20.58,0:01:28.58,R2L,,20,20,2,,{\move(610,150,-50,150)}超级好看
Dialogue: 0,0:01:20.88,0:01:24.88,Fix,,20,20,2,,{\pos(280,370)\c&H00FFFF}iutamontanda
Dialogue: 0,0:01:21.08,0:01:25.08,Fix,,20,20,2,,{\pos(280,25)\c&H1200E7}表白神木小天使!!!
Dialogue: 0,0:01:21.50,0:01:29.50,R2L,,20,20,2,,{\move(597.5,75,-37.5,75)}求地址
Dialogue: 0,0:01:21.54,0:01:25.54,Fix,,20,20,2,,{\pos(280,302)\c&HFF0000\3c&HFFFFFF}横目に見ながら進む
Dialogue: 0,0:01:21.82,0:01:29.82,R2L,,20,20,2,,{\move(611.5,150,-51.5,150)}bgm火花
Dialogue: 0,0:01:21.84,0:01:29.84,R2L,,20,20,2,,{\move(822.5,175,-262.5,175)}当年一起看你的名字的同学,现在,你们还好吗
Dialogue: 0,0:01:21.87,0:01:29.87,R2L,,20,20,2,,{\move(622.5,100,-62.5,100)}每天看一遍
Dialogue: 0,0:01:22.08,0:01:30.08,R2L,,20,20,2,,{\move(735,200,-175,200)\c&HFFCC00}什么时候中国也能出这样的电影
Dialogue: 0,0:01:22.44,0:01:30.44,R2L,,20,20,2,,{\move(585,75,-25,75)\c&H000000\3c&HFFFFFF}张瀚
Dialogue: 0,0:01:22.47,0:01:30.47,R2L,,20,20,2,,{\move(597.5,50,-37.5,50)}米兹哈
Dialogue: 0,0:01:22.54,0:01:26.54,Fix,,20,20,2,,{\pos(280,345)\c&H00FFFF}omae no sekai doko ni itemo kanarazu ainiku te
Dialogue: 0,0:01:22.67,0:01:26.67,Fix,,20,20,2,,{\pos(280,50)\c&H1200E7}ly一起看吧
Dialogue: 0,0:01:22.69,0:01:30.69,R2L,,20,20,2,,{\move(588.5,25,-28.5,25)}misa
Dialogue: 0,0:01:23.02,0:01:31.02,R2L,,20,20,2,,{\move(660,125,-100,125)}在哪里可以看整部
Dialogue: 0,0:01:23.57,0:01:31.57,R2L,,20,20,2,,{\move(582.5,75,-22.5,75)\c&H000000\3c&HFFFFFF}666
Dialogue: 0,0:01:23.80,0:01:31.80,R2L,,20,20,2,,{\move(615.5,50,-55.5,50)}bgm 花火
Dialogue: 0,0:01:23.83,0:01:31.83,R2L,,20,20,2,,{\move(759,150,-199,150)}讲真 大陆剪辑是我觉得最好的版本..
Dialogue: 0,0:01:23.91,0:01:31.91,R2L,,20,20,2,,{\move(610,25,-50,25)\c&H000000\3c&HFFFFFF}好浪漫噢
Dialogue: 0,0:01:24.22,0:01:32.22,R2L,,20,20,2,,{\move(860,225,-300,225)\c&H7B3A68}无论你在世界的哪里,我都会再一次的去见你,周佳音
Dialogue: 0,0:01:24.23,0:01:32.23,R2L,,20,20,2,,{\move(585,75,-25,75)}火花
Dialogue: 0,0:01:24.51,0:01:32.51,R2L,,20,20,2,,{\move(697.5,100,-137.5,100)}大陆版的宣传片最有感觉
Dialogue: 0,0:01:25.37,0:01:33.37,R2L,,20,20,2,,{\move(622.5,25,-62.5,25)}承包新海诚
Dialogue: 0,0:01:25.44,0:01:29.44,Fix,,20,20,2,,{\pos(280,370)\c&HFF0000\3c&HFFFFFF}そんな世界を2人で
Dialogue: 0,0:01:25.92,0:01:29.92,Fix,,20,20,2,,{\pos(280,320)\c&HFF6600\fs18}两人在那样的世界里
Dialogue: 0,0:01:25.97,0:01:33.97,R2L,,20,20,2,,{\move(860,175,-300,175)\c&H20C390}无论你在世界的哪里,我都会再一次的去见你,周佳音
Dialogue: 0,0:01:26.33,0:01:34.33,R2L,,20,20,2,,{\move(660,75,-100,75)}你的名字:陈常鑫
Dialogue: 0,0:01:26.59,0:01:34.59,R2L,,20,20,2,,{\move(785,125,-225,125)\c&H00FF00}你们这群渣渣我直接带她看的看完就表白
Dialogue: 0,0:01:26.75,0:01:34.75,R2L,,20,20,2,,{\move(724,50,-164,50)}火花的后半段,中间bgm特长
Dialogue: 0,0:01:27.00,0:01:35.00,R2L,,20,20,2,,{\move(597.5,25,-37.5,25)}看过了
Dialogue: 0,0:01:28.13,0:01:32.13,Fix,,20,20,2,,{\pos(280,25)\c&H7F02E2}这段剪的好
Dialogue: 0,0:01:28.16,0:01:36.16,R2L,,20,20,2,,{\move(607.5,25,-47.5,25)\c&H000000\3c&HFFFFFF}mitsuha
Dialogue: 0,0:01:28.38,0:01:36.38,R2L,,20,20,2,,{\move(822.5,100,-262.5,100)\c&H000000\3c&HFFFFFF}无论你在这个世界上的任何地方,我都会去见你
Dialogue: 0,0:01:28.44,0:01:36.44,R2L,,20,20,2,,{\move(628.5,75,-68.5,75)}豆瓣现在8.5
Dialogue: 0,0:01:29.43,0:01:37.43,R2L,,20,20,2,,{\move(852,150,-292,150)}好棒看的午夜场 整个电影院就像是被我们四人包场了
Dialogue: 0,0:01:29.64,0:01:37.64,R2L,,20,20,2,,{\move(610,25,-50,25)\c&H7F02E2}你是谁?
Dialogue: 0,0:01:29.71,0:01:37.71,R2L,,20,20,2,,{\move(685,50,-125,50)\c&H02F1FE}表示看预告片也能看哭
Dialogue: 0,0:01:29.72,0:01:33.72,Fix,,20,20,2,,{\pos(280,370)\c&HFF0000\3c&HFFFFFF}一生いや何生でも
Dialogue: 0,0:01:29.76,0:01:33.76,Fix,,20,20,2,,{\pos(280,345)\c&HFF6600\fs18}永生永世
Dialogue: 0,0:01:30.09,0:01:38.09,R2L,,20,20,2,,{\move(633,75,-73,75)}米子哈他ki谷
Dialogue: 0,0:01:30.15,0:01:38.15,R2L,,20,20,2,,{\move(735,125,-175,125)\c&H1200E7}表白我神木的声音啊啊啊啊啊啊
Dialogue: 0,0:01:30.89,0:01:34.89,Fix,,20,20,2,,{\pos(280,50)\c&H0000FF}靓女啊
Dialogue: 0,0:01:30.89,0:01:34.89,Fix,,20,20,2,,{\pos(280,75)\c&H0000FF}在 这 停 顿
Dialogue: 0,0:01:31.24,0:01:35.24,Fix,,20,20,2,,{\pos(280,100)\c&HCBC084}新海诚不相信爱情
Dialogue: 0,0:01:31.27,0:01:35.27,Fix,,20,20,2,,{\pos(280,327)\c&H00FFFF}kimi no namae wa? namae wa?
Dialogue: 0,0:01:31.33,0:01:39.33,R2L,,20,20,2,,{\move(635,25,-75,25)}我和我的左手
Dialogue: 0,0:01:31.75,0:01:39.75,R2L,,20,20,2,,{\move(589.5,75,-29.5,75)}麦涛
Dialogue: 0,0:01:32.18,0:01:40.18,R2L,,20,20,2,,{\move(660,50,-100,50)\c&H6633FF}哪买啊!!!!!
Dialogue: 0,0:01:32.25,0:01:40.25,R2L,,20,20,2,,{\move(656,100,-96,100)}你的名字 郑安琪
Dialogue: 0,0:01:32.66,0:01:36.66,Fix,,20,20,2,,{\pos(280,302)\c&H00FFFF}哪买啊
Dialogue: 0,0:01:33.02,0:01:41.02,R2L,,20,20,2,,{\move(610,25,-50,25)}自己看吧
Dialogue: 0,0:01:33.03,0:01:41.03,R2L,,20,20,2,,{\move(610,75,-50,75)\c&H1200E7}在下坂本
Dialogue: 0,0:01:33.23,0:01:41.23,R2L,,20,20,2,,{\move(699,125,-139,125)}距喜欢pv这段了!!!!
Dialogue: 0,0:01:33.28,0:01:41.28,R2L,,20,20,2,,{\move(863.5,175,-303.5,175)}ovuvuevuevue enyetuenwuevue ugbemugbem osas
Dialogue: 0,0:01:33.36,0:01:41.36,R2L,,20,20,2,,{\move(772.5,200,-212.5,200)\c&HEAA000}吾名欧布,我将照亮黑暗,击退邪恶。
Dialogue: 0,0:01:33.51,0:01:37.51,Fix,,20,20,2,,{\pos(280,25)\c&H1200E7}走低的原因还不是因为某些“先进”的家长
Dialogue: 0,0:01:33.51,0:01:37.51,Fix,,20,20,2,,{\pos(280,125)\c&H1200E7}以为这是吸氧羊就带着孩子去看,结果呢?
Dialogue: 0,0:01:33.59,0:01:41.59,R2L,,20,20,2,,{\move(863.5,150,-303.5,150)}ovuvuevuevue enyetuenwuevue ugbemugbem osas
Dialogue: 0,0:01:33.65,0:01:37.65,Fix,,20,20,2,,{\pos(280,277)\c&H1200E7}我叫欧布,欧布奥特曼!
Dialogue: 0,0:01:33.65,0:01:41.65,R2L,,20,20,2,,{\move(722.5,225,-162.5,225)}看完就表白,然后就在一起了
Dialogue: 0,0:01:33.81,0:01:37.81,Fix,,20,20,2,,{\pos(280,370)\c&HFF6600\fs18}坚强地活下去
Dialogue: 0,0:01:33.94,0:01:37.94,Fix,,20,20,2,,{\pos(280,150)\c&H1200E7}名侦探柯南 是个侦探
Dialogue: 0,0:01:33.96,0:01:37.96,Fix,,20,20,2,,{\pos(280,352)}滚滚滚走错片场了,瞬间笑了
Dialogue: 0,0:01:34.02,0:01:38.02,Fix,,20,20,2,,{\pos(280,175)\c&H1200E7}吉良吉影
Dialogue: 0,0:01:34.04,0:01:38.04,Fix,,20,20,2,,{\pos(280,252)\c&HFF0000\3c&HFFFFFF}生き抜いていこう
Dialogue: 0,0:01:34.23,0:01:42.23,R2L,,20,20,2,,{\move(585,25,-25,25)\c&H000000\3c&HFFFFFF}LYR
Dialogue: 0,0:01:34.28,0:01:42.28,R2L,,20,20,2,,{\move(622.5,50,-62.5,50)}郑立!!!
Dialogue: 0,0:01:34.29,0:01:42.29,R2L,,20,20,2,,{\move(572.5,100,-12.5,100)}。
Dialogue: 0,0:01:34.49,0:01:42.49,R2L,,20,20,2,,{\move(622.5,75,-62.5,75)}欧蕾哇索隆
Dialogue: 0,0:01:34.49,0:01:38.49,Fix,,20,20,2,,{\pos(280,200)}老子有杯存了三年的抠脚酒,那些抢着要喝的我这里有
Dialogue: 0,0:01:35.77,0:01:43.77,R2L,,20,20,2,,{\move(627,25,-67,25)\c&H000000\3c&HFFFFFF}欧布奥特曼!
Dialogue: 0,0:01:36.28,0:01:44.28,R2L,,20,20,2,,{\move(653.5,50,-93.5,50)}mistuha 拼错了
Dialogue: 0,0:01:36.30,0:01:44.30,R2L,,20,20,2,,{\move(735,125,-175,125)\c&H99FF66}无论在哪我都会去找你,周元歆
Dialogue: 0,0:01:36.74,0:01:44.74,R2L,,20,20,2,,{\move(683.5,100,-123.5,100)}老娘名字tara(滑稽)
Dialogue: 0,0:01:36.83,0:01:44.83,R2L,,20,20,2,,{\move(597.5,200,-37.5,200)\c&HEAA000}欧布!
Dialogue: 0,0:01:37.14,0:01:45.14,R2L,,20,20,2,,{\move(647.5,225,-87.5,225)}我的鸡皮疙瘩~
Dialogue: 0,0:01:37.28,0:01:45.28,R2L,,20,20,2,,{\move(710,75,-150,75)\c&H000000\3c&HFFFFFF}哦列哇,速趴塞牙人贝剧塔
Dialogue: 0,0:01:37.32,0:01:45.32,R2L,,20,20,2,,{\move(610,25,-50,25)}鸡皮疙瘩
Dialogue: 0,0:01:37.44,0:01:45.44,R2L,,20,20,2,,{\move(660,175,-100,175)}超喜欢这段!!!
Dialogue: 0,0:01:37.75,0:01:45.75,R2L,,20,20,2,,{\move(697.5,150,-137.5,150)}看宣传片都会泪目的电影
Dialogue: 0,0:01:38.04,0:01:46.04,R2L,,20,20,2,,{\move(610,200,-50,200)}君の名は
Dialogue: 0,0:01:38.29,0:01:46.29,R2L,,20,20,2,,{\move(647.5,50,-87.5,50)}看的我泪流满面
Dialogue: 0,0:01:38.46,0:01:42.46,Fix,,20,20,2,,{\pos(280,25)}表白的原地爆炸啊!(╯‵□′)╯︵┴─┴
Dialogue: 0,0:01:38.54,0:01:46.54,R2L,,20,20,2,,{\move(610.5,25,-50.5,25)}16刷无悔
Dialogue: 0,0:01:38.90,0:01:42.90,Fix,,20,20,2,,{\pos(280,50)\c&H1200E7}我的入宅作!
Dialogue: 0,0:01:39.19,0:01:47.19,R2L,,20,20,2,,{\move(585,100,-25,100)\c&H1200E7}泪目
Dialogue: 0,0:01:39.38,0:01:47.38,R2L,,20,20,2,,{\move(641.5,125,-81.5,125)}他的名字是-xr
Dialogue: 0,0:01:39.55,0:01:47.55,R2L,,20,20,2,,{\move(635,175,-75,175)}泪目!!!!
Dialogue: 0,0:01:39.76,0:01:47.76,R2L,,20,20,2,,{\move(610,25,-50,25)}那买啊哇
Dialogue: 0,0:01:39.84,0:01:47.84,R2L,,20,20,2,,{\move(585,100,-25,100)}赵威
Dialogue: 0,0:01:40.07,0:01:48.07,R2L,,20,20,2,,{\move(610,75,-50,75)}虎艺寻♡
Dialogue: 0,0:01:40.19,0:01:48.19,R2L,,20,20,2,,{\move(622.5,50,-62.5,50)\c&H439800}我咧瓦路飞
Dialogue: 0,0:01:40.48,0:01:44.48,Fix,,20,20,2,,{\pos(280,370)\c&H330000\3c&HFFFFFF}それは、夢のような景色のように
Dialogue: 0,0:01:40.79,0:01:48.79,R2L,,20,20,2,,{\move(597.5,100,-37.5,100)}好感动
Dialogue: 0,0:01:40.97,0:01:48.97,R2L,,20,20,2,,{\move(604,25,-44,25)\c&HCCFF66}真·神作
Dialogue: 0,0:01:41.25,0:01:49.25,R2L,,20,20,2,,{\move(735,150,-175,150)\c&HCC0066}无论在哪我都会去找你,周元歆
Dialogue: 0,0:01:41.29,0:01:49.29,R2L,,20,20,2,,{\move(597.5,75,-37.5,75)}加藤惠
Dialogue: 0,0:01:41.34,0:01:45.34,Fix,,20,20,2,,{\pos(280,345)\c&H330000\3c&HFFFFFF}それは、まるで夢の景色のように
Dialogue: 0,0:01:42.04,0:01:46.04,Fix,,20,20,2,,{\pos(280,75)\c&H1200E7}在下版本 有何贵干
Dialogue: 0,0:01:42.53,0:01:50.53,R2L,,20,20,2,,{\move(579.5,100,-19.5,100)}zzy
Dialogue: 0,0:01:42.66,0:01:50.66,R2L,,20,20,2,,{\move(635,25,-75,25)}讲的是什么啊
Dialogue: 0,0:01:42.83,0:01:50.83,R2L,,20,20,2,,{\move(697.5,50,-137.5,50)}每次看都有说不出的东西
Dialogue: 0,0:01:42.98,0:01:50.98,R2L,,20,20,2,,{\move(635,75,-75,75)}欧布的等等我
Dialogue: 0,0:01:43.13,0:01:51.13,R2L,,20,20,2,,{\move(610,125,-50,125)}那一买哇
Dialogue: 0,0:01:43.74,0:01:51.74,R2L,,20,20,2,,{\move(610,100,-50,100)}好感人啊
Dialogue: 0,0:01:44.35,0:01:52.35,R2L,,20,20,2,,{\move(584.5,25,-24.5,25)}mzx
Dialogue: 0,0:01:44.40,0:01:48.40,Fix,,20,20,2,,{\pos(280,320)\c&H330000\3c&HFFFFFF}ただひたすらに
Dialogue: 0,0:01:44.46,0:01:52.46,R2L,,20,20,2,,{\move(747.5,150,-187.5,150)}带有色眼镜的小粉红求你原地爆炸
Dialogue: 0,0:01:44.67,0:01:52.67,R2L,,20,20,2,,{\move(635,75,-75,75)}电影院看超棒
Dialogue: 0,0:01:44.96,0:01:52.96,R2L,,20,20,2,,{\move(610,100,-50,100)}真的感动
Dialogue: 0,0:01:45.01,0:01:53.01,R2L,,20,20,2,,{\move(585,25,-25,25)}泪目
Dialogue: 0,0:01:45.38,0:01:53.38,R2L,,20,20,2,,{\move(702,175,-142,175)}我在电视看了完整 的电影
Dialogue: 0,0:01:45.42,0:01:53.42,R2L,,20,20,2,,{\move(672.5,125,-112.5,125)}祝表白的单身到死。
Dialogue: 0,0:01:45.46,0:01:53.46,R2L,,20,20,2,,{\move(585,50,-25,50)}神作
Dialogue: 0,0:01:45.67,0:01:53.67,R2L,,20,20,2,,{\move(585,25,-25,25)\c&H1200E7}卓涵
Dialogue: 0,0:01:45.76,0:01:49.76,Fix,,20,20,2,,{\pos(280,370)\c&H330000\3c&HFFFFFF}美しい眺めだった
Dialogue: 0,0:01:45.99,0:01:49.99,Fix,,20,20,2,,{\pos(280,345)\c&HEAA000}嗷嗷嗷最后一句太好听了
Dialogue: 0,0:01:46.57,0:01:54.57,R2L,,20,20,2,,{\move(647.5,75,-87.5,75)\c&HCBC084}自己看感觉不错
Dialogue: 0,0:01:46.67,0:01:54.67,R2L,,20,20,2,,{\move(610,50,-50,50)}美不胜收
Dialogue: 0,0:01:46.88,0:01:54.88,R2L,,20,20,2,,{\move(610,25,-50,25)}那买的啊
Dialogue: 0,0:01:47.02,0:01:55.02,R2L,,20,20,2,,{\move(657.5,100,-97.5,100)}是mistuha!!!
Dialogue: 0,0:01:47.54,0:01:51.54,Fix,,20,20,2,,{\pos(280,25)\c&H02F1FE}子个看的笑哭我
Dialogue: 0,0:01:47.55,0:01:51.55,Fix,,20,20,2,,{\pos(280,50)\c&HFFFF00}我也觉得最后一句太美了
Dialogue: 0,0:01:47.61,0:01:51.61,Fix,,20,20,2,,{\pos(280,75)\c&H6600FF}自个儿看吧!
Dialogue: 0,0:01:47.75,0:01:51.75,Fix,,20,20,2,,{\pos(280,100)\c&HEAA000}最后一句太好听了
Dialogue: 0,0:01:47.83,0:01:55.83,R2L,,20,20,2,,{\move(660,125,-100,125)}鸡皮疙瘩,最喜欢
Dialogue: 0,0:01:48.09,0:01:56.09,R2L,,20,20,2,,{\move(579,25,-19,25)}。。
Dialogue: 0,0:01:48.13,0:01:56.13,R2L,,20,20,2,,{\move(622.5,50,-62.5,50)}美丽而致命
Dialogue: 0,0:01:48.26,0:01:52.26,Fix,,20,20,2,,{\pos(280,125)\c&H439800}自己看吧
Dialogue: 0,0:01:48.48,0:01:56.48,R2L,,20,20,2,,{\move(610,75,-50,75)\c&H0000CC}美不胜收
Dialogue: 0,0:01:48.97,0:01:56.97,R2L,,20,20,2,,{\move(922.5,150,-362.5,150)}不要说票房低。你的名字在浙江青少年间的知名度几乎是百分之后
Dialogue: 0,0:01:48.98,0:01:56.98,R2L,,20,20,2,,{\move(863,200,-303,200)}啊,“一起看吧”,这句话简直太美了,不去看都不行啊
Dialogue: 0,0:01:49.07,0:01:57.07,R2L,,20,20,2,,{\move(800.5,175,-240.5,175)\c&H000000\3c&HFFFFFF}“爱”就是科学与逻辑永远无法解释的程序。
Dialogue: 0,0:01:49.17,0:01:53.17,Fix,,20,20,2,,{\pos(280,320)}最后一句真美
Dialogue: 0,0:01:49.20,0:01:57.20,R2L,,20,20,2,,{\move(664.5,100,-104.5,100)}哭了 呼吸都在颤抖
Dialogue: 0,0:01:49.21,0:01:57.21,R2L,,20,20,2,,{\move(847.5,225,-287.5,225)\c&H02F1FE}订电影票时就看到只有我的头像是没有泷的三叶。。。
Dialogue: 0,0:01:49.39,0:01:57.39,R2L,,20,20,2,,{\move(614.5,25,-54.5,25)} 美不胜收
Dialogue: 0,0:01:49.51,0:01:53.51,Fix,,20,20,2,,{\pos(280,150)\c&H722E00\3c&HFFFFFF}自己看吧
Dialogue: 0,0:01:49.77,0:01:53.77,Fix,,20,20,2,,{\pos(280,175)\c&H1200E7}神木DD赛高!!!
Dialogue: 0,0:01:50.04,0:01:58.04,R2L,,20,20,2,,{\move(647.5,50,-87.5,50)}自己一个人看吧
Dialogue: 0,0:01:50.12,0:01:54.12,Fix,,20,20,2,,{\pos(280,200)\c&H7F02E2}自己看吧
Dialogue: 0,0:01:50.52,0:01:58.52,R2L,,20,20,2,,{\move(702,125,-142,125)}ctOS的别跑,决战到天亮
Dialogue: 0,0:01:50.85,0:01:58.85,R2L,,20,20,2,,{\move(622.5,25,-62.5,25)\c&H000000\3c&HFFFFFF}我叫赵卫东
Dialogue: 0,0:01:51.37,0:01:59.37,R2L,,20,20,2,,{\move(585,100,-25,100)}合影
Dialogue: 0,0:01:51.62,0:01:59.62,R2L,,20,20,2,,{\move(741.5,75,-181.5,75)}和美美哒女孩子一起看的,开心~
Dialogue: 0,0:01:52.31,0:02:00.31,R2L,,20,20,2,,{\move(597.5,25,-37.5,25)\c&H2AABF0}贼好看
Dialogue: 0,0:01:52.67,0:02:00.67,R2L,,20,20,2,,{\move(697.5,50,-137.5,50)}超级喜欢大陆版这个预告
Dialogue: 0,0:01:53.35,0:02:01.35,R2L,,20,20,2,,{\move(652,100,-92,100)}你的名字 陈同宙
Binary file not shown.
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 MiB

+26
View File
@@ -0,0 +1,26 @@
WEBVTT
1
00:00:00.000 --> 00:01:30.000
<i>[1]: 00:00 -> 01:30</i>
<i>[1]: 00:00 -> 01:30</i>
2
00:00:00.000 --> 00:00:05.000
<b>[2]: 00:00 -> 00:05</b>
<b>[2]: 00:00 -> 00:05</b>
3
00:00:00.000 --> 00:00:10.000
<b style="color:red">[3]: 00:00 -> 00:10</b>
<b style="color:red">[3]: 00:00 -> 00:10</b>
4
00:00:05.000 --> 00:00:20.000
<i style="color:yellow">[4]: 00:05 -> 00:20</i>
<i style="color:yellow">[4]: 00:05 -> 00:20</i>
5
00:00:10.000 --> 00:00:30.000
<del style="font-size:24px">[5]: 00:20 -> 01:00</del>
<del style="font-size:24px">[5]: 00:20 -> 01:00</del>
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loaded 100 of 1164 files, more files were not shown because too many files have changed in this diff. Show more