Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 07f1014

Browse files
committed
Finishes streamwish RawApi
1 parent 27c1c71 commit 07f1014

File tree

8 files changed

+184
-13
lines changed

8 files changed

+184
-13
lines changed

lib/dart_api_collection.dart

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,9 +13,10 @@ export 'src/gofile.dart'
1313
GofilePublicOption,
1414
GofileTagsOption;
1515

16-
export 'src/mixdrop.dart' show MixdropApi, MixdropApiExt, SubtitleLanguage;
16+
export 'src/mixdrop.dart'
17+
show MixdropApi, MixdropApiExt, MixdropSubtitleLanguage;
1718

1819
export 'src/streamtape.dart'
1920
show StreamtapeApi, StreamtapeApiComponentExt, StreamtapeApiExt;
2021

21-
export 'src/streamwish.dart';
22+
export 'src/streamwish.dart' show StreamwishApi, StreamwishQuality;

lib/src/mixdrop.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import 'package:dio/dio.dart';
88
part 'mixdrop/api.dart';
99
part 'mixdrop/raw_api.dart';
1010

11-
part 'mixdrop/helper/subtitle_language.dart';
11+
part 'mixdrop/helper/mixdrop_subtitle_language.dart';
1212
part 'mixdrop/helper/extension.dart';
1313

1414
part 'mixdrop/model/mixdrop_add_subtitle.dart';

