Jump to content

ArchWiki:Bots (Türkçe)

From ArchWiki

Botlar, günlük rutin işlerden karmaşık tek seferlik güncellemelere kadar tekrarlayan görevlerin kolayca gerçekleştirilmesini sağlayan, bakım ekibinin önemli bir aracıdır. Bot düzenlemeleri, vikiye yapılan tüm katkıların %8'inden fazlasını oluşturur — bu düzenlemelerin hepsini manuel olarak yapmak oldukça can sıkıcı olurdu.

Şu anda aktif olan iki bot hesabı bulunmaktadır:

Yazılım

Botlar, viki sunucusuyla iletişim kurmak için MediaWiki API'sini kullanır. Bu API'yi kullanarak Wikimedia Vakfı tarafından geliştirilen birçok bot vardır, ancak bunlar genellikle diğer vikilerde çalışacak kadar genel değildir veya bizim stil kurallarımızla çelişir. Bu nedenle, harici taraflarca değerlendirildiğinde aynı kusurlara sahip olan, ArchWiki'ye özgü kendi bot araçlarımız üzerinde çalışmaktayız.

Wiki Monkey

Wiki Monkey projesinin amacı, web tarayıcısındaki viki sayfalarını doğrudan geliştirerek verimli düzenleme sağlamaktır. Bir kullanıcı betiği (user script) olarak çalışır; makale düzenleyici sayfalarında tekrarlayan görevlerin yarı otomatik olarak veya Kategoriler ya da BurayaBağlantılar gibi makale listesi sayfalarından tam otomatik olarak yürütülmesine olanak tanır. Wiki Monkey ayrıca SonDeğişiklikler ve YeniSayfalar için filtreler gibi bazı yardımcılar ekler. Detaylar için dökümantasyona bakın.

Wiki Monkey'in bot arayüzü tarafından yapılan düzenlemeler, son değişiklikler listesinde [{{canonicalurl:Special:RecentChanges|hidebots=0&tagfilter=wiki-monkey} filtrelenebilen} wiki-monkey etiketi ile işaretlenir.

wiki-scripts

wiki-scripts projesi, MediaWiki API'si için küçük bir kütüphane benzeri soyutlama etrafında oluşturulmuş birçok Python betiği içerir. Dahil edilen betiklerin amacı, vikiyi düzenlemeden bilgi toplamaktan, #Görevler bölümünde açıklanan karmaşık otomatik düzenlemeleri gerçekleştirmeye kadar uzanır.

