Git Product home page Git Product logo

hyve's People

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

hyve's Issues

Feature Request - Sort by date

Hi,
I was wondering if it were possible to be able to sort by date?
A lot of my files ID's aren't in order of oldest to newest, so I wanted to know if there was a way of sorting by the files modified date so it looks more like proper online booru's.

Also the random sort retains its order, even once other filters have been applied and you can't change the random order unless the server is restart. Is it possible to reshuffled the random order whilst in the web browser? Maybe even allow someone to manually change the seed?

local_tags_cache does not always exist

A user encountered the following error when syncing to hydrus client:

hyve-sync_1    | Error while trying to sync.
hyve-sync_1    |  SqliteError: no such table: hydrus_caches_db.local_tags_cache
hyve-sync_1    |     at fillNewTagsTable (/usr/src/app/services/sync-client/src/sync/index.js:244:11)
hyve-sync_1    |     at Object.run (/usr/src/app/services/sync-client/src/sync/index.js:37:3)
hyve-sync_1    |     at Object.<anonymous> (/usr/src/app/services/sync-client/bin/sync:94:10)
hyve-sync_1    |     at Module._compile (internal/modules/cjs/loader.js:1123:30)
hyve-sync_1    |     at Object.Module._extensions..js (internal/modules/cjs/loader.js:1143:10)
hyve-sync_1    |     at Module.load (internal/modules/cjs/loader.js:972:32)
hyve-sync_1    |     at Function.Module._load (internal/modules/cjs/loader.js:872:14)
hyve-sync_1    |     at Function.executeUserEntryPoint [as runMain] (internal/modules/run_main.js:71:12)
hyve-sync_1    |     at internal/main/run_main_module.js:17:47
hyve-sync_1    | time="2020-04-24T10:29:55Z" level=info msg="read crontab: .crontab"

I previously assumed that this table should always exist, but that is apparently not the case; maybe swapping the table for a different one that's guaranteed to exist might be sanest option.

Edit: After some initial investigation, the table not existing might be a bug in hydrus with specific upgrade scenarios.

Sync Issues (.sync-lock becomes permanent)

For a while now, it seems the process for syncing crashes. When this happens however, it results in the service becoming permanently locked, as .sync-lock is never removed.

A quick workaround would be to clear that file when the docker container is restarted. This would mean we could at least restart the container to bring it back into normal operation.

As to the cause, I don't know what that is. But here is the section of logs that I believe is relevant:
Pastebin for easier reading.

time="2020-05-31T13:05:36Z" level=info msg="job succeeded" iteration=46 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T14:00:00Z" level=info msg=starting iteration=47 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T14:00:01Z" level=info msg="6/1/2020, 2:00:01 AM: Running sync…" channel=stdout iteration=47 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T14:00:01Z" level=info channel=stdout iteration=47 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T14:00:01Z" level=info msg="Create initial tables (if necessary): 0.012s" channel=stdout iteration=47 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T14:00:01Z" level=info msg="Drop zombie tables: 0.000s" channel=stdout iteration=47 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T14:00:01Z" level=info msg="Attach hydrus databases: 0.031s" channel=stdout iteration=47 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T14:00:06Z" level=info msg="Get namespaces: 5.299s" channel=stdout iteration=47 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T14:00:06Z" level=info msg="Create new tables: 0.014s" channel=stdout iteration=47 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T14:00:06Z" level=info msg="Fill new namespaces table: 0.139s" channel=stdout iteration=47 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T14:00:13Z" level=info msg="Fill new tags table: 6.255s" channel=stdout iteration=47 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T14:01:21Z" level=info msg="received terminated, shutting down"
time="2020-05-31T14:01:21Z" level=info msg="waiting for jobs to finish"
Waiting 60 seconds before running initial sync…
Another sync seems to be running already, aborting. If you are certain that this is not the case, delete /data/hyve/.sync-lock and try again.
time="2020-05-31T15:03:28Z" level=info msg="read crontab: .crontab"
time="2020-05-31T16:00:00Z" level=info msg=starting iteration=0 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T16:00:00Z" level=info msg="Another sync seems to be running already, aborting. If you are certain that this is not the case, delete /data/hyve/.sync-lock and try again." channel=stdout iteration=0 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T16:00:00Z" level=info msg="job succeeded" iteration=0 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T17:00:00Z" level=info msg=starting iteration=1 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"
time="2020-05-31T17:00:00Z" level=info msg="Another sync seems to be running already, aborting. If you are certain that this is not the case, delete /data/hyve/.sync-lock and try again." channel=stdout iteration=1 job.command="node /usr/src/app/services/sync-server/bin/sync" job.position=0 job.schedule="0 * * * *"```

Persist information about current result set across tabs

When browsing search results, or just files in general, clicking an image opens the image page. On this page, there are to buttons that allow up to go back a result, or forward one:
image

However, if you open one of the result in a new tab, those buttons are missing:
image

Can you please make it so opening an image in a new tab retains this back and forward ability please?

Feature request: API endpoint for retrieving favourite tags

Is it possible for you to make an api endpoint to get a list of favourite tags? I'm pretty close to the point where I have so much of them that I need some kind of a visual preview so I wanted to use your api to make a simple web app for that.
screenshot

Multiple instances

1. It is unclear how to run multiple instances from a single source. This can be told for all 3 parts, server, sync and web.
I've changed bin/www, so it accepts environment file as an optional agrument:

const envpath = '../' + (process.argv[2] ? process.argv[2] : '.env')
require('dotenv').config({ path: path.resolve(__dirname, envpath )})

Maybe there is a more idiomatic way?
Now systemd service can look like this:

Spoiler
[Unit]
Description=hyve-dolls
After=network.target
StartLimitIntervalSec=0

[Service]
Type=simple
Restart=always
RestartSec=1
User=bernkastel
ExecStart=/usr/bin/node /home/bernkastel/hyve/services/server/bin/www 'dolls.env'
WorkingDirectory=/home/bernkastel/hyve/services/server

[Install]
WantedBy=multi-user.target

2. Web needs a base path configuration, so it can be run in a subdirectory. In vue.config.js i've added:

publicPath: process.env.VUE_APP_HYVE_BASE_URL

By default it should be /

Internal Server Error/500 for API GETs

I'm setting up without Docker and think everything is set up correctly, however after starting up the server and web services the page displays:

hyve has encountered an internal error. please check your server.

Along with the console logging these:

GET /api 304 2.101 ms - -
GET /api/info 500 1.257 ms - 31
GET /api/most-used-tags 500 0.542 ms - 31
GET /api/namespaces 500 0.598 ms - 31
GET /api/mime-types 500 0.601 ms - 31

I'm on MacOS 10.13.6 if that has any relevancy. If there's any other details I can provide to help please let me know. And thank you for your hard work!

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.