Kullanıcı:İmmoBot/Modüller/vikiproje
Görünüm
Bu modül deneme aşamsındadır. Tam otomatik kullanmayınız.
//AutoWikiBrowser - Tartışma ve Vikiproje Şablonu Düzenleme Modülü V1.0
//Yazar: İmmortalance
public string ProcessArticle(string ArticleText, string ArticleTitle, int wikiNamespace, out string Summary, out bool Skip) {
Summary = "";
Skip = false;
// Tartışma ve Vikiproje şablonlarını kontrol eden regex
Regex tartismaKontrol = new Regex(@"(\{\{tartışma.*?\}\})", RegexOptions.Singleline);
Regex vikiprojeKontrol = new Regex(@"\{\{Vikiproje.*?\}\}", RegexOptions.Singleline);
// Vikiproje şablonlarını yakalayalım
MatchCollection vikiprojeler = vikiprojeKontrol.Matches(ArticleText);
string vikiprojeBolumu = "";
HashSet<string> vikiprojeSet = new HashSet<string>(); // Tekil Vikiproje şablonlarını saklamak için
// Vikiproje şablonlarını bir araya getir
foreach (Match match in vikiprojeler)
{
// Eğer şablon daha önce eklenmemişse, ekle
if (!vikiprojeSet.Contains(match.Value))
{
vikiprojeBolumu += match.Value + "\n";
vikiprojeSet.Add(match.Value); // Ekle
}
}
// Eğer tartışma şablonu varsa
if (tartismaKontrol.IsMatch(ArticleText))
{
// Eğer Vikiproje şablonları varsa
if (vikiprojeBolumu.Trim().Length > 0)
{
// Vikiproje şablonlarını orijinal metinden kaldır
ArticleText = vikiprojeKontrol.Replace(ArticleText, "");
// Tartışma şablonunu düzenleyip içine Vikiproje şablonlarını ekle
ArticleText = tartismaKontrol.Replace(ArticleText, "{{tartışma\n| proje =\n" + vikiprojeBolumu + "}}");
Summary += "Tartışma şablonu içine Vikiproje şablonları eklendi ve orijinal metinden kaldırıldı.";
}
else
{
Summary += "Vikiproje şablonu bulunamadı.";
}
}
else if (vikiprojeKontrol.IsMatch(ArticleText))
{
// Eğer tartışma şablonu yoksa ama Vikiproje şablonları varsa, tartışma şablonunu ekle
ArticleText = "{{tartışma\n| proje =\n" + vikiprojeBolumu + "}}\n" + ArticleText;
Summary += "Tartışma şablonu eklendi ve Vikiproje şablonları dahil edildi.";
}
return ArticleText;
}