Pull to refresh

Собственная подборка новостей. Новый релиз, новые возможности

Reading time3 min
Views612
В предыдущем топике Вы меня просили добавить некоторые возможности в программу, поэтому перейду сразу
к новым возможностям:


  • Поддержка rss и atom потоков (Теперь можно подписаться на свои общие записи в Google Reader);
  • В качестве источника может быть указана обычная html страница (Теперь можно собрать понравившиемя Вам материалы с разных ресурсов и оформить их в книжку);
  • Поддержка печати в fb2 формат (Пока что только текст, но в следующем релизе обязательно будет поддержка картинок, предпросмотр печати для fb2 также хромает);
  • Планировщик загрузки обновлений (По умолчанию выключен, настройки при перезапуске в этом релизе не сохраняются);
  • В шаблонах парсера страниц появилось новое поле clear.tags (Позволяет удалить некоторые ненужные Вам теги из содержимого, поддерживает Perl-like регулярные выражения, которые Вы можете разделить между собой символом ;);
  • Импорт ссылок источников из txt файла (Новая строка — новая ссылка, а пригодится для тех, кто хочет создавать свои книжки);
  • Исправил несколько ошибок с получением содержимого страниц.

В дальнеших планах оптимизация работы приложения (сейчас при большом количестве источников очень долгая загрузка и печать), исправление ошибок, улучшение usability, локализация.

Добавлять новый функционал в следующий релиз я не планирую
Скачать можно отсюда, есть сборка для Windows и Linux. Текущая версия 1.1.

Все как обычно бесплатно и с открытыми исходниками, но, если Вы хотите поблагодарить меня, то не откажусь от
  • помощи в тестировании и отправки репортов с багами или сюда в комментарии, или (что гораздо лучше) в баг-трекер проекта;
  • оригинальных иконок и splash screen, выдержанных в одном стиле;
  • помощи в локализации приложения (интересующимся я позже сообщу отдельно и выдам тестовую версию);
  • помощи в написании документации и help'а, а также их дальнейшей локализации;
  • сборки пакетов для дистрибутивов Linux и installer'а для Windows;
  • скромных donationst;)


Upd. 1 Если у Вас возникла проблема с запуском билда под линукс, то скорее всего у Вас установлены устаревшие библиотеки Qt.
Ошибка при запуске: Segmentation fault.
Вы можете обновить библиотеки скачав qt-sdk и прописав путь к qt/lib переменной окружения LD_LIBRARY_PATH
или добавив репозиторий со свежими пакетами:
например для Ubuntu 9.10 выполнив sudo add-apt-repository ppa:bausparfuchs/qt4.6-release (если у Вас другая версия Ubuntu, то пройдите по ссылке).


Upd. 2 Пример добавления собственных правил для парсинга страниц. (по просьбе пользователя myther).
Допустим, мы хотим читать сообщения с форума forums.goha.ru.
В папке page-templates создаем новый файл forums-goha.properties (Название может быть любое, важно только расширение файла).
Добавляем первое поле в файл
rss.host=forums.goha.ru (rss.host — адрес сайта)
Далее открываем любую ветку форума, для которой мы хотим распознавать содержимое. Например, forums.goha.ru/showthread.php?t=388919.
В браузере выбираем, просмотреть исходники страницы.
Далее находим теги между, которыми расположен интересующий нас контент, теги желательно должны быть уникальные. В нашем случае все содержимое находится между <div id=«posts»> и </div>, внутри которых также есть несколько вложенных тегов div, количество которых мы не можем точно сказать, поэтому такой шаблон будет некоректным. Но зато сразу после закрытия div'а с содержимым открывается новый уникальный тег, которым мы и воспользуемся <div id=«lastpost»>. Таким образом content.pattern будет выглядить у нас следующим образом
content.pattern=<div id=\«posts\»>(.*)<div id=\«lastpost\»>
Символом \ мы экранируем двойные кавычки, а комбинация (.*) означает любой символ в любом количестве.
В итоге парсер заберет содержимое между указанными тегами, включая их самих, что не есть совсем хорошо, так как последний тег открывающийся и его надо удалить. Что сделать очень просто, просто добавим в файл эту строчку
clear.tags=<div id=\«lastpost\»>
Если удалить тегов нужно больше, чем один, то их можно перечислить через точку с запятой, например
clear.tags=<div id=\«lastpost\»>;<a id=\«lastpost\»>;<b id=\«lastpost\»>
Последнее поле
clear.html может принимать только два значения (true или false) и означает включение/выключение удаления всех html тегов в тексте. Пока что мы попробуем
clear.html=false
То есть не будем удалять теги в тексте.

Таким образом получаем файл со следующим содержимым:
rss.host=forums.goha.ru
content.pattern=<div id=\"posts\">(.*)<div id=\"lastpost\">
clear.tags=<div id=\"lastpost\">
clear.html=false


Tags:
Hubs:
Total votes 10: ↑5 and ↓50
Comments19

Articles