Ana içeriğe geç

Sunucu kanalları

Bir sunucu kanallara bölünür ve kategoriler bu kanalları gruplar. Bu sayfadaki yollar bir sunucunun kanallarını listeler, kanal ve kategori oluşturur ve bunların sırasını ve üst öğesini değiştirir. Kanal nesnesi ve kanal veya kategori değiştirme ve silme ile izin geçersiz kılmalarını ayarlama dahil kanal başına her işlem Kanallar sayfasında tanımlanır.

Tüm yollar https://tebhos.com/api/v1 adresine görelidir, kimlik doğrulama gerektirir ve hem kullanıcı oturumlarını hem de bot token'larını kabul eder; yalnızca kullanıcı olarak işaretlenmiş yollar bunun dışındadır (bu durumda geçerli bir bot token'ı 403 ACCESS_DENIED ile reddedilir). Sunucunun üyesi olmayan bir çağıran 403 FORBIDDEN alır. Hata gövdeleri Hatalar sayfasındaki biçime uyar.

Sunucu kanalı türleri

Bunlar bir sunucunun içinde bulunan kanal türleri ve Sunucu kanalı oluştur isteğinin type alanında kabul ettiği değerlerdir.

Değer Ad Açıklama
0 GUILD_TEXT Mesajları ve yavaş modu olan metin kanalı
2 GUILD_VOICE Ses oturumları, ekran paylaşımı ve metin sohbeti olan ses kanalı
4 GUILD_CATEGORY Diğer kanalları gruplayan kategori
998 GUILD_LINK Tek içeriği harici bir http/https URL'si olan kanal

Kategori, türü 4 olan bir kanal satırıdır. Adı, konumu ve izin geçersiz kılmaları vardır; diğer kanallar ona parent_id ile işaret eder. Kategoriler iç içe olamaz.

İzin geçersiz kılma oluşturma nesnesi

Bir kanalın oluşturulurken alabileceği ilk geçersiz kılmalar. Saklanan biçim izin geçersiz kılma nesnesidir.

Alan Tür Açıklama
id snowflake Geçersiz kılmanın hedeflediği rol kimliği (tür 0) veya kullanıcı kimliği (tür 1). @everyone rolünün kimliği sunucunun kimliğidir
type integer Rol için 0, üye için 1. Başka herhangi bir değer 400 BAD_REQUEST döndürür
allow? string veya integer Verilecek izin bitleri; ondalık bir dize veya negatif olmayan bir JSON tamsayısı olarak (varsayılan 0)
deny? string veya integer Kaldırılacak izin bitleri (varsayılan 0)

Aynı bitin hem allow hem de deny içinde bulunması 400 BAD_REQUEST döndürür. Tanımlı hiçbir izni adlandırmayan bitler atılır.

{
  "id": "1489002177550843904",
  "type": 0,
  "allow": "0",
  "deny": "1024"
}

Kanal konumu nesnesi

Sunucu kanalı konumlarını değiştir isteğinin bir girdisi.

Alan Tür Açıklama
id snowflake Taşınacak kanal veya kategori
position? integer Hedefteki kardeşler arasındaki sıra; geçerli aralığa sınırlanır. preceding_sibling_id varsa yok sayılır
parent_id? ?snowflake Yeni üst kategori; kanalı en üst düzeye taşımak için null. Mevcut üst öğeyi korumak için göndermeyin
preceding_sibling_id? ?snowflake Kanalın hemen arkasına yerleştirileceği kardeş; en başa yerleştirmek için null
lock_permissions? boolean Girdi kanalı farklı bir kategoriye taşıdığında, kanalın geçersiz kılmalarını kategorininkilerle değiştirir (varsayılan false)

Kardeşler kova başına sayılır: kategoriler diğer kategoriler arasında, diğer her kanal ise aynı üst öğeye sahip kanallar arasında (veya en üst düzey kanallar arasında) sıralanır. Bir girdide ne position ne de preceding_sibling_id varsa, ses kanalı en sona, diğer kanallar ise ilk ses kardeşinin hemen önüne yerleştirilir.

{
  "id": "1501314428688998182",
  "parent_id": "1501314428688998100",
  "preceding_sibling_id": null,
  "lock_permissions": true
}

Sunucu kanallarını listele

GET /guilds/{guild_id}/channels

Sunucu için position ve ardından kimliğe göre sıralanmış bir kanal nesneleri dizisi döndürür. Bir kanal veya kategori yalnızca çağıran onda VIEW_CHANNEL iznine sahipse dahil edilir. Üyelik gerektirir. Yolun sayfalaması yoktur.

