Skip to content

djui/qcast

Repository files navigation

QCast - InfoQ presentation podcast

A podcast feed (audio & video) for InfoQ presentations.

Landing site

Installation

Either using Leiningen:

$ ./start.sh

or

$ lein run

Or using Java:

$ lein uberjar
$ java -jar qcast-standalone.jar

Usage

The Overview page can be reached at: remote or local.

The Feed can be reached at: remote feed or local feed.

Components

The application quite small and currently has just under 900 LoC currently uses HTTP-Kit as server instead of Ring, but there is not really reason for either choice.

For HTML scraping is done using Enlive and the XML feeds are produced using Hiccup.

For logging, Timbre is used; it's nice as it doesn't require XML or property files.

The data store can be a SQLite database for testing or PostgreSQL for production and hosting.

Design

                              :              :
                 +---------+  :              : +---------+
                 |  Feed   |  :              : |  InfoQ  |
                 +---------+  :              : +---------+
                      ^       :              :      ^
                      |       :              :      |
                      v       :              :      v
+----------+     +---------+  : +---------+  : +---------+    +---------+
|  Client  |<--->| Server  |<---|  Cache  |<---| Scraper |<---| Ticker  |
+----------+     +---------+  : +---------+  : +---------+    +---------+
                              :      ^       :
                              :      |       :
                              :      v       :
                              : +---------+  :
                              : |   DB    |  :
                              : +---------+  :
                              :              :

Credits

Thanks to InfoQ for their great service!

Contributors

Thanks to the following set of people that helped to find, debug, and fix bugs:

License

Copyright © 2013-2015 Uwe Dauernheim [email protected]

Distributed under the Eclipse Public License either version 1.0 or (at your option) any later version.