Skip to content

Commit

Permalink
[+] add find bilibili audios
Browse files Browse the repository at this point in the history
  • Loading branch information
heng30 committed May 20, 2024
1 parent 60446b1 commit e910b42
Show file tree
Hide file tree
Showing 31 changed files with 2,672 additions and 238 deletions.
Binary file modified assets/images/Bilibili.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
8 changes: 6 additions & 2 deletions lib/lang/en.dart
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,8 @@ const Map<String, String> en = {
"未启用Bilibili搜索": "Disabled Bilibili searching",
"搜索设置": "Search setting",
"每次搜索数量": "Every searching count",
"时间下限": "Time low boundary",
"时间上限": "Time up boundary",
"时间下限(秒)": "Time low boundary(Second)",
"时间上限(秒)": "Time up boundary(Second)",
"没有启用Youtube或Bilibili搜索":
"Not enable setting searching for Youtube or Bilibili",
"已启用视频转音频": "Enabled convert video to audio",
Expand All @@ -106,4 +106,8 @@ const Map<String, String> en = {
"是否重新下载": "Download again or not",
"刷新完成": "Refresh finished",
"停止": "Stop",
"请不要重复发送": "Please try it latter",
"正在发送...": "Sending...",
"文件已存在,是否覆盖": "File has existed, do you want to cover it",
"删除": "Delete",
};
8 changes: 6 additions & 2 deletions lib/lang/zh.dart
Original file line number Diff line number Diff line change
Expand Up @@ -90,8 +90,8 @@ const Map<String, String> zh = {
"Disabled Bilibili searching": "未启用Bilibili搜索",
"Search setting": "搜索设置",
"Every searching count": "每次搜索数量",
"Time low boundary": "时间下限",
"Time up boundary": "时间上限",
"Time low boundary(Second)": "时间下限(秒)",
"Time up boundary(Second)": "时间上限(秒)",
"Not enable setting searching for Youtube or Bilibili":
"没有启用Youtube或Bilibili搜索",
"Enabled convert video to audio": "已启用视频转音频",
Expand All @@ -106,4 +106,8 @@ const Map<String, String> zh = {
"Download again or not": "是否重新下载",
"Refresh finished": "刷新完成",
"Stop": "停止",
"Please try it latter": "请不要重复发送",
"Sending...": "正在发送...",
"File has existed, do you want to cover it": "文件已存在,是否覆盖",
"Delete": "删除",
};
6 changes: 4 additions & 2 deletions lib/models/find_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -112,12 +112,13 @@ class Info {
await convertVideoToAudio(info);
} catch (e) {
Logger().d(e);
playlistController.add([await Song.fromInfo(info)]);
playlistController
.add([await Song.fromInfo(info)], isShowMsg: false);
}
} else {
Get.snackbar("下载成功".tr, filepath,
snackPosition: SnackPosition.BOTTOM);
playlistController.add([await Song.fromInfo(info)]);
playlistController.add([await Song.fromInfo(info)], isShowMsg: false);
}
},
onError: (e) async {
Expand Down Expand Up @@ -178,6 +179,7 @@ class FindController extends GetxController {
title: "title-$i",
author: "author-$i",
videoId: "vdMTIe5ihYg",
bvCid: 0,
shortDescription: "shortDescription-$i",
viewCount: 100,
lengthSeconds: 320,
Expand Down
76 changes: 70 additions & 6 deletions lib/models/playlist_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -4,12 +4,14 @@ import 'dart:convert';
import 'package:get/get.dart';
import 'package:path/path.dart';
import 'package:logger/logger.dart';
import 'package:flutter/material.dart';
import 'package:flutter/foundation.dart';
import 'package:file_picker/file_picker.dart';
import 'package:audiotagger/audiotagger.dart';

import './song.dart';
import './albums.dart';
import '../theme/theme.dart';
import './player_controller.dart';
import './db_controller.dart';
import './find_controller.dart';
Expand Down Expand Up @@ -183,7 +185,7 @@ class PlaylistController extends GetxController {
}

// add songs to playlist
void add(List<Song> songs) async {
void add(List<Song> songs, {bool isShowMsg = true}) async {
if (songs.isEmpty) return;

List<Song> newSongs = [];
Expand All @@ -197,17 +199,17 @@ class PlaylistController extends GetxController {
}

if (newSongs.isNotEmpty) {
Get.snackbar("提 示".tr, '${"添加".tr} ${newSongs.length} ${"首歌曲".tr}',
snackPosition: SnackPosition.BOTTOM);
if (isShowMsg) {
Get.snackbar("提 示".tr, '${"添加".tr} ${newSongs.length} ${"首歌曲".tr}',
snackPosition: SnackPosition.BOTTOM);
}
playlist.addAll(newSongs);
} else {
Get.snackbar("提 示".tr, "歌曲已经在播放列表".tr,
snackPosition: SnackPosition.BOTTOM);
}

for (var song in newSongs) {
// log.d(jsonEncode(song.toJson()));

await dbController.insert(
DbController.playlistTable, song.uuid, jsonEncode(song.toJson()));
}
Expand All @@ -229,7 +231,7 @@ class PlaylistController extends GetxController {
FilePickerResult? result = await FilePicker.platform.pickFiles(
allowMultiple: true,
type: FileType.custom,
allowedExtensions: ['mp3', 'mp4', 'wav', 'flac', 'ogg'],
allowedExtensions: ['mp3', 'mp4', 'm4s', 'wav', 'flac', 'ogg'],
initialDirectory: Get.find<FindController>().downloadDir,
);

Expand Down Expand Up @@ -271,4 +273,66 @@ class PlaylistController extends GetxController {

return songs;
}

void clearPlaylistDialog() {
Get.defaultDialog(
title: "提 示".tr,
middleText: '${"是否删除全部歌曲".tr}?',
confirm: ElevatedButton(
onPressed: () {
Get.closeAllSnackbars();
Get.back();
removeAll();
Get.snackbar("提 示".tr, "已经删除全部歌曲".tr,
snackPosition: SnackPosition.BOTTOM);
},
child: Obx(
() => Text(
"删除全部".tr,
style: TextStyle(color: CTheme.inversePrimary),
),
),
),
cancel: ElevatedButton(
onPressed: () => Get.back(),
child: Obx(
() => Text(
"取消".tr,
style: TextStyle(color: CTheme.inversePrimary),
),
),
),
);
}

void clearPlaylistOneSongDialog(int index) {
Get.defaultDialog(
title: "提 示".tr,
middleText: '${"是否删除歌曲".tr}?',
confirm: ElevatedButton(
onPressed: () {
Get.closeAllSnackbars();
Get.back();
remove(index);
Get.snackbar("提 示".tr, "已经删除歌曲".tr,
snackPosition: SnackPosition.BOTTOM);
},
child: Obx(
() => Text(
"删除歌曲".tr,
style: TextStyle(color: CTheme.inversePrimary),
),
),
),
cancel: ElevatedButton(
onPressed: () => Get.back(),
child: Obx(
() => Text(
"取消".tr,
style: TextStyle(color: CTheme.inversePrimary),
),
),
),
);
}
}
2 changes: 1 addition & 1 deletion lib/models/setting_controller.dart
Original file line number Diff line number Diff line change
Expand Up @@ -106,7 +106,7 @@ class Find implements TomlEncodableValue {
bool get enableYoutubeSearch => _enableYoutubeSearch.value;
set enableYoutubeSearch(bool v) => _enableYoutubeSearch.value = v;

final _enableBilibiliSearch = false.obs;
final _enableBilibiliSearch = true.obs;
bool get enableBilibiliSearch => _enableBilibiliSearch.value;
set enableBilibiliSearch(bool v) => _enableBilibiliSearch.value = v;

Expand Down
16 changes: 16 additions & 0 deletions lib/pages/feedback.dart
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,10 @@ class FeedbackPage extends StatefulWidget {

class _FeedbackPageState extends State<FeedbackPage> {
final _textController = TextEditingController();
final _textFocusNode = FocusNode();
final _currentTextCounts = 0.obs;
final _feedbackUrl = "https://heng30.xyz/apisvr/musicbox/feedback";
bool _isSending = false;

static const int maxFeedbackLen = 2048;

Expand All @@ -42,6 +44,17 @@ class _FeedbackPageState extends State<FeedbackPage> {
return;
}

_textFocusNode.unfocus();

if (_isSending) {
Get.snackbar("提 示".tr, "请不要重复发送".tr);
return;
}

Get.snackbar("提 示".tr, "正在发送...".tr);

_isSending = true;

Map<String, dynamic> data = {
"appid": settingController.appid,
"type": "feedback",
Expand All @@ -66,6 +79,8 @@ class _FeedbackPageState extends State<FeedbackPage> {
} catch (e) {
Get.snackbar("发送失败".tr, e.toString());
Logger().d(e.toString());
} finally {
_isSending = false;
}
}

Expand All @@ -85,6 +100,7 @@ class _FeedbackPageState extends State<FeedbackPage> {
Expanded(
child: TextEdit(
controller: _textController,
focusNode: _textFocusNode,
hintText: "请输入内容".tr,
onChanged: _onTextChange,
),
Expand Down
Loading

0 comments on commit e910b42

Please sign in to comment.