Hız sınırı: guild:channels:list, hesap ve sunucu başına 10 saniyede 60.

curl https://tebhos.com/api/v1/guilds/1489002177550843904/channels \
  -H "Authorization: Bot $TEBHOS_BOT_TOKEN"

Kanalları almanın diğer yolları

Ready yükü ve Sunucuyu getir yanıtındaki channels dizisi de sunucunun kanallarını taşır. Sunucuyu getir'deki dizi görünürlüğe göre filtrelenmez.

Sunucu kanalı oluştur

POST /guilds/{guild_id}/channels

Bir kanal veya kategori oluşturur ve kanal nesnesini 201 durumuyla döndürür. MANAGE_CHANNELS gerektirir. Sunucu Channel Create alır.

Kategori oluşturmak (type 4) yalnızca kullanıcıya yöneliktir. Diğer türleri oluşturmak bot token'ını da kabul eder.

Hız sınırı: guild:channel:create, hesap ve sunucu başına 60 saniyede 10 (metin, ses ve bağlantı kanalları; kategori oluşturmanın yol kovası yoktur).

JSON gövdesi

Alan Tür Açıklama
name string Kanal adı, 1-100 karakter. Verildiği gibi saklanır
type? integer Bir sunucu kanalı türü (varsayılan 0). Başka herhangi bir değer 400 BAD_REQUEST döndürür
parent_id? ?snowflake Üst kategori. Bu sunucudaki bir kategori olmalıdır; bir kategorinin üst öğesi olamaz
topic? ?string Kanal konusu
url? ?string Bağlantı kanalının hedefi: en fazla 2048 karakterlik, bir ana makine içeren ve kullanıcı bilgisi içermeyen bir http veya https URL'si. Başka bir tür için url göndermek 400 BAD_REQUEST döndürür
rate_limit_per_user? ?integer Saniye cinsinden yavaş mod aralığı (varsayılan 0)
bitrate? ?integer Saniyede bit cinsinden ses bit hızı. 1000'in altındaki bir değer kbps olarak okunur ve 1000 ile çarpılır. Yalnızca ses kanalı için kullanılır. Aşağıdaki sınırlara bakın
user_limit? ?integer Ses doluluk sınırı; 0-99 aralığına sınırlanır (varsayılan 0, sınır yok)
voice_connection_limit? ?integer Bir üyenin kanalda aynı anda sahip olabileceği ses bağlantısı sayısı; 1-100 aralığına sınırlanır. Gönderilmezse saklanan değer null olur ve istemciler 5 kullanır
permission_overwrites? array[izin geçersiz kılma oluşturma nesnesi] İlk geçersiz kılmaların tamamı
nsfw? boolean Uyumluluk için kabul edilir ve yok sayılır; TEBHOS'ta yaş kısıtlamalı kanal yoktur

Kategori için yalnızca name ve permission_overwrites kullanılır.

İzin geçersiz kılmaları. permission_overwrites gönderilmezse bir kategorinin içinde oluşturulan kanal o kategorinin geçersiz kılmalarını kopyalar. Gönderilirse (boş dizi dahil) bu devralmanın yerini tamamen alır. Bu alanı göndermek ayrıca MANAGE_ROLES gerektirir ve bir geçersiz kılmanın izin verdiği her bit, çağıranın üst kategoride (üst öğe yoksa sunucuda) sahip olduğu bir bit olmalıdır; aksi hâlde istek hiçbir şey oluşturulmadan 403 FORBIDDEN ile başarısız olur. Bkz. Rol hiyerarşisi.

Bit hızı. Yeni bir ses kanalının varsayılanı 64000'dir (64 kbps). Kabul edilen en düşük değer 8000'dir (8 kbps). Çağıranın ayarlayabileceği en yüksek bit hızı, kendi hakkı ile sunucunun takviye hakkından büyük olanıdır:

Kaynak Üst sınır
Pro yok, takviye seviyesi 0 96 kbps
Çağıranın TEBHOS Pro'su var 128 kbps
Sunucu takviye seviyesi 1'de 128 kbps
Sunucu takviye seviyesi 2'de 384 kbps

Daha yüksek bir değer 403 BITRATE_REQUIRES_UPGRADE, üst sınır zaten 384 kbps ise 400 BITRATE_EXCEEDS_LIMIT döndürür.

Konum. Yeni bir kanal, aynı üst öğeye sahip kanallar arasındaki en yüksek konumun arkasına yerleştirilir. Yeni bir kategori son kategorinin arkasına yerleştirilir.

