@@ -154,6 +154,27 @@ function init() {
154
154
155
155
if ( isEmpty ( _m3u8Url ) ) {
156
156
$ ( "#loading" ) . hide ( ) ; $ ( "#m3u8Custom" ) . show ( ) ;
157
+
158
+ // 批量生成切片链接
159
+ $ ( "#generateUrls" ) . change ( function ( ) {
160
+ const rangePattern = / \$ \{ r a n g e : ( \d + ) - ( \d + ) , ? ( \d + ) ? \} / ;
161
+ const text = $ ( this ) . val ( ) ;
162
+ const match = text . match ( rangePattern ) ;
163
+ if ( match ) {
164
+ const start = parseInt ( match [ 1 ] ) ;
165
+ const end = parseInt ( match [ 2 ] ) ;
166
+ const padding = match [ 3 ] ? parseInt ( match [ 3 ] ) : 0 ;
167
+ const urls = [ ] ;
168
+ for ( let i = start ; i <= end ; i ++ ) {
169
+ let number = i . toString ( ) ;
170
+ if ( padding > 0 ) {
171
+ number = number . padStart ( padding , '0' ) ;
172
+ }
173
+ urls . push ( text . replace ( rangePattern , number ) ) ;
174
+ }
175
+ $ ( "#m3u8Text" ) . val ( urls . join ( "\n" ) ) ;
176
+ }
177
+ } ) ;
157
178
$ ( "#parse" ) . click ( function ( ) {
158
179
let m3u8Text = $ ( "#m3u8Text" ) . val ( ) . trim ( ) ;
159
180
let baseUrl = $ ( "#baseUrl" ) . val ( ) . trim ( ) ;
@@ -194,7 +215,7 @@ function init() {
194
215
const getId = parseInt ( params . get ( "getId" ) ) ;
195
216
if ( getId ) {
196
217
chrome . tabs . sendMessage ( getId , "getM3u8" , function ( result ) {
197
- $ ( "#m3u8Text" ) . html ( result . m3u8Content ) ;
218
+ $ ( "#m3u8Text" ) . val ( result . m3u8Content ) ;
198
219
$ ( "#parse" ) . click ( ) ;
199
220
$ ( "#info" ) . html ( result . mediaInfo ) ;
200
221
} ) ;
0 commit comments