Участник:VasilievVV/WikiAccess

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску

WikiAccess — библиотека для доступа к Вики-интерфейсу. На данной странице находится её проект.

Концепция[править | править код]

При проектировании этой библиотеки применятся принциы KISS, чистого кода, а также принцип «каждый объект должен быть привязан к сущности, а не к интерфейсу».

Все объекты создаются с ссылкой на объект Wiki.

Недостатки[править | править код]

  1. Невозможно паралельно работать с двух аккаунтов
  2. В IE7 при переключении страниц раздается звук
  3. Требуется кэш для всевозможных сообщений:
    1. Системные сообщения (файл .messages)
    2. Пространства имён (файл .namespaces)
    3. Группы пользователей

Статус[править | править код]

На 16 мая 2007 эта библиотека уже имеет много функциональности (однако я должен признать, что большинство её является ненужной, и работает только с правами стюардов и девелоперов ;)).

Объекты[править | править код]

Все объекты располагаются в пространстве имён Wiki.Access.

Wiki.Access.Wiki[править | править код]

Этот класс предоставляет базовый доступ к Вики.

Примеры кода[править | править код]

Простой скрипт автозамен[править | править код]

            Wiki wiki = new Wiki("http://ru.wikipedia.org/w", @"C:\WikiAccess_MessageCache");
            foreach (string str in PageList.FromCategory(wiki, "Название категории", true).Pages)
            {
                Page pg = new Page(wiki, str);
                string oldtext = pg.Text; string newtext = oldtext;
                newtext = newtext
                    .Replace("[[Category:", "[[Категория:")
                    .Replace("[[Image:", "[[Изображение:");
                if (oldtext != newtext)
                {
                    pg.SetText(newtext, "Русификация", true);
                    Thread.Sleep(new TimeSpan(0, 0, 1));
                }
            }