GetOnSiteNotifications, OnSiteNotifications (Beslemeler ve Duyurular için kullanılan bildirimler gibi) almak için hazır bir çözüm içeren diğer betikleri sağlar. Bu betik, istekleri kabul etmek ve sonuçları döndürmek için mw.hook kullanır. Bildirimler için bir istek gönderirken, komut dosyaları bildirim türlerini, başlangıç zaman damgasını ve isteğin diğer parametrelerini belirleyebilir. Bir parametre belirtilmezse, varsayılan bir değer kullanılacaktır. Varsayılan parametre değerleri ve parametre değerlerine ilişkin sınırlar, bireysel kullanıcılar tarafından özelleştirilebilir. Bu nedenle, betikler, sonuçların her zaman istenen tüm bilgileri içereceğini varsaymamalıdır. Çoğu uygulamanın bu kısıtlamayı gerektirmesi muhtemel olduğundan, bu betik kişisel kullanım için işaretlenmiştir.
Bu bölüm, diğer betiklerin isteyebileceklerini kısıtlamak isteyen kullanıcılar içindir. Diğer bölümler script geliştiriciler içindir.
Bu komut dosyasının yapılandırma seçenekleri, bireylerin diğer betikler tarafından istenebilecekleri kısıtlamasına izin verir. Seçenekler, bu betiğinin yapılandırma nesnesinin özellikleridir ve bir kullanıcının kişisel JS'si içinde diğer betiğinin içe aktarımının üzerinde aşağıdaki kod satırlarıyla oluşturulabilir. Bu betiğini kullanan birden fazla betik içe aktarılıyorsa, bu yapılandırmayı diğer betiklerin en üst içe aktarımının üzerine yerleştirin.
Belirli bir seçeneği ayarlamak için, bu betiğinin yapılandırma nesnesi ile diğer betiğinin içe aktarımı arasına bir kod satırı yerleştirin. Aşağıdaki biçimi takip etmelidir; burada property, aşağıdaki tabloda listelendiği gibi seçenek adıyla değiştirilir ve value, istenen değerle değiştirilir.
Bu örnek, default_limit ögesini 50 (izin verilen maksimum değer) olarak ayarlar. Bu, Fandom'un bildirim hizmetine gönderilen toplam istek sayısını en aza indirecektir.
Bir kullanıcı, dikkatinizi çekmek için Tartışmalar iletisinin açılış gönderisinde @-Mentions özelliğini kullandı.
mode_limit
dize
"event"
Bu seçenek, betiklerin kullanabileceği alma modunu sınırlar. Her mod farklı bir ayrıntı düzeyi alır. Ayrıntı miktarı arttıkça, yapılan istek sayısı ve veri miktarı da artar. Bu, sonuçların geri alınmasının daha uzun sürebileceği anlamına gelir. Betiklerin daha az ayrıntı isteyen modları kullanmasına izin verilecek. Burada mevcut modların en azdan en ayrıntılıya doğru bir listesi bulunmaktadır.
Değer
Description
"notification"
Her bildirim bir kez alınır ve döndürülen veriler en son olayı ve en fazla 5 kullanıcıyı içerecektir. Kullanıcılar, bildirimle ilişkili bir olayı en son tetikleyen kişilerdir.
"user"
Her bildirim, tam bir kullanıcı listesi elde etmek için gerektiği kadar alınacaktır. Döndürülen veriler, kullanıcıların tam listesi alınırken elde edilen diğer ek olayların yanı sıra en son olayı içerecektir.
"event"
Her bildirim, ilişkili tüm olayları elde etmek için gerektiği kadar alınacaktır. Döndürülen veriler ayrıca tam bir kullanıcı listesi içerecektir.
default_mode
dize
"notification"
Bu seçenek, varsayılan alma modunu ayarlar. Tanınan değerler tablosu için mode_limit açıklamasına bakın.
limit_limit
sayı
50
Bu seçenek, betiklerin bildirim istekleri için ayarlayabileceği sınırı sınırlar. Bir isteğin sınırı, Fandom'un bildirim hizmetinin her bildirim sayfası (yani grup) için döndüreceği maksimum bildirim sayısını kontrol eder. Hizmet, her istek için bir sayfa döndürür ve bu nedenle yüksek bir sınır, her istek için daha fazla veri anlamına gelir. Tüm bildirimler alınana veya belirtilen sayfa sayısına ulaşılana kadar daha fazla sayfa için ek istekler yapılacaktır; hangisi önce gelirse. Tüm bildirimlerin alınması durumunda, yüksek bir sınır daha az istek ve dolayısıyla muhtemelen daha düşük bir yükleme süresi anlamına gelir. Belirtilen sayıda sayfanın alınması durumunda, üst sınır, daha fazla bildirimin alınacağı anlamına gelir. Betiklerin daha düşük bir sınır belirlemesine izin verilecektir. Değer pozitif bir tamsayı olmalı ve Fandom'un bildirim hizmeti tarafından belirlenen katı sınırı (şu anda 50) aşmamalıdır.
default_limit
sayı
Fandom'un varsayılanı (şu anda 10)
Bu seçenek, varsayılan istek sınırını ayarlar. Kabul edilebilir değerlerle ilgili ayrıntılar için limit_limit açıklamasına bakın.
count_limit
sayı
Infinity
Bu seçenek, diğer betiklerden gelen her istek için bu betiğinin alacağı sayfa sayısını sınırlar. Sayfa sayısı, istek sınırı ve bildirim sayısının nasıl ilişkili olduğuna ilişkin ayrıntılar için limit_limit açıklamasına bakın. Betiklerin daha düşük bir sınır belirlemesine izin verilecektir. Değer pozitif bir tamsayı, 0 veya Infinity (varsayılan) olmalıdır.0 olarak ayarlanırsa, betikleri boş bir bildirim listesi almanız yeterlidir.
default_count
sayı
count_limit
Bu seçenek, bu betiğinin diğer betiklerden her istek için almaya çalışacağı varsayılan sayfa sayısını ayarlar. Sayfa sayısı, istek sınırı ve bildirim sayısının nasıl ilişkili olduğuna ilişkin ayrıntılar için limit_limit açıklamasına bakın. Betiklerin kendi istekleri için başka herhangi bir geçerli değer ayarlamasına izin verilecektir. Değer, 0 veya count_limit değerinden büyük olmayan bir pozitif tam sayı olmalıdır.0 olarak ayarlanırsa, bunu yapan betikleri kendi değerlerini ayarlamazsanız, yalnızca boş bir bildirim listesi alırsınız.
Usage
İstemci betikler, mw.hook kullanarak istekleri gönderir ve sonuçları alır. İşleri kısa tutmak için, bu belgede kancalar için kısaltılmış adlar kullanılacaktır. Tam adları almak için önek olarak andrewds1021.get_on_site_notifications. ekleyin. ready kancası, kurulumunu tamamladıktan ve istekleri almaya başlamaya hazır olduğunda bu betik tarafından tetiklenir. Kurulumun bir parçası olarak, varsayılan istek parametresi değerlerini kullanarak bir ilk çalıştırma gerçekleştirir. Sonuçlar döndürülür, böylece belirli gereksinimleri olmayan ve bildirim listesini güncellemesi gerekmeyen herhangi bir istemci, ilk sonuçları dinleyerek kendi isteğini yapmaktan kaçınmaya çalışabilir. İlk sonuçların, döndürülen istek bilgilerinde counter değeri 0 olacaktır. Betik, ilk bağımsız değişken olarak bildirimler listesi ve ikinci bağımsız değişken olarak istek bilgileri ile done kancasını tetikleyerek sonuçları döndürür. İstemciler, ilk (ve tek) bağımsız değişken olarak isteğe bağlı istek yapılandırmasıyla run kancasını ateşleyerek istekleri gönderebilir. Fandom'un bildirim hizmetini fazla zorlamamak için istemci talepleri alındıkları sıraya göre seri olarak işlenir. Benzer şekilde, bildirim hizmetine yapılan istekler de seri olarak gönderilir. Kısacası, bu betiğin herhangi bir zamanda bildirim hizmeti ile birden fazla aktif isteği olmamalıdır.
Talep Yapılandırması
Kancalardan geçirilen verilere diğer betikler tarafından erişilebildiğinden, istemcinin run kancasını çalıştırmadan önce istek yapılandırmasını derin dondurması önerilir. Yapılandırma, aşağıdaki özelliklerin herhangi birine veya tümüne sahip bir nesne olmalıdır. Yapılandırma bölümünde açıklandığı gibi, bir istemcinin seçeneklerinin kullanıcı tarafından sınırlandırılabileceğini unutmayın.
Anahtar
Veri Türü
Description
id
herhangi bir şey
Bu, betiğinin sonuçlarda hemen geri ilettiği sahte bir değerdir. Bir istemci, gönderilen bir istekten elde edilen sonuçları tanımlamaya yardımcı olması için bunu kullanabilir.
mode
dize
Bu değer, alınan ayrıntı düzeyini kontrol eder. Tanınan modların listesi için lütfen betik yapılandırma bölümündeki tabloya bakın. Bildirim hizmetinin çalışma şekli nedeniyle, ek ayrıntıların alınması, her ek kullanıcı/olay için en az bir ayrı istek gerektirir. Bu nedenle, ek ayrıntıların talep edilmesi, bildirim hizmetine yapılan toplam talep sayısını önemli ölçüde artırabilir. İstemcileri mümkün olduğunca az ayrıntı talep etmesi önerilir.
types
dize veya dize dizisi
Bu değer, alınan bildirim türlerini kontrol eder. Tanınan türlerin bir listesi, betik yapılandırma bölümünün tablosunda bulunabilir. Fandom gelecekte ek türler ekleyebilir. Böyle bir durumda, bu sayfadaki liste güncellenmiş olsun ya da olmasın, betikleri yeni türleri talep edebilir. Betik, bir dize veya dize dizisi olduğundan emin olmak dışında bir istemci tarafından gönderilen değerin geçerliliğini kontrol etmez.
Bu değer, sonuçları belirtilen tarih saatinden önce meydana gelen olaylarla sınırlamak için kullanılır. Olayların belirli bir süre sonra Fandom'un sistemlerinden silindiğini unutmayın, bu nedenle geçmişte çok uzak bir tarih sağlamak yalnızca boş bir bildirim listesiyle sonuçlanacaktır.
limit
sayı
Bu değer, bildirim hizmetinin her bildirim sayfası için döndüreceği maksimum bildirim sayısını belirler. Betik, tüm bildirimleri almak için veya belirtilen sayfa sayısına ulaşılana kadar gerektiğinde ek isteklerde bulunur; hangisi önce gelirse. Şu anda, bildirim hizmeti tarafından izin verilen maksimum değer 50 sayısıdır.
page
sayı
Bu değer, bildirim alımı için başlangıç sayfasını (1-endeksli) ayarlar. Diğer ölçütleri karşılayan limit bildiriminden daha fazlası olduğunda, her sayfa (potansiyel olarak son sayfa hariç) limit sonuçlarını içerir. Bildirimler en son en önce döndürülür, bu nedenle page bir sayıya ayarlanır, n, limit bir sayıya ayarlanır, m code>, sonuçlardan (n - 1) * m en son bildirimleri çıkaracaktır.
page_count
sayı
Bu değer, alınacak maksimum sayfa sayısını belirler. 0 olarak ayarlanırsa, sonuç boş bir bildirim listesi olacaktır.
Talep Bilgileri
İstekle ilgili bilgiler, done kancasına ikinci bağımsız değişken olarak döndürülür. id dışında, derin donmuş bir nesnedir. Döndürülen bilgiler, sonuçları belirli bir istekle eşleştirmenin yanı sıra, kullanıcının bireysel yapılandırması nedeniyle sınırlı olabilecek isteğin belirli parametrelerini doğrulamak için bir araç sağlar.
Anahtar
Veri Türü
Description
counter
sayı
Bu, kaç istemci talebin işlendiğini takip etmek için yalnızca bir dizindir (0 dizinli). İstemcilerin, daha önce açıklandığı gibi, 0 değeriyle belirtilen, otomatik olarak oluşturulan ilk isteği kontrol etmek dışında, muhtemelen bunun için hiçbir kullanımı olmayacaktır. Değer her zaman pozitif bir tam sayı veya 0 olmalıdır.
id
herhangi bir şey
Bu, ilgili isteğin id olarak iletilen şeydir. Betik bu değeri değiştirmemelidir. Ancak, derin dondurulmamış ilkel olmayan değerler, diğer komut dosyalarından etkilenme riski altındadır.
mode
dize
Bu, talep için kullanılan alma modudur. Olası değerlerin listesi için lütfen betik yapılandırma bölümündeki tabloya bakın.
types
dizelerin dizisi
Bu, talep için kullanılan bildirim türlerinin listesidir. Döndürülen dizeler neyin arandığını gösterir; mutlaka bulunan şey değil.
time
dize
Bu, talep için kullanılan zaman damgasıdır. Bu zaman damgasında veya sonrasında meydana gelen olaylar sonuçlara dahil edilmez. Dize, toISOString() kullanılarak bir JavaScript Date nesnesinden oluşturulur.
limit
sayı veya undefined
Bu, ilgili istemci isteğinin bildirim hizmeti istekleri için kullanılan sınırdır. Değer undefined ise, bildirim hizmetinin varsayılan sınırı kullanılmıştır. Aksi takdirde, bu değer her zaman pozitif bir tam sayı olmalıdır.
page
sayı
Bu, sonuçların alınmasının başladığı sayfadır (1-endeksli). Bunun ne anlama geldiğiyle ilgili daha fazla ayrıntı için lütfen istek yapılandırma bölümünde benzer şekilde adlandırılmış özelliğin açıklamasına bakın. Bu değer her zaman pozitif bir tam sayı olmalıdır.
page_count
sayı
Bu, sonuçlar için alınabilecek maksimum sayfa sayısıdır. Alınan gerçek sayfa sayısı, limit ve bildirimler listesinin uzunluğu kullanılarak hesaplanabilir.
error
nesne veya atlanmış
Geçerli durumunda, bildirim hizmeti çok sayıda bildirim almaya çalışırken sık sık 500 ve 503 hatası döndürür. Bu olduğunda, betik bir sonraki adıma geçer. Bu nesnenin ve içeriğinin varlığı, istemcilerin varsa ne tür hatalar oluştuğunu belirlemesine olanak tanır. Bu nesne atlanırsa, hiçbir hata oluşmaz.
Anahtar
Veri Türü
Description
page
number or omitted
Bu, ilk bildirim verilerinin alınmasının başarısız olduğu sayfadır (1-endeksli). Sayı, döndürülen sonuçlar için başlangıç sayfasına göre değildir. Bu ve sonraki sayfalarda yer alan bildirimler sonuçlara dahil edilmemiştir. Bu dize atlanırsa, tüm bildirimler veya belirtilen sayfa sayısı için ilk veriler başarıyla alındı; hangisi önce geldiyse.
notifications
nesne dizisi veya atlanmış
İlk bildirim verileri alındıktan sonra, aktörlerin veya olayların tam listesini sağlamak için bildirimler için ek ayrıntılar alınabilir. Bu liste, ek ayrıntılar alınmaya çalışılırken karşılaşılan hatalara ilişkin bildirimleri içerir. Bu listedeki nesne referansları, döndürülen bildirim verileri tarafından atıfta bulunulan tam olarak aynı nesnelere atıfta bulunur. Bu nedenle, bir istemci belirli bir bildirim için ek ayrıntıları almaya çalışırken bir hatanın oluşup oluşmadığını kontrol etmek için == ve indexOf() gibi işlevleri kullanabilir. Bu dizi atlanırsa, tüm ek ayrıntıları alma girişimleri başarılı olmuştur.
Bildirimler
Bildirim listesi, done kancasının ilk bağımsız değişkeni olarak döndürülür. Derin donmuş bir bildirim nesneleri dizisidir. "notification" dışında bir modun kullanılması nedeniyle ek ayrıntıların alındığı durumlar dışında, bildirim hizmeti tarafından sağlandığı gibi bir bildirim nesnesi döndürülür. Betik, latestActors ögesine ek kullanıcılar ekleyerek ve otherEvents ekleyerek ilgili bildirim nesnesini değiştirir. Bildirim nesne yapısının herhangi bir düzeyinde, alakasız veya kullanılmayan özellikler atlanabilir. Yapı ile ilgili aşağıdaki bilgiler yol gösterici olarak verilmiştir. Fandom, bu belgelere yansıtılan veya yansıtılmayan değişiklikler yapabilir.
Anahtar
Veri Türü
Description
type
dize
Bu bildirimin türüdür. Değerler, bu belgede daha önce bahsedilenlerden farklıdır ancak 1'e 1 ilişki ile ilişkilidir.
Değer
Bildirim Türü
announcement-notification
announcement-target
article-comment-at-mention-notification
article-comment-at-mention
article-comment-reply-notification
article-comment-reply
article-comment-reply-at-mention-notification
article-comment-reply-at-mention
replies-notification
discussion-post
upvote-notification
discussion-upvote
message-wall-reply-notification
message-wall-post
message-wall-post-notification
message-wall-thread
post-at-mention-notification
post-at-mention
talk-page-notification
talk-page-message
thread-at-mention-notification
thread-at-mention
community
nesne
bildirimin kaynaklandığı viki
Anahtar
Veri Türü
Description
id
dize
vikinin sayısal kimliği
name
dize
vikinin adı
refersTo
nesne
olayların yanıt verdiği içerik
Anahtar
Veri Türü
Description
uri
dize
içeriğin URL'si
createdBy
dize
içeriği oluşturan kullanıcının sayısal kimliği
createdByName
dize
içeriği oluşturan kullanıcının adı
type
dize
içerik türü
title
dize
içeriğin başlığı
snippet
dize
içerik önizlemesi
events
nesne
olaylar hakkında bilgi
Anahtar
Veri Türü
Description
total
sayı
olay sayısı
totalUniqueActors
sayı
kullanıcı sayısı
latestActors
array of objects
Bu, önceki bildirimin (varsa) okundu olarak işaretlenmesinden bu yana bir etkinliğe neden olan en son kullanıcıların listesidir. "notification" modunu kullanan bu liste, en son 5 kullanıcıyla sınırlıdır.
Anahtar
Veri Türü
Description
id
dize
kullanıcının sayısal kimliği
name
dize
kullanıcının adı
avatarUrl
dize
kullanıcının avatarının URL'si
latestEvent
nesne
en son olay
Anahtar
Veri Türü
Description
when
dize
Bu, olayın zaman damgasıdır ve YYYY-MM-DDTHH:mm:ss.sssZ olarak biçimlendirilir. Bu, belki de tesadüfen değil, toISOString() tarafından döndürülen biçimdir.
causedBy
nesne
Bu olaya neden olan kullanıcıdır. Bu nesnenin yapısı için latestActors açıklamasına bakın.
uri
dize
Olayın URL'si
type
dize
Bu olay türüdür. Beklenen değerlerin listesi için komut dosyası yapılandırma bölümüne bakın.
snippet
dize
olay için içerik önizlemesi
otherEvents
array of objects
Bu, bildirimle ilişkili diğer olayların bir listesidir. Liste, ek bildirim ayrıntıları alınırken mevcut verilerden oluşturulur. "notification" modu kullanılmışsa, bu özellik atlanır. Boş bir dizi, betiğin ek ayrıntıları alamamış olabileceğini gösterir. Bu dizideki nesnelerin yapısı için latestEvent açıklamasına bakın.
metadata
dize
Aşağıdaki nesneyi temsil eden JSON
Anahtar
Veri Türü
Description
wallOwnerName
dize
mesaj duvarının "sahibi" olan kullanıcının adı
read
boolean
bildirimin okunup okunmadığı
Kullanılan
Bu betiği kullanan bir betik geliştirdiyseniz, betiğinizi bu listeye eklemekten çekinmeyin.
Bildirim istekleri için aralıklı olarak büyük bir sınır değeri kullanmak, veritabanı hatalarına ve arızalarına neden oluyor gibi görünüyor. Bu nedenle, büyük bir istek sınırının kullanılması, bildirim alımının erken sonlandırılmasına neden olabilir.