-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathexample.dart
117 lines (109 loc) · 3.16 KB
/
example.dart
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
import 'dart:convert' show base64, utf8;
import 'package:tdffi/client.dart';
import 'package:logging/logging.dart';
import 'package:tdffi/td.dart';
void main() async {
Logger.root.level = Level.ALL; // defaults to Level.INFO
Logger.root.onRecord.listen((event) {
print(event);
});
var client = Auth(
tdlibParameters: DefaultTdlibParameters(
use_test_dc: false,
api_hash: 'a3406de8d171bb422bb6ddf3bbd800e2',
api_id: 94575,
database_directory: '/tmp/tdlib'),
dynamicLibPath: '../td/build/$defaultDynamicLibFile',
);
// REQUIRED for flutter Hot Restart
// client.sendAsync(Close());
// client.clientId = client.td_create_client_id();
await client.start();
await client.execute(SetLogVerbosityLevel(new_verbosity_level: 0));
var user = await client.login(
botToken: '',
);
print(user.first_name);
var newMessage = client.updates
.whereType<UpdateNewMessage>()
.where((event) => event.message.is_outgoing == false)
.map((event) => event.message);
// newMessage.listen((event) => print(event.message.content));
newMessage.where((message) => message.content is MessageText)
.where((event) => event.content.messageText!.text.text.startsWith("/start"))
.listen(
(message) async {
var text = await client.execute<FormattedText>(
ParseTextEntities(
text: "*Hello World*",
parse_mode: TextParseModeMarkdown(version: 2),
),
);
var replyMarkup = ReplyMarkupInlineKeyboard(
rows: [
[
InlineKeyboardButton(
text: "Button 1",
type: InlineKeyboardButtonTypeCallback(
data: base64.encode(utf8.encode("hello")),
),
)
]
],
);
var request = SendMessage(
chat_id: message.chat_id,
message_thread_id: 0,
input_message_content: InputMessageText(
text: text,
disable_web_page_preview: true,
clear_draft: true,
),
reply_markup: replyMarkup,
);
// print(request.toJsonEncoded());
await client.send(request);
},
);
client.updates
.whereType<UpdateNewCallbackQuery>()
.where(
(event) => utf8
.decode(
base64.decode(
event.payload.callbackQueryPayloadData?.data ?? '',
),
)
.startsWith('hello'),
)
.listen(
(event) async {
int chatId = event.chat_id;
await client.send(
DeleteMessages(
chat_id: chatId,
message_ids: [event.message_id],
revoke: true,
),
);
var text = await client.execute<FormattedText>(
ParseTextEntities(
text: r"*Message Received\!\!*",
parse_mode: TextParseModeMarkdown(version: 2),
),
);
await client.send(
SendMessage(
chat_id: chatId,
message_thread_id: 0,
input_message_content: InputMessageText(
text: text,
disable_web_page_preview: true,
clear_draft: true,
),
),
);
},
);
// await client.destroy();
}