İçeriğe atla

Kullanıcı:İmmoBot/Modüller/vikiproje

Vikipedi, özgür ansiklopedi

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;
}