text:
uktvplay

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

[X] I understand that I will be blocked if I remove or skip any mandatory* field

Checklist

[X] I'm reporting a broken site
[X] I've verified that I'm running yt-dlp version 2022.10.04 (update instructions) or later (specify commit)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[X] I've searched the bugtracker for similar issues including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue
[X] I've read about sharing account credentials and I'm willing to share it if required

Region
UK
Provide a description that is worded well enough to be understood
ERROR: Unsupported URL: https://uktvplay.co.uk/
The site is now encrypted and unless you know other endpoints the game is up
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
yt-dlp -vU -F https://uktvplay.co.uk/shows/hornby-a-model-world/series-1/episode-1/6276739790001?autoplaying=true
[debug] Command-line config: ['-vU', '-F', 'https://uktvplay.co.uk/shows/hornby-a-model-world/series-1/episode-1/6276739790001?autoplaying=true']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2022.10.04 [4e0511f] (zip)
[debug] Python 3.10.7 (CPython 64bit) - Linux-6.0.5-200.fc36.x86_64-x86_64-with-glibc2.35 (glibc 2.35)
[debug] Checking exe version: ffmpeg -bsfs
[debug] Checking exe version: ffprobe -bsfs
[debug] exe versions: ffmpeg 5.0.1 (setts), ffprobe 5.0.1, rtmpdump 2.4
[debug] Optional libraries: Cryptodome-3.15.0, brotli-1.0.9, certifi-2022.06.15, mutagen-1.45.1, secretstorage-3.3.3, sqlite3-2.6.0, websockets-10.3
[debug] Proxy map: {}
[debug] Loaded 1690 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: 2022.10.04, Current version: 2022.10.04
yt-dlp is up to date (2022.10.04)
[debug] [generic] Extracting URL: https://uktvplay.co.uk/shows/hornby-a-model-world/series-1/episode-1/6276739790001?autoplaying=true
[generic] 6276739790001?autoplaying=true: Downloading webpage
WARNING: [generic] Falling back on generic information extractor
[generic] 6276739790001?autoplaying=true: Extracting information
[debug] Looking for Brightcove embeds
[debug] Looking for embeds
ERROR: Unsupported URL: https://uktvplay.co.uk/shows/hornby-a-model-world/series-1/episode-1/6276739790001?autoplaying=true
Traceback (most recent call last):
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 1477, in wrapper
    return func(self, *args, **kwargs)
  File "/usr/local/bin/yt-dlp/yt_dlp/YoutubeDL.py", line 1553, in __extract_info
    ie_result = ie.extract(url)
  File "/usr/local/bin/yt-dlp/yt_dlp/extractor/common.py", line 672, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/bin/yt-dlp/yt_dlp/extractor/generic.py", line 3062, in _real_extract
    raise UnsupportedError(url)
yt_dlp.utils.UnsupportedError: Unsupported URL: https://uktvplay.co.uk/shows/hornby-a-model-world/series-1/episode-1/6276739790001?autoplaying=true

Airline pilots learnt, from crash investigations,  that sharing information in the cockpit was vital for safety, and that hubris, arrogance  and a sense of superiority, had no place there. I am sure we can all agree knowing that the second officer is free to point out errors to the flight captian.
yt-dlp is a fine product but might even be better is folks where not intimidated by "I understand that I will be blocked if I remove or skip any mandatory* field".   Communication without hubris please.

yt-dlp is a fine product but might even be better is folks where not intimidated by "I understand that I will be blocked if I remove or skip any mandatory* field". Communication without hubris please.

Would you be willing to help triage the hundreds of issues that ignore the template? I'd be glad to remove that checkbox if you are

The first issue is that the VALID_URL isnt matching. Once that is fixed, yt-dlp will give the correct error message that the video is DRM protected. The video doesnt play in browser either without DRM module. So doesnt look like we can do anything

No, keep the checkbox just remove the unnecessary threat that is alongside
it. Civilized people behave in a civilized manner.
On Mon, 7 Nov 2022, 16:08 pukkandan, @.***> wrote:

yt-dlp is a fine product but might even be better is folks where not
intimidated by "I understand that I will be blocked if I remove or skip any
mandatory* field". Communication without hubris please.
Would you be willing to help triage the hundreds of issues that ignore the
template? I'd be glad to remove that checkbox if you are
—
Reply to this email directly, view it on GitHub
https://github.com/yt-dlp/yt-dlp/issues/5472#issuecomment-1305837842,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ANIE6O7NVWAQLTVPL4MGFKDWHESORANCNFSM6AAAAAARZCP5PI
.
You are receiving this because you authored the thread.Message ID:
@.***>

authors: A-nglea pukkandan

repo: yt-dlp/yt-dlp

license: Unlicense


text:
[ie/Boosty] Load post data from html if subscription required

Fix extracting video URLs from paywalled posts on boosty
For paywalled posts (posts that require a subscription level), boosty's API apparently does not return the video URLs even when cookies are included. Instead, the site contains a script tag with a JSON document that has the same format as the API response but contains the URLs. This PR adds a check for required subscription levels and extracts the post information from the HTML if necessary.
Fixes #9401
Template

Before submitting a pull request make sure you have:

[x] At least skimmed through contributing guidelines including yt-dlp coding conventions
[x] Searched the bugtracker for similar pull requests
[x] Checked the code with flake8 and ran relevant tests

In order to be accepted and merged into yt-dlp each piece of code must be in public domain or released under Unlicense. Check all of the following options that apply:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[x] Fix or improvement to an extractor (Make sure to add/update tests)
[ ] New extractor (Piracy websites will not be accepted)
[ ] Core bug fix/improvement
[ ] New feature (It is strongly recommended to open an issue first)

This is basically a quick hack, I can't extensively test it because I don't have access to many paywalled posts. Thinking about it, there might be an issue if a post contains both free and public videos, I don't know if that's even possible.

turns out this is unnecessary as mentioned in #9401

source: gharchive/pull-request

license_type: permissive

license_source: github-api


text:
6play - no download possible

Checklist

[x] I'm reporting a broken site support
[x] I've verified that I'm running youtube-dl version 2019.10.29
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar issues including closed ones

Verbose log

youtube-dl -i -f best -o "/Users/couantcarine/Downloads/%(title)s %(upload_date)s.%(ext)s" --restrict-filenames https://www.6play.fr/objectif-top-chef-p_4454/semaine-1-journee-1-c_12538425 --verbose
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'-i', u'-f', u'best', u'-o', u'/Users/couantcarine/Downloads/%(title)s %(upload_date)s.%(ext)s', u'--restrict-filenames', u'https://www.6play.fr/objectif-top-chef-p_4454/semaine-1-journee-1-c_12538425', u'--verbose']
[debug] Encodings: locale UTF-8, fs utf-8, out UTF-8, pref UTF-8
[debug] youtube-dl version 2019.10.29
[debug] Python version 2.7.10 (CPython) - Darwin-17.7.0-x86_64-i386-64bit
[debug] exe versions: ffmpeg 4.1, ffprobe 4.1
[debug] Proxy map: {}
[6play] 12538425: Downloading JSON metadata
[6play] 12538425: Downloading webpage
[6play] 12538425: Downloading m3u8 information
WARNING: Failed to download m3u8 information: HTTP Error 404: Not Found
[6play] 12538425: Downloading MPD manifest
WARNING: Failed to download MPD manifest: HTTP Error 404: Not Found
[6play] 12538425: Downloading m3u8 information
WARNING: Failed to download m3u8 information: HTTP Error 404: Not Found
[6play] 12538425: Downloading MPD manifest
WARNING: Failed to download MPD manifest: HTTP Error 404: Not Found
[6play] 12538425: Downloading m3u8 information
WARNING: Failed to download m3u8 information: HTTP Error 404: Not Found
[6play] 12538425: Downloading MPD manifest
WARNING: Failed to download MPD manifest: HTTP Error 404: Not Found
ERROR: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
Traceback (most recent call last):
  File "/usr/local/bin/youtube-dl/youtube_dl/YoutubeDL.py", line 796, in extract_info
    ie_result = ie.extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 530, in extract
    ie_result = self._real_extract(url)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/sixplay.py", line 113, in _real_extract
    self._sort_formats(formats)
  File "/usr/local/bin/youtube-dl/youtube_dl/extractor/common.py", line 1327, in _sort_formats
    raise ExtractorError('No video formats found')
ExtractorError: No video formats found; please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; type  youtube-dl -U  to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.

Description

All new shows or series of the 6Play site can't be downloaded

👍

source: gharchive/issue

repo: ytdl-org/youtube-dl


text:
HTTP Error 429: Too Many Requests

Hello. I get the following Error Code. Please help me or ask, when you need some informations.
``[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'-o', u'-51fpdC2ntU.mp3', u'--default-search', u'ytsearch', u'-f', u'bestaudio', u'--extract-audio', u'--audio-format', u'mp3', u'--audio-quality', u'0', u'--verbose', u'https://www.youtube.com/watch?v=-51fpdC2ntU']
[debug] Encodings: locale UTF-8, fs UTF-8, out None, pref UTF-8
[debug] youtube-dl version 2020.03.01
[debug] Python version 2.7.17 (CPython) - Linux-4.15.18-24-pve-x86_64-with-Ubuntu-18.04-bionic
[debug] exe versions: ffmpeg 3.4.6, ffprobe 3.4.6, phantomjs ., rtmpdump 2.4
[debug] Proxy map: {}
[youtube] -51fpdC2ntU: Downloading webpage
ERROR: Unable to download webpage: HTTP Error 429: Too Many Requests (caused by HTTPError()); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/common.py", line 627, in _request_webpage
return self._downloader.urlopen(url_or_request)
File "/usr/local/lib/python2.7/dist-packages/youtube_dl/YoutubeDL.py", line 2238, in urlopen
return self._opener.open(req, timeout=self._socket_timeout)
File "/usr/lib/python2.7/urllib2.py", line 435, in open
response = meth(req, response)
File "/usr/lib/python2.7/urllib2.py", line 548, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python2.7/urllib2.py", line 467, in error
result = self._call_chain(*args)
File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 654, in http_error_302
return self.parent.open(new, timeout=req.timeout)
File "/usr/lib/python2.7/urllib2.py", line 435, in open
response = meth(req, response)
File "/usr/lib/python2.7/urllib2.py", line 548, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python2.7/urllib2.py", line 473, in error
return self._call_chain(*args)
File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 556, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
[youtube] -51fpdC2ntU: Downloading webpage[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: [u'-o', u'2sh2REsrJZk.mp3', u'--default-search', u'ytsearch', u'-f', u'bestaudio', u'--extract-audio', u'--audio-format', u'mp3', u'--audio-quality', u'0', u'--verbose', u'https://www.youtube.com/watch?v=2sh2REsrJZk']
[debug] Encodings: locale UTF-8, fs UTF-8, out None, pref UTF-8
[debug] youtube-dl version 2020.03.01
[debug] Python version 2.7.17 (CPython) - Linux-4.15.18-24-pve-x86_64-with-Ubuntu-18.04-bionic
[debug] exe versions: ffmpeg 3.4.6, ffprobe 3.4.6, phantomjs ., rtmpdump 2.4
[debug] Proxy map: {}
[youtube] 2sh2REsrJZk: Downloading webpage
ERROR: Unable to download webpage: HTTP Error 429: Too Many Requests (caused by HTTPError()); please report this issue on https://yt-dl.org/bug . Make sure you are using the latest version; see  https://yt-dl.org/update  on how to update. Be sure to call youtube-dl with the --verbose flag and include its complete output.
File "/usr/local/lib/python2.7/dist-packages/youtube_dl/extractor/common.py", line 627, in _request_webpage
return self._downloader.urlopen(url_or_request)
File "/usr/local/lib/python2.7/dist-packages/youtube_dl/YoutubeDL.py", line 2238, in urlopen
return self._opener.open(req, timeout=self._socket_timeout)
File "/usr/lib/python2.7/urllib2.py", line 435, in open
response = meth(req, response)
File "/usr/lib/python2.7/urllib2.py", line 548, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python2.7/urllib2.py", line 467, in error
result = self._call_chain(*args)
File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 654, in http_error_302
return self.parent.open(new, timeout=req.timeout)
File "/usr/lib/python2.7/urllib2.py", line 435, in open
response = meth(req, response)
File "/usr/lib/python2.7/urllib2.py", line 548, in http_response
'http', request, response, code, msg, hdrs)
File "/usr/lib/python2.7/urllib2.py", line 473, in error
return self._call_chain(*args)
File "/usr/lib/python2.7/urllib2.py", line 407, in _call_chain
result = func(*args)
File "/usr/lib/python2.7/urllib2.py", line 556, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
``

