Giter Site home page Giter Site logo

hydrus-react's Introduction

Hydrus-react

Hydrus-react is a web app written in React/TypeScript using hydrus API. The goal is to give a viewing experience similiar to booru/pixiv where using tags and similiar/related files takes you on a journey through your library. Inspired by hydrus-web by floogulinc

Features

  • Browsing your files in booru style
  • Simple comics support (currently just a list of first pages of all your comics)
  • Support for OR searching
  • Image Grouping in searches
  • Related files functionality (quick look at other files inside same image group)
  • Configurable namespaces for comics and grouping
  • Desktop and mobile support

Requirements

Running the app (online version)

There is an online version available through the link https://hydrus-react.vercel.app It should be always up to date with current git version.

Running the app (development mode)

  1. Clone repository
  2. run npm install
  3. run npm start
  4. connect to http://localhost:3000

Running the app (production mode)

  1. Clone repository
  2. run npm install
  3. run npm install -g serve (might require admin rights depending on system)
  4. run npm run build
  5. run serve -s build
  6. connect to http://localhost:3000

While slightly harder to get running production mode might get better performance.

Configuration

In the settings page you have to point to your client API address (by default http://127.0.0.1:45869 ) add your access key (you can copy it from under services/review services/client api).

Transcode support

Hydrus-react supports usage of smaller file transcodes. It's done using separate local file service and a namespace. It allows users to have smaller "web friendly" versions of large videos and images, which helps with page load speed and responsivness. Whenever a large zoom happens transcoded version will be replaced by original.

Automated tool

Automated script is available under http://github.com/zaykok/hydrus-transcode. Check for more details.

Manual way - Guideline

Below is older explanation of what transcoding does and how to set it up manually. I recommend trying out the script above.

How to use

Information below is more of a recommendation on how to use this feature, based on my own usage. The way it actually works allows for more specific/creative ways of replacing what file gets loaded and how. This is just a basic use case I came up with.

Hydrus

  1. Inside hydrus client you have to create a separate 'local file domain' under "services/manage services/add/local file domain".
  2. Default name for that file domain is "web-transcodes" although you can use whatever and change the name in hydrus-react.

Preparing files

  1. Export files you want to have transcoded versions making sure they keep their hydrus hash as a filename. This happens by default when drag and dropping them from hydrus window.
  2. Use image converter of your choice to create a smaller version of a file. Personally I use ImageMagick converting image files to WebP and gifs (especially large ones >100MB) using Google's gif2webp
  3. Make sure that gifs are encoded into webp not webm format as then the file type mismatch will prevent displaying of them in hydrus-react
  4. This should give you output that keeps the file name (hash) with changed file extension.

Re-importing to hydrus

  1. Import transcoded files making sure that file domain is set as "web-transcodes" (file import option/default options > custom file import option/import destination > 'web-transcodes')
  2. Add tags before import
  3. add filename? [namespace] > set wanted namespace, default "original" After import file should have 1 tag which is it's original file hash

hydrus-react

Hydrus react can be configured to use user defined local file domain inside settings page. You can configure file domain name, namespace of original filename hash, and whether or not even use this function altogether.

If everything was done correctly next time you load given image in hydrus-react you should get transcoded image instead of original one.

hydrus-react's People

Contributors

zaykok avatar

Watchers

 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.