Ana içeriğe geç

GIF'ler

GIF, örneğin (instance) GIF sağlayıcısından gelen hareketli bir medya öğesidir. TEBHOS; arama, gündemdekiler, kategori ve bağlantı çözümleme isteklerini sağlayıcıya aktarır ve doğrudan medya URL'leri içeren sade bir GIF nesnesi döndürür.

Her yol bir kullanıcı oturum token'ı (Authorization: Bearer <token>) gerektirir; geçerli bir Bot <token> kimlik bilgisi 403 ACCESS_DENIED ile (geçersiz olanı 401 UNAUTHORIZED ile) reddedilir.

Sağlayıcı kullanılabilirliği

TEBHOS'un desteklediği tek sağlayıcı KLIPY'dir. Örnek keşif bilgisini getir ucu bunu gif nesnesi olarak yayımlar:

{
  "provider": "klipy",
  "display_name": "KLIPY",
  "attribution_required": true
}

attribution_required değeri true olduğundan istemci, GIF sonuçlarının yanında KLIPY kaynak işaretini gösterir.

Sağlayıcı anahtarı yapılandırılmamış bir örnek (instance), bu sayfadaki her yolu 404 NOT_FOUND ile reddeder. Örneğin services nesnesindeki gif_enabled, bir operatör bayrağı geçersiz kılmadıkça anahtarın yapılandırılıp yapılandırılmadığını bildirir; bu yüzden gif_enabled değerini true olarak okuyan bir istemci yine de 404 alabilir.

Sağlayıcı kesintisi, okunamayan bir sağlayıcı yükü ya da dahili GIF hizmetinin 5 saniye içinde yanıt vermemesi 500 INTERNAL_SERVER_ERROR döndürür.

Dil ve ülke

TEBHOS sağlayıcıyı sabit tr_TR dili ve TR ülkesiyle sorgular. Hiçbir yol dil veya ülke parametresi kabul etmez.

Sonuçların güncelliği

Kategori listesi bir saat önbelleğe alınır, çözümlenen bağlantılar ise bellekte önbelleğe alınır. Arama ve gündemdeki sonuçlar her istekte sağlayıcıdan getirilir.

GIF nesnesi

Sağlayıcının sahip olduğu tek bir medya öğesi. İçindeki her URL, sağlayıcının barındırdığı baytlara çözümlenir.

Yapı

