DocTheEbook: GoodNews ...
Поиск:
Наблюдать | Версия для печати | Вход:   Пароль:  

Документация к программе Good News (v1.2.0.0).


Оглавление документа


1. Основная информация

1.1. Основная информация о программе


Good News простая и удобная в обращении программа. Позволяет подписываться на новостные рассылки (rss) и сохранять получаемые новости в виде файла – электронной газеты. В зависимости от формата результирующего файла эти газеты могут затем быть прочитаны с помощью целого ряда устройств: ПК, КПК, мобильных телефонов, устройств для чтения электронных книг (в частности LBook) и т.п..

1.2. Системные требования для установки и использования


Системные требования:.Net Framework 2.0 или выше
2 MB свободного места на жестком диске
Поддерживаемые операционные системы: Windows 2000 Service Pack 3; Windows 98; Windows 98 Second Edition; Windows ME; Windows Server 2003; Windows XP Service Pack 2

1.3. Загрузка и установка программы


Последнюю версию программы можно взять здесь: http://www.the-ebook.org/rus?dl_id=28 (примечание: приложение распространяется бесплатно)


  1. запускаем GoodNews.msi и следуем процедуре установки,
  2. если в системе не установлен .net framework 2.0, то качаем его и ставим например отсюда: http://www.microsoft.com/downloads/details.aspx?FamilyID=0856EACB-4362–4B0D-8EDD-AAB15C5E04F5&displaylang=en


2. Функции и возможности программы

2.1. Внешний вид, первое знакомство


На иллюстрации представлено основное окно программы. Условно его можно разделить на три части:

  • Панель слева.

С ее помощью задается структура газеты – настраиваются разделы. Разделы могут быть вложенными, количество уровней вложенности не ограничено.
Здесь же на панеле расположена кнопка «загрузить газету».

  • Панель справа.

Служит для настройки rss-подписок выбраного раздела газеты.

  • Панель снизу.

Содержит две вкладки – Downloads и Logger. Вкладка Downloads служит для работы с полученными файлами газет. Отсюда файл газеты можно открывать, копировать, удалять и т.п. На вкладке Logger можно посмотреть лог работы программы.
(примечание: в результирующий файл пишутся только отмеченные разделы и подписки.)

2.2. Функции программы

2.2.1. Электронные газеты

Основная функция программы – получение электронных газет.
Газета может подгружаться автоматически каждый день в указанное время (задается в настройках программы: Tools-> Options-> Downloads-> Download on Time), при этом скачиваются только последние новости. Есть возможность записать все новости не зависимо от даты их публикации, эта функция вызывается вручную через главное окно приложения.

2.2.2. Подключаемые конверторы

Помимо базового формата fb2, программа позволяет сохранять электронные газеты в других форматах. Это обеспечивается системой плагинов, которые могут легко подключаться к приложению. Для того чтоб приложение могло использовать дополнительный конвертор, необходимо поместить библиотеку конвертора в папку с программой. Доступные конверторы отображаются в меню программы Tools.


Для создания своего конвертора Вы должны имплементировать интерфейс IСonvertorPlugin.

public interface IConvertorPlugin
{
      String Name { get; }
      String FileExtension { get; }
 
    Byte[] Convert(Byte[] anInput);        
}