Then link me the original please


text:
(Deprecated) Wistia playlist support is not working.

Checklist

[x] I'm reporting a broken site support issue
[x] I've verified that I'm running youtube-dl version 2020.12.22
[x] I've checked that all provided URLs are alive and playable in a browser
[x] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[x] I've searched the bugtracker for similar bug reports including closed ones
[x] I've read bugs section in FAQ

Verbose log

youtube-dl --verbose https://fast.wistia.com/embed/medias/aodt9etokc.jsonp
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', 'https://fast.wistia.com/embed/medias/aodt9etokc.jsonp']
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, pref cp1252
[debug] youtube-dl version 2020.12.22
[debug] Python version 3.8.5 (CPython) - Windows-10-10.0.18362-SP0
[debug] exe versions: ffmpeg 4.3.1, ffprobe 4.3.1
[debug] Proxy map: {}
[Wistia] aodt9etokc: Downloading JSON metadata
ERROR: Error while getting the playlist
Traceback (most recent call last):
  File "c:\programdata\anaconda3\lib\site-packages\youtube_dl\YoutubeDL.py", line 803, in wrapper
    return func(self, *args, **kwargs)
  File "c:\programdata\anaconda3\lib\site-packages\youtube_dl\YoutubeDL.py", line 824, in __extract_info
    ie_result = ie.extract(url)
  File "c:\programdata\anaconda3\lib\site-packages\youtube_dl\extractor\common.py", line 532, in extract
    ie_result = self._real_extract(url)
  File "c:\programdata\anaconda3\lib\site-packages\youtube_dl\extractor\wistia.py", line 77, in _real_extract
    raise ExtractorError(
youtube_dl.utils.ExtractorError: Error while getting the playlist

youtube-dl --verbose https://fast.wistia.net/embed/playlists/aodt9etokc
[debug] System config: []
[debug] User config: []
[debug] Custom config: []
[debug] Command-line args: ['--verbose', 'https://fast.wistia.net/embed/playlists/aodt9etokc']
[debug] Encodings: locale cp1252, fs utf-8, out utf-8, pref cp1252
[debug] youtube-dl version 2020.12.22
[debug] Python version 3.8.5 (CPython) - Windows-10-10.0.18362-SP0
[debug] exe versions: ffmpeg 4.3.1, ffprobe 4.3.1
[debug] Proxy map: {}
[generic] aodt9etokc: Requesting header
WARNING: Falling back on generic information extractor.
[generic] aodt9etokc: Downloading webpage
[generic] aodt9etokc: Extracting information
ERROR: Unsupported URL: https://fast.wistia.net/embed/playlists/aodt9etokc
Traceback (most recent call last):
  File "c:\programdata\anaconda3\lib\site-packages\youtube_dl\YoutubeDL.py", line 803, in wrapper
    return func(self, *args, **kwargs)
  File "c:\programdata\anaconda3\lib\site-packages\youtube_dl\YoutubeDL.py", line 824, in __extract_info
    ie_result = ie.extract(url)
  File "c:\programdata\anaconda3\lib\site-packages\youtube_dl\extractor\common.py", line 532, in extract
    ie_result = self._real_extract(url)
  File "c:\programdata\anaconda3\lib\site-packages\youtube_dl\extractor\generic.py", line 3446, in _real_extract
    raise UnsupportedError(url)
youtube_dl.utils.UnsupportedError: Unsupported URL: https://fast.wistia.net/embed/playlists/aodt9etokc

Description
youtube-dl is raising an error when used to download a playlist video. Maybe this only applies to the deprecated playlist function of Wistia, but is still out there in the wild.
All examples were given from the Wistia Playlist page and the there included playlist.

Using the page directly doesn't work (I guess that is OK.) -> Unsupported URL, maybe add generic support?
Download of the single video (cmst5825to in this case) is working properly.
The method used in #22931, using the jsonp or raw playlist referrer from source (aodt9etokc) with youtube-dl https://fast.wistia.com/embed/medias/aodt9etokc.jsonp doesn't work. -> Error while getting playlist.

Using youtube-dl wistia:aodt9etokc is raising identical error.

Using the embedded link from source https://fast.wistia.net/embed/playlists/aodt9etokc doesn't work. -> Unsupported URL (same if adding .jsonp)

From my understanding one of the last two methods ([...].com/embed/medias or [...].net/embed/playlists/ should work and I included logs for both cases. Missing piece is here, how to download the complete playlist, instead of each single video.
Could be connected to #5587, but there is more the question for the case with multiple (different) videos.

Hey @remitamine!
Wow, that was a quick fix. It fixed it for the first case. Thank you so much!
Your fix didn't fixed the usage of youtube-dl wistia:aodt9etokc. For me it is not clear, how to fix this. One would have to check for different cases and try them.
But still, you are incredible and tremendously fast!

Your fix didn't fixed the usage of youtube-dl wistia:aodt9etokc. For me it is not clear, how to fix this. One would have to check for different cases and try them.

this short form is used for single videos, so it doesn't make sense to use it for playlists as well(it's not clear if a playlist and a video can have the same ID).

Oh ok, didn't knew that. Thank you for explaining!


text:
syntax error near unexpected token `newline'

Checklist

[ ] I'm reporting a broken site support issue
[ X] I've verified that I'm running youtube-dl version 2021.12.17
[X ] I've checked that all provided URLs are alive and playable in a browser
[X ] I've checked that all URLs and arguments with special characters are properly quoted or escaped
[ X] I've searched the bugtracker for similar bug reports including closed ones
[ X] I've read bugs section in FAQ

Verbose log

PASTE VERBOSE LOG HERE

Description

Since recent updates, I can no longer make youtube-dl work.
The following error appears even for version checking.  The same error when using to download videos.
/usr/local/bin/youtube-dl: line 1: syntax error near unexpected token `newline'
/usr/local/bin/youtube-dl: line 1: `
Access denied
'

Using Ubuntu 23.10, Python 3.11.6, ffmpeg 6.0-6ubuntu1,

See issue #32647.
You tried to download youtube-dl from https://yt-dl.org/downloads/latest/youtube-dl, which is now blocked by a German court.
(so you downloaded a html file...)
Similar closed issues.
Instead download from GitHub.
Preferably the Nightly build from here.

Since the recent update of 2021?

[X] I've searched the bugtracker for similar bug reports including closed ones

This really would have helped you to solve your problem.

I did not download from a closed website.  I tried the version from the snap store AND removed that and tried the version from Github.

authors: dirkf nicolaasjan sirmarky


text:
Change typo "First of" to "First of all" in templates

Please follow the guide below

You will be asked some questions, please read them carefully and answer honestly
Put an x into all the boxes [ ] relevant to your pull request (like that [x])
Use Preview tab to see how your pull request will actually look like

Before submitting a pull request make sure you have:

[x] Searched the bugtracker for similar pull requests
[ ] Read adding new extractor tutorial
[ ] Read youtube-dl coding conventions and adjusted the code to meet them
[ ] Covered the code with tests (note that PRs without tests will be REJECTED)
[ ] Checked the code with flake8

In order to be accepted and merged into youtube-dl each piece of code must be in public domain or released under Unlicense. Check one of the following options:

[x] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[x] Bug fix
[ ] Improvement
[ ] New extractor
[ ] New feature

Description of your pull request and other information
There was a typo in each of the ISSUE_TEMPLATE files (and a comment in extractor/common.py) where a sentence started with "First of", when it should have started with "First of all". This PR fixes that.

The issue templates are automatically generated from issue template templates! So you need to fix the original text in .github/ISSUE_TEMPLATE_tmpl/* as well. We can merge the changes for the actual templates as well, but they'll be overwritten in the release procedure.
I suppose one of the early devs was aiming for "First off".

So you need to fix the original text in .github/ISSUE_TEMPLATE_tmpl/* as well.

Please correct me if I'm missing something, but I committed the same change to the files in .github/ISSUE_TEMPLATE/ as well as the files in .github/ISSUE_TEMPLATE_tmpl/ .
Also, I think "First of all" sounds a little more formal than "First off" while meaning the same thing, which is why I chose that wording instead.

Sorry, you're quite right, as a simple count of files changed shows.
As to wording, the choice is between just "First" or "First of all", as you have, or just leave it out and make the bullet points a numbered list instead (and then the number "1." carries the same meaning.
Carefully read and work through this check list in order to prevent the most common mistakes and misuse of youtube-dl:
1. Make sure you are using the latest version of youtube-dl. Run `youtube-dl --version` and ensure your version is 2021.12.17. If it's not, see https://yt-dl.org/update on how to update. Issues with outdated version will be REJECTED.
2. Make sure that all provided video/audio/playlist URLs (if any) are alive and playable in a browser.
3. Make sure that all URLs and arguments with special characters are properly quoted or escaped as explained in http://yt-dl.org/escape.
4. Search the bugtracker for similar issues: http://yt-dl.org/search-issues. DO NOT post duplicates.
5. Finally, put x into all relevant boxes (like this [x])
-->

Actually, point 5 could be expanded, I think:
5. Finally, confirm that you did each of the above by putting x into all relevant boxes (like this [x]), or provide a good reason why not.

authors: bolded dirkf


text:
Open terminal in specific directory

If I initialize Gotty with this parameters:
gotty --permit-arguments /myshellscript.sh
And the URL with which access is:
https://mygottyserver/?dir=/mydir
I can assume that in myshellscript.sh:
#!/bin/sh
cd "$1"
exec sh

Will it open a shell with the current directory = mydir which is the value passed in the dir argument of the URL?
And if I call several times the same URL changing the url parameter on each of the times will I have a new web console positioned in the directory informed via the URL parameter?

You need to use arg to pass parameter values. I think what you want is https://mygottyserver/?arg=/mydir. When you have two or more parameters, you can simply add more arg to your query string like https://mygottyserver/?arg=/mydir&arg=/some/where/else.

And if I call several times the same URL changing the url parameter on each of the times will I have a new web console positioned in the directory informed via the URL parameter?

Yes.
Note that, it could be a security volatility if you don't sanitize or check any parameter values. In your example, anyone who know the URL can try "directory traversal" to access hidden files.

authors: admindaspanel yudai

repo: yudai/gotty

license: mit

license_source: bigquery


text:
Added --ANALYZE option

You can now analyze the generated data using the --analyze option.

Resubmitting PULL request - Code has been restructured removing all customer references.
Please approve.

repo: yugabyte/yb-tools


text:
バグ修正

Fixes #7

バグ修正

license: MIT


text:
点击跳转路由，经常有路径变了，页面原地站岗不动的情况。

ios15 谷歌浏览器

提供下 playground ？我这边 iOS 15.7 的谷歌浏览器无法复现


text:
tweet取得クラス作成

tweetを取得し返すget_tweet()、及び周辺関数を作成する
作業対象

tweet.py

作業内容

class tweet()

init()
ここでOAuthクライアント初期化と変数類準備
init_session()
OAuthクライアント初期化/再取得
search_tweet(keyword: str, since_id: str) -> obj:
keywordを含み、指定idより新しいtweetを取得

class RequestFaildError(Error)

https://docs.python.org/ja/3/tutorial/errors.html

start at 2020/09/13 23:59

finished 2020/09/14 0:56

http.HTTPStatusでステータスコードからエラーが取れるのがわかったので、それを使ってエラー生成した

https://docs.python.org/ja/3/library/http.html#http.HTTPStatus

marged.

license: WTFPL


text:
Migrate from Laravel Mix to Vite

This pull request includes changes for migrating from Laravel Mix to Vite outlined in Migration Guide and automated by the Vite Converter.
Before merging, you need to:

Checkout the shift-77976 branch
Run composer update
Run npm install
Review all comments for additional changes
Thoroughly test your application (no tests?, no CI?)

Please send your feedback to shift@laravelshift.com or share the good vibes on Twitter.

:information_source: Previously, Laravel configured several npm scripts for building assets. For Vite, Laravel configures a dev script for generating and watching your assets (for development) and build script for generating your assets (for production).
Shift attempted to replace commands using these scripts with their new Vite script. However, you may still be referencing these scripts in your code or in deployment scripts.

:information_source: Laravel renamed the environment variables used by Mix to use a VITE_ prefix, instead of MIX_. While Shift automated this change throughout your code, you should check for any additional references which may not be included in your Git repository.

:information_source: Vite requires JavaScript files containing JSX to have a .jsx file extension. Shift did not detect any JSX in files with a .js extension under the resources folder. However, if you are using JSX, be sure the files have a .jsx extension.

:warning: Vite generates frontend assets to the public/build folder. This folder is not tracked by Git within a default Laravel project. As such, Shift added this folder to your .gitignore file.
If you wish to track the generated frontend assets within your project, such as for ease of deployment, you may undo this commit by running git revert 3664b8d4.

:information_source: The new @vite Blade directive outputs <script> tags with the type="module" attribute. This attribute implicitly defers the script. This is a difference from Laravel Mix which may change the execution order of the JavaScript on your page.
If you experience JavaScript errors relating to undefined references, you may need to reorder your scripts or add the defer attribute to any inline <script> blocks on your page.

:alembic: This Shift is still being refined. Please report any issues or suggestions to shift@laravelshift.com. Your feedback is what helps improve the experience for everyone.

repo: yungifez/skuul


text:
检测IPMI配置失败[求助/Help]

检测IPMI配置失败
probing=>probe_fail: {"reason":"self.sendIpmiNicInfo: SendNicInfo: {"error":{"class":"BadRequestError","code":400,"details":"IP 0.0.0.0 not attach to any wire","request":{"body":"{\"host\":{\"ip_addr\":\"0.0.0.0\",\"link_up\":true,\"mac\":\"b4:05:5d:04:a5:b6\",\"mtu\":1500,\"nic_type\":\"ipmi\",\"...erve\":true,\"reset\":true}}","headers":{"Content-Length":"168","Content-Type":"application/json","User-Agent":"yunioncloud-go/201708","X-Auth-Token":"*","X-Yunion-Parent-Id":"","X-Yunion-Peer-Service-Name":"baremetal","X-Yunion-Remote-Addr":"default-region:30888","X-Yunion-Span-Id":"0","X-Yunion-Span-Name":"","X-Yunion-Strace-Debug":"true","X-Yunion-Strace-Id":"d09cbb85"},"method":"POST","url":"https://default-region:30888/hosts/5b219f43-2ca6-4422-8577-28693fd27eb2/add-netif\"}}}","__stage__":"OnSyncConfigComplete","__status__":"error"}

@shengxianli 登录到物理机上，执行 ipmitool lan print 看下输出的是什么？

authors: shengxianli zexi

repo: yunionio/cloudpods


text:
[求助/Help] host服务增加存储盘问题

cloudpods  3.10.8
os: centos 7.9
创建本地idc虚拟机报错
deploying=>deploy_fail: {"reason":"Deploy guest fs: request deploy guest fs: rpc error: code = Unknown desc = Connect: failed start guest qemu-kvm: -drive file=/home/kvmtmp/cloudpods/block-storage/cdb98e18-e43d-41e9-8d8a-073b0db635e6,if=none,id=drive_0,cache=none: Could not open '/home/kvmtmp/cloudpods/block-storage/cdb98e18-e43d-41e9-8d8a-073b0db635e6': No such file or directory\n: exit status 1","stage":"OnDeployGuestComplete","status":"error"}
报错完成之后  点击虚拟机状态同步 ->状态变成已关机->点击开机可以正常开机。但是流程串不起来，host.conf 的配置如下

因为 /home/kvmtmp/cloudpods/block-storage 这个挂载点 挂在了大硬盘， -/opt/cloud/workspace/disks所处的文件系统比较小
请问这个问题有上面解决方案吗？
我尝试了再host demoset 添加了如下配置 。还是不行

图片上传不去 daemonset 挂在如下
- mountPath: /home/kvmtmp/cloudpods/block-storage
mountPropagation: Bidirectional
name: kvmtmp
 - hostPath:
     path: /home/kvmtmp/cloudpods/block-storage
     type: Directory
   name: kvmtmp

对应的目录 存在 对应的文件

确定目录已经挂载到了host服务的docker里面

@huhaiqwer 请按照这个文档添加存储 https://www.cloudpods.org/docs/guides/onpremise/storage/blockstorage/add-storage#添加本地存储 ，要求是一定要把本地存储挂载到放在 /opt/cloud/workspace 目录下面的子目录，如果是其他路径，可以用 bind mount 的方式挂到 opt 下面

@huhaiqwer 请按照这个文档添加存储 https://www.cloudpods.org/docs/guides/onpremise/storage/blockstorage/add-storage#添加本地存储 ，要求是一定要把本地存储挂载到放在 /opt/cloud/workspace 目录下面的子目录，如果是其他路径，可以用 bind mount 的方式挂到 opt 下面
@zexi 请问李老师 我把 /home/kvmtmp/cloudpods/block-storage 挂到host服务里面了，为什么不行，按照常理来说，应该可以正常访问/home/kvmtmp/cloudpods/block-storage了呀。能麻烦解释一下吗

@huhaiqwer 请按照这个文档添加存储 https://www.cloudpods.org/docs/guides/onpremise/storage/blockstorage/add-storage#添加本地存储 ，要求是一定要把本地存储挂载到放在 /opt/cloud/workspace 目录下面的子目录，如果是其他路径，可以用 bind mount 的方式挂到 opt 下面
@zexi 请问李老师 我把 /home/kvmtmp/cloudpods/block-storage 挂到host服务里面了，为什么不行，按照常理来说，应该可以正常访问/home/kvmtmp/cloudpods/block-storage了呀。能麻烦解释一下吗

@huhaiqwer 请按照这个文档添加存储 https://www.cloudpods.org/docs/guides/onpremise/storage/blockstorage/add-storage#添加本地存储 ，要求是一定要把本地存储挂载到放在 /opt/cloud/workspace 目录下面的子目录，如果是其他路径，可以用 bind mount 的方式挂到 opt 下面

@zexi 请问李老师 我把 /home/kvmtmp/cloudpods/block-storage 挂到host服务里面了，为什么不行，按照常理来说，应该可以正常访问/home/kvmtmp/cloudpods/block-storage了呀。能麻烦解释一下吗

@huhaiqwer 这个原因是 host pod 作为 daemonset 运行在 k8s 里面，默认的 volumeMount 只挂了 /opt 进去，如果把 /home/kvmtmp 挂给 host 容器，应该也可以，不过这样不太通用，所以我们这边默认设计要求使用 /opt 目录，如果是其他目录，也可以 mount --bind 映射到  /opt 目录下

authors: huhaiqwer zexi


text:
Automated cherry pick of #9768: fix(region): sync cachedimage info

Cherry pick of #9768 on release/3.7.
#9768: fix(region): sync cachedimage info

Codecov Report

Merging #9769 (124f280) into release/3.7 (56d583e) will increase coverage by 9.92%.
The diff coverage is 0.00%.

@@               Coverage Diff                @@
##           release/3.7    #9769       +/-   ##
================================================
+ Coverage         6.00%   15.93%    +9.92%
================================================
  Files              845      124      -721
  Lines           131245    12773   -118472
================================================
- Hits              7879     2035     -5844
+ Misses          122665    10547   -112118
+ Partials           701      191      -510

Flag
Coverage Δ

aFlag
15.93% <0.00%> (+9.92%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

pkg/apis/input.go
0.00% <ø> (ø)

pkg/apis/list.go
0.00% <ø> (ø)

pkg/compute/guestdrivers/apsara.go
13.63% <0.00%> (-0.65%)
:arrow_down:

pkg/compute/guestdrivers/managedvirtual.go
0.00% <0.00%> (ø)

pkg/compute/guestdrivers/utils.go
0.00% <0.00%> (ø)

pkg/compute/models/zonequota.go

pkg/mcclient/options/k8s/statefulset.go

pkg/compute/regiondrivers/zstack.go

pkg/lbagent/models/modelset.go

pkg/keystone/tokens/payloads.go

... and 638 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b7901c2...124f280. Read the comment docs.

Codecov Report

Merging #9769 (124f280) into release/3.7 (56d583e) will increase coverage by 9.92%.
The diff coverage is 0.00%.

@@               Coverage Diff                @@
##           release/3.7    #9769       +/-   ##
================================================
+ Coverage         6.00%   15.93%    +9.92%
================================================
  Files              845      124      -721
  Lines           131245    12773   -118472
================================================
- Hits              7879     2035     -5844
+ Misses          122665    10547   -112118
+ Partials           701      191      -510

Flag
Coverage Δ

aFlag
15.93% <0.00%> (+9.92%)
:arrow_up:

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

pkg/apis/input.go
0.00% <ø> (ø)

pkg/apis/list.go
0.00% <ø> (ø)

pkg/compute/guestdrivers/apsara.go
13.63% <0.00%> (-0.65%)
:arrow_down:

pkg/compute/guestdrivers/managedvirtual.go
0.00% <0.00%> (ø)

pkg/compute/guestdrivers/utils.go
0.00% <0.00%> (ø)

pkg/compute/models/zonequota.go

pkg/mcclient/options/k8s/statefulset.go

pkg/compute/regiondrivers/zstack.go

pkg/lbagent/models/modelset.go

pkg/keystone/tokens/payloads.go

... and 638 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update b7901c2...124f280. Read the comment docs.

authors: codecov-io ioito

repo: yunionio/onecloud


text:
Guide/Directions on how to add labels to lines and data points

I have looked into the code and the resulting graph plots for a short while, and I'm extremely happy with what I could possibly use this for.
But I have been facing difficult on how to add labels to the 1) data points and 2)lines (oriented to match the line angle), I'm not sure on how to modify the project or adding methods to achieve such functionality

Never mind I managed to botch the code and got it working, it's a bit buggy but it works
Added feature to attach labels to Data points and Lines
Use it at your convenience
Replace the Plot.java file, it's still the same and has the older functionalities as well
Provided a LabelSamples.java file to test and display the added functionality
Normally in filePath = ./src/main/java/com/github/plot
Plot.zip
Normally in filePath = ./src/test/java/com/github/plot
LabelSamples.zip

repo: yuriy-g/simple-java-plot


text:
Remark youtube

update

ok

ok


text:
How to use PickScore to evaluate a model?

How should I use PickScore to evaluate the performance of a model?
The example given involves providing a set of probability distributions for a list of images. When evaluating a model, do I need to reference another model? I mean, should I record the images generated by two models each time, then calculate the probabilities, and finally tally the average selection probability for these two models? Or I don't need another model, and instead just let one model generate many images, then tally the average score of these images?

Taking the average pickscore score on a set of predefined prompts is a common practice. You might want do it on some baseline model as well.

Thanks for your answer

authors: Smadx yuvalkirstain

repo: yuvalkirstain/PickScore


text:
Xs Max上修改颜色失败

发现修改源码中的刷新颜色。就比如红色那个圈，在Xs max上面没有效果。
AnimationTypeCircle这个类型的setCoverColor方法在Xs max上面没调用

我刚试了没问题啊，就是一个set方法而已，在HHRefreshManager.h，110行设置，注意下这个属性isShowShadow

repo: yuwind/HHRefreshManager


text:
Is the scope for repeated component right?

For the example followed, the content is always content:  without the $index value, and the property prop is always empty. The first case is because the $index is resolved using the comp's parent scope, and the last case is because the properties are initialized before the meta data.
<comp v-repeat="array" prop="{{$index}}">content: {{$index}}</comp>

Both are expected behavior: the first case is exactly what you described; the second case is because the content is transcluded, so it is also resolved in parent scope.

So it means if I want to use the repeat meta info, I have to wrap a template around the component? But if the component should communicate with specified type parent, the repeated template will break this...

If the component is used with v-repeat, $index and other meta info will be available inside the component automatically. You don't have to explicitly pass it in.
As for the parent - you can check if the parent is an inline repeat wrapper by checking $parent.$options._repeat. This is kinda dirty but should be enough for the use case. Definitely can be improved later.


text:
V2.0.3

All Submissions Basics:

[ ] Have you followed the guidelines in our Contributing document?
[ ] Have you checked to ensure there aren't other open Pull Requests for the same update/change?
[ ] Have you checked all Issues to tie the PR to a specific one?

All Submissions Cores:

[ ] Have you added an explanation of what your changes do and why you'd like us to include them?
[ ] Have you written new tests for your core changes, as applicable?
[ ] Have you successfully ran tests with your changes locally?
[ ] Does your submission pass tests, including CircleCI, Travis CI, and AppVeyor?
[ ] Does your submission have appropriate code coverage? The cutoff threshold is 95% by Coversall.

New Model Submissions:

[ ] Have you created a .py in ~/pyod/models/?
[ ] Have you created a _example.py in ~/examples/?
[ ] Have you created a test_.py in ~/pyod/test/?
[ ] Have you lint your code locally prior to submission?

Pull Request Test Coverage Report for Build 12443036205
Details

478 of 485 (98.56%)  changed or added relevant lines in 45 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.1%) to 95.361%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

pyod/models/base.py
42
49
85.71%

Totals

Change from base Build 12442082806:
0.1%

Covered Lines:
10361

Relevant Lines:
10865

💛  - Coveralls


text:
Unhiding a node in a group takes too much time

For some reason, unhiding a node that is in a group takes too much time (the UI freezes a little bit), while if the node isn't in a group it doesn't.

After some tests, this happens after unhiding the node X times.


text:
Does not work with sk1er mods

Describe the bug
Game crashes when running with any sk1er mod
To Reproduce
Steps to reproduce the behavior:

Install forge
Install hydrogen
Install a sk1er mod

Expected behavior
Game would launch without crashing and mods would be working as normal
Actual behavior
Game crashes
Screenshots
If applicable, add screenshots to help explain your problem.

Desktop (please complete the following information):

OS: Endavour OS (arch based)
Version: 1.8.9
Other mods: optifine and a few sk1er mods

Additional context
Add any other context about the problem here.

could you send the crash log?

Sorry for the very late response, i used polymc (because you can export crash log with one click) for this but the same issue happens on the official minecraft launche
crash log.txt
r

authors: CloudyWhale zPeanut

repo: zPeanut/Hydrogen


text:
通过异步请求数据初始化zTree后如果返回数据为null，则树中的节点不会清空，且会再次触发异步请求

$.ajax({
type : "POST",
url : url,
dataType : 'json',
async : false,
success : function(data) {
$.fn.zTree.init(_this, settings, data);
}
});
如上代码，如果通过异步查询如果没有查询到满足条件的数据时树中的节点不会清空，且会再次触发异步请求；如果有数据返回则不会出现该问题。

估计你是 自己使用 ajax获取数据，同时又配置 zTree 进行了异步加载，那么当 data 为空时， zTree 就认为初始化未输入节点数据，所以就去进行异步加载了

自己返回 空数组 []  不就可以了？ 为何一定要返回 null

你写代码不调试么？

authors: greaterwinner zTree


text:
点击CheckBox之后希望返回所有所选子节点ID，现在返回连父节点也返回

可能是方法错了，没找到，请帮忙看一下
复现：app.itolddriver.com/demo/cn/excheck

http://app.itolddriver.com/demo/cn/excheck

你使用的获取节点的方法没有错，但是你遍历结果的方法错了。
因为返回的节点数据是 zTree 内部正在使用的 节点数据，所以 父节点都会带有 children 属性来保存子节点。
对于你的需求来讲，该方法直接返回的数组就是满足要求的节点集合， 但这些数据中的 children 是不需要考虑的。

authors: PasserbyFluid zTree


text:
Request api update

Update our request path and add the ability to configure a key to be passed along with requests.
@kenellorando may comment on this pull request if he so wishes, but I know better than to block myself on his approval 😶

@za419 The first word of only my railgun:

"Release!"


text:
Contrast filtering enhanced

Also took advantage to enhance acceleration factor filtering
Now it's all done at data loading step

Will do the filtering even before the actual data loading, as part of a meta-data loading step, in pure python (will go along with the shape loading for brain data).

repo: zaccharieramzi/tf-fastmri-data


text:
Whitespace trimming is too agressive.

html
Welcome ${name}!
 trims the space off of Welcome  so the result is:
WelcomeZach

temporary workaround: html
Welcome ${' ' + name}

Conclusion: this is not a bug because htm appears to behave in the exact same way.
Also, I can't figure out an elegant, compact way to trim the whitespace we should lose, while keeping the whitespace we want to keep. So it will be like this for now.

Reopened as I realized htm does not have this issue. They do, but only for line breaks. Not regular spaces. That might be the trick for me as well 🤔

Issue fixed in hyperlit@0.0.3
However, I'll leave the issue open since I haven't update the babel-plugin to use the new parser. So stay tuned for a new version of babel-plugin-hyperlit where whitespace is handled the same.

🎉 Now works in babel-plugin-hyperlit@0.0.2

repo: zaceno/hyperlit


text:
[JAST-016] Mutable syntax tree ops

As a developer, I want the syntax tree to be mutable so that I can have better performance for the end user.

Closed following component split and remade here: https://github.com/zach-cloud/JSyntaxTree/issues/1

repo: zach-cloud/JAST


text:
Looking for Maintainer

Hi All!
I do not have the time or personal need to support this tool currently.
Its it couple years of existence, I have only gotten ~5$ in total donation support.
I really do appreciate that but its not enough for me to dedicate literally any time to this tool unless I was to need it again.
If someone wants to maintain this tool - please let me know. I will review your github/repos you maintain and based on that add you as a maintainer.
Thanks!

This seems to be a common theme: one-off Slack export projects that the maintainer no longer has much time for.
Well, if anyone reads this issue and this project starts breaking, here's another one I had to take over to update to the latest API: https://github.com/huyz/wayslack

Well I mean - its true we just needed it and then didn't ha.
I would maintain it but alas, real work takes priority (and kids).
I am always open to working on it but no one really funds small open-source projects so it just gets to hang around.

Yep, that's fair :)

authors: huyz zach-snell

repo: zach-snell/slack-export


text:
Feature request

Can install same apk but differend signature

It isn't possible to bypass signature enforcement without modifying your system services.

authors: QPLAYid zacharee

repo: zacharee/InstallWithOptions


text:
Add Contex syntax for functions

This issue is progress towards adding context. It should add the type of Context and convert all of the mainx test and definitions from the signature mainx(IO io) -> IO to mainx{IO io} -> Any{IO io}. This can be used to expand the definition of runnable and buildable functions.

Completed in 33a97af96bd18a5b18f4311c0a7d499e999bc5bf

repo: zachgk/catln


text:
changing the output text

Hey, thanks for making this!
One question/feature request, is there a way to change the output text?
Changing the "of" into "/" would make the count more generic for use in languages other than English.

“with Custom Markup” demo on https://zachleat.github.io/carouscroll/demo.html

authors: krzysztofjeziorny zachleat

repo: zachleat/carouscroll


text:
抽奖监控图标已黄，无法领取小电视等的奖励

无法领取小电视奖励，前两天还正常

你好，我从0.8.16.13版本开始去掉了小电视的功能，并且不再维护此类抽奖功能。我不是很清楚是否是因为b站改了部分代码而导致以前的版本不能用。非常抱歉，由于b站方面的一再要求和明确态度，我们无法为你解决这个问题。

repo: zacyu/bilibili-helper


text:
feat: update home page copy

Closes
Description

Current Tasks

[ ] (task 1)
[ ] (task 2)
[ ] (task 3)

Codecov Report

Merging #135 (27f7013) into main (6e77cc8) will decrease coverage by 0.10%.
The diff coverage is 0.00%.

@@           Coverage Diff            @@
##            main    #135      +/-   ##
========================================
- Coverage   9.90%   9.80%   -0.11%
========================================
  Files         65      67       +2
  Lines        868     877       +9
  Branches     300     303       +3
========================================
  Hits          86      86
- Misses       781     790       +9
  Partials       1       1

Impacted Files
Coverage Δ

app/components/benefit-section.tsx
0.00% <0.00%> (ø)

app/components/hero-section.tsx
0.00% <ø> (ø)

app/components/icons/telegram.tsx
0.00% <0.00%> (ø)

app/components/sections/timeline.tsx
0.00% <0.00%> (ø)

app/routes/index.tsx
0.00% <ø> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 6e77cc8...27f7013. Read the comment docs.

authors: codecov-commenter zainfathoni


text:
Export prometheus metrics at /metrics

Problem

I'd ultimately like to expose metrics to prometheus from most of my operators so having a blessed way to do it via the built in kopf aiohttp server would be very nice, rather than rigging something up in each project.

on.probe is close, but i'd like something prometheus can scrape directly.
Proposal

My preferred solution would be to have kopf natively support prometheus via its existing aiohttp server. That means it would set up an aiohttp route that did something ran the prometheus collector and served the results. Ideally would also be a handler so can mix in metrics that have been generated dynamically at probe time.
Failing that a hook to allow me to at least piggy back on the existing aiohttp and reduce some of the duplicate boiler plate code.
I think prometheus is the most common monitoring tool on kubernetes so others may find this useful too.

One pattern with prometheus is to make a custom 'Collector' class that yields MetricFamily objects. We would have a aiohttp view that created such a collector and it would call all the kopf.on.prometheus handlers and allow them to yield metric families:
from prometheus_client.core import GaugeMetricFamily

@kopf.on.prometheus
def collect_prom_metrics(self):
    my_measurement = GaugeMetricFamily('my_measurement', 'some description', labels=["label"])
    my_measurement.add_metric(["mylabel"], 52)
    yield my_measurement

This technique is used if you are calculating the metric or sampling it from an external source.
The other option is used when you are instrumenting the operator itself:
from prometheus_client import Counter
MY_COUNTER = Counter(
    "resource_created", "Resource created by operator", ["labelkey1", "labelkey2"]
)

@kopf.on.create(...snip...)
def myhandler(**kwargs):
    MY_COUNTER.labels("labelvalue1", "labelvalue2").inc()

I'm thinking of working on this is people think it would be good to have. I hope to implement it in a way that keeps the prometheus dependency optional.
Although it would be good to instrument kopf itself at some point I think that is a seperate feature/request.
Checklist

[x] Many users can benefit from this feature, it is not a one-time case
[x] The proposal is related to the K8s operator framework, not to the K8s client libraries

My approach to this was going to be to add a route to the existing aiohttp.web.Application(), the question is would it be ok for the functionality to live in probing.py or does it need breaking out somehow?

Hm. First of all, I am not familiar with Prometheus, so have to read & learn the concepts first, before making any judgements.
Nevertheless, despite I understand that Prometheus is a popular (or the most popular) monitoring tool now, it all can change. Beside, there can be other opinions, and I do not like pushing my or someone's personal preferences as unavoidable defaults for everyone (see a counter-example: Black).
Before we go into deep integration with Prometheus with same-named decorators in the public interface, I would like to clarify few things:
Can the Prometheus metrics be served in a separate thread on a separate port as in their README? What are the benefits of tight integration? is it the usage of the probing/metrics decorators?
Can this Kopf's feature be generalised for any monitoring system? Perhaps, different endpoints with different output formatters?
Can Kopf be extended or redesigned somehow, so that becomes extensible for these metrics and endpoints, but does not contain them directly? Specifically, can Kopf be made pluggable, and Prometheus-specific tooling implemented as another Python library with some hooks/connections points to Kopf (see pytest plugins as an example)? The authentication subsystem can also benefit from this pluggability.
Also, can you please clarify why kopf.on.probe is not sufficient? Is it a different output format only? Or are there other challenges of using the probe-handlers?

Also, @kopf.on.prometheus sounds unusual. The original intention was to use verbs there (on.create), with growing urge to replace them with proper English nouns representing events or actions (on.creation). In a work-in-progress branch I already have a case that does not fit the convention, and use a separate decorator naming convention: @kopf.daemon (no .on.). We can think of @kopf.metric — but the question is: do we need it at all (see above)?

All good points!
Can the Prometheus metrics be served in a separate thread?
In general I don't like using their threaded web server in a thread when aiohttp is available. This is probably a personal preference thing, but at a technical level there are 2 main issues:

If you want to run a collector that uses async you can't use their server.
You have done some good work to integrate the aiohttp server into the kopf lifecycle. I want to leverage that. Theirs (i assume) uses daemon threads so the OS will just pull the rug from under the thread when kopf exits.

Can this Kopf's feature be generalised for any monitoring system?
The problem with a generic monitoring integration is that they all provide helpers that you'd have to implement to be as nice to use. For example:
REQUEST_TIME = Summary('request_processing_seconds', 'Time spent processing request')

# Decorate function with metric.
@REQUEST_TIME.time()
def process_request(t):
    """A dummy function that takes some time."""
    pass

This will generate 2 metrics: request_processing_seconds_count and request_processing_seconds_sum.
Building an abstract version of this is probably not something that belongs in kopf, even though monitoring is very important for most operators.
Can Kopf be extended or redesigned somehow, so that becomes extensible for these metrics and endpoints, but does not contain them directly?
There are maybe 3 changes I would like if there wasn't native prometheus integration:

Factor the aiohttp code out of probing.py so it can be reused by the operator for its own services. This is mostly about the little details like not handling signals and having it automatically shutdown when kopf goes away.

I would quite like to be able to control the routes (at least at my own) to a single aiohttp. It's arguably a taste thing but I don't want to listen on multiple ports if i don't need to.

I'm glad for kopf.on.startup() and @kopf.on.cleanup(), but one pattern that might be useful is kopf.background_task - something that is started on startup and it gets .cancel() and awaited on cleanup automatically. I take this a bit further in some of my code and restart background tasks if they hit an unhandled exception.

import asyncio

import kopf
import kopf_prometheus
from prometheus_client import Counter

MY_COUNTER = Counter('my_requests_total', 'HTTP Failures', ['method', 'endpoint'])

async def my_collector():
    yield SomePrometheusMetric()
    yield SomeOtherMetric

async def my_looping_function():
    while True:
        c.labels('get', '/').inc()
        asyncio.sleep(1)

kopf.background_task(my_looping_function)
kopf.background_task(kopf_prometheus.listen, port=8080, collectors=[my_collector])

Are there other challenges of using the probe-handlers?
This is mostly just down to the output format plus the richness of the prometheus_client API. You could probably serialize the prometheus data into probe format, but then you'd need get it back into prometheus format. A prometheus metric has a timestamp and multiple labels associated with it (and that means a single metric maybe listed multiple times) so there are some challenges there too, possibly.

… integrate the aiohttp server into the kopf lifecycle. I want to leverage that.

That is exactly the point I see as problematic here:
aiohttp is an internal implementation detail, the current way to expose the liveness via HTTP. The public interface only has the concept of liveness probes and some rudimentary metrics (domain-level concepts), not the way how they are exposed to K8s (implementation details).
Injecting endpoints assumes either that the internal implementation detail (aiohttp server) is exposed and made part of the Kopf's public interface (see leaky abstractions), or that Kopf is extended with a lot of features which are more suitable for a web server (e.g. routes and endpoints).
Neither of this looks good. I prefer that the framework is not pulled back by the presence of aiohttp specifically when it comes to changing the way the HTTP(S) probes are served — as long as other features on their abstraction levels (e.g. liveness probes) could be served.

One way how this could be generalised is, indeed, a daemon-handler for the whole operator. I currently have them implemented per-object in my own branch (and struggle only with some dirty tricks to be resolved to a clean code).
But it can be easily extended to have per-operator daemons, and those daemons can be async def functions that run their own web servers (maybe even aiohttp in the same event loop), and cancelled as all other async coroutines with the operator shutdown.
Reproducing your example:
import kopf
import kopf_prometheus  # somehow, by someone

@kopf.daemon(errors=kopf.ErrorsMode.TEMPORARY, backoff=10)
async def prometheus_server(**_):
    server = kopf_prometheus.create_async(port=8080, collectors=[my_collector])
    await server.run()  # the same asyncio event loop as the operator

@kopf.daemon()
def my_looping_function(stopped, **_):
    while not stopped:
        c.labels('get', '/').inc()
        time.sleep(1)  # asyncio-safe: runs in a thread

The pre-operator daemons are not in that branch yet, but once per-resource daemons are there, it is easy to implement.
@Jc2k What do you think on this? Would this feature solve the problem (assuming that someone somehow will make a Kopf<->Prometheus connector library).

PS: Maybe even a global timer:
@kopf.on.timer(interval=1)
def my_timing_function(**_):
    c.labels('get', '/').inc()

Yes, this sounds great! I would probably make such a prometheus connector if kopf.daemon was available.
Seperately I do have use for a timer as well, but not for the interval=1 case thankfully :D

repo: zalando-incubator/kopf


text:
Add architecture overview for planned github integration

Fixes #83

Restarted builds after #118 got merged

👍

👍

authors: fmueller netme

repo: zalando-incubator/zally


text:
Use long for typeId

https://www.postgresql.org/docs/11/datatype-oid.html says:

The oid type is currently implemented as an unsigned four-byte integer.

That is, its minimum value is 0, maximum is 4294967295 (2^32 - 1).  In DBs with a long enough history we might experience OIDs that exceed the Java int range, resulting in something like:
some_function_with_custom_type_argument (  )]; Bad value for type int : 2149535750; nested exception is org.postgresql.util.PSQLException: Bad value for type int : 2149535750
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:298)
        ... 7 more```

On hold, likely pgjdbc also uses int for oid, leading to similar issues.
Current plan for this problem: Dump and restore database.

@Jan-M should we close this PR?

authors: Jan-M avaczi vadeg

repo: zalando-stups/java-sproc-wrapper


text:
#28 added logbook and loggin every request on TRACE

fixes #28

:+1:

[Current coverage][cc-pull] is 100%

Merging [#29][cc-pull] into [master][cc-base-branch] will not change coverage

@@           master   #29   diff @@
===================================
  Files          12    12
  Lines          97    97
  Methods         0     0
  Messages        0     0
  Branches        1     1
===================================
  Hits           97    97
  Misses          0     0
  Partials        0     0

Powered by Codecov. Last updated by [049c163...02510fa][cc-compare]
[cc-base-branch]: https://codecov.io/gh/zalando-stups/log-sink/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/zalando-stups/log-sink/compare/049c163d37adfef5681e5adfdc5ac07ce3b2778b...02510fa747321e9142b17b6c775fdc383309a659
[cc-pull]: https://codecov.io/gh/zalando-stups/log-sink/pull/29?src=pr

👍

authors: ChristianLohmann codecov-io harti2006

repo: zalando-stups/log-sink


text:
Check guidelines for guidance vs rules

We want to explore if it is possible to clearly separate between the parts where we are giving rules, and the parts where we are just giving guidance (which might be followed or not).  (From the guild meeting.)

During the API Guild meeting we decided we don't actually see a reason for doing this.

authors: ePaul fmueller

repo: zalando/restful-api-guidelines


text:
无法发送到保存的文件夹

显示 No such file or directory: 'E:/sd-webui-aki-v4/extensions/sd-webui-infinite-image-browsing/log/images'
好像也没有设置这个文件夹的选项

更新下

repo: zanllp/sd-webui-infinite-image-browsing


text:
Adding prior expectations as input to optimize_variational_circuit

This will allow for using optimal shot allocation during VQE optimizations.

Duplicate of #43

repo: zapatacomputing/z-quantum-optimizers


text:
how to setup this script

Hello,
Can you help me, how to install and use this script?
Cheers,
Zsolt

Just run the script according to the readme https://github.com/zapier/sentinel-graylog/blob/master/README.md. There really isn't that much more to it. :-)

When I start it, it says:
WARNING: Your kernel does not support memory swappiness capabilities, memory swappiness discarded.
In the other console where I started docker -d it says:
WARN[0015] Your kernel does not support memory swappiness capabilities, memory swappiness discarded. WARN[0015] Your kernel does not support OOM notifications: There is no path for "memory" in state

authors: bryanhelmig osztrovszky

repo: zapier/sentinel-graylog


text:
rc.py PyCozmo joystick example doesn't work with Client API

i try to use rc.py example in the inputs branch with the last dev branch of PyCozmo.
Before the new Client API , it is working ok. But now with the new Client API I have the following error :
Windows 7
Game sir G3w with USB cable.
D:\dev\Cozmo\pycozmo\20190921\examples>python rc-inputs.py
Microsoft Keyboard
Microsoft Mouse
Microsoft X-Box 360 pad
2019-09-22 02:22:35.918 root            INFO     Initializing...
2019-09-22 02:22:35.968 pycozmo.general INFO     Firmware version 2381.
2019-09-22 02:22:36.029 pycozmo.general INFO     Body S/N 0x45a0330c.
Traceback (most recent call last):
File "rc-inputs.py", line 269, in
main()
File "rc-inputs.py", line 262, in main
res = app.init()
File "rc-inputs.py", line 66, in init
self.cli.send(pkt)
AttributeError: 'Client' object has no attribute 'send'

I think that you have installed an older version with pip and you are using the examples from a newer one.
Actually, you are using the rc-inputs.py example from the inputs branche which was created, before the introduction of the new client API.
Wait a few more days for the final integration of the inputs module.

The raceback above cannot be reproduced on dev.
I just fixed this with #e58b208c:
Traceback (most recent call last):
  File "/usr/lib/python3.7/threading.py", line 917, in _bootstrap_inner
    self.run()
  File "/usr/lib/python3.7/threading.py", line 865, in run
    self._target(*self._args, **self._kwargs)
  File "/home/kaloyan/work/pycozmo/examples/rc.py", line 111, in run
    self._handler(event)
  File "/home/kaloyan/work/pycozmo/examples/rc.py", line 318, in _handle_input
    self._drive_wheels(self.speed_left, self.speed_right)
  File "/home/kaloyan/work/pycozmo/examples/rc.py", line 191, in _drive_wheels
    self.cli.drive_wheels(lwheel_speed=lw, rwheel_speed=rw)
  File "/home/kaloyan/work/pycozmo/pycozmo/client.py", line 310, in drive_wheels
    lwheel_accel_mmps2=lwheel_acc, rwheel_accel_mmps2=rwheel_acc)
  File "/home/kaloyan/work/pycozmo/pycozmo/protocol_encoder.py", line 972, in __init__
    self.lwheel_accel_mmps2 = lwheel_accel_mmps2
  File "/home/kaloyan/work/pycozmo/pycozmo/protocol_encoder.py", line 997, in lwheel_accel_mmps2
    self._lwheel_accel_mmps2 = validate_float("lwheel_accel_mmps2", value)
  File "/home/kaloyan/work/pycozmo/pycozmo/protocol_utils.py", line 20, in validate_float
    value = float(value)
TypeError: float() argument must be a string or a number, not 'NoneType'

I try again with rc-input.py (inputs branch)
rc.py (dev branch) works only on Linux (import evdev) but not on Windows !
I unfortunately the same error :-(
D:\dev\Cozmo\pycozmo\20190922\examples>python rc-inputs.py
Microsoft Keyboard
Microsoft Mouse
Microsoft X-Box 360 pad
2019-09-23 00:39:22.461 root            INFO     Initializing...
2019-09-23 00:39:22.504 pycozmo.general INFO     Firmware version 2381.
2019-09-23 00:39:22.533 pycozmo.general INFO     Body S/N 0x45a0330c.
Traceback (most recent call last):
File "rc-inputs.py", line 269, in
main()
File "rc-inputs.py", line 262, in main
res = app.init()
File "rc-inputs.py", line 66, in init
self.cli.send(pkt)
AttributeError: 'Client' object has no attribute 'send'

Hello ,
I found the errors ! :-)
You must use the Client API in the rc.py !
Here's the code who works for me :
#!/usr/bin/env python
import argparse
import logging
import time
import threading
import inputs
import pycozmo
class InputThread(object):
""" Thread for reading input. """
def __init__(self, handler):
    self._stop = False
    self._thread = None
    self._handler = handler

def start(self):
    self._stop = False
    self._thread = threading.Thread(target=self.run, name="InputThread")
    self._thread.daemon = True
    self._thread.start()

def stop(self):
    logging.debug("Input thread stopping...")
    self._stop = True
    self._thread.join()
    logging.debug("Input thread joined.")

def run(self):
    logging.debug("Input thread started.")
    while not self._stop:
        events = inputs.get_gamepad()
        for event in events:
            self._handler(event)
    logging.debug("Input thread stopped.")

class RCApp(object):
""" Application class. """
def __init__(self):
    logging.info("Initializing...")
    self._stop = False
    self.input_thread = InputThread(self._handle_input)
    self.cli = pycozmo.Client()
    self.speed = 0.0        # -1.0 - 1.0
    self.steering = 0.0     # -1.0 - 1.0
    self.speed_left = 0.0   # 0 - 1.0
    self.speed_right = 0.0  # 0 - 1.0
    self.lift = True

def init(self):
    """ Initialize application. """
    self._stop = False
    # Connect to Cozmo
    self.cli.start()
    self.cli.connect()
    self.cli.wait_for_robot()
    # Raise head
    angle = (pycozmo.robot.MAX_HEAD_ANGLE.radians - pycozmo.robot.MIN_HEAD_ANGLE.radians) * 0.1
    #pkt = pycozmo.protocol_encoder.SetHeadAngle(angle_rad=angle)
    self.cli.set_head_angle(angle)
    time.sleep(0.5)
    return True

def term(self):
    """ Terminate application. """
    logging.info("Terminating...")

    self.cli.stop_all_motors()
    self.cli.disconnect()
    self.cli.stop()

def run(self):
    """ Main loop. """
    logging.info("Starting...")

    self.input_thread.start()

    while not self._stop:
        try:
            time.sleep(1)
        except KeyboardInterrupt:
            self.stop()

    self.input_thread.stop()

    logging.info("Done.")

def stop(self):
    logging.debug("Stopping...")
    self._stop = True

def _drive_lift(self, speed):
    if self.lift:
        self.cli.move_lift(speed)
    else:
        self.cli.move_head(speed)

def _drive_wheels(self, speed_left, speed_right):
    lw = int(speed_left * pycozmo.MAX_WHEEL_SPEED.mmps)
    rw = int(speed_right * pycozmo.MAX_WHEEL_SPEED.mmps)
    self.cli.drive_wheels(lw, rw)

@staticmethod
def _get_motor_thrust(r, theta):
    """
    Convert throttle and steering angle to left and right motor thrust.

    https://robotics.stackexchange.com/questions/2011/how-to-calculate-the-right-and-left-speed-for-a-tank-like-rover

    :param r: throttle percentage [0, 100]
    :param theta: steering angle [-180, 180)
    :return: tuple - left motor and right motor thrust percentage [-100, 100]
    """
    # normalize theta to [-180, 180)
    theta = ((theta + 180.0) % 360.0) - 180.0
    # normalize r to [0, 100]
    r = min(max(0.0, r), 100.0)
    v_a = r * (45.0 - theta % 90.0) / 45.0
    v_b = min(100.0, 2.0 * r + v_a, 2.0 * r - v_a)
    if theta < -90.0:
        return -v_b, -v_a
    elif theta < 0:
        return -v_a, v_b
    elif theta < 90.0:
        return v_b, v_a
    else:
        return v_a, -v_b

def _handle_input(self, e):
    update = False
    update2 = False

    if e.ev_type == "Key":
        # Button event.
        #   e.state = 1 - press
        #   e.state = 0 - release
        if e.code == "BTN_START":
            if e.state == 1:
                self.stop()
        elif e.code == "BTN_TRIGGER_HAPPY3":
            # XBox 360 Wireless - Up
            if e.state == 1:
                self._drive_lift(0.8)
            else:
                self._drive_lift(0.0)
        elif e.code == "BTN_TRIGGER_HAPPY4":
            # XBox 360 Wireless - Down
            if e.state == 1:
                self._drive_lift(-0.8)
            else:
                self._drive_lift(0.0)
        elif e.code == "BTN_TRIGGER_HAPPY1":
            # XBox 360 Wireless - Left
            if e.state == 1:
                self.lift = False
        elif e.code == "BTN_TRIGGER_HAPPY2":
            # XBox 360 Wireless - Right
            if e.state == 1:
                self.lift = True
        else:
            # Do nothing.
            pass
    elif e.ev_type == "Absolute":
        # Absolute axis event.
        if e.code == "ABS_RX":
            # e.state = -32768 - full left
            # e.state = 32768 - full right
            self.steering = float(-e.state) / 32768.0
            if -0.15 < self.steering < 0.15:
                self.steering = 0
            update = True
            logging.debug("Steering: {:.02f}".format(self.steering))
        elif e.code == "ABS_Y":
            # e.state = -32768 - full forward
            # e.state = 32768 - full reverse
            self.speed = float(-e.state) / 32768.0
            if -0.15 < self.speed < 0.15:
                self.speed = 0
            update = True
            logging.debug("Speed: {:.02f}".format(self.speed))
        elif e.code == "ABS_Z":
            # e.state = 0 - 255
            self.speed_left = float(e.state) / 255.0
            update2 = True
            logging.debug("ML: {:.02f}".format(self.speed_left))
        elif e.code == "ABS_RZ":
            # e.state = 0 - 255
            self.speed_right = float(e.state) / 255.0
            update2 = True
            logging.debug("MR: {:.02f}".format(self.speed_right))
        elif e.code == "ABS_HAT0Y":
            if e.state == -1:
                # Logitech Gamepad F310 - Up
                self._drive_lift(0.8)
            elif e.state == 1:
                # Logitech Gamepad F310 - Down
                self._drive_lift(-0.8)
            else:
                self._drive_lift(0.0)
        elif e.code == "ABS_HAT0X":
            if e.state == 1:
                # Logitech Gamepad F310 - Right
                self.lift = True
            elif e.state == -1:
                # Logitech Gamepad F310 - Left
                self.lift = False
            else:
                pass
        else:
            # Do nothing.
            pass
    else:
        # Do nothing.
        pass

    if update:
        r = self.speed
        theta = -self.steering * 90.0
        if r < 0:
            r *= -1.0
            theta += 180.0
        v_a, v_b = self._get_motor_thrust(r, theta)
        logging.debug("r: {:.02f}; theta: {:.02f}; v_a: {:.02f}; v_b: {:.02f};".format(
            r, theta, v_a, v_b))
        self._drive_wheels(v_a, v_b)

    if update2:
        self._drive_wheels(self.speed_left, self.speed_right)

def parse_args():
""" Parse command-line arguments. """
parser = argparse.ArgumentParser(description=doc)
parser.add_argument('-v', '--verbose', action='store_true', help='verbose')
args = parser.parse_args()
return args
def main():
# Parse command-line.
args = parse_args()
# Configure logging.
level = logging.DEBUG if args.verbose else logging.INFO
logging.basicConfig(
    format="%(asctime)s.%(msecs)03d %(name)-15s %(levelname)-8s %(message)s",
    datefmt='%Y-%m-%d %H:%M:%S',
    level=level)

#
for device in inputs.devices:
    print(device)

# Create application object.
app = RCApp()
res = app.init()
if res:
    app.run()
    app.term()

if name == 'main':
main()

OK, I am glad you figured it out.
This is rc.py from the inputs branch which is still not integrated in dev and now somewhat obsolete.
I'll take your changes when integrating the inputs branch some time soon.
Thanks.

authors: CozmoCyke zayfod

repo: zayfod/pycozmo


text:
[BUG] Missing scroll bar on the right border

The right image, and the diff image, missing the scrollbar on the right border.

repo: zchrissirhcz/image-compare


text:
We should use dependency injection

With DI pattern we can decoupling components easily. This will make it easy to mock input in unit tests. There is a library to do this in C++ and it look really good: https://github.com/ybainier/Hypodermic

We can't do this anymore due to we want to be able to upgrade Bitcoin time to time.

repo: zcoinofficial/zcoin


text:
Scrollbars

Is your feature request related to a problem? Please describe.
I noticed that Zed doesn't have any scrollbars anywhere. This seems like a strange omission given their ubiquity elsewhere.
Describe the solution you'd like
For scrollable areas to have some kind of scroll bar associated with them, preferably ephemeral so they don't clutter the UI too much.
Describe alternatives you've considered
N/A
Screenshots
N/A

Yes!  Not having scrollbars has been killing me a bit inside 🤣.  Really would love to get these.

Mouse based interaction definitely needs some quality time focus for Zed.

Properly implementing scrolling that feels perfect on a touch pad, while also supporting other devices has a lot of weird complexity.
To properly emulate the physics of a scroll bar requires:

[ ] Scrolling acceleration for navigating large files.
[ ] Kinetic scrolling for easing acceleration
[ ] Elastic scrolling when at the ends

The input elements are:

[ ] Scrollbar - Produce arbitrarily scaled scrolls based on the ratio of content length to the viewport.
[ ] Mouse wheel - Typically produce line based units which need to be converted to pixels
[ ] External navigation (e.g. terminal output appended, jump to a location in a file) - Context dependent
[ ] Touchpad / Trackpad - Should produce exact pixel deltas, in practice often produce line deltas because windows.

If performance proves tricky, maybe consider using blit acceleration.

Scrollbars can be superfluous.
But Minimap is better solution for Scrollbars, with a touch screen, touchpad/trackpad it's friendly

@und3fined I always disable the minimap (I can’t stand it). And given the feedback in #263 , I’m not alone.

Scrollbars are a must–have. Two good reasons:

So you can tell where you are relative to file length
So you can use a mouse to jump around in a file
A third good reason is that it is an OS standard and let's not fuck with OS standards :–)

just please follow the os settings and let us have them only active during scrolling and not visible 100% of the time 🙏🏻

just please follow the standard macos settings and let us also have the option to show them only when scrolling and not visible 100% of the time 🙏🏻

We should support these settings. I can't guarantee we can read the setting FROM macOS that you currently have set (not an engineer), but at the least we will have at least have [when scrolling|always].

Two good reasons:
So you can tell where you are relative to file length
So you can use a mouse to jump around in a file

Scrollbars also visualize the size of the file (long files have a shorter scroll bars). For that reason, if you go with the “only show when scrolling” implementation, the scroll bar should also appear briefly when opening a new file.

Would be nice to have scrollbar in bottom status bar (where line/column number appear) just like in screenshot bellow (from Emacs using mlscroll)

![116825204-38031880-ab5c-11eb-8252-5f60a61f45dd](https://user-images.githubusercontent.com/8908139/184018086-1ea28c3a-924e-41e9-991c-fd9e3e11b739.gif)

I see that this is has been marked completed, but it also seems that there are no horizontal scrollbars when text overflows the editor horizontally and doesn't wrap. I think that would be desirable.

authors: AlexDaniel GKJCJG JosephTLyons aexvir iamnbutler kevinsjoberg mikayla-maki rsms sifbiri und3fined

repo: zed-industries/community


text:
The node process using a lot of memory while working on a vue project

Check for existing issues

[X] Completed

Describe the bug / provide steps to reproduce it

Open a vue project by zed
Check Activity monitor and find the node process started by zed

Environment
Zed: v0.109.1 (stable)
OS: macOS 13.4.1
Memory: 16 GiB
Architecture: aarch64
If applicable, add mockups / screenshots to help explain present your vision of the feature

If applicable, attach your ~/Library/Logs/Zed/Zed.log file to this issue.
If you only need the most recent lines, you can run the zed: open log command palette action to see the last 1000.
No response

Hey @freedomlang, what is the memory consumption level of the node process (for the same project) when using VS Code?

Hey @freedomlang, what is the memory consumption level of the node process (for the same project) when using VS Code?

About 2.2GB

authors: JosephTLyons freedomlang


text:
pass image to ImageEditorPro

There should be option to pass image, so the editor will load that image for edit.

is he planning on supporting this ?
@originalsaroj  did you find an alternative ?
@zeeshux7860 can you please provide a constructor that accept image file ?

no, I didn't find any alternatives.

I don't understand how one can currently edit the picture without being able to display it by passing a File to the constructor. Could you provide some guidance?

#25 Looks like same problem.

authors: CoderJava PavieOlivier isarojdahal originalsaroj themadmrj


text:
PS1="〉" terminal prompt glitches

[x] I am on the latest Hyper.app version

[x] I have searched the issues of this repo and believe that this is not a duplicate

macOS 10.12.1

Hyper.app 1.0.0.1303

default .hyper.js

Dev Console error: __WEBPACK_IMPORTED_MODULE_0_hterm_umdjs__.hterm.TextAttributes.splitWidecharString
(full stack screenshot)

vanilla Hyper

Issue
When I updated to Hyper 1.0 (from a previous 0.x I can't recall, which worked) the prompt looked off. What's worse, some operations didn't work properly either:

the color of the prompt leaked.
preferences didn't open, just duplicated the same content of the original tab and crashed them all if I attempted to close one (screenshot).
CMD+W and CMD+T seem not working / work randomly.

I hunted the issue down, and removing piece by piece every element in my custom PS1 prompt, I identified it breaks when I add this character: 〉.
Specifically, the smallest bash prompt that breaks is:
PS1="〉"

Might be useful:
$ echo -n 〉| hexdump
0000000 e2 8c aa
0000003

The same happens with:
PS1="〉"

$ echo -n 〉| hexdump
0000000 e3 80 89
0000003

And other random characters:
PS1="、"
PS1="ㄐ"
PS1="㈑"

If I change the prompt to anything else, it works. Similarly, if I keep my prompt but I just remove that character, it works again.
Also: I can't copy paste the above PS1 commands into Hyper either: the paste itself "breaks" at the character.

Hopefully fixed in https://github.com/zeit/hyper/pull/1111

@folletto could you try build Hyper from this branch and try again?

I confirm that branch fixes the issue, but not completely.
The cursor becomes offset by roughly a single space:
Typing ll in Hyper (that unicode-perfomance-fix branch):

Typing ll in Hyper 1.0 (with the bug mentioned here):

Typing ll in Hyper 1.0 (with a PS1="$ " prompt):

Typing ll in Terminal:

@folletto but this space provided by PS1="〉", right?

not sure if this is related, but my prompt is:
%{$fg_bold[blue]%}〉%{$fg_no_bold[white]%}%p%{%F{247}%}%c ·%{$reset_color%}

and my hyper is a blank window

With Hyper 1.0.1 (that had https://github.com/zeit/hyper/pull/1111 merged) now the prompt has the visual glitch of the space, but at least doesn't break functionality (at least to the extent I tested it).
Current 1.0.1 (notice the misplaced space):

With Hyper 1.0.1 (that had https://github.com/zeit/hyper/pull/1111 merged) now the prompt has the visual glitch of the space, but at least doesn't break functionality (at least to the extent I tested it).
Current 1.0.1 (notice the misplaced space):

Want hyper to be my daily driver, but the cursor's off-by-one position is really annoying.
Happening on Ubunutu, using bash and running tmux.

Want hyper to be my daily driver, but the cursor's off-by-one position is really annoying.
Happening on Ubunutu, using bash and running tmux.

Having the same problem as @folletto with 1.0.1 when spawning a tmux session. Invoking the tmux prompt (C-b :) fixes all preceding lines (shifting them one character to the right again), but when entering a new command it's back to being off to the left by one. Using zsh and powerlevel9k.

All space between left and right prompt is also removed. Everything works as expected when not in a tmux session.

Icon bug is likely related to #1327

I don't know if this pertains to this issue or not, but I am getting an out-of-place cursor when updating to the latest Hyper (1.1.0.1408):

(sorry for the slow replay...I don't know why it plays back so slowly)

#1332 seems to be related to this.  But there seems to be something more fundamentally wrong:
My PS1 looks like this: "%B%F{green}~%f %F{cyan}λ%f%b "
Note that the %b (</bold>) occurs before the trailing space.
When running outside of TMUX, the generated HTML is:
<x-row>~ λ asdf</x-row>

However when running inside TMUX, the generated HTML is instead:
<x-row>~ λ</x-row>

...until I type a character, it becomes:
<x-row>~ λ asdf         </x-row>

Note that it puts the space within the bold span with the λ character, which is wrong.  According to my PS1 string, the space occurs after the bold ends.
Another note, even if the string was in the bold markup, this problem would be fixed if #1332 were fixed.

Oh thank god, I'm not the only one. I'm using the latest (1.2.1.1527) and experiencing this issue when I use TMUX. It's really quite infuriating and works just fine in iTerm.

This is still occurring with 1.3.1. In fact, tmux use in hyper seems quite broken as even my status bar at the bottom is rending oddly.

@adworacz I've sadly had to stop using hyper altogether.  I am keeping an eye on this issue, however, hoping that the devs fix this!  From what I understand, once they switch to xterm.js, this might fix itself (#1275).

@jrop I have to agree. I'm continuing to use iTerm for the time being, as I need tmux support in order to work properly.
Thank you for pointing out the potential migration to xterm.js, I'll be sure to track it.

I also have the same issue

@adworacz My specific issue is gone in version 1.3.3.

Thanks for the update, I checked: the issue is still present in v1.3.3.

I can't replicate my issue on 1.3.3.
At least, not yet. Will keep experimenting, but thank you for fixing the core issue.

I still keep getting this error on 1.3.3.

I'm getting the same error in 2.0.0 ...

Please open a new issue for 2.0 @ultraN

authors: MelkorNemesis adityavm adworacz albinekb cirqueit dotcypress folletto hugomd jrop storvik ultraN

repo: zeit/hyper


text:
Context menu is showing Hyper but trows an error when clicked

This issue's related to this: #1133
I'm facing this issue on windows 10 when I build the app from source (latest commit, master).
But, after removing and reinstall using the .exe file downloaded from here, it started working fine.
Nodejs: 7.2.1 64 bit
Windows 10 64bit.
Note that this also happends with GritKraken (another Electron app), so I think that there should be some problems with Electron or something. Vscode's still working fine tho.

Step 1 : Type "regedit" in start menu
Step 2 : Run the registry editor
Step 3 : Navigate to HKEY_CURRENT_USER\SOFTWARE\Classes\Directory\Background\shell\Hyper\command
Step 4 : Right-click on "REG_SZ" entry and choose modify
Step 5: Enter the Path to Hyper, like: C:\Users\username\AppData\Local\app-1.0.0\Hyper.exe
Unfortunately Hyper doesn't navigate directly to the "open here" directory. This should be fixed too.

@lednhatkhanh Hyper adds/removes the context menu entry only during install/uninstall. That's why your entry may have been broken.
@kilianso I can't seem to reproduce this. Is this on Windows 10? Could you share your config?

@kilianso opening in the current directory can be fixed by adding "%V" as an argument in the command key:
"C:\Users\<username>\AppData\Local\hyper\app-1.0.0\Hyper.exe" "%V"
You can also change the text that is displayed in the context menu by adding a value to the parent Hyper key such as "Open Hyper Here".
Windows reg export:
Windows Registry Editor Version 5.00

[HKEY_CLASSES_ROOT\Directory\Background\shell\Hyper]
@="Open Hyper Here"

[HKEY_CLASSES_ROOT\Directory\Background\shell\Hyper\command]
@="\"C:\\Users\\Astreaz\\AppData\\Local\\hyper\\app-1.0.0\\Hyper.exe\" \"%V\""

I just hit this also. The default reg key is getting erased on update. Perhaps something wrong with the squirell update?

Somehow the command: "C:\Users<username>\AppData\Local\hyper\app-1.0.0\Hyper.exe" "%V" was not working for me. Hyper showed up but not at the correct path.
So I changed it to:
C:\Users\xxx\AppData\Local\hyper\Hyper.exe  --process-start-args="-p %V"

@EsSpricht's solution works for me

Fix by https://github.com/zeit/hyper/pull/1831

authors: EsSpricht Specro Stanzilla djalmajr kilianso lednhatkhanh nsna shanselman


text:
Cannot install plugins using hpm

When trying to install e.g. "hyper layout" using hpm i hyperlayout I just received the hpm help print out?
Roberts-MBP-2:~ ronagy$ hpm i hyperlayout

  Usage: hpm [options] [command]

  Commands:

    d, docs, h, home               Open the npm page of a plugin
    f, fork                        Fork a plugin from npm into your ~/.hyper_plugins/local
    help                           Display help
    i, install                     Install a plugin
    ls, list                       List installed plugins
    lsr, list-remote, ls-remote    List plugins available on npm
    s, search                      Search for plugins on npm
    u, uni, uninstall, rm, remove  Uninstall a plugin

  Options:

    -h, --help     Output usage information
    -v, --version  Output the version number

Running version 1.2.1

Dupe of https://github.com/zeit/hpm/issues/72.

authors: Equinox ronag


text:
Auto-update invokes onUnload but not onApp for installed plugins

[x] I am on the latest Hyper.app version

[x] I have searched the issues of this repo and believe that this is not a duplicate

OS version and name: macOS 10.13

Hyper.app version: 2.0.4 (canary)

Link of a Gist with the contents of your .hyper.js: dotfiles

Relevant information from devtools: No apparent errors.

The issue is reproducible in vanilla Hyper.app: Yes, but not necessarily relevant.

Issue
The auto-update interval invokes onUnload for all installed plugins via clearCache, but does not run onApp via watchers unless a plugin has changed. This behavior results in soutar/hyperterm-summon#30.
Questions

Is this intended or a bug?
If this is intended behavior, should I not "clean up" after a plugin (e.g. removing event listeners) during a plugin's onUnload method?

If this is considered a bug, I'm happy to investigate a fix, but wanted to understand the desired plugin architecture first. Thanks.

@rauchg @leo I'm happy to explore a resolution to this issue, if I can receive feedback on the desired behavior. Thanks. 😊

Seems to be a bug.
I'll happy to accept a PR for this ;)
onUnload method should be called only on removed plugins imo.

authors: chabou dcalhoun


text:
quickEdit support

tested on mac, ubuntu 16.04, windows 10
closes #2260, #2318
Note that this should close #2348, which is the same functionality, very slightly different implementation. I didn't intend to duplicate their effort, but @chabou asked me to submit this (in https://github.com/zeit/hyper/pull/2390#issuecomment-339148926)
As far as I know, and based on a simple test in windows command prompt, this works as expected:

Select text
right click anywhere to copy the selection
selection clears
right click anywhere to paste

If there are any nuances to quick-edit beyond that, I'm not aware of them, but even still this is probably enough for a first iteration at the very least.

Tested and works well!

🙏  Thank you @derrickpelletier

authors: Stanzilla chabou derrickpelletier


text:
import './global.scss' has no effect in _document.js?

Testing out Next.js, and trying to understand how to include a global stylesheet. I'm seeing some confusing behavior.
This is my next.config.js:
const withSass = require("@zeit/next-sass");
module.exports = withSass({
    cssModules: true
})

I have a global.scss file which simply changes the background color:
html, body {
  background: blue;
}

In my _document.js js, I've tried import './global.scss'; but there's no effect, even after a server restart
I can put import './global.scss'; in (any) page.js, but there's some confusing behavior:

If i visit page.js and then visit another page, the background stays blue
If I refresh on another page, the background goes away, but comes back when I revisit page.js
If I remove the line import './global.scss'; from my component, the background color does not go away (but if I change the scss, the background does live reload)

It's not ideal to add a "global" css import to every page. Is there a way to do once? Should it work in _document.js ? I'm thinking things like importing Bootstrap and other utilities, it's nice to have a global CSS file with those dependencies. It also fits well with my CSS mental model and development. A global style for styles that are truly global, and co-located scss for component styling

I have same issue

The best way, what I found for myself – it's a create wrapper component (high-order component)

@JerryCauser good idea, I already have a layout HOC, makes sense to add it there. (I'm not saying that resolves this issue, but a good workaround for me)

Having same issue @AndrewRayCode is experiencing. I want to use modular SASS when building components, but also have a global stylesheet that I can drop into _document.js but I'm unable to have both, just one or the other.
@JerryCauser Can you specify your workaround a little more? I'm not really seeing where the HOC docs are pointing to get around this.
@timneutkens Can you possibly chime in on when this might be a feature or can you recommend a proper workaround?

This might actually be fixed in latest canary, which I just released. Note that I haven't verified this whatshowever, but please try 😄

@timneutkens Yes, it seems like canary-4 fixed that issue. However, there are some weird behaviors that I will address in a new issue.

I’d have to check if it works in production though. I’m sure it works in development 👍🏻

importing css files in custom pages/_app.js file makes them globally available

authors: AndrewRayCode JerryCauser eugeneross mv5 omidnikrah timneutkens

repo: zeit/next-plugins


text:
Infinitely refresh when visit on 127.0.0.1:3000

when run with npm run dev, if I visit it on localhost:3000, everything goes well. but if I visit on 127.0.0.1:3000, the page gets refreshed infinitely.

Cannot reproduce. Can you prepare a sample repository which we can reproduce if possible ?

I should close this issue for now I don't have a repo to reproduce. Once I have a workable one, I will reopen it by the time.

JFYI, I have seen such behavior on my end recently, but cold restart solved the issue for me so I didn't bother reporting it.

authors: frol nkzawa zhaoyao91