feat(core): add notification feedback with angular-ui-notification

feat(core): add notification feedback with angular-ui-notification
Added visual notification for user/article updates
angular-ui-notification config added to core client config
Notification idea from #369

Coverage increased (+0.04%) to 73.268% when pulling 71dd2de3b6098bac8f094ce493a741a9903467eb on sujeethk:visualfeedback into e3eafa6131ad799b77ada6e3bf1202fc686e0735 on meanjs:master.

I'm not 100% sold on the need for adding a new library to the framework, just to have a toastr feature. However, this implementation is pretty light-weight & if others are find with adding this, then I'm OK with it.
@meanjs/contributors @Wuntenn @hyperreality @simison WDYT?

Toastr seems like a great library otherwise but it requires jQuery. :-(
In general some kind of notifications seem like a basic enough feature for this boilerplate.

It seems like this PR is trying to fix many issues and should be divided to 3 different PRs, or did I understand something wrong?

@simison I agree about separating this out into multiple PR's.
So the angular-toastr library uses JQuery? That is a bummer.
I'd rather see a more robust notification system with SocketIO. Although with my app I use a Notification service that uses SocketIO, which pops toasts. It was a big implementation, and I'm not even sure I handled it all correctly.
Having some sort of notification would be great though.

Similar (size/features/maintained) to Toastr but angular-only: https://github.com/alexcrack/angular-ui-notification

Coverage increased (+0.04%) to 73.268% when pulling 88413c78a8e3a7773506002c3bb66a8490124592 on sujeethk:visualfeedback into e3eafa6131ad799b77ada6e3bf1202fc686e0735 on meanjs:master.

I finding toasts really useful in MD and @simison's last link (angular-ui-notification) doesn't need JQuery which is a plus. They make all kinds of errors more consistent across the site and save loads of unnecessary headache wondering how to present stuff - I'd say it's a good call.
I removed UIB from my project and replaced it with Angular Material Design a few months back. There's quite a lot of tools that are directly interchangeable with UIB's own and toasts are one of the additional features that I didn't realise how good they were until I started using them.
I'm not sure if or when a move to MD is on the cards for MeanJS (I'd be happy to put together a PR) It's worth looking into. You also get a load of ARIA support and notifications in the console if you don't meet a requirement (usually this means filling in some element attribute). This means you get to create more inclusive experiences as you go without tons of upfront research into ARIA.

Split the PR, this one takes care of the notification. I can open seperate PR for the fixes.
Took your advice and switched library to angular-ui-notification and kept it simple

Coverage increased (+0.04%) to 73.268% when pulling d607bf4ffa62e768faddd8f724be48639cc2ead1 on sujeethk:visualfeedback into e3eafa6131ad799b77ada6e3bf1202fc686e0735 on meanjs:master.

Coverage increased (+0.04%) to 73.268% when pulling d607bf4ffa62e768faddd8f724be48639cc2ead1 on sujeethk:visualfeedback into e3eafa6131ad799b77ada6e3bf1202fc686e0735 on meanjs:master.

Coverage increased (+0.04%) to 73.268% when pulling d607bf4ffa62e768faddd8f724be48639cc2ead1 on sujeethk:visualfeedback into e3eafa6131ad799b77ada6e3bf1202fc686e0735 on meanjs:master.

@mleanos What's the benefit of having socket.io notifications over just Angular controller handling them?

@simison I have notifications that come from the server, not just the client-side. I opted for a client-side service that "pops" toasts (which uses a toastr-like angular service) that can be triggered from my Socket.IO event listeners, or by merely calling Notifications.pop() that accepts additional options (e.g. data, type, actions). So while neither my Socket.IO implementation nor my Toaster service, relies on the other, my notifications use both where needed.
I guess after hearing myself explain this, it's more a specific requirement of my application. For this framework, it makes sense to just keep it simple as @sujeethk has done.

👍 on using angular-ui-notification. I'll probably end up switching my application to use it.

Let me know if I over did it. I believe all form submission feedback is now using the new notifications.

Added 3 User e2e tests that check the new popup content
vm.error or vm.success is left as is. Since they are part of the unit testing for controllers. Removing them will prevent a few error case scenarios from being tested
But removed the error/success blocks from the view files and removed a couple of success/invalid pages in the reset password flow and related routes

I do not have an email service account to do some manual testing around the reset flows. Can someone with access please let me know if those flows are good.
Some screenshots:

Coverage increased (+0.2%) to 73.441% when pulling 7742c5859fce77cdddaa0f75c95448ae9f638d4a on sujeethk:visualfeedback into a7aebbd8664c9c5af41e55c198a1190127c12a92 on meanjs:master.

Can you post a picture of this working on mobile?

seems to be working nicely on mobile for the login screen:

Coverage increased (+0.2%) to 73.441% when pulling bcad2b75d7e690758a59d0cb5c25f9c3dcab5a07 on sujeethk:visualfeedback into a7aebbd8664c9c5af41e55c198a1190127c12a92 on meanjs:master.

Coverage increased (+0.2%) to 73.441% when pulling 92f0866fa47de37ceb4632aff0913e4242aab4c8 on sujeethk:visualfeedback into 287f81c6dd6842db4b3e8e0fb8babd4f808ede39 on meanjs:master.

Coverage increased (+0.2%) to 73.441% when pulling 92f0866fa47de37ceb4632aff0913e4242aab4c8 on sujeethk:visualfeedback into 287f81c6dd6842db4b3e8e0fb8babd4f808ede39 on meanjs:master.

Coverage increased (+0.2%) to 73.441% when pulling 92f0866fa47de37ceb4632aff0913e4242aab4c8 on sujeethk:visualfeedback into 287f81c6dd6842db4b3e8e0fb8babd4f808ede39 on meanjs:master.

Coverage decreased (-0.06%) to 73.165% when pulling 20b2c4c6303b7d8e617527f7d5557f7a6e70e4d1 on sujeethk:visualfeedback into 287f81c6dd6842db4b3e8e0fb8babd4f808ede39 on meanjs:master.

@sujeethk Just a couple of minor changes/feedback, and this should be ready.

@mleanos On a side note, I have been thinking to add an error notification into the auth-interceptor.client.service for error code -1.
This will show an error notification if the user lost his connection or the request timed-out or God forbid the server goes down. In these cases the client controllers will not be able to show their notifications(or vm.error in current master) as there is no response. Even if it is called res.data.message is not available, and there would be an angular error posted to the console(which probably the client isnt watching). So end user experience is that he clicks submit and waits, nothing happens.
Do you think it is good to have? If so, do you think I can add it in this PR or does it need a seperate PR?

@sujeethk Let's leave the auth-interceptor Notifications for a separate PR & discussion. It would be better to wrap this PR up, to get us closer to the 0.5.0 release.

Coverage decreased (-0.06%) to 73.165% when pulling cae1530dc23b854c321efb6bd71fc5c3081f7f7c on sujeethk:visualfeedback into 287f81c6dd6842db4b3e8e0fb8babd4f808ede39 on meanjs:master.

Coverage decreased (-0.06%) to 73.165% when pulling cae1530dc23b854c321efb6bd71fc5c3081f7f7c on sujeethk:visualfeedback into 287f81c6dd6842db4b3e8e0fb8babd4f808ede39 on meanjs:master.

@meanjs/contributors @simison @jloveland LGTY?

My only question: In most controllers, I see Notification.sucess() after $state.go(). Will that ever display and is that just excess code?

@codydaig The Notification method still gets called & will display, after we transition to the next state.
Since the Notification is applied to the root-scope, the toast is independent of what current state we're on; the toast ends up showing up during our state transition, and remains after the new state is loaded.

@mleanos Thanks for the clarification.

@sujeethk After merging #1499 there are merge conflicts with this PR. They should be pretty minor. Can you resolve them, and then we can merge this. I apologize for the inconvenience.

@mleanos No worries. Merged and committed.

Coverage decreased (-0.06%) to 72.977% when pulling f9233663333554e5e0f8bc016d2df8a58df41c2a on sujeethk:visualfeedback into 73a7c2cf6146ed8e477c2c108514bb0f1d77bb77 on meanjs:master.

@sujeethk Couple more conflicts. If you can rebase one more time, I'll merge right away.

@mleanos I am currently our of station on vacation. Will rebase and merge Monday night. Apologies for the delay

@mleanos Rebased

@sujeethk Thank you! Merging now.
@simison Thanks for your feedback as well.


Il2Cpp.String::content may write out of bounds

https://github.com/vfsfitvnm/frida-il2cpp-bridge/blob/e250654cff37a8213ee03f19baa2cda131991609/src/il2cpp/structs/string.ts#L16
It seems that you should not directly write the memory in this way. You have modified the length of the string here, and the content has also been extended, which will cause the memory of the latter part to be overwritten.

Yeah, correct, thanks for noticing. I should allocate a new string in case its length increases.
However, there's another place in the code base where it might end up writing more bytes than it should: can you spot it? :stuck_out_tongue_closed_eyes:

not yet ...
but It seems that this function can be used to modify the length of the original string
il2cpp_string_new_len

Uhm, it looks like the  Il2CppString struct should stay immutable:
typedef struct Il2CppString
{
    Il2CppObject object;
    int32_t length;
    Il2CppChar chars[0];
} Il2CppString;

Il2CppString* String::NewSize(int32_t len)
{
    if (len == 0)
        return Empty();

    Il2CppString *s;
    IL2CPP_ASSERT(len >= 0);
    size_t size = (sizeof(Il2CppString) + ((len + 1) * 2));

    s = reinterpret_cast<Il2CppString*>(Object::AllocatePtrFree(size, il2cpp_defaults.string_class));

    s->length = len;
    s->chars[len] = 0;

    return s;
}

In other words, we can't grow the string without reallocating the whole memory, and Il2Cpp.String::handle is immutable as well.
Now, we all agree the following snippet:
const s = Il2Cpp.string("hello");
s.content = "a longer content";

ends up writing to unallocated memory, potentially causing debug nightmares, and it should be prohibited.
However, writing a shorter string should be completely fine, so we could either:

Make Il2Cpp.String::content read only;
Keep Il2Cpp.String::content as it is and:

Warn the user if a write out of bounds is about to occur;
Add Il2Cpp.String::contentUnsafe for those who feel lucky.

