Pull to refresh

Orb. DIY-cервер новостей

Reading time 2 min
Views 11K
Привет всем!

Перед закрытием 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 update. Перед деплоем Ant спросит пароль к GMail аккаунту. Если деплой завис, что изредка бывает, то его нужно остановить с помощью Ctrl-C и выполнить ant rollback. После этого можно опять пробовать ant update.

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

Бонус


Помимо РСС можно тянуть новости из твиттера. Для этого нужен твиттер аккаунт и ключи — consumer key и consumer secret. Получить их можно здесь.

Полученные ключи нужно прописать в build.properties.local в переменные twitter.apiKey и twitter.apiSecret, соответственно. После этого сервер нужно передеплоить.

Заключение


Скриншоты:

Список категорий:

image

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

image

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

image

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

image

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

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

Спасибо за внимание.
Tags:
Hubs:
+11
Comments 6
Comments Comments 6

Articles