lib/src/mixdrop/api.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,7 @@ class MixdropApi {
6565
Future<MixdropAddSubtitle?> addSubtitle(
6666
String fileRef, {
6767
required File subtitleFile,
68-
required SubtitleLanguage language,
68+
required MixdropSubtitleLanguage language,
6969
}) async {
7070
if (subtitleFile.fileExt != 'srt' && subtitleFile.fileExt != 'vtt') {
7171
return MixdropAddSubtitle(

lib/src/mixdrop/helper/subtitle_language.dart renamed to lib/src/mixdrop/helper/mixdrop_subtitle_language.dart

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
part of '../../mixdrop.dart';
44

5-
enum SubtitleLanguage {
5+
enum MixdropSubtitleLanguage {
66
AR('ar'),
77
BG('bg'),
88
BS('bs'),
@@ -30,7 +30,7 @@ enum SubtitleLanguage {
3030
TR('tr'),
3131
UD('ud');
3232

33-
const SubtitleLanguage(this._value);
33+
const MixdropSubtitleLanguage(this._value);
3434

3535
final String _value;
3636

lib/src/mixdrop/raw_api.dart

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -160,7 +160,7 @@ class _MixdropRawApi {
160160
Future<String?> addSubtitle(
161161
String fileRef, {
162162
required File subtitleFile,
163-
required SubtitleLanguage language,
163+
required MixdropSubtitleLanguage language,
164164
}) async {
165165
final id = await subtitleFile.id;
166166
final fields = [MapEntry('lang', '$language')];

lib/src/streamwish.dart

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,8 @@ import 'dart:io';
22

33
import 'package:dart_api_collection/src/common.dart';
44
import 'package:dio/dio.dart';
5-
import 'package:jiffy/jiffy.dart';
5+
6+
part 'streamwish/helper/streamwish_quality.dart';
67

78
part 'streamwish/api.dart';
89
part 'streamwish/raw_api.dart';
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
part of '../../streamwish.dart';
2+
3+
enum StreamwishQuality {
4+
n('n'),
5+
h('h'),
6+
l('l'),
7+
o('o');
8+
9+
const StreamwishQuality(this.value);
10+
final String value;
11+
}

lib/src/streamwish/raw_api.dart

Lines changed: 163 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -164,14 +164,11 @@ class _StreamwishRawApi {
164164
int? pageNumber,
165165
DateTime? time,
166166
}) async {
167-
final formatTime =
168-
time != null ? Jiffy.parseFromDateTime(time).toYYYYMMDDHMS : null;
169-
170167
final fetch = await _client.getUri(
171-
_apiUri('file/edit', {
168+
_apiUri('file/list', {
172169
'fld_id': folderId,
173170
'title': title,
174-
'created': formatTime,
171+
'created': time?.toJiffy.toYYYYMMDDHMS,
175172
'public': isPublic.toStringFlagOrNull,
176173
'adult': isAdult.toStringFlagOrNull,
177174
'per_page': resultPerPage,
@@ -181,4 +178,165 @@ class _StreamwishRawApi {
181178

182179
return fetch;
183180
}
181+
182+
Future<String?> fileDirectLink(
183+
String fileCode, {
184+
StreamwishQuality? quality,
185+
bool? hls,
186+
}) async {
187+
final fetch = await _client.getUri(
188+
_apiUri('file/direct_link', {
189+
'file_code': fileCode,
190+
'q': quality?.value,
191+
'hls': hls.toStringFlagOrNull,
192+
}),
193+
);
194+
195+
return fetch;
196+
}
197+
198+
Future<String?> fileClone(
199+
String fileCode, {
200+
String? newFileTitle,
201+
int? destinationFolderId,
202+
}) async {
203+
final fetch = await _client.getUri(
204+
_apiUri('file/clone', {
205+
'file_code': fileCode,
206+
'file_title': newFileTitle,
207+
'fld_id': destinationFolderId,
208+
}),
209+
);
210+
211+
return fetch;
212+
}
213+
214+
Future<String?> fileDelete(
215+
String fileCode,
216+
) async {
217+
final fetch = await _client.getUri(
218+
_apiUri('file/delete', {
219+
'file_code': fileCode,
220+
}),
221+
);
222+
223+
return fetch;
224+
}
225+
226+
Future<String?> fileDeletedList({
227+
int? deletedInLastNumberOfHours,
228+
}) async {
229+
final fetch = await _client.getUri(
230+
_apiUri('file/deleted', {
231+
'last': deletedInLastNumberOfHours,
232+
}),
233+
);
234+
235+
return fetch;
236+
}
237+
238+
Future<String?> fileDmcaList({
239+
int? reportedInLastNumberOfHours,
240+
}) async {
241+
final fetch = await _client.getUri(
242+
_apiUri('file/dmca', {
243+
'last': reportedInLastNumberOfHours,
244+
}),
245+
);
246+
247+
return fetch;
248+
}
249+
250+
/// Filter by [fileCode] if provided
251+
Future<String?> fileEncodings(
252+
String fileCode,
253+
) async {
254+
final fetch = await _client.getUri(
255+
_apiUri('file/encodings', {
256+
'file_code': fileCode,
257+
}),
258+
);
259+
return fetch;
260+
}
261+
262+
Future<String?> fileRemoteUploadStatus({
263+
String? fileCode,
264+
}) async {
265+
final fetch = await _client.getUri(
266+
_apiUri('file/url_uploads', {
267+
'file_code': fileCode,
268+
}),
269+
);
270+
return fetch;
271+
}
272+
273+
Future<String?> fileRemoteUploadAction({
274+
bool? restartErrors,
275+
bool? deleteErrors,
276+
bool? deleteAll,
277+
String? toBeDeletedRemoteUploadFileCode,
278+
}) async {
279+
final restartError = restartErrors.toStringFlag;
280+
final clearErrors = deleteErrors.toStringFlag;
281+
final clearAll = deleteAll.toStringFlag;
282+
283+
final fetch = await _client.getUri(
284+
_apiUri('urlupload/actions', {
285+
'restart_errors': restartError,
286+
'clear_errors': clearErrors,
287+
'clear_all': clearAll,
288+
'delete_code': toBeDeletedRemoteUploadFileCode,
289+
}),
290+
);
291+
return fetch;
292+
}
293+
294+
Future<String?> folderList({
295+
int? folderId,
296+
int? showNuberOfFiles,
297+
}) async {
298+
final fetch = await _client.getUri(
299+
_apiUri('folder/list', {
300+
'fld_id': folderId,
301+
'files': showNuberOfFiles,
302+
}),
303+
);
304+
305+
return fetch;
306+
}
307+
308+
Future<String?> folderCreate(
309+
String folderName, {
310+
int? parentFolderId,
311+
String? folderDescription,
312+
}) async {
313+
final fetch = await _client.getUri(
314+
_apiUri('folder/create', {
315+
'name': folderName,
316+
'parent_id': parentFolderId,
317+
'descr': folderDescription,
318+
}),
319+
);
320+
321+
return fetch;
322+
}
323+
324+
///Update folder details, skipped fields won't be updated
325+
Future<String?> folderEdit(
326+
int folderId, {
327+
int? parentFolderId,
328+
String? folderName,
329+
String? folderDescription,
330+
}) async {
331+
final fetch = await _client.getUri(
332+
_apiUri('folder/edit', {
333+
'fld_id': folderId,
334+
'parent_id': parentFolderId,
335+
'name': folderName,
336+
'descr': folderDescription,
337+
}),
338+
);
339+
340+
return fetch;
341+
}
184342
}

0 commit comments

Comments
 (0)