Cannot connect my spotify account

When I want to configure your Skill with my Spotify credentials I get an error page with the error: INVALID_CLIENT: Failed to get client. Am I doing something wrong?

Recently Spotify disabled the skill's API key so the skill can currently not be used. I'm trying to get through to Spotify to get this up and running again I'm also working on a workaround where users can supply their own key to the skill. got a POC on that but it'll require some more work to get it user friendly.

Ok, thanks! I am looking forward to it!

same
The observation
Recently noticed:
 00:51:32.905 | INFO     |   712 | __main__:handle_utterance:72 | Utterance: ['play classical music on spotify']
 00:51:33.117 | INFO     |   706 | Playback Control Skill | Resolving Player for: classical music on spotify
Removing event mycroft-playback-control.mycroftai:PlayQueryTimeout
Removing event mycroft-playback-control.mycroftai:PlayQueryTimeout
Removing event mycroft-playback-control.mycroftai:PlayQueryTimeout
 00:51:40.423 | INFO     |   706 | Playback Control Skill | Playing with: mycroft-spotify.forslund
 00:51:40.696 | ERROR    |   706 | SpotifySkill | User info has been set but Auth failed.
 00:51:40.958 | INFO     |   706 | Playback Control Skill | Audio service status: {}

I confirmed my user/pass is correct in the config, so then retried the "Connect" button in the account skills
https://account.mycroft.ai/skills
it punts me to something like:
https://accounts.spotify.com/authorize?client_id=SNIP&redirect_uri=https%3A%2F%2Fapi.mycroft.ai%2Fv1%2Fauth%2Fcallback&scope=user-library-read+streaming+playlist-read-private+user-top-read+user-read-playback-state&state=SNIP&access_type=offline&response_type=code
browser shows: INVALID_CLIENT: Failed to get client
@forslund - per discussion;
System Versions

mycroft-core 20.8.0

(.venv) pi@picroft:~/mycroft-core/skills/mycroft-spotify.forslund $ git status
On branch 20.02
Your branch is behind 'origin/20.02' by 1 commit, and can be fast-forwarded.

What is a bit bonkers to me is:

Google and Alexa do this ... did their systems get blocked too?
https://developer.spotify.com/documentation/web-api/ specifically talks about how to achieve integration for develop "My App" ... hmmm

Found:
https://developer.spotify.com/terms/

Do not use the Spotify Platform, Spotify Content, Spotify Service, or Spotify Marks in any way to create a voice-enabled SDA that enables a user to control with his or her voice, or any kind of voice assistant that provides voice-control functionality without prior written authorization from Spotify.

This sucks :cry: , we will try to go through official spotify channels to get this resolved.

@fermulator any Updates from Spotify?

Nothing yet;

tried: https://developer.spotify.com/terms/#report-form-modal about a week ago
seeing if I can find a colleague their to learn more about the process

@forslund indicated to me offline he contacted them as well (not sure by which method)
The other way I know of is:
https://developer.spotify.com/support/

App Integration Application To build and distribute an application that using commercial integration, you must log in and create a client ID. You will be asked to fill in a form to submit an Application Integration Request.

But obviously this already went through that process? (@forslund can confirm) - but the application/request is so basic, I'm not sure how Spotify intends to approve or denote applications that REQUEST for written consent to have their application control Spotify via voice...

Yes but same here with Deezer. Wrote them approximately 5 Emails and they sayed to me write them on twitter but no answer yet.

I started the "HW partner application" process, I also reached out through their Developer support (which I think is new) asking if there were some other channel to go through for this. They confirmed that it was the HW partner form that was needed. So it's the waiting game right now...

@forslund ok thank you for your engagement ;)

I fear only hardware partners with some kind of deal will be admitted. It is always a money game. Sad.
p.s. In the old days, fake the client's ID  was the solution but I suppose that there is some kind of cryptographic keys involved now. We can't tell everybody we are "Alexa". :P

Yes that's my fear as well. There is a branch which can use user supplied auth info, but I still need to write some docs on how to use it and make it smoother in case Spotify declines again.

i cant figure out how to use my own key. is there a guide anywhere?

I quick (and quite dirty) but working way to run spotify with local auth
Set up a developer account and download spauth.py
Edit it with your client_id, secret and username
go to the mycroft-spotify skill directory and checkout the branch feature/local-api-key
git checkout feature/local-api-key
then in the mycroft-core dir run

python spauth.py

this should result in a hidden file called .cache-USERNAME
now before starting Mycroft you need to put the client key and client secret in the environment variables
export SPOTIPY_CLIENT_ID=YOUR_CLIENT_ID
export SPOTIPY_CLIENT_SECRET=YOUR_CLIENT_SECRET

Then start Mycroft.
Sorry that I haven't had time to clean this procedure up...

Thanks for the guide. Unfortunately that branch doesn't work for me:
 13:17:54.284 | ERROR    | 30275 | SpotifySkill | Couldn't fetch credentials
Traceback (most recent call last):
  File "/opt/mycroft/skills/mycroft-spotify.forslund/__init__.py", line 278, in load_local_creds
    scope=SCOPE)
TypeError: __init__() got an unexpected keyword argument 'username'

This is very odd, since the spotipy docs do show a username argument.
So presumably a versioning issue? I wish I could help, but Python's dependency management has always baffled me.

Also, there's a step missing - you need to whitelist https://localhost:8888 in the Spotify developer dashboard.

Ah humm, yes I think I've updated the spotipy dependency... try running ./bin/mycroft-pip install spotipy==2.14.0 from the mycroft-core folder.
Will add the whitelist step to the description. Thanks for flagging

Works, awesome!
Would be a real shame if every user had to fiddle about with a developer account, but at least the option's there for now.

Works, awesome!
Would be a real shame if every user had to fiddle about with a developer account, but at least the option's there for now.

It shouldn't be too bad once you can put your credentials in via Mycroft/Selene. Just a list of instructions to create the app appropriately and some copy-pasting would be needed.

I was able to get it mostly working, I can get it to play and stop on other devices but not on the mycroft itself. Almost like it wasn't registered as a device at all.

