diff --git a/.github/workflows/publish-cli.yml b/.github/workflows/publish-cli.yml index 8ac016d7..39cc90b1 100644 --- a/.github/workflows/publish-cli.yml +++ b/.github/workflows/publish-cli.yml @@ -20,11 +20,11 @@ jobs: - name: Install dependencies run: | - pip install pyinstaller music_tag jibrish_to_hebrew + pip install pyinstaller music_tag jibrish_to_hebrew chardet - name: Build EXE run: | - pyinstaller --onefile --add-data "src/core/app/singer-list.csv;app" --name "Singles-Sorter" --icon "src/core/assets/icon.ico" "src/core/singles_sorter_v4.py" + pyinstaller --onefile --add-data "src/core/app/singer-list.csv;app" --name "Singles-Sorter" --icon "src/core/assets/icon.ico" "src/core/singles_sorter_v5.py" - name: Get the version id: get_version diff --git a/.github/workflows/publish-installer-ai.yml b/.github/workflows/publish-installer-ai.yml new file mode 100644 index 00000000..35ff7a9c --- /dev/null +++ b/.github/workflows/publish-installer-ai.yml @@ -0,0 +1,109 @@ +name: Publish AI Installer and Portable Version + +on: + push: + tags: + - 'v*' + +jobs: + build: + runs-on: windows-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: '3.10' + + - name: Install dependencies + run: | + pip install pyinstaller music_tag jibrish_to_hebrew flet spacy==3.7.5 scikit-learn==1.5.1 chardet + + - name: Get the version + id: get_version + shell: bash + run: | + VERSION=${GITHUB_REF#refs/tags/v} + echo "VERSION=$VERSION" >> $GITHUB_OUTPUT + echo "RELEASE_TITLE=מסדר הסינגלים $VERSION" >> $GITHUB_OUTPUT + + - name: Build EXE + run: | + flet pack -i src/core/assets/icon.ico src/core/main.py --product-name "Singles Sorter" --product-version "${{ steps.get_version.outputs.VERSION }}" --file-description "Singles Sorter" --copyright "nh.local11@gmail.com" + + - name: Install Inno Setup + run: | + choco install innosetup -y + + - name: Create Inno Setup Script + run: | + $script = @" + #define MyAppName "מסדר הסינגלים" + #define MyAppVersion "${{ steps.get_version.outputs.VERSION }}" + #define MyAppPublisher "nhlocal" + #define MyAppURL "https://nhlocal.github.io/Singles-Sorter" + #define MyAppExeName "main.exe" + [Setup] + AppId={{C1801B38-3050-4D83-8085-6466145B0A06} + AppName={#MyAppName} + AppVersion={#MyAppVersion} + AppPublisher={#MyAppPublisher} + AppPublisherURL={#MyAppURL} + AppSupportURL={#MyAppURL} + AppUpdatesURL={#MyAppURL} + DefaultDirName={autopf}\Singles Sorter + DisableProgramGroupPage=yes + LicenseFile="license.md" + PrivilegesRequired=lowest + OutputBaseFilename=Singles-Sorter-Installer-AI-{#MyAppVersion} + SetupIconFile=src\core\assets\icon.ico + SolidCompression=yes + Compression=lzma2/ultra64 + LZMAUseSeparateProcess=yes + LZMADictionarySize=1048576 + LZMANumFastBytes=273 + WizardStyle=modern + [Languages] + Name: "hebrew"; MessagesFile: "compiler:Languages\Hebrew.isl" + [Tasks] + Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked + [Files] + Source: "dist\main.exe"; DestDir: "{app}"; Flags: ignoreversion + Source: "src\core\app\*"; DestDir: "{app}\app"; Flags: ignoreversion recursesubdirs createallsubdirs + Source: "src\core\models\*"; DestDir: "{app}\models"; Flags: ignoreversion recursesubdirs createallsubdirs + Source: "src\core\assets\icon.png"; DestDir: "{app}\assets"; Flags: ignoreversion recursesubdirs createallsubdirs + [Icons] + Name: "{autoprograms}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}" + Name: "{autodesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; Tasks: desktopicon + [Run] + Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent + "@ + Set-Content -Path inno_setup_script.iss -Value $script + + - name: Build Installer + run: | + & 'C:\Program Files (x86)\Inno Setup 6\ISCC.exe' inno_setup_script.iss + + - name: Create Portable Version + run: | + New-Item -ItemType Directory -Force -Path portable + Copy-Item dist\main.exe portable\ + Copy-Item -Recurse src\core\app portable\ + Copy-Item -Recurse src\core\assets portable\ + Compress-Archive -Path portable\* -DestinationPath Singles-Sorter-Portable-${{ steps.get_version.outputs.VERSION }}.zip -CompressionLevel Optimal + + - name: Create Release + uses: softprops/action-gh-release@v2.0.6 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + name: ${{ steps.get_version.outputs.RELEASE_TITLE }} + draft: true + prerelease: true + files: | + Output/Singles-Sorter-Installer-AI-${{ steps.get_version.outputs.VERSION }}.exe + Singles-Sorter-Portable-AI${{ steps.get_version.outputs.VERSION }}.zip \ No newline at end of file diff --git a/.github/workflows/publish-installer.yml b/.github/workflows/publish-installer.yml index 1ad38f66..3c4f73df 100644 --- a/.github/workflows/publish-installer.yml +++ b/.github/workflows/publish-installer.yml @@ -20,7 +20,7 @@ jobs: - name: Install dependencies run: | - pip install pyinstaller music_tag jibrish_to_hebrew flet + pip install pyinstaller music_tag jibrish_to_hebrew flet chardet - name: Get the version id: get_version diff --git "a/.github/workflows/\342\200\217\342\200\217publish-cli-ai.yml" "b/.github/workflows/\342\200\217\342\200\217publish-cli-ai.yml" new file mode 100644 index 00000000..61102f3a --- /dev/null +++ "b/.github/workflows/\342\200\217\342\200\217publish-cli-ai.yml" @@ -0,0 +1,52 @@ +name: Build and Release AI CLI + +on: + push: + tags: + - 'v*' + +jobs: + build: + runs-on: windows-latest + + steps: + - name: Checkout repository + uses: actions/checkout@v4 + + - name: Setup Python + uses: actions/setup-python@v5 + with: + python-version: '3.10' + + - name: Install dependencies + run: | + pip install pyinstaller music_tag jibrish_to_hebrew chardet spacy==3.7.5 scikit-learn==1.5.1 + + - name: Build EXE + run: | + pyinstaller --onefile --add-data "src/core/app/singer-list.csv;app" --name "Singles-Sorter" --icon "src/core/assets/icon.ico" "src/core/singles_sorter_v5.py" + + - name: Get the version + id: get_version + shell: bash + run: | + VERSION=${GITHUB_REF#refs/tags/v} + echo "VERSION=$VERSION" >> $GITHUB_OUTPUT + echo "RELEASE_TITLE=מסדר הסינגלים $VERSION" >> $GITHUB_OUTPUT + + - name: Rename output file + shell: pwsh + run: | + $version = "${{ steps.get_version.outputs.VERSION }}" + Move-Item -Path "dist\Singles-Sorter.exe" -Destination "dist\singles-sorter-cli-ai-$version.exe" + + - name: Create Release + uses: softprops/action-gh-release@v2.0.6 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: ${{ github.ref }} + name: ${{ steps.get_version.outputs.RELEASE_TITLE }} + draft: true + prerelease: true + files: ./dist/singles-sorter-cli-ai${{ steps.get_version.outputs.VERSION }}.exe \ No newline at end of file diff --git a/docs/assets/action_buttons.png b/docs/assets/action_buttons.png new file mode 100644 index 00000000..23773345 Binary files /dev/null and b/docs/assets/action_buttons.png differ diff --git a/docs/assets/add_singers_dialog.png b/docs/assets/add_singers_dialog.png new file mode 100644 index 00000000..997486fc Binary files /dev/null and b/docs/assets/add_singers_dialog.png differ diff --git a/docs/assets/advanced_settings.png b/docs/assets/advanced_settings.png new file mode 100644 index 00000000..d8e0fffd Binary files /dev/null and b/docs/assets/advanced_settings.png differ diff --git a/docs/assets/basic_settings.png b/docs/assets/basic_settings.png new file mode 100644 index 00000000..5ffdd704 Binary files /dev/null and b/docs/assets/basic_settings.png differ diff --git a/docs/assets/general_android_view.png b/docs/assets/general_android_view.png new file mode 100644 index 00000000..66d893b8 Binary files /dev/null and b/docs/assets/general_android_view.png differ diff --git a/docs/assets/general_view.png b/docs/assets/general_view.png new file mode 100644 index 00000000..34d5b62b Binary files /dev/null and b/docs/assets/general_view.png differ diff --git a/docs/assets/select_folders.png b/docs/assets/select_folders.png new file mode 100644 index 00000000..c23d2898 Binary files /dev/null and b/docs/assets/select_folders.png differ diff --git a/docs/help.html b/docs/help.html new file mode 100644 index 00000000..90c8b5ca --- /dev/null +++ b/docs/help.html @@ -0,0 +1,426 @@ + + +
+ +ברוכים הבאים למסדר הסינגלים! תוכנה זו נועדה לסייע לכם לארגן את קבצי המוזיקה שלכם באופן אוטומטי ויעיל.
+ +מסדר הסינגלים הוא כלי מתקדם ופשוט לשימוש שמסייע בארגון אוסף המוזיקה שלכם. התוכנה סורקת את התיקיות שבחרתם, מזהה את האמנים וממיינת את קבצי המוזיקה לתיקיות לפי שם האמן, כך שתוכלו למצוא את השירים האהובים עליכם בקלות.
+ +[הכניסו כאן תמונה של תצוגה כללית של התוכנה]
+התוכנה מציגה ממשק ידידותי ונוח לשימוש, המורכב ממספר חלקים מרכזיים:
+ +[הכניסו כאן תמונה של אזור בחירת התיקיות]
+כדי לבחור תיקייה, לחצו על כפתור "בחר תיקיה" לצד שדה הטקסט המתאים, ובחרו את התיקייה הרצויה.
+ +[הכניסו כאן תמונה של אזור ההגדרות הבסיסיות]
+[הכניסו כאן תמונה של אזור ההגדרות המתקדמות]
+ניתן לשמור את ההגדרות המותאמות אישית על ידי לחיצה על כפתור השמירה (אייקון של דיסקט).
+ +[הכניסו כאן תמונה של כפתורי הפעולה]
+אם ברצונכם להוסיף זמרים שאינם קיימים במאגר התוכנה, תוכלו לעשות זאת באמצעות דיאלוג הוספת זמרים:
+ +[הכניסו כאן תמונה של דיאלוג הוספת הזמרים]
+באמצעות דיאלוג זה, תוכלו לנהל בקלות את רשימת הזמרים האישית שלכם, ולהבטיח שהתוכנה תזהה אותם ותמיין את הקבצים בהתאם.
+ +התוכנה תומכת במיון דואטים (שירים עם יותר מזמר אחד):
+ +ניתן לבחור את המצב הרצוי בהגדרות המתקדמות תחת "מיון דואטים".
+ +התוכנה בודקת אוטומטית אם קיימים עדכונים זמינים. אם ישנו עדכון, יופיע חיווי על כפתור התפריט בסרגל העליון.
+ +אם אתם זקוקים לעזרה נוספת, תוכלו לגשת לתפריט העזרה:
+ +מסדר הסינגלים גרסה 13.7.
+ +התוכנה פותחה כדי לסייע בחוויית האזנה נוחה ומאורגנת למוזיקה האהובה עליכם.
+ +לחצו על כפתור "בחר תיקיה" לצד שדה "תיקיית הסינגלים שלך", ונווטו לתיקייה שבה שמורים קבצי המוזיקה שלכם.
+ +כן, התוכנה תיצור תיקיות לפי שמות הזמרים, אלא אם בחרתם באפשרות "השתמש בתיקיות קיימות בלבד".
+ +לא, לאחר שהתהליך החל, לא ניתן לבטלו. לכן, ודאו שאתם בוחרים בתיקיות הנכונות לפני תחילת התהליך.
+ +אם יש לכם שאלות או הצעות, אתם מוזמנים ליצור קשר:
+ +אנחנו מקווים שהתוכנה תסייע לכם ליהנות מהמוזיקה שלכם באופן מסודר ונוח.
+ +