| Новости | FAQ | Авторы | Документация | В действии | Библиотека |
| Инструменты | Полезные ссылки | Хостинги | Скачать | Примеры | Форум |
ViRus 23.09.2019 11:59 / 23.09.2019 12:02
@CLASS
telegram
@BASE
MAIN
@OPTIONS
locals
################
@create[hParams]
# $hParams.token
# $hParams.curlLibPath
$telegram:token[$hParams.token]
^if(def $hParams.curlLibPath){
$telegram:curlLibPath[$hParams.curlLibPath]
}($env:REMOTE_ADDR eq '127.0.0.1'){
$telegram:curlLibPath[/usr/lib/x86_64-linux-gnu/libcurl.so.4.3.0]
}
$telegram:apiBaseUrl[https://api.telegram.org/bot]
#############
@getUpdates[]
$result[^request[
$.method[getUpdates]
]]
#####################
@sendMessage[hParams]
# $hParams.chatID
# $hParams.text
# $hParams.inlineKb[ ^rem{ or replyKb }
# $.row1[
# $.btn1[
# $.text[btn text]
# $.callback_data[btn command]
# ]
# ...
# ]
# ...
# ]
^if($hParams.inlineKb){
^hParams.inlineKb.foreach[;row]{
^if(^inlineKbJson.right(1) eq ']'){
$inlineKbJson[$inlineKbJson,]
}
$inlineKbJson[$inlineKbJson^[]
^row.foreach[;btn]{
^if(^inlineKbJson.right(1) eq '}'){
$inlineKbJson[$inlineKbJson,]
}
$jsonBtn[^json:string[$btn]]
$inlineKbJson[${inlineKbJson}$jsonBtn]
}
$inlineKbJson[$inlineKbJson^]]
}
$inlineKbJson[^text:removeSpaces[$inlineKbJson]]
$inlineKbJson["inline_keyboard":[$inlineKbJson]]
$reply_markup[$inlineKbJson]
}($hParams.replyKb){
$reply_markup[^parseReplyKb[$hParams.replyKb]]
}{
# $reply_markup[^parseReplyKb[^defaultReplyKb[]]]
}
$result[^request[
$.method[sendMessage]
$.hForm[
$.chat_id[$hParams.chatID]
$.text[^text:removeSpaces[$hParams.text]]
$.parse_mode[HTML]
$.reply_markup[{$reply_markup}]
]
]]
#################
@request[hParams]
# $hParams.method
# $hParams.hForm
^if(
def $curlLibPath
&& !$telegram:isCurlLibLoaded
){
^curl:options[
$.library[$curlLibPath]
]
$telegram:isCurlLibLoaded(1)
}
^if($hParams.hForm){
$formParams[]
^hParams.hForm.foreach[k;v]{
^if(def $formParams){
$formParams[$formParams&]
}
$formParams[${formParams}$k=$v]
}
}
$formParams[^taint[uri][$formParams]]
$curlRequest[^curl:load[
$.url[^taint[as-is;${apiBaseUrl}$token/$hParams.method?$formParams]]
$.ssl_verifypeer(0)
]]
$result[
$.response[$curlRequest.text]
]
####################
@setWebHook[hParams]
# $hParams.url
$result[^request[
$.method[setWebHook]
$.hForm[
$.url[$hParams.url]
]
]]
######################
@sendLocation[hParams]
# $hParams.chatID
# $hParams.lat
# $hParams.lng
$result[^request[
$.method[sendLocation]
$.hForm[
$.chat_id[$hParams.chatID]
$.latitude[$hParams.lat]
$.longitude[$hParams.lng]
]
]]
##################
@parseReplyKb[hKb]
^hKb.foreach[;row]{
^if(^result.right(1) eq ']'){
$result[$result,]
}
$result[$result^[]
^row.foreach[;btn]{
^if(^result.right(1) eq '}'){
$result[$result,]
}
$jsonBtn[^json:string[$btn]]
$result[${result}$jsonBtn]
}
$result[$result^]]
}
$result[^text:removeSpaces[$result]]
$result["keyboard":[$result], "resize_keyboard": true]Использование: $telegram[^telegram::create[ $.token[***] $.curlLibPath[***] ]] $sendMsg[^telegram:sendMessage[ $.chatID[***] $.text[***] ]]прочее см. в коде.