From 5a5ebcfeb760743bcb79f685b388c749557d82ae Mon Sep 17 00:00:00 2001 From: dmunozv04 <39565245+dmunozv04@users.noreply.github.com> Date: Fri, 17 Nov 2023 11:38:22 +0100 Subject: [PATCH] move directories and data path --- .github/workflows/main.yml | 75 ------------------- Dockerfile | 4 +- main-macos.py | 7 -- main-macos.spec | 47 ------------ requirements.txt | 2 +- .../iSponsorBlockTV}/__init__.py | 0 src/iSponsorBlockTV/__main__.py | 8 ++ .../iSponsorBlockTV}/api_helpers.py | 0 .../iSponsorBlockTV}/conditional_ttl_cache.py | 0 .../iSponsorBlockTV}/config_setup.py | 0 .../iSponsorBlockTV}/constants.py | 0 .../iSponsorBlockTV}/dial_client.py | 0 .../iSponsorBlockTV}/helpers.py | 6 +- .../iSponsorBlockTV}/macos_install.py | 0 .../iSponsorBlockTV}/main.py | 0 .../iSponsorBlockTV}/setup-wizard-style.tcss | 0 .../iSponsorBlockTV}/setup_wizard.py | 0 .../iSponsorBlockTV}/ytlounge.py | 0 main.py => src/main.py | 0 main_tui.py => src/main_tui.py | 0 20 files changed, 17 insertions(+), 132 deletions(-) delete mode 100644 .github/workflows/main.yml delete mode 100644 main-macos.py delete mode 100644 main-macos.spec rename {iSponsorBlockTV => src/iSponsorBlockTV}/__init__.py (100%) create mode 100644 src/iSponsorBlockTV/__main__.py rename {iSponsorBlockTV => src/iSponsorBlockTV}/api_helpers.py (100%) rename {iSponsorBlockTV => src/iSponsorBlockTV}/conditional_ttl_cache.py (100%) rename {iSponsorBlockTV => src/iSponsorBlockTV}/config_setup.py (100%) rename {iSponsorBlockTV => src/iSponsorBlockTV}/constants.py (100%) rename {iSponsorBlockTV => src/iSponsorBlockTV}/dial_client.py (100%) rename {iSponsorBlockTV => src/iSponsorBlockTV}/helpers.py (93%) rename {iSponsorBlockTV => src/iSponsorBlockTV}/macos_install.py (100%) rename {iSponsorBlockTV => src/iSponsorBlockTV}/main.py (100%) rename {iSponsorBlockTV => src/iSponsorBlockTV}/setup-wizard-style.tcss (100%) rename {iSponsorBlockTV => src/iSponsorBlockTV}/setup_wizard.py (100%) rename {iSponsorBlockTV => src/iSponsorBlockTV}/ytlounge.py (100%) rename main.py => src/main.py (100%) rename main_tui.py => src/main_tui.py (100%) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml deleted file mode 100644 index 26af9c7..0000000 --- a/.github/workflows/main.yml +++ /dev/null @@ -1,75 +0,0 @@ -name: build docker images - -# Controls when the workflow will run -on: - push: - branches: - - '*' - tags: - - 'v*' - pull_request: - branches: - - '*' - release: - types: [published] - - workflow_dispatch: - -permissions: - contents: read - packages: write - -jobs: - build: - runs-on: ubuntu-latest - steps: - # Get the repository's code - - name: Checkout - uses: actions/checkout@v3 - - # Generate docker tags - - name: Docker meta - id: meta - uses: docker/metadata-action@v4 - with: - images: ghcr.io/dmunozv04/isponsorblocktv, dmunozv04/isponsorblocktv - tags: | - type=raw,value=develop,priority=900,enable=${{ github.ref == format('refs/heads/{0}', github.event.repository.default_branch) }} - type=ref,enable=true,priority=600,prefix=pr-,suffix=,event=pr - type=ref,event=tag - type=ref,event=branch - type=schedule - - # https://github.com/docker/setup-qemu-action - - name: Set up QEMU - uses: docker/setup-qemu-action@v2 - # https://github.com/docker/setup-buildx-action - - name: Set up Docker Buildx - id: buildx - uses: docker/setup-buildx-action@v2 - - - name: Login to DockerHub - if: github.event_name != 'pull_request' - uses: docker/login-action@v2 - with: - username: ${{ secrets.DOCKERHUB_USERNAME }} - password: ${{ secrets.DOCKERHUB_TOKEN }} - - - name: Login to GHCR - if: github.event_name != 'pull_request' - uses: docker/login-action@v2 - with: - registry: ghcr.io - username: ${{ github.repository_owner }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Build and push - uses: docker/build-push-action@v4 - with: - context: . - platforms: linux/amd64, linux/arm64 - push: ${{ github.event_name != 'pull_request' }} - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - cache-from: type=registry,ref=ghcr.io/dmunozv04/isponsorblocktv:buildcache - cache-to: type=registry,ref=ghcr.io/dmunozv04/isponsorblocktv:buildcache,mode=max diff --git a/Dockerfile b/Dockerfile index 653475f..a349cdf 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,7 +2,7 @@ FROM python:alpine3.11 -ENV PIP_NO_CACHE_DIR=off iSPBTV_docker=True TERM=xterm-256color COLORTERM=truecolor +ENV PIP_NO_CACHE_DIR=off iSPBTV_docker=True iSPBTV_data_dir=data TERM=xterm-256color COLORTERM=truecolor COPY requirements.txt . @@ -13,6 +13,8 @@ COPY requirements.txt . WORKDIR /app +RUN python -m compileall . + COPY . . ENTRYPOINT ["python3", "-u", "main.py"] \ No newline at end of file diff --git a/main-macos.py b/main-macos.py deleted file mode 100644 index ac7e117..0000000 --- a/main-macos.py +++ /dev/null @@ -1,7 +0,0 @@ -from iSponsorBlockTV import helpers -import sys -import os - -if getattr(sys, "frozen", False): - os.environ["SSL_CERT_FILE"] = os.path.join(sys._MEIPASS, "lib", "cert.pem") -helpers.app_start() diff --git a/main-macos.spec b/main-macos.spec deleted file mode 100644 index f0ee8d9..0000000 --- a/main-macos.spec +++ /dev/null @@ -1,47 +0,0 @@ -# -*- mode: python ; coding: utf-8 -*- - -from PyInstaller.utils.hooks import exec_statement -cert_datas = exec_statement(""" - import ssl - print(ssl.get_default_verify_paths().cafile)""").strip().split() -cert_datas = [(f, 'lib') for f in cert_datas] - -block_cipher = None - -options = [ ('u', None, 'OPTION') ] - -a = Analysis(['main-macos.py'], - pathex=[], - binaries=[], - datas=cert_datas, - hiddenimports=['certifi'], - hookspath=[], - hooksconfig={}, - runtime_hooks=[], - excludes=[], - win_no_prefer_redirects=False, - win_private_assemblies=False, - cipher=block_cipher, - noarchive=False) -pyz = PYZ(a.pure, a.zipped_data, - cipher=block_cipher) - -exe = EXE(pyz, - a.scripts, - a.binaries, - a.zipfiles, - a.datas, - [], - options, - name='iSponsorBlockTV-macos', - debug=False, - bootloader_ignore_signals=False, - strip=False, - upx=True, - upx_exclude=[], - runtime_tmpdir=None, - console=True, - disable_windowed_traceback=False, - target_arch=None, - codesign_identity=None, - entitlements_file=None) \ No newline at end of file diff --git a/requirements.txt b/requirements.txt index ed6a004..03acb85 100644 --- a/requirements.txt +++ b/requirements.txt @@ -1,3 +1,4 @@ +appdirs==1.4.4 aiohttp==3.8.6 argparse==1.4.0 async-cache==1.1.1 @@ -7,4 +8,3 @@ ssdp==1.3.0 textual==0.40.0 textual-slider==0.1.1 xmltodict==0.13.0 - diff --git a/iSponsorBlockTV/__init__.py b/src/iSponsorBlockTV/__init__.py similarity index 100% rename from iSponsorBlockTV/__init__.py rename to src/iSponsorBlockTV/__init__.py diff --git a/src/iSponsorBlockTV/__main__.py b/src/iSponsorBlockTV/__main__.py new file mode 100644 index 0000000..7a3a6f4 --- /dev/null +++ b/src/iSponsorBlockTV/__main__.py @@ -0,0 +1,8 @@ +from . import helpers + +def main(): + helpers.app_start() + + +if __name__ == "__main__": + main() \ No newline at end of file diff --git a/iSponsorBlockTV/api_helpers.py b/src/iSponsorBlockTV/api_helpers.py similarity index 100% rename from iSponsorBlockTV/api_helpers.py rename to src/iSponsorBlockTV/api_helpers.py diff --git a/iSponsorBlockTV/conditional_ttl_cache.py b/src/iSponsorBlockTV/conditional_ttl_cache.py similarity index 100% rename from iSponsorBlockTV/conditional_ttl_cache.py rename to src/iSponsorBlockTV/conditional_ttl_cache.py diff --git a/iSponsorBlockTV/config_setup.py b/src/iSponsorBlockTV/config_setup.py similarity index 100% rename from iSponsorBlockTV/config_setup.py rename to src/iSponsorBlockTV/config_setup.py diff --git a/iSponsorBlockTV/constants.py b/src/iSponsorBlockTV/constants.py similarity index 100% rename from iSponsorBlockTV/constants.py rename to src/iSponsorBlockTV/constants.py diff --git a/iSponsorBlockTV/dial_client.py b/src/iSponsorBlockTV/dial_client.py similarity index 100% rename from iSponsorBlockTV/dial_client.py rename to src/iSponsorBlockTV/dial_client.py diff --git a/iSponsorBlockTV/helpers.py b/src/iSponsorBlockTV/helpers.py similarity index 93% rename from iSponsorBlockTV/helpers.py rename to src/iSponsorBlockTV/helpers.py index 481e45d..713acaa 100644 --- a/iSponsorBlockTV/helpers.py +++ b/src/iSponsorBlockTV/helpers.py @@ -5,6 +5,8 @@ import os import sys import time +from appdirs import user_data_dir + from . import config_setup, main, setup_wizard @@ -102,8 +104,10 @@ class Config: def app_start(): + #If env has a data dir use that, otherwise use the default + default_data_dir = os.getenv("iSPBTV_data_dir") or user_data_dir("iSponsorBlockTV", "dmunozv04") parser = argparse.ArgumentParser(description="iSponsorblockTV") - parser.add_argument("--data-dir", "-d", default="data", help="data directory") + parser.add_argument("--data-dir", "-d", default=default_data_dir, help="data directory") parser.add_argument("--setup", "-s", action="store_true", help="setup the program graphically") parser.add_argument("--setup-cli", "-sc", action="store_true", help="setup the program in the command line") parser.add_argument("--debug", action="store_true", help="debug mode") diff --git a/iSponsorBlockTV/macos_install.py b/src/iSponsorBlockTV/macos_install.py similarity index 100% rename from iSponsorBlockTV/macos_install.py rename to src/iSponsorBlockTV/macos_install.py diff --git a/iSponsorBlockTV/main.py b/src/iSponsorBlockTV/main.py similarity index 100% rename from iSponsorBlockTV/main.py rename to src/iSponsorBlockTV/main.py diff --git a/iSponsorBlockTV/setup-wizard-style.tcss b/src/iSponsorBlockTV/setup-wizard-style.tcss similarity index 100% rename from iSponsorBlockTV/setup-wizard-style.tcss rename to src/iSponsorBlockTV/setup-wizard-style.tcss diff --git a/iSponsorBlockTV/setup_wizard.py b/src/iSponsorBlockTV/setup_wizard.py similarity index 100% rename from iSponsorBlockTV/setup_wizard.py rename to src/iSponsorBlockTV/setup_wizard.py diff --git a/iSponsorBlockTV/ytlounge.py b/src/iSponsorBlockTV/ytlounge.py similarity index 100% rename from iSponsorBlockTV/ytlounge.py rename to src/iSponsorBlockTV/ytlounge.py diff --git a/main.py b/src/main.py similarity index 100% rename from main.py rename to src/main.py diff --git a/main_tui.py b/src/main_tui.py similarity index 100% rename from main_tui.py rename to src/main_tui.py