Tachiyomi-Extensions/README.md

52 lines
3.1 KiB
Markdown
Raw Normal View History

2017-03-04 13:49:01 +00:00
[![Travis](https://img.shields.io/travis/inorichi/tachiyomi-extensions.svg)](https://travis-ci.org/inorichi/tachiyomi-extensions)
[![fdroid dev](https://img.shields.io/badge/stable-wiki-blue.svg)](//github.com/inorichi/tachiyomi/wiki/FDroid-for-dev-versions)
This repository contains the available extension catalogues for the [Tachiyomi](https://github.com/inorichi/tachiyomi) app.
2017-02-03 17:29:59 +00:00
# Usage
2017-02-03 17:29:59 +00:00
Extension sources are considered pre-release. They are installed and uninstalled like apps, in .apk format. The plan is to have a UI in the main app, that will enable installing and updating extensions. If you want to try them now regardless, you can use the [F-Droid repo for dev versions](//github.com/inorichi/tachiyomi/wiki/FDroid-for-dev-versions).
## Requests
Site requests here are meant as up-for-grabs, thus it's impossible to provide a time estimation for any of them. Furthermore, some sites are impossible to do, usually because of various technical reasons.
# Contributing
Before you start, please note that the ability to use following technologies is **required** and it's not possible for us to teach you any of them.
* Kotlin
* JSoup
* HTML
* CSS selectors
## Writing an extension
2017-02-03 17:29:59 +00:00
The easiest way to write and debug an extension is by directly hardcoding it in Tachiyomi's source code. Once it's working there, you have to clone this repository and create a new folder with a similar structure to the other catalogues. Then copy your catalogue implementation and make sure to change the package name if it was different in Tachiyomi. Finally, write the `build.gradle` file, which has the following structure:
```gradle
apply plugin: 'com.android.application'
apply plugin: 'kotlin-android'
ext {
appName = "Tachiyomi: My catalogue"
pkgNameSuffix = "lang.mycatalogue"
extClass = ".MyCatalogue"
extVersionCode = 1
extVersionSuffix = 1
libVersion = "1.0"
}
apply from: '../common.gradle'
```
* `appName` is the name of the Android application. By prefixing it with `Tachiyomi: `, it will be easier to locate with an Android package manager.
* `pkgNameSuffix` has to be unique, and it's added to `eu.kanade.tachiyomi.extension`. The language and the site should be enough. Remember your catalogue code implementation must be placed in this package.
* `extClass` points to the catalogue class. You can use a relative path starting with a dot (the package name is the base path). This is required for Tachiyomi to instantiate the catalogue.
* `extVersionCode` is the version code of the catalogue and should be increased with any change to the implementation.
* `extVersionSuffix` is the last part of the versioning.
* `libVersion` is the version of the [extensions library](https://github.com/inorichi/tachiyomi-extensions-lib)* used. When this value is changed, `extVersionSuffix` should be reset to `1`. With the example used above, the version of the catalogue would be `1.0.1`.
\* Note: this library only contains the method definitions so that the compiler can resolve them. The actual implementation is written in Tachiyomi.
2017-03-04 13:49:01 +00:00
When everything is done, you can create the apk in Android Studio with `Build > Build APK` or `Build > Generate Signed APK`.