dev

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.

Configuration

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.

if (!window.andrewds1021) {
    window.andrewds1021 = {
        get_on_site_notifications: {}
    };
} else if (!window.andrewds1021.get_on_site_notifications) {
    window.andrewds1021.get_on_site_notifications = {};
}

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.

window.andrewds1021.get_on_site_notifications.property = value;

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.

window.andrewds1021.get_on_site_notifications.default_limit = 50;
Seçenek Adı Veri Türü Varsayılan Değer
Description
types dize veya dize dizisi tüm bildirim türleri
Bu seçenek, betiklerin alacağı varsayılan bildirim türleri listesini ayarlar. Betiklerin ek bildirim türleri istemesine izin verilecektir.
Değer Description
"announcement-target" Son 90 gün içinde düzenlediğiniz bir viki, Duyurular kullanarak bir duyuru gönderildi.
"article-comment-at-mention" Bir kullanıcı, dikkatinizi çekmek için bir madde veya blog yorum iletisinin açılış gönderisinde @-Bahsetme özelliğini kullandı.
"article-comment-reply" Bir kullanıcı, takip ettiğiniz bir maddeye veya blog yorumu iletisine yanıt verdi.
"article-comment-reply-at-mention" Bir kullanıcı, dikkatinizi çekmek için bir maddede veya blog yorumu yanıtında @-Bahsetme özelliğini kullandı.
"discussion-post" Bir kullanıcı, takip ettiğiniz bir Tartışmalar iletiyi yanıt verdi.
"discussion-upvote" Bir kullanıcı Tartışmalar'daki gönderilerinizden birini olumlu oyladı.
"message-wall-post" Bir kullanıcı, takip ettiğiniz bir mesaj duvarı iletiyi yanıtladı.
"message-wall-thread" Bir kullanıcı mesaj duvarınızda yeni bir ileti başlattı.
"post-at-mention" Bir kullanıcı, dikkatinizi çekmek için Tartışmalar yanıtında @-Bahsetme özelliğini kullandı.
"talk-page-message" Bir kullanıcı kullanıcı mesaj sayfasına yeni bir mesaj bıraktı.
"thread-at-mention" 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.
time JavaScript'in Date yapıcısı için geçerli giriş 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.

Ek Notlar