Advertisement
Guest User

Untitled

a guest
Nov 18th, 2017
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
F# 1.31 KB | None | 0 0
  1. (* Program.fs *)
  2. module Program
  3.  
  4. open Microsoft.FSharp.Control
  5. open System
  6. open Telegram.Bot
  7. open Telegram.Bot.Types.Enums
  8.  
  9. let bot_token = "token"
  10. let bot = TelegramBotClient(bot_token)
  11.  
  12. let handler =
  13.     new EventHandler<Args.MessageEventArgs>(
  14.         fun obj x -> MessageProcessor.messageHandler (obj :?> TelegramBotClient) x
  15.     )
  16.  
  17. [<EntryPoint>]
  18. let main argv =
  19.     bot.OnMessage.AddHandler(handler)
  20.     bot.StartReceiving()
  21.     ignore <| Console.ReadLine()
  22.     bot.StopReceiving()
  23.     0
  24.  
  25.  
  26. (* MessageProcessor.fs *)
  27. module MessageProcessor
  28.  
  29. open Telegram.Bot
  30. open Telegram.Bot.Args
  31. open Telegram.Bot.Types.Enums
  32.  
  33.    
  34. let private greeting (client: TelegramBotClient) (chatId: Types.ChatId) =
  35.     client.SendTextMessageAsync(chatId, "Nice to meet ya!")
  36.  
  37. let private commands = Map ["/start", greeting;]
  38.  
  39. let private proccessText (bot: TelegramBotClient) (msg: Types.Message) =
  40.     let cmd = commands.TryFind msg.Text
  41.     ignore <| if cmd.IsSome then cmd.Value bot (Types.ChatId msg.Chat.Id)
  42.               else bot.SendTextMessageAsync(Types.ChatId msg.Chat.Id, "Some error")
  43.    
  44. let messageHandler obj (args : MessageEventArgs) =
  45.     let bot = obj :> TelegramBotClient
  46.     match args.Message.Type with
  47.     | MessageType.TextMessage -> proccessText bot args.Message
  48.     | _ -> ()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement