Get result from iqdb.org.
Project description
Overview
Get result from iqdb.org from CLI using python3.
Feature:
- Written for python3 - iqdb and danbooru.iqdb parser - Hydrus integration
Usage
Use as Hydrus as cli program
To parse folder of images (e.g. in this example image_folder:
) and write tags to text file, use following command:
iqdb-tagger cli-run --resize --match-filter best-match --write-tags --input-mode folder image_folder
Use as Hydrus iqdb script server
Run
iqdb-tagger run
and note the server address.
To run it on 127.0.0.1 on port 5006, run the following command:
`iqdb-tagger run -h 127.0.0.1 -p 5006`
Import one of the parsing scripts below to Hydrus parsing scripts.
Check the server address and edit it as needed.
IQDB parsing script
[32, "local iqdb", 2, ["http://127.0.0.1:5006", 1, 0, [55, 1, [[], "some hash bytes"]], "file", {"place": "0", "resize": "on"}, [[29, 1, ["link", [27, 5, [[["a", {"data-status": "best-match", "class": "img-match-detail"}, null]], 0, "href", [51, 1, [3, "", null, null, "example string"]], [55, 1, [[], "parsed information"]]]], [[30, 2, ["", 0, [27, 5, [[["li", {"class": "tag-creator"}, null]], 1, "", [51, 1, [3, "", null, null, "example string"]], [55, 1, [[], "parsed information"]]]], "creator"]], [30, 2, ["", 0, [27, 5, [[["li", {"class": "tag-series"}, null]], 1, "", [51, 1, [3, "", null, null, "example string"]], [55, 1, [[], "parsed information"]]]], "series"]], [30, 2, ["", 0, [27, 5, [[["li", {"class": "tag-character"}, null]], 1, "", [51, 1, [3, "", null, null, "example string"]], [55, 1, [[], "parsed information"]]]], "character"]], [30, 2, ["", 0, [27, 5, [[["li", {"class": "tag-general"}, null]], 1, "", [51, 1, [3, "", null, null, "example string"]], [55, 1, [[], "parsed information"]]]], ""]]]]]]]]
Every uploaded and match history can be seen on Front page (in this case http://127.0.0.1:5006).
Using IQDB-tagger with Hydrus API
Set up your hydrus to get the access key, which will be used for this feature.
Install the required hydrus package
pip install https://gitlab.com/cryzed/hydrus-api/-/archive/master/hydrus-api-master.zip
After that you can run the command below. For example to run the command with image tagged as ‘thread:cat’ on hydrus
# to get tags
iqdb-tagger search-hydrus-and-send-tag --access_key 1234_your_access_key 'thread:cat'
# to get matching urls
iqdb-tagger search-hydrus-and-send-url --access_key 1234_your_access_key 'thread:cat'
Note: hydrus version 349 have default bandwidth of 100 mb data per month, which may raise ApiError when the bandwidth reached.
to fix it, go to services menu -> manage services -> client api and raise your bandwidth limit
Setting Hydrus iqdb script server on NAS
Here is example for Synology DS1817+ with DSM6.1.7 running on an Intel Atom C2538
Make sure SSH is turned on in your control panel
Install python 3 community package: https://synocommunity.com/package/python3
Install pip3
install pip3 with:
sudo -i
wget https://bootstrap.pypa.io/get-pip.py
python3 get-pip.py
Install iqdb-tagger
cd /volume1/@appstore/py3k/usr/local/bin
./pip install iqdb_tagger
3.1 Add bin folder to path (optional)
export PATH=$PATH:/volume1/@appstore/py3k/usr/local/bin
That command line above can also be put on ~/.bashrc, so NAS will run it everytime user login.
Installation
Install it with from pypi
$ pip install iqdb_tagger
Or install it manually
$ git clone https://github.com/softashell/iqdb_tagger.git
$ cd iqdb_tagger
# run the command below
$ python setup.py install
# for windows user: to force it using python3 run following command
$ python -3 setup.py install
# or
$ pip install .
If you are in windows and get SyntaxError, check your python version. To install under python3 follow the instruction on this link https://stackoverflow.com/a/18059129/1766261
FAQ
libxml error in Windows
If you are encounter this error on Windows
Could not find function xmlCheckVersion in library libxml2. Is libxml2 installed?
Please follow this guide to install lxml: StackOverflow - how to install lxml on windows?
Contributing
To test the program do the following:
$ # install required package
$ pip install -e ".[dev]"
$ cd docs
$ make test
To upload the new version, do the following:
register to pypi and test.pypi
upgrade setuptools. setuptools>=38.6.0 is required to produce a distribution with the new metadata
make a source distribution. command: python setup.py sdist. in this example it will produce dist/iqdb_tagger-0.3.2.tar.gz
install twine>=1.11.0.
upload first to test.pypi. command: twine upload –repository-url https://test.pypi.org/legacy/ dist/iqdb_tagger-0.3.2.tar.gz
if upload success but result is not as intended, change the version with postn-suffix format. fix the program and go to number 5.
if upload sucsess and result is as intended:
check the program version. maybe rolled it back to original if possible
upload it to pypi. command: twine upload –repository-url https://upload.pypi.org/legacy/ dist/iqdb_tagger-0.3.2.tar.gz
this guideline is based on this guide https://dustingram.com/articles/2018/03/16/markdown-descriptions-on-pypi
Licence
This project is licensed under the MIT License - see the LICENSE file for details
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file iqdb_tagger-0.3.2.tar.gz
.
File metadata
- Download URL: iqdb_tagger-0.3.2.tar.gz
- Upload date:
- Size: 24.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 185563d39208189fa35f6af0a5c618d64726074c20c45df0d477472fa5dda5df |
|
MD5 | 6a22e0af4ee3e8fc77f6432b40731a62 |
|
BLAKE2b-256 | 416b90f89ab83d883202347891b3268df230cf2ac1a7a1df90b16f591fe2e29e |