Durum Kod Koşul
400 INVALID_FORM_BODY name boş veya 100 karakterden uzun, url geçersiz ya da bit hızı 8 kbps'nin altında
400 BAD_REQUEST Desteklenmeyen type, geçersiz parent_id, kategori için üst öğe, bağlantı kanalı olmayan bir kanalda url veya geçersiz bir geçersiz kılma
400 BITRATE_EXCEEDS_LIMIT Bit hızı 384 kbps'nin üzerinde
403 FORBIDDEN MANAGE_CHANNELS eksik, geçersiz kılmalar MANAGE_ROLES olmadan gönderildi veya çağıranın sahip olmadığı bir biti veriyor
403 BITRATE_REQUIRES_UPGRADE Bit hızı çağıranın üst sınırını aşıyor
403 ACCESS_DENIED Bir bot kategori oluşturmaya çalıştı

Metin, ses veya bağlantı kanalı oluşturmak bir CHANNEL_CREATE denetim kaydı girdisi kaydeder.

curl -X POST https://tebhos.com/api/v1/guilds/1489002177550843904/channels \
  -H "Authorization: Bot $TEBHOS_BOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "announcements",
    "type": 0,
    "parent_id": "1501314428688998100",
    "permission_overwrites": [
      {"id": "1489002177550843904", "type": 0, "deny": "2048"}
    ]
  }'

Sunucu kanalı konumlarını değiştir

PATCH /guilds/{guild_id}/channels

Kanalları ve kategorileri taşır ve yeniden sıralar; gövdesiz 204 döndürür. Gövde, kanal konumu nesnelerinden oluşan bir JSON dizisidir. MANAGE_CHANNELS gerektirir.

Hız sınırı: guild:channel:positions, hesap ve sunucu başına 10 saniyede 30.

Girdiler dizi sırasıyla, her biri bir öncekinin sonucuna uygulanır. Hiçbir şey yazılmadan önce isteğin tamamı doğrulanır; bu yüzden geçersiz bir girdi tüm kanalları değiştirmeden bırakır:

Durum Kod Koşul
400 BAD_REQUEST Bir kimlik snowflake değil, parent_id bu sunucudaki bir kategori değil, bir kategoriye üst öğe verildi veya preceding_sibling_id hedef kovada değil
403 FORBIDDEN MANAGE_CHANNELS eksik veya lock_permissions çağıranın veremeyeceği geçersiz kılmaları kopyalayacak
404 NOT_FOUND Bir girdinin id değeri bu sunucudaki bir kanal değil

Etkilenen her kovada konumlar, ortaya çıkan sıraya göre 0'dan başlayarak yeniden numaralandırılır. Bir kategoriyi taşımak yalnızca onun kategoriler arasındaki yerini değiştirir; kanalları üst öğelerini korur. Yalnızca konumu, üst öğesi veya geçersiz kılmaları gerçekten değişen satırlar yazılır.

lock_permissions yalnızca girdi kanalı farklı bir kategoriye taşıdığında etkili olur. Kategorinin geçersiz kılmalarını kanala kopyalar ve taşınan kanalda MANAGE_ROLES gerektirir; kopyanın izin verdiği her bit ve reddetmeyi bıraktığı her bit, çağıranın orada sahip olduğu bir bit olmalıdır.

En az bir kanal değiştiğinde sunucu, değişiklikten sonra saklandığı hâliyle sunucunun kanallarını taşıyan tek bir Channel Update Bulk olayı alır. İşlem hiçbir denetim kaydı girdisi kaydetmez.

curl -X PATCH https://tebhos.com/api/v1/guilds/1489002177550843904/channels \
  -H "Authorization: Bot $TEBHOS_BOT_TOKEN" \
  -H "Content-Type: application/json" \
  -d '[{"id": "1501314428688998182", "parent_id": "1501314428688998100", "preceding_sibling_id": null}]'

Kategoriler

Kategori, Sunucu kanalı oluştur ile type 4 kullanılarak oluşturulur ve Sunucu kanalı konumlarını değiştir ile taşınır. Bir kategoriyi yeniden adlandırmak, geçersiz kılmalarını değiştirmek ve silmek kanal yollarını kullanır: Kanalı değiştir, Kanal izin geçersiz kılmasını ayarla ve Kanalı sil. Kanal izinlerini kategoriyle eşitle, bir kategorinin geçersiz kılmalarını kanallarından birine kopyalar.