The skill is not a player in itself, it requires a local player to be installed. Such as librespot or spotifyd (the player needs to be logged in and can't be in discovery mode)

Oh thank you, I miss understood

The skill is not a player in itself, it requires a local player to be installed. Such as librespot or spotifyd (the player needs to be logged in and can't be in discovery mode)

I couldn't see this on the README. May be worth mentioning if not already to prevent future tickets?

I have a PR I've forgotten to merge, sorry. It would be helpful if you could read through PR #145 and see if anything should be added

I've left you some feedback on that PR!

thanks for the update! i cant get it working though. i ran through your guide and it didnt work so i deleted .cache-USERNAME to try again. only now its saying "enter the URL you were redirected to" without giving me a url to enter. i tried unsetting my env variables and running the script in another directory as well as using the URL it provided me last time but no dice. i even tried making another app on the spotify dash. sorry for the trouble

I'm in the same position as @Djinnxie and just receive the Enter the URL you were redirect to:. I think this is because the white-listing isn't working correctly, but I definitely have the URL set in the developer settings.

Yeah it doesn't do headless it tries to launch a webbrowser. You can run it on a desktop and transfer the files to the target machine.
Thank's for the links tip as well!

I was able to use the spauth.py script to generate the .cache-xxxxx file but now when I want to use the skill it says:
 19:16:56.187 | ERROR    | 13885 | SpotifySkill | User info has not been set.

I guess it's because the skill in home.mycroft.ai is not configured.

So I tried to generate the /home/pi/.config/mycroft/skills/mycroft-spotify.forslund/settings.json with my user and password but still not working.

Thanks for the update. I shall modify the spotipy version in the requirements.txt to match that. Then I'll merge the branch and update the instructions in the readme.
Thank you all for feedback and testing!
Next step will be to make this a bit easier to perform...

It is not working for me. I am on Virtual Machine Ubuntu and after running
First i run this command inside mycroft-core:
./bin/mycroft-pip install spotipy==2.14.0
than
python spauth.py
i get following error Message:
Traceback (most recent call last):
File "spauth.py", line 1, in
import spotipy
ImportError: No module named spotipy

@stic82 did you run the "source venv-activate.sh" part to enter the mycroft virtualenv?

it was not virtualenv. That was the problem. Thank You!

So far i set it up. Only problem left is that i can t setup the spotifyd part. So Mycroft says that theire is no device to play songs. After trying for 1.5 days i want to ask for some support :-)

Nice, thanks @forslund for the workaround!
Got it working but unfortunately it doesn't persist between reboots - I have to set the environment variables after restart or I get the credentials error.
What's the best way of setting these permanently?

What's the best way of setting these permanently?

Set in one of ~/.bashrc, ~/.profile etc. Or prefix the command you use to start Mycroft e.g. SPOTIPY_CLIENT_ID=1234 SPOTIPY_CLIENT_SECRET=abcd ./mycroft-core/start-mycroft.sh.

What's the best way of setting these permanently?

Set in one of ~/.bashrc, ~/.profile etc. Or prefix the command you use to start Mycroft e.g. SPOTIPY_CLIENT_ID=1234 SPOTIPY_CLIENT_SECRET=abcd ./mycroft-core/start-mycroft.sh.

Awesome - cheers @georgefst. Using .profile didn't work but .bashrc did the trick!

You can also use the /etc/environment but then it will be available to all users

@erhan-ince Check the readme I've updated it after some awesome feed back from users here.

I'm having trouble getting the cached credentials to work. I've tried placing .cache- under the mycroft home directory, /usr/share/mycroft-core (the directory with .venv and other stuff in it), under   /opt/mycroft/skills/mycroft-spotify, and a couple other places, all result in "Could not get spotify credentials". I don't have much debugging output either, since the skill catches any tracebacks and logs an error that isn't much use. Any help? I'm running on a raspberry pi running arch linux ARM, with the mycroft-core package from the arch user repository.
Thanks!
-Michael.

Hi @buddens93 Can you try to ask "what spotify devices are available" this should give us some indication of the state it is in.

Hi @buddens93 Can you try to ask "what spotify devices are available" this should give us some indication of the state it is in.

Hi @forslund thanks for picking this up...
"what spotify devices are available" results in the following:
 02:39:28.942 | INFO     |  1595 | SpotifySkill | <mycroft-spotify_forslund.spotify.SpotifyConnect object at 0x968698f0>
~~~~ipy.oauth2 | User authentication requires interaction with your web browser. Once you enter your credentials and give authorization, you will be redirected to a url.  Paste that url you were directed to to complete the authorization.
~~~~fy.com/authorize?client_id=a73496cc33954814bafc78898ab7b6eb&response_type=code&redirect_uri=https%3A%2F%2Flocalhost%3A8888&scope=playlist-read-private+streaming+user-library-read+user-read-playback-state+user-top-read in your browser
Enter the URL you were redirected to: 2021-01-16 02:39:28.955 | ERROR    |  1595 | mycroft-spotify_forslund.spotify:get_devices:80 | EOF when reading a line

I get a similar error message in the log when asking to play something now - along with a 'An error occurred while processing a request in Spotify Skill' from the TTS engine. I've re-installed and re-run the steps above a few times with the same result unfortunately...
Cheers

Hi @forslund thanks for picking this up...
"what spotify devices are available" results in the following:
 02:39:28.942 | INFO     |  1595 | SpotifySkill | <mycroft-spotify_forslund.spotify.SpotifyConnect object at 0x968698f0>
~~~~ipy.oauth2 | User authentication requires interaction with your web browser. Once you enter your credentials and give authorization, you will be redirected to a url.  Paste that url you were directed to to complete the authorization.
~~~~fy.com/authorize?client_id=a73496cc33954814bafc78898ab7b6eb&response_type=code&redirect_uri=https%3A%2F%2Flocalhost%3A8888&scope=playlist-read-private+streaming+user-library-read+user-read-playback-state+user-top-read in your browser
Enter the URL you were redirected to: 2021-01-16 02:39:28.955 | ERROR    |  1595 | mycroft-spotify_forslund.spotify:get_devices:80 | EOF when reading a line

I get a similar error message in the log when asking to play something now - along with a 'An error occurred while processing a request in Spotify Skill' from the TTS engine. I've re-installed and re-run the steps above a few times with the same result unfortunately...
Cheers

Ok that sounds like the crentials cache (.cache-USERNAME where USERNAME is your spotify username) isn't found...
can you check that the file exists and has content. This file needs to be in the folder from where Mycroft is launched. what platform are you on?

Ok that sounds like the crentials cache (.cache-USERNAME where USERNAME is your spotify username) isn't found...
can you check that the file exists and has content. This file needs to be in the folder from where Mycroft is launched. what platform are you on?

Yeah it's wierd...
.cache-USERNAME exists with the relevant info at ~/mycroft-core/skills/mycroft-spotify.forslund
Not sure if I'm doing something back to front in terms of process, but essentially I'm installing the skill (voice install) > enter credentials and preferences in skill settings at mycroft.ai (don't hit connect, only save) > run your workaround steps > have to re-enter credentials in skills settings again (otherwise 'user info has not been set' occurs) > downgrade spotipy (otherwise 'couldn't fetch credentials' occurs)
But I still hit the EOF error above...
I'm on a rpi 4 2gb - Buster Keaton - Pork Pi / mycroft-core: 20.8.0 ( master )
Thanks for your help!

Yeah it's wierd...
.cache-USERNAME exists with the relevant info at ~/mycroft-core/skills/mycroft-spotify.forslund
Not sure if I'm doing something back to front in terms of process, but essentially I'm installing the skill (voice install) > enter credentials and preferences in skill settings at mycroft.ai (don't hit connect, only save) > run your workaround steps > have to re-enter credentials in skills settings again (otherwise 'user info has not been set' occurs) > downgrade spotipy (otherwise 'couldn't fetch credentials' occurs)
But I still hit the EOF error above...
I'm on a rpi 4 2gb - Buster Keaton - Pork Pi / mycroft-core: 20.8.0 ( master )
Thanks for your help!

Here is the full log from the error message:
2021-01-16 21:43:43.725 | INFO     |  1595 | Playback Control Skill | Resolving Player for: 2pac on spotify
2021-01-16 21:43:44.040 | INFO     |  1595 | spotipy.oauth2 | User authentication requires interaction with your web browser. Once you enter your credentials and give authorization, you will be redirected to a url.  Paste that url you were directed to to complete the authorization.
2021-01-16 21:43:44.041 | INFO     |  1595 | spotipy.oauth2 | Opened https://accounts.spotify.com/authorize?client_id=a73496cc33954814bafc78898ab7b6eb&response_type=code&redirect_uri=https%3A%2F%2Flocalhost%3A8888&scope=playlist-read-private+streaming+user-library-read+user-read-playback-state+user-top-read in your browser
Enter the URL you were redirected to: 2021-01-16 21:43:44.050 | ERROR    |  1595 | mycroft-spotify_forslund.spotify:get_devices:80 | EOF when reading a line
Removing event mycroft-playback-control.mycroftai:PlayQueryTimeout
2021-01-16 21:43:44.075 | INFO     |  1595 | SpotifySkill | Handling "2pac" as a genric query...
2021-01-16 21:43:44.075 | INFO     |  1595 | SpotifySkill | Checking users playlists
2021-01-16 21:43:44.076 | INFO     |  1595 | spotipy.oauth2 | User authentication requires interaction with your web browser. Once you enter your credentials and give authorization, you will be redirected to a url.  Paste that url you were directed to to complete the authorization.
2021-01-16 21:43:44.077 | INFO     |  1595 | spotipy.oauth2 | Opened https://accounts.spotify.com/authorize?client_id=a73496cc33954814bafc78898ab7b6eb&response_type=code&redirect_uri=https%3A%2F%2Flocalhost%3A8888&scope=playlist-read-private+streaming+user-library-read+user-read-playback-state+user-top-read in your browser
Enter the URL you were redirected to: Removing event mycroft-playback-control.mycroftai:PlayQueryTimeout
2021-01-16 21:43:44.095 | ERROR    |  1595 | mycroft.skills.mycroft_skill.mycroft_skill:on_error:835 | An error occurred while processing a request in Spotify Skill
Traceback (most recent call last):
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/oauth2.py", line 119, in _get_user_input
    return raw_input(prompt)
NameError: name 'raw_input' is not defined

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/pi/mycroft-core/mycroft/skills/mycroft_skill/event_container.py", line 66, in wrapper
    handler(message)
  File "/home/pi/mycroft-core/mycroft/skills/common_play_skill.py", line 96, in __handle_play_query
    result = self.CPS_match_query_phrase(search_phrase)
  File "/opt/mycroft/skills/mycroft-spotify.forslund/__init__.py", line 436, in CPS_match_query_phrase
    confidence, data = self.generic_query(phrase, bonus)
  File "/opt/mycroft/skills/mycroft-spotify.forslund/__init__.py", line 552, in generic_query
    playlist, conf = self.get_best_user_playlist(phrase)
  File "/opt/mycroft/skills/mycroft-spotify.forslund/__init__.py", line 924, in get_best_user_playlist
    playlists = list(self.playlists.keys())
  File "/opt/mycroft/skills/mycroft-spotify.forslund/__init__.py", line 818, in playlists
    playlists = self.spotify.current_user_playlists().get('items', [])
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/client.py", line 587, in current_user_playlists
    return self._get("me/playlists", limit=limit, offset=offset)
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/client.py", line 284, in _get
    return self._internal_call("GET", url, payload, kwargs)
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/client.py", line 220, in _internal_call
    headers = self._auth_headers()
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/client.py", line 211, in _auth_headers
    token = self.auth_manager.get_access_token(as_dict=False)
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/oauth2.py", line 471, in get_access_token
    "code": code or self.get_auth_response(),
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/oauth2.py", line 435, in get_auth_response
    return self._get_auth_response_interactive(open_browser=open_browser)
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/oauth2.py", line 388, in _get_auth_response_interactive
    response = SpotifyOAuth._get_user_input(prompt)
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/oauth2.py", line 121, in _get_user_input
    return input(prompt)
EOFError: EOF when reading a line
Removing event mycroft-spotify.forslund:launch_librespot
Removing event mycroft-playback-control.mycroftai:PlayQueryTimeout
2021-01-16 21:43:49.389 | INFO     |  1595 | Playback Control Skill |    No matches

Here is the full log from the error message:
2021-01-16 21:43:43.725 | INFO     |  1595 | Playback Control Skill | Resolving Player for: 2pac on spotify
2021-01-16 21:43:44.040 | INFO     |  1595 | spotipy.oauth2 | User authentication requires interaction with your web browser. Once you enter your credentials and give authorization, you will be redirected to a url.  Paste that url you were directed to to complete the authorization.
2021-01-16 21:43:44.041 | INFO     |  1595 | spotipy.oauth2 | Opened https://accounts.spotify.com/authorize?client_id=a73496cc33954814bafc78898ab7b6eb&response_type=code&redirect_uri=https%3A%2F%2Flocalhost%3A8888&scope=playlist-read-private+streaming+user-library-read+user-read-playback-state+user-top-read in your browser
Enter the URL you were redirected to: 2021-01-16 21:43:44.050 | ERROR    |  1595 | mycroft-spotify_forslund.spotify:get_devices:80 | EOF when reading a line
Removing event mycroft-playback-control.mycroftai:PlayQueryTimeout
2021-01-16 21:43:44.075 | INFO     |  1595 | SpotifySkill | Handling "2pac" as a genric query...
2021-01-16 21:43:44.075 | INFO     |  1595 | SpotifySkill | Checking users playlists
2021-01-16 21:43:44.076 | INFO     |  1595 | spotipy.oauth2 | User authentication requires interaction with your web browser. Once you enter your credentials and give authorization, you will be redirected to a url.  Paste that url you were directed to to complete the authorization.
2021-01-16 21:43:44.077 | INFO     |  1595 | spotipy.oauth2 | Opened https://accounts.spotify.com/authorize?client_id=a73496cc33954814bafc78898ab7b6eb&response_type=code&redirect_uri=https%3A%2F%2Flocalhost%3A8888&scope=playlist-read-private+streaming+user-library-read+user-read-playback-state+user-top-read in your browser
Enter the URL you were redirected to: Removing event mycroft-playback-control.mycroftai:PlayQueryTimeout
2021-01-16 21:43:44.095 | ERROR    |  1595 | mycroft.skills.mycroft_skill.mycroft_skill:on_error:835 | An error occurred while processing a request in Spotify Skill
Traceback (most recent call last):
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/oauth2.py", line 119, in _get_user_input
    return raw_input(prompt)
NameError: name 'raw_input' is not defined

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/pi/mycroft-core/mycroft/skills/mycroft_skill/event_container.py", line 66, in wrapper
    handler(message)
  File "/home/pi/mycroft-core/mycroft/skills/common_play_skill.py", line 96, in __handle_play_query
    result = self.CPS_match_query_phrase(search_phrase)
  File "/opt/mycroft/skills/mycroft-spotify.forslund/__init__.py", line 436, in CPS_match_query_phrase
    confidence, data = self.generic_query(phrase, bonus)
  File "/opt/mycroft/skills/mycroft-spotify.forslund/__init__.py", line 552, in generic_query
    playlist, conf = self.get_best_user_playlist(phrase)
  File "/opt/mycroft/skills/mycroft-spotify.forslund/__init__.py", line 924, in get_best_user_playlist
    playlists = list(self.playlists.keys())
  File "/opt/mycroft/skills/mycroft-spotify.forslund/__init__.py", line 818, in playlists
    playlists = self.spotify.current_user_playlists().get('items', [])
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/client.py", line 587, in current_user_playlists
    return self._get("me/playlists", limit=limit, offset=offset)
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/client.py", line 284, in _get
    return self._internal_call("GET", url, payload, kwargs)
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/client.py", line 220, in _internal_call
    headers = self._auth_headers()
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/client.py", line 211, in _auth_headers
    token = self.auth_manager.get_access_token(as_dict=False)
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/oauth2.py", line 471, in get_access_token
    "code": code or self.get_auth_response(),
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/oauth2.py", line 435, in get_auth_response
    return self._get_auth_response_interactive(open_browser=open_browser)
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/oauth2.py", line 388, in _get_auth_response_interactive
    response = SpotifyOAuth._get_user_input(prompt)
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/oauth2.py", line 121, in _get_user_input
    return input(prompt)
EOFError: EOF when reading a line
Removing event mycroft-spotify.forslund:launch_librespot
Removing event mycroft-playback-control.mycroftai:PlayQueryTimeout
2021-01-16 21:43:49.389 | INFO     |  1595 | Playback Control Skill |    No matches

Here is the full output from the error:
2021-01-16 21:43:43.725 | INFO     |  1595 | Playback Control Skill | Resolving Player for: 2pac on spotify
2021-01-16 21:43:44.040 | INFO     |  1595 | spotipy.oauth2 | User authentication requires interaction with your web browser. Once you enter your credentials and give authorization, you will be redirected to a url.  Paste that url you were directed to to complete the authorization.
2021-01-16 21:43:44.041 | INFO     |  1595 | spotipy.oauth2 | Opened https://accounts.spotify.com/authorize?client_id=xx&response_type=code&redirect_uri=https%3A%2F%2Flocalhost%3A8888&scope=playlist-read-private+streaming+user-library-read+user-read-playback-state+user-top-read in your browser
Enter the URL you were redirected to: 2021-01-16 21:43:44.050 | ERROR    |  1595 | mycroft-spotify_forslund.spotify:get_devices:80 | EOF when reading a line
Removing event mycroft-playback-control.mycroftai:PlayQueryTimeout
2021-01-16 21:43:44.075 | INFO     |  1595 | SpotifySkill | Handling "2pac" as a genric query...
2021-01-16 21:43:44.075 | INFO     |  1595 | SpotifySkill | Checking users playlists
2021-01-16 21:43:44.076 | INFO     |  1595 | spotipy.oauth2 | User authentication requires interaction with your web browser. Once you enter your credentials and give authorization, you will be redirected to a url.  Paste that url you were directed to to complete the authorization.
2021-01-16 21:43:44.077 | INFO     |  1595 | spotipy.oauth2 | Opened https://accounts.spotify.com/authorize?client_id=xx&response_type=code&redirect_uri=https%3A%2F%2Flocalhost%3A8888&scope=playlist-read-private+streaming+user-library-read+user-read-playback-state+user-top-read in your browser
Enter the URL you were redirected to: Removing event mycroft-playback-control.mycroftai:PlayQueryTimeout
2021-01-16 21:43:44.095 | ERROR    |  1595 | mycroft.skills.mycroft_skill.mycroft_skill:on_error:835 | An error occurred while processing a request in Spotify Skill
Traceback (most recent call last):
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/oauth2.py", line 119, in _get_user_input
    return raw_input(prompt)
NameError: name 'raw_input' is not defined

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/pi/mycroft-core/mycroft/skills/mycroft_skill/event_container.py", line 66, in wrapper
    handler(message)
  File "/home/pi/mycroft-core/mycroft/skills/common_play_skill.py", line 96, in __handle_play_query
    result = self.CPS_match_query_phrase(search_phrase)
  File "/opt/mycroft/skills/mycroft-spotify.forslund/__init__.py", line 436, in CPS_match_query_phrase
    confidence, data = self.generic_query(phrase, bonus)
  File "/opt/mycroft/skills/mycroft-spotify.forslund/__init__.py", line 552, in generic_query
    playlist, conf = self.get_best_user_playlist(phrase)
  File "/opt/mycroft/skills/mycroft-spotify.forslund/__init__.py", line 924, in get_best_user_playlist
    playlists = list(self.playlists.keys())
  File "/opt/mycroft/skills/mycroft-spotify.forslund/__init__.py", line 818, in playlists
    playlists = self.spotify.current_user_playlists().get('items', [])
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/client.py", line 587, in current_user_playlists
    return self._get("me/playlists", limit=limit, offset=offset)
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/client.py", line 284, in _get
    return self._internal_call("GET", url, payload, kwargs)
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/client.py", line 220, in _internal_call
    headers = self._auth_headers()
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/client.py", line 211, in _auth_headers
    token = self.auth_manager.get_access_token(as_dict=False)
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/oauth2.py", line 471, in get_access_token
    "code": code or self.get_auth_response(),
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/oauth2.py", line 435, in get_auth_response
    return self._get_auth_response_interactive(open_browser=open_browser)
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/oauth2.py", line 388, in _get_auth_response_interactive
    response = SpotifyOAuth._get_user_input(prompt)
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/oauth2.py", line 121, in _get_user_input
    return input(prompt)
EOFError: EOF when reading a line
Removing event mycroft-spotify.forslund:launch_librespot
Removing event mycroft-playback-control.mycroftai:PlayQueryTimeout
2021-01-16 21:43:49.389 | INFO     |  1595 | Playback Control Skill |    No matches

Here is the full output from the error:
2021-01-16 21:43:43.725 | INFO     |  1595 | Playback Control Skill | Resolving Player for: 2pac on spotify
2021-01-16 21:43:44.040 | INFO     |  1595 | spotipy.oauth2 | User authentication requires interaction with your web browser. Once you enter your credentials and give authorization, you will be redirected to a url.  Paste that url you were directed to to complete the authorization.
2021-01-16 21:43:44.041 | INFO     |  1595 | spotipy.oauth2 | Opened https://accounts.spotify.com/authorize?client_id=xx&response_type=code&redirect_uri=https%3A%2F%2Flocalhost%3A8888&scope=playlist-read-private+streaming+user-library-read+user-read-playback-state+user-top-read in your browser
Enter the URL you were redirected to: 2021-01-16 21:43:44.050 | ERROR    |  1595 | mycroft-spotify_forslund.spotify:get_devices:80 | EOF when reading a line
Removing event mycroft-playback-control.mycroftai:PlayQueryTimeout
2021-01-16 21:43:44.075 | INFO     |  1595 | SpotifySkill | Handling "2pac" as a genric query...
2021-01-16 21:43:44.075 | INFO     |  1595 | SpotifySkill | Checking users playlists
2021-01-16 21:43:44.076 | INFO     |  1595 | spotipy.oauth2 | User authentication requires interaction with your web browser. Once you enter your credentials and give authorization, you will be redirected to a url.  Paste that url you were directed to to complete the authorization.
2021-01-16 21:43:44.077 | INFO     |  1595 | spotipy.oauth2 | Opened https://accounts.spotify.com/authorize?client_id=xx&response_type=code&redirect_uri=https%3A%2F%2Flocalhost%3A8888&scope=playlist-read-private+streaming+user-library-read+user-read-playback-state+user-top-read in your browser
Enter the URL you were redirected to: Removing event mycroft-playback-control.mycroftai:PlayQueryTimeout
2021-01-16 21:43:44.095 | ERROR    |  1595 | mycroft.skills.mycroft_skill.mycroft_skill:on_error:835 | An error occurred while processing a request in Spotify Skill
Traceback (most recent call last):
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/oauth2.py", line 119, in _get_user_input
    return raw_input(prompt)
NameError: name 'raw_input' is not defined

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/pi/mycroft-core/mycroft/skills/mycroft_skill/event_container.py", line 66, in wrapper
    handler(message)
  File "/home/pi/mycroft-core/mycroft/skills/common_play_skill.py", line 96, in __handle_play_query
    result = self.CPS_match_query_phrase(search_phrase)
  File "/opt/mycroft/skills/mycroft-spotify.forslund/__init__.py", line 436, in CPS_match_query_phrase
    confidence, data = self.generic_query(phrase, bonus)
  File "/opt/mycroft/skills/mycroft-spotify.forslund/__init__.py", line 552, in generic_query
    playlist, conf = self.get_best_user_playlist(phrase)
  File "/opt/mycroft/skills/mycroft-spotify.forslund/__init__.py", line 924, in get_best_user_playlist
    playlists = list(self.playlists.keys())
  File "/opt/mycroft/skills/mycroft-spotify.forslund/__init__.py", line 818, in playlists
    playlists = self.spotify.current_user_playlists().get('items', [])
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/client.py", line 587, in current_user_playlists
    return self._get("me/playlists", limit=limit, offset=offset)
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/client.py", line 284, in _get
    return self._internal_call("GET", url, payload, kwargs)
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/client.py", line 220, in _internal_call
    headers = self._auth_headers()
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/client.py", line 211, in _auth_headers
    token = self.auth_manager.get_access_token(as_dict=False)
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/oauth2.py", line 471, in get_access_token
    "code": code or self.get_auth_response(),
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/oauth2.py", line 435, in get_auth_response
    return self._get_auth_response_interactive(open_browser=open_browser)
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/oauth2.py", line 388, in _get_auth_response_interactive
    response = SpotifyOAuth._get_user_input(prompt)
  File "/home/pi/mycroft-core/.venv/lib/python3.7/site-packages/spotipy/oauth2.py", line 121, in _get_user_input
    return input(prompt)
EOFError: EOF when reading a line
Removing event mycroft-spotify.forslund:launch_librespot
Removing event mycroft-playback-control.mycroftai:PlayQueryTimeout
2021-01-16 21:43:49.389 | INFO     |  1595 | Playback Control Skill |    No matches

~/mycroft-core/skills/mycroft-spotify.forslund doesn't sound right. It needs to be in the directory you are in when you're running start-mycroft.sh which would likely be ~/mycroft-core/
It's a bit weird, and I will be trying to make that a bit easier

~/mycroft-core/skills/mycroft-spotify.forslund doesn't sound right. It needs to be in the directory you are in when you're running start-mycroft.sh which would likely be ~/mycroft-core/
It's a bit weird, and I will be trying to make that a bit easier

Thanks @forslund !! All working now, appreciate the help 👍
My bad for missing this crucial bit prior to running spauth.py:

then in the mycroft-core dir run

Cheers

Thanks @forslund !! All working now, appreciate the help 👍
My bad for missing this crucial bit prior to running spauth.py:

then in the mycroft-core dir run

Cheers

I ran this on my laptop:
git clone https://github.com/forslund/spotify-skill/
git checkout feature/local-api-key
wget https://gist.githubusercontent.com/forslund/8a2045aaf7c1244d35920c67b3e22930/raw/9ca6931269126be1b1c447558b2d9c067c1b8685/spauth.py
pip install spotipy==2.14.0
python3 spauth.py

I am sure i did not need to have the skill on my laptop, but anyway, here we are :) After that I copied the .cach-my_username file to  /home/pi/mycroft-core/ on my raspberrypi and then I ran:
mycroft-msm install mycroft-spotify
mycroft-pip install spotipy==2.14.0
cd mycroft-core/skills/mycroft-spotify.forslund/
git checkout feature/local-api-key

