2023-02-07 19:48:09 +03:00
|
|
|
// For more information see https://aka.ms/fsharp-console-apps
|
|
|
|
|
|
|
|
open System
|
|
|
|
open System.Net.Http
|
|
|
|
open System.Threading
|
|
|
|
open System.Threading.Tasks
|
2023-02-07 21:55:46 +03:00
|
|
|
open PublishHelperBot.Handlers
|
|
|
|
open PublishHelperBot.Environment
|
2023-02-07 19:48:09 +03:00
|
|
|
open Telegram.Bot
|
|
|
|
open Telegram.Bot.Polling
|
|
|
|
open Telegram.Bot.Types
|
|
|
|
open Telegram.Bot.Types.Enums
|
|
|
|
|
2023-02-07 21:55:46 +03:00
|
|
|
let CreateBot (config: BotConfig, http: HttpClient) = TelegramBotClient(config.token, http)
|
2023-02-07 19:48:09 +03:00
|
|
|
let config = CreateConfig <| "SBPB_CONFIG_PATH";
|
|
|
|
let botClient = CreateBot <| (config, new HttpClient())
|
2023-02-07 22:10:16 +03:00
|
|
|
let startDate = DateTime.Now
|
2023-02-07 19:48:09 +03:00
|
|
|
|
|
|
|
let updateHandle (bc: ITelegramBotClient) (u: Update) (ct: CancellationToken): Task =
|
|
|
|
match u with
|
2023-02-07 22:10:16 +03:00
|
|
|
// Ignore old messages (to prevent overposting on downtime)
|
|
|
|
| _ when u.Message.Date < startDate -> Task.CompletedTask
|
2023-02-07 21:55:46 +03:00
|
|
|
| _ when RelayMatch <| (u, config) -> RelayHandler <| (u, config, bc)
|
2023-02-07 19:48:09 +03:00
|
|
|
| _ -> Task.CompletedTask
|
|
|
|
|
|
|
|
let handlePollingError (bc: ITelegramBotClient) (e: Exception) (t: CancellationToken) =
|
|
|
|
printfn $"{e.Message}\n{e.StackTrace}"
|
|
|
|
Task.CompletedTask
|
|
|
|
|
|
|
|
let receiverOptions = ReceiverOptions(AllowedUpdates = Array.zeroCreate<UpdateType> 0)
|
|
|
|
|
|
|
|
botClient.StartReceiving(updateHandle,handlePollingError,receiverOptions)
|
|
|
|
|
2023-02-07 22:10:16 +03:00
|
|
|
printf "Я родился"
|
2023-02-07 19:48:09 +03:00
|
|
|
Console.ReadKey() |> ignore
|