From c9d6c515eea876f6682033bb125ccb16feca805a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EF=BF=B4?= <￴@pop-os.localdomain> Date: Fri, 28 Jan 2022 02:45:55 +0700 Subject: [PATCH] udpate --- README.md | 8 +- dart/telegram_client/bin/bot/td.binlog | Bin 12432 -> 45076 bytes dart/telegram_client/bin/event.dart | 82 +++++++++++++++++++++ dart/telegram_client/bin/testtdlibbot.dart | 2 +- dart/telegram_client/lib/tdlib/tdlib.dart | 27 +++++-- dart/telegram_client/pubspec.lock | 7 ++ dart/telegram_client/pubspec.yaml | 1 + 7 files changed, 114 insertions(+), 13 deletions(-) create mode 100644 dart/telegram_client/bin/event.dart diff --git a/README.md b/README.md index d08b6d73..982f797d 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,7 @@ Telegram client is a library to make it easier for you to build your own telegra ### Docs -- [Dart / Flutter](https://github.com/azkadev/telegram_client/tree/main/dart/telegram_client/docs) - [Wiki]() -- [Node JS](https://github.com/azkadev/telegram_client) -- [Script Google](https://github.com/azkadev/telegram_client) +- Just Read On [Wiki](https://github.com/azkadev/telegram_client/wiki) ### Update @@ -21,14 +19,14 @@ Telegram client is a library to make it easier for you to build your own telegra - ✅️ support bot and userbot - ✅️ support telegram-bot-api local server - ✅️ support telegram database library ( Tdlib ) - - 🔜️ Add more Api Humanize pretty update and method api humanize + - ✅️ Add more Api Humanize pretty update and method api humanize - ```telegram client node``` - ✅️ support multi token ( bot / userbot ) - ✅️ support bot and userbot - ✅️ support telegram-bot-api local server - ✅️ support telegram database library ( [TDLIB](https://github.com/azkadev/telegram_client/tree/main/node-js/tdl-lib) ) - - 🔜️ Add more Api Humanize pretty update and method api humanize + - ✅️ Add more Api Humanize pretty update and method api humanize - ```telegram client google apps script``` - ✅️ support multi token ( bot / userbot ) diff --git a/dart/telegram_client/bin/bot/td.binlog b/dart/telegram_client/bin/bot/td.binlog index e4396a6dddfe49670988ff115a8c994e965af044..fb24ad2c58fe2337018c84519f2a770e836823e2 100644 GIT binary patch delta 32910 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

