text:
API:  Batch queries with transactions support and error handling.

follow up on #303

I have a scenario where 4 tables needs to be created and updated simultaneously. I am using transactions for creation where id of one table is foreign key of another table. But i found no solution for update . I wish this feature will be part of Yii ASAP.

+1
This seems being on hold for a long time, any plans for  this?

Not for the next release unless someone from community will take care of it.

Damn, not skilled for the task for the time being.

hey, Sorry if posted on wrong place.
I am newbie with yii2 api, I tried but not able to get how to call and make batch processing works.
If my url is abc.com/message-log POST and process single record is working fine, and can load records with GET on abc.com/message-log but as provided above abc.com/message-log/batch respond 404
Please let me know how to process batch records.

@muet84 because it's not implemented.

authors: cebe decimoseptimo muet84 mushahidh samdark


text:
how can i do rescoring of a document in elasticsearch in yii2

i am unable to rescore the document in elasticsearch,my code is below
$result = Item::find()->query([
"match" => ["item_name" => 'shirt1'],],
["rescore" => [
"window_size"=> 5,
"query"=> [
//"score_mode" => "max",
"rescore_query" => [
"function_score" => [
"query" => [
"match" => ["item_name" => 'shirt1'],],
"script_score" => [
"script" => "100" ]
								]],"query_weight" => 1.0,
     "rescore_query_weight" => 5.9]]])->asArray()->all();

how do i get out of this problem

Please use forum for questions. GitHub is for issues.

source: gharchive/issue

authors: nishanthpininti samdark

license_type: permissive

license_source: github-api


text:
Optimize comment of LinkPager

Which losts the quote for previous .

Q
A

Is bugfix?
no

New feature?
no

Breaks BC?
no

Tests pass?
yes

Fixed issues

Merged. Thanks!

source: gharchive/pull-request

authors: samdark yidas


text:
ActiveRecord:findByCondition alias fix

Q
A

Is bugfix?
yes

New feature?
no

Breaks BC?
no

Tests pass?
I couldn't run it

Fixed issues
no

ActiveRecord::findOne($id) method doesn't includes table alias. If alias is defined in find or init methods, ActiveRecord::findByCondition returns error.

I've reduced cyclomatic comlexity.
Should I use Reflection for testing new private method?

Isn't it possible to test it w/o reflection?

Closed in favor of https://github.com/yiisoft/yii2/pull/17127

authors: rikosage samdark


text:
【Feature】Array类型的校验返回的path是"list.1.test.0.x", 并不好处理。正常来说 "list[1].test[0].x" 是不是更好？

Array类型的校验返回的path是"list.1.test.0.x", 并不好处理。正常来说 "list[1]test[0]x" 是不是更好？
如果是 list[1]test[0]x， 一个lodash.get 就能直接当入参使用了。
list.1.test.0.x 首先要假设用户没有使用0-9这种数字来作为字段名（否则就根本无法判断这是object还是array的一个item了），其次就算不出现用户乱用的情况，也没有任何直接能使用这个path的方法，展示出去没有人看得懂，开发者也没法直接使用。
建议 list.1.test.0.x -> list[1].test[0].x

返回数组吧，满足所有情况。

authors: FateRiddle betgar

repo: yiminghe/async-validator

license: mit

license_source: bigquery


text:
How do I add more pages?

Hello! I really like your theme and it's the only I've found that will work perfectly with this communal site I'm developing, the only thing is I'm not sure how to add more pages or sections (not sure what you call them lol).
The communal site I am developing is for me and some friends to showcase our books. What I want to do is add a section for each book that shows the book cover, description, and author name, how do I do that?
Sorry if this is an easy question with a simple answer, I'm just starting out with web development and Jekyll and don't know a lot.

@Aspiring-Writer Hello! Sorry, it's been too many years that I don't even remember Jekyll myself. I don't really have much to look into this, but you are interested, feel free to check out the source code and take a look.

Thanks, I'm actually not using Jekyll right now either.

authors: Aspiring-Writer yizeng

repo: yizeng/jekyll-theme-simple-texture


text:
关于测试结果

您好~我刚刚在CodaLab测试了我的结果，请问scores.txt中的PL、CR、CS和HW分别代表什么呢？

PL: parking lot
CR: campus road
CS: city street
HW: highway
Those details are mentioned on the website.

repo: yizhou-wang/RODNet

license: MIT


text:
ts项目模板启动失败

require(options.framework).startCluster(options);

framework没有配置
另：ts项目模板和js模板差异好大

差异并不大。启动失败请丢错误原因。不要自己改了启动方式后说启动失败

@ynchuan 给一下日志吧

@i5ting  使用tnpm i安装后npm start执行就会出问题，如果换成使用npm i就正常了，不知道是不是内部镜像有问题
> ssr-with-ts@2.3.1 start /Users/xxx/workspace/fe/yk/ssrts
> concurrently "npm run ssr" "npm run csr"

[0]
[0] > ssr-with-ts@2.3.1 ssr /Users/xxx/workspace/fe/yk/ssrts
[0] > concurrently "cross-env NODE_ENV=development midway-bin dev --ts" "cross-env NODE_ENV=development webpack --watch --config ./build/webpack.config.server.js"
[0]
[1]
[1] > ssr-with-ts@2.3.1 csr /Users/xxx/workspace/fe/yk/ssrts
[1] > cross-env NODE_ENV=development ykcli dev
[1]
[0] [1]
[0] [1] webpack is watching the files...
[0] [1]
[0] [0]
[0] [0] /Users/xxx/workspace/fe/yk/ssrts/node_modules/_egg-bin@4.14.1@egg-bin/lib/start-cluster:8
[0] [0] require(options.framework).startCluster(options);
[0] [0]                            ^
[0] [0] TypeError: require(...).startCluster is not a function
[0] [0]     at Object.<anonymous> (/Users/xxx/workspace/fe/yk/ssrts/node_modules/_egg-bin@4.14.1@egg-bin/lib/start-cluster:8:28)
[0] [0]     at Module._compile (internal/modules/cjs/loader.js:945:30)
[0] [0]     at Object.Module._extensions..js (internal/modules/cjs/loader.js:962:10)
[0] [0]     at Module.load (internal/modules/cjs/loader.js:798:32)
[0] [0]     at Function.Module._load (internal/modules/cjs/loader.js:711:12)
[0] [0]     at Function.Module.runMain (internal/modules/cjs/loader.js:1014:10)
[0] [0]     at internal/main/run_main_module.js:17:11
[0] [0] Error: /Users/xxx/workspace/fe/yk/ssrts/node_modules/_egg-bin@4.14.1@egg-bin/lib/start-cluster {"typescript":true,"workers":1,"framework":"/Users/xxx/workspace/fe/yk/ssrts/node_modules/midway","baseDir":"/Users/xxx/workspace/fe/yk/ssrts"} exit with code 1
[0] [0]     at ChildProcess.<anonymous> (/Users/xxx/workspace/fe/yk/ssrts/node_modules/_common-bin@2.8.3@common-bin/lib/helper.js:56:21)
[0] [0]     at Object.onceWrapper (events.js:300:26)
[0] [0]     at ChildProcess.emit (events.js:210:5)
[0] [0]     at ChildProcess.EventEmitter.emit (domain.js:476:20)
[0] [0]     at Process.ChildProcess._handle.onexit (internal/child_process.js:272:12) {
[0] [0]   code: 1
[0] [0] }
[0] [0] cross-env NODE_ENV=development midway-bin dev --ts exited with code 1
[1] ℹ ｢wds｣: Project is running at http://0.0.0.0:8000/
[1] ℹ ｢wds｣: webpack output is served from /
[1] ℹ ｢wds｣: Content not from webpack is served from /Users/xxx/workspace/fe/yk/ssrts/dist
[1] Starting server on http://localhost:8000
[0] [1] Hash: 077fae00d747990b6c76
[0] [1] Version: webpack 4.19.1
[0] [1] Time: 1119ms
[0] [1] Built at: 2020/03/08 上午10:48:55
[0] [1]                 Asset       Size  Chunks             Chunk Names
[0] [1] static/css/Layout.css  467 bytes  Layout  [emitted]  Layout
[0] [1]      Layout.server.js   19.2 KiB  Layout  [emitted]  Layout
[0] [1]   static/css/Page.css  967 bytes    Page  [emitted]  Page
[0] [1]        Page.server.js   61.5 KiB    Page  [emitted]  Page
[0] [1] [./config/config.ssr.js] 1.09 KiB {Page} [built]
[0] [1] [./web/assets/common.less] 329 bytes {Page} {Layout} [built]
[0] [1] [./web/entry.tsx] 4.98 KiB {Page} [built]
[0] [1] [./web/layout/index.less] 329 bytes {Page} {Layout} [built]
[0] [1] [./web/layout/index.tsx] 3.65 KiB {Layout} {Page} [built]
[0] [1] [./web/page/index/index.less] 332 bytes {Page} [built]
[0] [1] [./web/page/index/index.tsx] 2.6 KiB {Page} [built]
[0] [1] [./web/page/news/index.tsx] 1.64 KiB {Page} [built]
[0] [1] [path] external "path" 42 bytes {Page} [built]
[0] [1] [react] external "react" 42 bytes {Page} {Layout} [built]
[0] [1] [react-dom] external "react-dom" 42 bytes {Page} [built]
[0] [1] [react-router-dom] external "react-router-dom" 42 bytes {Page} {Layout} [built]
[0] [1] [regenerator-runtime] external "regenerator-runtime" 42 bytes {Page} [built]
[0] [1] [serialize-javascript] external "serialize-javascript" 42 bytes {Page} {Layout} [built]
[0] [1] [ykfe-utils] external "ykfe-utils" 42 bytes {Page} [built]
[0] [1]     + 7 hidden modules
^C
[0] [1] cross-env NODE_ENV=development webpack --watch --config ./build/webpack.config.server.js exited with code 0
[0] npm ERR! code ELIFECYCLE
[0] npm ERR! errno 1
[0] npm ERR! ssr-with-ts@2.3.1 ssr: `concurrently "cross-env NODE_ENV=development midway-bin dev --ts" "cross-env NODE_ENV=development webpack --watch --config ./build/webpack.config.server.js"`
[0] npm ERR! Exit status 1
[0] npm ERR!
[0] npm ERR! Failed at the ssr-with-ts@2.3.1 ssr script.
[0] npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
[1] npm run csr exited with code 0
[0]
[0] npm ERR! A complete log of this run can be found in:

不要用阿里的源来装midway，这个包有问题。

@zhangyuang  OK

midway内外版本问题，close了

authors: i5ting ynchuan zhangyuang

repo: ykfe/egg-react-ssr


text:
feat: 添加config.customHead

不同页面需要的head可能不一样, 并且config.head不应该被修改; 所以如果需要单独设置head, 应该在renderToStream时添加所需的customHead

没看懂你的目的是什么。
config.head就是用于动态生成head的场景。如果你的head不需要修改直接在index.html里面写死就行了。

authors: Lyule zhangyuang


text:
いいところの診断の結果に優しさを追加したい

'{userName}のいいところは優しさです。あなたの優しい雰囲気や立ち振舞に多くの人が癒されています。'

これから対応します。

,忘れの修正を行いました

${commit_hash}で対応されました。

ad107afで対応されました。


text:
Requesting a quick heal with a few queries at hand

Went through few of your answers in the issues, would like to know:

whether your suggested modifications for VITS and FastSeech 2 models apply only for inference or for finetuning too?
in the readme section you have mentioned some changes to be made in the train_second.py of styleTTS if one wishes to include PL-BERT. Does that mean train_first.py can be skilled at all or the stage one has to be done without PL-Bert. I am only interested in finetuning the pre-trained model
the first modification https://github.com/yl4579/StyleTTS/blob/main/models.py#L683, it points to the line where there is the discriminator is instantiated, which will an argument for Munch(), but the replacement code doesn't instantiate discriminator anywhere

I suppose either the line pointed here has to be kept as is or the replaced Munch instantiation shall not include discriminator. What's the correct implementation, if you'd like to tell?

Any final comments in regards to comparing styleTTS directly with Tortoise in terms of inference quality and speed?

