Timothy J Warren
a5dd9f0650
* Anime List Item: * Creation * Updating * Retreiving * Deletion * Manga List Item: * Creation * Updating * Retreiving * Deletion * Anime detail page * Manga detail page |
||
---|---|---|
app | ||
build | ||
migrations | ||
public | ||
src | ||
tests | ||
.editorconfig | ||
.gitignore | ||
.gitlab-ci.yml | ||
.htaccess | ||
.travis.yml | ||
CHANGELOG.md | ||
composer.json | ||
console | ||
humbug.json.dist | ||
index.php | ||
phinx.yml | ||
phpdoc.dist.xml | ||
phpunit.xml | ||
README.md | ||
RoboFile.php |
Hummingbird Anime Client
A self-hosted client that allows custom formatting of data from the hummingbird api
Features
-
Anime List views (Each with list and cover views):
- Watching
- Plan to Watch
- On Hold
- Dropped
- Completed
- Combined View
-
Manga List views (Each with list and cover views):
- Reading
- Plan to Read
- On Hold
- Dropped
- Completed
- Combined View
-
Anime collection view (segmented by media type):
- Cover Images
- Table List
Requirements
- PHP 5.5+
- PDO SQLite or PDO PostgreSQL (For collection tab)
- GD
- Redis and PHP Redis extension (optional, for caching)
Installation
- Install via composer:
composer create-project timw4mail/hummingbird-anime-client
or
-
Install via git, then install dependencies via composer:
composer install
-
Duplicate
app/config/*.toml.example
files asapp/config/*.toml
-
Configure settings in
app/config/config.toml
to your liking -
Create the following directories if they don't exist, and make sure they are world writable
- public/js/cache
- public/images/manga
- public/images/anime
-
Make sure the
console
script is executable -
To batch-create image thumbnails, run
console cache-images
.
Server Setup
Caching
To setup API caching, choose a caching method:
-
Database
- Follow the instructions for the Anime Collection setup below.
- Set
cache_driver
inapp/config/config.toml
to 'SQLDriver'
-
Redis
- Copy
app/redis.toml.example
toapp/redis.toml
, and edit to match your setup. - Set
cache_driver
inapp/config/config.toml
to 'RedisDriver'
- Copy
nginx
Basic nginx setup
server {
location / {
try_files $uri $uri/ /index.php$uri?$args;
}
location ~ ^(.+\.php)($|/) {
fastcgi_split_path_info ^(.+\.php)(.*)$;
fastcgi_index index.php;
}
location ^~ /vendor {
deny all;
}
}
Apache
Make sure to have mod_rewrite
and AllowOverride All
enabled in order to take
advantage of the included .htaccess
file. If you don't wish to use an .htaccess
file,
include the contents of the .htaccess
file in your Apache configuration.
Anime Collection Additional Installation
- Run
php /vendor/bin/phinx migrate -e development
to create the database tables - For importing anime:
- Login
- Use the form to select your media
- Save & Repeat as needed
- For bulk importing anime:
- Find the anime you are looking for on the hummingbird search api page:
https://hummingbird.me/api/v1/search/anime?query=
- Create an
import.json
file in the root of the app, with an array of objects from the search page that you want to import - Go to the anime collection tab, and the import will be run
- Find the anime you are looking for on the hummingbird search api page: