Giter VIP home page Giter VIP logo

wykop4j's Introduction

What is Wykop4j?

Wykop4j is a simple Wykop SDK for Java. Inspired by wykop-sdk-reborn. It's just a PoC version. The API might change in the future. If you have found a bug or have an idea how to improve that project just create an issue, I will do my best to help you ;)

If you'd like to read more there's also a wiki written in Polish.

Getting started

Dependencies

Check Releases for the latest available version and add those lines to your:

  • pom.xml
<dependency>
    <groupId>io.github.benzwreck</groupId>
    <artifactId>wykop4j</artifactId>
    <version>x.y.z</version>
</dependency>
  • gradle.build
implementation group: 'io.github.benzwreck', name: 'wykop4j', version: 'x.y.z'

Creating WykopClient

To create an instance of WykopClient you will need your ApplicationCredentials and optionally UserCredentials (keep in mind that some methods will not work if UserCredentials is not passed). How to get one? Check out this (Polish).

WykopClient wykop = new WykopClientBuilder()
    .applicationCredentials(new ApplicationCredentials("appkey", "secret"))
    .userCredentials(new UserCredentials("login", "accountkey"))
    .build()

Using WykopClient

We start off with wykop.methodName() which returns some Chain<Something> and then we can execute our code synchronously with .execute() or asynchronously with .executeAsync().

Optional<Entry> entry = wykop.getEntry(entryId).execute();

CompletableFuture<Optional<Entry>> entry = wykop.getEntry(entryId).executeAsync();

List<Entry> entries = wykop.getEntriesStream().execute();

All methods that have been implemented so far are shown here (Polish only).

Plans for the future

  • Support async operations.
  • Implement missing API methods. (It's half done because I'm still getting AuthorizationException on Profile's methods ¯\_(ツ)_/¯ and I see no point in implementing Login methods)
  • Make API less Stringly typed (sometimes official documentation does not provide necessary data to ensure possible return type).
  • Add more configuration features.
  • Replace Okhttp with Java 11 Http Client.
  • Replace Jackson with own json mapping implementation.
  • Rewrite this project to Kotlin or create new one.

External dependencies

  • Http client: OkHttp 4.7.2
  • Json mapper: Jackson 2.12.1

wykop4j's People

Contributors

benzwreck avatar

Watchers

 avatar

wykop4j's Issues

Returning collections should be immutable.

Whenever class contains collection, its getter should return new collection.

public List<Entry> entries(){
    return entries;
}

->

public List<Entry> entries(){
    return List.of(entries);
}

Add 'as' method to client

Add as method to WykopClient.
WykopClient.as(someUser) -> wykopClient should use someUser credentials for the next request execution.
E.g. wykopClient.as(Anna).addEntry(entry).execute()

Consier having two Entry classes with and without list of comments

There is Entry class with Optional<List>. Only one method WykopClient::entry returns Optional which isn't empty. Therefore we have bunch of methods returning Optional::empty.
I guess we should split Entry class into two classes like SimpleEntry without list of comments and FullEntry with such.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.