Il2cppString is actually equivalent to this class (mscorlib System.String), so you can directly use the methods under this class to modify String
SUB -> mscorlib.System.String

System.String.Concat(cs_string* left, cs_string* right)
System.String.CreateString(char* array, int start, int length)
System.String.FastAllocateString(int length)
System.String.Substring(cs_string* this, int start, int length)
System.String.Replace(cs_string* original, cs_string* old, cs_string* new)

These methods return a new string!

I eventually decided to leave things as they are (I simply added an @unsafe marker to the setter docstring), as one might not care at all of this discouraged pattern.
However,  I will take care of updating the documentation so that it's clear overwriting the string content may write out of bounds.


python311Packages.lxmf: 0.3.3 -> 0.3.4, python311Packages.rns: 0.6.1 -> 0.6.2, python311Packages.nomadnet: 0.3.8 -> 0.3.9

Description of changes

Things done

Built on platform(s)

[ ] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[ ] Fits CONTRIBUTING.md.

Result of nixpkgs-review pr 259714 run on x86_64-linux 1

12 packages built:

python310Packages.lxmf
python310Packages.lxmf.dist
python310Packages.nomadnet
python310Packages.nomadnet.dist
python310Packages.rns
python310Packages.rns.dist
python311Packages.lxmf
python311Packages.lxmf.dist
python311Packages.nomadnet
python311Packages.nomadnet.dist
python311Packages.rns
python311Packages.rns.dist


Add license headers to generated files.

p2

[11/11 11:21 AM] Xiaogang Ding
Hi Garrett, I notice there is a configuration called "license-header", which is used to add license header for source code generated. So I add something like "license-header: MICROSOFT_MIT_NO_VERSION" in the configuration, but it does not work. Is this function broke in autorest v3?
[11/12 12:13 AM] Garrett Serack
V2 Generators got that from the autorest.common library -- it's on my list to add that to autorest-core in v3 so that the license is available in the configuration

This should be implemented in autorest.core.

@fearthecowboy Please fix it as your earliest convenience since it blocks us from releasing to the public

I have added the code to autorest-core to support header text values
To use this version:
Ensure that you're on @autorest/autorest 3.0.6141 or greater:
npm install -g @autorest/autorest
and then do a --reset and get the specific autorest-core package version 3.0.6168:
autorest-beta --version:3.0.6168
then you can ask for the header-text configuration value (so when --license-header  is specified, it will return the appropriate text

@fearthecowboy
It still does not work. BTW, the latest core version seems to be 3.0.6158 instead of 3.0.6168. And the configuration I specify in my readme.md is license-header: MICROSOFT_MIT_NO_VERSION

Ensure that you're on @autorest/autorest 3.0.6141 or greater:

👀  npm install -g @autorest/autorest
(which as of this moment, will install 3.0.6146)

the lastest version of the autorest-beta package has updates that are required in order to access pre-release versions of autorest-core.

The latest PRERELEASE version (ie, not pushed to NPM) is downloaded from https://github.com/Azure/autorest/releases in order to allow for significant regression testing before publishing.
from my sample generator
 // example: do something here.
    let text = "A source file\n";

    const headerText = await session.getValue("header-text", "NO HEADER TEXT?");

    text = text + headerText;

and when you get the value for header-text it will be:

Copyright (c) Microsoft Corporation. All rights reserved.
Licensed under the MIT License. See License.txt in the project root for license information.
Code generated by Microsoft (R) AutoRest Code Generator.
Changes may cause incorrect behavior and will be lost if the code is regenerated.

As you can see, it's in the output:

My bad. I mixed up the autorest and autorest.core version. I will have a try in the autorest.powershell generator. BTW, considering to add license header is a common requirement for all generators, can we implement it in a common plugin instead that each generator will have to write the license header by itself. @fearthecowboy

Given that each language has a different comment style, that is virtually impossible.


Raise Flipt::Error when Flipt API request failed

This pull request updates error handling in the flipt-client-ruby. Previously, the gem raised a generic StandardError when API requests failed. With this change, the gem now raises a more specific Flipt::Error to improve error context and consistency.
Thanks!

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 85.65%. Comparing base (d7880fb) to head (ff658de).

Additional details and impacted files
@@           Coverage Diff           @@
##             main     #583   +/-   ##
=======================================
  Coverage   85.65%   85.65%
=======================================
  Files           7        7
  Lines        3905     3905
=======================================
  Hits         3345     3345
  Misses        560      560

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


fix: rendered field spacing in columns

resolves #132

:tada: This PR is included in version 1.0.10 :tada:
The release is available on:

npm package (@latest dist-tag)
GitHub release

Your semantic-release bot :package::rocket:


Managing technical debt with SonarCloud and Azure DevOps

Demo Generator to eShopOnWeb Refresh.
Maybe screenshots to make more clear.

Lab refreshed. Closing the issue.


Coldcard cannot sign PSBT produced by Sparrow

Exported a tx using "Save Transaction" button, it produced a file with 376 bytes.
Exported using Electrum wallet using "For Hardware Device; include xpubs" and it produced a file with 888 bytes.
Coldcard cannot sign the sparrow wallet tx, but can sign the electrum tx
Sparrow Version: 1.7.8

Please be more specific. What error do you get? Singlesig or multisig wallet? Script type? Coldcard hardware version? Coldcard firmware version? Number of inputs/outputs in the transaction?

Coldcard 3 (4.1.3) prints in the screen "FAILURE My XFP not involved". Single sig tx, 1 segwit input, 1 segwit output

reimporting fixed it


objects (buildings, hoods) not clickable anymore in 3d Scene

commit : 4b0dacafca44a8b532f8198ffb7a86051d2a5aa6
brings a bug by using a StackPane that puts the 2d Scene on top of the 3d Scene. Left mouse-click and hoover don't work anymore for buildings and hoods. Going back to BorderPane would fix it, but doesn't look that good

Fixed on master.


CSS :valid selector with zod

Is there a way to get the CSS :valid selector to only be active after the initial submission using zod? For example in this sandbox, the :valid selector is already active before the form has been submitted, but ideally it would only show after it passes client-side validation after initial submission.

Hi @msfleischer, this is a limitation from the browser unfortunately. There is an experimental css selector named :user-invalid that tries to address this. But I also have concern on the progressive enhancement aspect as the browser will not know the full error before JS is loaded.
I would suggest continue using a class-based approach especially if you are building with Remix.

Ah, that actually makes sense. Thanks for the help on that.


chore: Back-merge from main

Not necessary to do via a PR (especially will miss the point if done as a squash merge)


Code validations on translations

Challenge Name

Link to external page with anchor elements
Issue Description

In the translation to Spanish, the instruction is:
"Create an a element which links to http://freecatphotoapp.com and have the anchor text "fotos de gatos".
The validator says:
Your a element should have the anchor text of "cat photos".
This will be a trouble in all translations when the validator looks for a string given in a specific language.
Browser Information

Browser Name, Version:
Operating System:
Mobile, Desktop, or Tablet:

Your Code

Screenshot

I can do this!

This will be a trouble in all translations when the validator looks for a string given in a specific language.

I guess an overhaul of the challenge JSON structure could go something like:
"tests": [
  {
    "assertion": "(/cat photos/gi).test($(\"a\").text())",
    "message": "should have the anchor text of \"cat photos\".",
    "translations": {
      "es": {
        "assertion": "(/fotos de gato/gi).test($(\"a\").text())",
        "message": "debe tener como texto de ancla \"fotos de gato\".",
      }
    }
  },
  {
    "assertion": "etc...",
    "message": "etc..."
  }
]


ISPN-10489 Deploy ServerNG zip with SNAPSHOT deployments

https://issues.jboss.org/browse/ISPN-10489

testing...

integrated! thanks @ryanemerson


问一下THREE.global.touchEventHandlerFactory这个方法在哪？

Description of the problem
This form is for three.js bug reports and feature requests only.
This is NOT a help site. Do not ask help questions here.
If you need help, please use the forum or stackoverflow.
Describe the bug or feature request in detail.
Always include a code snippet, screenshots, and any relevant models or textures to help us understand your issue.
Please also include a live example if possible. You can start from these templates:

jsfiddle (latest release branch)
jsfiddle (dev branch)

Three.js version

[ ] Dev
[ ] r110
[ ] ...

Browser

[x] All of them
[ ] Chrome
[ ] Firefox
[ ] Internet Explorer

OS

[x] All of them
[ ] Windows
[ ] macOS
[ ] Linux
[ ] Android
[ ] iOS

Hardware Requirements (graphics card, VR Device, ...)
还不太明白这个page里的触摸事件是怎么传递到OrbitControls里的
希望能解答一下：）谢谢！

啊 我找到了 在miniapp-adapter


feat(elevation): Elevation to support negative values to show box-shadow up oriented

Feature Description
Elevation helper only supports values between 0 and 24, and with those values the box shadow shows below.
I see the value of supporting negative values too (-24 to 24) where the negative values apply the same logic/style but above the component. Changing the box-shadow Y offset of the already provided values is working fine.
Use Case
Tabs component supports headerPosition whether is above|below (https://material.angular.io/components/tabs/api#MatTabHeaderPosition)
So If I want to build a top tab navigation menu and I want to have elevation working on top with the headerPosition="below" I can have a good looking component as here:

The only problem is that elevation does not support the shadow on top but rather only on bottom.
Usage Proposal
For using  the mat-elevation mix, it would be:
@import '~@angular/material/theming';

mat-tab-group {
  @include mat-elevation(-8);
}

For using the class selector, it would be:
<mat-tab-group class="mat-elevation-z-8">....</mat-tab-group>

The values for the negative elevations would be the same as for the positive but just adding a negative mark (-) for the Y offset, so no changes in terms of design/elevation/values are being suggested here.
I already know where to make the changes in the source code, but instead of pushing a PR, I thought it was worth to first suggest the change here and see if you agree or see the point of this feature.
Note: I can work-around this just using plain css, but I think the elevation helper is very clean and powerful and it would be great if it would support this use case too, imo.

The mentioned use case makes sense, but the Material design spec doesn't talk about negative elevations https://material.io/design/environment/elevation.html#default-elevations. Even the term "elevation" doesn't really make sense to me for something negative.

Hi @crisbeto thanks for replying and sharing feedback.
I think we see the point/benefit of what's been suggested, if the problem is about the negative semantic meaning under "elevation" context, there might be another approach that sounds/read better than the one mentioned?
mat-elevation-reverse?
...
or do you think that the cost of the syntax is too big to afford so discarding this feature?

mat-excavate-z would seem the most logical to me.
+1 on the feature request

Looking at this, I don't think this is a feature we would move forward with. We're working towards basing Angular Material on top of MDC Web, and their elevation system also only captures the common case of the "light source" being on the top left of the screen: https://material.io/develop/web/supporting/elevation
The state of elevation may change over time with the evolution of the Material Design spec, but I don't see us expanding the elevation API with the current iteration of the spec.


How to setcode / setabi from Node in beta?

Version of EOSJS
20.0.0-beta2
Describe the bug
I'm running the eosio-1.4 docker image.
I deploy the eosio.token code (from the eosio.contracts 1.4 branch) and abi from Nodejs but I get errors when interacting with it.
For example when running:
cleos -u http://<IP_ADDRESS>:7777 get code eosio.token

It throws this error:
thread-0   main.cpp:3143                 main                 ] Failed with error: Out of Range (8)
read datastream of length 4456 over by -10
Error unpacking field new_type_name
error unpacking eosio::chain::type_def
Error unpacking field types
error unpacking eosio::chain::abi_def

Same happens when I call get code instead.
When I run an action on that contract, I get this error from EOS:
fetching abi for eosio.token: Unsupported abi version

I'm reading the file and then calling .toString(`hex`) on the buffer which I pass as the ABI.
Why is it not working?
To Reproduce
Deploy the eosio.token contract
const EOSIO_TOKEN_ACCOUNT = `eosio.token`

async function deployTokenContract() {
    const contractDir = `./scripts/init_blockchain/eosio.token`
    const wasm = fs.readFileSync(path.join(contractDir, `eosio.token.wasm`))
    const abi = fs.readFileSync(path.join(contractDir, `eosio.token.abi`))

    try {
        await sendTransaction({
            account: `eosio`,
            name: `setcode`,
            actor: EOSIO_TOKEN_ACCOUNT,
            data: {
                account: EOSIO_TOKEN_ACCOUNT,
                vmtype: 0,
                vmversion: 0,
                code: wasm.toString(`hex`),
            },
        })
        console.log(`Contract updated`)
    } catch (error) {
        console.error(`setcode failed:`, getErrorDetail(error))
    }

    try {
        await sendTransaction({
            account: `eosio`,
            name: `setabi`,
            actor: EOSIO_TOKEN_ACCOUNT,
            data: {
                account: EOSIO_TOKEN_ACCOUNT,
                abi: abi.toString(`hex`),
            },
        })
        console.log(`ABI updated`)
    } catch (error) {
        console.error(`setabi failed:`, getErrorDetail(error))
    }
}

This is the helper sendTransaction function:"
const { CONTRACT_ACCOUNT } = process.env

const createAction = ({
    account = CONTRACT_ACCOUNT,
    name,
    actor = CONTRACT_ACCOUNT,
    data = {},
}) => ({
    account,
    name,
    authorization: [
        {
            actor,
            permission: `active`,
        },
    ],
    data,
})

const sendTransaction = async args => {
    const actions = Array.isArray(args) ? args.map(createAction) : [createAction(args)]
    return api.transact(
        {
            actions,
        },
        {
            blocksBehind: 3,
            expireSeconds: 30,
        },
    )
}

Expected behavior
Deploying code + abi should work.
Additional context
I'm running the eosio-1.4 docker image.

MIght be the same unpacking issue described here?

setcode needs a packed (binary) abi. It looks like you're converting the json text to hex instead.

Here's the code which converts abis from binary to json; you need to do the opposite: https://github.com/EOSIO/eosjs/blob/776a324b7aebf9c4397a14eaf7436fd623c3799d/src/eosjs-api.ts#L79

Thanks, is there a library that can do that or is it on your plan for the eosjs-2 release? In eosjs-1 it was as simple as calling
const wasm = fs.readFileSync(`test.wasm`))
eos.setcode(process.env.CONTRACT_ACCOUNT, 0, 0, wasm)

It would be nice if setcode would be added as another example to the documentation.
I can help with that if I figure out how to do it.

I got a proof of concept which works 😃
const { SerialBuffer } = require(`eosjs/dist/eosjs-serialize`)

const abi = JSON.parse(fs.readFileSync(path.join(contractDir, `eosio.token.abi`), `utf8`))
console.log(abi)
const buffer = new SerialBuffer({
    textEncoder: api.textEncoder,
    textDecoder: api.textDecoder,
})
api.abiTypes.get(`abi_def`).serialize(buffer, abi)
await sendTransaction({
    account: `eosio`,
    name: `setabi`,
    actor: EOSIO_TOKEN_ACCOUNT,
    data: {
        account: EOSIO_TOKEN_ACCOUNT,
        abi: Buffer.from(buffer.asUint8Array()).toString(`hex`),
    },
})

I'll refine it over the next days, the imports are still ugly and I have to make sure all fields exist in the .abi, including the error_messages field which didn't for me.

combine with @MrToph 's code,this is how i set abi and wasm, i think the problem you have meet is the *.wasm file has lot's of space and line break need to replace to empty string. This is work for me.
            let FAUCET ="faucet";
            let faucetWasm;
            let faucetAbi;

            //get wasm
            let wasmLocation = path.join(__dirname, "../", "faucet.wasm");
            faucetWasm = await fs.readFileSync(wasmLocation, "utf-8");
            //replace space and line break
            faucetWasm = faucetWasm.replace(/(\r\n\t|\n|\r\t| )/gm, "");

            //get abi hex
            const buffer = new eosjs.Serialize.SerialBuffer({
                textEncoder: api.textEncoder,
                textDecoder: api.textDecoder,
            });

            let abiLocation = path.join(__dirname, "../", "faucet.abi");
            let abi = await fs.readFileSync(abiLocation, "utf-8");
            abi = JSON.parse(abi);
            let abiDefinition = api.abiTypes.get('abi_def');
            abi = abiDefinition.fields.reduce(
                (acc, {name: fieldName}) => Object.assign(acc, {[fieldName]: acc[fieldName] || []}),
                abi,
            );
            abiDefinition.serialize(buffer, abi);
            faucetAbi = Buffer.from(buffer.asUint8Array()).toString(`hex`);

            const result = await api.transact({
                actions: [{
                    account: 'eosio',
                    name: 'setcode',
                    authorization: [{
                        actor: FAUCET,
                        permission: 'active',
                    }],
                    data: {
                        account: FAUCET,
                        vmtype: 0,
                        vmversion: 0,
                        code: faucetWasm
                    },
                },
                    {
                        account: 'eosio',
                        name: 'setabi',
                        authorization: [{
                            actor: FAUCET,
                            permission: 'active',
                        }],
                        data: {
                            account: FAUCET,
                            abi: faucetAbi
                        },
                    }

                ]
            }, {
                blocksBehind: 3,
                expireSeconds: 30,
            });


RFP - wslgit

Checklist

[x] The package I am requesting does not already exist on https://chocolatey.org/packages;
[x] There is no open issue for this package;
[x] The issue title starts 'RFP - ';
[x] The download URL is public and not locked behind a paywall / login;

Package Details
Software project URL : https://github.com/andy-5/wslgit (releases page: https://github.com/andy-5/wslgit/releases/latest)
Direct download URL for the software / installer : https://github.com/andy-5/wslgit/releases/download/v0.7.0/wslgit.exe
Software summary / short description: Use Git installed in Bash on Windows/Windows Subsystem for Linux (WSL) from Windows and Visual Studio Code (VSCode)

Exe file should be copy in "C:\tools\wslgit\wslgit.exe"

In progress!

@boubou please do not pick up request until we have assigned the issue with the label "Available for maintainers".
If we haven't assigned that label it means we have not yet had the chance to verify the request yet (ie, does not exist, is available on windows, is not behind a paywall or login, etc...)

Can be close now sir!


[POS UI] useCartSubscription hook returning wrong types

Please list the package(s) involved in the issue, and include the version you are using
@shopify/retail-ui-extensions-react v1.3.0
Android POS 8.15.3 and iPadOS 8.16.0
Describe the bug
From the start of a POS session (meaning, the app is opened) until the cart is modified (for example, by changing the quantities of a line item), the useCartSubscription() returns a Cart object where the LineItem uses strings for the variantId and productId.
Once the cart is modified, the issue is fixed and the LineItem uses numbers for the variantId and productId types.
Steps to reproduce the behavior:

Create an extension that prints the uses the useCartSubscription() hook and prints the cart's content to the console.
Add a product to the cart.
Close the POS and open it again, then open the extension without modifying the cart.
Change the cart and open the extension again.

Expected behavior
The LineItem should always use numbers for the variantId and productId types.
Screenshots

Additional context

Closing, as this was fixed in a the last release


Multiple Menus only has first menu array element

If I create a front-matter menu entry for content that should be in multiple menus (as per the example in the documentation) :
---
menu: ["main", "footer"]
---

when I try to access .Site.Menus.footer there is nothing there. .Site.Menus.main works correctly. If I reverse the definition :
---
menu: ["footer", "main"]
---

then .Site.Menus.footer works but .Site.Menus.main is empty.
Version: Hugo Static Site Generator v0.15 BuildDate: 2015-11-25T14:36:28Z

A workaround is to define the menu entries as dictionaries:
menu:
    p_footer:
    main:

There is a superfluous error in the log with the above, too. I will fix that (you could add some of the attributes to the menu entries to fix that ...).

@bep, thanks a lot for fixing this bug. It will be great if this can be mentioned in the docs. I wasted half a day thinking something else was broken in my website. I installed hugo via brew, so don't get these latest fixes like go get.

It will be great if this can be mentioned in the docs.

I agree; if you could maintain a list of bugs fixed that is not yet released, and keep it in sync at all times in the future, that would be a valuable contribution.
Thanks for volunteering.

@bep, may be an less time consuming solution will be to just mention in the readme file that this project does not release patch versions of cli / Master is usually stable enable for day to day use / go get is the preferred installation method or some combination of these. Then users can use go get to get latest bug fixes for hugo.


