From e6c06a89bbc969a9929b1325f39f82958ab37531 Mon Sep 17 00:00:00 2001 From: amd64fox Date: Thu, 28 Jul 2022 17:03:10 +0300 Subject: [PATCH] Update - added FAQ - added forms yml - added "Report incorrect translations" --- .github/Doc/FAQ.md | 90 +++++++++++++++++ .github/ISSUE_TEMPLATE/bug_report.md | 33 ------ .github/ISSUE_TEMPLATE/bug_report.yml | 82 +++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 5 + .github/ISSUE_TEMPLATE/idea.md | 25 ----- .github/ISSUE_TEMPLATE/idea.yml | 94 ++++++++++++++++++ ...ation.md => installer-new-translation.yml} | 0 .github/ISSUE_TEMPLATE/itranslation-fix.yml | 31 ++++++ .../Album-Release-Anniversaries.gif | Bin 0 -> 7380426 bytes .github/Pic/Shields/faq.svg | 1 + README.md | 42 +------- 11 files changed, 308 insertions(+), 95 deletions(-) create mode 100644 .github/Doc/FAQ.md delete mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml delete mode 100644 .github/ISSUE_TEMPLATE/idea.md create mode 100644 .github/ISSUE_TEMPLATE/idea.yml rename .github/ISSUE_TEMPLATE/{installer-translation.md => installer-new-translation.yml} (100%) create mode 100644 .github/ISSUE_TEMPLATE/itranslation-fix.yml create mode 100644 .github/Pic/Excremental-fun/Album-Release-Anniversaries.gif create mode 100644 .github/Pic/Shields/faq.svg diff --git a/.github/Doc/FAQ.md b/.github/Doc/FAQ.md new file mode 100644 index 0000000..d253233 --- /dev/null +++ b/.github/Doc/FAQ.md @@ -0,0 +1,90 @@ +

FAQ

+ +

I have an error / bug / strange client behavior, what can I do ?

