A Kotlin library for reading RSS 2.0 and ATOM 1.0 syndication feeds.
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
gradle
sample
syndication-feed
syndication-kotlin-coroutines-adapter
syndication-rxjava2-adapter
.gitignore
.travis.yml
CHANGELOG.md
CONTRIBUTING.md
LICENSE
README.md
RELEASING.md
build.gradle
gradle.properties
gradlew
gradlew.bat
settings.gradle

README.md

Build Status

Syndication feed

A Kotlin library for reading RSS 2.0 and ATOM 1.0 syndication feeds.

Usage

You're willing to consume ATOM 1.0 or RSS 2.0 feed? Start by creating and interface

interface RssReader {

  fun readRss(): RssFeed

  fun readAtom(): AtomFeed
}

then let Syndication class generates an implementation of that interface RssReader:

val reader = syndicationReader.create(RssReader::class.java)
val rssFeed = reader.readRss() // this is synchronous
val atomFeed = reader.readAtom() // this is synchronous

each call from the created RssReader will make an HTTP request and return the expected syndication feed.

By default only RssFeed and AtomFeed are accepted as return type.

If you would like to do things asynchronously then take a look to existing adapters in this repo.

  • kotlin-coroutines-adapter for example let you return Deferred<RssFeed> or Deferred<AtomFeed>.
  • rxjava2-adapter let you return RxJava 2.x types (Flowable, Maybe, Single).

Syndication specifications

Download

Download the latest JAR or grab via Gradle:

implementation 'com.ouattararomuald:syndication:0.1.0-rc.1'

or Maven:

<dependency>
  <groupId>com.ouattararomuald</groupId>
  <artifactId>syndication</artifactId>
  <version>0.1.0-rc.1</version>
</dependency>

Snapshots of the development version are available in Sonatype's snapshots repository.

Contributing

Contributions you say? Yes please!

Bug report?

If at all possible, please attach a minimal sample project or code which reproduces the bug. Screenshots are also a huge help if the problem is visual.

Send a pull request!

If you're fixing a bug, please add a failing test or code that can reproduce the issue.

License

Copyright 2018 Ouattara Gninlikpoho Romuald

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

  http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.