You have to train VITS and FastSpeech 2 (or any TTS models) from scratch if you want to use a different text encoder than the original one (including PL-BERT). So the answer to your question is neither, you need to train the TTS model from scratch.
The first stage is independent of PL-BERT, as it only trains an acoustic model. The PL-BERT is only used for prosody and duration prediction. This does not work for VITS and FastSpeech 2 though, as both models are end-to-end that do not train an acoustic module first then train a predictor module like StyleTTS does.
The original intention was to copy-paste the provided code snippet after the discriminator line. However, if you do not understand how to modify the code, you can refer to the zipped file with all the modified code: https://drive.google.com/file/d/19gzPmWKdmakeVszSNuUtVMMBaFYMQqJ7/view?usp=sharing
If you are referring to https://nonint.com/static/tortoise_v2_examples.html, I believe StyleTTS is better, but it also depends on the dataset. If you are interested you can also refer to our latest work StyleTTS 2 here: https://styletts2.github.io/. The code will be made publicly available by the end of this month.


text:
Add close parameter to pool.clear() and use it in cluster

This commit improves the cleanup of connections in cases where some of the attempted connects throw exceptions. Previously, connections or entire pools could have been left open.

As long as the PR to aiolibs/aioredis is open, I'd like to avoid major changes to the master branch. I reviewed this and merged it into the branch "fork", which should serve as replacement for master while the PR is open.

authors: eyj the-panda

repo: ymap/aioredis


text:
Screen Reader Friendly Visualization

fix #14
Visually hiddenな見出しを追加し、チップを定義リスト（dl, dt, dd要素）にしてみた。
dl, dt, ddがスクリーンリーダーではあんまり使い勝手が良くない問題があるので、dl/dt/ddのスクリーンリーダーの読み上げをなんとかするのやり方を検討したり、別の表現方法を考えてもいいと思っている。
要素ごとの見出しに何を置くべきか精査したい（そもそも、これは見えているべきなんじゃないかという気もしてきている）
（個人的にはふつうのWebサイトでスクリーンリーダーが対応していないからとdl, dt, dd要素の使用を避けることにはあまり同意しない立場だが、今回はスクリーンリーダーのためのコードなので、できるだけのことはしたい）

GitHubのlabelのツールチップにpopover属性がついてて、そこにAccessibility Visualizerの要素が差し込まれてしまうのでDescriptionに「要素」「ライブリージョン」とか入っちゃう

いったんこの方向性は諦めます（コンテンツのAccessible Nameに影響を与えてしまうことがあるのがわかったため）


text:
activate a press programatically

Hi, I'd like to have the joystick react to a press-hold event.
To achieve this I am using a  RAF function with a counter.
Is there a way to activate a press programatically?

I'm not sure this is related to a feature of the library, if it is, please re-open and give more details.
You should be able to find your answer on Stack Overflow if I'm not mistaken.

authors: dr-okra yoannmoinet

repo: yoannmoinet/nipplejs


text:
How to obtain camera angle velocity?

Hi, I would like to run the pre-trained model on in-the-wild videos. I have figured out the meaning of all inputs except "cam_angvel".

Hi, this is unrelated to your issue but if you are successful can you please fork this repo and add a script to run the model on in the wild videos? (I'd like to run it too but I don't have enough knowledge to do it)

Hi @xjwxjw , are you trying to run on your custom video? If so, you need to get camera angular velocity by running SLAM beforehand. Once you have R, which is the camera to world rotational transformation, over time, you can compute and normalize angular velocity as shown in the code (the figure you uploaded). Note that we follow camera coordinate convention as X-right, Y-down, and Z-forward.
Hi @RohaanA , we plan to provide a demo script that involves all preprocessing stages (e.g., 2D detection, SLAM, and WHAM), so that you can just upload a video and get world-grounded 3D human motion.

@yohanshin this is nice, we can truely have a offline pipeline solves wild videos and output 3d motions directly.

authors: RohaanA lucasjinreal xjwxjw yohanshin

repo: yohanshin/WHAM


text:
ValueError: need at least one array to concatenate

Thank you for the code and repo! When running on some custom videos, I get the following errors, but the example file works as expected:
Traceback (most recent call last):
  File "/home/WHAM/demo.py", line 145, in <module>
    run(cfg, args.video, output_pth, network, args.calib, visualize=args.visualize)
  File "/home/WHAM/demo.py", line 107, in run
    run_vis_on_demo(cfg, video, results, output_pth, network.smpl, vis_global=True)
  File "/home/WHAM/lib/vis/run_vis.py", line 43, in run_vis_on_demo
    renderer.set_ground(scale, cx.item(), cz.item())
  File "/home/WHAM/lib/vis/renderer.py", line 171, in set_ground
    v, f, vc, fc = map(torch.from_numpy, checkerboard_geometry(length=length, c1=center_x, c2=center_z, up="y"))
  File "/home/WHAM/lib/vis/tools.py", line 207, in checkerboard_geometry
    vertices = np.concatenate(vertices, axis=0).astype(np.float32)
  File "<__array_function__ internals>", line 180, in concatenate
