GithubHelp home page GithubHelp logo

ryonkn / mastodon.swift Goto Github PK

View Code? Open in Web Editor NEW

This project forked from swiftodon/mastodon.swift

0.0 2.0 0.0 414 KB

A Swift / RxSwift / Moya / Gloss based API client for Mastodon instances.

Makefile 0.25% Objective-C 2.25% Swift 97.50%

mastodon.swift's Introduction

MastodonClient

CI Status License Platform

Howto

This client is designed to connect to any Mastodon instance and interact with it. As of the time of writing this (08th April 2017) the Moya Providers are feature complete with tootsuite/mastodon.

MastodonClient contains a few convenience methods to create Apps (OAuth Clients) and interact with the API but you should use the Moya Targets directly for the time being (as those are feature complete).

Do not forget to setup you Mastodon base url by setting it in the Settings singleton before trying to use any of the APIs:

Settings.shared.baseURL = NSURL(string: "https://mastodon.social")!

Given you've got an OAuth Client

let app = App(clientId: "", clientSecret: "")

Logging in is as easy as this then:

RxMoyaProvider<Mastodon.OAuth>()
.request(.authenticate(app, username, password))
.mapObject(type: AccessToken.self)
.subscribe { even in  }

Provided login was successful and you've retrieved an AccessToken you're free to use all the other APIs, e.g. to retrieve your home timeline:

RxMoyaProvider<Mastodon.Timelines>(plugins: [AccessTokenPlugin(token: accessToken.token)])
.request(.home)
.mapArray(type: Status.self)
.subscribe { even in  }

Multitenancy

In order to support multitenancy, it is possible to use the endpoint operator to inject the base URL of a server.

Example:

let app = App(clientId: "", clientSecret: "")
let url = "https://mastodon.cloud"

RxMoyaProvider<Mastodon.OAuth>(endpointClosure: /url)
.request(.authenticate(app, username, password))
.mapObject(type: AccessToken.self)
.subscribe { even in  }

Please note that the endpoint provided by teh operator overrides the URL stored in the settings singleton.

Requirements

  • Xcode 8.3 / Swift 3.1
  • Alamofire
  • Moya
  • Gloss
  • RxSwift

Installation

Using Carthage

github "Swiftodon/Mastodon.swift"

Authors

License

MastodonClient is available under the MIT license. See the LICENSE file for more info.

mastodon.swift's People

Contributors

kimar avatar siuying avatar t-bonk avatar thbonk avatar

Watchers

 avatar  avatar

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.