Где,
Name: Имя плагина. Отображается в меню программы. Имя плагина должно быть уникальным.
FileExtension: Расширение файла – результата конвертирования. Например если плагин позволяет конвертировать FB2 в PDF, то FileExtension должен быть “.PDF”
Convert: Основной метод выполняющий конвертацию. Он принимает массив байт, конвертирует в необходимый формат и возвращает результат опять же как массив байт.
Как видите, интерфейс предельно прост. Плагины можно писать на чем угодно (C#, Delphi, C++), главное чтобы в результате была получена скомпилированая dll’ка.
А вот пример реализации интерфейса на C# – класс преобразующий fb2 в txt:
namespace SampleConvertorPlugin
{
    public class SampleConvertorPlugin2 : IConvertorPlugin
    {
        string IConvertorPlugin.Name
        {
            get { return "FB2->Text"; }
        }
 
        string IConvertorPlugin.FileExtension
        {
            get { return ".txt"; }
        }
 
        /// <summary>
        /// Coverts .fb2 document into .txt document.
        /// </summary>
        /// <param name="fb2Data">Content of .fb2 document as byte array.</param>
        /// <returns>Content of .txt document as byte array.</returns>
        Byte[] IConvertorPlugin.Convert(Byte[] fb2Data)
        {
            String lContent = Encoding.UTF8.GetString(fb2Data);
 
            String lResult;
            XmlDocument lDocument = new XmlDocument();
            lDocument.LoadXml(lContent);
 
            // Do some transformation here
            StringBuilder sb = new StringBuilder();
 
            // Add content
            String s = lDocument.SelectSingleNode("FictionBook/description/title-info/book-title").InnerText;
            sb.AppendLine(s);
            sb.AppendLine();
 
            XmlNodeList lSections = lDocument.SelectNodes("FictionBook/body/section");
            if (lSections == null) return null;
            foreach (XmlNode lItem in lSections)
                WriteSection(lItem, sb);
 
            lResult = sb.ToString();
 
            return Encoding.UTF8.GetBytes(lResult);
        }
 
        private void WriteSection(XmlNode aNode, StringBuilder aStringBuilder)
        {
            foreach (XmlNode lNode in aNode.ChildNodes)
            {
                switch (lNode.Name)
                {
                    case "title":
                        aStringBuilder.AppendLine(lNode.InnerText);
                        break;
                    case "section":
                        fLevel++;
                        WriteSection(lNode, aStringBuilder);
                        break;
                    case "epigraph":
                        aStringBuilder.AppendLine(lNode.InnerText);
                        break;
                    case "subtitle":
                        aStringBuilder.AppendLine(lNode.InnerText);
                        break;
                    case "p":
                        aStringBuilder.AppendLine(lNode.InnerText);
                        break;
                }
            }
        }
    }
}

2.2.3. Автоматический запуск скриптов

В окне настройки приложения есть возможность указать путь к файлу скрипта (.bat, .js, ...), который будет запускаться каждый раз после загрузки и постконвертации файла электронной газеты. Это, помимо всего прочего, дает еще один вариант подключения сторонних конвертеров:

(Строка "{0}" будет заменена на полное имя файла закачанной газеты.)

2.3. Совместимой с прошлыми верcиями

Если у вас уже установлена предыдущая версия Good News (в те времена она называлась FBSync), то спешу сообщить, что ни смотря на то, что формат файла настроек в новой версии здорово поменялся, вы все-равно можете импортировать старые настройки. У Вас в системе они обычно лежат здесь: C:\Documents and Settings\[USER NAME]]\Application Data\Red Weaver\settings.xml.


3. Дополнительная помощь

3.1. Часто задаваемые вопросы


Можно ли сделать так, чтобы в газету записывалась вся статья целиком (ссылка на статью лежит в поле link полученной новости) а не только заголовок статьи и ее краткое описание (поля title и description соответственно)?
Cейчас рассматриваются различные варианты решения этого вопроса. С радостью обсудим любые идеи связанные с возможной реализацией – пишите.


Будет ли приложение работать под Mono?
После реализации основной функциональности приложения мы попробуем компилировать программу под MONO.


Кто разработчик программы и как с ним(и) можно связаться?
Ткач Евгений – tkach.john[собачка]gmail.com
Карпенко Александр – alex.v.karpenko[собачка]gmail.com


Как я могу посодействовать дальнейшему развитию проекта?
Если Вы хотите профинансировать появление в новых версиях программы того или иного функционала, или Вам просто понравилась программа и Вы хотите поддержать энтузиазм разработчиков, перечисляйте пожалуйста удобную для Вас сумму на кошелек WebMoney Z750233133551.


 
Много файлов (3). [Показать файлы/форму]

Яндекс.Метрика