ValueError: need at least one array to concatenate```

https://github.com/yohanshin/WHAM/issues/29
see this please

Thanks, closing!


text:
Fix some resource files being placed to "Recovered References" group

Fixes #674

Thanks @nivanchikov! Could you add a a changelog entry as well please

@yonaskolb thanks, done

authors: nivanchikov yonaskolb

repo: yonaskolb/XcodeGen


text:
Allow creating intermediary groups outside of the project directory

Resolves #889
Putting this out as a potential solution -- I'm new to the codebase, so I'm not sure if there's maybe a better way of doing this, or if there's a reason this is unacceptable. Just wanted to try it out, since it makes the projects we're generating via bazel in a scratch directory nicer to edit

I'll try to pick this back up next week, thanks for the review!

@yonaskolb this should be ready now, sorry for the delay!

@yonaskolb any other changes you'd like me to make?

Ping on merging this before the next release?


text:
Problem with inference  UFONE class

Hi, thank you for the wonderful work :)
Trying to do inference on some images, some are successful, while others gives error in the UFONE class in the forward function, in particular the error is:

local_features = x.view(B, C, H//self.patch_size, self.patch_size, W//self.patch_size, self.patch_size)
RuntimeError: shape '[1, 60, 52, 8, 31, 8]' is invalid for input of size 6380100

in particular it seems to happen with images that are not compatible with patch_size = 8
Thank you :)

Hi, we use the function ‘check_image_size’ in the DITN class to ensure that the image size matches the model. Please check whether it is used in your code.

Hi, yes it is used, but the error is still present.

def check_image_size(self, x):
    _, _, h, w = x.size()
    wsize = self.patch_sizes[0]
    for i in range(1, len(self.patch_sizes)):
        wsize = wsize*self.patch_sizes[i] // math_gcd(wsize, self.patch_sizes[i])
    mod_pad_h = (wsize - h % wsize) % wsize
    mod_pad_w = (wsize - w % wsize) % wsize
    x = torch_functional_pad(x, (0, mod_pad_w, 0, mod_pad_h), 'reflect')
    return x

def forward(self, input_image):
    _, _, old_h, old_w = input_image.shape
    input_image = self.check_image_size(input_image)
    sft = self.sft(input_image)

    local_features = self.UFONE(sft)

    local_features = self.conv_after_body(local_features)
    out_dec_level1 = self.upsample(local_features + sft)

    return out_dec_level1[:, :, 0:old_h * self.scale, 0:old_w * self.scale]

What is the size of your input image? Or how should I reproduce your problem?

Hi, for example this image
width: 447
height: 571

Hi, I can successfully run the program using the pictures provided and cannot reproduce the problem you describe.
Here are the details:

class DITN_Real(nn.Module):
    def forward(self, inp_img):
        _, _, old_h, old_w = inp_img.shape
        ## torch.Size([1, 3, 571, 447])

        inp_img = self.check_image_size(inp_img)
        ## torch.Size([1, 3, 576, 448])

class UFONE(nn.Module):
    def forward(self, x):
        B, C, H, W = x.data.shape
        ## torch.Size([1, 60, 576, 448])

        local_features = x.view(B, C, H//self.patch_size, self.patch_size, W//self.patch_size, self.patch_size)
        ## torch.Size([1, 60, 72, 8, 56, 8])

I suggest you re-download the code from our repository and run it again to make sure your code has not been modified incorrectly~

Thank you, i will try :)

I want to add also that i am using torch 1.13.1

For the specified image, using your code without changing.

Image pre check_image_size()
torch.Size([1, 3, 571, 447])
Image post check_image_size()
torch.Size([1, 3, 572, 452])

authors: Djdefrag yongliuy

repo: yongliuy/DITN


text:
Migrate RPC to ConnectRPC

What this PR does / why we need it:
Migrate RPC to ConnecRPC.
ConnectRPC supports following features:

Supports interoperation and multiplexing of grpc, grpc-web, and Connect protocols.
Supports language-familiar primitives like net/http and fetch.
Supports simple and no-boilerplate codes.

With this support, you can resolve several issues:

Removes dependency with Envoy proxy to communicate with JS SDK web client by grpc-web.
Removes dependency with deprecated gogo/protobuf.
Supports JSON based REST API which will satisfy these needs.

Which issue(s) this PR fixes:

Related to #668
Special notes for your reviewer:

[!NOTE]
JS SDK compatibility: Since connect-go does not support grpc-web-text which current JS SDK gRPC-web client uses, we need to migrate JS SDK's RPC to ConnectRPC as well. We can temporary change JS SDK's docker-compose settings (keep envoy proxy and change server rpc port to 11101) to support compatibility with ConnectRPC server and JS SDK gRPC-web client before finishing migration of ConnectRPC on JS SDK.

[!NOTE]
Server configuration: We need to find corresponding net/http server configurations that matches with gRPC server options such as MaxRequestBytes and MaxConnectAge. Because of this issue, watch document test is temporary commented.

[!NOTE]
gRPC Metrics: Since we cannot use go-grpc-prometheus that measured gRPC server metrics, I have implemented RPC metrics by referencing go-grpc-prometheus. Because the syntax of newly implemented metrics are different from go-grpc-prometheus, we also need to update Grafana query (ex: grpc_server_handled_total to yorkie_rpc_server_handled_total, grpc_type to rpc_type).

[!NOTE]
Since we no longer have Envoy proxy to handle CORS, I have implemented CORS on RPC server. But for cluster mode, we have ingressgateway to handle CORS. So we need to implement disable option for CORS on server.

Does this PR introduce a user-facing change?:

- Server port has been changed to `8080` from `11101` for RPC port, and `8081` from `11102` for profiling port.
- User can now also send HTTP requests and receive JSON response. For example:
  curl -X POST \
      --url http://localhost:8080/yorkie.v1.AdminService/GetDocument \
      --header "Content-Type: application/json" \
      --header "Authorization: eyJBDB...." \
      --data '{"project_name": "default", "document_key": "codemirror"}

Additional documentation:

Checklist:

[x] Added relevant tests or not required
[x] Didn't break anything

@7hong13, @humdrum
Before merging this PR, we need to ensure that mobile SDKs can communicate with the server. Yorkie Go Server already multiplexes the existing grpc protocol, we expect no issues.

When testing on the dashboard, the following error occurs:

@chacha912 This is because dashboard also uses grpc-web-text format which ConnectRPC server does not support.
We also need to update dashboard's RPC to ConnectRPC, just like JS SDK.

Related to https://github.com/yorkie-team/dashboard/issues/42

authors: chacha912 hackerwins krapie

repo: yorkie-team/yorkie


text:
🛑 Api bnovus-qa is down

In fa48808, Api bnovus-qa (https://manager-api.qa.rexmas.com/admin) was down:

HTTP code: 504
Response time: 10273 ms

Resolved: Api bnovus-qa is back up in 870f757 after 8 hours, 14 minutes.

repo: yorkijr/rexmas-uptime


text:
new issues happens

/jira integrate

/jira abc

/jira solve


text:
fix(params): decode params

Tried to do this in https://github.com/yoshuawuyts/sheet-router/issues/70 but I couldn't see a way to  not break if someone walked over the routes and didn't pass the params. So I decoded the params here.

Coverage remained the same at 97.08% when pulling c6a2aa1337b3d73e0fc7187ee5bf3450b3c5dce1 on rahatarmanahmed:decode-params into 904a075bd147cb66865d56d02fc60af1bb029487 on yoshuawuyts:master.

Coverage remained the same at 97.08% when pulling c6a2aa1337b3d73e0fc7187ee5bf3450b3c5dce1 on rahatarmanahmed:decode-params into 904a075bd147cb66865d56d02fc60af1bb029487 on yoshuawuyts:master.

v6.4.0 :sparkles:

authors: coveralls rahatarmanahmed yoshuawuyts

repo: yoshuawuyts/wayfarer


text:
support for multiple timezones

Storing logs in GMT is super convenient if you're in the UK, but it makes it difficult to search logs for things that happened in other time zones, if for no other reason than the fact that things that happen Thursday afternoon in California are stored as having happened on Friday morning. Perhaps allow log viewers to set the -/+ hours offset?

Bitbucket: https://bitbucket.org/yougov/pmxbot/issue/16
Originally reported by: Anonymous
Originally created at: 2011-12-08T17:38:28.371

I still consider this a high-priority to fix, but until someone volunteers a patch, this will never get fixed.

Original comment by: Jason R. Coombs

repo: yougov/pmxbot


text:
Controlling multiple accessories at once

When selecting a scene in the home app that needs multiple lights to be controlled at the same time, you get very mixed results. It either turns off one of the devices, or none of them. This makes scenes with more than one KAKU accessory useless.
A fix that I have found is to send the commands separately through automations, but this is not flexible and takes a long time to set up.

I’m familiar with this issue. The problem is that sending multiple commands rapidly after each other just doesn’t work with the ICS-2000. Don’t really know why. As a kind of workaround, I’m planning to add Kaku scenes as devices to this plugin. So if you want to turn on or off multiple devices, you can “turn on” a scene (aka run it).

When are you planning this feature for a release? i am stuck on the old ics-1000 plugin because of this issue. Have bought the ics-2000 a while ago and waiting for multiple command support.  I have all kinds of scenes with multiple commands setup in homekit with the ics-1000 control center. Happy to help testing when you are ready

Hard to say. I am currently busy with my internship that will end in a few week. When I’m done with my internship, I think I have enough time to get on it.

@EdgarKooren a temporarily solution is to use a zigbee group created in the kaku app. These are already supported.

Added scenes as devices to this plugin. Currently testing it on my own installation. If you want to use it now, manually use the feature/#16-add-scenes-support branch.

I have tested the scene functionality during the afternoon. At first it worked fine, I could use the scenes and my lights were responding to it. Until I tried to turn on or off an individual lamp, it didn't work. After restarting the plugin and reconnecting it in Apple Home, everything gets the status not responding. I observe that when I change the name of a plug in the Kaku app, it does not update when I configure the ics-2000 bridge again in the Apple Home. The old name persist. It seems that the old name stays somewhere in a cache. The reload switch does not work anymore either.

In #23 someone else has the blacklist error tho. I probably broke something in the ICS-2000 lib. Gonna fix it this afternoon.

Further, I have the same problem with scenes working and lights not, will take a look at tho, but first fix the other issue.

Current state: I guess I fixed the issue of not controlling devices. It's not tested yet, but I fixed some stupid mistakes, so it should work.

Current state: I guess I fixed the issue of not controlling devices. It's not tested yet, but I fixed some stupid mistakes, so it should work.

I guess there is not a new beta release yet? When you release it i will test it.

Just released V1.2.0-beta.4

Released  V1.3.0-beta.3 where I fixed the bug you experienced in #23

Released V1.3.0-beta.3 where I fixed the bug you experienced in #23

Awesome seems to work fine! I will thoroughly test it during the weekend. Awesome beta release @youridijk

There is a bug to mention
The evening scene kicked off “all lights out” which went perfectly.
In the morning the morning scene kicked off no response. Because there was no logging, no idea what was happening. Also no other scene of device works.
After restarting the Bridge it worked again.

There is a bug to mention
The evening scene kicked off “all lights out” which went perfectly.
In the morning the morning scene kicked off no response. Because there was no logging, no idea what was happening. Also no other scene of device works.
After restarting the Bridge it worked again.

@youridijk  I run the beta release for a few days now. Besides the one time bug the scene functionality runs perfect. I think it is ready for a feature release buth that is up to you (-:

I guess something went wrong with rerunning setup at night. But glad to hear it works! Just added debug logging for scenes (turn on debug mode in settings to see more logging about everything). I guess it will work, but just making sure it works through a beta.

I guess something went wrong with rerunning setup at night. But glad to hear it works! Just added debug logging for scenes (turn on debug mode in settings to see more logging about everything). I guess it will work, but just making sure it works through a beta.

Where can i find the setting for debug mode? I have updates to beta 4 but don't see it in the settings of the pugin.

I have found a new issue:
After delete a scene in de kaku app the scene still persist in the Home app after using the reload switch. This also occurring after a restart.

Did you delete the cache for the scene device in homebridge? Could be possible that it is cached.

Did you delete the cache for the scene device in homebridge? Could be possible that it is cached.

Two minds think alike 😋

I tested it with my own installation. You need to remove the "device" (the scene that's added to Homebridge as a device) from the cache in the homebridge settings. After that, restart Homebridge en the scene will be removed.

Closing due inactivity.

authors: EdgarKooren MarijnDijks youridijk


text:
feat: RadioGroup (RadioButton) 컴포넌트 구현

1⃣ 어떤 작업을 했나요? (Summary)
RadioGroup (RadioButton) 컴포넌트를 구현했습니다.
피그마상 컴포넌트 네이밍은 RadioButton이지만,
실제로 단일 RadioButton으로 사용되는 경우는 없습니다.
따라서 RadioButton들의 목록을 쉽게 관리할 수 있도록
RadioGroup 컴포넌트로 대체하여 구현하였습니다.
( 다른 컴포넌트 라이브러리들도 RadioButton 대신 RadioGroup 을 구현하는 방식으로 진행함 )

resolved #142

기존 코드에 영향을 미치지 않는 변경사항
src/components/RadioGroup 를 추가했습니다.

기존 코드에 영향을 미치는 변경사항
시맨틱 토큰 semantic.color.lineBrandPrimary 를 추가했습니다.

버그 픽스
2⃣ 알아두시면 좋아요!
Tabs 컴포넌트의 사용법과 동일하게, useRadioGroup 훅을 호출하여 사용하는 방식입니다.
최대한 type-safe 하도록 구현했습니다.
const RadioGroup = useRadioGroup<'한국어' | '영어' | '일본어'>();

return (
  <RadioGroup size="medium">
    <RadioGroup.Item value="한국어">한국어</RadioGroup.Item>
    <RadioGroup.Item value="영어">영어</RadioGroup.Item>
    <RadioGroup.Item value="일본어">일본어</RadioGroup.Item>
  </RadioGroup>
);

3⃣ 체크리스트 (Checklist)

[x] main 브랜치의 최신 코드를 pull 받았나요?
[x] 빌드 체크 및 다른 프로젝트에서 의도한대로 작동하는지 확인

전반적으로 작성해주신 내용 종합해서,
focus 기능에 개선이 필요하다고 생각했고요.
따라서 다음과 같이 개선했어요.
https://github.com/user-attachments/assets/40c444c5-af5b-4786-aed8-c3ee4c3da7b1

tab 버튼으로 radiogroup focus는 1회만 가능하게 구현

단 focus 되는 radio는 현재 active 되어있는 radio로, active된 radio가 없다면 첫번째 radio로 구현했어요.

화살표 버튼으로 value 이동 가능하게 구현했어요. (value 이동시 outline 스타일 추가)

이유를 모르겠는데, 화살표로 선택된 value를 이동시키면 브라우저 기본 focus-outline 스펙이 꺼져버려서 강제로 스타일에 넣어주었어요

repo: yourssu/Handy-React


text:
New girl request.

Series: Nisekoi
Kirisaki Chitoge
Onodera Kosaki
Miyamoto Ruri
Tsugumi Seishirou
Tachibana Marika
Paula McCoy
Onodera Haru
Series: K-ON!
Akiyama Mio
Kotobuki Tsumugi
Nakano Azusa
Hirasawa Ui

If I'm not mistaken, this was already addressed in 45bb54b so can be closed.

authors: southrop vipirius

repo: yourwaifu/yourwaifu


text:
Adding a flag to run_local_database.py to allow populating the databa with initial random data.

@alainjobart
@dumbunny
Please take a look.

This change is

py/vttest/local_database.py, line 21 [r1] (raw file):
I suggest combining all of the randomized data flags into a single struct (initialize_with_random_data_options perhaps) to keep the constructor simple.

Comments from Reviewable

Review status: 0 of 3 files reviewed at latest revision, 3 unresolved discussions.

py/vttest/local_database.py, line 16 [r1] (raw file):
Done.

py/vttest/local_database.py, line 21 [r1] (raw file):
Done.

py/vttest/local_database.py, line 293 [r1] (raw file):
You're right. I was lazy. Changed. PTAL.

Comments from Reviewable

LGTM

authors: alainjobart erzel thompsonja

repo: youtube/vitess


text:
Pass "Flags" from MySQL field from the result set e.g. to preserve if integers are unsigned.

Adapted Java client so far, see second commit.
@alainjobart @henryanand

Pretty cool, LGTM on the C / go low level things. I'll let Anand review the java side...

LGTM

LGTM after addressing Sugu's comment on splitting the changes! Thanks for fixing this.

authors: alainjobart henryanand michael-berlin yaoshengzhe


text:
建议加入 web API

建议实现支持续写的流式WebAPI，
类似于 https://github.com/TylunasLi/ChatGLM-web-stream-demo/blob/main/chatglm_service_fastapi.py
支持续写是很强大的特性，可以让bot更加听话。如果能提供通用的webAPI，CreativeChatGLM 将成为很多AI应用的底层组件。
例如，用chatGLM实现纯离线部署的桌面猫娘、AI绘画tag润色器、翻译器、RPG文字冒险游戏的NPC。。。

需求get

相关 PR：https://github.com/ypwhs/CreativeChatGLM/pull/21

repo: ypwhs/CreativeChatGLM


text:
help(yt_dlp.YoutubeDL) result in KeyError: 'objclass' on Python

Checklist

[X] I'm reporting a bug unrelated to a specific site
[X] I've verified that I'm running yt-dlp version 2022.05.18 (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

Description
My code:
import json
import yt_dlp

URL = 'https://www.youtube.com/watch?v=BaW_jenozKc'

# ℹ See help(yt_dlp.YoutubeDL) for a list of available options and public functions
ydl_opts = {}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
    info = ydl.extract_info(URL, download=False)

    # ℹ ydl.sanitize_info makes the info json-serializable
    print(json.dumps(ydl.sanitize_info(info)))

help(yt_dlp.YoutubeDL)

My output:
$ python -u "c:\Users\user\Desktop\youtube_playlist_downloader\playlist_dowloader.py"
[youtube] BaW_jenozKc: Downloading webpage
[youtube] BaW_jenozKc: Downloading android player API JSON
{"id": "BaW_jenozKc", "title": "youtube-dl test video \"'/\\\u00e4\u21ad\ud835\udd50", "formats": [{"asr": 22050, "filesize": 59999, "format_id": "139", "format_note": "low", "source_preference": -1, "fps": null, "height": null, "quality": 2, "has_drm": false, "tbr": 48.071, "url": "https://rr2---sn-i3b7knsd.googlevideo.com/videoplayback?expire=1655386080&ei=gNuqYtiXN4O44gLfzo-QBQ&ip=42.200.184.162&id=o-AP99DoTlNbSTUj3XjQuWQIAI5Fz8xPwMhLwm-XHUI_n9&itag=139&source=youtube&requiressl=yes&mh=Rf&mm=31%2C29&mn=sn-i3b7knsd%2Csn-i3bssn7e&ms=au%2Crdu&mv=m&mvi=2&pl=22&initcwndbps=1293750&vprv=1&mime=audio%2Fmp4&gir=yes&clen=59999&dur=9.984&lmt=1387961817987635&mt=1655364297&fvip=5&keepalive=yes&fexp=24001373%2C24007246%2C24208265&c=ANDROID&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIhAI_actCS2VvIoCuPYLIkEGHDIsUSrVYV_EaUMqQvFdeoAiAVh9zu-_LkDWGN7IAB_w10hG5Sf2smK3Omgvplrx0kUw%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIhAIhrnLbREtbR1waDFD3LfnBf-T5CKofSlKfvr9R5SqcTAiAD1ZkPt_12Bgm3AKynvjxxJPi1vZ18LB86OaGoYedA6g%3D%3D", "width": null, "language": "", "language_preference": -1, "preference": null, "ext": "m4a", "vcodec": "none", "acodec": "mp4a.40.5", "dynamic_range": null, "abr": 48.071, "downloader_options": {"http_chunk_size": 10485760}, "container": "m4a_dash", "protocol": "https", "audio_ext": "m4a", "video_ext": "none", "format": "139 - audio only (low)", "resolution": "audio only", "http_headers": {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.74 Safari/537.36", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Accept-Language": "en-us,en;q=0.5", "Sec-Fetch-Mode": "navigate"}}, {"asr": 48000, "filesize": 59570, "format_id": "249", "format_note": "low", "source_preference": -1, "fps": null, "height": null, "quality": 2, "has_drm": false, "tbr": 48.425, "url": "https://rr2---sn-i3b7knsd.googlevideo.com/videoplayback?expire=1655386080&ei=gNuqYtiXN4O44gLfzo-QBQ&ip=42.200.184.162&id=o-AP99DoTlNbSTUj3XjQuWQIAI5Fz8xPwMhLwm-XHUI_n9&itag=249&source=youtube&requiressl=yes&mh=Rf&mm=31%2C29&mn=sn-i3b7knsd%2Csn-i3bssn7e&ms=au%2Crdu&mv=m&mvi=2&pl=22&initcwndbps=1293750&vprv=1&mime=audio%2Fwebm&gir=yes&clen=59570&dur=9.841&lmt=1506055615351916&mt=1655364297&fvip=5&keepalive=yes&fexp=24001373%2C24007246%2C24208265&c=ANDROID&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgNeuOQM57wrixIaZB7LrWWZz6wz8GYuYY1j0hcVmPN7YCIQDOoWOHKDnLPy0JfOD34q3djqRlg_jaKRA_YpJsU1BXTw%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIhAIhrnLbREtbR1waDFD3LfnBf-T5CKofSlKfvr9R5SqcTAiAD1ZkPt_12Bgm3AKynvjxxJPi1vZ18LB86OaGoYedA6g%3D%3D", "width": null, "language": "", "language_preference": -1, "preference": null, "ext": "webm", "vcodec": "none", "acodec": "opus", "dynamic_range": null, "abr": 48.425, "downloader_options": {"http_chunk_size": 10485760}, "container": "webm_dash", "protocol": "https", "audio_ext": "webm", "video_ext": "none", "format": "249 - audio only (low)", "resolution": "audio only", "http_headers": {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.74 Safari/537.36", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Accept-Language": "en-us,en;q=0.5", "Sec-Fetch-Mode": "navigate"}}, {"asr": 48000, "filesize": 77899, "format_id": "250", "format_note": "low", "source_preference": -1, "fps": null, "height": null, "quality": 2, "has_drm": false, "tbr": 63.326, "url":
"https://rr2---sn-i3b7knsd.googlevideo.com/videoplayback?expire=1655386080&ei=gNuqYtiXN4O44gLfzo-QBQ&ip=42.200.184.162&id=o-AP99DoTlNbSTUj3XjQuWQIAI5Fz8xPwMhLwm-XHUI_n9&itag=250&source=youtube&requiressl=yes&mh=Rf&mm=31%2C29&mn=sn-i3b7knsd%2Csn-i3bssn7e&ms=au%2Crdu&mv=m&mvi=2&pl=22&initcwndbps=1293750&vprv=1&mime=audio%2Fwebm&gir=yes&clen=77899&dur=9.841&lmt=1506055555143599&mt=1655364297&fvip=5&keepalive=yes&fexp=24001373%2C24007246%2C24208265&c=ANDROID&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgeOERJQWdgfKw0UK0cwrSu9QxEAc-_-8dR6JiXV-KRC8CIQDqx2qyK8H_rJevEBmb0D1oIkF393nqJgGLbbwZzfKb6Q%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIhAIhrnLbREtbR1waDFD3LfnBf-T5CKofSlKfvr9R5SqcTAiAD1ZkPt_12Bgm3AKynvjxxJPi1vZ18LB86OaGoYedA6g%3D%3D", "width": null, "language": "", "language_preference": -1, "preference": null, "ext": "webm", "vcodec": "none", "acodec": "opus", "dynamic_range": null, "abr":
63.326, "downloader_options": {"http_chunk_size": 10485760}, "container": "webm_dash", "protocol": "https", "audio_ext": "webm", "video_ext": "none", "format": "250 -
audio only (low)", "resolution": "audio only", "http_headers": {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.74 Safari/537.36", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Accept-Language": "en-us,en;q=0.5", "Sec-Fetch-Mode": "navigate"}}, {"asr": 44100, "filesize": 157753, "format_id": "140", "format_note": "medium", "source_preference": -1, "fps": null, "height": null, "quality": 3, "has_drm":
false, "tbr": 127.58, "url": "https://rr2---sn-i3b7knsd.googlevideo.com/videoplayback?expire=1655386080&ei=gNuqYtiXN4O44gLfzo-QBQ&ip=42.200.184.162&id=o-AP99DoTlNbSTUj3XjQuWQIAI5Fz8xPwMhLwm-XHUI_n9&itag=140&source=youtube&requiressl=yes&mh=Rf&mm=31%2C29&mn=sn-i3b7knsd%2Csn-i3bssn7e&ms=au%2Crdu&mv=m&mvi=2&pl=22&initcwndbps=1293750&vprv=1&mime=audio%2Fmp4&gir=yes&clen=157753&dur=9.891&lmt=1387961817989105&mt=1655364297&fvip=5&keepalive=yes&fexp=24001373%2C24007246%2C24208265&c=ANDROID&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRAIgZ0pJJXdLxjl9l59QmfENu3V11Jj3DXAzFgcb8PZVi0kCIFvnq-6O8IowIGgTTTAeaA-4eTwjNhREkdRwSsCmkQcH&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIhAIhrnLbREtbR1waDFD3LfnBf-T5CKofSlKfvr9R5SqcTAiAD1ZkPt_12Bgm3AKynvjxxJPi1vZ18LB86OaGoYedA6g%3D%3D", "width": null, "language": "", "language_preference": -1, "preference": null, "ext": "m4a", "vcodec": "none", "acodec": "mp4a.40.2", "dynamic_range": null, "abr": 127.58, "downloader_options": {"http_chunk_size": 10485760}, "container": "m4a_dash", "protocol": "https", "audio_ext": "m4a", "video_ext": "none", "format": "140 - audio only (medium)", "resolution": "audio only", "http_headers": {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.74 Safari/537.36", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8", "Accept-Language": "en-us,en;q=0.5", "Sec-Fetch-Mode": "navigate"}}, {"asr": 48000, "filesize": 142292, "format_id": "251", "format_note": "medium", "source_preference": -1, "fps": null, "height": null, "quality": 3, "has_drm": false, "tbr": 115.672, "url": "https://rr2---sn-i3b7knsd.googlevideo.com/videoplayback?expire=1655386080&ei=gNuqYtiXN4O44gLfzo-QBQ&ip=42.200.184.162&id=o-AP99DoTlNbSTUj3XjQuWQIAI5Fz8xPwMhLwm-XHUI_n9&itag=251&source=youtube&requiressl=yes&mh=Rf&mm=31%2C29&mn=sn-i3b7knsd%2Csn-i3bssn7e&ms=au%2Crdu&mv=m&mvi=2&pl=22&initcwndbps=1293750&vprv=1&mime=audio%2Fwebm&gir=yes&clen=142292&dur=9.841&lmt=1506055557712479&mt=1655364297&fvip=5&keepalive=yes&fexp=24001373%2C24007246%2C24208265&c=ANDROID&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig=AOq0QJ8wRQIgRBnTYQxG8QQhbC9lY-9DBg4PuDt_MSLY_NSwqAPP8PgCIQD52a9YKPbqgtw8WxsbGaw5zZhPGcfKYDou8oBZ3oUJeA%3D%3D&lsparams=mh%2Cmm%2Cmn%2Cms%2Cmv%2Cmvi%2Cpl%2Cinitcwndbps&lsig=AG3C_xAwRQIhAIhrnLbREtbR1waDFD3LfnBf-T5CKofSlKfvr9R5SqcTAiAD1ZkPt_12Bgm3AKynvjxxJPi1vZ18LB86OaGoYedA6g%3D%3D", "width": null, "language": "", "language_preference": -1, "preference": null, "ext": "webm", "vcodec": "none", "acodec": "opus", "dynamic_range": null, "abr": 115.672, "downloader_options": {"http_chunk_size": 10485760}, "container": "webm_dash", "protocol": "https", "audio_ext": "webm", "video_ext": "none", "format": "251 - audio only (medium)", "resolution": "audio only", "http_headers": {"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/95.0.4638.74 Safari/537.36", "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
"Accept-Language": "en-us,en;q=0.5", "Sec-Fetch-Mode": "navigate"}}, {"asr": 22050, "filesize": 57125, "format_id": "17", "format_note": "144p", "source_preference": -1, "fps": 12, "height": 144,
Traceback (most recent call last):
  File "c:\Users\user\Desktop\youtube_playlist_downloader\playlist_dowloader.py", line 18, in <module>
    help(yt_dlp.YoutubeDL)
  File "C:\Python310\lib\_sitebuiltins.py", line 103, in __call__
    return pydoc.help(*args, **kwds)
  File "C:\Python310\lib\pydoc.py", line 2006, in __call__
    self.help(request)
  File "C:\Python310\lib\pydoc.py", line 2065, in help
    else: doc(request, 'Help on %s:', output=self._output)
  File "C:\Python310\lib\pydoc.py", line 1785, in doc
    pager(render_doc(thing, title, forceload))
  File "C:\Python310\lib\pydoc.py", line 1778, in render_doc
    return title % desc + '\n\n' + renderer.document(object, name)
  File "C:\Python310\lib\pydoc.py", line 477, in document
    if _isclass(object): return self.docclass(*args)
  File "C:\Python310\lib\pydoc.py", line 1415, in docclass
    for name, kind, cls, value in classify_class_attrs(object)
  File "C:\Python310\lib\pydoc.py", line 300, in classify_class_attrs
    for (name, kind, cls, value) in inspect.classify_class_attrs(object):
  File "C:\Python310\lib\inspect.py", line 554, in classify_class_attrs
    homecls = getattr(get_obj, "__objclass__", homecls)
  File "C:\Python310\lib\site-packages\yt_dlp\utils.py", line 5333, in __getattr__
    return self._dict[attr]
KeyError: '__objclass__'

Verbose log
[debug] Command-line config: ['-vU']
[debug] Encodings: locale cp950, fs utf-8, pref cp950, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version 2022.05.18 [b14d523] (win_exe)
[debug] Python version 3.8.10 (CPython 64bit) - Windows-10-10.0.19044-SP0
[debug] Checking exe version: ffprobe -bsfs
[debug] Checking exe version: avprobe -bsfs
[debug] Checking exe version: ffmpeg -bsfs
[debug] exe versions: ffmpeg 2022-06-12-git-4d45f5acbd-essentials_build-www.gyan.dev (setts)
[debug] Optional libraries: Cryptodome-3.14.1, brotli-1.0.9, certifi-2021.10.08, mutagen-1.45.1, sqlite3-2.6.0, websockets-10.3
[debug] Proxy map: {}
Latest version: 2022.05.18, Current version: 2022.05.18
yt-dlp is up to date (2022.05.18)

Doesn't look like a yt-dlp issue, but something wrong with your Python installation. But to confirm, pls show the output of python -VV

me too, why? any one can run help(yt_dlp.YoutubeDL) or help(yt_dlp.postprocessor) but help(yt_dlp.postprocessor.PostProcessor)?
win 11, python 3.9  KeyError: 'objclass'
win 10, python 3.10 KeyError: 'objclass'

[debug] yt-dlp version 2022.05.18 [b14d523] (win_exe)

$ git show b14d523:yt_dlp/utils.py | cat -n | sed -ne '5325,5343p'
  5325
  5326	class Namespace:
  5327	    """Immutable namespace"""
  5328
  5329	    def __init__(self, **kwargs):
  5330	        self._dict = kwargs
  5331
  5332	    def __getattr__(self, attr):
  5333	        return self._dict[attr]
  5334
  5335	    def __contains__(self, item):
  5336	        return item in self._dict.values()
  5337
  5338	    def __iter__(self):
  5339	        return iter(self._dict.items())
  5340
  5341	    def __repr__(self):
  5342	        return f'{type(self).__name__}({", ".join(f"{k}={v}" for k, v in self)})'
  5343

This is why I never bother with silly fluff like Namespace.

nvm, I see what happened. It's already been fixed in master

The class Namespace has a __getattr__() method that raises KeyError when an unknown attribute is requested, but the system library getattr() function expects only AttributeError. This breaks when the inspector called by help() looks for the __objclass__ attribute.
This fixes the crash:
    def __getattr__(self, attr):
        if attr not in self._dict:
            raise AttributeError()
        return self._dict[attr]

This should too:
    def __getattr__(self, attr):
        try:
            return self._dict[attr]
        except KeyError:
            raise AttributeError()

locked_file.__getattr__() is fine because it just redirects to getattr() on another object _ -- unless it could be called before __init__()_ that sets the object.

To everyone want to solve this issue, just update your yt-dlp to the master bench version:
python3 -m pip install --force-reinstall https://github.com/yt-dlp/yt-dlp/archive/master.tar.gz

authors: dirkf fstirlitz fxavierho123 lionderful pukkandan

repo: yt-dlp/yt-dlp

license: Unlicense


text:
Support for Nebula Podcasts

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

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

Checklist

[X] I'm requesting a site-specific feature
[X] I've verified that I have updated yt-dlp to nightly or master (update instructions)
[X] I've checked that all provided URLs are playable in a browser with the same IP and same login details
[X] I've searched known issues and 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
USA
Example URLs
https://nebula.tv/probablynotaliens/its-probably-not-aliens-holiday-special-protocol-atlantis
Provide a description that is worded well enough to be understood
Nebula support works great for video links, but Nebula also hosts various podcasts. When providing yt-dlp with a Nebula podcast link, it tries to download a video associated with the link instead of the audio file.
Provide verbose output that clearly demonstrates the problem

[X] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] If using API, add 'verbose': True to YoutubeDL params instead
[X] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[debug] Command-line config: ['-vU', 'https://nebula.tv/probablynotaliens/its-probably-not-aliens-holiday-special-protocol-atlantis']
[debug] User config "/home/user/.config/yt-dlp/config": ['--netrc']
[debug] Encodings: locale UTF-8, fs utf-8, pref UTF-8, out utf-8, error utf-8, screen utf-8
[debug] yt-dlp version stable@2023.11.16 from yt-dlp/yt-dlp [24f827875] (debian*)
[debug] Python 3.10.12 (CPython x86_64 64bit) - Linux-6.6.6-76060606-generic-x86_64-with-glibc2.35 (OpenSSL 3.0.2 15 Mar 2022, glibc 2.35)
[debug] exe versions: ffmpeg 4.4.2 (setts), ffprobe 4.4.2, rtmpdump 2.4
[debug] Optional libraries: Cryptodome-3.11.0, brotli-1.0.9, certifi-2020.06.20, mutagen-1.45.1, pyxattr-0.7.2, requests-2.25.1, secretstorage-3.3.1, sqlite3-3.37.2, urllib3-1.26.5, websockets-9.1
[debug] Proxy map: {}
[debug] Request Handlers: urllib
[debug] Loaded 1901 extractors
[debug] Fetching release info: https://api.github.com/repos/yt-dlp/yt-dlp/releases/latest
Latest version: stable@2023.11.16 from yt-dlp/yt-dlp
yt-dlp is up to date (stable@2023.11.16 from yt-dlp/yt-dlp)
[nebula:channel] Logging in to Nebula with supplied credentials
[nebula:channel] Authorizing to Nebula
[nebula:channel] Extracting URL: https://nebula.tv/probablynotaliens/its-probably-not-aliens-holiday-special-protocol-atlantis
[nebula:channel] probablynotaliens: Retrieving channel
ERROR: [nebula:channel] probablynotaliens: Unable to download JSON metadata: HTTP Error 404: Not Found (caused by <HTTPError 404: Not Found>); please report this issue on  https://github.com/yt-dlp/yt-dlp/issues?q= , filling out the appropriate issue template. Confirm you are on the latest version using  yt-dlp -U
  File "/usr/lib/python3/dist-packages/yt_dlp/extractor/common.py", line 715, in extract
    ie_result = self._real_extract(url)
  File "/usr/lib/python3/dist-packages/yt_dlp/extractor/nebula.py", line 273, in _real_extract
    channel = self._call_nebula_api(channel_url, collection_id, auth_type='bearer', note='Retrieving channel')
  File "/usr/lib/python3/dist-packages/yt_dlp/extractor/nebula.py", line 48, in _call_nebula_api
    return inner_call()
  File "/usr/lib/python3/dist-packages/yt_dlp/extractor/nebula.py", line 43, in inner_call
    return self._download_json(
  File "/usr/lib/python3/dist-packages/yt_dlp/extractor/common.py", line 1069, in download_content
    res = getattr(self, download_handle.__name__)(url_or_request, video_id, **kwargs)
  File "/usr/lib/python3/dist-packages/yt_dlp/extractor/common.py", line 1033, in download_handle
    res = self._download_webpage_handle(
  File "/usr/lib/python3/dist-packages/yt_dlp/extractor/common.py", line 903, in _download_webpage_handle
    urlh = self._request_webpage(url_or_request, video_id, note, errnote, fatal, data=data, headers=headers, query=query, expected_status=expected_status)
  File "/usr/lib/python3/dist-packages/yt_dlp/extractor/common.py", line 860, in _request_webpage
    raise ExtractorError(errmsg, cause=err)

  File "/usr/lib/python3/dist-packages/yt_dlp/networking/_urllib.py", line 396, in _send
    res = opener.open(urllib_req, timeout=float(request.extensions.get('timeout') or self.timeout))
  File "/usr/lib/python3.10/urllib/request.py", line 525, in open
    response = meth(req, response)
  File "/usr/lib/python3.10/urllib/request.py", line 634, in http_response
    response = self.parent.error(
  File "/usr/lib/python3.10/urllib/request.py", line 563, in error
    return self._call_chain(*args)
  File "/usr/lib/python3.10/urllib/request.py", line 496, in _call_chain
    result = func(*args)
  File "/usr/lib/python3.10/urllib/request.py", line 643, in http_error_default
    raise HTTPError(req.full_url, code, msg, hdrs, fp)
urllib.error.HTTPError: HTTP Error 404: Not Found

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

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/yt_dlp/YoutubeDL.py", line 4052, in urlopen
    return self._request_director.send(req)
  File "/usr/lib/python3/dist-packages/yt_dlp/networking/common.py", line 114, in send
    response = handler.send(request)
  File "/usr/lib/python3/dist-packages/yt_dlp/networking/_helper.py", line 204, in wrapper
    return func(self, *args, **kwargs)
  File "/usr/lib/python3/dist-packages/yt_dlp/networking/common.py", line 325, in send
    return self._send(request)
  File "/usr/lib/python3/dist-packages/yt_dlp/networking/_urllib.py", line 401, in _send
    raise HTTPError(UrllibResponseAdapter(e.fp), redirect_loop='redirect error' in str(e)) from e
yt_dlp.networking.exceptions.HTTPError: HTTP Error 404: Not Found

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

Traceback (most recent call last):
  File "/usr/lib/python3/dist-packages/yt_dlp/extractor/common.py", line 847, in _request_webpage
    return self._downloader.urlopen(self._create_request(url_or_request, data, headers, query))
  File "/usr/lib/python3/dist-packages/yt_dlp/YoutubeDL.py", line 4074, in urlopen
    raise _CompatHTTPError(e) from e
yt_dlp.networking.exceptions._CompatHTTPError: HTTP Error 404: Not Found

Not sure if the site has changed or I overlooked something that requires art19 extractor, but it seems the podcast url can be directly extracted like this.
class NebulaPodcastIE(NebulaBaseIE):
    IE_NAME = 'nebula:podcast'
    _VALID_URL = rf'{_BASE_URL_RE}/(?!myshows|library|videos/)(?P<id>[-\w]+/[-\w]+)/?(?:$|[?#])'

    def _real_extract(self, url):
        slug = self._match_id(url)
        data = self._call_api(
            f'https://content.api.nebula.app/content/{slug}/?include=lessons',
            slug, note='Retrieving podcast episode')

        return traverse_obj(data, {
            'id': ('id', {str}),
            'url': ('episode_url', {url_or_none}),
            'title': ('title', {str}),
        })


text:
An error about my discord music bot

DO NOT REMOVE OR SKIP THE ISSUE TEMPLATE

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

Checklist

[X] I'm asking a question and not reporting a bug or requesting a feature
[X] I've looked through the README
[X] I've verified that I have updated yt-dlp to nightly or master (update instructions)
[X] I've searched known issues and the bugtracker for similar questions including closed ones. DO NOT post duplicates
[X] I've read the guidelines for opening an issue

Please make sure the question is worded well enough to be understood
import nextcord
from nextcord.ext import commands
from yt_dlp import YoutubeDL
class MusicCog(commands.Cog):
def init(self, bot):
self.bot = bot
    self.is_playing = False
    self.is_paused = False

    self.music_queue = []
    self.YDL_OPTIONS = {'format': 'bestaudio', 'noplaylist': 'True'}
    self.FFMPEG_OPTIONS = {'before_options': '-reconnect 1 -reconnect_delay_max 5', 'options': '-vn -bufsize 512k'}

    self.vc = None

def search_yt(self, item):
    with YoutubeDL(self.YDL_OPTIONS) as ydl:
        try:
            info = ydl.extract_info(f"ytsearch:{item}", download=False)['entries'][0]
        except Exception as e:
            print(f"Error in search_yt: {e}")
            return False
    return {'source': info['formats'][0]['url'], 'title': info['title']}

def play_next(self):
    if len(self.music_queue) > 0:
        self.is_playing = True

        m_url = self.music_queue[0][0]['source']

        self.music_queue.pop(0)

        self.vc.play(nextcord.FFmpegPCMAudio(m_url, loglevel='debug',executable="C:\ffmpeg\bin\ffmpeg.exe" ,**self.FFMPEG_OPTIONS), after=lambda e: self.play_next())

    else:
        self.is_playing = False

async def play_music(self, ctx):
    if len(self.music_queue) > 0:
        self.is_playing = True
        m_url = self.music_queue[0][0]['source']

        if self.vc == None or not self.vc.is_connected():
            self.vc = await self.music_queue[0][1].connect()

            if self.vc == None:
                await ctx.send("Ses kanalında değilsin")
                return
        else:
            await self.vc.move_to(self.music_queue[0][1])

        self.music_queue.pop(0)

        self.vc.play(nextcord.FFmpegPCMAudio(m_url, **self.FFMPEG_OPTIONS), after=lambda e: self.play_next())

    else:
        self.is_playing = False

@commands.command(name="play", aliases=['p'])
async def play (self, ctx, *args):
    query = " ".join(args)

    voice_channel = ctx.author.voice.channel
    if voice_channel is None:
        await ctx.send("Ses kanalına gir")
    elif self.is_paused:
        self.vc.resume()
    else:
        song = self.search_yt(query)
        if type(song) == type(True):
            await ctx.send("Şarkı indirilemiyor, yanlış format, başka bir değer dene")
        else:
            await ctx.send("Şarkı sıraya eklendi")
            self.music_queue.append((song, voice_channel))

            if self.is_playing == False:
                await self.play_music(ctx)

@commands.command(name="pause")
async def pause(self, ctx, *args):
    if self.is_playing:
        self.is_playing = False
        self.is_paused = True
        self.vc.pause()
    elif self.is_paused:
        self.vc.resume()

@commands.command(name="resume", aliases=['r'])
async def resume(self, ctx, *args):
    if self.is_paused:
        self.is_playing = True
        self.is_paused = False
        self.vc.resume()

@commands.command(name="skip", aliases=['s'])
async def skip(self, ctx, *args):
    if self.vc != None and self.vc:
        self.vc.stop()
        await self.play_music(ctx)

@commands.command(name="queue", aliases=['q'])
async def queue(self, ctx):
    retval = ""

    for i in range(0, len(self.music_queue)):
        if i > 4: break
        retval += self.music_queue[i][0]['title'] + '\n'

    if retval != "":
        await ctx.send(retval)
    else:
        await ctx.send("Sırada müzik yok")

@commands.command(name="clea",aliases=['cl'])
async def clear(self, ctx, *args):
    if self.vc != None and self.is_playing:
        self.vc.stop()
    self.music_queue = []
    await ctx.send("Müzik sırası temizlendi")

@commands.command(name="leave",aliases=['l'])
async def leave(self, ctx):
    self.is_playing = False
    self.is_paused = False
    await self.vc.disconnect()

This is my code
Provide verbose output that clearly demonstrates the problem

[ ] Run your yt-dlp command with -vU flag added (yt-dlp -vU <your command line>)
[ ] If using API, add 'verbose': True to YoutubeDL params instead
[ ] Copy the WHOLE output (starting with [debug] Command-line config) and insert it below

Complete Verbose Output
[youtube:search] Extracting URL: ytsearch:https://www.youtube.com/watch?v=XAlBW7VuqGw
[download] Downloading playlist: https://www.youtube.com/watch?v=XAlBW7VuqGw
[youtube:search] query "https://www.youtube.com/watch?v=XAlBW7VuqGw": Downloading web client config
[youtube:search] query "https://www.youtube.com/watch?v=XAlBW7VuqGw" page 1: Downloading API JSON
[youtube:search] Playlist https://www.youtube.com/watch?v=XAlBW7VuqGw: Downloading 1 items of 1
[download] Downloading item 1 of 1
[youtube] Extracting URL: https://www.youtube.com/watch?v=XAlBW7VuqGw
[youtube] XAlBW7VuqGw: Downloading webpage
[youtube] XAlBW7VuqGw: Downloading ios player API JSON
[youtube] XAlBW7VuqGw: Downloading android player API JSON
[youtube] XAlBW7VuqGw: Downloading m3u8 information
[youtube] XAlBW7VuqGw: Downloading MPD manifest
[download] Finished downloading playlist: https://www.youtube.com/watch?v=XAlBW7VuqGw
[out#0/s16le @ 000001e011ebc880] Output file does not contain any stream
Error opening output file pipe:1.
Error opening output files: Invalid argument
I get this error when I run the play command

Ideally provide a sample this without the discord stuff wrapped around this.
but just looking at the console output I noticed that you search for the YouTube url (basically putting it in the YouTube search field). What you get back is a list of videos, not a video. The list does not have any audio / video, because it is like what you get when you search for something on YouTube and did not click on anything yet.
To actually get some video, try getting the first video from the list. You might have to put it in yt-dlp again, not sure.

This is yt-dlp's bug tracker. This is not the place to ask for help with your code. Next time, make sure to give minimum reproducible code an not expect us to debug your entire code.

return {'source': info['formats'][0]['url'], 'title': info['title']}

You want info['url'], not info['formats'][0]['url']

To actually get some video, try getting the first video from the list.

They are doing that:

       info = ydl.extract_info(...)['entries'][0]

authors: Roddrein StefanLobbenmeier pukkandan


text:
[Stripchat] Add extractor

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] 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

In order to be accepted and merged into yt-dlp 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?

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

Description of your pull request and other information
Adds extractor for the webcam site, https://stripchat.com/

One thing I could use a little help on is how to allow Ctrl-C to work safely.
For example, if I use yt-dlp with a chaturbate.com address, and I run Ctrl+C, it cleans up safely and creates a working MP4 file. But using this extractor, if I Ctrl+C, I get an unusable MP4 file. If I let the stream end on its own accord (like when the model goes offline), the MP4 is fine.

After some debugging with folks in Discord, it doesn't look like it has anything to do with the extractor, but with the default downloader args sent to ffmpeg. So this should be ready for review.


text:
[post-processing] Refactor MoveFilesPP to respect non-video files

Description of your pull request and other information
Related to #9445, although it doesn't solve this comment https://github.com/yt-dlp/yt-dlp/issues/9445#issuecomment-2018724344 which I'll address in another PR.
Issue:
The MoveFilesAfterDownloadPP pre-processor  moves all files as expected, but it only updates the filepath for the main media file in the info dict. This means that file moves related to thumbnails and subtitles do take place, but the filepath for these entries in the info map isn't updated.
Example:
yt-dlp https://www.youtube.com/watch?v=UfmkgQRmmeE \
  --write-thumbnail \
  --output "%(title)s.%(ext)s" \
  --output "thumbnail:%(title)s-thumb.%(ext)s" \
  --print-to-file "after_move:%()j" output.json

After running the above command, you'll see that the thumbnail is correctly appended with -thumb on the filesystem, but the thumbnails section in output.json references the original non-thumb path.
Fix:
My approach roughly looks like this:

Remove all logic to do with files_to_move - that is no longer relevant
MoveFilesAfterDownloadPP has been updated to determine the final filename using prepare_filename

NOTE: this preserves all file extensions. So --write-all-thumbnail's indexed filenames work as expected

Once the new filename is determined, the file is moved and the new filepath is written to the appropriate entry in the info dict

Important to note that this PR only concerns itself with files that are moved as a standalone step (requested_subtitles, thumbnails, main media file). Files that are written straight to their final location (description, etc.) are not processed by MoveFilesAfterDownloadPP. This is the same behaviour as before but I wanted to call it out
I'll be the first to say that I'm NOT a Python guy, so please let me know if there are better ways to accomplish things.
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?

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

When I created this PP originally, the filepath keys in the respective dicts did not yet exist. Now that we have that, can't we use those as path to move from instead and completely get rid of __files_to_move?
I believe the path to move to can be obtained by running prepare_filename in the PP. Or would that not work? I believe the only path that is currently not saved inside the infodict is description/annotation (deprecated). We can save it in a new field like description_filename similar to infojson_filename. Let me know what you think.

That's a really good shout! I had tried something related to prepare_filename but I gave up on that approach when I found that the returned string didn't respect the file's extension.
Looking deeper, I see that gets handled elsewhere thanks to replace_extension. Knowing that, I'll look into that approach again! I'm not sure if it'd work for --write-all-thumbnails but I'll handle that explicitly if need be

@pukkandan Thanks for the tip - that ended up working out! I've updated the description and this is ready for re-review with a few notes:

This doesn't add the description_filepath (or annotation_filepath) changes you mentioned - I plan to make these changes as part of a followup PR since I didn't want to have this PR doing too many discrete things
This still doesn't fix the issue where the filepath for embedded thumbnails is written to the infojson - this will be another PR (or possible included in the description_filepath one I mentioned above)
If it helps, here's a command I was using for testing:

rm -f output.json && \
  ./yt-dlp.sh https://www.youtube.com/watch\?v\=Bx1AiQdMQro \
  --write-thumbnail \
  --convert-thumbnail jpg \
  --write-description \
  --write-subs \
  --write-auto-subs \
  --sub-langs en,de \
  --convert-subs srt \
  --output "%(title)s.%(ext)s" \
  --output "thumbnail:%(title)s-thumb.%(ext)s" \
  --output "subtitle:%(title)s-sub.%(ext)s" \
  --output "description:%(title)s-desc.%(ext)s" \
  --print-to-file "after_move:%()j" output.json

and I'd add in these as-needed:
  --write-all-thumbnails
  --paths "temp: <TODO: tmp directory here>"
  --no-overwrites

@pukkandan (not trying to rush this review, just letting you know where I'm at!)
I've been playing around with the followup PR(s) I want to make and I know the general approach I want to take for ensuring filepath-related data is accurate for all file types. I've also determined that those changes are somewhat dependent on this change so I'll wait until you're happy with this + it's merged before I put those up 🤙

No rush at all! Thank you for the feedback - I'll review and make those changes 👍

The .suffixes trick is unreliable [...]

Woof. I'm not sure how to solve that one in all cases, but I'll think about it. If I can't come up with anything maybe I'll add some one-off logic to handle the numeric indexed extensions from --write-all-thumbnails

If I can't come up with anything maybe I'll add some one-off logic to handle the numeric indexed extensions from --write-all-thumbnails

I also think we'll have to resort to that. Note that a similar issue exists for subtitles

Won't the current code break -P infojson: and -P description:?, or am I misreading?

Won't the current code break -P infojson: and -P description:?, or am I misreading?

I don't think so but I'll check again! The new code shouldn't touch anything that's written directly to its final filepath (like the .description file - see here)

@pukkandan Again, no rush but is there anything I can do here to make it easier to review and test? Let me know if I can help!

Hopefully this could get merged. It'll help plenty of people who downloads vids on to their external drives like me.

Hopefully this gets merged. It would be quite useful for those with external drives

@pukkandan @bashonly I've updated this to ensure it has the latest from master! Is there anything I can do to help with testing and hopefully getting this merged?

authors: Yankees4life kieraneglin pukkandan


text:
Can't find the youtube-dl package on WinGet package manager

Checklist

[X] I'm reporting a feature request
[X] I've verified that I'm running youtube-dl version 2020.05.29
[X] I've searched the bugtracker for similar feature requests including closed ones

Description
Hello, Can't find the youtube-dl package on WinGet package manager.
Please add youtube-dl to WinGet.
Thanks.
https://github.com/microsoft/winget-pkgs

WRITE DESCRIPTION HERE

https://github.com/microsoft/winget-pkgs/issues/1534

repo: ytdl-org/youtube-dl


text:
[KTH] Add new extractor for KTH play

Before submitting a pull request make sure you have:

[x] Searched the bugtracker for similar pull requests
[x] Read adding new extractor tutorial
[x] Read youtube-dl coding conventions and adjusted the code to meet them
[x] Covered the code with tests (note that PRs without tests will be REJECTED)
[x] 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
[x] New extractor
[ ] New feature

Description of your pull request and other information
This pull request adds an extractor for the KTH Play website. KTH Play is a website which KTH uses to publish lectures and other videos online. KTH is a university in Stockholm, Sweden.

This PR has been approved. Does that mean it is ready to be merged, or is there another step in the process?

After approving the changes I enabled the test workflow. I'm glad to see that test_KTH (test.test_download.TestDownload): ... ok for both Py 2.7 and 3.9, so I can now merge it with a good conscience.

I'm wondering when the next youtube-dl release will be made. I'm excited to see this go out :)

authors: ArniDagur dirkf


text:
classify cannot start job proxy as abort reason other

Map JobProxyFailed/CannotStartProcess to job abort reason "Other"
If we haven't found any more specific errors it's save to assume
that was a fluke and job should retry on this or other node.

Remove duplicate EErrorCode::JobProxyFailed
BuildJobProxyError() already wraps error with "JobProxyFailed".

Merge aftet https://github.com/ytsaurus/ytsaurus/pull/598

repo: ytsaurus/ytsaurus


text:
Add proxy option for yb-support-tool

For Some customers with security restrictions, its not supported to directly access public Servers from Database Servers.
Any connection attempted from DB nodes are sent to a Proxy/agent in-between (Inside Customer Infra) and then it gets forwarded to Yugabyte Files Server.
Filing this issue requesting to add Proxy Support (As an option when running yb-support-tool)

This seems straightforward - we may be able to enable this with a one-line change to the golang http client configuration:
https://stackoverflow.com/questions/51845690/how-to-program-go-to-use-a-proxy-when-using-a-custom-transport

authors: ckamaleo ionthegeek

repo: yugabyte/yb-tools


text:
🛑 CMS is down

In b2f7905, CMS ($CMS_SITE) was down:

HTTP code: 502
Response time: 1050 ms

Resolved: CMS is back up in 2cc19f6.

Resolved: CMS is back up in 7a09e5f.

repo: yukbid/upptime


text:
有时运行一会就会报错

Task exception was never retrieved
future: <Task finished name='Task-1' coro=<BLiver.listen() done, defined at /opt/homebrew/lib/python3.9/site-packages/blive/framework.py:195> exception=TypeError("'NoneType' object is not subscriptable")>
Traceback (most recent call last):
File "/opt/homebrew/lib/python3.9/site-packages/blive/framework.py", line 220, in listen
await asyncio.gather(tasks)
File "/opt/homebrew/lib/python3.9/site-packages/blive/framework.py", line 73, in process
return await asyncio.gather([f(ctx) for f in listeners])
File "/Users/huxinzhi/Developer/GitHub/blive/example/webhook.py", line 26, in listen_sc
username = msg.sender['name'] + '(' + str(msg.sender['id']) + ')'
File "/opt/homebrew/lib/python3.9/site-packages/blive/msg.py", line 182, in sender
medal_name=self.body["data"]["medal_info"]["medal_name"],
TypeError: 'NoneType' object is not subscriptable

目测sc的消息结构没大改动，你可以提供更多复现条件吗，源代码已经增加鲁棒性，尝试 pip install -U blive 升级包，升级后没问题的话我会在一周后关闭这个issue

谢谢，好的，我晚上再试一下。
原来的复现条件 ：  在 crtl+c 终止后，马上开启大概率会遇到报这种错，第二次可以正常启动
想问一下，在app.on内部执行 request 会有问题吗
@app.on(Events.SUPER_CHAT_MESSAGE)
def listen_sc(ctx: BLiverCtx):
    msg = SuperChatMsg(ctx.body)
    …
    requests.post(webhook_url, json=data)
app.run()

新版本应该没这样的问题了，异步方法内调用同步没啥大问题，建议传递requests超时时间参数防止阻塞太久。

还有问题吗

我发现，好像是网络断线的问题，今天网不好，一直遇到这个错误，能不能增加一个自动重连的功能

一直有的，能说一下什么错误导致程序down掉吗或者报错截图之类的，可能是有些网络超时异常没捕获到

我猜应该是你用的requests库抛出的网络中断错误导致程序挂掉，这种得你自己try catch了

报错截图

跟之前的错误 一样，我之前以为好了，今天下雨，可能网络会差一点，但是看直播还是很流畅的 ，系统开了clash 的 规则 代理
报错文字
Task exception was never retrieved
future: <Task finished name='Task-1' coro=<BLiver.listen() done, defined at /opt/homebrew/lib/python3.9/site-packages/blive/framework.py:195> exception=TypeError('can only concatenate str (not "NoneType") to str')>
Traceback (most recent call last):
  File "/opt/homebrew/lib/python3.9/site-packages/blive/framework.py", line 220, in listen
    await asyncio.gather(*tasks)
  File "/opt/homebrew/lib/python3.9/site-packages/blive/framework.py", line 73, in process
    return await asyncio.gather(*[f(ctx) for f in listeners])
  File "/Users/huxinzhi/Developer/GitHub/blive/example/webhook.py", line 38, in listen_sc
    'description': price + '\t发送给: ' + anchor_uname + '\t发送时间: '+start_time,
TypeError: can only concatenate str (not "NoneType") to str

运行的代码，自己写了一个python3的文件，就把 SC 转发到discord 的频道里
from blive import BLiver, Events, BLiverCtx
from blive.msg import SuperChatMsg
import requests
import time
# 转发弹幕

app = BLiver(22637261)  # 嘉然

webhook_url = 'xxxxxxxxx'

@app.on(Events.SUPER_CHAT_MESSAGE)
async def listen_sc(ctx: BLiverCtx):
    msg = SuperChatMsg(ctx.body)
    # description = (
    #     f"\n感谢 {msg.sender['name']}({msg.sender['medal']['medal_name']}:{msg.sender['medal']['medal_level']})的价值 {msg.price} 的sc\n\n\t{msg.content}\n"
    # )

    username = msg.sender['name'] + ' (uid: ' + str(msg.sender['id']) + ') 转发'
    # 颜色 需要 16 进制转 10 进制 字符串
    color = str(int(msg.color[1:], 16))
    start_time = time.strftime(
        '%Y-%m-%d %H:%M:%S', time.localtime(msg.start_time))
    # 粉丝牌的主播名字
    anchor_uname = msg.anchor_uname
    price = '¥' + str(msg.price)

    data = {
        'username': username,
        'avatar_url': msg.avatar_url,
        'embeds': [{
            'title': msg.content,
            'description': price + '\t发送给: ' + anchor_uname + '\t发送时间: '+start_time,
            'color': color
        }]
    }
    print(start_time + '\t' + anchor_uname + '\t' +
          username + ':' + price + '\t' + msg.content)

    requests.post(webhook_url, json=data)  # 转发利用 webhook 到discord

# 启动
app.run()

然后在 msg.py 文件增加了几个自己需要的数据段
    @property  # 头像
    def avatar_url(self):
        return dict_chain_get(self.body, "data.user_info.face")

    @property
    def anchor_uname(self):
        return dict_chain_get(self.body, "data.medal_info.anchor_uname")

    @property  # 背景色
    def color(self):
        return dict_chain_get(self.body, "data.background_bottom_color")

我猜应该是你用的requests库抛出的网络中断错误导致程序挂掉，这种得你自己try catch了

hh，我去百度一下

msg.py 增加的字段你乐意的话可以提pr给我，NoneType那个错误只能说不要用+号拼接字符串，可以用 python的 f-string 这种写法。因为sc消息得到的你要拼接的某些值可能就是None。用+号拼接None就会抛出错误

再问一下是监听sc基本都能成功只是偶尔报错还是只要遇到sc就报错。如果是偶尔的话应该就是弹幕某个属性恰好为None，如果只要遇到sc就报错的话可能是属性没有获取对

新的错误测试，hh，运行时关掉代理，
future: <Task finished name='Task-1' coro=<BLiver.listen() done, defined at /opt/homebrew/lib/python3.9/site-packages/blive/framework.py:195>
exception=TypeError('catching classes that do not inherit from BaseException is not allowed')>
Traceback (most recent call last):
  File "/opt/homebrew/lib/python3.9/site-packages/urllib3/connectionpool.py", line 696, in urlopen
    self._prepare_proxy(conn)
  File "/opt/homebrew/lib/python3.9/site-packages/urllib3/connectionpool.py", line 964, in _prepare_proxy
    conn.connect()
  File "/opt/homebrew/lib/python3.9/site-packages/urllib3/connection.py", line 416, in connect
    self.sock = ssl_wrap_socket(
  File "/opt/homebrew/lib/python3.9/site-packages/urllib3/util/ssl_.py", line 449, in ssl_wrap_socket
    ssl_sock = _ssl_wrap_socket_impl(
  File "/opt/homebrew/lib/python3.9/site-packages/urllib3/util/ssl_.py", line 493, in _ssl_wrap_socket_impl
    return ssl_context.wrap_socket(sock, server_hostname=server_hostname)

报错在 195行 ， 猜测，还是需要一个全局处理异常

这个属于new feature了，全局异常处理这个我考虑一下怎么加进去，你如果有最佳实践也欢迎提pr

https://github.com/yulinfeng000/blive/issues/3#issuecomment-1159731985

再问一下是监听sc基本都能成功只是偶尔报错还是只要遇到sc就报错。如果是偶尔的话应该就是弹幕某个属性恰好为None，如果只要遇到sc就报错的话可能是属性没有获取对

有可能，有些人就喜欢发空白SC
只运行了这一个监听模块， 监听sc基本都能成功只是偶尔报错，报错就停止运行了

那应该属性是拿对了，你可以避免使用+号拼接而改用 f-string 这样的写法，可以避免拼接None而抛出错误导致程序挂掉

问一下，怎样才能调用项目里的blive ，我用的是vs code，每次调用都是 pip3 里安装的blive，我想做一些修改，只能到 pip3 里面直接修改，不能用到git 的功能
from ..blive import BLiver, Events, BLiverCtx
from ..blive.msg import SuperChatMsg

报错，好像在直接运行的py文件是不能使用相对引用的
ImportError: attempted relative import with no known parent package

拷贝源代码的blive文件夹到项目里，卸载pip安装的blive包


text:
Need help for Implicit and Explicit wait in AdvancedSharpAdbClient

What can we do for you?
While working with AdvancedSharpAdbClient , for android element automation, sometimes few elements not loaded properly, or the elements configuration not matches, so there may be the any reason, so for that we want to wait for the element will appear or something like  wait.until(ExpectedConditions.visibilityOf(), so for that we want explicit wait. So I request if anything is already then it will be good or plz suggest the solution for this.
Advance Thanking you...

I think this is a feature request which need use this template......
(Why everyone use help-want template to create issues. 😂😂😂

Yes, this feature is already implemented, you can specify the waiting time with the third argument
Element el = client.FindElement(device, "//node[@text='Login']", TimeSpan.FromSeconds(5)); - wait for element 5 second and return null if element not found

authors: nishikantkamble wherewhere yungd1plomat


text:
itsm: limit memory to 1G

/cc @wanyaoqi @zhaoxiangchun

3.2

/lgtm
/approve

authors: wanyaoqi zexi

repo: yunionio/onecloud-operator


text:
Automated cherry pick of #1294: fix: user-show system user not found

Cherry pick of #1294 on release/2.10.0.
#1294: fix: user-show system user not found

/lgtm
/approve

/lgtm
/approve

authors: Zexi swordqiu wanyaoqi

repo: yunionio/onecloud


text:
Automated cherry pick of #5850: fix: allow any character in project/domain name, giveup displayname

Cherry pick of #5850 on release/3.1.
#5850: fix: allow any character in project/domain name, giveup displayname

Codecov Report

:exclamation: No coverage uploaded for pull request base (release/3.1@aed78bb). Click here to learn what that means.
The diff coverage is n/a.

@@              Coverage Diff              @@
##             release/3.1   #5851   +/-   ##
=============================================
  Coverage               ?   7.45%
=============================================
  Files                  ?     583
  Lines                  ?   98517
  Branches               ?       0
=============================================
  Hits                   ?    7346
  Misses                 ?   90599
  Partials               ?     572

Flag
Coverage Δ

#aFlag
7.45% <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 aed78bb...e94e63d. Read the comment docs.

authors: codecov-io swordqiu


text:
Feature & Fix for Notify

这个 PR 实现什么功能/修复什么问题:
feature:

replace VerifiedContactTypes with VerifiedInfos in ReceiverDetails
support trigger-verify for feishu, dingtalk and workwx
add VerifiedNote for SSubContact
break down error from UseridByMobile
Add TNotifyChannel const of robot @zhaoxiangchun

fix:

set default priority 'normal' when creating notification
mark verified not enabled in MarkContactTypeVerified
allow user list receivers
use AfterSend for contact with succuessful sending

others:
hide SSunContact webconsole

是否需要 backport 到之前的 release 分支:

release/3.4

/area notify
/cc @zexi @zhaoxiangchun

/lgtm

/lgtm
/approve

authors: rainzm zexi zhaoxiangchun


text:
fix: allow create disk prefer manager

这个 PR 实现什么功能/修复什么问题:
fix: allow create disk prefer manager

[x] 功能、bugfix描述
[x] 冒烟测试
[ ] 单元测试编写

是否需要 backport 到之前的 release 分支:

release/3.4

/area region
/cc @zexi

Codecov Report

Merging #8107 into master will increase coverage by 8.03%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #8107      +/-   ##
==========================================
+ Coverage    9.19%   17.23%   +8.03%
==========================================
  Files         221       71     -150
  Lines       28882     7916   -20966
==========================================
- Hits         2657     1364    -1293
+ Misses      25976     6452   -19524
+ Partials      249      100     -149

Flag
Coverage Δ

#aFlag
17.23% <ø> (+8.03%)
:arrow_up:

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

Impacted Files
Coverage Δ

pkg/cloudcommon/db/lockman/fifo.go
76.92% <0.00%> (-7.70%)
:arrow_down:

pkg/cloudcommon/db/project_resources.go

pkg/cloudcommon/db/jointbase.go

pkg/monitor/tsdb/models.go

pkg/util/seclib2/certfile.go

pkg/cloudprovider/waitstatus.go

pkg/lbagent/models/haproxy.go

pkg/compute/regiondrivers/managedvirtual.go

pkg/cloudcommon/db/query.go

pkg/cloudcommon/db/external.go

... and 141 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 9c1c21e...ca8995e. Read the comment docs.

/lgtm
/approve

authors: codecov-commenter ioito zexi


text:
补充缺失的task stage

这个 PR 实现什么功能/修复什么问题:
补充缺失的task stage
是否需要 backport 到之前的 release 分支:

release/2.10.0
release/2.9.0
release/2.8.0
release/2.7.0
release/2.6.0

/cc @swordqiu @yousong

/cherrypick release/2.10.0

/cherrypick release/2.9.0

/cherrypick release/2.8.0

/cherrypick release/2.7.0

/cherrypick release/2.6.0

Codecov Report

Merging #932 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff            @@
##           master    #932      +/-   ##
=========================================
+ Coverage    7.61%   7.62%   +<.01%
=========================================
  Files         357     357
  Lines       55591   55591
=========================================
+ Hits         4236    4239       +3
+ Misses      50957   50955       -2
+ Partials      398     397       -1

Flag
Coverage Δ

#aFlag
7.62% <ø> (ø)
:arrow_up:

Impacted Files
Coverage Δ

pkg/util/rbacutils/rabc.go
73.86% <0%> (+1.13%)
:arrow_up:

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 ae49f3c...6de9a24. Read the comment docs.

/lgtm
/approve

authors: codecov-io ioito swordqiu


text:
Automated cherry pick of #11284: fix(glance): add option of s3 image status check

Cherry pick of #11284 on release/3.7.
#11284: fix(glance): add option of s3 image status check

Codecov Report

Merging #11285 (ec926f9) into release/3.7 (0ff3997) will increase coverage by 5.18%.
The diff coverage is 0.00%.

@@               Coverage Diff                @@
##           release/3.7   #11285       +/-   ##
================================================
+ Coverage         5.98%   11.16%    +5.18%
================================================
  Files              848      147      -701
  Lines           131795    16961   -114834
================================================
- Hits              7887     1894     -5993
+ Misses          123206    14874   -108332
+ Partials           702      193      -509

Flag
Coverage Δ

aFlag
11.16% <0.00%> (+5.18%)
:arrow_up:

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

Impacted Files
Coverage Δ

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

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

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

pkg/baremetal/tasks/baseprepare.go
0.00% <0.00%> (ø)

pkg/baremetal/tasks/bm_register.go
0.00% <0.00%> (ø)

pkg/baremetal/tasks/ipmiprobe.go
0.00% <0.00%> (ø)

pkg/baremetal/tasks/stop.go
0.00% <0.00%> (ø)

pkg/cloudcommon/validators/validators.go
62.39% <0.00%> (-0.69%)
:arrow_down:

pkg/monitor/alerting/conditions/reducer.go
77.27% <0.00%> (-13.94%)
:arrow_down:

pkg/webconsole/command/kube_command.go
27.14% <0.00%> (-5.07%)
:arrow_down:

... and 726 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 43faf5a...ec926f9. Read the comment docs.

authors: codecov-commenter zexi

repo: yunionio/yunioncloud


text:
JupyterHub 4 support requires some maintenance in hubtraf it seems

I ran into an assertion error when bumping jupyterhub to version 4 in TLJH where hubtraf is used for testing https://github.com/jupyterhub/the-littlest-jupyterhub/pull/881.

I figure this is related to https://github.com/jupyterhub/jupyterhub/pull/4032, which is also featured in the 4.0.0 changelog:

Often-problematic header-based checks for cross-site requests have been replaces with more standard use of XSRF tokens. Most folks shouldn’t notice this change, but if “Blocking Cross Origin API request” has been giving you headaches, this should be much improved.

Related code
https://github.com/yuvipanda/hubtraf/blob/3e8f31f446c21013fec5c7b15399dacafe61e97c/hubtraf/user.py#L211-L216

We seem to have a failure on TLJH's main branch still pinning jupyterhub==3.*, but I still suspect tljh fails to pin in the tests and its still jupyterhub 4 involved in this.

repo: yuvipanda/hubtraf


text:
Update Expeditions.xml

Translated Expeditions 24 and 40.
Moved Expedition Names to description.

Oops, didn't mean to pull request...

I merged this pull-request in my local, unknow why github don't update this pr to merged...

authors: SuperScoops yuyuvn

repo: yuyuvn/KanColleViewer


text:
How to change fonts and text colours?

In the README I saw that

The UI can be configured via configuration file to customize its font size and color. The default config file is .stash_config or stash.cfg under StaSh installation root.

However I have no ideas how to change and I could'nt find a sample stash.cfg.

@halloleo Did you try running easy_config and it didn’t work?

Oh, actually I see that once you make a change using easy_config, the option becomes unavailable to further changes—is that the issue you were talking about?

Thanks @treyharris. I will look whether I can find the file ~/Documents/site-packages/stash/.stash_config.

authors: halloleo treyharris

repo: ywangd/stash


text:
Possibility of WCF Extension? (enhancement/question)

Good Day,
I've been following up and coming IoC containers, one of w for a while now; this led me is yours and I was curious if you had any plans on creating a "stashbox" extension for the wcf service platform. I have sufficient experience in "IoC" concepts and would be willing to start the groundwork for such an endeavor if you're interested.
Either way, I've been very impressed by the work you've done with stashbox over the last couple months, here's hoping it gets some traction within the foreseeable future.

Hey!
Thanks for the feedback, sure, i'm very interested and would be very happy to see and help with the creation of the extension you mentioned. Feel free to start working on it and contact me if you'd have any questions or need some support!

Hi,
So I began worked on the extension this past weekend and have made a fair amount of progress, however I was exploring an approach by which I would attempt to get the registration info of the registered WCF service type from the container but I am having a bit of trouble.
Goal: Determine if service is registered as singleton or not so as to perform certain validation checks since we do not have full control of service instance through WCF pipeline,
Info Required: Lifestyle configuration if any, TypeInformation (not required but helpful).
Retrieval Via: ServiceType.
Would you be able to assist me on the best approach to retrieve the above information?
Thanks!

Also, is container.CanResolved(Type serviceType) equivalent to other IoC containers "container.IsRegistered(Type serviceType)" ? If not, what should I use to gather that information?

Hi,
Thanks, i'm very happy to hear that you are started to work on the WCF extension. :)
The CanResolve will only tell you whether a service type  can be resolved by the container or not, even if the given type itself isn't registered into the container, but any of the resolvers are capable to resolve it. I mean it'll say true if you ask with some kind of wrapped type like IEnumerable or something else which can be handled by the container.
In the meantime, regarding to your request i moved some registration state information to public scope, so the info you need now can be grabbed by reading from the RegistrationRepository e.g.:
 var reg = container.ContainerContext.RegistrationRepository.GetAllRegistrations().FirstOrDefault(r => r.ServiceType /* or you can check the implementation type as well by writing r.ImplementationType */ == typeof(IService));

This will return an IServiceRegistration for you which contains the Lifetime as well, please check that there is enough info for you and please let me know if you need more. It's under the Infrastructure/Registration folder.
The changes i mentioned only available on my preview nuget feed (https://www.myget.org/F/pcsajtai/api/v3/index.json or https://www.myget.org/F/pcsajtai/api/v2) yet, i'm planning to create a new release soon which will contain them also but first i'd like to finish my current tasks.
I'm currently working on the refactor branch so you can check the interface there, and if you'd like feel free to open new branches, the ci process will push preview packages from them to that nuget feed as well.
Thanks!

Hi,
Thank you for the detailed response, I went ahead and looked at the updates to IServiceRegistration that you mentioned and it indeed has all the information I need. Thank you!
So I believe I'm mostly complete with the extension, just waiting for your latest changes to be pushed to the official nuget feed so I can include it as part of the extension.
When you get a moment could you create an empty repository under your account named
"stashbox-extension-wcf". Once you do, I'll branch it and push the implementation I have and create a pull request for you to review.
Also, I don't have any experience with appveyor and very little with setting up a nuget package so most likely I'll be requiring your assistance with those.
Thanks again.

Hi,
Sure, i pushed the new version yesterdey to nuget.org so probably you are now able to use it.
I think that project belongs to you more than me, so what do you think about creating your own repository and i would be happy to join to it as a contributor, and help with the appveyor configuration and nuget generation, which i think also belongs to you so if you'd like, you can create your own account for them as well. Appveyor supports the authentication with github credentials and nuget.org supports microsoft live account, so you don't have to create really new accounts but use existing ones.
What do you think about this approach?
In the meantime i also created a stashbox slack team for easier communication about the project, if you think i can send you an invitation.
Thanks!

Hi,
If you're ok with that approach then I am honored to host and maintain the extension. I went ahead and created both appveyor and nuget.org accounts so that they have available when we get a chance to configure the builds and nuget feeds. Also, yes you can send an invitation for the stashbox slack team
to "abj.developer@gmail.com". Thanks.
I've added you as a collaborator to the project, for the remainder of the week I'll be working on the unit tests and setting up a sample project to demonstration configuration options.
My apologies for the late reply, this past weekend was a bit busy. Oddly enough I tend to have more time during the week than on the weekends, go figure.

Closing and continuing discussion on Stashbox slack team.


text:
Why use sessionStorage over localStorage

Is there a reason to use sessionStorage over localStorage to optimize for repeat visits? My understanding is that using sessionStorage only optimizes for repeat visits within the same window (so not even new tab), while localStorage could also for repeat visits after the window is closed or a new tab is opened.
Am I missing something?

It’s mostly a personal preference based on cache invalidation assumptions. We’re using this flag as a loose approximation of having the font files in cache. It’s all in how you’d like it to fail, when it does.

sessionStorage will request more often than it needs but is unlikely to fail with a false positive
localStorage will request less often but is more likely to false positive (thinks it’s in cache when it isn’t)

Of course this could be improved with serviceworker, too :+1:

authors: TxHawks zachleat

repo: zachleat/web-font-loading-recipes


text:
Attribute 's_hr' for pitchers

The docs list 's_hr' as an attribute for both batter and pitcher objects, but it doesn't seem to exist for pitchers.

Fixed in commit 2f08e213eac72316a53ecc4b8cfc611548515866 and will make it into the next release. Thanks for reporting this issue!


text:
isbug: proces restarts after dowload and encoding

➜ python main.py
Logging into Reddit...
Log in success! Retrieving post info...
Scraping reddit success! Returning list of info back to main.
Video chosen:
url https://v.redd.it/bkhxvxbfslcb1
title Little man wasn't about to be denied again...
author thejeffroc
Attempting to download reddit video...

Connecting...
Scraping...
Downloading and Re-encoding...
Video:

[██████████████████████████████████████████████████] [6.43/6.43 MB]
Audio:
[██████████████████████████████████████████████████] [0.90/0.90 MB]
Done
Download success!
Moviepy - Building video temp_clips/output.mp4.
MoviePy - Writing audio in outputTEMP_MPY_wvf_snd.mp4
MoviePy - Done.
Moviepy - Writing video temp_clips/output.mp4

Moviepy - Done !
Moviepy - video ready temp_clips/output.mp4
An error occurred in main() on attempt 1: Expecting value: line 1 column 1 (char 0)
Logging into Reddit...
Log in success! Retrieving post info...
**Here its re-starts download **
and i have to intervene to stop the process.

their were some errors in my client_secrets.json
but a more verbose error message , would be great

I agree, thank you for bringing it up to my attention. I just implemented more verbose error messaging :)

repo: zackmawaldi/YouTube-shorts-generator


text:
bubble_sort.cpp

please review it!

@zahinekbal  mam please check.

I revert your pull request..

If you wanna make just do it again nd update your PR

@zahinekbal  mam i think you should  check once
I have not created the foldere

I just added my code

repo: zahinekbal/codeWith-hacktoberfest


text:
Single public library

I personally think that it does not make much sense to include multiple public libraries for this package since it is a relatively small one, especially since one is likely to use Option and Result together.
In general, I also think it is more intuitive if there is just one library to import a component of some package from.

Hi Manuel,
I apologize, I never saw any notifications for all of your PRs being opened or committed to until now when you've closed them all. I don't know how I managed to miss them as I am generally pretty on top of my GitHub notifications. Thank you for taking the time to work on this.
I've taken a cursory glance at the PRs and I'm seeing a lot of changes that don't really fit well for me, but some that do. When I get the chance I will see about adopting the changes I feel good about if I can find the opportunity. For some of them it's harder to see what changes you've made due to dartfmt being used and ruining the diffs (I can't stand dartfmt's style, I can't even really read code formatted with it, my eyes can't follow it at all lol), so that may present a challenge.

Hi Zack,
No problem ;) sometimes we are so busy and it can happen. You are welcome :)
Due to absence of feedback, I eventually ended up forking your library. Here you can find my fork https://pub.dev/packages/nidula. I added some nice sections like VSCode snippets (in my experience, they can replace the need for the value getters val, value, ...). Also, I reimplemented the parallel to the Rust's try operator: it is the try_ method instead of unwrap. This way, like in Rust, unwrap simply panics if called on an Err or None value. I also made it compile time safe by introduction of tokens (although slightly "ugly", it definitely serves its purpose: it is much better to avoid propagated error type mismatches at runtime). Another thing i changed is I added some commas to the source code, so when the code is formatted it is easier to read the pattern-matching parts of code (every case has its own line instead of condensing them together). You can have a look at my implementation.
Initially I thought it would be better to exclude nullable types (see this PR https://github.com/zajrik/option_result/pull/6), however I later changed my mind. It is fine to keep nullable types. Through extensions, I added methods e.g. toNullable just to Option<T extends Object>.
Regarding dartfmt, would it be possible to disable it in .vscode/settings.json  and maybe also include your indentation preferences? You should definitely include it in the repo, otherwise it is hard for others to contribute to your repo.

authors: manuel-plavsic zajrik