Swiftpack.co - Package - givip/Telegrammer

SwiftyBot Banner

Telegrammer

Telegram Bot Framework written in Swift 4.1 with SwiftNIO network framework

Build Version Language Platform License


What does it doDocumentationHOWTO GuidesUsage without VaporUsage with VaporDemo botsRequirementsContributingAuthor


What does it do

Telegrammer is open-source framework for Telegram Bots developers. It was built on top of Apple/SwiftNIO which help to demonstrate excellent performance.

SwiftNIO is a cross-platform asynchronous event-driven network application framework for rapid development of maintainable high performance protocol servers and clients.

Also Telegrammer use some submodules of Vapor 3 server side swift framework

Join to our Telegram developers chat

Join to our Telegrammer channel on Vapor Discord server

It's easy, from scratch

main.swift

import Telegrammer

let bot = try! Bot(token: "BOT_TOKEN_HERE")

let commandHandler = CommandHandler(commands: ["/hello"], callback: { (update, _) in
    guard let message = update.message, let user = message.from else { return }
    try! message.reply("Hello \(user.firstName)", from: bot)
})

let dispatcher = Dispatcher(bot: bot)
dispatcher.add(handler: commandHandler)

_ = try! Updater(bot: bot, dispatcher: dispatcher).startLongpolling().wait()

Documentation

HOWTO Guides

Usage without Vapor

  1. Create package with Swift Package Manager (SPM)
$ mkdir MyBot
$ cd MyBot
$ swift package init --type executable
  1. Define Dependencies in Package.swift file
let package = Package(
    name: "MyBot",
    dependencies: [
        .package(url: "https://github.com/givip/Telegrammer.git", from: "0.2.0")
        ],
    targets: [
        .target( name: "MyBot", dependencies: ["Telegrammer"])
        ]
)
  1. Resolve dependencies
$ swift package resolve
  1. Generate XCode project (for macOS only)
$ swift package generate-xcodeproj
  1. Open in XCode (for macOS only)
$ open MyBot.xcodeproj

You project is ready to create new Telegram Bot.

If you need more help through this steps, you can read How to create a Telegram bot with Telegrammer on Ubuntu / macOS

Usage with Vapor

You may also use previous way to create project with Vapor, only include Vapor as dependency in Package.swift

  1. Install Vapor CLI
$ brew install vapor/tap/vapor
  1. Create Vapor project with Telegrammer template
$ vapor new MyBot --template=https://github.com/givip/telegram-bot-template
  1. Generate XCode project
$ vapor xcode

Demo bots

EchoBot Sample

  1. Add Telegram Token in Environment Variables, so, either create an environment variable:
$ export TELEGRAM_BOT_TOKEN='000000000:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
  1. Run EchoBot executable scheme or
$ swift run
  1. Send /echo command to bot

Requirements

Contributing

See CONTRIBUTING.md file.

Author

Givi Pataridze

pataridzegivi@gmail.com

Github

link
Stars: 41
Help us keep the lights on

Releases

0.2.6 - Jun 30, 2018

Added

  • Documentation for filters
  • CaptionEntityFilter class

0.2.5 - Jun 21, 2018

Added

  • Documentation for most of public classes

Changed

  • ruby script which generate Telegram API classes improved and now generate docs for everything

Removed

  • FoundationClient class

0.2.4 - Jun 21, 2018

Added

  • ParseMode type for "Markdown" or "HTML" message text
  • Automatic Webhook deletion before starting Longpolling connection
  • Helpers reply, edit, delete for Message type

Changed

  • Now command settings are settings up with OptionSet
  • Improved HelloBot example message text

0.2.3 - Jun 10, 2018

Added

  • Convenience Bot.init(token: String) method

Changed

  • HandlerCallback signature now has Update and BotContext input params
  • Now debugMode parameter in Bot.Settings is set true by default
  • Dispatcher class made safer with special thread-safe HandlersQueue class
  • Enqueue bot updates in special concurrent queue
  • Updated README.md with super simple bot example

Removed

  • DispatchStatus enum