Anon.Cat API

Adres

Dosyayı https://up.anon.cat/upload adresine POST at; varsayılan olarak json yanıt alırsın.

json dışında bir format istersen, hangi formatı istediğini belirten bir parametre ekle, örneğin https://up.anon.cat/upload?output=csv.

Geçerli yanıt tipleri: json, csv, text, html ve gyazo.

İstek başına tek dosya, en fazla 1 GB.

curl örneği

curl -i -F files[]=@yourfile.jpeg https://up.anon.cat/upload

Doğrudan gövdeyle yükleme

Dosyayı multipart form yerine doğrudan istek gövdesinde de gönderebilirsin; adı sorgu dizesinde geçirirsin. Büyük dosyalar için daha iyi olan yol budur: boyut baştan bellidir, multipart zarfı yoktur ve sitenin kendisi de bunu kullanır.

curl -i -T yourfile.iso "https://up.anon.cat/upload?filename=yourfile.iso"

Her iki yol da dosyayı doğrudan CDN'e akıtır, yani ikisi de sunucudaki disk alanıyla sınırlı değildir.

Meta verileri kaldırma

scrub=1 eklendiğinde dosya CDN'e giderken meta verilerinden arındırılır: JPEG'den Exif ve GPS, PNG'den metin ve eXIf blokları, WebP'den Exif ve XMP. Pikseller değişmez ve bu üç biçimden biri olmayan her şey gönderildiği gibi saklanır.

curl -i -T photo.jpg "https://up.anon.cat/upload?filename=photo.jpg&scrub=1"

Site bunu her yüklemede gönderir. Kaldığı yerden devam eden bir yüklemede parametre her parçaya değil, /upload/finish çağrısına eklenir.

Not API'si

Anon.Notes'un kendi API'si var ve bu, yukarıdaki yükleme adresinden başka bir şey: tek bir notun içine yazar, herkese açık dosya barındırmaya değil. Anahtar notun kendi ayarlar sayfasında oluşturulur ve başka hiçbir nota hiçbir şey yapamaz.

Ne işe yarar: alıcı olarak bir not. Bir dağıtım betiği, bir CI işi, bir cron ya da bir bot içine satır iter, sen de sonra telefondan okursun. Kaydolunacak bir şey yok, sürekli sorgulanacak bir şey yok: not, posta kutusunun kendisi.

Temel adres https://anon.cat/api/notes/. Her şey JSON konuşur ve her şey aynı şekilde doğrulanır.

Anahtarlar

Notunu aç, Ayarlar'a git ve Geliştirici API'si altında bir anahtar oluştur. Bir kez gösterilir - o anda kopyala, çünkü bu taraftan hiçbir şey onu sana sonradan geri okuyamaz.

Her anahtarın bir kapsamı vardır: append girdi ekleyebilir ve hiçbir şey okuyamaz, read okuyabilir ve hiçbir şey yazamaz, rw ikisini de yapar ve bildirimleri yönetir. Bir makineye işini görecek en dar kapsamı ver.

Bearer belirteci olarak gönder. Sorgu dizesinde asla kabul edilmez, çünkü sorgu dizesi erişim günlüğüne yazılır.

curl -H "Authorization: Bearer $ANON_KEY" https://anon.cat/api/notes/ping

Bir anahtarı iptal etmek aynı panelde tek tık, anında etki eder ve ne nota ne de başka bir anahtara dokunur. Parolan burada hiçbir yere girmez; bir anahtar onu ne okuyabilir, ne değiştirebilir, ne de notu silebilir.

Girdi göndermek

/api/notes/append adresine POST at; metni text alanında ya da doğrudan isteğin gövdesi olarak gönder. İkisi de aynı işi yapar:

curl -H "Authorization: Bearer $ANON_KEY" -d "text=deploy 1.9.9 finished" https://anon.cat/api/notes/append

curl -H "Authorization: Bearer $ANON_KEY" -H "Content-Type: application/json" -d '{"text":"deploy 1.9.9 finished"}' https://anon.cat/api/notes/append

tail -n 20 build.log | curl -H "Authorization: Bearer $ANON_KEY" --data-binary @- https://anon.cat/api/notes/append

Günlük tipi not bir girdi daha alır. Sayfa tipi not büyür: metin belgenin sonuna eklenir, asla üstüne yazılmaz; böylece elindeki kopya eskimiş bir betik, senin bu arada yazdıklarını silemez.

Yanıt, notun durumunu içeren bir 201'dir. Tek bir çağrıda bildirimleri atlamak için notify=false ekle - eski satırları yeniden işleyen bir döngünün istediği budur.

Bir notu okumak

read ya da rw anahtarıyla /api/notes/entries girdileri çözülmüş olarak, en eskiden başlayarak döndürür. limit ve offset sayfalar, order=desc ise en yenisinden başlar - düzenli yoklama yapan bir programın istediği budur.

curl -H "Authorization: Bearer $ANON_KEY" "https://anon.cat/api/notes/entries?limit=10&order=desc"

/api/notes/note notu içeriği olmadan döndürür: kaç girdisi var, en son ne zaman yazılmış ve kullanılmayanları temizleyen süpürme onu alana kadar ne kadar vakti kalmış. API üzerinden her erişim de bu saati sıfırlar, yani her gün bir botun yazdığı bir notun süresi hiç dolmaz.

Bildirimler

Bir not, içine bir anahtar yazdığında sana Discord ya da Telegram üzerinden haber verebilir. Kendin yazdığında asla bildirim gitmez - amaç makineden haberdar olmak, kendinden değil.

Ayarlar'dan ya da rw anahtarıyla API üzerinden kur. Eklendiği anda bir test gönderilir; böylece yanlış kopyalanmış bir webhook adresi, hemen o anda gördüğün bir durum kodu olur.

curl -H "Authorization: Bearer $ANON_KEY" -H "Content-Type: application/json" -d '{"kind":"discord","url":"https://discord.com/api/webhooks/…","label":"deploys"}' https://anon.cat/api/notes/hooks

curl -H "Authorization: Bearer $ANON_KEY" -H "Content-Type: application/json" -d '{"kind":"telegram","bot":"123456789:AA…","chat":"-1001234567890"}' https://anon.cat/api/notes/hooks

Varsayılan olarak bir bildirim nottan hiçbir metin taşımaz: bir şeyin geldiğini, ne kadar olduğunu, hangi anahtarın gönderdiğini söyler ve buraya bağlantı verir - not hâlâ parolasının arkasındadır. preview=true geçersen girdinin kendisi de gider, yani metnini Discord'a ya da Telegram'a teslim edersin. Bu gerçek bir takas ve istemedikçe kapalı olmasının nedeni de bu.

Yalnızca Discord webhook adresleri ve Telegram botları kabul edilir. Rastgele bir URL bilerek sunulmuyor: onu getirecek olan bu sunucu olurdu.