After that I rebooted but still I get:
 16:54:39.259 | INFO     |   682 | SpotifySkill | None
 16:54:39.261 | ERROR    |   682 | SpotifySkill | User info has not been set.

In the logfile and Mycroft sais:
I'm not connected to your Spotify account yet. Go to home dot mycroft dot   ai to setup your Spotify skill.

Any pointers?

It can only see logged in devices. so if the devices are set to be in discovery mode. After connecting to them using your phone they will be logged in.
What devices are you trying with?

What devices are you trying with?

I have some chromecast devices. I works well enough for me with the current mode of operation, I was just surprised that nothing was showing up first :)

I have been able to successfully connect to Spotify and can use Mycroft to remotely play Spotify songs on my phone but I have been unable to set my Picroft as a device.
When Spotify is not open on my phone and I say "What Spotify devices are available?", Mycroft replies with "There are no Spotify devices available".
I have added my Username and Password to 'Play Spotify' section of my skills, however when I click on the 'Connect' button, it opens a page that simply says 'INVALID_CLIENT: Failed to get client' at the following url:
https://accounts.spotify.com/authorize?client_id=[MYCLIENTID]&redirect_uri=https%3A%2F%2Fapi.mycroft.ai%2Fv1%2Fauth%2Fcallback&scope=user-library-read+streaming+playlist-read-private+user-top-read+user-read-playback-state
Can anyone shed any light on where I am going wrong. Thanks.