Fj6!|KE@fWI^04P(kp39bt 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 storeConfigs = + config as Map>; + storeConfigs.forEach((str, val) { + print("${str}:${val}"); + val.forEach((store, details) { + print("${store}:${details}"); + }); + }); + }); +} + +void main() { + Map data = { + "stores": { + "store1": {"generator": 1, "config": {}}, + "store2": {"generator": 2, "config": {}} + }, + "models": { + "model1": {"generator": 1, "name": "modelel1", "linkedStore": "store1"} + } + }; + + Function parseModels = (config) {}; + + print(data.runtimeType); + data.forEach((key, val) { + switch (key) { + case "stores": + parseStores(val).then((res) { + print("Store is parsed"); + }); + break; + case "models": + parseModels(val); + break; + default: + } + }); + + print("After the loop!!"); + + EventEmitter emitter = new EventEmitter(); + emitter.on("test", null, (ev, context) { + print("${ev.eventName} - ${ev.eventData}"); + }); + + emitter.emit("test", null, "Test data"); + + int count = 0; + + ExtendedEmitter timer = new ExtendedEmitter(); + timer.on("timer", null, (ev, context) { + count++; + print("Received ${ev.eventName} event from ${ev.sender}!"); + if (count == 10) { + Timer t = ev.eventData as Timer; + t.cancel(); + } + }); + + timer.doSomeOperation(); +} + +class ExtendedEmitter extends EventEmitter { + void timerCallback(Timer timer) { + emit("timer", this, timer); + } + + void doSomeOperation() { + Timer.periodic(Duration(seconds: 1), timerCallback); + } +} diff --git a/dart/telegram_client/bin/testtdlibbot.dart b/dart/telegram_client/bin/testtdlibbot.dart index 7433de11..d8b3734f 100644 --- a/dart/telegram_client/bin/testtdlibbot.dart +++ b/dart/telegram_client/bin/testtdlibbot.dart @@ -32,7 +32,7 @@ void main() { } }; var anu = tdl.clientSend(option); - print(JSON.stringify(anu, null, 2)); + print(JSON.stringify(anu, null,2)); } } }); diff --git a/dart/telegram_client/lib/tdlib/tdlib.dart b/dart/telegram_client/lib/tdlib/tdlib.dart index c200f212..4e316ee4 100644 --- a/dart/telegram_client/lib/tdlib/tdlib.dart +++ b/dart/telegram_client/lib/tdlib/tdlib.dart @@ -46,7 +46,7 @@ class Tdlib { _optionDefault[key.toString().toLowerCase()] = value; }); - clientSend({ + clientRequest({ "@type": "setLogVerbosityLevel", "new_verbosity_level": _optionDefault['new_verbosity_level'] }); @@ -103,10 +103,12 @@ class Tdlib { 'td_json_client_destroy') .asFunction(); } - - Map clientSend(jsonsend) { + clientSend(jsonsend) { _client_send(client, convert.json.encode(jsonsend).toNativeUtf8()); + + clienReceive(1.0); + clienReceive(1.0); var receive = clienReceive(1.0); if (typeData(receive) == "string") { return convert.json.decode(receive); @@ -115,6 +117,17 @@ class Tdlib { } } + clientRequest(jsonsend) { + _client_send(client, convert.json.encode(jsonsend).toNativeUtf8()); + var receive = clienReceive(1.0); + if (typeData(receive) == "string") { + return convert.json.decode(receive); + } else { + return {}; + } + } + + void clientDestroy() { return _client_destroy(client); } @@ -145,7 +158,7 @@ class Tdlib { "@type": 'setTdlibParameters', 'parameters': _optionDefault }; - clientSend(optin); + clientRequest(optin); /* clientSend({ '@type': 'setDatabaseEncryptionKey', @@ -155,7 +168,7 @@ class Tdlib { } if (authState["@type"] == "authorizationStateWaitEncryptionKey") { - clientSend({ + clientRequest({ "@type": 'checkDatabaseEncryptionKey', 'encryption_key': _optionDefault["database_key"] }); @@ -164,9 +177,9 @@ class Tdlib { } if (updateOrigin["@type"] == "updateConnectionState" && updateOrigin["state"]["@type"] == "connectionStateReady") { - clientSend({ + clientRequest({ "@type": "checkAuthenticationBotToken", - "token": "5059078949:" + "token": "5059078949:AAF0lFQGmcWyDjLPaCMYc6Xcp3kgcS_lFQU" }); } callback(updateOrigin); diff --git a/dart/telegram_client/pubspec.lock b/dart/telegram_client/pubspec.lock index 563b1fe8..a895a625 100644 --- a/dart/telegram_client/pubspec.lock +++ b/dart/telegram_client/pubspec.lock @@ -22,6 +22,13 @@ packages: url: "https://pub.dartlang.org" source: hosted version: "1.15.0" + eventify: + dependency: "direct main" + description: + name: eventify + url: "https://pub.dartlang.org" + source: hosted + version: "1.0.0" ffi: dependency: "direct main" description: diff --git a/dart/telegram_client/pubspec.yaml b/dart/telegram_client/pubspec.yaml index a65d8d0a..ed0b2ff4 100644 --- a/dart/telegram_client/pubspec.yaml +++ b/dart/telegram_client/pubspec.yaml @@ -12,5 +12,6 @@ dev_dependencies: lints: ^1.0.0 dependencies: + eventify: ^1.0.0 ffi: ^1.1.2 switchscript: ^0.0.1