{"id":26821169,"url":"https://github.com/nebulino/paperplane","last_synced_at":"2026-02-12T08:08:25.853Z","repository":{"id":56836476,"uuid":"247546795","full_name":"Nebulino/PaperPlane","owner":"Nebulino","description":"A Flying Telegram Bot API Wrapper created from Scratch and Paper.","archived":false,"fork":false,"pushed_at":"2020-05-09T19:36:59.000Z","size":560,"stargazers_count":5,"open_issues_count":5,"forks_count":0,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-30T07:18:31.801Z","etag":null,"topics":["bot-api","dart","paperplane","telegram","telegram-bot","telegram-bot-api","wrapper"],"latest_commit_sha":null,"homepage":"https://pub.dev/packages/paperplane","language":"Dart","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Nebulino.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-03-15T20:33:16.000Z","updated_at":"2021-08-28T15:43:36.000Z","dependencies_parsed_at":"2022-09-09T20:02:16.667Z","dependency_job_id":null,"html_url":"https://github.com/Nebulino/PaperPlane","commit_stats":null,"previous_names":[],"tags_count":26,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nebulino%2FPaperPlane","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nebulino%2FPaperPlane/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nebulino%2FPaperPlane/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Nebulino%2FPaperPlane/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Nebulino","download_url":"https://codeload.github.com/Nebulino/PaperPlane/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250570430,"owners_count":21452023,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bot-api","dart","paperplane","telegram","telegram-bot","telegram-bot-api","wrapper"],"created_at":"2025-03-30T07:18:34.696Z","updated_at":"2026-02-12T08:08:25.825Z","avatar_url":"https://github.com/Nebulino.png","language":"Dart","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003ch1 align=\"center\"\u003ePaperPlane\u003c/h1\u003e\n\n\u003cdiv align=\"center\"\u003e\nJust a Telegram Library for Dart.\nA package to interact with the official \n\n[Telegram Bot API](https://core.telegram.org/bots/api).\n\n[![Dart Version](https://img.shields.io/badge/Dart-2.8.0-blue.svg?style=flat-square\u0026logo=dart)](https://dart.dev)\n[![Build Status](https://img.shields.io/travis/Nebulino/PaperPlane/master?style=flat-square\u0026logo=travis)](https://travis-ci.org/github/Nebulino/PaperPlane)\n[![Bot API](https://img.shields.io/badge/Bot%20API-v.4.8-00aced.svg?style=flat-square\u0026logo=telegram)](https://core.telegram.org/bots/api)\n[![Nebulino](https://img.shields.io/badge/💬%20Telegram-Nebulino-blue.svg?style=flat-square)](https://t.me/Nebulino/)\n\n\u003c/div\u003e\n\n## Disclaimer\n\nI'm doing it just for fun, so... use at your own risk.\n\nI hope it will become something great.\n\n^-^\n\n## Usage\n\nFirst build the .g files for Serializable (if you clone the repo):\n\n```pub run build_runner build```\n\nA simple usage example:\n\n```dart\nimport 'dart:io' as io;\nimport 'package:paperplane/paperplane.dart';\n\nvoid main() {\n  var token = 'Just A Token';\n  \n  var bot = PaperPlane.createBot(token);\n  bot.engine();\n\n  bot.startPolling();\n  \n  // Work with events...\n  bot\n    .onMessage()\n    .where((message) =\u003e message.text == 'owo')\n    .listen((message) =\u003e message.replyText(text: 'uwu'));\n \n  // Work with updates and directly with methods...\n  var api = bot.api;\n  var updater = bot.updater.onUpdate();\n  \n  updater\n    .where((onUpdate) =\u003e onUpdate.message.text == 'animate')\n    .listen((update) =\u003e api.sendAnimation(\n      chat_id: message.chat.id,\n      animation: Luggage.withFile(file: io.File('./files/gifs/bunny_girl.gif'))));\n}\n```\n\n## Get PaperPlane\n\nAdd PaperPlane dependency on `pubspec.yaml`:\n\nFrom GitHub:\n```yaml\ndependencies:\n  paperplane:\n    git: https://github.com/Nebulino/PaperPlane.git\n      ref: branch-name\n```\n\nFrom pub.dev:\n```yaml\ndependencies:\n  paperplane: ^0.6.5\n```\n\n## Features and bugs\n\n### All API up-to v4.8 are supported\n#### Implemented a base for a future solid implementation of Long Polling\n\nStill, the Webhook needs more tests.\n\nYou can use Long Polling mode for now. \n\nI have created all Telegram API Classes for each Telegram Types.\n\nPlease file feature requests and bugs at the [issue tracker][tracker].\n\n##### Copyright © 2020 Nebulino\n\n[tracker]: http://github.com/Nebulino/PaperPlane/issues\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnebulino%2Fpaperplane","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fnebulino%2Fpaperplane","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fnebulino%2Fpaperplane/lists"}