Hi, I don't think a spotify player is integrated in this skill. If you wish to play music on your raspberry pi you can do what I did and install raspotify on there: https://github.com/dtcooper/raspotify

I have been able to successfully connect to Spotify and can use Mycroft to remotely play Spotify songs on my phone but I have been unable to set my Picroft as a device.
When Spotify is not open on my phone and I say "What Spotify devices are available?", Mycroft replies with "There are no Spotify devices available".
I have added my Username and Password to 'Play Spotify' section of my skills, however when I click on the 'Connect' button, it opens a page that simply says 'INVALID_CLIENT: Failed to get client' at the following url:
https://accounts.spotify.com/authorize?client_id=[MYCLIENTID]&redirect_uri=https%3A%2F%2Fapi.mycroft.ai%2Fv1%2Fauth%2Fcallback&scope=user-library-read+streaming+playlist-read-private+user-top-read+user-read-playback-state
Can anyone shed any light on where I am going wrong. Thanks.

Hi, I don't think a spotify player is integrated in this skill. If you wish to play music on your raspberry pi you can do what I did and install raspotify on there: https://github.com/dtcooper/raspotify

Thank you Mikael, that was it. The Pi is now showing up as a device and it does try to play the tracks, however there is no sound output to my speakers. I am using a USB DAC with external speakers so I think some tweaking of the output device is required.

Hello, everyone,
I have the INVALID-Client issue and I tried to understand what all of you guys said here, I have almost no capacities in this domain so is it possible to have some help with my problem or like a complete guide ^^?
I am really sorry to make you guys do all over your explanations again
Thanks for your help in advance!
BTW I'm running a Rasp pi 3 model B ^^

Hi @Frederic94220 Above in a comment made the 30th Oct I've provided some instructions. I'm going to try to get a bit more streamlined approach into the skill during next week. (Most is done, just trying to document things).
It won't be perfect but a bit better than following instructions in an issue on github.

I've now merged the change to allow local api keys, with a basic helper script and instructions in the readme. Still work to do before it's completely user friendly however.

Do you mean the readme of the spotify skill? Cause I can't see a change there...
Obviously I have the same problem an tried your instructions @forslund but I despair already at the first one. What shall I do once I have a spotify developer account? What whitelist? And what is a secret? As you may notice, I have no idea about coding but I really want to use the spotify function with my picroft again. I really loved it...
Would be great if one of you could help me out <3

Yes, the steps I've written are here: https://github.com/forslund/spotify-skill#creating-access-token

Thanks, I must add a note that this hasn't been released to the mainline (there will currently be some conflicts with the Mark-1 install until the next release of core). Currently you need to ask Mycroft to install the beta version of the skill (or use the -l flag with msm), or install it manually.

Hi @JesusCendejas, sorry for the delay in answering. Currently you need to install the beta version of the skill, you should be able to say "Hey mycroft, install the beta version of the spotify skill". Then you need to follow the instructions from the readme here: https://github.com/forslund/spotify-skill#authorization
Let me know if you get stuck some where and we'll try to improve the instructions

Where do you get that, is it the skill log or is it when running the auth script?
Another thing that may be of interest, what  platform is this on?

auth.py finishes successfully, after that (according to README.md) one has to add the account into the skill settings at https://account.mycroft.ai/skills. This is the step where the setup fails. After saving the configuration and pressing the "Connect" button, INVALID_CLIENT: Failed to get client is returned by the webpage.
I have my mycroft running in docker.

