|
||
---|---|---|
src | ||
.envrc | ||
.gitignore | ||
README.md | ||
Tupfile | ||
Tuprules.tup | ||
config.prs | ||
default.nix | ||
lock.json | ||
telegram_actor.nimble |
README.md
telegram_actor
A proxy for communicating with TDLib over Syndicate using the JSON-serialized object API.
Do not use Telegram.
Probably a front for gathering metadata, like Signal, except FSB.
Example config
#!/usr/bin/env -S syndicate-server --config
<require-service <daemon telegram_actor>>
<daemon telegram_actor {
argv: [ "/bin/telegram_actor" ]
restart: never
protocol: application/syndicate
}>
let ?ds = dataspace
? <service-object <daemon telegram_actor> ?cap> [
$cap <telegram-client { dataspace: $ds }>
]
$ds [
?? <send ?v> [ $log ! <log "-" { |>>>|: $v }> ]
?? <recv ?v> [ $log ! <log "-" { |<<<|: $v }> ]
? ?v [ $log ! <log "-" { assertion: $v }> ]
? <telegram-ready> [
! <send {"@type": "getOption", "name":"version"}>
?? <recv {"@type": "updateAuthorizationState", "authorization_state": {"@type": "authorizationStateWaitTdlibParameters"}}> [
! <send {
"@type":"setTdlibParameters"
"database_directory":"tdlib"
"use_message_database":true
"use_secret_chats":true
"api_id": $api_id
"api_hash": $api_hash
"system_language_code":"en"
"device_model":"Desktop"
"application_version":"1.0"
}>
]
?? <recv {"@type": "updateAuthorizationState", "authorization_state": {"@type": "authorizationStateWaitPhoneNumber"}}> [
! <send {
"@type":"setAuthenticationPhoneNumber"
"phone_number": $phone_number
}>
]
?? <recv {"@type": "updateAuthorizationState", "authorization_state": {"@type": "authorizationStateWaitCode"}}> [
! <send {
"@type":"checkAuthenticationCode"
"code": $login_code
}>
]
]
]