Gerek otomatik gerekse etkileşimli olarak wiki-scripts tarafından yapılan düzenlemeler, son değişiklikler listesinde [{{canonicalurl:Special:RecentChanges|hidebots=0&tagfilter=wiki-scripts} filtrelenebilen} wiki-scripts etiketi ile işaretlenir.

Note MediaWiki bot bildirimleriyle ilgili [1] ve [2] gibi sorunlar çözülene kadar, User:Lahwaacz.bot geçici olarak normal kullanıcı hesabı olarak ayarlanmıştır ve düzenlemelerini küçük düzenleme olarak işaretlemekten muaf tutulmuştur.

Görevler

Bu bölüm, ArchWiki botları tarafından tekrar tekrar gerçekleştirilen görevleri açıklamaktadır. İşletilen bot betiklerinin özelliklerine genel bir bakış ve dökümantasyon sağlar. Düzenli katkıları takip etmeyi ve bunlara katılımı çok daha zorlaştıracağından, bot düzenlemelerinin varsayılan olarak SonDeğişiklikler listesinden gizlendiğini unutmayın.

Çift yönlendirmeler

Çift yönlendirmeleri düzeltmek, en eski otomatik görevdir. Örneğin bir Python betiği veya Wiki Monkey'in özel eklentisi ile yapılabilir.

İçindekiler tablosu

İçindekiler sayfası ve "çevirileri", toc.py betiği kullanılarak sürdürülür. Betik günlük olarak çalıştırılabilir, yürütülmesi birkaç saniye sürer.

Sayfanın aşağıdaki giriş noktası tablosu ile manuel olarak başlatılması gerekir:

{| id="wiki-scripts-toc-table"
|}

Bu tablonun içeriği, betik tarafından oluşturulan güncellenmiş bir sürümle değiştirilir, sayfanın geri kalanı olduğu gibi bırakılır. Betik, yapılandırma için aşağıdaki isteğe bağlı öznitelikleri tanır:

  • data-toc-languages sayfada gösterilecek dilleri belirtir. Virgülle ayrılmış dil etiketleri listesidir, en fazla 2 adet belirtilebilir. Varsayılan olarak mevcut sayfanın dilidir, yani Table of contents (Русский) için ru değeridir.
  • data-toc-alsoin "şurada da mevcut" ifadesinin çevirisini belirtir. Biçim etiket1:metin, etiket2:metin, ... şeklindedir.

Örneğin (Table of contents (Русский) sayfasından):

{| id="wiki-scripts-toc-table" data-toc-languages="ru,en" data-toc-alsoin="ru:Также в"
...
|}

Kullanıcılar ayrıca viki sayfasındaki bağlantıları düzenleyerek tablodaki kategori adlarını çevirebilirler ve betik, güncellemeler sırasında bunları korur.

İstatistikler

ArchWiki:Statistics sayfası statistics.py betiği tarafından sürdürülür. Şu anda yalnızca Kullanıcı istatistikleri bölümü otomatik olarak oluşturulmakta, geri kalanı manuel olarak güncellenmektedir. Güncelleme yaklaşık 15 saniye sürer ve günlük olarak çalıştırılmalıdır.

Betik, API'den tüm revizyonların ve kullanıcı hesaplarının meta verilerini alarak ve daha iyi performans için yerel olarak önbelleğe alarak çalışır. Düzenleme sayıları, MediaWiki sayaçlarına güvenmeden kullanıcı katkıları manuel olarak sayılarak belirlenir.

Note Bazı geliştirmeler ArchWiki talk:Statistics#Improvements sayfasında tartışılmaktadır.

Paket şablonları

update-package-templates.py betiği tüm sayfaların içeriğini ayrıştırır ve Pkg, Grp ve AUR şablonlarını günceller. Paket adı aslında betik tarafından değiştirilmez, ancak örneğin yakın zamanda AUR'dan resmi depolara taşınan paketler için bağlantı Template:AUR yerine Template:Pkg olarak güncellenir. Geçersiz paket bağlantıları, bazen yararlı bir paket durum ipucu ile birlikte Template:Broken package link ile işaretlenir.

Betik, mevcut olduklarında Template:Broken package link şablonunun yerelleştirilmiş sürümlerini kullanır ve aksi takdirde İngilizce sürümlerine geri döner. Bunun dışında sunucu tarafında bir yapılandırma yoktur.

Her çalıştırmadan sonra, ancak en fazla 7 günde bir olmak üzere, betik User:Lahwaacz.bot/Reports/archpkgs adresinde kırık bağlantıların ayrıntılı bir raporunu oluşturur.

Diller arası (Interlanguage)

interlanguage.py betiği şunları yapar:

  • Her sayfaya atanan kategorilerin dilinin, sayfanın kendi diliyle eşleşip eşleşmediğini kontrol eder.
  • İngilizce kategori ağacını yansıtarak eksik yerelleştirilmiş kategorileri oluşturur.
  • bu algoritmayı kullanarak tüm içerik sayfalarındaki diller arası bağlantıları günceller.

Yürütme süresi güncelleme miktarına bağlıdır, genellikle bir dakikadan azdır ve güncelleme olmadığında yaklaşık 30 saniyedir.

Sayfa dili

update-page-language.py betiği, başlığa göre her sayfanın dilini belirler (bkz. Help:i18n#Page titles) ve viki veritabanında dil kodunu ayarlar. Bu, MediaWiki'nin $wgPageLanguageUseDB ayarı ile mümkündür [3].

Bağlantı kontrolü

  • extlink-checker.py harici bağlantıların durumunu kontrol etmeye çalışır ve kesinlikle kırık olanlar Template:Dead link ile işaretlenir. Temel olarak JavaScript gerektiren siteler ve kesin olmayan bir HTTP durum kodu döndüren sunucular nedeniyle birçok bağlantı bu araç tarafından kontrol edilmeden geçer.
  • url-replace.py harici bağlantılarda, URL'leri HTTP'den HTTPS'ye güncellemek veya wiki.archlinux.org adresine olan harici bağlantıları dahili bağlantılarla değiştirmek gibi çeşitli değiştirmeler gerçekleştirir.
  • link-checker.py dahili bağlantılarda, kılavuz (man) sayfalarına olan bağlantılarda ve harici bağlantılarda (url-replace.py ile aynı kodu kullanarak) çeşitli kontroller ve değiştirmeler gerçekleştirir.
  • mark-archived-links.py ArchWiki:Archive adresine çıkan dahili bağlantıları Template:Archived page ile işaretler.