Ok, something is off, after the update there should be no Connect button on the skills page. Can you verify that the skill starts successfully  by either using the :skills command in the mycroft-cli (if the skill is red it hasn't loaded correctly) or asking Mycroft "what spotify devices are available" (he should reply with something about missing credentials).
Also if you have several installs there may be tabs on the skill page with multiple versions of the spotify skill

@forslund Thank you very much. The truth is that I was able to register the spotify account, however when I ask What Spotify devices are available? mycroft returns There are no Spotify devices available, just like when I say some command like Play Hello Nasty on Spotify it prints I'm not sure how to play Play Hello Nasty on Spotify, how can I fix it? good evening

The problem may be that there is no spotify-connect enabled player set up? The skill is not a player on it's own, instead it uses the spotify-connect api to start playback on detected devices (they need to be logged in with user / password...see readme). It was developed with librespot and the Spotify desktop-client as reference devices.

Hello @forslund
I read through your intructions and then tried to run the spauth.py, but when i enter the url i was redirected to i get the following error:
Traceback (most recent call last):   File "spauth.py", line 13, in <module>     sp = spotipy.Spotify(auth_manager=am) TypeError: __init__() got an unexpected keyword argument 'auth_manager'
I would be really greatful for any help

Hi @Maxibraeu, the instructions here are a bit dated. please checkout the default branch (21.02) and follow the instructions in the readme.md here.
Since you've switched branches back and forth the incorrect version of spotipy may be installed. So you might need to run something like
source venv-activate.sh
mycroft-pip install -r /opt/mycroft/skills/mycroft-spotify.forslund/requirements.txt

Let me know how you get along with that.

Hi @forslund  its me again,first thanks for your quick response. I tried to do the new installation but failed on following error while installing raspotify.
After I did
following error ocurred
'''The following packages have unmet dependencies:
 raspotify : Depends: libc6 (>= 2.31) but 2.28-10+rpt2+rpi1+deb10u1 is to be ins                                                                                talled
             Depends: libasound2 (>= 1.2.4)
             Depends: alsa-utils (>= 1.2.4) but 1.1.8-2+rpt1 is to be installed
             Depends: libpulse0 (>= 14.2) but 12.2-4+deb10u1+rpt3 is to be installed
             Depends: systemd (>= 247.3) but 241-7~deb10u8+rpi1 is to be installed
             Depends: init-system-helpers (>= 1.60) but 1.56+nmu1 is to be installed
E: Unable to correct problems, you have held broken packages.'''

but if I search for example libc6 there is no version 2.31

Thanks for help

@Maxibraeu sorry for the late response. I've been away for a couple of days. Can you tell me what system you're running on?
Assuming that it's the picroft you're using: It could be that Raspotify has switch to the latest Debian Bullseye as target for their build and the picroft is still based on the old Debian Buster. I shall test this and see if I can do a custom build and provide a repo for the picroft.

@forslund you are completely right. I am using Picroft and it would be really nice if you could make a custom build and provide a repo. Thank you very much. 😃

@Maxibraeu sorry for the long response time. I haven't gotten around to creating a debian repo of my own but I checked my version and you can download the deb from this github tag: https://github.com/dtcooper/raspotify/releases/tag/0.31.3
My guess is that all 0.31.x releases will work.

Hi @forslund thanks for you anwer, I installed your version of Raspotify and then found all files from your description , but when I was going on and then finaly tried to use the Skill there was an Error again wich looked like this:
´´´play never gonna give you up on spotify

Just a second
Unable to authorize with the Spotify service. Please
go to Skill settings at home dot mycroft dot ai to
verify your username and password and to Connect to
Spotify.´´´

@forslund Its me again I saw that I used the wrong username and now its working thanks for all you help in the last weeks 😄

hello I have a problem I follow everything but I get stuck at this command

git checkout feature/local-api-key

giving me this error
error: pathspec 'feature/local-api-key' did not match any file(s) known to git
how can i solve? what am I missing?
thank!!!!!

@Maxibraeu sorry for the long response time. I haven't gotten around to creating a debian repo of my own but I checked my version and you can download the deb from this github tag: https://github.com/dtcooper/raspotify/releases/tag/0.31.3
My guess is that all 0.31.x releases will work.

hello I have a problem I follow everything but I get stuck at this command

git checkout feature/local-api-key

giving me this error
error: pathspec 'feature/local-api-key' did not match any file(s) known to git
how can i solve? what am I missing?
thank!!!!!

hello I have a problem I follow everything but I get stuck at this command
git checkout feature/local-api-key
giving me this error
error: pathspec 'feature/local-api-key' did not match any file(s) known to git
how can i solve? what am I missing?
thank!!!!!

@Maxibraeu sorry for the long response time. I haven't gotten around to creating a debian repo of my own but I checked my version and you can download the deb from this github tag: https://github.com/dtcooper/raspotify/releases/tag/0.31.3
My guess is that all 0.31.x releases will work.

hello I have a problem I follow everything but I get stuck at this command
git checkout feature/local-api-key
giving me this error
error: pathspec 'feature/local-api-key' did not match any file(s) known to git
how can i solve? what am I missing?
thank!!!!!


Get Uid from PresentTags

Hi,
thanks for this awesome library.
Is there a chance I could get the cards uid from the PresentTags?
I am using the uid as an identifier for the tags, as the ones I have cannot be read through ReadTag

That should be doable. I would greatly appreciate a PR for this ;-)
It's about adding the byte[] in the class and adding it here: https://github.com/Ellerbach/LegoDimensions/blob/ce93166e54394cea51894b9a345dd323cfc047ec/LegoDimensions/LegoPortal.cs#L474
I think it's about it! And testing all this!

And thanks for the PR as well! The new release is available.


Add hana workload

Short description:
More details:
What this PR does / why we need it:
Which issue(s) this PR fixes:
Special notes for reviewer:
Bug:

/verified


【史上最全】这份超实用的科学上网教程，零基础也能搞定

最新最全的科学上网指南：科学上网教程

我在想我们可以合作进行黑客攻击。我只是在找一个导师。
On Fri, Jun 16, 2023, 3:31 PM Swissky @.***> wrote:

Closed #50 https://github.com/swisskyrepo/SSRFmap/issues/50 as
completed.
—
Reply to this email directly, view it on GitHub
https://github.com/swisskyrepo/SSRFmap/issues/50#event-9552330748, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AOTAZVUUDSIMNXCC36NLDWDXLRU2NANCNFSM6AAAAAAZI62DKI
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>


MediaWiki redirects to the homepage after editing the post (with many external links)

Describe the bug
Hi, I don't have anything to do with security, I updated it as WHM sent it to "OWASP CRS v3.x for ModSec 2.9 (via RPM)"
It turns out that now I can't put many external links in a publication in MEDIAWIKI, would that have any solution besides disabling security?
Thanks!
Logs and dumps
https://imgur.com/a/mca3e7m
The interesting thing is that this is not my IP, so why does another IP appear?
Thank you for helping lay people like me.

When I turn off Vendor OWASP CRS v3.x for ModSec 2.9
in WHM> ModSecurity vendors
My media wiki works again as expected, in the worst case, can I disable OWASP CRS by Htaccess only for this domain?

The reason why you don't see your IP is because you are using Cloudflare (it's a proxy, so their IPs are in logs).
I will need more info, are you able to upload full request log?

Ahhh it makes sense,
I am already using the following security plugins in my installation
cPGuard Security
ConfigServer Security & Firewall
ImunifyAV
Can I disable any of them with this new update? Is it okay to get everyone connected?
As for cloudflare, would I have to put his ips so as not to block the connection of legitimate traffic? Does it happen automatically like Modsec?
About the LOG is the file really big or do you want me to leave only the data for the last few days? https://fromsmash.com/logmodsec (60MB)

I am already using the following security plugins in my installation
cPGuard Security
ConfigServer Security & Firewall
ImunifyAV
Can I disable any of them with this new update? Is it okay to get everyone connected?

No, you don't have to.

As for cloudflare, would I have to put his ips so as not to block the connection of legitimate traffic?

Definitely not! All of your visitors are connecting from Cloudflare IPs.

About the LOG is the file really big or do you want me to leave only the data for the last few days? https://fromsmash.com/logmodsec (60MB)

It's ok but take it down ASAP, it contains lot's of sensitive information.

Done
The mediawiki site is wiki.gugacast

Unfortunately, this issue can be handled only within exclusion rules package created especially for MediaWiki (which isn't available yet). If you know how, you can save this rule (from my pesonal collection) inside file /etc/modsecurity/crs/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf, it should resolve your issue :
SecRule REQUEST_FILENAME "@endsWith /api.php" \
    "id:9991900,\
    phase:2,\
    pass,\
    t:none,\
    nolog,\
    chain"
    SecRule ARGS:action "@streq stashedit" \
        "t:none,\
        chain"
        SecRule &ARGS:action "@eq 1" \
            "t:none,\
            ctl:ruleRemoveTargetById=930120;ARGS:text,\
            ctl:ruleRemoveTargetById=932100;ARGS:text,\
            ctl:ruleRemoveTargetById=941100;ARGS:text,\
            ctl:ruleRemoveTargetById=941160;ARGS:text"

Thank you @azurit!
I'll try to do that, if I can do an evaluation, is it a good setup for these plug-ins that I have installed on my WHM?
cPGuard Security
ConfigServer Security & Firewall
ImunifyAV

CRS

Does not leaving all these plug-ins running on my machine end up consuming more than necessary for security?
Does any cancel the other? Can I leave OWASP CRS v3.x for ModSec 2.9 (via RPM) off until this update to MediaWiki?
Sorry so many questions :)

Is there an update forecast for MediaWiki? Hug!

Unfortunately, this issue can be handled only within exclusion rules package created especially for MediaWiki (which isn't available yet). If you know how, you can save this rule (from my pesonal collection) inside file /etc/modsecurity/crs/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf, it should resolve your issue :

I'm not finding this path, I found this file at:
/etc/apache2/conf.d/modsec_vendor_configs/OWASP3/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example
That's right?
Just paste this command at the end of the file and remove the .example from the file name?

I did it and it didn't work for me

Updated log: https://pastebin.com/pUK2Dpr2
The password is your username.
azurit

Try renaming file:
/etc/apache2/conf.d/modsec_vendor_configs/OWASP3/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf.example
To:
/etc/apache2/conf.d/modsec_vendor_configs/OWASP3/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf

@azurit: Do we have enough to incorporate the fixes for these FPs in our MediaWiki exclusion package?
Or do we close this issue here?

@azurit: Do we have enough to incorporate the fixes for these FPs in our MediaWiki exclusion package?
Or do we close this issue here?

We have dokuwiki exclusion, but nothing for mediawiki.

We have dokuwiki exclusion, but nothing for mediawiki.

Closing this since we do not have a rule exclusion package for MediaWiki and the FPs are generic enough, so we can not simply remove them.


macOS

Does this support MacOS ? I would like to use it for Mac desktops in order to run workloads on our Macs :)
It seems contanerd suppors windows via the Windows hyper shim.

You could run this on MacOS but you would need a different container runtime as containerd doesn't run on MacOS natively.


npm won't use the new path

I found this extra command that convinced npm to use the new path for global install:
npm config set prefix '~/.npm-packages'
from https://docs.npmjs.com/getting-started/fixing-npm-permissions
Have tried this on a fresh ubuntu 12.04 install

Hi, can you explain what you mean by the bug report - I'm not sure if this is a bug or not?
My script pretty much does what that page is explaining - it sets the config, but also tries to move any existing global packages to the new location for you. There was an issue with one of the npm commands outlined in #23 which prevented this working, but it may have been fixed now.

Closing this as I don't think it's a bug - script is an alternative to the prefix (tries to help you move existing packages to new prefix automatically)


Add missing comma to json snippet

@dracan : Thanks for your contribution! The author(s) have been notified to review your proposed change.

Thanks @dracan for finding and fixing this JSON bug!
#sign-off


Monix port

This is a port of Outwatch to the Monix library.

Would it be worth it to port directly to a preliminary Monix 3 Release?

All that's needed to upgrade to Monix 3 is to update the dependency version, there seem to be no breaking changes in the API used.

Interesting. Are monix.Task and cats.effect.IO compatible?

They are!

@mariusmuja do you know how the fullOpt build size is affected?

@mariusmuja do you know how the fullOpt build size is affected?