[bn] Localize cluster.md

Signed-off-by: Nazma Khatun<EMAIL_ADDRESS>Localizes content/bn/cluster.md  to Bengali
This is an initial PR as may need some improvements!
Tracking issue: #410

@ikramulkayes  can you check now?


Create BinarySearch.cpp

What is the change?
Adding Binary search code.
Related issue?
closes: #31
Checklist:
Before you create this PR, confirm all the requirements listed below by checking the checkboxes [x]:

[x] I have followed the Code of Conduct.
[x] I have  checked there aren't other open Pull Requests for the same update/change.
[x] I have you tested the code before submission.
[x] I have commented my code, particularly in hard-to-understand areas.
[x] My changes generates no new warnings.
[x] I'm Hacktoberfest'21 contributor.

this is a  documentation repository so make sure you  submit files with .md extension

this is a documentation repository so make sure you submit files with .md extension

Yes, I have done the required changes.


Allow Selenium connections

I'm trying to test an application using both Webmock and Selenium.
In order to lock down the environment, Webmock has been set up to disallow all network traffic, including connections to localhost because I have some local services running that should be mocked as well.
The issue is that I haven't found a good way of allowing the Selenium traffic. I can't get the port number from the Selenium driver (it seems very hard to retrieve).
The ideal solution would be if Webmock could allow network requests where the headers match some pattern, so I can specify a filter for the Selenium user agent.
Configuring Webmock to not mock the specific HTTP driver that is being used by Selenium (#75) seems like a kludge because it depends on an implementation detail and I have no guarantee that I don't have other modules that uses the same driver.

@mzedeler could you configure selenium to run on a fixed port number?

@mzedeler Could you explain how this integrates into a system test? Are we supposed to add this to the tests that make a selenium request?

@mzedeler thank you for the suggested solution.
This problem keeps coming back, not only for Selenium but for other drivers used by Capybara drivers as well. I'd like to solve that.
I imagine something like WebMock.allow_selenium_requests! or/and WebMock.allow_capybara_requests!.
On top of that, WebMock  could detect that the blocked request is from Capybara driver e.g. Selenium and suggest one of these commands to fix it.
I actually doubt anyone wants these requests ever to be blocked, therefore the next major release could actually allow these by default and instead have something like WebMock.dont_allow_selenium_requests_by_default!

I am sorry that I didn't respond to your original question, @jmarsh24. I am currently not using WebMock and it has been a really long time since I worked with this.


Test for valid YAML files

Closes #296, which hopefully results in fewer broken Spaces. Nothing fancy about this implementation and it's pretty specific to Hub metric card formats but works just fine for what we need, let me know if you think it should do anything else!

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

@lvwerra The bit which actually does the validation is next(x), which gets the first element from the loaded YAML (fine because for our metric cards the YAML is always at the top of the README, so it's the first element). If it isn't valid YAML then calling next() on the generator actually fails.
If we wanted to parse out the first bit of the file and pass it around to validate it'd look like this:
import re
REGEX_YAML_BLOCK = re.compile(r"---[\n\r]+([\S\s]*?)[\n\r]+---[\n\r]")
with open('metrics/perplexity/README.md', 'r') as f:
    x = f.read()
    match = REGEX_YAML_BLOCK.search(x)
y = yaml.safe_load_all(match.group())
assert type(y) == dict

However, this isn't any cleaner and also doesn't really generalize, since it depends on loading from the file in a specific way. We could have a general function which wraps yaml.safe_load_all for some piece of text, but I don't actually think that helps with code reuse much. Thoughts?

Fair enough, let's leave it like that then!
To solve the issue on windows, maybe you need to load with utf-8?


Refactored install script to workaround Github API rate limiting

This proposed change will bypass the Github API and rely on the actual public release endpoint. The HTML is then parsed to obtain the obtain the latest stable semantic version of istioctl.
This ticket is actually a newly created one to replace the previous pull request #23421 . Just like the PR I just mentioned, this work passes shellcheck and is POSIX compliant.

Hi @bitmvr. Thanks for your PR.
I'm waiting for a istio member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work. Regular contributors should join the org to skip this step.
Once the patch is verified, the new status will be reflected by the ok-to-test label.
I understand the commands that are listed here.

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Heads up @howardjohn and @ericvn. I created a new PR and referenced the previous. This prevents mucky commit history and nicely ties the solution back up into one commit.
Thanks for your help!

/ok-to-test

LGTM too. Just a comment that could be done in a follow-up: Since this relies on html output, it's not meant to be as stable as an api endpoint, so, I'd love to see automated tests for it so that we know when this breaks due to a html change.

This might break once the page gets too long, it will start paging (for
example: https://gcsweb.istio.io/gcs/istio-build/dev/)
On Mon, May 4, 2020 at 7:21 AM Jonh Wendell<EMAIL_ADDRESS>wrote:

LGTM too. Just a comment that could be done in a follow-up: Since this
relies on html output, it's not meant to be as stable as an api endpoint,
so, I'd love to see automated tests for it so that we know when this breaks
due to a html change.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/istio/istio/pull/23469#issuecomment-623493994, or
unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEYGXLQ7DGJHQD4SX5A32TRP3FQDANCNFSM4MXJ5QNQ
.

@jwendell ,
That was my concern as well and why this  comment was made on the previous attempt to stabilize this installation script:

https://github.com/istio/istio/pull/23421#issuecomment-622053932

I was trying to get buy in to use a non-github endpoint that the Istio project controls because it's a lot less likely to change (arguably) than  Github's. I'm happy to alter the endpoint (the pipeline filtering stays the same) if we believe there is stability there.

This might break once the page gets too long, it will start paging (for example: https://gcsweb.istio.io/gcs/istio-build/dev/)
…
On Mon, May 4, 2020 at 7:21 AM Jonh Wendell @.***> wrote: LGTM too. Just a comment that could be done in a follow-up: Since this relies on html output, it's not meant to be as stable as an api endpoint, so, I'd love to see automated tests for it so that we know when this breaks due to a html change. — You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub <#23469 (comment)>, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAEYGXLQ7DGJHQD4SX5A32TRP3FQDANCNFSM4MXJ5QNQ .

@howardjohn ,
While I am not hitting the gsweb endpoint in this pull request, your point is still valid as pagination exists on Github as well and I think the situation is possible Github's Release HTML as well. However, I would like to make the argument that the script is more likely for the script bomb due to API rate limiting vs endpoint pagination issues.

Another potential solve to resolve this would be to have the build process include a known text file that provides the version number for the latest stable.

latest-stable.txt

If there are plans to have a more long term support, then maybe something more similar to this is produce by the build process:

4-stable.txt
5-stable.txt
6-stable.txt

this is still an issue, specially for medium/big companies in covid with all engineers exiting vpn from 1 NAT ip the api limit is hit quickly and the error you get is confusing

Reopening and this is some discussion in Slack on hitting the rate-limiting issue agains for downloads.
@howardjohn Is there really an issue with pagination? This section of code is only run if no specific istio version is specified so we want to get the latest release. I suspect that the latest release should be in the first page returned, unless we have a large number of point releases for prior releases or a number of alpha releases since the actual latest release. Currently, the URL returns the last 10 releases so we would need to have 9 other releases after the latest.

The ordering is the first N releases not the last from what I see https://gcsweb.istio.io/gcs/istio-release/releases/? where are you looking?

I'm looking at https://github.com/istio/istio/releases which is what the script pulls and processes.

@ericvn my comment was misplaced. Not sure how - but meant to be commenting on someone suggesting we use the gcsweb endpoint. Maybe I made that up or commented on the wrong spot..

I suggested using istio.io as a potential replacement for where the "latest" definition could be (ie could be just a text file there that gets updated when a new release note is pushed...) but yes otherwise scrapping the github html works too

@howardjohn -
I proposed two options:

What is current in the script (github release endpoint)
The gcsweb endpoint

I only suggested gcsweb because it may be more predictable to reliably get the latest MAJOR version.

We already have the latest release in the istio.io/istio.io:data/args.yml file (in the branch currently used by istio.io), and that is updated whenever a new release is released (although it's not instantaneous).
I still think the simplest is what is here.

@bitmvr: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

release-notes_istio
262746ec95fafc36e91e071ba3bac830e1ed65e4
link
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@ericvn ,
Is that file accessible  on istio.io via the internet? I've tried multiple paths and keep receiving a 404. It wouldn't be difficult to update the script and parse the yaml either if others want to do that.

@bitmvr I'm not sure the file is directly available from istio.io, but I believe it's part of the front page matter. One might be able to do something like curl -s https://istio.io | grep "2020 Istio" and grab the first part of that to get the release.

Now, I'm not so sure we want to have to scrape the page as it could always change (I know there is talk of that going on now).

@bitmvr: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

release-notes_istio
a044aa9e9a012d5f711a59f427fbb8f7119612fd
link
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@bitmvr: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

release-notes_istio
b00f7c9ec6772ec7eddd7c745fa741c1e029ea2c
link
/test release-notes_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@bitmvr: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

lint_istio
bb0c60efcb8e4b83143f829f50773cd6cd6044a9
link
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@bitmvr: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

lint_istio
29fa937510804e490e21dbab4f3b6bc9858d72ae
link
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@bitmvr: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

lint_istio
6eb0b6768b0e586b3b61d222aedc043852d83e32
link
/test lint_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@howardjohn
The build is failing because the shellcheck endpoint is no longer available. The maintainer suggest updating it to a github URL.

@bitmvr: The following tests failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

lint_istio
6eb0b6768b0e586b3b61d222aedc043852d83e32
link
/test lint_istio

integ-pilot-k8s-tests_istio
6eb0b6768b0e586b3b61d222aedc043852d83e32
link
/test integ-pilot-k8s-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@ericvn ,
Is there something I need to do to pass the tide step? I reviewed the Details link. The data there is not super intuitive so I cannot make much out of it. If there is something I can do, please just let me know and I'll fix whatever it is. Thanks in advance!

@bitmvr It won't do tide until the PR is approved and merging. As long as all the Required items have green checks, things are good.

@ericvn ,
I also added a commit https://github.com/istio/istio/pull/23469/commits/bbd0b1213d4b9e8ea86f8c1dddecf86d4b8cedc2 to fix a potential bug where a minor version would be larger than > 10 would not get found.

@bitmvr: The following test failed, say /retest to rerun all failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio
c88bf4ebf435f5dccebf59185602fb459ad8f1ce
link
/test unit-tests_istio

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

/retest

@ericvn
Checked on this today. Say that it's stuck on the step analyze-tests_istio. 🤔


Maven project setup

A maven project similar to the wcm-core-components needs to be created for our AEM artifacts.
Let's start with the following settings (for development):
    <parent>
        <groupId>com.adobe.cq</groupId>
        <artifactId>core.wcm.components.parent</artifactId>
        <version>2.17.15-SNAPSHOT</version>
        <relativePath>parent/pom.xml</relativePath>
    </parent>

    <artifactId>core.email.components.reactor</artifactId>
    <packaging>pom</packaging>
    <version>2.17.15-SNAPSHOT</version>

    <name>Adobe Experience Manager Core Email Components Reactor</name>

[x] Copy existing structure from core components
[x] Rename project
[x] Update pom files
[x] Remove stuff not needed in our context
[x] Make sure initial build is working
[x] Update readme.md with infos on the project & how to run a build

Estimation: S (6 days)

Changes committed to the development branch.
Ready for code review @stein-rockware & @ogebert.


refactor(dev menu): android 14 Dev menu issues

This PR resolves PHIRE-359
Description
@dblandin reported a weird behavior in the dev menu that happens only on android 14.
This PR fixes that by removing CollapseMenu component that we were using only on DevMenu with the Expandable component that lives in eigen.
Will move it to palette-mobile in another PR.

[!NOTE]
Bonus:  Also converts the modal devMenu on the onboarding stack to a screen to match the rest of the app

Before
After

PR Checklist

[x] I have tested my changes on iOS and Android.
[x] I hid my changes behind a feature flag, or they don't need one.
[x] I have included screenshots or videos, or I have not changed the UI.
[x] I have added tests, or my changes don't require any.
[x] I added an app state migration, or my changes do not require one.
[x] I have documented any follow-up work that this PR will require, or it does not require any.
[x] I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

android dev menu improvements - gkartalis

Need help with something? Have a look at our docs, or get in touch with us.

I've also run  yarn codepush:deploy 'Canary' 'Dev Menu' to trigger a codepush canary build to test it out before merging.

This PR contains the following changes:

Dev changes (android dev menu improvements - gkartalis)

  Generated by :no_entry_sign: dangerJS against 089019b64288e24e1cb455d4f4e6b082c351fb78

nice one, got rid of a custom component and fixed a bug 🤩


Updated command palette matching algorithm

Codecov Report
Base: 39.83% // Head: 38.95% // Decreases project coverage by -0.87% :warning:

Coverage data is based on head (586a2f3) compared to base (f93732c).
Patch coverage: 42.02% of modified lines in pull request are covered.

Additional details and impacted files
@@            Coverage Diff             @@
##             main     #175      +/-   ##
==========================================
- Coverage   39.83%   38.95%   -0.88%
==========================================
  Files          78       89      +11
  Lines        3904     4254     +350
  Branches      485      554      +69
==========================================
+ Hits         1555     1657     +102
- Misses       2269     2510     +241
- Partials       80       87       +7

Impacted Files
Coverage Δ

src/Whim.CommandPalette/ActivationConfig.cs
0.00% <0.00%> (ø)

src/Whim.CommandPalette/CommandPaletteConfig.cs
0.00% <0.00%> (ø)

src/Whim.CommandPalette/CommandPalettePlugin.cs
0.00% <0.00%> (ø)

...c/Whim.CommandPalette/CommandPaletteWindow.xaml.cs
0.00% <0.00%> (ø)

src/Whim.CommandPalette/Filters/Regex.cs
0.00% <0.00%> (ø)

src/Whim.CommandPalette/MatcherCommandItem.cs
0.00% <0.00%> (ø)

src/Whim.CommandPalette/Model.cs
0.00% <0.00%> (-62.50%)
:arrow_down:

src/Whim.CommandPalette/MostRecentlyUsedMatcher.cs
0.00% <0.00%> (-100.00%)
:arrow_down:

src/Whim.CommandPalette/PaletteRow.xaml.cs
0.00% <0.00%> (ø)

src/Whim/Commands/CommandManager.cs
0.00% <0.00%> (ø)

... and 20 more

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Add auto downloader

Like FMD/FMD2 you search for a series then add it a list where every so often it will look for new chapters

I don't know what FMD/FMD2 is, could you elaborate a bit more what exactly you have in mind? It sounds to me like you want to have a library where you can add novels and it checks every so often for new chapters. I'm a bit confused about the auto downloader part in the title. Is it supposed to automatically replace the previously created EPUB with an updated one?

I am sorry for being unclear. So for example i would look up a series and download all the available chapters, then I would click a button to track the series and like you said, every so often it would check for a new chapter. It does not need to replace, just make a new file that ideally would show its different like chapters: chapter 1 is before chapter 2. That way you would not have to go and manually sort them so you can read correctly.
Also that wuxiaworld site did not work i dont know if you can fix that?

I don't know how viable that approach would be. Same reason I thought about adding a library function but scraping the idea later. What you're describing would be best implemented as a self contained reader which tracks already read chapters and adds new ones when they become available. I'm not sure how that would work with NG and the EPUBs it creates, they're pretty bad for small 'updates'. (A new 'main' file which replaces the old or new smaller ones).
And when thinking about that, I don't see how much worth a library is, when it just keeps track of new chapters. There are probably different tools for that already.
Which site? Wuxiaworld.com or Wuxiaworld.site

Wuxiaworld.com
And i was wondering why do you bundle the way you do? all the other downloader for different thing such as comics and manga do it by a per chapter basis because it would run into the same issue you talked about have to re make it every time. If you gave the option to download section instead of what you do now it would fix the issue. The manga downloader HakuNeko has a feature that when you click on the series it gives a list of all the chapters and also the file you already have downloaded which would be nice to have if you let people file multiple files for each chapter instead of all in one.
https://github.com/dazedcat19/FMD2 is the link for the manga downloader and tracker, I quite like how it does things and maybe it will give you a better idea of what I am talking about. In my case I don't need a reader, Komga comic server does that for me. In the end it is your choice and there are other things to work on just understand that if you are able to set up tracking/auto downloading it would be huge

The point of NG is to be able to read a webnovel conveniently on your eReader of choice. They all work with EPUBs so it's the perfect format to use for this. It's just not ideal for when you are caught up with a running novel. I think people only download new chapters in larger chunks when they have amassed a certain size of backlog and not short single chapters, I personally don't see the point of that. The only application I can think of would be to download new chapters of various different novels and put them together in a single file to get a comfortable reading experience.
An indicator to show the last downloaded chapter of a novel has merit through.

As someone who shares a different view then your view on what people want,
it is not true for everyone. Not everyone wants to wait until there is a
large (what large is being subjective) amount of chapters unread
before downloading again. Wuxiaworld and pretty much most other book sites
run on two parts: the library they already have and the chapters coming out
on some regular basis. Wuxiaworld specifically makes money because people
pay for the latest chapters and don't want to wait for a pile of them to
get together. I just want the option to auto download new chapters as they
show up, this option can be completely up to a person if they want to use
it or not. So instead of looking up the site again, searching for the
series, then picking out the new chapters all manually, everytime, for
every series, just let a series have multiple files for those that choose
to do so and don't have an issue at all with there being multiple files.
I just need you to see that your program can be easier to use and more
useful then it already is even if you don't see the merit in it. For TV
shows it's Sonarr, for comics Mylar3, Manga FMD2, all of those things you
just pick a series and when the new thing comes out it automatically grabs
them because it would take a huge amount of more work to do it by hand. Its
my view that in order to enable this on your program would be harder than
those I listed but even saying that its still worth it. In the end its your
choice but please consider it because as far as I found your the only
person who is really doing this
On Mon, Jul 6, 2020 at 3:18 PM Flameish<EMAIL_ADDRESS>wrote:

The point of NG is to be able to read a webnovel conveniently on your
eReader of choice. They all work with EPUBs so it's the perfect format to
use for this. It's just not ideal for when you are caught up with a running
novel. I think people only download new chapters in larger chunks when they
have amassed a certain size of backlog and not short single chapters, I
personally don't see the point of that. The only application I can think of
would be to download new chapters of various different novels and put them
together in a single file to get a comfortable reading experience.
An indicator to show the last downloaded chapter of a novel has merit
through.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Flameish/Novel-Grabber/issues/36#issuecomment-654418607,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKDLZTUGYAU7AFPATQSFQM3R2IPO7ANCNFSM4OQQUCWA
.

Okay. How about this:
On the automatic tab, after you have fetched the novel info, you get the option to save/favourite it. This will add it to the library (a new tab). For each novel you get the basic meta info and the chapter number of the last downloaded chapter along with the number of the newest online. It will check the web page in regular intervals for updates. There will be a button to download all elapsed chapters to get caught up again (in a single file) and another selection to set up an auto download. Along with a save directory, you can specify how often you want it to create a file. For example, you only want a new one when 5 chapters were released. Maybe even make it send an email notification(with optional attachment) when it creates one.

So to make sure I understand: Last week I bookmarked a series so now I go
to the favorites tab and click check for updates. It will then check if
there are any new chapters and if there are if those chapters amount to 5
or more (using your example for before) that '5' can also be raised or
lowered based on what the user wants. It does in fact have enough chapters
so the program downloads the new chapters then combines them with the old
file of the original chapters you already had to create a new file. But a
user also has the option on favorites tab to just enable auto updates and
every so often (say once a day) the program will scan the series
automatically and if there are ANY chapters new or whatever custom amount
the user wants will download and create the new file. Also you have the
option of an email notification every so often about what series were
updated and what was added. Is my understanding correct?
On Mon, Jul 6, 2020 at 4:27 PM Flameish<EMAIL_ADDRESS>wrote:

Okay. How about this:
On the automatic tab, after you have fetched the novel info, you get the
option to save/favourite it. This will add it to the library (a new tab).
For each novel you get the basic meta info and the chapter number of the
last downloaded chapter along with the number of the newest online. It will
check the web page in regular intervals for updates. There will be a button
to download all elapsed chapters to get caught up again (in a single file)
and another selection to set up an auto download. Along with a save
directory, you can specify how often you want it to create a file. For
example, you only want a new one when 5 chapters were released. Maybe even
make it send an email notification(with optional attachment) when it
creates one.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Flameish/Novel-Grabber/issues/36#issuecomment-654448442,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKDLZTSFKW3VSGVJCSHCHO3R2IXS7ANCNFSM4OQQUCWA
.

The 2nd half is correct.

The library lists the info of all added novels and polls the websites for updates in the background every so often.
You get a 'manual' button to download all new chapters of a novel, from the previous last downloaded to the newest released combined in 1 file.
Then you can also (optional) set the novel to auto downloading and tell it to get every 5 chapters, it will create a new file with just those 5 new chapters and sends you a notification or the whole file per email or something. Over the next week the author releases another 5 new ones, now NG creates a new file with just those 5.
Like you mentioned, this option is for people who want the newest chapters right away.

And those novels will be listed in another tab?
On Mon, Jul 6, 2020, 5:41 PM Flameish<EMAIL_ADDRESS>wrote:

The 2nd half is correct.

The library lists the info of all added novels and polls the
websites for updates in the background every so often.
You get a 'manual' button to download all new chapters of a novel,
from the previous last downloaded to the newest released combined in 1 file.
Then you can also (optional) set the novel to auto downloading and
tell it to get every 5 chapters, it will create a new file with just those
5 new chapters and sends you a notification or the whole file per email or
something. Over the next week the author releases another 5 new ones, now
NG creates a new file with just those 5.
Like you mentioned, this option is for people who want the newest
chapters right away.

—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Flameish/Novel-Grabber/issues/36#issuecomment-654480021,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKDLZTV4LMAX5E2XI5RTCYLR2JAJXANCNFSM4OQQUCWA
.

For the gui I was thinking along the lines of this with a popup window to setup up the auto downloading.

I would plan to support CLI too.

So that mock up is that what people see once they put in the site url or
when there looking at  there favorites tab?
On Mon, Jul 6, 2020, 6:21 PM Flameish<EMAIL_ADDRESS>wrote:

For the gui I was thinking along the lines of this with a popup window to
setup up the auto downloading.
[image: Untitled]
https://user-images.githubusercontent.com/47372220/86655850-530e0600-bfe7-11ea-980e-fc2b7319eb79.png
I would plan to support CLI too.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Flameish/Novel-Grabber/issues/36#issuecomment-654493840,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKDLZTT76WM2M42KYEH3HJDR2JE53ANCNFSM4OQQUCWA
.

This would be the library/favorites tab yes. I would probably add a new star button on the automatic grabbing tab to add that novel.

I okay, so first you search for a series on a site then add it to your
favorites. Then you can just check a box for it download the latest chapter
instead of having to re search for it each time. Now that's a lot easier,
how hard will it be to code the auto download and track system
Also have any idea about the wuxiaworld issue?
On Mon, Jul 6, 2020, 6:27 PM Flameish<EMAIL_ADDRESS>wrote:

This would be the library/favorites tab yes. I would probably add a new
star button on the automatic grabbing tab to add that novel.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Flameish/Novel-Grabber/issues/36#issuecomment-654495756,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKDLZTRZ5OYGCEDCKMI3DK3R2JFWDANCNFSM4OQQUCWA
.

Should be pretty easy. I did quite a bit of code refactoring for the CLI update which I can now use much easier for this and I had a polling system in place before but removed it. Now about the email part but I think it will be fun to figure out. I don't wanna make any promises but it should be done in a few days depending if I find the time.
Wuxiaworld.com works perfectly fine for me? Can you post some console log etc?

Seems like the wuxiaworld issue was on my end. The cloudfare defence
blocked my vpvn, I switched locations till I found one that worked.
About what you were saying, did you mean the auto downloading will take a
few days or the email system
On Mon, Jul 6, 2020, 6:41 PM Flameish<EMAIL_ADDRESS>wrote:

Should be pretty easy. I did quite a bit of code refactoring for the CLI
update which I can now use much easier for this and I had a polling system
in place before but removed it. Now about the email part but I think it
will be fun to figure out. I don't wanna make any promises but it should be
done in a few days depending if I find the time.
Wuxiaworld.com works perfectly fine for me. Can you post some console log
etc?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Flameish/Novel-Grabber/issues/36#issuecomment-654499900,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKDLZTRLUTQAXFO2YB54F6TR2JHJ3ANCNFSM4OQQUCWA
.

Both will be part of the library "system".

Alright then, I got a VM set up and looking forward to hearing when the
system is updated to test it out
On Tue, Jul 7, 2020, 5:02 AM Flameish<EMAIL_ADDRESS>wrote:

Both will be part of the library "system".
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Flameish/Novel-Grabber/issues/36#issuecomment-654708353,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKDLZTRHYWMUMQAB5RTZ3FTR2LQEDANCNFSM4OQQUCWA
.

Check out v2.8.0

Starting to use it now, I assume with the default threshold of 0 that means
as soon as there is a new chapter it will download but where do I go to
change how often a series is scanned for new chapters
On Wed, Jul 8, 2020, 8:05 PM Flameish<EMAIL_ADDRESS>wrote:

Check out v2.8.0
https://github.com/Flameish/Novel-Grabber/releases/tag/2.8.0
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Flameish/Novel-Grabber/issues/36#issuecomment-655819522,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKDLZTVKLSGCTAR54UULNWDR2UCU5ANCNFSM4OQQUCWA
.

Can there be an option to auto create a folder for a series with the same
name you choose for the epub
On Wed, Jul 8, 2020 at 8:05 PM Flameish<EMAIL_ADDRESS>wrote:

Check out v2.8.0
https://github.com/Flameish/Novel-Grabber/releases/tag/2.8.0
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Flameish/Novel-Grabber/issues/36#issuecomment-655819522,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKDLZTVKLSGCTAR54UULNWDR2UCU5ANCNFSM4OQQUCWA
.

Threshold 1 means it there is a new chapter. 0 means you're up-to-date.
It does creat a folder for the file but the whole naming convention needs a bit more fine tuning. I will probably add a library settings tab to change stuff like this. Same goes for the scan frequency. (its 20 minutes at the moment)

Then there is an issue, it goes to the correct path to send the books but
it does not create a folder. So instead of main folder/new folder it just
dumps them in main folder. Also the naming either needs spaces or dotes
between each word
On Thu, Jul 9, 2020, 3:10 AM Flameish<EMAIL_ADDRESS>wrote:

Threshold 1 means it there is a new chapter. 0 means you're up-to-date.
It does creat a folder for the file but the whole naming convention needs
a bit more fine tuning. I will probably add a library settings tab to
change stuff like this. Same goes for the scan frequency. (its 20 minutes
at the moment)
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Flameish/Novel-Grabber/issues/36#issuecomment-655945548,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKDLZTULF2C7B4U5B5S22KDR2VUPXANCNFSM4OQQUCWA
.

I'm taking a look at the save location, it should be: ../ Novel-Grabber//file.epub
I had to remove the spaces in the filename to be able to send them per email. Gonna fix it for non-auto grabbing to have spaces again.

Can you set up it so once you start downloading a series it auto creates a
folder for it?
On Thu, Jul 9, 2020, 5:53 AM Flameish<EMAIL_ADDRESS>wrote:

I'm taking a look at the save location, it should be: ../
Novel-Grabber//file.epub
I had to remove the spaces in the filename to be able to send them per
email. Gonna fix it for non-auto grabbing to have spaces again.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Flameish/Novel-Grabber/issues/36#issuecomment-656030898,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKDLZTTN7TJRVXVGQ7M3DRTR2WHSJANCNFSM4OQQUCWA
.

Isn't this what you mean  ../ Novel-Grabber//file.epub ? Or do you mean each epub will be put into its own subdirectory again?

Its own. You set a folder location and each time a new series is downloded
another folder inside the original one is created
On Thu, Jul 9, 2020, 10:11 AM Flameish<EMAIL_ADDRESS>wrote:

Isn't this what you mean ../ Novel-Grabber//file.epub ? Or do you
mean each epub will be put into its own subdirectory again?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Flameish/Novel-Grabber/issues/36#issuecomment-656150941,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKDLZTRVRTDCDQR5TVZOMCLR2XFXRANCNFSM4OQQUCWA
.

I'm a bit confused. Are you talking about different novels get their own folder (because they do) or the auto-downloaded files OF a novel get their own sub directories inside its "series" folder?
Currently the structure looks like this:

And this is how it would look like if I understand you correctly:

My issue is the program does not currently create folders
On Thu, Jul 9, 2020, 10:42 AM Flameish<EMAIL_ADDRESS>wrote:

I'm a bit confused. Are you talking about different novels get their own
folder (because they do) or the auto-downloaded files OF a novel get their
own sub directories inside its "series" folder?
Currently the structure looks like this:
[image: Screenshot from 2020-07-09 16-37-10]
https://user-images.githubusercontent.com/47372220/87053643-811b6200-c202-11ea-82ec-820704d94544.png
[image: Screenshot from 2020-07-09 16-37-29]
https://user-images.githubusercontent.com/47372220/87053652-824c8f00-c202-11ea-8ea6-0f50725bc150.png
And this is how it would look like if I understand you correctly:
[image: Screenshot from 2020-07-09 16-39-39]
https://user-images.githubusercontent.com/47372220/87054050-f8e98c80-c202-11ea-9575-94981b3096ce.png
[image: Screenshot from 2020-07-09 16-40-08]
https://user-images.githubusercontent.com/47372220/87054059-fab35000-c202-11ea-95f8-f8b97837ca64.png
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Flameish/Novel-Grabber/issues/36#issuecomment-656169305,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKDLZTQ3SLFQYDHAQKYQYTLR2XJNJANCNFSM4OQQUCWA
.

Will be fixed in the next release. First screenshots are from 2.8.1

Good to hear, is it possible to change the output from epub to PDF?
On Thu, Jul 9, 2020, 11:19 AM Flameish<EMAIL_ADDRESS>wrote:

Will be fixed in the next release. First screenshots are from 2.8.1
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Flameish/Novel-Grabber/issues/36#issuecomment-656190421,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKDLZTRK4Q5K2PDOAQ7JAUDR2XNXVANCNFSM4OQQUCWA
.

I would need to take a look at available pdf libraries. Not sure how compatible they are with HTML(some even broken #23)
It's at the bottom of planned things for now.

Hello,
I'd like some clarifications, the saving of files in each folder, is this for all downloads? Or only those items on the the favorite folder and tagged for auto-updates?

Only for favourites tagged right now.

Thank you. I'd like to request to keep it that way as I do not see the benefit of creating different folders for single epubs.

It makes it easier for files organization. But as long as there is a box
you can click giving you an option to create a folder for a series or not
that will make sure we both get what we are looking for
On Thu, Jul 9, 2020, 2:09 PM zpereyra<EMAIL_ADDRESS>wrote:

Thank you. I'd like to request to keep it that way as I do not see the
benefit of creating different folders for single epubs.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Flameish/Novel-Grabber/issues/36#issuecomment-656273892,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKDLZTUFFXUYD474TSKHL4DR2YBUPANCNFSM4OQQUCWA
.

I am pertaining for those of us who do not download mangas,  comics or even series or follow/download novels while they are on-going. That is why I requested to just keep the creation of file folders to those who put it in their config.
For book library organization or file format changes I have been a user of calibre for years.  A lot of novel compilers use it within their program. In fact, for the things you have asked for, I can think of 2 available programs that is doing it and works in cli or within calibre as a plugin.
The reason I am here in NG is because of its ability in java enabled sites and configuring the grabber on your own for different websites. The ease of use and simplicity of the program is a big plus for me.  And I really appreciate the author's efforts in integrating the cli.

Can we get a tab or some area where we can see what has been downloaded or
is that already there?
On Thu, Jul 9, 2020, 10:50 PM zpereyra<EMAIL_ADDRESS>wrote:

I am pertaining for those of us who do not download mangas, comics or even
series or follow/download novels while they are on-going. That is why I
requested to just keep the creation of file folders to those who put it in
their config.
For book library organization or file format changes I have been a user of
calibre for years. A lot of novel compilers use it within their program. In
fact, for the things you have asked for, I can think of 2 available
programs that is doing it and works in cli or within calibre as a plugin.
The reason I am here in NG is because of its ability in java enabled sites
and configuring the grabber on your own for different websites. The ease of
use and simplicity of the program is a big plus for me. And I really
appreciate the author's efforts in integrating the cli.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Flameish/Novel-Grabber/issues/36#issuecomment-656450829,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKDLZTSAQCEZNSWMLHRMBX3R2Z6YHANCNFSM4OQQUCWA
.

There is no history right now. Only if you enabled Email notifications I guess. But thats a good idea. Will add it.

If I would like a website added do I tell you here or do I create a new
ticket like when I asked for a PDF option?
On Fri, Jul 10, 2020, 9:25 AM Flameish<EMAIL_ADDRESS>wrote:

There is no history right now. Only if you enabled Email notifications I
guess. But thats a good idea. Will add it.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Flameish/Novel-Grabber/issues/36#issuecomment-656675293,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKDLZTSXXVZLMX3YIOFX7NTR24JDHANCNFSM4OQQUCWA
.

Make a new issue or send me an email directly. Be advised that the website has to have 10+ novels on it.

Not a problem, seems to have a few hundred
On Fri, Jul 10, 2020, 9:34 AM Flameish<EMAIL_ADDRESS>wrote:

Make a new issue or send me an email directly. Be advised that the website
has to have 10+ novels on it.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Flameish/Novel-Grabber/issues/36#issuecomment-656679465,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AKDLZTUNQDWR34IRZMMPL73R24KFVANCNFSM4OQQUCWA
.

I am still having trouble with both downloading and folder creation. There were about a weeks worth of chapters that had come out that did not download until I manually checked a book series, then it seemed the rest updated. Also new chapters are not doing into folders, here is what I see:
https://imgur.com/gallery/0rjD1On
As for an example for the paths provided:
Z:\Chinese\Overgeared

hiiii, how can i download the program? i've been trying to download but i doesn't work, i don't know what i am doing wrong, can someone explain me?

I'm not sure how you found this specific issue. (It's about a library feature to bookmark novels). Please read the Readme for instructions or open a new issue.


Flexible routing

Sometimes i need to create a route which the route name is not related to controller name, i created the withFlex() method to handle this action, is there another way to do this?
$klein->withFlex( 'TestController', '/test-route', function () use ($klein) {

    $klein->respond('GET', '/?', function ($request, $response, $service, $app) {

        return $app->controller->index();

    });

    $klein->respond( 'GET', '/[:id]', function ($request, $response, $service, $app)  {

        return $app->controller->show( $request->id( false ) );

    });

});

This is an impressive feature! Unfortunately, it's using quite a bit of magic regarding controller class initialization and such, which moreso belongs in a framework than it does in Klein's more basic routing system. Sorry. 😞


Update requirements.txt

In order to avoid this errors when users use your requirment.txt  :
  Downloading sklearn-0.0.post1.tar.gz (3.6 kB)
  Preparing metadata (setup.py) ... error
  error: subprocess-exited-with-error

  × python setup.py egg_info did not run successfully.
  │ exit code: 1
  ╰─> [18 lines of output]
      The 'sklearn' PyPI package is deprecated, use 'scikit-learn'
      rather than 'sklearn' for pip commands.

      Here is how to fix this error in the main use cases:
      - use 'pip install scikit-learn' rather than 'pip install sklearn'
      - replace 'sklearn' by 'scikit-learn' in your pip requirements files
        (requirements.txt, setup.py, setup.cfg, Pipfile, etc ...)
      - if the 'sklearn' package is used by one of your dependencies,
        it would be great if you take some time to track which package uses
        'sklearn' instead of 'scikit-learn' and report it to their issue tracker
      - as a last resort, set the environment variable
        SKLEARN_ALLOW_DEPRECATED_SKLEARN_PACKAGE_INSTALL=True to avoid this error

      More information is available at
      https://github.com/scikit-learn/sklearn-pypi-package

      If the previous advice does not cover your use case, feel free to report it at
      https://github.com/scikit-learn/sklearn-pypi-package/issues/new
      [end of output]

I have removed the sklearn entry.
Thank's for the sharing

Thank you for your contribution!
In the newest version I have updated all requirements to work with Python 3.12, including scikit-learn


How do I use this?

Heard Adam Curry talk about this project in Podcasting2.0, sounds good (I have been manually editing my feeds in VI). How do I use the project? Can I, already?

Hello @AbelLykens
Great to see you interested.
There's basically 2 options - either you can use the rssbuilder on your own machine, by downloading, and running with npm/yarn, or you can use the version I deployed on my own server which you can find here:
https://www.podfriend.com/rssbuilder/
Remember it's still very early, so please check your feed after downloading and taking a backup of your own handmade feed!
And feel free to ask any and all questions if you have troubles!

Cool that makes a lot of sense. Maybe put the link in the repo :+1:

I can't find it on npm, what is the package called?


Use * to refer to random port.

0 is a value of INADDR_ANY and specific to the tcp transport.
This value is incorrect for VMCI, where random port is set by -1.
In other hand, '*' is used universally since ZeroMQ 2-x and therefore
should be preferred over '0'.

Thanks!

@minrk I think I forgot to fix the comment…


Tang Poetry Analysis and Tang Poets Biographies Tool

Summary
This project integrates tools for in-depth Tang poetry analysis and biographical exploration of Tang Dynasty poets. Users can analyze the references (allusions) used in poems, evaluate their tonal patterns for adherence to classical prosody, and retrieve specific poems based on references or tonal structure. Additionally, the platform offers a rich database of Tang poets’ biographies and their interactions with contemporaries, providing comprehensive insights into the cultural and personal dynamics of Tang poetry.
Changes
Features

Tang Poetry Analysis
•	Reference Analysis
Automatically detects allusions in each poem, providing their historical context and significance in the poem.
•	Tone Analysis
Identifies tonal patterns (Ping and Ze tones) in poems, evaluates their conformity to classical rules, and explains their influence on poetic rhythm and meaning.
•	Search by Criteria
o	Find poems containing specific references.
o	Retrieve poems by a particular poet or genre.
o	Filter poems based on tonal adherence to prescribed poetic structures.
Tang Poets Biographies and Interactions
•	Biographical Database
Provides detailed biographical information on Tang poets, including their literary achievements, political careers, and personal lives.
•	Peer Interactions
Tracks connections and interactions between poets, such as shared themes, collaborations, and influences in their work.
•	Search by Relationship
Discover poems or references shared among poet groups or mentorship lines, highlighting the collaborative nature of Tang poetry.

Additional context
Add any other context or screenshots about the feature request here.

Installation and Usage

Clone the Repository
git clone https://github.com/yourusername/tang-poetry-analysis.git
cd tang-poetry-analysis
Install Dependencies
Ensure you have Python (recommended version 3.9 or higher) and pip installed. Then run:
pip install -r requirements.txt
Launch the Application
Run the following command to start the local server:
python app.py
Access the application on your local server at http://<IP_ADDRESS>:5000.

Project Structure
tang-poetry-analysis/
│
├── data/                  # Database of Tang poems, references, and biographies
├── analysis/
│   ├── tone_analysis.py   # Tone analysis module
│   ├── reference_parser.py # Reference parsing module
│
├── biographies/
│   ├── poets_bio.py       # Tang poets’ biographical data
│   ├── interactions.py    # Peer relationships and interactions
│
├── app/
│   ├── api.py             # RESTful API
│   ├── frontend/          # Front-end interface
│   └── templates/         # HTML templates
│
├── tests/                 # Test cases
├── requirements.txt       # Python dependencies
└── README.md              # Project documentation

Core Technologies
•	Natural Language Processing (NLP)
Uses spaCy and custom models for analyzing Tang poetry text, references, and tonal patterns.
•	Graph-Based Relationship Mapping
Employs graph-based methods to visualize relationships between poets, their works, and their contemporaries.
•	Interactive Front-End
Built with Flask and Vue.js, featuring intuitive interfaces for exploring poetry and biographies.

How to Contribute
We welcome contributions! Here’s how you can help:

Submit Issues: Report bugs or suggest new features.
Pull Requests: Improve code or add new functionalities.
Submit Biographical Data: Expand the Tang poets’ database with additional details and interactions.

Development Roadmap

Phase 1: Core Poetry and Biographical Tools
o	Establish a database for Tang poetry and poet biographies.
o	Develop analysis modules for references, tones, and poet interactions.
Phase 2: Advanced Features
o	Integrate visualizations for peer interactions and reference usage trends.
o	Enhance search functionality with multi-criteria filters.
Phase 3: User Experience Optimization
o	Add personalized features like "Favorite Poets" and "Saved Searches."
o	Implement multilingual support (Simplified/Traditional Chinese, English).

Example Features
Tang Poetry Analysis
•	Reference analysis, e.g., identifying allusions to historical events or literary works.
•	Detailed tonal analysis, with scoring for adherence to classical rules.
Tang Poets Biographies
•	Example: Du Fu
o	Known as the "Poet Historian," his work often reflects the turbulence of the Tang Dynasty.
o	Collaborated with Li Bai and influenced later poets like Bai Juyi.
•	Example: Li Bai
o	Renowned for his romantic and free-spirited style.
o	Shared poetic exchanges with contemporaries like Wang Wei.


Update cis_5.1.x.yml

Overall Review of Changes:
update permissions in 5.1.8 and 5.1.9 in order to pass those rules
Issue Fixes:
https://github.com/ansible-lockdown/RHEL9-CIS/issues/218
How has this been tested?:
I'v tested it and after the changes the rules pass the test and is no longer failed

See comment on issue.
thanks
uk-bolly

Closing as benchmark documentaion and requirements are met


[TECHDEBT] Consolidate & encapsulate ValidatorMap logic

Objective
Encapsulate the concept of a ValidatorMap only to the consensus module
Origin Document
This discussion in https://github.com/pokt-network/pocket/pull/178:

Goals

Remove all occurrences/references to the ValidatorMap throughout the codebase
Only maintain knowledge/understanding o the ValidatorMap in the consensus module

Deliverable

[ ] Do a grep for ValidatorMap throughout the whole codebase and it should only show up in the consensus module
[ ] A single PR refactoring / cleaning up this goal

Non-goals / Non-deliverables

Adding new functionality

General issue deliverables

[ ] Update the appropriate CHANGELOG
[ ] Update any relevant READMEs (local and/or global)
[ ] Update any relevant global documentation & references

Testing Methodology

All tests: make test_all
LocalNet: verify a LocalNet is still functioning correctly by following the instructions at docs/development/README.md

Creator: @Olshansk

This is related to #271 in the greater scope/vision of having dynamic validator sets as they change with each height.
#271 is scoped to only P2P and doing structured gossip amongst the validator nodes (for now). In general, P2P does care who the nodes are but simply gossips amongst the actors it is given.
This ticket is scoped to consensus (techdebt cleanup) to make sure the concept of a "validator set" only exists in consensus.
As this is done (in isolation), the goal is to think how to implement dynamic additions of validators & P2P actors.

@jessicadaugherty heads up I am a bit behind schedule with #331 and #203 (ValidatorMap related work). I was supposed to be done yesterday but I think I'll need another day or two to have them both under review.


minimal battery requirements

As a fisherman I would like the app to have minimal battery requirements https://github.com/StAResComp/sifids/issues/6, https://github.com/StAResComp/sifids/issues/8

Must

Needs real-world testing


Introduce useOffline hook for making use of offline state easier

Describe your motivation
Ther is ConnectionState and ConnectionStateStore in "@vaadin/common-frontend", but the API is not very React friendly. Hence it would be nice to have useOffline hook.
Describe the solution you'd like
In my demo application I created the following custom hook, which can be used as a reference.
import { ConnectionState, ConnectionStateStore } from '@vaadin/common-frontend';
import { useEffect, useState } from 'react';

/**
 * Represents the offline hook.
 */
type OfflineHook = {
  offline: boolean;
  isOffline: () => boolean;
};

/**
 * Represents a callback function that is invoked when the offline status changes.
 * @param offline - A boolean value indicating whether the user is offline or not.
 */
type OfflineChangedListener = (offline: boolean) => void;

/**
 * Represents the props for the Offline component.
 */
type OfflineProps = {
  onOfflineChange?: OfflineChangedListener;
};

/**
 * Custom hook to handle offline state in the application.
 * @param {OfflineProps} props - Optional props for the hook. Use { onOfflineChange : OfflineChangedListener } a callback function that is invoked when the offline status changes.
 * @returns {OfflineHook} An object containing the offline state and a function to check if the application is offline.
 */
export function useOffline(props?: OfflineProps): OfflineHook {
  const [offline, setOffline] = useState(false);
  var connectionStateStore: ConnectionStateStore | undefined;
  var internalState = isOffline();

  // Listen connection state changes
  const connectionStateListener = () => {
    const newState = isOffline();
    const changed = newState != internalState ? true : false;
    setOffline(newState);
    internalState = newState;
    if (changed) {
      props?.onOfflineChange?.(internalState);
    }
  };

  /**
   * Checks if the application is currently offline.
   * @returns {boolean} Returns true if the application is offline, otherwise false.
   */
  function isOffline() {
    return connectionStateStore?.state === ConnectionState.CONNECTION_LOST;
  }

  /**
   * Sets up an offline listener to handle changes in the connection state.
   */
  function setupOfflineListener() {
    const $wnd = window as any;
    if ($wnd.Vaadin?.connectionState) {
      connectionStateStore = $wnd.Vaadin.connectionState as ConnectionStateStore;
      connectionStateStore.addStateChangeListener(connectionStateListener);
      connectionStateListener();
    }
  }

  useEffect(() => setupOfflineListener(), []);

  return { offline: offline, isOffline: isOffline };
}

Describe alternatives you've considered
Also I just noticed that there is cacheable.ts utility in the documentation, but that is not very React like either
https://hilla.dev/docs/react/guides/client-caching
One could add caching utility to useOffline and perhaps we should add something like the useOffline I did in Hilla/React itself. Note, cacheable utility is not enough, as you probably need that offline state variable in your UI as well as the listener for offline state change, e.g. if you want to purge saved items to server when coming back to online.
Additional context
No response

State is so 2020. I would suggest a signal instead.


open connection failed.

I try to connect to manticore search server by open() function, and got error message "Wrong version num received:<PHONE_NUMBER>". I do not know what happend. I connect server with "ip/port", and the server is running.

It works fine here https://play.manticoresearch.com/go-sdk/
Please make sure you are connecting to a proper port (9312 by default)

The server port has been changed (not 9312 by default). I try to debug this problem, this error happend where send handshake message ( 'handshake.putUint(cphinxClientVersion)' ), and when read the buf ( 'ver := buf.getDword()' ), ver is<PHONE_NUMBER> not equal to cphinxSearchdProto, and throw the error message "Wrong version num received:<PHONE_NUMBER>" .

Sorry about this. I change the port to default 9312, and it worked. I made this mistake, because I use mysql client with another port, and connect succeed.


http 1.0 breaks test example for response

When using reqwest 0.11.22 / http 1.0 it breaks the ability to convert from http builder responses to reqwest responses.
This is useful when unit testing various types of responses that can come from reqwest
e.g:
pub fn http_500_error() -> Result<reqwest::Response, reqwest::Error> {
    let url = Url::parse("http://example.com").unwrap();

    let response = Builder::new()
        .status(500)
        .body("Internal Server Error")
        .unwrap();

    let response = Response::from(response); // error

    Ok(response)
}

error:
the trait bound `reqwest::Response: From<http::Response<&str>>` is not satisfied
the trait `From<http::response::Response<T>>` is implemented for `reqwest::Response`

Please let me know if there is a better approach e.g. using hyper or if possible an example of how one might work with http1.0.
Thank you!

reqwest doesn't yet work with http/hyper 1.0, see #2039.


Incorrect timestamp returned by to_generalized_time

Result of year = time |> Enum.take(2) is a charlist, not a string, as year is a charlist.

Hi @omh - thanks for the PR! Your PR looks sane, but I want to give the dev who merged this change a chance to weigh in before I merge it.
@ahovgaard - Thoughts on this? You were the last to touch this bit of code.

The problem is actually that :string.to_integer/1 returns a pair. Anyway, this PR fixes the issue I introduced. Sorry about that.

Awesome thanks for the insights @ahovgaard :)
@omh sorry for the breakage, I'll merge this and cut a new release ASAP!

Version 1.1.2 is released!
https://hex.pm/packages/easy_ssl/1.1.2
Thanks again folks :)


refactor: add register validation

:x: Build TheIdServer 1.0.0-dynamic-client1-0097 failed (commit https://github.com/Aguafrommars/TheIdServer/commit/b6e6f597b7 by @aguacongas)

:white_check_mark: Build TheIdServer 1.0.0-dynamic-client1-0098 completed (commit https://github.com/Aguafrommars/TheIdServer/commit/341fcce5ab by @aguacongas)


Add instructions for sign-up

Adding instruction to sign up for Cloud Pak for Data

Should be ready to review now:
Changes since PR creation:

updated the spacing
modified image sizes
added a link to the main README.md

/lgtm


⚠ Fortnite has degraded performance

In 6c381a2, Fortnite (https://fortnite.com) experienced degraded performance:

HTTP code: 200
Response time: 1791 ms

Resolved: Fortnite performance has improved in a096670.


Update README.adoc

update readme to show that application is a loanshark manager application

Commit is relevant to issue #41


[type:refactor] refactor module

Make sure that:

[ ] You have read the contribution guidelines.
[ ] You submit test cases (unit or integration tests) that back your changes.
[ ] Your local test passed ./mvnw clean install -Dmaven.javadoc.skip=true.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (a9210db) 61.50% compared to head (58799b5) 61.53%.

Additional details and impacted files
@@             Coverage Diff              @@
##             master    #5378      +/-   ##
============================================
+ Coverage     61.50%   61.53%   +0.02%
- Complexity     8516     8520       +4
============================================
  Files          1236     1236
  Lines         37313    37313
  Branches       3593     3593
============================================
+ Hits          22951    22962      +11
+ Misses        12280    12270      -10
+ Partials       2082     2081       -1

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