mirror of
https://github.com/scito/extract_otp_secret_keys.git
synced 2025-12-06 14:54:57 +01:00
update docs
This commit is contained in:
parent
13fcdcd022
commit
19c8e9df23
5 changed files with 52 additions and 20 deletions
3
.github/workflows/ci.yml
vendored
3
.github/workflows/ci.yml
vendored
|
|
@ -1,5 +1,8 @@
|
|||
name: tests
|
||||
|
||||
# https://docs.github.com/de/actions/using-workflows/workflow-syntax-for-github-actions
|
||||
# https://docs.github.com/en/actions/using-workflows
|
||||
|
||||
on:
|
||||
push:
|
||||
pull_request:
|
||||
|
|
|
|||
8
.github/workflows/ci_docker.yml
vendored
8
.github/workflows/ci_docker.yml
vendored
|
|
@ -1,5 +1,8 @@
|
|||
name: docker
|
||||
|
||||
# https://docs.github.com/de/actions/using-workflows/workflow-syntax-for-github-actions
|
||||
# https://docs.github.com/en/actions/using-workflows
|
||||
|
||||
# How to setup: https://event-driven.io/en/how_to_buid_and_push_docker_image_with_github_actions/
|
||||
# How to run: https://aschmelyun.com/blog/using-docker-run-inside-of-github-actions/
|
||||
|
||||
|
|
@ -8,7 +11,10 @@ on:
|
|||
push:
|
||||
# branches: [master]
|
||||
# run it during pull request
|
||||
# pull_request:
|
||||
pull_request:
|
||||
schedule:
|
||||
# Run weekly
|
||||
- cron: '47 3 * * 6'
|
||||
|
||||
jobs:
|
||||
# define job to build and publish docker image
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
FROM python:3.11-slim-bullseye
|
||||
|
||||
# https://docs.docker.com/engine/reference/builder/
|
||||
|
||||
# For debugging
|
||||
# docker build . -t extract_otp_secrets --pull --build-arg RUN_TESTS=false
|
||||
# docker run --rm -v "$(pwd)":/files:ro extract_otp_secrets
|
||||
|
|
@ -12,7 +14,11 @@ COPY . .
|
|||
|
||||
ARG RUN_TESTS=true
|
||||
|
||||
RUN apt-get update && apt-get install -y libzbar0 libsm6 python3-opencv nano \
|
||||
RUN apt-get update && apt-get install -y \
|
||||
libzbar0 \
|
||||
libsm6 \
|
||||
python3-opencv \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& pip install --no-cache-dir -r requirements.txt \
|
||||
&& if [ "$RUN_TESTS" = "true" ]; then /extract/run_pytest.sh; else echo "Not running tests..."; fi
|
||||
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
FROM python:3.11-alpine
|
||||
|
||||
# https://docs.docker.com/engine/reference/builder/
|
||||
|
||||
# For debugging
|
||||
# docker run --rm -v "$(pwd)":/files:ro extract_otp_secrets_only_txt
|
||||
# docker build . -t extract_otp_secrets_only_txt -f Dockerfile_only_txt --pull --build-arg RUN_TESTS=false
|
||||
|
|
@ -12,10 +14,23 @@ COPY . .
|
|||
|
||||
ARG RUN_TESTS=true
|
||||
|
||||
RUN apk add --no-cache zlib jpeg \
|
||||
RUN apk add --no-cache \
|
||||
zlib \
|
||||
jpeg \
|
||||
&& echo "Arch: $(apk --print-arch)" \
|
||||
&& if [[ "$(apk --print-arch)" == "aarch64" ]]; then apk add --no-cache --virtual .build-deps gcc libc-dev python3-dev py3-setuptools zlib-dev jpeg-dev; fi \
|
||||
&& pip install --no-cache-dir protobuf qrcode Pillow colorama \
|
||||
&& if [[ "$(apk --print-arch)" == "aarch64" ]]; then apk add --no-cache --virtual .build-deps \
|
||||
gcc \
|
||||
libc-dev \
|
||||
python3-dev \
|
||||
py3-setuptools \
|
||||
zlib-dev \
|
||||
jpeg-dev \
|
||||
; fi \
|
||||
&& pip install --no-cache-dir \
|
||||
protobuf \
|
||||
qrcode \
|
||||
Pillow \
|
||||
colorama \
|
||||
&& if [[ "$(apk --print-arch)" == "aarch64" ]]; then apk del .build-deps; fi \
|
||||
&& if [[ "$RUN_TESTS" == "true" ]]; then /extract/run_pytest.sh tests/extract_otp_secrets_test.py -k "not qreader" --relaxed; else echo "Not running tests..."; fi
|
||||
|
||||
|
|
|
|||
32
README.md
32
README.md
|
|
@ -108,6 +108,8 @@ For a detailed installation documentation of [pyzbar](https://github.com/Natural
|
|||
|
||||
The zbar DLLs are included with the Windows Python wheels. On other operating systems, you will need to install the zbar shared library.
|
||||
|
||||
TODO Write installation, not error message
|
||||
|
||||
##### Windows error message
|
||||
|
||||
If you see an ugly ImportError when importing [pyzbar](https://pypi.org/project/pyzbar/) on Windows you will most likely need the [Visual C++ Redistributable Packages for Visual Studio 2013](https://www.microsoft.com/en-US/download/details.aspx?id=40784). Install vcredist_x64.exe if using 64-bit Python, vcredist_x86.exe if using 32-bit Python.
|
||||
|
|
@ -196,8 +198,8 @@ FileNotFoundError: Could not find module 'libiconv.dll' (or one of its dependenc
|
|||
* JSON
|
||||
* Dedicated CSV for KeePass
|
||||
* QR code images
|
||||
* Supports reading from stdin and writing to stdout
|
||||
* Reads QR codes images: (See [OpenCV docu](https://docs.opencv.org/3.4/d4/da8/group__imgcodecs.html#ga288b8b3da0892bd651fce07b3bbd3a56))
|
||||
* Supports reading from stdin and writing to stdout, thus pipes can be used
|
||||
* Reads QR codes images: (See [OpenCV docu](https://docs.opencv.org/4.x/d4/da8/group__imgcodecs.html#ga288b8b3da0892bd651fce07b3bbd3a56))
|
||||
* Portable Network Graphics - *.png
|
||||
* WebP - *.webp
|
||||
* JPEG files - *.jpeg, *.jpg, *.jpe
|
||||
|
|
@ -205,11 +207,7 @@ FileNotFoundError: Could not find module 'libiconv.dll' (or one of its dependenc
|
|||
* Windows bitmaps - *.bmp, *.dib
|
||||
* JPEG 2000 files - *.jp2
|
||||
* Portable image format - *.pbm, *.pgm, *.ppm *.pxm, *.pnm
|
||||
* Sun rasters - *.sr, *.ras
|
||||
* OpenEXR Image files - *.exr
|
||||
* Radiance HDR - *.hdr, *.pic
|
||||
* Raster and Vector geospatial data supported by GDAL
|
||||
* Errors and warnings are written to stderr
|
||||
* Errors and warnings are written to stderr and these are printed in red color on all platforms
|
||||
* Many ways to run the script:
|
||||
* Native Python
|
||||
* pipenv
|
||||
|
|
@ -224,6 +222,7 @@ FileNotFoundError: Could not find module 'libiconv.dll' (or one of its dependenc
|
|||
* Windows
|
||||
* Uses UTF-8 on all platforms
|
||||
* Supports Python >= 3.7
|
||||
* Written in modern Python using type hints and following best practices
|
||||
* All these features are backed by tests ran nightly
|
||||
* All functionality in one Python script: extract_otp_secrets.py (except protobuf generated code in protobuf_generated_python)
|
||||
|
||||
|
|
@ -297,14 +296,14 @@ https://github.com/nipunn1313/mypy-protobuf
|
|||
### pip
|
||||
|
||||
```
|
||||
pip install git+https://github.com/scito/extract_otp_secret_keys
|
||||
pip install -U git+https://github.com/scito/extract_otp_secret_keys
|
||||
python -m extract_otp_secrets
|
||||
```
|
||||
|
||||
#### For development
|
||||
|
||||
```
|
||||
pip install git+https://github.com/scito/extract_otp_secret_keys@support_img_read
|
||||
pip install -U git+https://github.com/scito/extract_otp_secret_keys.git@support_img_read
|
||||
python -m extract_otp_secrets
|
||||
```
|
||||
|
||||
|
|
@ -312,9 +311,9 @@ python -m extract_otp_secrets
|
|||
|
||||
https://stackoverflow.com/questions/13685920/install-specific-git-commit-with-pip
|
||||
-e for egg
|
||||
pip install -e git+<https://github.com/myrepo.git#egg=packagename>
|
||||
pip install -U -e git+<https://github.com/myrepo.git#egg=packagename>
|
||||
|
||||
# pip install -e git+https://github.com/scito/extract_otp_secret_keys@$(git ls-remote git@github.com:scito/extract_otp_secret_keys@support_img_read.git | head -1 | awk '{print $1;}')#egg=extract_otp_secrets
|
||||
# pip install -U -e git+https://github.com/scito/extract_otp_secret_keys@$(git ls-remote git@github.com:scito/extract_otp_secret_keys@support_img_read.git | head -1 | awk '{print $1;}')#egg=extract_otp_secrets
|
||||
pip3.11 install -e git+https://github.com/scito/extract_otp_secret_keys.git@$(git ls-remote git@github.com:scito/extract_otp_secret_keys.git | grep support_img_read | head -1 | awk '{print $1;}')#egg=extract_otp_secrets
|
||||
python -m extract_otp_secrets
|
||||
```
|
||||
|
|
@ -329,7 +328,7 @@ python -m extract_otp_secrets example_export.txt
|
|||
### local pip
|
||||
|
||||
```
|
||||
pip install -e .
|
||||
pip install -U -e .
|
||||
```
|
||||
|
||||
### pipenv
|
||||
|
|
@ -362,8 +361,8 @@ Alternatively, you can use a python virtual env for the dependencies:
|
|||
|
||||
python -m venv venv
|
||||
. venv/bin/activate
|
||||
pip install -r requirements-dev.txt
|
||||
pip install -r requirements.txt
|
||||
pip install -U -r requirements-dev.txt
|
||||
pip install -U -r requirements.txt
|
||||
|
||||
The requirements\*.txt files contain all the dependencies (also the optional ones).
|
||||
To leave the python virtual env just call `deactivate`.
|
||||
|
|
@ -444,6 +443,8 @@ Run tests:
|
|||
python -m unittest
|
||||
```
|
||||
|
||||
Note the `pytest`s are preferred and more complete. For each unittest there is also a test in `pytest`.
|
||||
|
||||
### VSCode Setup
|
||||
|
||||
Setup for running the tests in VSCode.
|
||||
|
|
@ -458,7 +459,7 @@ Setup for running the tests in VSCode.
|
|||
### Build
|
||||
|
||||
```
|
||||
pip install -e .
|
||||
pip install -U -e .
|
||||
python src/extract_otp_secrets.py
|
||||
|
||||
pip wheel .
|
||||
|
|
@ -483,6 +484,7 @@ pip install -U -r requirements.txt
|
|||
* [Android OTP Extractor](https://github.com/puddly/android-otp-extractor) can extract your tokens from popular Android OTP apps and export them in a standard format or just display them as QR codes for easy importing. [Requires a _rooted_ Android phone.]
|
||||
* [Python QReader](https://github.com/Eric-Canas/QReader)
|
||||
* [pyzbar](https://github.com/NaturalHistoryMuseum/pyzbar)
|
||||
* [OpenCV](https://docs.opencv.org/4.x/) (CV2) Open Source Computer Vision library with [opencv-python](https://github.com/opencv/opencv-python)
|
||||
|
||||
***
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue