PatreonDownloader icon indicating copy to clipboard operation
PatreonDownloader copied to clipboard

Issues running PatreonDownloader on macOS

Open frranck opened this issue 3 years ago • 7 comments

Hello, I'm getting this error on OS X:

franck@Admins-MacBook-Pro PatreonDownloader.App % dotnet run --url https://www.patreon.com/user/posts?u=27022 --verbose

zsh: no matches found: https://www.patreon.com/user/posts?u=27022

Any idea?

frranck avatar May 16 '21 08:05 frranck

This is definitely not an error PatreonDownloader can return. Something else (zsh?) in your system returns that error.

Try building the app with dotnet build -c release and then running "dotnet PatreonDownloader.App.dll --url https://www.patreon.com/user/posts?u=27022 --verbose" command in PatreonDownloader.App\bin\Release\netcoreapp3.1 directory

AlexCSDev avatar May 16 '21 15:05 AlexCSDev

franck@Admins-MacBook-Pro PatreonDownloader.App %  dotnet build -c release
Microsoft (R) Build Engine version 16.7.2+b60ddb6f4 for .NET
Copyright (C) Microsoft Corporation. All rights reserved.

  Determining projects to restore...
  All projects are up-to-date for restore.
  PatreonDownloader.Common -> /Users/franck/dev/PatreonDownloader/PatreonDownloader.Common/bin/release/netstandard2.1/PatreonDownloader.Common.dll
  PatreonDownloader.PuppeteerEngine -> /Users/franck/dev/PatreonDownloader/PatreonDownloader.PuppeteerEngine/bin/release/netstandard2.1/PatreonDownloader.PuppeteerEngine.dll
DefaultPlugin.cs(178,27): warning CS1998: This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread. [/Users/franck/dev/PatreonDownloader/PatreonDownloader.Engine/PatreonDownloader.Engine.csproj]
DefaultPlugin.cs(184,41): warning CS1998: This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread. [/Users/franck/dev/PatreonDownloader/PatreonDownloader.Engine/PatreonDownloader.Engine.csproj]
  PatreonDownloader.Engine -> /Users/franck/dev/PatreonDownloader/PatreonDownloader.Engine/bin/release/netcoreapp3.1/PatreonDownloader.Engine.dll
Program.cs(65,30): warning CS0168: The variable 'ex' is declared but never used [/Users/franck/dev/PatreonDownloader/PatreonDownloader.App/PatreonDownloader.App.csproj]
  PatreonDownloader.App -> /Users/franck/dev/PatreonDownloader/PatreonDownloader.App/bin/release/netcoreapp3.1/PatreonDownloader.App.dll

Build succeeded.

DefaultPlugin.cs(178,27): warning CS1998: This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread. [/Users/franck/dev/PatreonDownloader/PatreonDownloader.Engine/PatreonDownloader.Engine.csproj]
DefaultPlugin.cs(184,41): warning CS1998: This async method lacks 'await' operators and will run synchronously. Consider using the 'await' operator to await non-blocking API calls, or 'await Task.Run(...)' to do CPU-bound work on a background thread. [/Users/franck/dev/PatreonDownloader/PatreonDownloader.Engine/PatreonDownloader.Engine.csproj]
Program.cs(65,30): warning CS0168: The variable 'ex' is declared but never used [/Users/franck/dev/PatreonDownloader/PatreonDownloader.App/PatreonDownloader.App.csproj]
    3 Warning(s)
    0 Error(s)

Time Elapsed 00:00:14.82
franck@Admins-MacBook-Pro PatreonDownloader.App % dotnet PatreonDownloader.App.dll --url https://www.patreon.com/user/posts?u=27022 --verbose
zsh: no matches found: https://www.patreon.com/user/posts?u=27022
franck@Admins-MacBook-Pro PatreonDownloader.App % cd bin
franck@Admins-MacBook-Pro bin % cd release 
franck@Admins-MacBook-Pro release % ls
netcoreapp3.1
franck@Admins-MacBook-Pro release % cd netcoreapp3.1 
franck@Admins-MacBook-Pro netcoreapp3.1 % dotnet PatreonDownloader.App.dll --url https://www.patreon.com/user/posts?u=27022 --verbose
zsh: no matches found: https://www.patreon.com/user/posts?u=27022
franck@Admins-MacBook-Pro netcoreapp3.1 % pwd
/Users/franck/dev/PatreonDownloader/PatreonDownloader.App/bin/release/netcoreapp3.1

frranck avatar May 16 '21 15:05 frranck

I tried to run it from bash, it is working. zsh is the new default in OSX though. weird Isn't it?

frranck avatar May 16 '21 15:05 frranck

I'm getting thos errors afterwards

 is too long, or a component of the specified path is too long.
   at Interop.ThrowExceptionForIoErrno(ErrorInfo errorInfo, String path, Boolean isDirectory, Func`2 errorRewriter)
   at Microsoft.Win32.SafeHandles.SafeFileHandle.Open(String path, OpenFlags flags, Int32 mode)
   at System.IO.FileStream..ctor(String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, FileOptions options)
   at PatreonDownloader.Engine.WebDownloader.DownloadFile(String url, String path, Boolean overwrite) in /Users/franck/dev/PatreonDownloader/PatreonDownloader.Engine/WebDownloader.cs:line 74

although I added a --download-directory /Users/franck/Downloads/

frranck avatar May 16 '21 15:05 frranck

I'm not really sure what's going on. As I don't have any access to mac computer I'm afraid I can't really figure out what is going on.

I will keep this open and tag it as "help wanted" in case someone with mac can figure this out.

AlexCSDev avatar May 16 '21 21:05 AlexCSDev

OK thanks, I will try on a windows or linux.

frranck avatar May 17 '21 06:05 frranck

Little bit late, but for future reference—? is a glob operator, which should be escaped or quoted to avoid triggering and failing to match a file name. Its also very common in urls, which is unfortunate.

Some examples of usage below, assuming dotnet is a command on PATH:


# Temporarilty make dotnet command just show arguments passed in, just for demonstration purposes
function dotnet() { builtin print -u2 -- $^@ } 

{

# Invalid: As invoked in issue
dotnet run --url https://www.patreon.com/user/posts?u=27022 --verbose

# Escaping globbing character
dotnet run --url https://www.patreon.com/user/posts\?u=27022 --verbose

# Quoting globbing character
dotnet run --url "https://www.patreon.com/user/posts?u=27022" --verbose

# Using the noglob precommand modifier
noglob dotnet run --url https://www.patreon.com/user/posts?u=27022 --verbose

} always { unfunction dotnet }

Only the first command should error out.

I believe bracketed-paste-url-magic can handle this automatically when pasting text as well.

disco0 avatar Jul 11 '21 08:07 disco0