@@ -43,7 +43,7 @@ public PageChatDownload()
43
43
44
44
private void Page_Initialized ( object sender , EventArgs e )
45
45
{
46
- SetEnabled ( false , false ) ;
46
+ SetEnabled ( false ) ;
47
47
SetEnabledTrimStart ( false ) ;
48
48
SetEnabledTrimEnd ( false ) ;
49
49
checkEmbed . IsChecked = Settings . Default . ChatEmbedEmotes ;
@@ -73,10 +73,10 @@ private void Page_Initialized(object sender, EventArgs e)
73
73
} ;
74
74
}
75
75
76
- private void SetEnabled ( bool isEnabled , bool isClip )
76
+ private void SetEnabled ( bool isEnabled )
77
77
{
78
- CheckTrimStart . IsEnabled = isEnabled & ! isClip ;
79
- CheckTrimEnd . IsEnabled = isEnabled & ! isClip ;
78
+ CheckTrimStart . IsEnabled = isEnabled ;
79
+ CheckTrimEnd . IsEnabled = isEnabled ;
80
80
radioTimestampRelative . IsEnabled = isEnabled ;
81
81
radioTimestampUTC . IsEnabled = isEnabled ;
82
82
radioTimestampNone . IsEnabled = isEnabled ;
@@ -147,6 +147,9 @@ private async Task GetVideoInfo()
147
147
streamerId = int . Parse ( videoInfo . data . video . owner . id ) ;
148
148
viewCount = videoInfo . data . video . viewCount ;
149
149
game = videoInfo . data . video . game ? . displayName ?? Translations . Strings . UnknownGame ;
150
+
151
+ numStartHour . Maximum = ( int ) vodLength . TotalHours ;
152
+ numStartMinute . Maximum = 60 ;
150
153
var urlTimeCodeMatch = TwitchRegex . UrlTimeCode . Match ( textUrl . Text ) ;
151
154
if ( urlTimeCodeMatch . Success )
152
155
{
@@ -162,14 +165,14 @@ private async Task GetVideoInfo()
162
165
numStartMinute . Value = 0 ;
163
166
numStartSecond . Value = 0 ;
164
167
}
165
- numStartHour . Maximum = ( int ) vodLength . TotalHours ;
166
168
167
- numEndHour . Value = ( int ) vodLength . TotalHours ;
168
169
numEndHour . Maximum = ( int ) vodLength . TotalHours ;
170
+ numEndHour . Value = ( int ) vodLength . TotalHours ;
171
+ numEndMinute . Maximum = 60 ;
169
172
numEndMinute . Value = vodLength . Minutes ;
170
173
numEndSecond . Value = vodLength . Seconds ;
171
174
labelLength . Text = vodLength . ToString ( "c" ) ;
172
- SetEnabled ( true , false ) ;
175
+ SetEnabled ( true ) ;
173
176
}
174
177
else if ( downloadType == DownloadType . Clip )
175
178
{
@@ -184,17 +187,27 @@ private async Task GetVideoInfo()
184
187
}
185
188
imgThumbnail . Source = image ;
186
189
187
- TimeSpan clipLength = TimeSpan . FromSeconds ( clipInfo . data . clip . durationSeconds ) ;
190
+ vodLength = TimeSpan . FromSeconds ( clipInfo . data . clip . durationSeconds ) ;
188
191
textStreamer . Text = clipInfo . data . clip . broadcaster ? . displayName ?? Translations . Strings . UnknownUser ;
189
192
var clipCreatedAt = clipInfo . data . clip . createdAt ;
190
193
textCreatedAt . Text = Settings . Default . UTCVideoTime ? clipCreatedAt . ToString ( CultureInfo . CurrentCulture ) : clipCreatedAt . ToLocalTime ( ) . ToString ( CultureInfo . CurrentCulture ) ;
191
194
currentVideoTime = Settings . Default . UTCVideoTime ? clipCreatedAt : clipCreatedAt . ToLocalTime ( ) ;
192
195
textTitle . Text = clipInfo . data . clip . title ;
193
196
streamerId = int . Parse ( clipInfo . data . clip . broadcaster ? . id ?? "-1" ) ;
194
- labelLength . Text = clipLength . ToString ( "c" ) ;
195
- SetEnabled ( true , true ) ;
196
- SetEnabledTrimStart ( false ) ;
197
- SetEnabledTrimEnd ( false ) ;
197
+ labelLength . Text = vodLength . ToString ( "c" ) ;
198
+ SetEnabled ( true ) ;
199
+
200
+ numStartHour . Maximum = 0 ;
201
+ numStartHour . Value = 0 ;
202
+ numStartMinute . Maximum = vodLength . Minutes ;
203
+ numStartMinute . Value = 0 ;
204
+ numStartSecond . Value = 0 ;
205
+
206
+ numEndHour . Maximum = 0 ;
207
+ numEndHour . Value = 0 ;
208
+ numEndMinute . Maximum = vodLength . Minutes ;
209
+ numEndMinute . Value = vodLength . Minutes ;
210
+ numEndSecond . Value = vodLength . Seconds ;
198
211
}
199
212
200
213
btnGetInfo . IsEnabled = true ;
@@ -268,22 +281,18 @@ public ChatDownloadOptions GetOptions(string filename)
268
281
else if ( radioCompressionGzip . IsChecked == true )
269
282
options . Compression = ChatCompression . Gzip ;
270
283
271
- // TODO: Enable trimming clip chats
272
- if ( downloadType is DownloadType . Video )
284
+ if ( CheckTrimStart . IsChecked == true )
273
285
{
274
- if ( CheckTrimStart . IsChecked == true )
275
- {
276
- options . TrimBeginning = true ;
277
- TimeSpan start = new TimeSpan ( ( int ) numStartHour . Value , ( int ) numStartMinute . Value , ( int ) numStartSecond . Value ) ;
278
- options . TrimBeginningTime = ( int ) start . TotalSeconds ;
279
- }
286
+ options . TrimBeginning = true ;
287
+ TimeSpan start = new TimeSpan ( ( int ) numStartHour . Value , ( int ) numStartMinute . Value , ( int ) numStartSecond . Value ) ;
288
+ options . TrimBeginningTime = ( int ) start . TotalSeconds ;
289
+ }
280
290
281
- if ( CheckTrimEnd . IsChecked == true )
282
- {
283
- options . TrimEnding = true ;
284
- TimeSpan end = new TimeSpan ( ( int ) numEndHour . Value , ( int ) numEndMinute . Value , ( int ) numEndSecond . Value ) ;
285
- options . TrimEndingTime = ( int ) end . TotalSeconds ;
286
- }
291
+ if ( CheckTrimEnd . IsChecked == true )
292
+ {
293
+ options . TrimEnding = true ;
294
+ TimeSpan end = new TimeSpan ( ( int ) numEndHour . Value , ( int ) numEndMinute . Value , ( int ) numEndSecond . Value ) ;
295
+ options . TrimEndingTime = ( int ) end . TotalSeconds ;
287
296
}
288
297
289
298
if ( radioTimestampUTC . IsChecked == true )
@@ -532,7 +541,7 @@ private async void SplitBtnDownload_Click(object sender, RoutedEventArgs e)
532
541
var currentDownload = new ChatDownloader ( downloadOptions , downloadProgress ) ;
533
542
534
543
btnGetInfo . IsEnabled = false ;
535
- SetEnabled ( false , false ) ;
544
+ SetEnabled ( false ) ;
536
545
537
546
SetImage ( "Images/ppOverheat.gif" , true ) ;
538
547
statusMessage . Text = Translations . Strings . StatusDownloading ;
0 commit comments