Because of the dead code elimination that Scala.js does, it's difficult to say precisely. But assuming that no other features of Monix are used in addition to what the library (and the tests) are using, the bundled size seems to be smaller. I did a comparison of the test bundle size a while ago and posted it in #96 , here it is:
With RxJS:
-rw-rw-r--   1 marius marius  313987 Nov 21 21:41 outwatch-test-opt-bundle.js.gz
-rw-rw-r--   1 marius marius 1593988 Nov 21 21:34 outwatch-test-opt-bundle.js
-rw-rw-r--   1 marius marius  837289 Nov 21 21:33 outwatch-test-opt.js

Monix port:
-rw-rw-r--   1 marius marius  240514 Nov 21 21:38 outwatch-test-opt-bundle.js.gz
-rw-rw-r--   1 marius marius 1077036 Nov 21 21:38 outwatch-test-opt-bundle.js
-rw-rw-r--   1 marius marius 1046342 Nov 21 21:37 outwatch-test-opt.js

I'm also a bit concerned that the users now have to deal with both Monix Tasks and IO. You said that they are compatible? But could outwatch be used with one of them only? How about IO and the batched execution context?

I'm also a bit concerned that the users now have to deal with both Monix Tasks and IO. You said that they are compatible? But could outwatch be used with one of them only? How about IO and the batched execution context?

Users don't have to deal with both. For example, Task is no longer used in the outwatch code (and before it was only used in the tests).
IO doesn't know or care about the batched execution context, it's only Monix that does.

The Scheduler is now injected as an implicit argument where needed. For example, this allows a TrampolineScheduler to be injected in the two tests where we want synchronous behaviour for easier testing.
Client code will require an implicit Scheduler in scope, but users will get a compile error asking to import monix.execution.Scheduler.Implicits.global (similar to the requirement to have an  ExecutionContext in scope when working with futures... in fact a Scheduler is an ExecutionContext).


Not sending anything to the server.

Not sure what is going on here but i feel like I am missing something.
TypeError: fetch failed
at node:internal/deps/undici/undici:12618:11
at process.processTicksAndRejections (node:internal/process/task_queues:95:5) {
cause: AggregateError [ECONNREFUSED]:
at internalConnectMultiple (node:net:1116:18)
at afterConnectMultiple (node:net:1683:7) {
code: 'ECONNREFUSED',
[errors]: [ [Error], [Error] ]
}
}

Hi,
That error suggest that the FS22_BOT_URL_CAREER_SAVEGAME or FS22_BOT_URL_SERVER_STATS values have either not been specified correctly or are unreachable. Verify that you can reach the URLs from the host/container you using to run the bot.

Alright well now that has stopped and it just keeps saying updating in the GIT console. Will it send a message to the console once it has successfully sent something to the server or is Updating the only console feedback? My discord server/channel isn't receiving anything from the bot.

Yes, the bot will regularly poll the server according to the FS22_BOT_POLL_INTERVAL_MINUTES setting which, by default, is set to 1 minute. When it does that, you will see 'Updating...' in the console. If the bot detects a change (such as a new player having joined the server), it will say 'Sending message to: ...' in the console. A message should then appear in Discord and, if relevant, the bot's status will also be updated to reflect the new player count, e.g. 'Playing online: 1/4'.
If no messages are appearing when a player joins/leaves the server and you have specified FS22_BOT_DISCORD_SERVER_NAME and/or FS22_BOT_DISCORD_CHANNEL_NAME values, ensure they are spelled correctly, especially if they contain special characters, as the bot will only send messages if it is connected to a server with that name and/or channel name.
By default, the bot will post to all channels it can access. So, an alternative approach to manage the channels it posts to, would be to leave FS22_BOT_DISCORD_SERVER_NAME and FS22_BOT_DISCORD_CHANNEL_NAME blank and use roles/permissions in your Discord server to control the channels the bot appears in/posts to.


Use uppercase first letter in HTTP header keys

Any HTTP server I know (but, honestly, I don't know many) use uppercase first letters in HTTP header keys (e.g., 'Transfer-Encoding' rather than 'transfer-encoding').

´From a "pure" point of view, there is nothing wrong with what I'm doing and I'd like to say "no, I won't fix that" with a load of arguments back to you.
But... you might want to obfuscate the fact that you're using Boost.Http (there are several reasons to do that). So I'm not going to reply that with "won't fix" (even if I want to).
If I only see what is relevant for this issue, the headers are present in Boost.Http at two different layers. The first layer is the user layer and I'll definitively not change that because of a silly reason like this (and this would be a change that doesn't even make sense to all HTTP backends).
The second layer is the specific implementation basic_socket, a model of the Socket concept. I could add a "policy" (or other term, if you may) template argument to this socket in which I could put an enum where the user could choose to send "all lowercase", "all uppercase" or "Camel-Case". I already plan to introduce this "policy" to specify parser options like "maximum header size" and others.

ACK...seems to be a reasonable solution.


no display error if file is not found

Laravel Mix Version: 1.4.5
Node Version: 8.0.0
NPM Version: 5.4.1
OS: Ubuntu Server 17.04

If a file specified in .script is not existing compile is running normal.
I expected an error like it is happening in .js.
Steps To Reproduce:
mix.styles([
    'node_modules/html5-boilerplate/dist/css/main.css',
    'node_modules/datatables/media/css/dataTables.bootstrap.css'
], 'public/css/vendor.css');

results
/css/vendor.css  58.5 kB          [emitted]
results If I change the filenames
/css/vendor.css  0 kB          [emitted]
But no errors or warnings.

This also seems to happen if there is a syntax error in the webpack.mix.js file. For instance this code below did not error even though I accidentally left the semi colon on my first .js(). After downgrading to 1.0 it let me know that I had an unexpected token .
mix.js('resources/assets/js/header/header.js', 'public/js');
    .js(footer_scripts, 'public/js/footer.js')
    .version();

I recommend this function in another issues , but the issues is closed too =v

Yep. Came into this issue as well. The transpiler should provide atleast a warning or color the lines which outputted 0 bytes in red. But instead you get only this

any news ?

Any update on this?


Error downloading screenshot using Chart REST API

