Skip to content
This repository was archived by the owner on Nov 16, 2024. It is now read-only.

Commit

Permalink
Add QueryResultBuilder
Browse files Browse the repository at this point in the history
  • Loading branch information
watzon committed Feb 14, 2020
1 parent 58ec20e commit 2dc2fee
Show file tree
Hide file tree
Showing 172 changed files with 73,134 additions and 58,141 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ Add this to your application's `shard.yml`:
dependencies:
tourmaline:
github: watzon/tourmaline
version: ~> 0.10.0
version: ~> 0.12.0
```
## Usage
Expand Down
1,148 changes: 879 additions & 269 deletions docs/Tourmaline.html

Large diffs are not rendered by default.

979 changes: 979 additions & 0 deletions docs/Tourmaline/Animation.html

Large diffs are not rendered by default.

979 changes: 979 additions & 0 deletions docs/Tourmaline/Audio.html

Large diffs are not rendered by default.

957 changes: 568 additions & 389 deletions docs/Tourmaline/Bot.html

Large diffs are not rendered by default.

564 changes: 327 additions & 237 deletions docs/Tourmaline/Bot/ParseMode.html

Large diffs are not rendered by default.

530 changes: 290 additions & 240 deletions docs/Tourmaline/BotContainer.html

Large diffs are not rendered by default.

752 changes: 752 additions & 0 deletions docs/Tourmaline/Button.html

Large diffs are not rendered by default.

831 changes: 831 additions & 0 deletions docs/Tourmaline/CallbackGame.html

Large diffs are not rendered by default.

1,000 changes: 1,000 additions & 0 deletions docs/Tourmaline/CallbackQuery.html

Large diffs are not rendered by default.

738 changes: 431 additions & 307 deletions docs/Tourmaline/Model/Chat.html → docs/Tourmaline/Chat.html

Large diffs are not rendered by default.

552 changes: 308 additions & 244 deletions docs/Tourmaline/ChatAction.html

Large diffs are not rendered by default.

684 changes: 395 additions & 289 deletions docs/Tourmaline/Model/ChatMember.html → docs/Tourmaline/ChatMember.html

Large diffs are not rendered by default.

Large diffs are not rendered by default.

937 changes: 937 additions & 0 deletions docs/Tourmaline/ChatPhoto.html

Large diffs are not rendered by default.

958 changes: 958 additions & 0 deletions docs/Tourmaline/ChosenInlineResult.html

Large diffs are not rendered by default.

503 changes: 273 additions & 230 deletions docs/Tourmaline/Command.html

Large diffs are not rendered by default.

533 changes: 295 additions & 238 deletions docs/Tourmaline/CommandRegistry.html

Large diffs are not rendered by default.

536 changes: 300 additions & 236 deletions docs/Tourmaline/CommandRegistry/CommandWrapper.html

Large diffs are not rendered by default.

937 changes: 937 additions & 0 deletions docs/Tourmaline/Contact.html

Large diffs are not rendered by default.

580 changes: 329 additions & 251 deletions docs/Tourmaline/Context.html

Large diffs are not rendered by default.

979 changes: 979 additions & 0 deletions docs/Tourmaline/Document.html

Large diffs are not rendered by default.

557 changes: 307 additions & 250 deletions docs/Tourmaline/Error.html

Large diffs are not rendered by default.

494 changes: 265 additions & 229 deletions docs/Tourmaline/Error/BadRequest.html

Large diffs are not rendered by default.

514 changes: 282 additions & 232 deletions docs/Tourmaline/Error/ChatMigrated.html

Large diffs are not rendered by default.

494 changes: 265 additions & 229 deletions docs/Tourmaline/Error/Conflict.html

Large diffs are not rendered by default.

514 changes: 282 additions & 232 deletions docs/Tourmaline/Error/InvalidToken.html

Large diffs are not rendered by default.

494 changes: 265 additions & 229 deletions docs/Tourmaline/Error/NetworkError.html

Large diffs are not rendered by default.

514 changes: 282 additions & 232 deletions docs/Tourmaline/Error/RetryAfter.html

Large diffs are not rendered by default.

514 changes: 282 additions & 232 deletions docs/Tourmaline/Error/TimedOut.html

Large diffs are not rendered by default.

494 changes: 265 additions & 229 deletions docs/Tourmaline/Error/Unauthorized.html

Large diffs are not rendered by default.

549 changes: 303 additions & 246 deletions docs/Tourmaline/EventRegistry.html

Large diffs are not rendered by default.

937 changes: 937 additions & 0 deletions docs/Tourmaline/File.html

Large diffs are not rendered by default.

916 changes: 916 additions & 0 deletions docs/Tourmaline/ForceReply.html

Large diffs are not rendered by default.

979 changes: 979 additions & 0 deletions docs/Tourmaline/Game.html

Large diffs are not rendered by default.

916 changes: 916 additions & 0 deletions docs/Tourmaline/GameHighScore.html

Large diffs are not rendered by default.

503 changes: 273 additions & 230 deletions docs/Tourmaline/Hears.html

Large diffs are not rendered by default.

Large diffs are not rendered by default.

958 changes: 958 additions & 0 deletions docs/Tourmaline/InlineKeyboardMarkup.html

Large diffs are not rendered by default.

979 changes: 979 additions & 0 deletions docs/Tourmaline/InlineQuery.html

Large diffs are not rendered by default.

881 changes: 881 additions & 0 deletions docs/Tourmaline/InlineQueryResult.html

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

1,008 changes: 1,008 additions & 0 deletions docs/Tourmaline/InlineQueryResultCachedAudio.html

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

1,008 changes: 1,008 additions & 0 deletions docs/Tourmaline/InlineQueryResultCachedSticker.html

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

958 changes: 958 additions & 0 deletions docs/Tourmaline/InputContactMessageContent.html

Large diffs are not rendered by default.

937 changes: 937 additions & 0 deletions docs/Tourmaline/InputLocationMessageContent.html

Large diffs are not rendered by default.

752 changes: 752 additions & 0 deletions docs/Tourmaline/InputMedia.html

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

979 changes: 979 additions & 0 deletions docs/Tourmaline/InputMediaDocument.html

Large diffs are not rendered by default.

Large diffs are not rendered by default.

958 changes: 958 additions & 0 deletions docs/Tourmaline/InputMediaVideo.html

Large diffs are not rendered by default.

752 changes: 752 additions & 0 deletions docs/Tourmaline/InputMessageContent.html

Large diffs are not rendered by default.

937 changes: 937 additions & 0 deletions docs/Tourmaline/InputTextMessageContent.html

Large diffs are not rendered by default.

Large diffs are not rendered by default.

958 changes: 958 additions & 0 deletions docs/Tourmaline/Invoice.html

Large diffs are not rendered by default.

552 changes: 308 additions & 244 deletions docs/Tourmaline/KemalAdapter.html

Large diffs are not rendered by default.

524 changes: 293 additions & 231 deletions docs/Tourmaline/KemalAdapter/TGModel.html

Large diffs are not rendered by default.

958 changes: 958 additions & 0 deletions docs/Tourmaline/KeyboardButton.html

Large diffs are not rendered by default.

907 changes: 907 additions & 0 deletions docs/Tourmaline/KeyboardButtonPollType.html

Large diffs are not rendered by default.

916 changes: 916 additions & 0 deletions docs/Tourmaline/LabeledPrice.html

Large diffs are not rendered by default.

916 changes: 916 additions & 0 deletions docs/Tourmaline/Location.html

Large diffs are not rendered by default.

516 changes: 283 additions & 233 deletions docs/Tourmaline/LogMiddleware.html

Large diffs are not rendered by default.

659 changes: 365 additions & 294 deletions docs/Tourmaline/Logger.html

Large diffs are not rendered by default.

514 changes: 282 additions & 232 deletions docs/Tourmaline/Logger/Formatter.html

Large diffs are not rendered by default.

968 changes: 968 additions & 0 deletions docs/Tourmaline/LoginURL.html

Large diffs are not rendered by default.

1,615 changes: 1,268 additions & 347 deletions docs/Tourmaline/Markup.html

Large diffs are not rendered by default.

958 changes: 958 additions & 0 deletions docs/Tourmaline/MaskPosition.html

Large diffs are not rendered by default.

816 changes: 449 additions & 367 deletions docs/Tourmaline/Model/Message.html → docs/Tourmaline/Message.html

Large diffs are not rendered by default.

1,334 changes: 1,334 additions & 0 deletions docs/Tourmaline/MessageEntity.html

Large diffs are not rendered by default.

540 changes: 302 additions & 238 deletions docs/Tourmaline/Middleware.html

Large diffs are not rendered by default.

556 changes: 310 additions & 246 deletions docs/Tourmaline/Middleware/Context.html

Large diffs are not rendered by default.

531 changes: 294 additions & 237 deletions docs/Tourmaline/MiddlewareRegistry.html

Large diffs are not rendered by default.

1,224 changes: 0 additions & 1,224 deletions docs/Tourmaline/Model.html

This file was deleted.

887 changes: 0 additions & 887 deletions docs/Tourmaline/Model/Animation.html

This file was deleted.

887 changes: 0 additions & 887 deletions docs/Tourmaline/Model/Audio.html

This file was deleted.

774 changes: 0 additions & 774 deletions docs/Tourmaline/Model/CallbackGame.html

This file was deleted.

929 changes: 0 additions & 929 deletions docs/Tourmaline/Model/CallbackQuery.html

This file was deleted.

824 changes: 0 additions & 824 deletions docs/Tourmaline/Model/ChatPhoto.html

This file was deleted.

887 changes: 0 additions & 887 deletions docs/Tourmaline/Model/ChosenInlineResult.html

This file was deleted.

866 changes: 0 additions & 866 deletions docs/Tourmaline/Model/Contact.html

This file was deleted.

887 changes: 0 additions & 887 deletions docs/Tourmaline/Model/Document.html

This file was deleted.

845 changes: 0 additions & 845 deletions docs/Tourmaline/Model/File.html

This file was deleted.

845 changes: 0 additions & 845 deletions docs/Tourmaline/Model/ForceReply.html

This file was deleted.

908 changes: 0 additions & 908 deletions docs/Tourmaline/Model/Game.html

This file was deleted.

845 changes: 0 additions & 845 deletions docs/Tourmaline/Model/GameHighScore.html

This file was deleted.

887 changes: 0 additions & 887 deletions docs/Tourmaline/Model/InlineKeyboardMarkup.html

This file was deleted.

908 changes: 0 additions & 908 deletions docs/Tourmaline/Model/InlineQuery.html

This file was deleted.

817 changes: 0 additions & 817 deletions docs/Tourmaline/Model/InlineQueryResult.html

This file was deleted.

937 changes: 0 additions & 937 deletions docs/Tourmaline/Model/InlineQueryResultCachedAudio.html

This file was deleted.

937 changes: 0 additions & 937 deletions docs/Tourmaline/Model/InlineQueryResultCachedSticker.html

This file was deleted.

887 changes: 0 additions & 887 deletions docs/Tourmaline/Model/InputContactMessageContent.html

This file was deleted.

866 changes: 0 additions & 866 deletions docs/Tourmaline/Model/InputLocationMessageContent.html

This file was deleted.

709 changes: 0 additions & 709 deletions docs/Tourmaline/Model/InputMedia.html

This file was deleted.

908 changes: 0 additions & 908 deletions docs/Tourmaline/Model/InputMediaDocument.html

This file was deleted.

887 changes: 0 additions & 887 deletions docs/Tourmaline/Model/InputMediaVideo.html

This file was deleted.

709 changes: 0 additions & 709 deletions docs/Tourmaline/Model/InputMessageContent.html

This file was deleted.

866 changes: 0 additions & 866 deletions docs/Tourmaline/Model/InputTextMessageContent.html

This file was deleted.

887 changes: 0 additions & 887 deletions docs/Tourmaline/Model/Invoice.html

This file was deleted.

866 changes: 0 additions & 866 deletions docs/Tourmaline/Model/KeyboardButton.html

This file was deleted.

845 changes: 0 additions & 845 deletions docs/Tourmaline/Model/LabeledPrice.html

This file was deleted.

845 changes: 0 additions & 845 deletions docs/Tourmaline/Model/Location.html

This file was deleted.

897 changes: 0 additions & 897 deletions docs/Tourmaline/Model/LoginURL.html

This file was deleted.

887 changes: 0 additions & 887 deletions docs/Tourmaline/Model/MaskPosition.html

This file was deleted.

1,172 changes: 0 additions & 1,172 deletions docs/Tourmaline/Model/MessageEntity.html

This file was deleted.

866 changes: 0 additions & 866 deletions docs/Tourmaline/Model/OrderInfo.html

This file was deleted.

866 changes: 0 additions & 866 deletions docs/Tourmaline/Model/PhotoSize.html

This file was deleted.

971 changes: 0 additions & 971 deletions docs/Tourmaline/Model/ReplyKeyboardMarkup.html

This file was deleted.

845 changes: 0 additions & 845 deletions docs/Tourmaline/Model/ReplyKeyboardRemove.html

This file was deleted.

908 changes: 0 additions & 908 deletions docs/Tourmaline/Model/ShippingAddress.html

This file was deleted.

866 changes: 0 additions & 866 deletions docs/Tourmaline/Model/ShippingOption.html

This file was deleted.

908 changes: 0 additions & 908 deletions docs/Tourmaline/Model/ShippingQuery.html

This file was deleted.

950 changes: 0 additions & 950 deletions docs/Tourmaline/Model/Sticker.html

This file was deleted.

887 changes: 0 additions & 887 deletions docs/Tourmaline/Model/StickerSet.html

This file was deleted.

824 changes: 0 additions & 824 deletions docs/Tourmaline/Model/UserProfilePhotos.html

This file was deleted.

866 changes: 0 additions & 866 deletions docs/Tourmaline/Model/Venue.html

This file was deleted.

929 changes: 0 additions & 929 deletions docs/Tourmaline/Model/Video.html

This file was deleted.

887 changes: 0 additions & 887 deletions docs/Tourmaline/Model/VideoNote.html

This file was deleted.

866 changes: 0 additions & 866 deletions docs/Tourmaline/Model/Voice.html

This file was deleted.

503 changes: 273 additions & 230 deletions docs/Tourmaline/On.html

Large diffs are not rendered by default.

937 changes: 937 additions & 0 deletions docs/Tourmaline/OrderInfo.html

Large diffs are not rendered by default.

551 changes: 304 additions & 247 deletions docs/Tourmaline/PatternRegistry.html

Large diffs are not rendered by default.

494 changes: 265 additions & 229 deletions docs/Tourmaline/Persistence.html

Large diffs are not rendered by default.

608 changes: 329 additions & 279 deletions docs/Tourmaline/Persistence/Base.html

Large diffs are not rendered by default.

958 changes: 958 additions & 0 deletions docs/Tourmaline/PhotoSize.html

Large diffs are not rendered by default.

1,053 changes: 1,053 additions & 0 deletions docs/Tourmaline/Poll.html

Large diffs are not rendered by default.

927 changes: 927 additions & 0 deletions docs/Tourmaline/PollAnswer.html

Large diffs are not rendered by default.

906 changes: 906 additions & 0 deletions docs/Tourmaline/PollOption.html

Large diffs are not rendered by default.

891 changes: 891 additions & 0 deletions docs/Tourmaline/PollType.html

Large diffs are not rendered by default.

Large diffs are not rendered by default.

1,271 changes: 1,271 additions & 0 deletions docs/Tourmaline/QueryResultBuilder.html

Large diffs are not rendered by default.

1,063 changes: 1,063 additions & 0 deletions docs/Tourmaline/ReplyKeyboardMarkup.html

Large diffs are not rendered by default.

916 changes: 916 additions & 0 deletions docs/Tourmaline/ReplyKeyboardRemove.html

Large diffs are not rendered by default.

979 changes: 979 additions & 0 deletions docs/Tourmaline/ShippingAddress.html

Large diffs are not rendered by default.

937 changes: 937 additions & 0 deletions docs/Tourmaline/ShippingOption.html

Large diffs are not rendered by default.

979 changes: 979 additions & 0 deletions docs/Tourmaline/ShippingQuery.html

Large diffs are not rendered by default.

1,042 changes: 1,042 additions & 0 deletions docs/Tourmaline/Sticker.html

Large diffs are not rendered by default.

958 changes: 958 additions & 0 deletions docs/Tourmaline/StickerSet.html

Large diffs are not rendered by default.

Large diffs are not rendered by default.

704 changes: 422 additions & 282 deletions docs/Tourmaline/Model/Update.html → docs/Tourmaline/Update.html

Large diffs are not rendered by default.

647 changes: 378 additions & 269 deletions docs/Tourmaline/UpdateAction.html

Large diffs are not rendered by default.

699 changes: 422 additions & 277 deletions docs/Tourmaline/Model/User.html → docs/Tourmaline/User.html

Large diffs are not rendered by default.

895 changes: 895 additions & 0 deletions docs/Tourmaline/UserProfilePhotos.html

Large diffs are not rendered by default.

937 changes: 937 additions & 0 deletions docs/Tourmaline/Venue.html

Large diffs are not rendered by default.

1,021 changes: 1,021 additions & 0 deletions docs/Tourmaline/Video.html

Large diffs are not rendered by default.

979 changes: 979 additions & 0 deletions docs/Tourmaline/VideoNote.html

Large diffs are not rendered by default.

958 changes: 958 additions & 0 deletions docs/Tourmaline/Voice.html

Large diffs are not rendered by default.

Large diffs are not rendered by default.

42 changes: 42 additions & 0 deletions docs/css/style.css
Original file line number Diff line number Diff line change
Expand Up @@ -630,3 +630,45 @@ span.flag.purple {
.doc-inherited {
font-weight: bold;
}

.anchor {
float: left;
padding-right: 4px;
margin-left: -20px;
}

.main-content .anchor .octicon-link {
width: 16px;
height: 16px;
}

.main-content .anchor:focus {
outline: none
}

.main-content h1:hover .anchor,
.main-content h2:hover .anchor,
.main-content h3:hover .anchor,
.main-content h4:hover .anchor,
.main-content h5:hover .anchor,
.main-content h6:hover .anchor {
text-decoration: none
}

.main-content h1 .octicon-link,
.main-content h2 .octicon-link,
.main-content h3 .octicon-link,
.main-content h4 .octicon-link,
.main-content h5 .octicon-link,
.main-content h6 .octicon-link {
visibility: hidden
}

.main-content h1:hover .anchor .octicon-link,
.main-content h2:hover .anchor .octicon-link,
.main-content h3:hover .anchor .octicon-link,
.main-content h4:hover .anchor .octicon-link,
.main-content h5:hover .anchor .octicon-link,
.main-content h6:hover .anchor .octicon-link {
visibility: visible
}
517 changes: 283 additions & 234 deletions docs/index.html

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/index.json

Large diffs are not rendered by default.

2 changes: 1 addition & 1 deletion docs/search-index.js

Large diffs are not rendered by default.

29 changes: 0 additions & 29 deletions examples/inline_query.cr
Original file line number Diff line number Diff line change
Expand Up @@ -31,35 +31,6 @@ class InlineQueryBot < Tourmaline::Bot
query.answer(results)
end
end

@[On(:inline_query)]
def on_inline_query(update)
if query = update.inline_query
results = [] of Tourmaline::InlineQueryResult

results << Tourmaline::InlineQueryResultArticle.new(
id: "query",
title: "Inline title",
input_message_content: Tourmaline::InputTextMessageContent.new("Click!"),
description: "Your query: #{query.query}",
)

results << Tourmaline::InlineQueryResultPhoto.new(
id: "photo",
caption: "Telegram logo",
photo_url: "https://telegram.org/img/t_logo.png",
thumb_url: "https://telegram.org/img/t_logo.png"
)

results << Tourmaline::InlineQueryResultGif.new(
id: "gif",
gif_url: "https://telegram.org/img/tl_card_wecandoit.gif",
thumb_url: "https://telegram.org/img/tl_card_wecandoit.gif"
)

query.answer(results)
end
end
end

bot = InlineQueryBot.new(ENV["API_KEY"])
Expand Down
1 change: 1 addition & 0 deletions src/tourmaline/bot.cr
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ require "./annotations"
require "./registries/*"
require "./client/*"
require "./markup"
require "./query_result_builder"

module Tourmaline
# The `Bot` class is the base class for all Tourmaline based bots.
Expand Down
88 changes: 88 additions & 0 deletions src/tourmaline/query_result_builder.cr
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
module Tourmaline
class QueryResultBuilder

getter results : Array(Tourmaline::InlineQueryResult)

def initialize
@results = [] of Tourmaline::InlineQueryResult
end

def self.build(&block)
builder = self.new
yield builder
builder.results
end

def article(**opts)
results << InlineQueryResultArticle.new(**opts)
end

def audio(**opts)
results << InlineQueryResultAudio.new(**opts)
end

def cached_audio(**opts)
results << InlineQueryResultCachedAudio.new(**opts)
end

def cached_document(**opts)
results << InlineQueryResultCachedDocument.new(**opts)
end

def cached_gif(**opts)
results << InlineQueryResultCachedGif.new(**opts)
end

def cached_mpeg4_gif(**opts)
results << InlineQueryResultCachedMpeg4Gif.new(**opts)
end

def cached_photo(**opts)
results << InlineQueryResultCachedPhoto.new(**opts)
end

def cached_sticker(**opts)
results << InlineQueryResultCachedSticker.new(**opts)
end

def cached_video(**opts)
results << InlineQueryResultCachedVideo.new(**opts)
end

def cached_voice(**opts)
results << InlineQueryResultCachedVoice.new(**opts)
end

def contact(**opts)
results << InlineQueryResultContact.new(**opts)
end

def document(**opts)
results << InlineQueryResultDocument.new(**opts)
end

def gif(**opts)
results << InlineQueryResultGif.new(**opts)
end

def location(**opts)
results << InlineQueryResultLocation.new(**opts)
end

def mpeg4_gif(**opts)
results << InlineQueryResultMpeg4Gif.new(**opts)
end

def photo(**opts)
results << InlineQueryResultPhoto.new(**opts)
end

def venue(**opts)
results << InlineQueryResultVenue.new(**opts)
end

def video(**opts)
results << InlineQueryResultVideo.new(**opts)
end
end
end
2 changes: 1 addition & 1 deletion src/tourmaline/version.cr
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module Tourmaline
VERSION = "0.11.0"
VERSION = "0.12.0"
end

0 comments on commit 2dc2fee

Please sign in to comment.