[Из песочницы] Orb. DIY-cервер новостей

Привет всем! Перед закрытием Google Reader в 2013-м году захотелось написать что-то свое на эту тему. Чтобы оно собирало новости из RSS и было видно, что читал, а что нет. Плюс было желание поработать с GAE и Angular. Позднее, после нескольких разочарований в собственных CSS cross-browser скиллах, к этой компании присоединился еще и IonicFramework. То, что в итоге получилось, на мой взгляд, довольно удобно, используется мной ежедневно и может быть кому-то тоже пригодится.

Приглашаю под кат всех желающих самостоятельно собрать и запустить на Гугловых серверах свой личный агрегатор новостей.

ИнструментыJava7 JDK. На всякий случай ссылка, где взять инсталлятор; Пустое приложение на GAE аккакунте. Как сделать описано здесь; Git. Думаю, любой. Помимо скачивания исходников, git.exe понадобится еще и при сборке. Я использую тот, что приезжает с инсталлятором GitHub for Windows; GAE SDK for Java. Взять его можно здесь. Распаковать в любой каталог, и полный путь к этому каталогу прописать в переменную окружения GAE_HOME; Ant. Cкачать можно тут. Как устанавливать написано тут. Детальки Качаем исходники: git clone -b latest https://github.com/igors48/nmdService.git Перед сборкой нужно подстроить индивидуальные параметры сборки вашего экземпляра сервера. Для этого в корневой директории проекта копируем файл build.properties.template, копию называем build.properties.local. Открываем в любом текстовом редакторе и прописываем значения для таких параметров:

email — GMail адрес соответствующий аккаунту с которого вы создавали пустое GAE приложение; application.identifier — идентификатор вашего GAE приложения; git.executable — путь к git.exe или как он называется в вашем случае. Здесь нужно обратить внимание на слеши. Они должны быть такими — »/» Остальные параметры пока можно оставить как есть.Сохраняем, закрываем.

Сборка и запуск Для проверки попробуем поднять сервер локально. Для этого запускаем dev_server.bat. Если все пройдет успешно, то сервер должен отвечать по адресу localhost:8080. После проверки локальный сервер нужно остановить с помощью Сtrl-C. Если просто закрыть окно, то сервер останется висеть на 8080-м порту молчаливым упреком и убить его можно будет только из менеждера процессов. По крайней мере, под Windows это так.Теперь финальный шаг. «Ради этого все и писалось ©». Деплоим на GAE. Для этого выполняем ant upload. Перед деплоем Ant спросит пароль к GMail аккаунту. Если деплой завис, что изредка бывает, то его нужно остановить с помощью Ctrl-C и выполнить ant rollback. После этого можно опять пробовать ant upload.

Если все прошло нормально, ваш личный сервер новостей будет доступен по адресу %application.identifier%.appspot.com. Админка, с логами, графиками и базой, по адресу appengine.google.com. Желаю приятного использования!

Бонус Помимо РСС можно тянуть новости из твиттера. Для этого нужен твиттер аккаунт и ключи — consumer key и consumer secret. Получить их можно здесь.Полученные ключи нужно прописать в build.properties.local в переменные twitter.apiKey и twitter.apiSecret, соответственно. После этого сервер нужно передеплоить.

Заключение Скриншоты: Список категорий:

image

Список фидов в категории:

image

Список новостей в фиде:

image

Отображение анонса новости:

image

Страница проекта на GitHub здесь.

Буду рад замечаниям, пожеланиям, вопросам и критике. У меня еще есть ряд идей для воплощения в рамках этого проекта, но, возможно, кто-то подскажет что-то еще.

Спасибо за внимание.

© Habrahabr.ru