Как мне сделать этот плагин Jekyll Scryfall более гибким? - PullRequest
0 голосов
/ 08 апреля 2020

С помощью некоторых людей здесь я собрал плагин Jekyll, который позволяет мне легко ссылаться на карту MTG из Scryfall.

Вот код плагина:

module Jekyll
    class Scryfall < Liquid::Tag
        include HTTParty

        def initialize(tag_name, text, tokens)
            super
            @text = text
        end 

        def render(context)
            # Assign name to a variable and strip leading or trailing whitespace
            @card_name = @text.strip

            # Construct Scryfall request url
            request = HTTParty.get "https://api.scryfall.com/cards/named?exact=#{CGI.escape(@card_name)}"

            # Parse the JSON response
            response = JSON.parse(request&.body)

            # Assign the "normal" art to a variable
            @card_art = response['image_uris']['normal']

            # Render the card
            "<img alt='#{@card_name}' src='#{@card_art}' />"
        end

    end
end

Liquid::Template.register_tag('card', Jekyll::Scryfall)

Вот пример API-вызова Scryfall для конкретной c карты (чтобы вы могли видеть ответ).

Scryfall запрашивает задержку в 100 мс между запросами. Так как этот плагин запускается при сборке или обновлении sh, и мои статьи будут ссылаться на этот плагин более 50 раз за пост, я хотел бы уважать это. Как я могу добавить задержку между каждым запросом?

...