I'm unable to download a screenshot using the Chart REST API screenshot endpoint. When I call the /charts/<pk>/screenshot/<digest> endpoint, I get {"message": "Fatal error"} response. In the logs, I can see the following error:
ERROR:root:screenshot() got an unexpected keyword argument 'rison'
--
Traceback (most recent call last):
File "/usr/local/lib/python3.7/site-packages/flask_appbuilder/api/__init__.py", line 84, in wraps
return f(self, *args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/superset/views/base_api.py", line 50, in wraps
duration, response = time_function(f, self, *args, **kwargs)
File "/usr/local/lib/python3.7/site-packages/superset/utils/core.py", line 1282, in time_function
response = func(*args, **kwargs)
TypeError: screenshot() got an unexpected keyword argument 'rison'

I've never worked with rison but from the documentation, it seems that it adds a keyword argument rison with the parameters.
The traceback along with the documentation suggest that screenshot method might be missing **kwargs in its signature.
Expected results
The screenshot being returned.
Actual results
The REST API returns {"message": "Fatal error"}
How to reproduce the bug

Call cache_screenshot on one of your charts: https://my-superset.com/api/v1/charts/1/cache_screenshot
Open the image_url link from the response of the previous request: https://my-superset.com/api/v1/charts/1/screenshot/<digest>
Observe response {"message": "Fatal error"}

Environment

superset version: 0.37.2
python version: 3.7.9
node.js version: v12.20.0

Checklist

[x] I have checked the superset logs for python stacktraces and included it here as text if there are any.
[x] I have reproduced the issue with at least the latest released version of superset.
[x] I have checked the issue tracker for the same issue and I haven't found one similar.

oh! Thank you for reporting this, it's an actual bug, made the fix on #11931

No problem, thank you for fixing it so fast!


[5.4] Remove asset helper from mix() helper

Fix for issue #20164

I'm getting really weary of all these mix changes.

Actually reverted. I'm not accepting any Mix changes from anyone accept @JeffreyWay for at least a month.

Sounds like a good idea

Works perfectly as-is.


Error message is incorrect (saying "in this folder") if to create two equal names for chats/prompt in the root

EPAM AI DIAL chat version
0.6.0
What happened?

Create two new conversations -> they are created in Today
Rename the second one to "New conversation 1"
3 Check error message appeared on confirmation button -> Error message ends "in this folder", though chat is in the root -> bug

Note: the same issue is in Prompts
Expected result: in this case error message should be "Conversation with name "New conversation 1" already exists"
Or we can change the message for all cases to "Conversation with name "New conversation 1" already exists on this level"
Confidential information

[X] I confirm that do not share any confidential information

Discussed on the daily with the team. Decided that it's not an issue.


503 accessing registry

Looks like https://bower.herokuapp.com/ is down.

+1

+1
I freaked out because it happened right after I updated bower!

may be it is a sign to start using  npm?

https://gitter.im/bower/bower

@CFXd, oh. All my CI build has filed now =(

I had issues, but bower seems to working fine now.

Yes, seems to be back up and running fine now. Thanks for confirming this wasn't a local issue guys!

Request to https://bower.herokuapp.com/packages/chai failed with 503

The cause of crash was high CPU load.
Heroku agreed to sponsor Bower's hosting with $150/month. I've added another small dyno.
We also have Heroku metrics now, so we can monitor Bower's registry performance.
Cheers and thanks for Heroku!

Thanks Heroku!

I'm seeing this today. Getting:
bower jquery#~2.1.0                                                 EINVRES Request to https://bower.herokuapp.com/packages/jquery failed with 503


[suggestion] make seeds oreDictionaried with treeSapling

Would go a long way for compatibility with recipes without having to craft into saplings first.

I guess since I implemented the dirt bucket which changes seed to saplings and vice-versa for free then this actually makes a lot of sense.

I just added the code to register all of the "Vanilla" dynamic seeds as "treeSapling" in the OreDictionary.


Setup site with Google Search index

This will allow us to submit a sitemap following a 301 (track status here: #3)

Apologies, this won't be needed


Is there support for swagger 3+?

Hi there! I am looking for swagger codeine solution for my angular app and found your package... But when I started to try it I got error that Only Swagger 2 specs are supported... Why is it so? Should I hope to get also Swagger 3 support in this lib? Or maybe have I missed some configuration?

Hey! I am sorry to say that there is currently no support for Swagger/OpenAPI 3, and we sadly don't have the capacity to look into that at the moment. I am very happy if someone want's to give it a shot though!


feat: switch hosting to Fleek

This PR does the minimal refactor to reuse DNSLink hosting and asset pinning provided by Fleek.

I'm having a bit of an issue with the new fleek IPNS URLs. It doesn't seem to be resolving with the latest version of js-ipfs-core. 🤔

NVM, just tried to load the root IPNS domain and everything is working fine. 😁


Resource images missing in Windows exported instances

How to reproduce :

Create a panel
Add an image resource to it
Add a uiImage component that points to the image resource
Export the instance as an exe file
Open the exe file on a different computer
=> The standalone exe instance displays "Invalid Resource" instead of the image
This works fine on Mac.

I think you can close this one : I no longer have the issue with the latest version of Ctrlr !


Mapping fields > name property to JSON property two levels down

Question 1:  How can I map the fields > name property to my -column_value property?
Question 2:  How can I map to a checkbox (enabled or disabled) if my JSON property is 'y' or 'n' respectively? I know using itemTemplate is one idea but we don't need custom markup but just mapping with a custom value.
jQuery plugin config
            $("#conditionGrid, #actionGrid").jsGrid({
                width: "100%",
                //height: "55%",	//This will introduce scrollbar on .jsgrid-grid-header and .jsgrid-grid-body
				filtering: true,
                editing: true,
                inserting: true,
                sorting: true,
                paging: false,
                autoload: true,
                pageSize: 10,
                pageButtonCount: 5,
                deleteConfirm: "Do you really want to delete the client?",
                controller: db,
                fields: [
					{ name: "condition_number", type: "number", title: "ID", width: 30 },
                    { name: "condition_description", type: "text", title: "Label", width: 175 },
                    { name: "condition_description", type: "text", title: "Formula", width: 175 },
                   { name: "col1", type: "checkbox", title: "1", sorting: false, width: 30,  },
					{ name: "col2", type: "checkbox", title: "2", sorting: false, width: 30 },
                    { type: "control", width: 40 }
                ]
            });

JSON
"condition_details": [
            {
              "condition_number": "1",
              "condition_description": "programcd ='FS' and typeofassistance != 'TA51' and typeofassistance != 'TA52'",
              "condition_column": [
                {
                  "-column_number": "1",
                  "-column_value": "y"
                },
                {
                  "-column_number": "2",
                  "-column_value": "y"
                }],
            {
              "condition_number": "2",
              "condition_description": "edg_group.nfeligrsltcd = 'FL'",
              "condition_postfix": "edg_group.nfeligrsltcd 'fl' ==",
              "condition_column": [
                {
                  "-column_number": "1",
                  "-column_value": "y"
                },
                {
                  "-column_number": "2",
                  "-column_value": "y"
                }]

@tabalinas , @richraid21

What's about redefine loadData of the controller so that you remap your data to the usual for js-grid format?

@tabalinas -
Question 1: I agree that is a solution but that would also mean making a similar change for update, insert and delete of the controller. Is there a better solution?
Question 2: Can you address this question?

Q1: No miracles here, either use the same names in JSON and in the grid, or implement mapping. The mapping can be done on the server, then you won't need to do it in insert and update. I believe, you don't need mapping in delete in any case.
Q2: Again you can remap you y/n to true/false or redefine itemTemplate of the checkbox field. You can be inspired by the implementation tweaking it a bit (https://github.com/tabalinas/jsgrid/blob/master/src/fields/jsgrid.field.checkbox.js#L15)


[BUG] pipeline run failed，job_manager = null

Mage version
python3.9
Describe the bug
When starting the program, the following error will be reported: successfully block the pipeline separately, but the pipeline run will fail
(.venv) PS D:\code\pycode\mage\mage> mage start demo1
WARNING:traitlets:Message signing is disabled.  This is insecure and not recommended!
WARNING:traitlets:Message signing is disabled.  This is insecure and not recommended!
INFO:mage_ai.server.scheduler_manager:Start scheduler.
INFO:mage_ai.server.active_kernel:Switch active kernel: python3
Exception ignored in: <function _ProactorBasePipeTransport.__del__ at 0x000001933ED5D0D0>
Traceback (most recent call last):
  File "C:\Users\wang.qiyuan\AppData\Local\Programs\Python\Python39\lib\asyncio\proactor_events.py", line 116, in __del__
    self.close()
  File "C:\Users\wang.qiyuan\AppData\Local\Programs\Python\Python39\lib\asyncio\proactor_events.py", line 108, in close
    self._loop.call_soon(self._call_connection_lost, None)
  File "C:\Users\wang.qiyuan\AppData\Local\Programs\Python\Python39\lib\asyncio\base_events.py", line 746, in call_soon
    self._check_closed()
  File "C:\Users\wang.qiyuan\AppData\Local\Programs\Python\Python39\lib\asyncio\base_events.py", line 510, in _check_closed
    raise RuntimeError('Event loop is closed')
RuntimeError: Event loop is closed
Checking port 6789 on host localhost...
Traceback (most recent call last):
  File "D:\code\pycode\mage\mage\.venv\lib\site-packages\mage_ai\orchestration\job_manager.py", line 99, in <module>
    job_manager = JobManager()
  File "D:\code\pycode\mage\mage\.venv\lib\site-packages\mage_ai\orchestration\job_manager.py", line 15, in __init__
    self.queue = QueueFactory.get_queue()
  File "D:\code\pycode\mage\mage\.venv\lib\site-packages\mage_ai\orchestration\queue\queue_factory.py", line 19, in get_queue
    self.queue = ProcessQueue(queue_config)
  File "D:\code\pycode\mage\mage\.venv\lib\site-packages\mage_ai\orchestration\queue\process_queue.py", line 66, in __init__
    self.mp_manager = Manager()
  File "C:\Users\wang.qiyuan\AppData\Local\Programs\Python\Python39\lib\multiprocessing\context.py", line 57, in Manager
    m.start()
  File "C:\Users\wang.qiyuan\AppData\Local\Programs\Python\Python39\lib\multiprocessing\managers.py", line 553, in start
    self._process.start()
  File "C:\Users\wang.qiyuan\AppData\Local\Programs\Python\Python39\lib\multiprocessing\process.py", line 121, in start
    self._popen = self._Popen(self)
  File "C:\Users\wang.qiyuan\AppData\Local\Programs\Python\Python39\lib\multiprocessing\context.py", line 327, in _Popen
    return Popen(process_obj)
  File "C:\Users\wang.qiyuan\AppData\Local\Programs\Python\Python39\lib\multiprocessing\popen_spawn_win32.py", line 45, in __init__
    prep_data = spawn.get_preparation_data(process_obj._name)
  File "C:\Users\wang.qiyuan\AppData\Local\Programs\Python\Python39\lib\multiprocessing\spawn.py", line 154, in get_preparation_data
    _check_not_importing_main()
  File "C:\Users\wang.qiyuan\AppData\Local\Programs\Python\Python39\lib\multiprocessing\spawn.py", line 134, in _check_not_importing_main
    raise RuntimeError('''
RuntimeError:
        An attempt has been made to start a new process before the
        current process has finished its bootstrapping phase.

        This probably means that you are not using fork to start your
        child processes and you have forgotten to use the proper idiom
        in the main module:

            if __name__ == '__main__':
                freeze_support()
                ...

        The "freeze_support()" line can be omitted if the program
        is not going to be frozen to produce an executable.
WARNING:traitlets:Message signing is disabled.  This is insecure and not recommended!
WARNING:traitlets:Message signing is disabled.  This is insecure and not recommended!
INFO:mage_ai.server.server:Mage is running at http://localhost:6789 and serving project D:\code\pycode\mage\mage\demo1
INFO:mage_ai.server.server:Initializing block cache.
INFO:mage_ai.server.server:Initializing pipeline cache.
INFO:tornado.access:304 GET / (::1) 2.00ms
INFO:mage_ai.server.server:Initializing tag cache.
INFO:mage_ai.server.server:Initializing block action object cache.
[WARNING] SSH tunnel failed to create and connect: No module named 'sshtunnel'
INFO:mage_ai.api.logging:[2024-04-28T02:47:42.815601][api.views] Action: list statuses None
INFO:mage_ai.api.logging:[2024-04-28T02:47:42.816599][api.views] Latency: 0.0590 seconds
INFO:tornado.access:304 GET /api/statuses?api_key=zkWlN0PkIKSN0C11CfUHUj84OT5XOJ6tDZ6bDRO2 (::1) 59.99ms
INFO:tornado.access:200 GET /favicon.ico (::1) 588.27ms
INFO:mage_ai.api.logging:[2024-04-28T02:47:44.050014][api.views] Action: list pipeline_runs None
INFO:mage_ai.api.logging:[2024-04-28T02:47:44.051005][api.views] Latency: 0.0944 seconds
INFO:tornado.access:304 GET /api/pipeline_runs?_limit=50&include_pipeline_type=1&order_by[]=created_at%20desc&start_timestamp=1714262400&status=failed&api_key=zkWlN0PkIKSN0C11CfUHUj84OT5XOJ6tDZ6bDRO2 (::1) 96.36ms
Query: 0.005
Mapping: 0.025
Loop: 0.0
INFO:mage_ai.api.logging:[2024-04-28T02:47:44.125115][api.views] Action: detail monitor_stats pipeline_run_count
INFO:mage_ai.api.logging:[2024-04-28T02:47:44.125115][api.views] Latency: 0.0731 seconds
INFO:tornado.access:304 GET /api/monitor_stats/pipeline_run_count?group_by_pipeline_type=1&start_time=2024-04-28T00:00:00.000Z&api_key=zkWlN0PkIKSN0C11CfUHUj84OT5XOJ6tDZ6bDRO2 (::1) 171.43ms
INFO:mage_ai.api.logging:[2024-04-28T02:47:45.052920][api.views] Action: list projects None
INFO:mage_ai.api.logging:[2024-04-28T02:47:45.053925][api.views] Latency: 2.2353 seconds
INFO:tornado.access:304 GET /api/projects?api_key=zkWlN0PkIKSN0C11CfUHUj84OT5XOJ6tDZ6bDRO2 (::1) 2236.33ms
INFO:mage_ai.api.logging:[2024-04-28T02:47:45.701585][api.views] Action: list statuses None
INFO:mage_ai.api.logging:[2024-04-28T02:47:45.702584][api.views] Latency: 0.0440 seconds
INFO:tornado.access:304 GET /api/statuses?api_key=zkWlN0PkIKSN0C11CfUHUj84OT5XOJ6tDZ6bDRO2 (::1) 46.01ms
INFO:alembic.runtime.migration:Context impl SQLiteImpl.
INFO:alembic.runtime.migration:Will assume non-transactional DDL.
INFO:mage_ai.orchestration.pipeline_scheduler_original:Active pipeline runs: []
ERROR:mage_ai.server.scheduler_manager:Failed to run scheduler.
Traceback (most recent call last):
  File "D:\code\pycode\mage\mage\.venv\lib\site-packages\mage_ai\server\scheduler_manager.py", line 53, in run_scheduler
    LoopTimeTrigger().start()
  File "D:\code\pycode\mage\mage\.venv\lib\site-packages\mage_ai\orchestration\triggers\loop_time_trigger.py", line 14, in start
    self.run()
  File "D:\code\pycode\mage\mage\.venv\lib\site-packages\mage_ai\orchestration\triggers\time_trigger.py", line 11, in run
    schedule_all()
  File "D:\code\pycode\mage\mage\.venv\lib\site-packages\mage_ai\orchestration\pipeline_scheduler_original.py", line 1659, in schedule_all
    job_manager.clean_up_jobs()
AttributeError: 'NoneType' object has no attribute 'clean_up_jobs'
Process Process-2:
Traceback (most recent call last):
  File "C:\Users\wang.qiyuan\AppData\Local\Programs\Python\Python39\lib\multiprocessing\process.py", line 315, in _bootstrap
    self.run()
  File "C:\Users\wang.qiyuan\AppData\Local\Programs\Python\Python39\lib\multiprocessing\process.py", line 108, in run
    self._target(*self._args, **self._kwargs)
  File "D:\code\pycode\mage\mage\.venv\lib\site-packages\mage_ai\orchestration\db\process.py", line 15, in start_session_and_run
    results = target(*args)
  File "D:\code\pycode\mage\mage\.venv\lib\site-packages\mage_ai\server\scheduler_manager.py", line 58, in run_scheduler
    raise e
  File "D:\code\pycode\mage\mage\.venv\lib\site-packages\mage_ai\server\scheduler_manager.py", line 53, in run_scheduler
    LoopTimeTrigger().start()
  File "D:\code\pycode\mage\mage\.venv\lib\site-packages\mage_ai\orchestration\triggers\loop_time_trigger.py", line 14, in start
    self.run()
  File "D:\code\pycode\mage\mage\.venv\lib\site-packages\mage_ai\orchestration\triggers\time_trigger.py", line 11, in run
    schedule_all()
  File "D:\code\pycode\mage\mage\.venv\lib\site-packages\mage_ai\orchestration\pipeline_scheduler_original.py", line 1659, in schedule_all
    job_manager.clean_up_jobs()
AttributeError: 'NoneType' object has no attribute 'clean_up_jobs'

To reproduce
No response
Expected behavior
No response
Screenshots
No response
Operating system
No response
Additional context
No response

@yanlingsishao this is fixed in version 0.9.70


Problems rendering a component that has no template

I'm creating component wrappers for Vue JS components. Sometimes I don't need a template file. For example, it looks like this:
module Ds
  class LogoComponent < ApplicationComponent
    def call
      content_tag 'vc-logo', nil
    end
  end
end

My rubocop notes content_tag and advises to use tag. That is, it should be like this:
module Ds
  class LogoComponent < ApplicationComponent
    def call
      tag 'vc-logo'
    end
  end
end

And this component will work and render. But everything below this component, the "neighbors" of its parent, are no longer displayed. But with content_tag everything was normal.
Who is to blame and what is the matter? 🙂
System configuration
Rails version: 6.1.3
Ruby version: 2.7.2p137
Gem version: 2.25.1

@afuno Thanks for the bug report! Would you be willing to file a PR with a failing test?

@joelhawksley Sorry, I would really like to help, but right now it is difficult for me to understand the process of writing tests for your library ☹

@afuno I looked at the docs for tag briefly, I think you may need to call a method on it?
e.g.
tag.h1 'vc-logo'

@BlakeWilliams It won't help me generate this:
<vc-logo></vc-logo>

Happy to give a hand on this one!
Could the issue be related to that you are trying to not render a non-standard HTML tag? Curious if the issue persists if you would render a standard HTML tag.
Also, you are saying the component itself is being rendered but the "neighbors" are not. Could you clarify this so I can try to reproduce your issue?

@johannesengl
tag.vc_logo

It works. Thank you.


Align Signature decorator with RFC 0234: verkey must be in signers field

signer -> signers
https://github.com/hyperledger/aries-rfcs/tree/master/features/0234-signature-decorator#tutorial
https://github.com/hyperledger/aries-rfcs/blob/master/features/0234-signature-decorator/ed25519sha256_single.md#application

Correct, but note that signature decorator is itself on the way out.

This change will break compatibility with aries-framework-dotnet unless implemented and deployed together.  Need to think about this, especially since ~sig is going away.

The solution may be to change the RFC to fit the implementations, at the risk of a Lighthouse situation: https://en.wikipedia.org/wiki/Lighthouse_and_naval_vessel_urban_legend

The RFCs is updated to avoid not so motivated changes in the implementations
https://github.com/hyperledger/aries-rfcs/pull/298


Chain ID?

Curious if you know the solution here--

I want to check that a beacon RPC corresponds to the same chainID as some other execution node.
How do I check which execution ChainID this beacon chain is relevant to?

Thanks!

Consensus nodes do not have chain ID, but there is information in the Genesis() call that can be used to make a 1:1 mapping from this information to the execution chain ID.


Flaky Coveralls failures

Unit test for RdmaMode
Avoid overwriting coverage files for different CLUSTER_TYPEs

This PR wants to solve the failures of the Coveralls actions: sometimes, the function findNodePoolConfig(...) results in low coverage. This is probably because of some test flakiness.
Also, the CI invokes make test-controllers and CLUSTER_TYPE=openshift make test-controllers. Both steps overrides
cover-controllers.out and the proposed changes avoid this problem.
see following sample builds:

low coverage helper.go
high coverage helper.go

Pull Request Test Coverage Report for Build<PHONE_NUMBER>1
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.2%) to 47.271%

Totals

Change from base Build<PHONE_NUMBER>9:
0.2%

Covered Lines:
7205

Relevant Lines:
15242

💛  - Coveralls


Product default price is an array when using tiered prices

Description
Default price is an array when using tiered prices.
This causes the getDefaultPrice function on the Product element to return null since it expects data["default_price"] to be the id of the price.
When using tiers the default price is in data["default_price"]["id"].
The easiest way to fix this is to add an additional array check in the price filter function.
Here's the data-json for a default price with no tiers mode (when the first tier is equal to the next tier).
{
    "id": "price_xxx",
    "object": "price",
    "active": true,
    "billing_scheme": "per_unit",
    "created":<PHONE_NUMBER>,
    "currency": "nok",
    "custom_unit_amount": null,
    "livemode": false,
    "lookup_key": null,
    "metadata": [],
    "nickname": null,
    "product": "prod_xxx",
    "recurring": {
        "aggregate_usage": null,
        "interval": "month",
        "interval_count": 1,
        "meter": null,
        "trial_period_days": null,
        "usage_type": "licensed"
    },
    "tax_behavior": "unspecified",
    "tiers_mode": null,
    "transform_quantity": null,
    "type": "recurring",
    "unit_amount": 100,
    "unit_amount_decimal": "100"
}

And here is one with tiers mode graduated (when the next tier changes price based on count):
{
    "id": "price_yyy",
    "object": "price",
    "active": true,
    "billing_scheme": "tiered",
    "created":<PHONE_NUMBER>,
    "currency": "nok",
    "custom_unit_amount": null,
    "livemode": false,
    "lookup_key": null,
    "metadata": [],
    "nickname": "2023",
    "product": "prod_yyy",
    "recurring": {
        "aggregate_usage": null,
        "interval": "year",
        "interval_count": 1,
        "meter": null,
        "trial_period_days": null,
        "usage_type": "licensed"
    },
    "tax_behavior": "unspecified",
    "tiers_mode": "graduated",
    "transform_quantity": null,
    "type": "recurring",
    "unit_amount": null,
    "unit_amount_decimal": null
}

Steps to reproduce

Set up tiered prices with a default price
Try to run product.defaultPrice
Get null

Additional info

Craft version: 5.4.9
Stripe version: 1.1.0

Hi, thanks for reporting! I raised a PR for this.

Stripe 1.3.0 is out with a fix for that. Thanks again!


Add story data to nlu and e2e actions to domain (#6083)

Proposed changes:

re-apply https://github.com/RasaHQ/rasa/pull/6083 to e2e branch

Status (please check what you already did):

[x] added some tests for the functionality
[ ] updated the documentation
[ ] updated the changelog (please check changelog for instructions)
[x] reformat files using black (please check Readme for instructions)

@wochinge do we aim for the tests to pass on these PRs?  or do we treat them as intermediate ones?

@evgeniiaraz Do you have PR for the e2e branch? Do the tests pass there?

@wochinge No, there isn't because it is just master from the beginning of last week.  we can update it if it is easier.
I'd need to do it at some point anyway!

No, there isn't because it is just master from the beginning of last week. we can update it if it is easier.
I'd need to do it at some point anyway!

Okay, then I'll have a look tomorrow morning