feedread

Version, currently master branch1 version
  • master branchlatestJan 21, 2023

github.com/kereal/feedread

RSS and atom feed reader made with crystal and vue.js

8 stars
0 dependents
License: MIT

Installation

# Add this to your shard.yml
dependencies:
  feedread:
    github: kereal/feedread
    branch: master

master is a branch, not a release, so this tracks it rather than pinning a version.

Then run:

shards install

shard.yml

Crystal
1.5.0
License
MIT
Author
kirill svetlov <kereal@gmail.com>
Targets
  • web from src/web.cr
  • grab from src/grab.cr

Dependencies

Runtime Dependencies

  • kemal*github: kemalcr/kemal
  • granite*github: amberframework/granite
  • micrate*github: juanedi/micrate
  • sqlite3*github: crystal-lang/crystal-sqlite3
  • spec-kemal*github: kemalcr/spec-kemal, branch: master

README

# Проект, который я сделал для прикола

Это читалка новостных лент (rss и atom). Я использую ее, чтобы узнать что нового запостили на Хабре, VC, rutracker, и т.д. Моей целью было создать простой интерфейс, который позволил бы быстро с клавиатуры просмотреть подписки, удалить прочитанное, а интересное отложить в избранное.

![big-light](https://user-images.githubusercontent.com/2874327/183303390-9437c8d6-9976-4938-82f9-c9b87a8225fa.png)

Навигация клавишами «↑» и «↓», удалить — «del», добавить в избранное — «f», забанить категорию — «b». Когда записи кончаются, загружаются следующие 10.

Серверная часть сделана на Crystal. Я выбрал этот язык, потому что хотелось использовать мой любимый Ruby-подобный синтаксис и не хотелось держать интерпретатор с окружением ради такой мелочи. В итоге получилась пара бинарников без внешних зависимостей.

Первый запускается по крону, скачивает ленты, парсит данные и складывает их в базу данных sqlite.

Второй реализует web-сервер, который отдает статику и данные через REST API.

Клиентская часть — это приложение на Vue.js всего с парой компонентов.

Как полагается, есть темная тема оформления.

![dark-and-light](https://user-images.githubusercontent.com/2874327/183303429-3e359cf5-1adb-412b-a74c-d0ace8d33ecb.png)

Все вместе собирается в образ Docker на основе Alpine Linux размером всего 19Мб. У меня он работает на локальной машине.

## Установка и запуск

    docker pull kereal/feedread
    docker run -idt --name feedread -p 3008:80 kereal/feedread
    open http://localhost:3008

### Сборка из исходников

    git clone https://github.com/kereal/feedread
    cd feedread
    make

### Сборка образа Docker и запуск контейнера

    git clone https://github.com/kereal/feedread
    cd feedread
    make docker

Я увлекаюсь программированием для web, люблю всякие Linux-серверы и открыт для общения и предложений в этой сфере. По всем вопросам пишите на kereal@gmail.com