Alan Tür Açıklama
id string GIF'in sağlayıcıda kalıcı olan tanımlayıcısı
title string Sağlayıcının GIF'e verdiği başlık (boş olabilir)
url string İstemcinin gönderdiği veya tam boyutta çizdiği doğrudan medya URL'si. gif, mediumgif, tinygif sırasıyla ilk mevcut olan
preview string Küçük ızgara önizlemesinin doğrudan medya URL'si. tinygif, nanogif, gif sırasıyla ilk mevcut olan; hiçbiri yoksa url
width integer Önizleme biçiminin piksel cinsinden genişliği (sağlayıcı bildirmezse 200)
height integer Önizleme biçiminin piksel cinsinden yüksekliği (sağlayıcı bildirmezse 200)
itemurl? string GIF'in sağlayıcıdaki sayfa URL'si (örneğin https://klipy.com/gifs/{slug}). Sağlayıcı döndürmediyse bulunmaz

GIF'in snowflake'i ve oluşturulma zaman damgası yoktur. id sağlayıcının kendi tanımlayıcısıdır ve zamana göre sıralanmaz.

Mesajda GIF göndermek

GIF'in itemurl değerini mesaj içeriği olarak gönderin. İstemciler, sağlayıcı sayfa bağlantısını GIF bağlantısını çözümle ile çözümleyerek GIF olarak çizer.

Örnek

{
  "id": "goat-plays-banjo-4",
  "title": "Goat Plays Banjo",
  "url": "https://static.example.com/goat-plays-banjo.gif",
  "preview": "https://static.example.com/goat-plays-banjo-tiny.gif",
  "width": 137,
  "height": 90,
  "itemurl": "https://klipy.com/gifs/goat-plays-banjo-4"
}

GIF kategori nesnesi

Bir kategori arama terimini o terime ait bir önizleme görseliyle eşleştirir.

Yapı

Alan Tür Açıklama
searchterm string Kategorinin temsil ettiği arama terimi
name string Kategorinin başında # olmayan görünen adı. Yoksa searchterm kullanılır
image string Kategori önizleme görselinin doğrudan URL'si (boş olabilir)

Bir kategoriyi açmak için istemci, searchterm değerini GIF ara ucunun q parametresi olarak gönderir.

GIF ara

GET /gifs/search

Sağlayıcıda bir sorguyla eşleşen GIF'leri arar. Sağlayıcının döndürdüğü sırayla en fazla 50 GIF nesnesi döndürür.

Sorgu parametreleri

Alan Tür Açıklama
q string Arama terimi. Baştaki ve sondaki boşluklar kırpılır ve sonuç boş olmamalıdır

Hiçbir şeyle eşleşmeyen bir terim, boş diziyle 200 döndürür.

Yanıt

Durum Gövde Koşul
200 array[GIF nesnesi] Sonuçlar döndürüldü (boş dizi olabilir)
400 hata yanıtı q yok veya boş (BAD_REQUEST)
401 hata yanıtı Kimlik bilgisi eksik veya kullanıcıya ait değil
404 hata yanıtı Örnekte (instance) sağlayıcı anahtarı yapılandırılmamış (NOT_FOUND)
500 hata yanıtı Sağlayıcı veya dahili GIF hizmeti başarısız oldu (INTERNAL_SERVER_ERROR)

Hız sınırı

gif:search kovasında, her istemci kimlik bilgisi için 10 saniyede 40 istek.

curl "https://tebhos.com/api/v1/gifs/search?q=banjo" \
  -H "Authorization: Bearer $TEBHOS_TOKEN"

GET /gifs/trending

Sağlayıcının öne çıkardığı GIF nesnelerinden en fazla 50 tanesini döndürür.

Yanıt

Durum Gövde Koşul
200 array[GIF nesnesi] Gündemdeki GIF'ler döndürüldü (boş dizi olabilir)
401 hata yanıtı Kimlik bilgisi eksik veya kullanıcıya ait değil
404 hata yanıtı Örnekte (instance) sağlayıcı anahtarı yapılandırılmamış (NOT_FOUND)
500 hata yanıtı Sağlayıcı veya dahili GIF hizmeti başarısız oldu (INTERNAL_SERVER_ERROR)

Hız sınırı

gif:trending kovasında, her istemci kimlik bilgisi için 10 saniyede 40 istek.

GIF kategorilerini getir

GET /gifs/categories

Sağlayıcının öne çıkardığı kategorileri bir GIF kategori nesneleri dizisi olarak döndürür. Arama terimi olmayan kategoriler atılır.

Yanıt

Durum Gövde Koşul
200 array[GIF kategori nesnesi] Kategoriler döndürüldü (boş dizi olabilir)
401 hata yanıtı Kimlik bilgisi eksik veya kullanıcıya ait değil
404 hata yanıtı Örnekte (instance) sağlayıcı anahtarı yapılandırılmamış (NOT_FOUND)
500 hata yanıtı Sağlayıcı veya dahili GIF hizmeti başarısız oldu (INTERNAL_SERVER_ERROR)

Bu yolun kendine özgü bir hız sınırı kovası yoktur; yalnızca genel sınır uygulanır.

GET /gifs/resolve

Bir sağlayıcı sayfa bağlantısını GIF nesnesine çözümler. İstemciler bunu, bir mesajda paylaşılan KLIPY bağlantısını GIF'in kendisi olarak çizmek için kullanır.

Sorgu parametreleri

Alan Tür Açıklama
url string https://klipy.com/{kind}/{slug} biçiminde bir sağlayıcı sayfa bağlantısı; kind değeri gif, gifs, clip veya clips olur. http:// ve www. ana makine öneki kabul edilir

Yanıt

Durum Gövde Koşul
200 GIF nesnesi Bağlantı çözümlendi
400 hata yanıtı url yok veya tanınan bir sağlayıcı bağlantısı değil (BAD_REQUEST)
401 hata yanıtı Kimlik bilgisi eksik veya kullanıcıya ait değil
404 hata yanıtı Sağlayıcı bu slug için bir GIF tanımıyor veya örnekte (instance) sağlayıcı anahtarı yapılandırılmamış (NOT_FOUND)
500 hata yanıtı Sağlayıcı veya dahili GIF hizmeti başarısız oldu (INTERNAL_SERVER_ERROR)

Bu yolun kendine özgü bir hız sınırı kovası yoktur; yalnızca genel sınır uygulanır.

curl "https://tebhos.com/api/v1/gifs/resolve?url=https://klipy.com/gifs/goat-plays-banjo-4" \
  -H "Authorization: Bearer $TEBHOS_TOKEN"

TEBHOS'ta desteklenmiyor

TEBHOS'ta arama önerisi yolu, paylaşım kaydı yolu, locale parametresi, sağlayıcı yanıt başlıkları ve sağlayıcı adını taşıyan eski yol önekleri yoktur. GIF nesneleri Media Proxy URL'leri veya biçim eşlemesi taşımaz.