first implementation finished
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
import 'package:kagi_bang_bang/features/search_browser/domain/entities/modes.dart';
|
||||
import 'package:kagi_bang_bang/features/share_intent/domain/entities/shared_content.dart';
|
||||
|
||||
final _baseUrl = Uri.https('kagi.com');
|
||||
|
||||
Uri assistantUri({
|
||||
required String prompt,
|
||||
required AssistantMode assistantMode,
|
||||
ResearchVariant? researchVariant,
|
||||
ChatModel? chatModel,
|
||||
}) =>
|
||||
_baseUrl.replace(
|
||||
pathSegments: [
|
||||
'assistant',
|
||||
],
|
||||
queryParameters: {
|
||||
'mode': assistantMode.value.toString(),
|
||||
'q': prompt,
|
||||
...switch (assistantMode) {
|
||||
AssistantMode.research => {
|
||||
'sub_mode': researchVariant!.value.toString(),
|
||||
},
|
||||
AssistantMode.code => {},
|
||||
AssistantMode.chat => {
|
||||
'sub_mode': chatModel!.value.toString(),
|
||||
},
|
||||
AssistantMode.custom => {},
|
||||
},
|
||||
},
|
||||
);
|
||||
|
||||
Uri summarizerUri({
|
||||
required SharedContent document,
|
||||
required SummarizerMode mode,
|
||||
}) =>
|
||||
_baseUrl.replace(
|
||||
pathSegments: [
|
||||
'summarizer',
|
||||
'index.html',
|
||||
],
|
||||
queryParameters: {
|
||||
'summary': mode.value,
|
||||
if (document case SharedUrl(url: final url)) 'url': url.toString(),
|
||||
},
|
||||
fragment: switch (document) {
|
||||
SharedText(text: final text) => text,
|
||||
_ => null,
|
||||
},
|
||||
);
|
||||
|
||||
Uri searchUri({required String searchQuery}) => _baseUrl.replace(
|
||||
pathSegments: ['search'],
|
||||
queryParameters: {'q': searchQuery},
|
||||
);
|
||||
Reference in New Issue
Block a user