+ +If you notice an error or other malfunction in the mod or in its installation, then do not rush to create a problem report, try this couple of simple steps, this helps to solve a large number of different bugs: + +- Completely remove Spotify so that there are no tails from the old versions of the client, [this patch](https://github.com/amd64fox/Uninstall-Spotify) will do it for you in one click, after that, run the SpotX installation again, this way you will perform a clean installation, which helps to avoid a lot of bugs associated with outdated versions. +- Also, as an additional measure, look at your host file, it should not contain different URLs that can cause the client to work incorrectly, even if you are sure that you did not add anything to it, then go into it anyway and check it for sure, since Some ad blockers that you may have used in the past may have added entries to the host file automatically without your consent. + To quickly open the host file, press `Win + R` and enter `%WinDir%\System32\Drivers\Etc\hosts`, in order for the system to allow you to edit the file, you need to open it as an administrator. +- If you still see errors, then install the original client and check this error there, if the error is present in the original client, then here you need to wait for a fix from the Spotify developers. + To expedite resolution of a problem in the original client, please create a problem report on their [support forum](https://community.spotify.com/t5/Desktop-Windows/bd-p/desktop_windows). + In the meantime, you are waiting for a fix, you can temporarily return to the previous version of Spotify that worked for you and block updates in it, [this instruction](https://github.com/amd64fox/Rollback-Spotify) will help you with this. + + +

It seems I have an old version of PowerShell 2.0, can I install a patch with it?

+ +No, you will get something like this error +
+Screenshot

+ +![Capture](https://user-images.githubusercontent.com/62529699/181509312-39e912b1-ac9a-4753-840c-654ce117f52b.png) + + + +

+Script only works starting from version 3, you need to update NET Framework and PowerShell. + +Do the following: + +- Upgrade to [NET Framework 4.8](https://go.microsoft.com/fwlink/?linkid=2088631) +- Upgrade to [WMF 5.1](https://www.microsoft.com/en-us/download/details.aspx?id=54616) +- Reboot your PC + + + + +

How to downgrade Spotify version?

+ +If you have problems with the patch after upgrading the client version, then use this [tool](https://github.com/amd64fox/Rollback-Spotify) to revert back to the working version. + + + + +

SpotX is forcibly installing/updating an outdated version of Spotify, but a new version has already been released, how do I install it?

+ +SpotX installs/updates the recommended version which is the most stable according to the author of the patch. +If a new version has been released, and SpotX has not yet been updated, then you have two options: +- Stay on the recommended version and block automatic Spotify updates +- Install the latest version of Spotify and run [`Usual installation`](https://github.com/amd64fox/SpotX#choose-installation-type), confirm during the installation that you want to continue with the installation with the version that has not been tested yet, but do not forget that mistakes are possible with it. + +

I got an error editing my hosts file, how can I fix it?

+This error can be fixed in two ways: +- Just run the bat file as administrator + +or + +- Manually editing the hosts file, you need to open and remove all lines from it that relate to Spotify + + + + +

My hosts file got corrupted during installation, how do I get it back?

+ +If you need your old hosts file, then you can find a backup of it in the same folder named `hosts.bak` + +

I want to translate the installer into my language, how can I do that?

+ +If you would like to translate the installer into your language, you can do so here, and if you notice a bug in current languages, you can report it here. + + + + +

Can I use SpotX and Spicetify together?

+ +Yes you can do this, for example: + +1. First install SpotX, then install Spicetify on top and customize it to your taste. + +Or you can do the opposite. + +2. first install Spicetify, customize it to your taste, and then install SpotХ on top. + +But if you use the second case, then when you try to use the Spicetify commands, my patch will be reset, you will need to install it on top again. + + + + +

I have a premium account but I still want to use SpotX, is this possible?

+ +Yes, there is such an opportunity, you need to run a [special installation](https://raw.githack.com/amd64fox/SpotX/main/scripts/Install_Prem.bat) without ad blocking. diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md deleted file mode 100644 index e70ded0..0000000 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -name: ❌ Bug report -about: Create a report to help us improve -title: '' -labels: ❌ bug -assignees: '' - ---- - -## ℹ Computer information - -- Spotify version: -- Plan Spotify: free or premium -- Windows version: -- PowerShell version: -- Spicetify installed: yes or no - -## 📝 Description of the problem - -1. … -2. … -3. … - -## 📷 Screenshots - -
-Screenshot

- -![test_screen](https://user-images.githubusercontent.com/62529699/149568115-36120440-1799-4b1b-80d5-06df10da5ec4.png) - -

- -

diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..110f3ba --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,82 @@ +name: ❌ Bug report +description: Report errors or unexpected behavior +labels: ❌ bug +body: +- type: checkboxes + attributes: + label: 🧐 Have you read the FAQ and viewed similar issues? + description: Please read the FAQ. Also check the open and closed issue because your issue may have already been fixed. + options: + - label: I have read the FAQ + required: true + - label: I have checked older issues, open and closed + required: true + - label: I did a clean install of SpotX as described in the FAQ + required: true +- type: markdown + attributes: + value: "###" +- type: dropdown + id: plan + attributes: + label: What is your Spotify Plan? + description: You can view your plan on your account page, under Your plan. + options: + - Free + - Premium + validations: + required: true +- type: markdown + attributes: + value: "###" +- type: dropdown + id: spicetify + attributes: + label: Do you have Spicetify installed? + description: Spicetify is a command line tool to customize Spotify client. + options: + - "Yes" + - "No" + validations: + required: true +- type: markdown + attributes: + value: "###" +- type: textarea + attributes: + label: ℹ Computer information + description: | + - Spotify: e.g. 1.1.90.859.gf1bb1e36 + - In the open Spotify client in the upper left corner, click •••HelpAbout Spotify + - Windows: e.g. Windows 11 21H2 22000.527 + - Press Win + Pause/Break to open the page to copy from. + - PowerShell: e.g. 5.1.19041.1200 + - In the Windows PowerShell console, type the following command Get-Host | Select-Object Version + placeholder: | + - Spotify: + - Windows: + - PowerShell: + value: | + - Spotify: + - Windows: + - PowerShell: + render: markdown + validations: + required: true +- type: textarea + attributes: + label: 📝 Description + description: List steps to reproduce the error and details on what happens and what you expected to happen. + value: | + 1. + 2. + 3. + ... + validations: + required: true +- type: textarea + attributes: + label: 📸 Screenshots + description: Place any screenshots of the issue here if needed + validations: + required: false diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..a941e79 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,5 @@ +blank_issues_enabled: false +contact_links: + - name: ✏️ FAQ + url: https://github.com/amd64fox/SpotX/blob/main/.github/Doc/FAQ.md + about: Read the frequently asked questions, maybe it will help solve your problem right now. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/idea.md b/.github/ISSUE_TEMPLATE/idea.md deleted file mode 100644 index 61a5665..0000000 --- a/.github/ISSUE_TEMPLATE/idea.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -name: 💡 To suggest an idea -about: Suggest an idea for this project -title: '' -labels: 💡 enhancement -assignees: '' - ---- - -## 📝 Description of the idea - -1. … -2. … -3. … - -## 📷 Screenshots - -
-Screenshot

- -![test_screen](https://user-images.githubusercontent.com/62529699/149568115-36120440-1799-4b1b-80d5-06df10da5ec4.png) - -

- -

diff --git a/.github/ISSUE_TEMPLATE/idea.yml b/.github/ISSUE_TEMPLATE/idea.yml new file mode 100644 index 0000000..4e17239 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/idea.yml @@ -0,0 +1,94 @@ +name: 🌐 Installer translation +description: Translate the installer into your language +labels: 🌐 New translation +body: +- type: input + id: lang + attributes: + label: What language do you want to translate into? + placeholder: e.g. English + validations: + required: true +- type: input + id: langpowershell + attributes: + label: Enter language name in PowerShell + description: Enter the following command in the PowerShell terminal $PSUICulture.Remove(2), write the answer in the line below. For this to work, your Windows must be in this language. + placeholder: e.g. en + validations: + required: true +- type: textarea + attributes: + label: 📝 Translation strings + description: | + Now you can start translating strings, a few notes before you start: + - Translation strings start after an equals sign and are enclosed in quotation marks + - There are variables before the equal sign, they do not need to be translated. + - Also, if you come across characters {0}, {1} or file names, then just skip them. + + Good luck to you. + value: | + Author = "Author:" + Incorrect = "Oops, an incorrect value," + Incorrect2 = "enter again through " + Download = "Error downloading" + Download2 = "Will re-request in 5 seconds..." + Download3 = "Error again" + Download4 = "Check your network settings and run the installation again" + Download5 = "Downloading Spotify" + Download6 = "Failed web request via curl" + StopScrpit = "Script is stopped" + MsSpoti = "The Microsoft Store version of Spotify has been detected which is not supported" + MsSpoti2 = "Uninstall Spotify Windows Store edition [Y/N]" + MsSpoti3 = "Automatic uninstalling Spotify MS..." + MsSpoti4 = "Uninstalling Spotify MS..." + Prem = "Modification for premium account..." + DownBts = "Downloading latest patch BTS..." + OldV = "Found outdated version of Spotify" + OldV2 = "Your Spotify {0} version is outdated, it is recommended to upgrade to {1}" + OldV3 = "Want to update ? [Y/N]" + AutoUpd = "Automatic update to the recommended version" + DelOrOver = "Do you want to uninstall the current version of {0} or install over it? Y [Uninstall] / N [Install Over]" + DelOld = "Uninstalling old Spotify..." + NewV = "Unsupported version of Spotify found" + NewV2 = "Your Spotify {0} version hasn't been tested yet, currently it's a stable {1} version" + NewV3 = "Do you want to continue with {0} version (errors possible) ? [Y/N]" + Recom = "Do you want to install the recommended {0} version ? [Y/N]" + DelNew = "Uninstalling an untested Spotify..." + DownSpoti = "Downloading and installing Spotify" + DownSpoti2 = "Please wait..." + PodcatsOff = "Off Podcasts" + PodcastsOn = "On Podcasts" + PodcatsSelect = "Do you want to disable podcasts from the main page? [Y/N]" + DowngradeNote = "It is recommended to block because there was a downgrade of Spotify" + UpdBlock = "Spotify updates blocked" + UpdUnblock = "Spotify updates are not blocked" + UpdSelect = "Want to block Spotify updates? [Y/N]" + CacheOn = "Clear cache enabled ({0})" + CacheOff = "Clearing the cache is not enabled" + CacheSelect = "Want to set up automatic cache cleanup? [Y/N]" + CacheDays = "Cache older: XX days to be cleared " + CacheDays2 = "Enter the number of days from 1 to 100" + NoVariable = "Didn't find variable" + NoVariable2 = "in xpui.js" + NoVariable3 = "in licenses.html" + NoVariable4 = "in html" + ModSpoti = "Patching Spotify..." + Error = "Error" + FileLocBroken = "Location of Spotify files is broken, uninstall the client and run the script again" + Spicetify = "Spicetify detected" + NoRestore = "SpotX has already been installed, xpui.js and xpui.css not found. `nPlease uninstall Spotify client and run Install.bat again" + ExpSpotify = "Experimental features operated by Spotify" + ExpStandart = "Experimental features of SpotX are not included" + NoRestore2 = "SpotX has already been installed, xpui.bak not found. `nPlease uninstall Spotify client and run Install.bat again" + UpdateBlocked = "Spotify updates are already blocked" + UpdateError = "Failed to block updates" + NoSpotifyExe = "Could not find Spotify.exe" + InstallComplete = "installation completed" + HostInfo = "Unwanted URLs found in hosts file" + HostBak = "Backing up hosts.bak..." + HostDel = "Trying to remove unwanted URLs from the original hosts file..." + HostError = "Something went wrong while editing the hosts file, edit it manually or run the script as administrator" + render: txt + validations: + required: true diff --git a/.github/ISSUE_TEMPLATE/installer-translation.md b/.github/ISSUE_TEMPLATE/installer-new-translation.yml similarity index 100% rename from .github/ISSUE_TEMPLATE/installer-translation.md rename to .github/ISSUE_TEMPLATE/installer-new-translation.yml diff --git a/.github/ISSUE_TEMPLATE/itranslation-fix.yml b/.github/ISSUE_TEMPLATE/itranslation-fix.yml new file mode 100644 index 0000000..bda312f --- /dev/null +++ b/.github/ISSUE_TEMPLATE/itranslation-fix.yml @@ -0,0 +1,31 @@ +name: "🌐 Localization/Translation issue" +description: Report incorrect translations. +labels: 🌐 Fix translation +body: +- type: dropdown + id: langselect + attributes: + label: 🌐 Select language + options: + - English + - Russian + validations: + required: true +- type: textarea + attributes: + label: ❌ Actual phrase(s) + placeholder: What is there? Please include a screenshot as that is extremely helpful. + validations: + required: true +- type: textarea + attributes: + label: ✔️ Expected phrase(s) + placeholder: What was expected? + validations: + required: true +- type: textarea + attributes: + label: ℹ Why is the current translation wrong + placeholder: Why do you feel this is incorrect? + validations: + required: true diff --git a/.github/Pic/Excremental-fun/Album-Release-Anniversaries.gif b/.github/Pic/Excremental-fun/Album-Release-Anniversaries.gif new file mode 100644 index 0000000000000000000000000000000000000000..25dfd53b5749c389bfaa926b34a99f203ee42732 GIT binary patch literal 7380426 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 z