Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/givip/Telegrammer
Telegram Bot - written with Swift 5.2 / NIO, supports Linux, macOS
https://github.com/givip/Telegrammer
server-side-swift swift swift-package-manager swift5 swiftnio telegram telegram-bot telegram-bot-api ubuntu vapor
Last synced: 10 days ago
JSON representation
Telegram Bot - written with Swift 5.2 / NIO, supports Linux, macOS
- Host: GitHub
- URL: https://github.com/givip/Telegrammer
- Owner: givip
- License: mit
- Created: 2018-02-20T05:32:11.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2021-09-06T02:09:40.000Z (about 3 years ago)
- Last Synced: 2024-10-07T08:46:50.445Z (about 1 month ago)
- Topics: server-side-swift, swift, swift-package-manager, swift5, swiftnio, telegram, telegram-bot, telegram-bot-api, ubuntu, vapor
- Language: Swift
- Homepage:
- Size: 666 KB
- Stars: 289
- Watchers: 13
- Forks: 41
- Open Issues: 7
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE
Awesome Lists containing this project
- fucking-awesome-swift - Telegrammer - Open-source framework for Telegram Bots developers. It was built on top of Apple/SwiftNIO which help to demonstrate excellent performance. (Libs / Bots)
- awesome-starred-test - givip/Telegrammer - Telegram Bot - written with Swift 5.2 / NIO, supports Linux, macOS (Swift)
- awesome-swift - Telegrammer - Open-source framework for Telegram Bots developers. It was built on top of Apple/SwiftNIO which help to demonstrate excellent performance. (Libs / Bots)
- awesome-swift - Telegrammer - Telegram Bot - written with Swift 5.2 / NIO, supports Linux, macOS ` 📝 7 months ago ` (Bots [🔝](#readme))
- awesome-swift - Telegrammer - Open-source framework for Telegram Bots developers. It was built on top of Apple/SwiftNIO which help to demonstrate excellent performance. (Libs / Bots)
README
# Telegrammer
Telegram Bot Framework written in Swift 5.1 with SwiftNIO network framework[![Build](https://circleci.com/gh/givip/Telegrammer/tree/master.svg?style=shield&circle-token=04a84114573c1c6b3039ef82b88e54f1f6b8c512)](https://circleci.com/gh/givip/Telegrammer)
[![Version](https://img.shields.io/badge/version-1.0.0-blue.svg)](https://github.com/givip/Telegrammer/releases)
[![Language](https://img.shields.io/badge/language-Swift%205.1-orange.svg)](https://swift.org/download/)
[![Platform](https://img.shields.io/badge/platform-Linux%20/%20macOS-ffc713.svg)](https://swift.org/download/)
[![License](https://img.shields.io/badge/license-MIT-lightgrey.svg)](https://github.com/givip/Telegrammer/blob/master/LICENSE)What does it do
---------------Telegrammer is open-source framework for Telegram Bots developers.
It was built on top of [Apple/SwiftNIO](https://github.com/apple/swift-nio)Join to our [Telegram developers chat](https://t.me/joinchat/AzGW3kkUjLoK2dr3CZFrFQ)
Join to our [Telegrammer channel](https://discord.gg/yjspy8b) on [Vapor Discord server](https://discord.gg/3jG8QFV)The simplest code of Echo Bot looks like this:
-------------
_main.swift_
```swift
import Foundation
import Telegrammerdo {
let bot = try Bot(token: "BOT_TOKEN_HERE")let echoHandler = MessageHandler { (update, _) in
_ = try? update.message?.reply(text: "Hello \(update.message?.from?.firstName ?? "anonymous")", from: bot)
}let dispatcher = Dispatcher(bot: bot)
dispatcher.add(handler: echoHandler)_ = try Updater(bot: bot, dispatcher: dispatcher).startLongpolling().wait()
} catch {
exit(1)
}
```Documentation
---------------- Read [An official introduction for developers](https://core.telegram.org/bots)
- Check out [bot FAQ](https://core.telegram.org/bots/faq)
- Official [Telegram Bot API](https://core.telegram.org/bots/api)Usage without Vapor
---------------- Use the template repository as a example [https://github.com/givip/telegrammer-bot-template.git](https://github.com/givip/telegrammer-bot-template.git)
- Current repository contains five examples of bot implementation:
https://github.com/givip/Telegrammer/tree/master/Sources/DemoEchoBot
https://github.com/givip/Telegrammer/tree/master/Sources/DemoHelloBot
https://github.com/givip/Telegrammer/tree/master/Sources/DemoSchedulerBot
https://github.com/givip/Telegrammer/tree/master/Sources/DemoSpellCheckerBot
https://github.com/givip/Telegrammer/tree/master/Sources/DemoWebhooksLocallyUsage with Vapor
---------------- Use the [https://github.com/givip/telegrammer-bot-vapor-template.git](https://github.com/givip/telegrammer-bot-vapor-template.git)
Demo bots
---------------#### All sample bots
1. Add Telegram Token in [Environment Variables](http://nshipster.com/launch-arguments-and-environment-variables/), so, either create an environment variable:
```
$ export TELEGRAM_BOT_TOKEN='000000000:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA'
```
2. Run Bot executable scheme or
```
$ swift run
```[EchoBot sources](https://github.com/givip/Telegrammer/tree/master/Sources/EchoBot)
Starts/stops with command "/echo", then simply responds with your message[HelloBot sources](https://github.com/givip/Telegrammer/tree/master/Sources/HelloBot)
Says "Hello" to new users in group. Responds with "hello" message on command "/greet"[SchedulerBot sources](https://github.com/givip/Telegrammer/tree/master/Sources/SchedulerBot)
Demonstrate Jobs Queue scheduling mechanism.
Command "/start X" starts repeatable job, wich will send you a message each X seconds.
Command "/once X" will send you message once after timeout of X seconds.
Command "/stop" stops JobsQueue only for you. Other users continues to receive scheduled messages.[SpellCheckerBot sources](https://github.com/givip/Telegrammer/tree/master/Sources/SpellCheckerBot)
Demonstrate how works InlineMenus and Callback handlers.
Command "/start" will start bot.
Send any english text to bot and it will be checked for mistakes. Bot will propose you some fixes in case of found mistake.Requirements
---------------- Ubuntu 16.04 or later with [Swift 5.1 or later](https://swift.org/getting-started/) / macOS with [Xcode 11 or later](https://swift.org/download/)
- Telegram account and a Telegram App for any platform
- [Swift Package Manager (SPM)](https://github.com/apple/swift-package-manager/blob/master/Documentation/Usage.md) for dependencies
- [Vapor 4](https://vapor.codes) (optionally, for bots with database and other server side stuff)Contributing
---------------See [CONTRIBUTING.md](CONTRIBUTING.md) file.
Author
---------------Givi Pataridze
[[email protected]](mailto:[email protected])
[@givip](tg://user?id=53581534)