InvalidURL #EXT-X-ENDLIST

I think this error is similar to what I randomly experienced here: https://github.com/DevilXD/TwitchDropsMiner/pull/466#issuecomment-2113733073
Sometimes the response body of that request will not be as expected...

Hmm, I see. I'm assuming that a valid link is present in the line just before this tag. If that's the case, it should be relatively simple to detect it, and just pick the -2nd line instead of -1st. I'd like to get a repro for this though, just to confirm before implementing a fix.
I'll run the miner in live debug mode over the weekend, with a breakpoint set to try and catch this. Will see how it goes.

I wasn't able to catch this one, but I've added some extra logic that should take care of this problem. The changes can be found here: https://github.com/DevilXD/TwitchDropsMiner/commit/5b515be34bd0c282a38886c4fca1991141d01c72
Unless it repeats after the fix, this issue can/will be closed at a later date, once it can be assumed that it works.

Just got this again on 0f3a7841b7a99a53ddb9186e2ffc8ef2c18e332d:
12:40:52: Watching: rasco100
13:36:32: Cannot connect to Twitch, retrying in 2 seconds...
13:36:39: Cannot connect to Twitch, retrying in 4 seconds...
13:36:48: Cannot connect to Twitch, retrying in 7 seconds...
13:37:00: Cannot connect to Twitch, retrying in 16 seconds...
13:37:22: Cannot connect to Twitch, retrying in 33 seconds...
13:37:59: Cannot connect to Twitch, retrying in 59 seconds...
13:39:03: Cannot connect to Twitch, retrying in 130 seconds...
13:41:18: Cannot connect to Twitch, retrying in 180 seconds...
13:44:23: Cannot connect to Twitch, retrying in 180 seconds...
13:47:28: Cannot connect to Twitch, retrying in 180 seconds...
13:50:33: Cannot connect to Twitch, retrying in 180 seconds...
13:53:38: Cannot connect to Twitch, retrying in 180 seconds...
13:56:43: Cannot connect to Twitch, retrying in 180 seconds...
13:59:48: ERROR: Exception in _watch_loop task
13:59:48: Traceback (most recent call last):
13:59:48:   File "/home/gui/dev/TwitchDropsMiner/utils.py", line 142, in wrapper
13:59:48:     await afunc(*args, **kwargs)
13:59:48:   File "/home/gui/dev/TwitchDropsMiner/twitch.py", line 857, in _watch_loop
13:59:48:     succeeded: bool = await channel.send_watch()
13:59:48:                       ^^^^^^^^^^^^^^^^^^^^^^^^^^
13:59:48:   File "/home/gui/dev/TwitchDropsMiner/channel.py", line 361, in send_watch
13:59:48:     async with self._twitch.request(
13:59:48:   File "/usr/lib/python3.12/contextlib.py", line 210, in __aenter__
13:59:48:     return await anext(self.gen)
13:59:48:            ^^^^^^^^^^^^^^^^^^^^^
13:59:48:   File "/home/gui/dev/TwitchDropsMiner/twitch.py", line 1277, in request
13:59:48:     response = await self.gui.coro_unless_closed(
13:59:48:                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
13:59:48:   File "/home/gui/dev/TwitchDropsMiner/gui.py", line 2147, in coro_unless_closed
13:59:48:     return await next(iter(done))
13:59:48:            ^^^^^^^^^^^^^^^^^^^^^^
13:59:48:   File "/home/gui/dev/TwitchDropsMiner/env/lib/python3.12/site-packages/aiohttp/client.py", line 1181, in send
13:59:48:     return self._coro.send(arg)
13:59:48:            ^^^^^^^^^^^^^^^^^^^^
13:59:48:   File "/home/gui/dev/TwitchDropsMiner/env/lib/python3.12/site-packages/aiohttp/client.py", line 548, in _request
13:59:48:     req = self._request_class(
13:59:48:           ^^^^^^^^^^^^^^^^^^^^
13:59:48:   File "/home/gui/dev/TwitchDropsMiner/env/lib/python3.12/site-packages/aiohttp/client_reqrep.py", line 327, in __init__
13:59:48:     self.update_host(url)
13:59:48:   File "/home/gui/dev/TwitchDropsMiner/env/lib/python3.12/site-packages/aiohttp/client_reqrep.py", line 401, in update_host
13:59:48:     raise InvalidURL(url)
13:59:48: aiohttp.client_exceptions.InvalidURL: %5B%7B%22url%22:%22/api/channel/hls/rasco100.m3u8?sig=deba7e32193e48f641012a71ed07e088770fd8a5%5Cu0026token=%7B%22adblock%22:false,%22authorization%22:%7B%22forbidden%22:false,%22reason%22:%22%22%7D,%22blackout_enabled%22:false,%22channel%22:%22rasco100%22,%22channel_id%22:143589908,%22chansub%22:%7B%22restricted_bitrates%22:%5B%5D,%22view_until%22:1924905600%7D,%22ci_gb%22:false,%22geoblock_reason%22:%22%22,%22device_id%22:%22VLsRrSXUEN8642477ppTdUVwf6Wvjf2h%22,%22expires%22:1721840181,%22extended_history_allowed%22:false,%22game%22:%22%22,%22hide_ads%22:false,%22https_required%22:true,%22mature%22:false,%22partner%22:false,%22platform%22:%22web%22,%22player_type%22:%22site%22,%22private%22:%7B%22allowed_to_view%22:true%7D,%22privileged%22:false,%22role%22:%22%22,%22server_ads%22:true,%22show_ads%22:true,%22subscriber%22:false,%22turbo%22:false,%22user_id%22:43816760,%22user_ip%22:%22<IP_ADDRESS>%22,%22version%22:2%7D%22,%22error%22:%22expired+token%22,%22error_code%22:%22nauth_token_expired%22,%22type%22:%22error%22%7D%5D
13:59:48: Exiting...
13:59:48:
13:59:48: Application Terminated.
13:59:48: Close the window to exit the application.

Seems quite rare to trigger it...

Hmm, two things:
• It appears that the "invalid URL" is actually an URL-encoded JSON payload, which suggests that Twitch uses the same route for sending stream chunks information, and JSON to be processed on the client side. If that's the case, it'd be a good idea to support this in the miner - either ignore it when that happens, or derive some useful information from it. Either way, we'll need to setup a logging trap for this, as it really does seem to happen quite rarely.
• The decoded JSON payload had some sensitive information in it (most notably an IP address), so I've expunged it from the comment and it's edit history. Fortunately, it's only been up 4 hours. This is how the payload looks like after decoding, with sensitive information removed:

I'd like to note that the absolute worst that can happen in cases like this, is someone leaking out their Authorization token. These are valid for a year, and the only way to invalidate one is to change your Twitch password. Fortunately, it's sent as a header with each request that requires it, and header contents rarely ends up being displayed or logged anywhere, even during exceptions like this. Still, it may be a good idea to do a quick review of what you're about to post next time :sweat_smile:

This should do it: https://github.com/DevilXD/TwitchDropsMiner/commit/a7088161d70fe5b8f6dd952b4efc597c3d5aa49e
Now we wait :hourglass:

I appreciate the concern and I thank you for editing those out for me, but don't worry, the auth token is completely bogus and I don't really mind my public IP address getting leaked.

Well, funnily enough, it happened again:
06:59:21: ERROR: Exception in _watch_loop task
06:59:21: Traceback (most recent call last):
06:59:21:   File "utils.py", line 142, in wrapper
06:59:21:   File "twitch.py", line 857, in _watch_loop
06:59:21:   File "channel.py", line 375, in send_watch
06:59:21:   File "contextlib.py", line 199, in __aenter__
06:59:21:   File "twitch.py", line 1277, in request
06:59:21:   File "gui.py", line 2147, in coro_unless_closed
06:59:21:   File "aiohttp\client.py", line 1171, in send
06:59:21:   File "aiohttp\client.py", line 541, in _request
06:59:21:   File "aiohttp\client_reqrep.py", line 325, in __init__
06:59:21:   File "aiohttp\client_reqrep.py", line 399, in update_host
06:59:21: aiohttp.client_exceptions.InvalidURL: Not%20Found

The context of this is important though - I've just woke up my work PC from sleep mode, that I left it in yesterday when I was going home. It seems that what has happened is - the miner's execution state got frozen by the sleep, the stream ended somewhere in the evening while the miner wasn't running, and when I woke it up today, it tried to send a watch request to the stream that didn't exist anymore.
Looking back at your traceback, it seems that a similar thing could have happened, based on the time difference between starting to watch the channel, and the error happening, with all those "unable to connect" messages in between.
I'm still interested in the payload that's returned in cases like this, but other than that, it looks like I need to handle a case where a watch request is sent to a stream that no longer exists (or has ended), and either handle the results of such request, or prevent sending requests like this in the first place.

Hi DevilXD, I ran into the error mentioned in #550 again, and I copied entire contents shown in output.
Hope these can help. Thanks.
15:47:59: No available channels to watch. Waiting for an ONLINE channel...
15:50:21: Gustav_Mannfred goes ONLINE, switching...
15:50:21: Watching: Gustav_Mannfred
16:01:42:
16:01:42: ERROR: Exception in _watch_loop task
16:01:42: Traceback (most recent call last):
16:01:42:   File "utils.py", line 132, in wrapper
16:01:42:   File "twitch.py", line 860, in _watch_loop
16:01:42:   File "channel.py", line 385, in send_watch
16:01:42:   File "contextlib.py", line 199, in __aenter__
16:01:42:   File "twitch.py", line 1285, in request
16:01:42:   File "gui.py", line 2147, in coro_unless_closed
16:01:42:   File "aiohttp\client.py", line 1337, in send
16:01:42:   File "aiohttp\client.py", line 586, in _request
16:01:42: aiohttp.client_exceptions.InvalidUrlClientError
16:01:42: Exiting...
16:01:42:
16:01:42: Application Terminated.
16:01:42: Close the window to exit the application.

Unfortunately, this does not seem to include any useful information either. There is an exception handler that's supposed to print the invalid response to the output window right before the exception here: https://github.com/DevilXD/TwitchDropsMiner/blob/5456986f98fed99e7fb5ee599bb9467238390fcc/channel.py#L385-L390
According to the aiohttp documentation, InvalidUrlClientError is a subtype of InvalidURL, so the exception handler should work in this case too:

Are you sure you're running the version of the miner from this repository, and not some kind of a fork?

2024-09-06 14:00:51.944:	   CALL:	Drop progress from GQL: Epic Community Chest (Albion Online, 96/180)
2024-09-06 14:01:11.945:	  DEBUG:	Request: (method='GET', url=URL('https://video-weaver.cdg10.hls.ttvnw.net/v1/playlist/....m3u8'), kwargs={'headers': {'Connection': 'close'}})
2024-09-06 14:01:12.147:	  DEBUG:	Response: 200: <ClientResponse(https://video-weaver.cdg10.hls.ttvnw.net/v1/playlist/....m3u8) [200 OK]>
<CIMultiDictProxy('Cache-Control': 'no-cache, no-store, private', 'Content-Encoding': 'gzip', 'Content-Type': 'application/vnd.apple.mpegurl', 'Vary': 'Accept-Encoding', 'Date': 'Fri, 06 Sep 2024 12:01:12 GMT', 'Transfer-Encoding': 'chunked', 'Access-Control-Allow-Origin': '*', 'Connection': 'close')>

2024-09-06 14:01:12.155:	  DEBUG:	Request: (method='HEAD', url='https://video-edge-65e812.vie02.abs.hls.ttvnw.net/v1/segment/....ts', kwargs={})
2024-09-06 14:01:12.294:	  DEBUG:	Response: 200: <ClientResponse(https://video-edge-65e812.vie02.abs.hls.ttvnw.net/v1/segment/....ts) [200 OK]>
<CIMultiDictProxy('Accept-Ranges': 'bytes', 'Access-Control-Allow-Origin': '*', 'Cache-Control': 'no-cache, no-store, private', 'Content-Length': '0', 'Content-Type': 'application/octet-stream', 'Date': 'Fri, 06 Sep 2024 12:01:08 GMT')>

2024-09-06 14:01:23.405:	   CALL:	Drop update from websocket: Epic Community Chest (Albion Online, 97/180)
2024-09-06 14:01:32.296:	  DEBUG:	Request: (method='GET', url=URL('https://video-weaver.cdg10.hls.ttvnw.net/v1/playlist/....m3u8'), kwargs={'headers': {'Connection': 'close'}})
2024-09-06 14:01:32.526:	  DEBUG:	Response: 200: <ClientResponse(https://video-weaver.cdg10.hls.ttvnw.net/v1/playlist/....m3u8) [200 OK]>
<CIMultiDictProxy('Cache-Control': 'no-cache, no-store, private', 'Content-Encoding': 'gzip', 'Content-Type': 'application/vnd.apple.mpegurl', 'Vary': 'Accept-Encoding', 'Date': 'Fri, 06 Sep 2024 12:01:32 GMT', 'Transfer-Encoding': 'chunked', 'Access-Control-Allow-Origin': '*', 'Connection': 'close')>

2024-09-06 14:01:32.527:	  DEBUG:	Request: (method='HEAD', url='https://video-edge-1caa62.cdg10.abs.hls.ttvnw.net/v1/segment/....ts', kwargs={})
2024-09-06 14:01:32.833:	  DEBUG:	Response: 200: <ClientResponse(https://video-edge-1caa62.cdg10.abs.hls.ttvnw.net/v1/segment/....ts) [200 OK]>
<CIMultiDictProxy('Accept-Ranges': 'bytes', 'Access-Control-Allow-Origin': '*', 'Cache-Control': 'no-cache, no-store, private', 'Content-Length': '0', 'Content-Type': 'application/octet-stream', 'Date': 'Fri, 06 Sep 2024 12:01:30 GMT')>

2024-09-06 14:01:52.835:	  DEBUG:	Request: (method='GET', url=URL('https://video-weaver.cdg10.hls.ttvnw.net/v1/playlist/....m3u8'), kwargs={'headers': {'Connection': 'close'}})
2024-09-06 14:01:55.911:	   INFO:	synop_s goes OFFLINE
2024-09-06 14:01:57.003:	   CALL:	Channel update from websocket: synop_s
2024-09-06 14:01:59.593:	   CALL:	Channel update from websocket: a_big_koko
2024-09-06 14:02:26.169:	   CALL:	Drop update from websocket: Epic Community Chest (Albion Online, 98/180)
2024-09-06 14:02:52.319:	  DEBUG:	Response: 404: <ClientResponse(https://video-weaver.cdg10.hls.ttvnw.net/v1/playlist/....m3u8) [404 Not Found]>
<CIMultiDictProxy('Content-Type': 'text/plain; charset=utf-8', 'Vary': 'Accept-Encoding', 'x-content-type-options': 'nosniff', 'x-error-message': 'failed to fetch weaver playlist: channel is offline', 'Date': 'Fri, 06 Sep 2024 12:02:52 GMT', 'Content-Length': '10', 'Access-Control-Allow-Origin': '*', 'Connection': 'close')>

2024-09-06 14:02:52.320:	  DEBUG:	Request: (method='HEAD', url='Not Found', kwargs={})
2024-09-06 14:02:52.320:	  ERROR:	Exception in _watch_loop task
Traceback (most recent call last):
  File "/home/user/Workspace/git/TwitchDropsMiner/utils.py", line 132, in wrapper
    await afunc(*args, **kwargs)
  File "/home/user/Workspace/git/TwitchDropsMiner/twitch.py", line 860, in _watch_loop
    succeeded: bool = await channel.send_watch()
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Workspace/git/TwitchDropsMiner/channel.py", line 385, in send_watch
    async with self._twitch.request("HEAD", stream_chunk_url) as head_response:
  File "/usr/lib/python3.12/contextlib.py", line 210, in __aenter__
    return await anext(self.gen)
           ^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Workspace/git/TwitchDropsMiner/twitch.py", line 1285, in request
    response = await self.gui.coro_unless_closed(
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Workspace/git/TwitchDropsMiner/gui.py", line 2147, in coro_unless_closed
    return await next(iter(done))
           ^^^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Workspace/git/TwitchDropsMiner/env/lib/python3.12/site-packages/aiohttp/client.py", line 1337, in send
    return self._coro.send(arg)
           ^^^^^^^^^^^^^^^^^^^^
  File "/home/user/Workspace/git/TwitchDropsMiner/env/lib/python3.12/site-packages/aiohttp/client.py", line 586, in _request
    raise err_exc_cls(url)
aiohttp.client_exceptions.InvalidUrlClientError: Not%20Found
2024-09-06 14:02:52.326:	   INFO:	Websocket[0] stopped.
2024-09-06 14:02:52.327:	   INFO:	Websocket[1] stopped.
2024-09-06 14:02:52.327:	   INFO:	Websocket[2] stopped.

Anything to redact there?

Not really, aiohttp does not include headers in it's repr output, and that's where the most sensitive info is included (the authorization token).
The thing is, the send_watch function has a handler for that exact error, to print out the available_chunks list, right before it's used to make a request that results in an error: https://github.com/DevilXD/TwitchDropsMiner/blob/86f339f4f6102df78eb7e0aa8532c941a5f1e6d3/channel.py#L388-L391
If there would not nothing to print out, there would at least be a line with the current time included, for ex.: 2024-09-06 14:02:26.169:, and then nothing after that. But I can't see any lines like that in the log. Either the handler doesn't work, or you're using a modified version of the miner that does not have it - the traceback's send_watch line number doesn't match, the error comes from L385, while the current source code specifies it on L386: https://github.com/DevilXD/TwitchDropsMiner/blob/86f339f4f6102df78eb7e0aa8532c941a5f1e6d3/channel.py#L386
This implies there's no try: on L371 and the rest of the code is shifted up by one line, so the entire handler may be indeed missing. Are you sure you're using the latest available version of the miner, without any modifications?
It's possible that you've upgraded the source code by overwriting existing files with new files, and something went wrong along the way. If you're upgrading source code from an old version, it's best to just make a new folder for it, so you don't end up overwriting anything. Then you can just move over your cookies file and settings file from the old folder.

The git sha was 802f2506b34892d8db0523850f58b46f44a62c1e the commit where you removed the emoji for testing.
I just used normal git commands to update the repo as always.
It is currently running with 86f339f4f6102df78eb7e0aa8532c941a5f1e6d3 for 10h.

It's really weird to be showing the wrong line number then. Can you confirm that you have the handler in-place, inside your channel.py file, at L388-391 like so?: https://github.com/DevilXD/TwitchDropsMiner/blob/86f339f4f6102df78eb7e0aa8532c941a5f1e6d3/channel.py#L388-L391
I'm assuming that you're still running from source, and not using the no_emoji branch anymore, since we've concluded it wasn't the culprit.

I got hit by this again in 86f339f4f6102df78eb7e0aa8532c941a5f1e6d3:
17:17:06: No available channels to watch. Waiting for an ONLINE channel...
17:19:24: RTP Arena goes ONLINE, switching...
17:19:24: Watching: RTP Arena
17:19:25: ERROR: Exception in _watch_loop task
17:19:25: Traceback (most recent call last):
17:19:25:   File "/home/gui/dev/TwitchDropsMiner/channel.py", line 372, in send_watch
17:19:25:     async with self._twitch.request(
17:19:25:   File "/usr/lib/python3.12/contextlib.py", line 210, in __aenter__
17:19:25:     return await anext(self.gen)
17:19:25:            ^^^^^^^^^^^^^^^^^^^^^
17:19:25:   File "/home/gui/dev/TwitchDropsMiner/twitch.py", line 1285, in request
17:19:25:     response = await self.gui.coro_unless_closed(
17:19:25:                ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
17:19:25:   File "/home/gui/dev/TwitchDropsMiner/gui.py", line 2147, in coro_unless_closed
17:19:25:     return await next(iter(done))
17:19:25:            ^^^^^^^^^^^^^^^^^^^^^^
17:19:25:   File "/home/gui/dev/TwitchDropsMiner/env/lib/python3.12/site-packages/aiohttp/client.py", line 1181, in send
17:19:25:     return self._coro.send(arg)
17:19:25:            ^^^^^^^^^^^^^^^^^^^^
17:19:25:   File "/home/gui/dev/TwitchDropsMiner/env/lib/python3.12/site-packages/aiohttp/client.py", line 548, in _request
17:19:25:     req = self._request_class(
17:19:25:           ^^^^^^^^^^^^^^^^^^^^
17:19:25:   File "/home/gui/dev/TwitchDropsMiner/env/lib/python3.12/site-packages/aiohttp/client_reqrep.py", line 327, in __init__
17:19:25:     self.update_host(url)
17:19:25:   File "/home/gui/dev/TwitchDropsMiner/env/lib/python3.12/site-packages/aiohttp/client_reqrep.py", line 401, in update_host
17:19:25:     raise InvalidURL(url)
17:19:25: aiohttp.client_exceptions.InvalidURL: %5B%7B%22url%22:%22/api/channel/hls/rtparena.m3u8?sig=<removed>token=%7B%22adblock%22:false,%22authorization%22:%7B%22forbidden%22:false,%22reason%22:%22%22%7D,%22blackout_enabled%22:false,%22channel%22:%22rtparena%22,%22channel_id%22:177964931,%22chansub%22:%7B%22restricted_bitrates%22:%5B%5D,%22view_until%22:1924905600%7D,%22ci_gb%22:true,%22geoblock_reason%22:%22content_geoblocked%22,%22device_id%22:%22<removed>%22,%22expires%22:1726000764,%22extended_history_allowed%22:false,%22game%22:%22%22,%22hide_ads%22:false,%22https_required%22:true,%22mature%22:false,%22partner%22:false,%22platform%22:%22web%22,%22player_type%22:%22site%22,%22private%22:%7B%22allowed_to_view%22:true%7D,%22privileged%22:false,%22role%22:%22%22,%22server_ads%22:true,%22show_ads%22:true,%22subscriber%22:false,%22turbo%22:false,%22user_id%22:<removed>,%22user_ip%22:%22<removed>%22,%22version%22:2%7D%22,%22error%22:%22Content+Restricted+In+Region%22,%22error_code%22:%22content_geoblocked%22,%22type%22:%22error%22%7D%5D
17:19:25:
17:19:25: During handling of the above exception, another exception occurred:
17:19:25:
17:19:25: Traceback (most recent call last):
17:19:25:   File "/home/gui/dev/TwitchDropsMiner/utils.py", line 132, in wrapper
17:19:25:     await afunc(*args, **kwargs)
17:19:25:   File "/home/gui/dev/TwitchDropsMiner/twitch.py", line 860, in _watch_loop
17:19:25:     succeeded: bool = await channel.send_watch()
17:19:25:                       ^^^^^^^^^^^^^^^^^^^^^^^^^^
17:19:25:   File "/home/gui/dev/TwitchDropsMiner/channel.py", line 388, in send_watch
17:19:25:     except aiohttp.client_exceptions.InvalidUrlClientError:
17:19:25:            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
17:19:25: AttributeError: module 'aiohttp.client_exceptions' has no attribute 'InvalidUrlClientError'
17:19:25: Exiting...
17:19:26:
17:19:26: Application Terminated.
17:19:26: Close the window to exit the application.

Just to complement my post above, the error message tells us the error comes from TDM trying to watch a geo-blocked stream.
And, sure enough, the rtparena stream is currently blocked in Brazil:

AttributeError: module 'aiohttp.client_exceptions' has no attribute 'InvalidUrlClientError'

Big OOF right there. It's yet another thing that's supposed to work here, but doesn't. Documentation clearly states this exception exists: https://docs.aiohttp.org/en/stable/client_reference.html#aiohttp.InvalidUrlClientError, and is present in my environment under the expected path too:

What is going on here even?

Oh, nice catch, I didn't even notice that.
It seems like InvalidUrlClientError was only introduced in v3.10.0, and sure enough, I'm still on 3.9.5:
$ pip freeze
aiohttp==3.9.5
aiosignal==1.3.1
attrs==23.2.0
frozenlist==1.4.1
idna==3.7
multidict==6.0.5
pillow==10.4.0
pycairo==1.26.0
PyGObject==3.46.0
pystray==0.19.5
python-xlib==0.33
six==1.16.0
truststore==0.9.1
validators==0.28.1
yarl==1.9.4

Anyway, I'll update the dependencies and try to reproduce the issue again tomorrow, because I'm almost certain the same geo-blocked stream will be on again.

It seems like InvalidUrlClientError was only introduced in v3.10.0, and sure enough, I'm still on v3.9.5:

Huh. I've changed it from just InvalidURL, because someone ran into this issue here, and nothing was printed out to the output, even though this new exception is a subclass and should be caught anyway.

I'm reverting the commit that changed aiohttp.InvalidURL to aiohttp.client_exceptions.InvalidUrlClientError.
https://github.com/DevilXD/TwitchDropsMiner/commit/9c58befac35bde6f80fe93bb61c61961e296a5a5 implements a new change, where the available_chunks contents I'm after, will be included as a MinerException message contents instead. That should help me finally seeing it's contents when this issue occurs.

Run from source 49e8db9e221adb35d693906dc13f77b6a674ac34

Open Log
2024-09-12 04:27:25.519:	   INFO:	BroncoMomma status has been updated (🎁: ✔ -> ✔)
2024-09-12 04:27:32.349:	  DEBUG:	Response: 200: <ClientResponse(https://video-weaver.vie02.hls.ttvnw.net/v1/playlist/....m3u8) [200 OK]>
<CIMultiDictProxy('Cache-Control': 'no-cache, no-store, private', 'Content-Encoding': 'gzip', 'Content-Type': 'application/vnd.apple.mpegurl', 'Vary': 'Accept-Encoding', 'Date': 'Thu, 12 Sep 2024 02:27:32 GMT', 'Transfer-Encoding': 'chunked', 'Access-Control-Allow-Origin': '*', 'Connection': 'close')>

2024-09-12 04:27:32.350:	  DEBUG:	Request: (method='HEAD', url='https://video-edge-cec4f8.vie02.abs.hls.ttvnw.net/v1/segment/....ts', kwargs={})
2024-09-12 04:27:33.056:	  DEBUG:	Response: 200: <ClientResponse(https://video-edge-cec4f8.vie02.abs.hls.ttvnw.net/v1/segment/....ts) [200 OK]>
<CIMultiDictProxy('Accept-Ranges': 'bytes', 'Access-Control-Allow-Origin': '*', 'Cache-Control': 'no-cache, no-store, private', 'Content-Length': '0', 'Content-Type': 'application/octet-stream', 'Date': 'Thu, 12 Sep 2024 02:27:30 GMT')>

2024-09-12 04:27:53.057:	  DEBUG:	Request: (method='GET', url=URL('https://video-weaver.vie02.hls.ttvnw.net/v1/playlist/....m3u8'), kwargs={'headers': {'Connection': 'close'}})
2024-09-12 04:27:53.841:	  DEBUG:	Response: 200: <ClientResponse(https://video-weaver.vie02.hls.ttvnw.net/v1/playlist/....m3u8) [200 OK]>
<CIMultiDictProxy('Cache-Control': 'no-cache, no-store, private', 'Content-Encoding': 'gzip', 'Content-Type': 'application/vnd.apple.mpegurl', 'Vary': 'Accept-Encoding', 'Date': 'Thu, 12 Sep 2024 02:27:53 GMT', 'Transfer-Encoding': 'chunked', 'Access-Control-Allow-Origin': '*', 'Connection': 'close')>

2024-09-12 04:27:53.842:	  DEBUG:	Request: (method='HEAD', url='https://video-edge-cec4f8.vie02.abs.hls.ttvnw.net/v1/segment/....ts', kwargs={})
2024-09-12 04:27:54.560:	  DEBUG:	Response: 200: <ClientResponse(https://video-edge-cec4f8.vie02.abs.hls.ttvnw.net/v1/segment/....ts) [200 OK]>
<CIMultiDictProxy('Accept-Ranges': 'bytes', 'Access-Control-Allow-Origin': '*', 'Cache-Control': 'no-cache, no-store, private', 'Content-Length': '0', 'Content-Type': 'application/octet-stream', 'Date': 'Thu, 12 Sep 2024 02:27:50 GMT')>

2024-09-12 04:28:14.562:	  DEBUG:	Request: (method='GET', url=URL('https://video-weaver.vie02.hls.ttvnw.net/v1/playlist/...m3u8'), kwargs={'headers': {'Connection': 'close'}})
2024-09-12 04:28:15.345:	  DEBUG:	Response: 200: <ClientResponse(https://video-weaver.vie02.hls.ttvnw.net/v1/playlist/....m3u8) [200 OK]>
<CIMultiDictProxy('Cache-Control': 'no-cache, no-store, private', 'Content-Encoding': 'gzip', 'Content-Type': 'application/vnd.apple.mpegurl', 'Vary': 'Accept-Encoding', 'Date': 'Thu, 12 Sep 2024 02:28:15 GMT', 'Transfer-Encoding': 'chunked', 'Access-Control-Allow-Origin': '*', 'Connection': 'close')>

2024-09-12 04:28:15.346:	  DEBUG:	Request: (method='HEAD', url='https://video-edge-cec4f8.vie02.abs.hls.ttvnw.net/v1/segment/....ts', kwargs={})
2024-09-12 04:28:16.072:	  DEBUG:	Response: 200: <ClientResponse(https://video-edge-cec4f8.vie02.abs.hls.ttvnw.net/v1/segment/....ts) [200 OK]>
<CIMultiDictProxy('Accept-Ranges': 'bytes', 'Access-Control-Allow-Origin': '*', 'Cache-Control': 'no-cache, no-store, private', 'Content-Length': '0', 'Content-Type': 'application/octet-stream', 'Date': 'Thu, 12 Sep 2024 02:28:12 GMT')>

2024-09-12 04:28:16.073:	  DEBUG:	Request: (method='POST', url='https://gql.twitch.tv/gql', kwargs={'json': {'operationName': 'DropCurrentSessionContext', 'extensions': {'persistedQuery': {'version': 1, 'sha256Hash': ''}}, 'variables': {'channelID': '51773626', 'channelLogin': ''}}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip', 'Accept-Language': 'en-US', 'Pragma': 'no-cache', 'Cache-Control': 'no-cache', 'Client-Id': '', 'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 7.1.2; SM-G977N Build/LMY48Z) tv.twitch.android.app/16.8.1/1608010', 'Client-Session-Id': '', 'X-Device-Id': '', 'Origin': 'https://www.twitch.tv', 'Referer': 'https://www.twitch.tv', 'Authorization': 'OAuth '}})
2024-09-12 04:28:17.107:	  DEBUG:	Response: 200: <ClientResponse(https://gql.twitch.tv/gql) [200 OK]>
<CIMultiDictProxy('Connection': 'keep-alive', 'Content-Length': '310', 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*', 'Content-Encoding': 'gzip', 'Date': 'Thu, 12 Sep 2024 02:28:17 GMT', 'Timing-Allow-Origin': '*')>

2024-09-12 04:28:17.108:	   CALL:	Drop progress from GQL: Transcendence Ruins Restoration Ticket: Armor (Lost Ark, 375/480)
2024-09-12 04:28:37.112:	  DEBUG:	Request: (method='GET', url=URL('https://video-weaver.vie02.hls.ttvnw.net/v1/playlist/....m3u8'), kwargs={'headers': {'Connection': 'close'}})
2024-09-12 04:28:47.693:	   CALL:	Channel update from websocket: Cauttyh
2024-09-12 04:28:57.737:	   CALL:	Drop update from websocket: Transcendence Ruins Restoration Ticket: Armor (Lost Ark, 376/480)
2024-09-12 04:29:25.146:	  DEBUG:	Response: 404: <ClientResponse(https://video-weaver.vie02.hls.ttvnw.net/v1/playlist/....m3u8) [404 Not Found]>
<CIMultiDictProxy('Content-Type': 'text/plain; charset=utf-8', 'Vary': 'Accept-Encoding', 'x-content-type-options': 'nosniff', 'x-error-message': 'failed to fetch weaver playlist: channel is offline', 'Date': 'Thu, 12 Sep 2024 02:29:25 GMT', 'Content-Length': '10', 'Access-Control-Allow-Origin': '*', 'Connection': 'close')>

2024-09-12 04:29:25.147:	  DEBUG:	Request: (method='HEAD', url='Not Found', kwargs={})
2024-09-12 04:29:25.148:	  ERROR:	Exception in _watch_loop task
Traceback (most recent call last):
File "/home/user/Workspace/git/TwitchDropsMiner/channel.py", line 385, in send_watch
  async with self._twitch.request("HEAD", stream_chunk_url) as head_response:
File "/usr/lib/python3.12/contextlib.py", line 210, in __aenter__
  return await anext(self.gen)
         ^^^^^^^^^^^^^^^^^^^^^
File "/home/user/Workspace/git/TwitchDropsMiner/twitch.py", line 1285, in request
  response = await self.gui.coro_unless_closed(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/Workspace/git/TwitchDropsMiner/gui.py", line 2152, in coro_unless_closed
  return await next(iter(done))
         ^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/Workspace/git/TwitchDropsMiner/env/lib/python3.12/site-packages/aiohttp/client.py", line 1337, in send
  return self._coro.send(arg)
         ^^^^^^^^^^^^^^^^^^^^
File "/home/user/Workspace/git/TwitchDropsMiner/env/lib/python3.12/site-packages/aiohttp/client.py", line 586, in _request
  raise err_exc_cls(url)
aiohttp.client_exceptions.InvalidUrlClientError: Not%20Found

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
File "/home/user/Workspace/git/TwitchDropsMiner/utils.py", line 132, in wrapper
  await afunc(*args, **kwargs)
File "/home/user/Workspace/git/TwitchDropsMiner/twitch.py", line 860, in _watch_loop
  succeeded: bool = await channel.send_watch()
                    ^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/home/user/Workspace/git/TwitchDropsMiner/channel.py", line 389, in send_watch
  raise MinerException(available_chunks) from exc
exceptions.MinerException: Not Found

2024-09-12 04:29:25.150:	   INFO:	Websocket[0] stopped.
2024-09-12 04:29:25.150:	   INFO:	Websocket[1] stopped.
2024-09-12 04:29:25.151:	   INFO:	Websocket[2] stopped.
2024-09-12 04:29:25.151:	   INFO:	Websocket[3] stopped.
2024-09-12 04:29:25.151:	   INFO:	Websocket[4] stopped.
2024-09-12 04:29:25.152:	   INFO:	Websocket[5] stopped.
2024-09-12 04:29:25.152:	   INFO:	Websocket[6] stopped.
2024-09-12 04:29:25.152:	   INFO:	Websocket[7] stopped.
2024-09-12 04:30:47.750:	  DEBUG:	Request: (method='GET', url=URL('https://www.twitch.tv'), kwargs={'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip', 'Accept-Language': 'en-US', 'Pragma': 'no-cache', 'Cache-Control': 'no-cache', 'Client-Id': '', 'Client-Session-Id': ''}})
2024-09-12 04:31:26.581:	  DEBUG:	Response: 200: <ClientResponse(https://m.twitch.tv/?desktop-redirect=true) [200 OK]>
<CIMultiDictProxy('Connection': 'keep-alive', 'Content-Type': 'text/html', 'Content-Encoding': 'gzip', 'Set-Cookie': 'server_session_id=; domain=.twitch.tv; path=/; secure; samesite=none', 'Set-Cookie': 'unique_id=; expires=Sun, 12 Oct 2025 02:31:26 GMT; domain=.twitch.tv; path=/; secure; samesite=none', 'Set-Cookie': 'unique_id_durable=; expires=Sun, 12 Oct 2025 02:31:26 GMT; domain=.twitch.tv; path=/; secure; samesite=none; httponly', 'X-Frame-Options': 'SAMEORIGIN', 'X-XSS-Protection': '1; mode=block', 'X-Content-Type-Options': 'nosniff', 'Strict-Transport-Security': 'max-age=31536000', 'Release-Type': 'release', 'Cache-Control': 'private, max-age=0', 'Date': 'Thu, 12 Sep 2024 02:31:26 GMT', 'Vary': 'Accept-Encoding', 'Transfer-Encoding': 'chunked')>

2024-09-12 04:31:26.592:	   INFO:	Checking login
2024-09-12 04:31:26.602:	   INFO:	Restoring session from cookie
2024-09-12 04:31:26.603:	  DEBUG:	Request: (method='GET', url='https://id.twitch.tv/oauth2/validate', kwargs={'headers': {'Authorization': 'OAuth '}})
2024-09-12 04:31:28.730:	  DEBUG:	Response: 200: <ClientResponse(https://id.twitch.tv/oauth2/validate) [200 OK]>
<CIMultiDictProxy('Date': 'Thu, 12 Sep 2024 02:31:28 GMT', 'Content-Type': 'application/json', 'Content-Length': '534', 'Connection': 'keep-alive', 'Server': 'nginx', 'Access-Control-Allow-Origin': '*', 'X-Ctxlog-Logid': '')>

2024-09-12 04:31:28.731:	   INFO:	Login successful, user ID:
2024-09-12 04:31:28.832:	  DEBUG:	Request: (method='POST', url='https://gql.twitch.tv/gql', kwargs={'json': {'operationName': 'VideoPlayerStreamInfoOverlayChannel', 'extensions': {'persistedQuery': {'version': 1, 'sha256Hash': ''}}, 'variables': {'channel': 'cauttyh'}}, 'headers': {'Accept': '*/*', 'Accept-Encoding': 'gzip', 'Accept-Language': 'en-US', 'Pragma': 'no-cache', 'Cache-Control': 'no-cache', 'Client-Id': 'kd1unb4b3q4t58fwlpcbzcbnm76a8fp', 'User-Agent': 'Dalvik/2.1.0 (Linux; U; Android 7.1.2; SM-G977N Build/LMY48Z) tv.twitch.android.app/16.8.1/1608010', 'Client-Session-Id': '', 'X-Device-Id': '', 'Origin': 'https://www.twitch.tv', 'Referer': 'https://www.twitch.tv', 'Authorization': 'OAuth '}})
2024-09-12 04:31:30.350:	  DEBUG:	Response: 200: <ClientResponse(https://gql.twitch.tv/gql) [200 OK]>
<CIMultiDictProxy('Connection': 'keep-alive', 'Content-Length': '480', 'Content-Type': 'application/json', 'Access-Control-Allow-Origin': '*', 'Content-Encoding': 'gzip', 'Date': 'Thu, 12 Sep 2024 02:31:30 GMT', 'Timing-Allow-Origin': '*')>

2024-09-12 04:31:30.351:	   CALL:	Cauttyh stays OFFLINE

I've pushed out a change that should handle cases like this more gracefully: https://github.com/DevilXD/TwitchDropsMiner/commit/cffda7fc392ce53a8f9099d948709dd7db50ce6b
Please give it a try and see if it helps.

@axi92 Has the issue repeated itself after that last change?

@DevilXD it is still running =)

I'm going to assume that the issue is gone now then 👍


An error occurs when inferring by loading a pretrained model

Please make sure that this is a bug. As per our
GitHub Policy,
we only address code/doc bugs, performance issues, feature requests and
build/installation issues on GitHub. tag:bug_template
System information

Google colab

Describe the current behavior

Error occurs when inferring from loaded model (before saving, it is successfully inferred from the same input)
same happens even if the input signature is redefined when saving the model

Describe the expected behavior

Must be inferable from the loaded model

Standalone code to reproduce the issue

here is code : https://colab.research.google.com/drive/1CJyLvind12Df-WFst4UTPMk0e5C996Tq?usp=sharing
Links to the data are also in colab

Provide a reproducible test case that is the bare minimum necessary to generate
the problem. If possible, please share a link to Colab/Jupyter/any notebook.
Other info / logs Include any logs or source code that would be helpful to

here  is error message

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-14-13d7f1beda6b> in <module>()
      1 loaded_bert_model = tf.saved_model.load(DATA_OUT_PATH+'/bert/saved')
      2 loaded_electra_model = tf.saved_model.load(DATA_OUT_PATH+"/electra/saved")
----> 3 logits = loaded_bert_model(input_encodings_bert)['logits']
      4 print("bert_saved",logits)
      5 logits = loaded_electra_model(input_encodings_electra)['logits']

9 frames
/usr/local/lib/python3.6/dist-packages/tensorflow/python/saved_model/function_deserialization.py in restored_function_body(*args, **kwargs)
    271         .format(_pretty_format_positional(args), kwargs,
    272                 len(saved_function.concrete_functions),
--> 273                 "\n\n".join(signature_descriptions)))
    274
    275   concrete_function_objects = []

ValueError: Could not find matching function to call loaded from the SavedModel. Got:
  Positional arguments (9 total):
    * {'input_ids': <tf.Tensor 'input_ids_1:0' shape=(1, 14) dtype=int32>, 'attention_mask': <tf.Tensor 'input_ids:0' shape=(1, 14) dtype=int32>}
    * None
    * None
    * None
    * None
    * None
    * None
    * None
    * False
  Keyword arguments: {}

Expected these arguments to match one of the following 2 option(s):

Option 1:
  Positional arguments (9 total):
    * {'input_ids': TensorSpec(shape=(None, 5), dtype=tf.int32, name='input_ids/input_ids')}
    * None
    * None
    * None
    * None
    * None
    * None
    * None
    * True
  Keyword arguments: {}

Option 2:
  Positional arguments (9 total):
    * {'input_ids': TensorSpec(shape=(None, 5), dtype=tf.int32, name='input_ids/input_ids')}
    * None
    * None
    * None
    * None
    * None
    * None
    * None
    * False
  Keyword arguments: {}

@karrdy89,
Please take a look at this comment from issue #37973 with a similar error and let us know if it helps. Thanks!

@karrdy89,
Please take a look at this comment from issue #37973 with a similar error and let us know if it helps. Thanks!

In my case redefine the input signature can solve the problem.
If you just save transformers distilbert model, the form of the _default_save_signature function will look like this.
 input_signature: ({'input_ids': TensorSpec(shape=(None, 5), dtype=tf.int32, name='input_ids')})

Therefore, if you want to pass a total of three inputs(input_ids, attention_mask, token_type_ids), it is necessary to design the model layer according to the input and redefine the input signature through the call method with @tf.function decorator.
However, it seems there is a problem that an error occurs in the loaded model when the same value as the input before saving.

In my case redefine the input signature can solve the problem.
If you just save transformers distilbert model, the form of the _default_save_signature function will look like this.
 input_signature: ({'input_ids': TensorSpec(shape=(None, 5), dtype=tf.int32, name='input_ids')})

Therefore, if you want to pass a total of three inputs(input_ids, attention_mask, token_type_ids), it is necessary to design the model layer according to the input and redefine the input signature through the call method with @tf.function decorator.
However, it seems there is a problem that an error occurs in the loaded model when the same value as the input before saving.

@karrdy89,
Can you try updating TF to latest stable version i.e 2.7.0 and let us know if the issue still persists? Thanks!


Fix memory leak

Following this guide, I found a memory leak in my tests.

This pointed me to service:panel-actions, which sets an EmberObject on its prototype under the _registry key.
In this PR, I move the creation of the _registry into the init hook so it's set on the Service instance and not its prototype.

Great work! I'll try to take a look and merge this tomorrow. Please remind me if I forget 🙂

@rwjblue and @NullVoxPopuli Any final thoughts?

Thanks @rwjblue !


Internal Server Error when trying to browse to azure app

I followed this tutorial and I am stucked at the step "Browse the the Azure App".  The browser shows me "An error occurred while starting the application.
.NET Core 4.6.28207.03 X86 v<IP_ADDRESS>    |   Microsoft.AspNetCore.Hosting version 2.2.7-servicing-10089    |    Microsoft Windows 10.0.14393    |   Need help?"
What's going on here please?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 00961883-36eb-f736-b906-73d4c35e69b0
Version Independent ID: 3a2fd493-9682-eedf-fad1-571b9391cd46
Content: Tutorial: ASP.NET Core with SQL Database - Azure App Service
Content Source: articles/app-service/app-service-web-tutorial-dotnetcore-sqldb.md
Service: app-service
GitHub Login: @cephalin
Microsoft Alias: cephalin

@jumppard Thanks for the feedback! We are currently investigating and will update you shortly.

@jumppard Thanks for asking question! For app startup errors you may follow below document to diagnose errors when an app is deployed to Azure App Service.
You can run the app in the Kudu Remote Execution Console to discover the error: Open Advanced Tools in the Development Tools area. Select the Go→ button. The Kudu console opens in a new browser tab or window > open Debug console and select CMD.
Reference doc: Troubleshoot on Azure App Service

@jumppard Since We didn’t hear back from you. We will now close this out but if you feel you need more information please just let us know.

I have the same problem. I'm getting:
An error occurred while starting the application.
.NET Core 4.6.28207.03 X86 v<IP_ADDRESS>    |   Microsoft.AspNetCore.Hosting version 2.2.7-servicing-10089    |    Microsoft Windows 10.0.14393    |   Need help?


Is there a way to open the datepicker programmatically with a method?

@handplant yep you can use the methods doShow, doHide and toggle
<div>
    <t-datepicker
      ref="datepicker"
      placeholder="Pick a date"
    />
    <button @click="$refs.datepicker.doShow()">
      show
    </button>
    <button @click="$refs.datepicker.doHide()">
      hide
    </button>
  </div>

Closing this issue, for now, feel free to open again if you need something else


Draw PolyLine

Hello, i would like to know if there's a way to draw a polyline having two vectors. Could someone provide me with an example ?

Hi @davifalta, have you gone through the requirement checklist before opening a new issue?
You can view an example on how to draw a Polyline at: https://docs.viromedia.com/docs/viropolyline


Problem with paypal login

Hi, i have an issue when i proceed with authentication.
The errore message is "information isn't correct" but the credential are correct!
I'm in sandbox environment

@mica83 Have you resolved this issue ? I am facing this issue on live environment.


Review and tidy up the interfaces

The interfaces can be organized bit better. There are a lot of repetition in them as well

this was solved in one of the previous commits


Sample: Developers can update using DML

Sample code:  hhttps://github.com/GoogleCloudPlatform/dotnet-docs-samples/blob/master/spanner/api/Spanner/Program.cs#L1232
This should involve creating a read-write transaction, and updating some data in a table using DML, and committing the RW transaction using the RunTransaction() function.

I think the links above refer to the spanner_dml_standard_update example.


Master & Slave NS Setup

Hello All,
I followed the DigitalOcean tutorial to set up master and slave servers. In order for the domain to replicate, there must be 2 NS records in the domain. I don't see an option to add NS records. Am I missing something?

Hi @dfiel
Thanks for trying PowerDNS-Admin! You'll need to add the NS record type into config.py. Find the line that says this:
RECORDS_ALLOW_EDIT = ['A', 'AAAA', 'CNAME', 'SPF', 'PTR', 'MX', 'TXT']
and change it to this:
RECORDS_ALLOW_EDIT = ['A', 'AAAA', 'CNAME', 'SPF', 'PTR', 'MX', 'TXT', 'NS']
Let me know if that helps. :smile:

@ivanfilippov Yes, that worked. Now I just have to get the actual syncing of records to work. Would you know anything about that?

This is how you'd configure a traditional master/slave setup:

Make sure you have allow-axfr-ips=<your slaves IP address> set in the masters /etc/powerdns/pdns.conf.
Add a new domain as a master on the PowerDNS-Admin instance on the master
Add the same domain as a slave on the PowerDNS-Admin instance on the slave (making sure to enter the masters IP address when you do it)
That's it, PowerDNS will take care of replication by itself

You can also configure 'supermaster' functionality which is a very cool feature in PowerDNS. This makes the slave automatically query the master for all domains the master hosts and create slave domains for them as long as the slave is one of the configured nameservers. All you'd need to do is add the masters IP address and the current servers hostname into the supermasters database table on the slave. PowerDNS-Admin doesn't have this functionality so you'll need to do it manually via the SQL command line or a tool like phpMyAdmin. Something like:
INSERT INTO supermasters VALUES ('<your masters IP address>', '<your slaves hostname>', 'admin');

The DigitalOcean tutorial you linked actually uses this method so I'd recommend going with it. You also won't need a PowerDNS-Admin instance on the slave.

@ivanfilippov How long does this usually take to propagate? My settings look like this:
 +---------------+------------------------+---------+
 | ip            | nameserver             | account |
 +---------------+------------------------+---------+
 | 104.XXX.61.XX | ns2.XXXXXXXXXXXXXX.xyz | admin   |
 +---------------+------------------------+---------+

The correct master IP is in the above record, and the settings in PowerDNS-Admin on the host look like this:

Am I missing something, or are my settings wrong?

Your settings look good to me. To confirm, the supermaster snip you pasted above is on the slave server and the screenshot is from master, correct?
Also, have you tested to make that your slave can access and query the master? Something like running dig ns1.yourdomain.com @yourmastersIP on the slave should do it.

@ivanfilippov Yes, the MySQL results are on the slave, and the screenshot is from my master server.
Using dig as you mention returned the correct IP as an A record.

Hi @dfiel
Sorry for the delay. This may be a bit beyond my abilities, you might want to ask for help on the PowerDNS forums/github.


[AutoPR compute/resource-manager] The change is to support new resource type ProximityPlacementGroup

Created to sync https://github.com/Azure/azure-rest-api-specs/pull/5507

This PR has been merged into https://github.com/Azure/azure-sdk-for-go/pull/4513


Bedrock needs to upgrade to supported AKS version

Describe the bug:
When I run terraform apply to standup AKS cluster  westus2 region, I am getting the following message. "Version 1.13.9 is not supported in this region."
To Reproduce:
Use Azure-simple template and fill in the necessary information. Run terraform apply
Expected behavior:
All resources to provision correctly
Screenshots:
Additional context:
Does this require updates to documentation?:
May be

This is not a bug as I didn't have .terraform folder deleted before deploying the cluster. Closing


[Bug][Realy] Lacking support for parameter seed in dropout will lead to crash

As we can see in the  ONNX official documentation seed is an optional input.
However, Relay only supports rate attr and doesn't support the seed as an attr yet, which could lead to a crash.
You can see the code in file src/relay/op/nn/nn.cc
Crash message:
Traceback (most recent call last):
  ....
    irmod, params = relay.frontend.from_onnx(model, {'x': (3, 4, 5)}, freeze_params=True)
  File "/workplace/software/tvm/tvm/python/tvm/relay/frontend/onnx.py", line 7346, in from_onnx
    mod, params = g.from_onnx(graph, opset)
  File "/workplace/software/tvm/tvm/python/tvm/relay/frontend/onnx.py", line 6963, in from_onnx
    self._construct_nodes(graph)
  File "/workplace/software/tvm/tvm/python/tvm/relay/frontend/onnx.py", line 7078, in _construct_nodes
    op = self._convert_operator(op_name, inputs, attr, self.opset)
  File "/workplace/software/tvm/tvm/python/tvm/relay/frontend/onnx.py", line 7204, in _convert_operator
    sym = convert_map[op_name](inputs, attrs, self._params)
  File "/workplace/software/tvm/tvm/python/tvm/relay/frontend/common.py", line 453, in __call__
    return get_relay_op(op_name)(*inputs, **new_attrs)
TypeError: dropout() got an unexpected keyword argument 'seed'

Triage

relay:op

@siju-samuel @merrymercy @MarisaKirisame Should we add the support for this attribute in Dropout? If not, should we add a special handling to ignore it to avoid a crash？

I do think it should be a attr.


Question about sending []byte of json to bulk indexer

I have a byte array of a JSON string that I want to add to a BulkIndexRequest. I think that because it is a byte array and not a string, elastic is trying to Marshal it to JSON (https://github.com/olivere/elastic/blob/master/bulk_index_request.go#L152).
I can convert to a string, but I think this has allocation implications that I would like to avoid. Does it make sense to have the case statement in the Source method check for a byte array and handle it like a string?

@jgoodall Thanks for reporting. Adding a case switch there would make elastic handle all []byte arrays as strings. I'm not sure this is correct every time. Maybe someone wanted to add an array of numbers instead of a string, and this would now be silently ignored. So I guess the correct way of doing this is to wrap it in a string.
line := string(byteArray)

Maybe json.RawMessage is an alternative for your use case.
But maybe I don't have all the details of your use case.

Ok, thought adding []byte to case might catch unwanted cases... What I did is what you suggested (string(byteArray)), and will look into json.RawMessage.


fix: crumb fetch didn't use cookie after it was fetched

When fetching the cookies, they were not used in the subsequent request, and so the request failed. This fix updates the cookies after they are fetched in petcrumb

Actually no, the cookies are stored. We're getting errors fetching crumb though, but it's in the error handler on DownloadRawDataAsync. I'm thinking to skip fetching crumb when in the error handler. The URL we're fetching doesn't even use the crumb, and I'd like to see what status code we're getting from yahoo


generator/linux: Exclude more unneeded platforms from the toolchain

These changes reduce the size of the SDK by 450MB.   Not having
to extract and copy this data around slightly speeds up the process
of building an SDK.  On my machine

Building a Swift 6.0 aarch64 SDK decreased from 23s to 22s
Running the EndToEndTests decreased from 32m39s to 32m17s

The EndToEndTests continue to pass after this change.

@swift-ci test

% SWIFT_SDK_GENERATOR_RUN_SLOW_TESTS=1 swift test --disable-swift-testing --filter EndToEndTests
...
Test Suite 'swift-sdk-generatorPackageTests.xctest' passed at 2024-11-28 17:00:47.343.
         Executed 18 tests, with 0 failures (0 unexpected) in 1937.071 (1937.072) seconds
Test Suite 'Selected tests' passed at 2024-11-28 17:00:47.343.
         Executed 18 tests, with 0 failures (0 unexpected) in 1937.071 (1937.072) seconds


TILA-2376 | Make subscriptionId and phone not mandaroy for reading order

CHANGES

Order from_json method had an expectation that subscriptionId would be always present. This isn't the case and this adds handling for non existent subscription ids. Same goes for the phone.
Send tax percentage value without comma to verkkokauppa

Refs TILA-2376

I'll merge this because there is need to test the whole flow in dev. The nitpicks can be addressed later in a separate PR ☺


How to use image with no link  wrap

I am trying to apply an auto lightbox on all images inside a post.
Getting the relevant selector attached is easy but i thing the plugin
looks only for the HREF attr?
How can i get an image to work directly using its SRC attr?

Sorry, i got it. Just needed to look at the class unMinified (nicly organized) - here is an example for anyone looking to do the same:
$('.wrraper img').simpleLightbox({
        captionAttribute: 'alt', // choose data source for library to glean image caption from
        urlAttribute: 'src', // where to expect large image
});


wsgi.py has hard-coded path

NOT COOL: https://github.com/OSU-Net/arim/blob/master/arim/wsgi.py#L19
Make this path inclusion portable.

What the heck

Not sure why that's there.


Roll Plugins from 1a56bb2daea7 to bfa34380ea05 (1 revision)

https://github.com/flutter/plugins/compare/1a56bb2daea7...bfa34380ea05
2021-12-13<EMAIL_ADDRESS>[video_player] Fix a flaky test (flutter/plugins#4611)
If this roll has caused a breakage, revert this CL and stop the roller
using the controls here:
https://autoroll.skia.org/r/flutter-plugins-flutter-autoroll
Please CC<EMAIL_ADDRESS>on the revert to ensure that a human
is aware of the problem.
To file a bug in Flutter: https://github.com/flutter/flutter/issues/new/choose
To report a problem with the AutoRoller itself, please file a bug:
https://bugs.chromium.org/p/skia/issues/entry?template=Autoroller+Bug
Documentation for the AutoRoller is here:
https://skia.googlesource.com/buildbot/+doc/main/autoroll/README.md

Commit queue failed; closing this roll.


Polymer Exception

I'm receiving lots error reports from the field (via automatic error reporting) showing errors originating in Polymer that look like this:
TypeError: Cannot read property 'nodeType' of null
at paper-ripple.target (https://www.jigsawexplorer.com/scripts/bower_components/paper-ripple/paper-ripple.html:564:28)
at paper-ripple.Polymer.attached (https://www.jigsawexplorer.com/scripts/bower_components/paper-ripple/paper-ripple.html:580:25)
at paper-ripple.Polymer.Base._addFeature._invokeBehavior (https://www.jigsawexplorer.com/scripts/bower_components/polymer/polymer-micro.html:338:4)
at paper-ripple.Polymer.Base._addFeature._doBehavior (https://www.jigsawexplorer.com/scripts/bower_components/polymer/polymer-micro.html:333:6)
at paper-ripple. (https://www.jigsawexplorer.com/scripts/bower_components/polymer/polymer-micro.html:148:6)
at https://www.jigsawexplorer.com/scripts/bower_components/polymer/polymer-micro.html:111:1
at Array.forEach (native)
at Object.Polymer.RenderStatus._makeReady (https://www.jigsawexplorer.com/scripts/bower_components/polymer/polymer-micro.html:110:17)
at https://www.jigsawexplorer.com/scripts/bower_components/polymer/polymer-micro.html:117:22
My own code doesn't appear in the call stack so I don't know what's going on. I can't reproduce the error on any of my own machines. I'm using Polymer 1.1. Has anyone else seen this? Is there a solution?

Do older versions of polymer/the elements help? Unfortunately, we're not much help without a reproducible test case or more information. Please reopen if you have more.


Find layer

As an optional tool, or maybe automatically when the list of layers grows too long, a "find" layer search input could come in handy. It could maybe either filter the layer list, or scroll to the searched layer.

Current state: search input is present, but without any functionality.


Add customepnameprefix storage class option.

customepnameprefix has been added to glusterfs storage class
via PR# https://github.com/kubernetes/kubernetes/pull/69419
This patch add its documentation to example files and README.
Signed-off-by: hchiramm<EMAIL_ADDRESS>

/assign @idvoretskyi

/assign @eparis

/assign @jsafrane

/assign @ahmetb
/assign @sebgoa

Could anyone approve this PR for 1.13 release ?

I merged it to the previous paragraph instead in my commit. Take a look @humblec.

@ahmetb lgtm.

/approve

/lgtm


How to Host A Bot in Telepot On Web

I am new to Telepot and Wanted to  how to host my bot for free.
Any free service will do on which bot could be hosted.
Your help is highly appreciated

Well, this is really not the space to ask this question ....
In theory, any web hosting services would do. Free ones? I can think of Google App Engine. But you still have to learn the nuts and bolts of how to use it.


Docs mix of WebJobs and Functions

Links go to Function resources, which are not used in the same way as WebJobs
For example "See Queue trigger usage"

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 2e9e1a8a-6284-a230-061e-7cb27258571a
Version Independent ID: 43390e30-04d6-6d4e-018e-21419dbb11e8
Content: Get started with the WebJobs SDK - Azure App Service
Content Source: articles/app-service/webjobs-sdk-get-started.md
Service: app-service
GitHub Login: @ggailey777
Microsoft Alias: glenga

@estensen Thanks for the feedback! We are currently investigating and will update you shortly.

@estensen Thanks for the feedback! As Azure functions are built using the Azure web jobs foundation. Also, Azure Functions provide most of the functionality already available in WebJobs, but with some new cool capabilities. You may want to have a look on [this]. Hope this helps. (https://stackoverflow.com/questions/36610952/azure-webjobs-vs-azure-functions-how-to-choose)

That doesn't help me. I need to use WebJobs because Functions doesn't provide at-least-once delivery. The docs are confusing because WebJobs and Functions are used slightly different.

@estensen Thanks for the clarification on this. I have shared your feedback with the content owner for further review.

@estensen thanks for providing the feedback on WebJobs documentation. We realize that WebJobs is an important component of App Service for many Azure customers. However, as @SnehaAgrawal-MSFT points out, Functions is built on WebJobs. As such, the bindings documentation for Functions should generally "just work" with the WebJobs SDK.
I've updated some of the links in this article to make sure that they go to the correct tab in the queue binding article. If you see other issues with specific bindings that affect WebJobs apps, please provide feedback on those specific articles.
Also, you might want to review the article Azure Functions reliable event processing, which describes strategies for "at-least-once" processing of event in your functions.
#please-close


Downloads of Repositories of large courses seem not to work

Describe the bug
We are currently facing issues when downloading the submissions of programming tasks of our course (~700-800 Submissions per task).
The download does not cancel in the Backend, Zip is also created on the backend machine, but download never starts in the browser. We assume that a timeout occurs.
May be related to #859:

This is an issue for 2 reasons: The request can take long and run into a gateway timeout

If timeouts are the problem, maybe use some mechanism like:

After requesting the download, you receive a link where you can download the zip after the zip has been created
Use the notification system to provide information that the download is now possible
Use this only if the download takes too much time to start using the current implementation

To Reproduce

Try to download a programming task with many submissions
Wait
Spinning circle will disappear
Download in the frontend will never start

Expected behavior
Download should start after some time.
Screenshots
No response
What browsers are you seeing the problem on?
Firefox
Additional context
No response
Relevant log output
ERROR Error: Parameter "key" required
    instant ngx-translate-core.mjs:578
    addAlert alert.service.ts:64
    addErrorAlert alert-error.component.ts:117
    httpErrorListener alert-error.component.ts:73
    RxJS 8
core.mjs:6495:12

2021-12-13 12:51:24.294  INFO 11 --- [nio-8080-exec-6] .t.i.w.a.w.r.ProgrammingExerciseResource : Export XXX student repositories of programming exercise 51 with title 'Blatt 3 - Aufgabe A' was successful in 510.60s.
2021-12-13 12:51:24.325  INFO 11 --- [nio-8080-exec-6] d.t.i.w.a.w.r.e.ExceptionTranslator      : Broken pipe IOException occurred: java.io.IOException: Broken pipe

ERROR Error: Parameter "key" required
    instant ngx-translate-core.mjs:578
    addAlert alert.service.ts:64
    addErrorAlert alert-error.component.ts:117
    httpErrorListener alert-error.component.ts:73
    RxJS 8
core.mjs:6495:12
    Angular 2
    handleError sentry.error-handler.ts:46
    next Angular
    RxJS 6
    Angular 20
    RxJS 15
    broadcast event-manager.service.ts:30
    intercept errorhandler.interceptor.ts:26
    RxJS 9
    Angular 16
    RxJS 22

This is also the case for JPlag generations the may take :
Report exported to /opt/Artemis/data/repos-download/1640099033285/PROGRAMMING2122SHEET2TASKA-output
2021-12-21 15:03:53.403  INFO 10 --- [io-8080-exec-22] .p.ProgrammingPlagiarismDetectionService : JPlag report zipping to /opt/Artemis/data/repos-download/1640099033285
2021-12-21 15:03:53.435  INFO 10 --- [io-8080-exec-22] .p.ProgrammingPlagiarismDetectionService : JPlag report zipped. Schedule deletion of zip file in 1 minute
2021-12-21 15:03:53.447  INFO 10 --- [io-8080-exec-22] d.t.i.w.a.w.r.e.ExceptionTranslator      : Broken pipe IOException occurred: java.io.IOException: Broken pipe

Increasing the timeout of the reverse proxy, e.g. nginx, should help, see https://github.com/ls1intum/artemis-ansible-collection/blob/56a8f38d7698fbf00bcb78ec7443e9ce0c058076/roles/proxy/templates/nginx_timeouts.conf.j2

Works for our systems. Maybe this should be added to the documentation (if not already there :) )


player improvements

[ ]  preferred player setting (port/full/float)
[x] pref to auto open floating player when exit player (auto float)
[ ] play from search (auto add to default)
[x] when portrait player is minimised the ayt player pauses but the bottom play button doesnt update - can't press it to play on return
[x] fullscreen player doesnt got to pip properly - player is cleaned up somewhere - disabled
[ ] show dialog for player prefs and settings when entering player for the first time

[ ] check display on apps permission
[x] ask auto float defaulted true

[x] looks at full screen controls again (get the buttons to press) - used AYT control view
[ ] coming back from fullscreen player exits playlist fragment (goes back to playlists) - so context is lost
[x] force playlist fragment to row in portrait player

todo review: and make a new ticket for outstanding


SOCKET.IO 2.0 Compatibility

Is there a plan to produce a version of this client to be compatible with socket.io 2.0 ?  Thanks!

I thinl this issue is fixed?

Yes, Socket.IO v2 is (and has always been) supported. Please see https://github.com/socketio/socket.io-client-cpp#compatibility-table.

Yes, Socket.IO v2 is (and has always been) supported. Please see https://github.com/socketio/socket.io-client-cpp#compatibility-table.


Maintenance: Patch and ping yargs across project

from ossindex/sonatype/org/vuln/b7740d41-fc85-4d22-8af5-5a3159e114ea

selfie


Add the possibility to change the value of rayff, mieff, abwff according to the main config file

So far, the values set macros/tuning_parameters.mac are used. If the command WCSim/tuning/abwff  xxx is also used in the 'main' config file then WCSim outputs 'Set the Rayleigh scattering parameter' but doesn't actually change the value of the abwff parameter to xxx.  If  macros/tuning_parameters.mac doesn't exist then the default values are used for these parameters instead of anything that one could have written in their main config file.
Making this possible doesn't sound super complicated and would be very useful when submitting batch jobs.

Hi @tdealtry. Thanks a lot for your prompt reply! I understand better now, thanks for clarifying! Having a second argument to WCSim will do the trick very cleanly! But there's no rush, a small bash script is enough to work around the problem, I thought I would just raise the issue to prevent people from simulating the same events multiple times (as I did...) if they hadn't realised this subtlety.

Glad you've got a word around!
I'm going to leave this open, as a reminder to do 2 things

Explictly say in the README to not move parameters between .mac files
See if there's a way of exiting the code if the tuning parameters are attempted to be set in the main config file


variable explorer only works for internal console

From<EMAIL_ADDRESS>on 2013-03-14T10:15:35Z
Spyder Version:  2.1.11
Python Version:  2.7.3
Qt Version:      4.8.3, PyQt4 (API v2) 4.9.5 on Windows
What steps will reproduce the problem?

enter a=5 in the console interpreter What is the expected output? What do you see instead? expect to see the variable a in the variable explorer

Please provide any additional information below
. not sure it is related but if i change the "exclude internal references" or any of these filters i get the following error in the internal console:
>>> Traceback (most recent call last):
File "C:\Python27\lib\site-packages\spyderlib\widgets\externalshell\namespacebrowser.py", line 249, in option_changed
'set_remote_view_settings()', settings=[settings])
File "C:\Python27\lib\site-packages\spyderlib\utils\bsdsocket.py", line 64, in communicate
write_packet(sock, command)
File "C:\Python27\lib\site-packages\spyderlib\utils\bsdsocket.py", line 24, in write_packet
sock.send(struct.pack("l", len(sent_data)) + sent_data)
AttributeError: 'NoneType' object has no attribute 'send'
incidentally any variables added to the internal console DO show up
Original issue: http://code.google.com/p/spyderlib/issues/detail?id=1316

From<EMAIL_ADDRESS>on 2013-03-14T09:33:06Z
after a reinstall the issue disappeared... I have no idea why :S

From pierre.raybaut on 2013-03-14T09:33:35Z
Please try to run Spyder in debug mode and take a look at the debug files in '.spyder2' directory (in your home directory).
This AttributeError only means that the interpreter has been shut down before. In other words, there should be another traceback somewhere.

From pierre.raybaut on 2013-03-14T09:34:00Z
Ok, I'm closing it.
Status: Invalid


Provide a method of getting value of invalid form

Version
Tell us which versions you are using:

tcomb-form v0.9.10
react v15.4.1

Expected behaviour
Since there is Form.validate(), Form.getValue() should return a value without validation or provide a separate method to get a form value without validation.
This is required for all kinds of programmatic form filling based on user's selections in the form. For example, in some order form, one would like to copy customer's address to shipping address.
Actual behaviour
Form.getValue() returns null for invalid forms, thus forcing developer to read all fields values one by one using form.getComponent(path) to recreate form's state.
Or maybe there is already some other way to do this?
Steps to reproduce

create a form with required fields
allow user to fill some fields and click a button
in the button's onClick handler, try to programmatically fill the rest of the fields

It's digging into not-really-public interfaces, but:
this.refs.form.refs.input.getValue()

https://github.com/gcanti/tcomb-form/blob/master/GUIDE.md#validate

https://github.com/gcanti/tcomb-form/blob/master/GUIDE.md#validate

form.validate().value works.
Thank you.


bugfix: throw spanner validation error for parametric descriptors

Codecov Report
Attention: 1 lines in your changes are missing coverage. Please review.

Comparison is base (0ff7f79) 68.54% compared to head (8f1a498) 68.87%.

Files
Patch %
Lines

...ackages/spanner/lib/src/parametric/descriptor.dart
75.00%
1 Missing :warning:

Additional details and impacted files
@@            Coverage Diff             @@
##             main      #94      +/-   ##
==========================================
+ Coverage   68.54%   68.87%   +0.33%
==========================================
  Files          34       34
  Lines        1103     1102       -1
==========================================
+ Hits          756      759       +3
+ Misses        347      343       -4

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


[HackTogether] support for micro-segmentation in Athenz UI (view/delete operations)

Please change copyright to Athenz Authors for all new files.


Fix doctest parsing bug involving leading whitespace in output

Previously, the following doctest would be parsed incorrectly:
>>> print('1\\n  2')
1
  2

The leading indentation on the "2" would be stripped. This PR fixes the issue by stripping only the leading whitespace common to all lines.

LGTM.


Actor "Max HP" cannot be edited if value is modified by an active effect

Originally in GitLab by @TheGiddyLimit
(N.b., did not check for similar issues with other fields!)
Repro

Run:

(async () => {
	const actor = await Actor.create({
		name: "test",
		type: "character",
		data: {
			attributes: {
				hp: {
					max: 10,
				}
			}
		}
	});

	await actor.createEmbeddedDocuments(
		"ActiveEffect",
		[
			{
				label: "HP Increase",
				changes: [
					{
						key: "data.attributes.hp.max",
						mode: 2,
						value: "10",
					}
				],
			}
		]
	);
})();

open sheet, attempt to edit Max HP. Sometimes it won't change, other times, it will visually change, but re-opening the sheet will revert the change.

Expected
Changing the field should modify the underlying HP value according to the difference between "currently displayed value" and "user-input value"

Reframing this as UX improvements for editing values currently modified by an AE.


Typescript Support

Hello, I am trying to use this for a RedwoodJS Typescript project but I am running into a few errors.
The first issue was that the StripeItemsParamsInput type was unknown.

I copied the stripeItem.sdl.ts and customerPortal.sdl.ts and got that working.

But now my GraphQL query returns null for the query below.
export const QUERY = gql`
  query StripeItems($params: StripeItemsParamsInput) {
    stripeItems(params: $params) {
      id
      name
      description
      images
      price
      type
    }
  }
`

This only happens when in the Redwood Typescript app. When I try this in a Redwood Javascript app, it works fine with the same Stripe account.
One difference I noticed was that the Javascript app has the following in graphql.js while the Typescript app doesn't. I'm not sure if this is whats causing it. I did not do anything other than the installation instructions and adding the two SDL files above.
Thank you for your time.

I believe once the SDL file is defined in your project it's expecting a service to relate to it within your project and not "stripeServices". Hence why your query won't be working.
Not sure how we can resolve this at the moment, I am assuming in a production environment you'll probably end up building your own query and input types anyway.


Failed to verify module interface of 'Promises.'

Describe the bug
if I add a LiveKit client dependency to a project that has "BUILD_LIBRARY_FOR_DISTRIBUTION=YES"
the build process will fail due to an error: failed to verify module interface of 'Promises.'
iOS/macOS Version
Xcode 14.3
Steps to Reproduce
if we create an empty app, add  LiveKit framework (SwiftPM) and add BUILD_LIBRARY_FOR_DISTRIBUTION=YES,
it will cause a problem
Logs
/Build/Intermediates.noindex/Promises.build/Release-iphoneos/Promises.build/Objects-normal/arm64/Promises.private.swiftinterface:5:8: error: no such module 'FBLPromises'
import FBLPromises
^
/Build/Intermediates.noindex/Promises.build/Release-iphoneos/Promises.build/Objects-normal/arm64/Promises.private.swiftinterface:1:1: error: failed to verify module interface of 'Promises' due to the errors above; the textual interface may be broken by project issues or a compiler bug
// swift-interface-format-version: 1.0
^

Hi, I've started working on removing dependencies on Promises lib.

v2 doesn't use Promises any more, can you migrate ?
Closing this for now.


Refactor React-tsparticles to take children instead of working with classNames and Wrappers

Refactor React-tsparticles so that all we need to do is wrap it around our app or component where we need the particles, so basically let it have children, this way all the unnecessary stuff like biding to canvas/wrapper/class is automatically handled for us.
Also, I think it is time to move to hooks, I see that the component is unnecessary complicates because it is made with Class components.

Refactor React-tsparticles so that all we need to do is wrap it around our app or component where we need the particles, so basically let it have children, this way all the unnecessary stuff like biding to canvas/wrapper/class is automatically handled for us.

Can you tell me more about this? I don't understand what is all the work needed for binding, wrappers, etc. You just place the <Particles /> tag where you need it, place a CSS with positioning and width (or the backgroundMode if it's simpler) and you're done.
About hooks I discovered them now, I'll have a look at them in these days to see how they work and what is needed to change the code.

Refactor React-tsparticles so that all we need to do is wrap it around our app or component where we need the particles, so basically let it have children, this way all the unnecessary stuff like biding to canvas/wrapper/class is automatically handled for us.

Can you tell me more about this? I don't understand what is all the work needed for binding, wrappers, etc. You just place the <Particles /> tag where you need it, place a CSS with positioning and width (or the backgroundMode if it's simpler) and you're done.
About hooks I discovered them now, I'll have a look at them in these days to see how they work and what is needed to change the code.

Thanks for taking a look at hooks, it is definitely the way to go. About my issue with React-tsparticles you said to place a CSS with positioning, do you mean by this I need to create a div by myself make positioning so the particles are perfect behind my Website and not above? If yes then this is the reason I suggested to make it easier why not just do this.
<Particles>
    <MyAppWithParticlesInTheBackground
</Particles>
```

No extra <div> tag is needed.
You can see this sample: https://codesandbox.io/s/react-tsparticles-dw43f?file=/src/App.js
It's not using extra divs and they are placed as a background. Just use the id property on the <Particles /> tag and use it in CSS to change its positioning.
This configuration can be achieved with the new and simpler backgroundMode that you find in my previous comment. If you enable, the Particles will be placed automatically in the background with the zIndex value specified.
I don't think using children will be a good choice since all the <Particles /> children will be <canvas> sibling and CSS will be still needed

@matteobruni Thanks for backgroundMode  first time I come across this and the example, it seems this fixes all the problems I had, thanks for this.


💽 Add Docstrings

Docstrings can be added for the module itself, for the class, and the functions. This will help users understand the syntax of LESP without opening the documentation all the time.

Added docstrings to the module to give a brief explanation of how stuff works.


feat(escpos): enable ability to disable beeper, and support legacy raster print

Firstly, thanks so much for this amazing module! It truly is fantastic!
This pull request solves two issues I had.

I have a generic "ESCPOS Compatible" XPrinter, which would print the beeper command string at the top of the receipt. I've added an option to disable beeper control. The same issue was also present on a Star TSP143Lan when operating in ESCPOS mode.
Both the Star and the XPrinter were unable to print raster graphics at all, when using ESCPOS instead printing long strings of gibberish. The impact driver worked for printing graphics, however, the quality was not desirable. I've added support for the now obsolete command GS v 0 which works very nicely on both of these printers to print great quality images and which is likely still on many printers still in circulation.

To be clear, the Star printer works fine in starline mode (I'm using printnode to submit the raw print commands/job to the printer).
I hope this request meets your approval!
Cheers again for an amazing library and toolset!
PS: I also have a typescript definition file for this module based on this pull request. If this is merged, I can submit another requests including it. I've listed it below for reference
export namespace receiptline {
  type Encoding = 'cp437' | 'cp852' | 'cp858' | 'cp860' | 'cp863' | 'cp865' | 'cp866' | 'cp1252' | 'cp932' | 'cp936' |
    'cp949' | 'cp950' | 'multilingual' | 'shiftjis' | 'gb18030' | 'ksc5601' | 'big5'
  type Command = 'svg' | 'escpos' | 'sii' | 'citizen' | 'fit' | 'impact' | 'impactb' | 'starsbcs' | 'starmbcs' |
    'starmbcs2' | 'starlinesbcs' | 'starlinembcs' | 'starlinembcs2' | 'emustarlinesbcs' | 'emustarlinembcs' |
    'emustarlinembcs2' | 'stargraphic'

  export interface PrinterSettings {
    cpl: number
    encoding: Encoding
    upsideDown: boolean
    spacing: boolean
    cutting: boolean
    gradient: boolean
    gamma: number
    threshold: number
    beeper: boolean
    legacyImage: boolean
    command: Command
  }

  export const transform: (document: string, printerSettings: Partial<PrinterSettings>) => string
}

export type PrinterSettings = receiptline.PrinterSettings
export default receiptline

Thank you for the pull request!
We have been receiving user requests to override/extend printer implementations, so we have adopted a generic solution in V1.7.0.
We have also added an example program to replace GS ( L / GS 8 L with legacy GS v 0.
FS ( A command selects the style of multibyte characters, not the beeper tone.
Thank you for using receiptline!

Thanks, I'll give this a go! Also thanks for clearing up my mistake on what that opening command was!


Fix  ceph grafana/dashboard validation task

This patch fix the way we run the ceph-validate
tasks against grafana/dashboard involved hosts.
Closes: https://bugzilla.redhat.com/show_bug.cgi?id=1814588
Signed-off-by: fpantano<EMAIL_ADDRESS>

Closing as per conversation w/ @dsavineau.
@guits  fyi


Update Jumpshare.app to version 2.1.2

https://github.com/caskroom/homebrew-cask/pull/14690.

Whoops, sorry about that.


[Question]Complete process to run on rpi4

Hi there, I am developing an app that I want to run on rpi4 on boot using embedded linux but I am new in this field, can anyone tell me the process from building and using flutter elinux to run my app on rpi4 using embedded linux(how to install embedded linux on rpi4 to run my flutter app?)

Please check https://github.com/sony/flutter-elinux/wiki.


Unexpected write permission required for general/last.pt?

Describe the bug
spotiflow asks for writing permissions in the folder of pretrained models.
This is raising an issue when the pretrained models is downloaded into a container, where it's ready-only
exepcted behaviour
Spotiflow should just load the models from the directory and not try to write anything there(?)
To Reproduce
run a standard prediction with general model
Environment (please complete the following information):

Spotiflow version: 0.5.1
OS: linux
OS version: 22.04

Additional context
Add any other context about the problem here.

Hi @BioinfoTongLI,
I tried to replicate by using a read-only cache directory and having the model placed there beforehand but it seems to load normally. Could you paste here the relevant Dockerfile lines (e.g. copying the model to the dir)? Is the model unzipped by the dockerfile or it just transfers the zip?

Hi @AlbertDominguez, sure! many thanks for your reply!
Here it is.
https://github.com/BioinfoTongLI/containers/blob/main/spotiflow/0.5.1-py11/Dockerfile
I've checked that indeed it loaded successfully with Docker. But not with singularity.
Here's the actually error mesage.
Python 3.11.10 | packaged by conda-forge | (main, Oct 16 2024, 01:27:36) [GCC 13.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> from spotiflow.model import Spotiflow
>>> from spotiflow.model import Spotiflow
>>> Spotiflow.from_pretrained('general')
INFO:spotiflow.model.spotiflow:Loading pretrained model: general
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/opt/conda/lib/python3.11/site-packages/spotiflow/model/spotiflow.py", line 229, in from_pretrained
    pretrained_path = get_pretrained_model_path(
                      ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/opt/conda/lib/python3.11/site-packages/spotiflow/model/pretrained.py", line 46, in get_pretrained_model_path
    get_file(
  File "/opt/conda/lib/python3.11/site-packages/spotiflow/utils/get_file.py", line 597, in get_file
    _extract_archive(fpath, datadir, archive_format)
  File "/opt/conda/lib/python3.11/site-packages/spotiflow/utils/get_file.py", line 158, in _extract_archive
    archive.extractall(path)
  File "/opt/conda/lib/python3.11/zipfile.py", line 1702, in extractall
    self._extract_member(zipinfo, path, pwd)
  File "/opt/conda/lib/python3.11/zipfile.py", line 1756, in _extract_member
    open(targetpath, "wb") as target:
    ^^^^^^^^^^^^^^^^^^^^^^
OSError: [Errno 30] Read-only file system: '/models/general/last.pt'

I will try to find out if it's a singularity-specific issue.


Feat. Importance and Feat. Count

Hello,
I'm working with tree based algorithm, such Random Forest, CART or C4.5. But i need to analyze which features and how often the algorithm uses to separate the data.
Could you please implement those methods or functions that calculate the feature importance and feature count on those algorithms?
Thanks!

I would like to take this up.


feat: canonical categories

In the epic task ( https://dev.azure.com/plentymarkets/plentymarkets/_workitems/edit/67244 ) , at the Categories section, the link points to the category pagination metadata. This implementation does not account for that. Shouldn't it ?
Answer:
should be in the pagination task will add it to darius pr

The canonical url added to the page in LTS accounts for the filters in the url. Shouldn't this implementation also do that ? For example:     <link rel="canonical" href="https://mevofvd5omld.c01-14.plentymarkets.com/living-room/?sorting=sorting.price.avg_asc">
yes, fixed

In the LTS I notice that there are no alternate links added when using pagination or url filters.
i don't think that will be a problem

The LTS implementation has the hreflang attribute for the links. Shouldn't this implementation also account for that ?
fixed


RichText is not following Android system font size

Steps to reproduce

Create a RichText widget setting its style using the context.
Increase the Android Font Size setting higher than the second lowest position.

Expected results
The RichText widget should scale with the Android Font Size setting.
Actual results
The RichText widget ignores the Android Font Size setting.
Code sample
https://dartpad.dev/?id=8f5b3747bed1ae85aab9d1e60fcae836
Screenshots or Video

As the system font size is changed, the Text widget scales but the RichText widget does not

Logs
Logs
[Paste your logs here]

Flutter Doctor output
Doctor output
flutter doctor -v
[✓] Flutter (Channel stable, 3.22.1, on Ubuntu 22.04.4 LTS 6.5.0-35-generic, locale en_US.UTF-8)
    • Flutter version 3.22.1 on channel stable at /home/jpwoodbu/fvm/versions/3.22.1
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision a14f74ff3a (8 days ago), 2024-05-22 11:08:21 -0500
    • Engine revision 55eae6864b
    • Dart version 3.4.1
    • DevTools version 2.34.3

[✓] Android toolchain - develop for Android devices (Android SDK version 34.0.0)
    • Android SDK at /home/jpwoodbu/Android/Sdk/
    • Platform android-34, build-tools 34.0.0
    • Java binary at: /home/jpwoodbu/android/android-studio/jbr/bin/java
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)
    • All Android licenses accepted.

[✓] Chrome - develop for the web
    • Chrome at google-chrome

[✓] Linux toolchain - develop for Linux desktop
    • Ubuntu clang version 14.0.0-1ubuntu1.1
    • cmake version 3.22.1
    • ninja version 1.10.1
    • pkg-config version 0.29.2

[✓] Android Studio (version 2023.3)
    • Android Studio at /home/jpwoodbu/android/android-studio
    • Flutter plugin version 79.0.2
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 17.0.10+0-17.0.10b1087.21-11572160)

[✓] VS Code (version 1.89.1)
    • VS Code at /usr/share/code
    • Flutter extension version 3.90.0

[✓] Connected device (3 available)
    • Pixel 8a (mobile) • <IP_ADDRESS>:34853 • android-arm64  • Android 14 (API 34)
    • Linux (desktop)   • linux           • linux-x64      • Ubuntu 22.04.4 LTS 6.5.0-35-generic
    • Chrome (web)      • chrome          • web-javascript • Google Chrome 125.0.6422.112

[✓] Network resources
    • All expected network resources are available.

• No issues found!

Use Text.rich instead. RichText is incorrectly named and should be called something like RawText, it very intentionally does not use any inherited widgets to establish things like text size.

Thank you! That did indeed fix the issue in my app.
Out curiosity, I went looking to see how RichText could be configured so it would scale text with the system font size settings. For anyone also curious about that, I discovered TextScaler. It looks like passing MediaQuery.of(context).textScaler to the textScaler parameter of RichText is how to do that. @jonahwilliams, please correct me if I'm wrong.

Or you just use Text.rich, which does that for you :)

This is a problem that I unconciously had for a long time.
RichTexts naming is depective, because one might wrongfully assume that it works like a Text widget.
It would be great if we could do something about this some day. Maybe we could deprecate the RichText name and point to Text.rich and the new name for the current RichText, whatever that may be. RawText as you suggested sounds fine.

Finding and watching the "Widget of the Week" video links to from
https://api.flutter.dev/flutter/widgets/RichText-class.html had me
confident that using RichText directly was the right thing to do. I just
noticed that that YT video is from 4 years ago. Perhaps that's before
Text.rich was introduced.
On Thu, May 30, 2024 at 3:36 PM clragon @.***> wrote:

This is a problem that I unconciously had for a long time.
RichTexts naming is depective, because one might wrongfully assume that
it works like a Text widget.
It would be great if we could do something about this some day. Maybe we
could deprecate the RichText name and point to Text.rich and the new name
for the current RichText, whatever that may be. RawText as you suggested
sounds fine.
—
Reply to this email directly, view it on GitHub
https://github.com/flutter/flutter/issues/149346#issuecomment-2140958823,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AADYWCTEJIC533DQIOAQDRTZE6SWNAVCNFSM6AAAAABIRRGSHGVHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDCNBQHE2TQOBSGM
.
You are receiving this because you authored the thread.Message ID:
@.***>

Based on https://github.com/flutter/flutter/issues/149346#issuecomment-2140915567, I'll close this as resolved.


Possible bias in training

Hi! Thanks a lot for the code!
Does using torchio.CropOrPad(mask_name='label') in the training phase not contribute to a bias? Because of always centering the image on the label.

Indeed, your observation is correct. This version is designed with an excessive focus on the center. While this approach proves detrimental for targets exceeding 128 pixels, it has negligible impact on small to medium-sized targets.
If your focus is large targets, further fine-tuning is needed.


[Feature] Cropping improvements

In OfficeLens, the corner-nodes in cropping can be adjusted by clicking in the general direction, I think the closest point will then be dragged. This is useful, as if you have to directly drag the nodes, you cannot see exactly where you place them while you adjust them. Also, a zoom option would be nice to crop exactly in the corners, even on smaller screens.

#14 this was already rejected as wontfix. Sad.

#14 this was already rejected as wontfix. Sad.

@test2a the issue you linked seems unrelated? This is about the process of cropping the image to a rectangle, yours seems to be about the output of the pdf.

@test2a the issue you linked seems unrelated? This is about the process of cropping the image to a rectangle, yours seems to be about the output of the pdf.

Oh. Yeah.

Oh. Yeah.

I feel like both https://github.com/Ethereal-Developers-Inc/OpenScan/issues/48 and this one would be good. Maybe make on default and the other one optional, if possible and the developing time is acceptable for both solutions.
If its this one it could be indicated somehow like an outer ring with a higher opacity.

Agreed, this is the most important feature that open source document scanners on Android all lack. Anyone who could implement this, which does not seem to be more challenging than recognizigng shapes and auto-cropping (what a lot of these apps are readily doing).


Adds a holy book

Also called Bible

What does it do

It can currently only store items and you can select a style. Haven't thought about other uses yet

Haven't thought about other uses yet

Maybe make it readable first

It should have a chance to heal if a chaplain uses it on someone.

 If not I'll close in a week.

@exp111 were you coming back to this soon? If not I'll close in a week.

Currently busy with irl stuff so you can close it

Currently busy with irl stuff so you can close it


Add support for Windows 10 in os_filter_min, os_filter_max, and displayed appropriately in the main install bootstrapper dialog

Add support for Windows 10 in os_filter_min, os_filter_max, and displayed appropriately in the main install bootstrapper dialog.
For example,

os_filter_min should allow win10
os_filter_max should allow win10Max
"Windows 10 (x64)" should be displayed instead of what the main install bootstrapper dialog is displaying now: "Windows 8 (x64)".

Closed via https://github.com/dblock/dotnetinstaller/pull/87.

Btw README doesn't say that DNI supports Windows 10. It should.


refactor(transformer): introduce TopLevelStatements common transform

[!WARNING]
This pull request is not mergeable via GitHub because a downstack PR is open. Once all requirements are satisfied, merge this PR as a stack on Graphite.
Learn more

#6186
#6185  👈
#6184
#6183
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @overlookmotel and the rest of your teammates on  Graphite


qml-intro: Missing Images

Images referred in few code examples (ex-easing-curve-alltypes etc) are missing from the qml-intro/images/ folder.
It is not possible to running qml example without these images
Request you to kindly upload all images refereed in the example into the image folder.

Thanks, it's indeed a small commit mistake, 795c1e7 and 96b169f add more images. Please reopen if there are still some missing.


Emoji fields to be listed in dataview page object

Raised here based on ExcaliBrain issue #13 opened by @MugenLee.

Raised here based on ExcaliBrain issue #13 opened by @MugenLee.

yes
This seems to be a problem with the underlying logic, I don't understand it very well
But if it can support the use of emoji as a field, I believe more users will like it
Hope this issue will be resolved
thanks for yours~
@blacksmithgu
@zsviczian

#434 seems related I think


Fix bugs in SQLScriptScanner with big String literals and PostgreSQL identifiers (as introduced by #7646)

"This never happened before, and here we go again": unfortunately #7646 introduced not only proper bug fixes, but some new bugs as well, reproducible on some of our test SQL scripts.
This PR introduces 3 changes:

(⚠ The biggest problem). It seems that Java's regexp "(\\"|[^"])*", though working well with strings of a reasonable size, tends to yield StackOverflowError when literals are big (10k simbols and more). The workaround is the same as with comments: use finite-state machine to match the literal, not the regexp.
According to PostgreSQL docs, dollar sign can be a part of an identifier  (non-standard behaviour for SQL, as they themselves admit), and it must be handled so that this$is$a$valid$postgreSQL$identifier is not mixed with dollar-quoted strings
m.find(offset) && m.start() == offset was suboptimal (we are only interested in cases when the regexp matches exactly starting from the offset and there is no reason in finding it somewhere far away in the script).

Existing tests are not modified, new tests added.

Thanks for your contribution, @inponomarev !


Column chart displaying columns from previous render

Hello, I have plotted a columnchart visualization of data using keen-DataViz. I have applied an in filter to a query.
I modify the filter parameter property_value based on user input (through HTML dropdown).
Post modification, I make a request for updated data and re-render the graph.
It behaves weird on re-render.
I get graph like image attached. The values 1,2,3,4 on x-axis are invalid and columns being shown corresponding to them are from another plot.
The problem happens, when I switch between values in the dropdown. Individually all them render correctly. What might be the issue?
Looks like this is an issue with columnchart and barchart type. Works perfectly in table and piechart

Regards

Hi there!
Which version of keen-dataviz do you use to generate this chart?
The easiest solution would be to create a new fresh keenDataviz instance on every property_value change. I'll investigate why the second render on the same keenDataviz instance doesn't generate the correct chart.

Hello,
I am currently using version 3.5.2. I'll try to share code snippet with you which demonstrates the problem.
It works fine when I create a new instance, but I guess it would be an antipattern.
Regards

Hi @formatkaka ,
Please take a look at the example here: https://github.com/keen/keen-dataviz.js#refresh-every-1-minute
I think that the config's property clearOnRender: true should fix your issue.


Bitwise builtin

Codecov Report

Merging #69 (d5dd86a) into main (ef80dcb) will decrease coverage by 0.03%.
Report is 1 commits behind head on main.
The diff coverage is 64.05%.

@@            Coverage Diff             @@
##             main      #69      +/-   ##
==========================================
- Coverage   62.41%   62.39%   -0.03%
==========================================
  Files          12       14       +2
  Lines        1067     1194     +127
==========================================
+ Hits          666      745      +79
- Misses        357      401      +44
- Partials       44       48       +4

Files Changed
Coverage Δ

pkg/runners/builtin_runner/range_check.go
41.17% <41.17%> (ø)

pkg/runners/builtin_runner/bitwise.go
49.23% <49.23%> (ø)

pkg/vm/memory/memory.go
90.90% <88.88%> (+4.14%)
:arrow_up:

pkg/lambdaworks/lambdaworks.go
94.44% <100.00%> (+4.70%)
:arrow_up:

pkg/vm/memory/segments.go
89.09% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

Codecov Report

Merging #69 (0d6c3e1) into main (b1aeada) will increase coverage by 0.41%.
The diff coverage is 72.54%.

:exclamation: Current head 0d6c3e1 differs from pull request most recent head 768d53c. Consider uploading reports for the commit 768d53c to get more accurate results

@@            Coverage Diff             @@
##             main      #69      +/-   ##
==========================================
+ Coverage   64.43%   64.85%   +0.41%
==========================================
  Files          14       15       +1
  Lines        1167     1249      +82
==========================================
+ Hits          752      810      +58
- Misses        371      390      +19
- Partials       44       49       +5

Files Changed
Coverage Δ

pkg/runners/cairo_runner.go
68.00% <0.00%> (-1.87%)
:arrow_down:

pkg/builtins/bitwise.go
60.71% <60.71%> (ø)

pkg/vm/memory/memory.go
73.07% <73.33%> (-2.57%)
:arrow_down:

pkg/lambdaworks/lambdaworks.go
95.00% <100.00%> (+3.33%)
:arrow_up:

pkg/vm/memory/segments.go
89.09% <100.00%> (ø)

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more

No description provided.

This PR aims to implement the Bitwise Builtin.
Changes:

Added methods ADD, OR, XOR for Felts and its testing
Better error handling: When an error is encountered, is encapsulates with the fields necessary to give extra information and is wrapped with class error.
Deserialise program identifiers field. Until now, value was expected a number, but is a felt, and in the json is provided as bigInt. Changes were made to do this conversion.


Item loss on server stop

HuskSync does not store inventorys on server stop
We have about 150 Players, and we get fequent complains the there are duplicated or lost items when we do restarts

Hi there :)
HuskSync should handle this — see here for the underlying logic.
The issue I believe that causes this not to work correctly is that the invocation of setUserData attempts to fire the DataSaveEvent; something that can't happen as the server is shutting down.
On the dev-branch I'm refactoring this so as to either not fire the event or handle things slightly differently on shutdown to prevent this issue.
If you require further support or advice, please purchase a copy of the plugin and join the Discord for support.
Warm regards
Will

Well, I have and I'm
also known as @DevMagic

I do believe this is resolved by the open PR — but that isn’t production ready just yet. Thanks

closed in v3.0