request method
call api latest bot api example:
request("sendMessage", parameters: {
"chat_id": 123456,
"text": "<b>Hello</b> <code>word</code>",
"parse_mode": "html"
});
Implementation
Future<Map> request(
String method, {
Map? parameters,
bool is_form = false,
String? tokenBot,
String? urlApi,
String? clientType,
void Function(int bytesCount, int totalBytes)? onUploadProgress,
bool isAutoExtendMessage = false,
bool isThrowOnError = true,
Client? httpClient,
}) async {
parameters ??= {};
clientType ??= client_option["type"];
urlApi ??= client_option["api"];
tokenBot ??= token_bot;
if (parameters["is_natural"] == true) {}
if (isAutoExtendMessage) {
if (parameters["text"] is String) {
String text = parameters["text"];
if (text.length >= 4096) {
List<String> messagesJson = GeneralLibUtils.splitByLength(text, 4096);
List result = [];
for (var i = 0; i < messagesJson.length; i++) {
var loopData = messagesJson[i];
try {
await Future.delayed(Duration(milliseconds: 500));
parameters["text"] = loopData;
if (RegExp(
"(editMessageText)",
caseSensitive: false,
).hashData(method)) {
if (i != 0) {
method = "sendMessage";
}
}
var res = await invoke(
parameters: parameters,
is_form: is_form,
tokenBot: tokenBot,
urlApi: urlApi,
clientType: clientType,
onUploadProgress: onUploadProgress,
isThrowOnError: isThrowOnError,
);
result.add(res);
} catch (e) {
result.add(e);
}
}
return {"result": result};
}
}
if (parameters["caption"] is String) {
String caption = parameters["caption"];
if (caption.length >= 1024) {
List<String> messagesJson =
GeneralLibUtils.splitByLength(caption, 1024);
List result = [];
for (var i = 0; i < messagesJson.length; i++) {
var loopData = messagesJson[i];
try {
await Future.delayed(Duration(milliseconds: 500));
parameters["caption"] = loopData;
if (RegExp(
"(editMessageCaption)",
caseSensitive: false,
).hashData(method)) {
if (i != 0) {
parameters["text"] = loopData;
method = "sendMessage";
}
}
var res = await invoke(
parameters: parameters,
is_form: is_form,
tokenBot: tokenBot,
urlApi: urlApi,
clientType: clientType,
onUploadProgress: onUploadProgress,
isThrowOnError: isThrowOnError,
);
result.add(res);
} catch (e) {
result.add(e);
}
}
return {"result": result};
}
}
}
return await invoke(
parameters: parameters,
is_form: is_form,
tokenBot: tokenBot,
urlApi: urlApi,
clientType: clientType,
onUploadProgress: onUploadProgress,
isThrowOnError: isThrowOnError,
);
}