text:
Validator not running in unit test

Hi,
Have you seen an issue with the Validator<> never calling in unit tests when using Factory.Create?
Code below:
public class TestValidator : Validator<TestRequest> {     public TestValidator()     {         RuleFor(x => x.Id).GreaterThanOrEqualTo(0);         //RuleFor(x => x.StartDateTime).LessThan(x => x.EndDateTime);     } }
`public class TestEndpoint : Endpoint<TestRequest, IEnumerable>
{
public TestEndpoint(ITestManager tradeManager, AutoMapper.IMapper mapper)
{
_tradeManager = tradeManager;
_mapper = mapper;
}
private readonly ITradeManager _tradeManager;
private readonly AutoMapper.IMapper _mapper;

public override void Configure()
{
    Verbs(Http.GET);
    Routes("/trades");
    Version(1);

    Summary(s => {
        s.Summary = "Trades";
        s.Description = "Query trades";
    });

    AllowAnonymous();
}

public override async Task HandleAsync(TestRequest testRequest, CancellationToken cancellationToken)
{
    var trades = _tradeManager
        .TestData
        .ProjectTo<TestResponse>(_mapper.ConfigurationProvider);

    await SendAsync(trades, cancellation: cancellationToken);
}

}`
`using Microsoft.Extensions.DependencyInjection;
using FluentValidation;
namespace Adapter.Api.Tests.Trade;
[TestFixture]
public class TestEndpointTest
{
[SetUp]
public void Setup()
{
_fixture = new Fixture();
_fixture.Customize(new AutoMoqCustomization());
    //Test contains legs of Tests which is an acceptable circular reference
    _fixture.Behaviors.OfType<ThrowingRecursionBehavior>().ToList()
        .ForEach(b => _fixture.Behaviors.Remove(b));
    _fixture.Behaviors.Add(new OmitOnRecursionBehavior());

    _Tests = _fixture.Build<Core.TestManager.Test>()
        .CreateMany(20).ToList();

    _TestManagerMock = _fixture.Freeze<Mock<ITestManager>>();
    _TestManagerMock.Setup(x => x.Tests).Returns(_Tests.AsQueryable());

    //_fixture.Inject(new TestValidator());

    var TestValidator = new TestValidator();

    var mappingConfig = new MapperConfiguration(cfg =>
        cfg.AddProfile(new MappingProfile()));

    var automapperMock = _fixture.Freeze<Mock<AutoMapper.IMapper>>();
    automapperMock.Setup(x => x.ConfigurationProvider).Returns(mappingConfig.CreateMapper().ConfigurationProvider);

   _TestEndpoint = Factory.Create<TestEndpoint>(
        _TestManagerMock.Object,
        automapperMock.Object);

   _TestEndpoint.Configure();
}

[Test]
public async Task Test_Response_Is_Error_When_Negative_TestId()
{
    var TestId = _Tests.First().Id;

    var TestRequest = new TestRequest
    {
        Id = -1
    };

    _TestEndpoint!.Definition.Validator<TestValidator>();

    await _TestEndpoint!.HandleAsync(TestRequest, default);

    _TestEndpoint!.ValidationFailed.Should().BeTrue();

}

}`

validators are not meant to be executed during a "unit test". model binding, validation, pre/post processors, etc. are part of the pipeline and are not meant to be executed during a unit test. that's what an integration test is for.
the purpose of a unit test is simply to accept a fully populated (and already validated) request dto run the handler logic and return the response. nothing else.

examples of unit tests: https://github.com/FastEndpoints/FastEndpoints/blob/main/Tests/UnitTests/FastEndpoints/WebTests.cs
examples of integration tests: https://github.com/FastEndpoints/FastEndpoints/blob/main/Tests/IntegrationTests/FastEndpoints/WebTests/AdminTests.cs

Have you got any examples of integration tests with nunit?

sorry no. we only use xunit.

Have you got any unit test examples for validators?

Why is it that the tests in this test class fail validation if it doesn't call validators?
https://github.com/FastEndpoints/FastEndpoints/blob/main/Tests/UnitTests/FastEndpoints/WebTests.cs

Have you got any unit test examples for validators?

unit testing fluent validators can be done just like you would any other class.
unless your validator needs some service registrations as described here.

Thanks for your help.

authors: GChannonLondon dj-nitehawk

repo: FastEndpoints/FastEndpoints


text:
Game not properly added if DNS request is refused

If the connection request to the used Google DNS address gets refused for any reason, the game appears to not have been added to the library while still being added in the background. The same game can't be added twice while in this state as it already exists. Once faugus is restarted the game is visible and can be used normally.
Traceback (most recent call last):
  File "/usr/bin/faugus-launcher", line 1759, in on_dialog_response
    if not check_internet_connection() and add_game_dialog.combo_box_launcher.get_active() != 0:
           ~~~~~~~~~~~~~~~~~~~~~~~~~^^
  File "/usr/bin/faugus-launcher", line 1750, in check_internet_connection
    socket.create_connection(("8.8.8.8", 53), timeout=5)
    ~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/socket.py", line 864, in create_connection
    raise exceptions[0]
  File "/usr/lib/python3.13/socket.py", line 849, in create_connection
    sock.connect(sa)
    ~~~~~~~~~~~~^^^^
ConnectionRefusedError: [Errno 111] Connection refused

Thanks for reporting.
It should be fixed now.
Please update.

Oooh I see the problem now. You're trying to add a Linux native game, right?
It should only check the internet when installing a launcher (Battle.net, EA App, Epic Games...).
I'll have to fix that.

Done.

What distro are you running?

I just pushed an update and now it should not test the internet connection when adding a windows or linux game.
Please let me know if you're still facing this issue.

Thanks for reporting and testing.
Happy new year for you too!
Enjoy the app!

source: gharchive/issue

repo: Faugus/faugus-launcher

license: MIT

license_type: permissive

license_source: github-api


text:
Dots in key name

Hi,
is it possible to have dot characters in the key name?
I need to have a key which is a domain name, like www.mysite.com. But it always creates JSON structure like this:
{
  "www": {
    "mysite": {
      "com": { ... }
    }
  }
}

Instead of simply this:
{
  "www.mysite.com": { ... }
}

I think you can try something like this, not sure if it's going to work.
- ghetto_json:
  - !unsafe 'www.mysite.com': {{ value }}

authors: CrNix madsalama

repo: FauxFaux/ansible-ghetto-json

license: mit

license_source: bigquery


text:
⚠ Roblox Devforum has degraded performance

In 6fa0b9b, Roblox Devforum (https://devforum.roblox.com) experienced degraded performance:

HTTP code: 200
Response time: 2397 ms

Resolved: Roblox Devforum performance has improved in a87bac5 after 20 minutes.

repo: FearedFusionX/Ro-Status


text:
fix: enable table overflow-x

This PRs refactor's Box component to a Layout inside CollectionTable.js, so we can have proper overflow in the table, when we have multiple locales supported.

Before
After

Also removed redundant div, and replace with fragment.

Hey @konsalex,
thank you for your contribution. Looks good to me, gonna leave it up to @sargreal to merge ^^

source: gharchive/pull-request

authors: konsalex layaxx

repo: Fekide/strapi-plugin-translate


text:
Support $currentDate field update operator

Refs #622.
Except timestamp.

I invite you not to review but to discuss.
I need somehow to test data time values.
And all my ideas are overcomplicated.
Can we do it simply?
Do we have an agreed way on how to test it?

timestamp is extracted as more complex - probably there will be more and more changes.

timestamp is extracted as more complex - probably there will be more and more changes.

I've added it. Please see - there are some changes in types.

@Dmitry @rumyantseva PTAL, I've changed to time.Time

repo: FerretDB/FerretDB


text:
Global/Default INI files?

Hi. Is there a way to set a global ini config so that new instances will always use those settings?
Thanks,
Chris

I am pretty new to the tool, but as far as I can tell, Server Tools does not manage your INI files at all.
If you use the same arkserverroot="/home/steam/ARK" location for all of your instances, then you would get the behavior you are asking for.
Just be careful to configure different ark_AltSaveDirectoryName="whatever" for each. Also, be aware that some settings configured in your instance.cfg files will be temporary saved to GameUserSettings.ini (this is done by ARK ,not Server Tools). You will want to ensure that any settings that different from instance to instance and specifically listed in instance.cfg (even if they are the default), otherwise another instance's settings my be leftover in GameUserSettings.ini.

repo: FezVrasta/ark-server-tools


text:
Question rather than an issue about updating multiple instances

Hi
I have two instances running at the moment.  My question is with the update of the server and mods when they share the same staging directory, I believe that arkmanager has to download the mod before it can check to see if it has been updated.
If the two instances are also sharing the same mods or mostly the same mods does the update process download them twice to check for updates?  Do I need to run an update for each instance separately?

The mods do not currently share a staging directory (apart from the SteamCMD workshop content directory).  SteamCMD should check whether the mod is up-to-date and return fairly quickly if the latest version of the mod has already been downloaded.
If the instances are not sharing the same physical directory, then each instance must be updated separately.  If the instances do share the same physical directory (which would require them to be part of the same cluster), then only one instance needs to be updated, but both instances need to be stopped before the update.

I didn't think I could share the directory?  So I have a separate directory tree for each server including mod dirs and saved dirs.  Basically they are duplicates except for the map and save files

When the -clusterid=clustername option is used, the ARK server likely uses inter-process communication to prevent conflicts.
arkmanager is not currently able to allow multiple server instances to run from the same directory.  You would need to follow something like what ryan1161 wrote in https://github.com/FezVrasta/ark-server-tools/issues/578#issuecomment-244962370; I don't know if all game servers in the cluster need to have the same mods enabled.

v1.6 should now support having multiple instances in a cluster running from the same directory.

authors: klightspeed rob-bb


text:
Stays forever in "Updating... Updated.... Updating...."

Describe the bug
Here it stopped working, it stays forever in "Updating... Updated.... Updating...."
To Reproduce
Version: ...
Steps to reproduce the behavior:

...

Expected behavior
...
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
...

Hi, it's supposed to do that.
After a few seconds it should fetch new data from inara for the least recently updated commodity. In this state it says updating.
When the commodity is updated in the local database, it changes to updated. After a few more seconds it does the same for the next least recently updated commodity.

I have experienced this same bug. After initial install and run, I have waited several hours and the screen continues to say:
Updating...
Storing EDDN information...
There is no additional information shown on the screen. It seems like it is stuck forever in loading and there is no way to determine progress or if there is an error.

How long should this updating take? I've left it to run overnight (8-9 hours) and it still just says "Updating..." and "Storing EDDN information..."

This bug was caused by the inara website that changed its layout. Since 2.0.0.0 this is fixed.

Is this bug back? I am running 2.2.0.0 let it run for hours and no additional information is shown.

The bug shouldn't be there anymore, but it might be caused by some connection problems.
Can you please attach your log-file? That way I should be able to pinpoint the problem.
Your Log should be located in C:\Users\USERNAME\AppData\Roaming\EDCT\Logs

I can confirm that in version 2.2.0.0 (downloaded and installed today and deleted the old database with all old files in my Windows10 profile) the updating (inara) keeps on spinning after 1 hour. Only 541 systems in the database, but NO distances, stations, commodities, export/import prices. If i use DB Browser for SQLite only the Systems table is filled with the stated 541 systems (all fields are filled with data). While the updating status is still running, each few seconds a new system is added to the table. But no other information in other tables are filled. What to do? Wait for a fix?

I restarted EDCT and it continues the same process by filling the Systems table with a new solar system every few seconds. Nothing else happens.

The bug shouldn't be there anymore, but it might be caused by some connection problems. Can you please attach your log-file? That way I should be able to pinpoint the problem. Your Log should be located in C:\Users\USERNAME\AppData\Roaming\EDCT\Logs

Currently this folder is empty. I will run the tool for a while today to see if I can get any logs generated. Thanks for taking the time to look into this for everyone!

My log was empty and my conbection as a hosting party is fine.Met vriendelijke groet,J. MenkemaOp 24 jan. 2023 om 16:28 heeft 534n5mith @.***> het volgende geschreven:
The bug shouldn't be there anymore, but it might be caused by some connection problems. Can you please attach your log-file? That way I should be able to pinpoint the problem. Your Log should be located in C:\Users\USERNAME\AppData\Roaming\EDCT\Logs
Currently this folder is empty. I will run the tool for a while today to see if I can get any logs generated. Thanks for taking the time to look into this for everyone!
—Reply to this email directly, view it on GitHub, or unsubscribe.You are receiving this because you commented.Message ID: @.***>

Ok I think I know the source of the problem now. Inara updated the website layout again, which means that I have to adjust a few parts of my code.
I'll work on it as soon as possible.
Thank you all for bringing the issue to my attention!

In addition to the updated website-layout, inara now also checks for your browser-version. So I had to set one in the tool.

Fixed in version 2.2.0.1


text:
Localisation - Fix font issue for Greek

As mentioned in #2166, we observed some font inconsistencies for Greek (different fonts seen on About Us and Help Board).
Example from About Us:

We had a similar problem in the past because we didn't have all the correct weights of the font downloaded. Please refer to this PR to see if we can solve the issue in a similar way, thanks!

Hey @emanuelquerty, did you want to work on this? We merged the other PR, so I opened this new ticket.

Hey @emanuelquerty, did you want to work on this? We merged the other PR, so I opened this new ticket.

Hey @doheekim93 yeah I did. Thanks for letting me know.
I fixed the problem and it was for a different reason than what we had in this PR. It was because the css rules for font-family was missing the default fallback font (font-family: "Poppins"; vs font-family: "Poppins", sans-serif;). I will open the PR now and push the fix.

Hey @doheekim93 yeah I did. Thanks for letting me know.
I fixed the problem and it was for a different reason than what we had in this PR. It was because the css rules for font-family was missing the default fallback font (font-family: "Poppins"; vs font-family: "Poppins", sans-serif;). I will open the PR now and push the fix.

@emanuelquerty Ooooh that's good to know! Thank you for figuring that out!!

@emanuelquerty Ooooh that's good to know! Thank you for figuring that out!!

repo: FightPandemics/FightPandemics


text:
🛑 logs.mmattbot.com is down

In 80f1a72, logs.mmattbot.com (https://logs.mmattbot.com/) was down:

HTTP code: 0
Response time: 0 ms

Resolved: logs.mmattbot.com is back up in 5bc20e1 after 15 minutes.

repo: Fijxu/justlog-instances-uptime


text:
How to reset error to null in base view model

hi, can somebody tell me how to reset the error object when using runBusyFuture() in success condition
source code in here  https://github.com/FilledStacks/stacked/blob/master/packages/stacked/lib/src/state_management/base_view_models.dart#L75-L99
/// Sets the ViewModel to busy, runs the future and then sets it to not busy when complete.
///
/// rethrows [Exception] after setting busy to false for object or class
Future runBusyFuture(Future busyFuture,
    {Object busyObject, bool throwException = false}) async {
_setBusyForModelOrObject(true, busyObject: busyObject);
try {
    var value = await runErrorFuture(busyFuture,
        key: busyObject, throwException: throwException);
    _setBusyForModelOrObject(false, busyObject: busyObject);
    return value;
} catch (e) {
    _setBusyForModelOrObject(false, busyObject: busyObject);
    if (throwException) rethrow;
}
}

Future runErrorFuture(Future future,
    {Object key, bool throwException = false}) async {
try {
    return await future;
} catch (e) {
 --->   _setErrorForModelOrObject(e, key: key);
    onFutureError(e, key);
    if (throwException) rethrow;
    return Future.value();
}
}

when cache exception, will call _setErrorForModelOrObject(e: key: key),
but when i recall runBusyFuture(), if this time, no exception occurred, could we need to reset the error to null?
i did not found where to reset this error, can some body help me ?

Now, in my code now in below
static final String objectRefreshBook = 'refreshBook';

  Future<void> refreshBook() async {
    if (!hasBook) return;
    if (busy(objectRefreshBook)) return;

-->    setErrorForObject(objectRefreshBook, null);
    await runBusyFuture(
      Future(() async {
        final newBook = await _bookService.fetchBook(_book);
        await _bookService.updateBook(newBook);
        _book = newBook;
      }),
      busyObject: objectRefreshBook,
    );

    if (error(objectRefreshBook) != null) {
      _snackbarService.showSnackbar(message: error(objectRefreshBook).toString());
    }
  }

i need to call setErrorForObject(key, null); to reset error before runBusyFuture()
is this api designed using like so? or could we merge this reset error in base view model?

repo: FilledStacks/stacked


text:
get null when Pass argument

Hi,
I wondered that on [replaceWithTransition](https://github.com/FilledStacks/stacked/blob/master/packages/stacked_services/lib/src/navigation_service.dart) in NavigationService why you  didn't add argument prop?
I changed it to this :
   Future<dynamic> navigateWithTransition(Widget page,
      {bool opaque,
      @required String transition,
      Duration duration,
      bool popGesture,
      int id,
      dynamic arguments}) {
    return Get.to(() => page,
        transition: _getTransitionOrDefault(transition),
        duration: duration ?? Get.defaultTransitionDuration,
        popGesture: popGesture ?? Get.isPopGestureEnable,
        opaque: opaque ?? Get.isOpaqueRouteDefault,
        id: id,
        arguments: arguments);
  }

and when I pass a dummy string :
await _navigatorService.navigateWithTransition(
      PersonalInfoDegreePage(
        userProfileModel: userProfileModel,
      ),
      transition: NavigationTransition.RightToLeft.name,
      arguments: "dummy test",
    );

In PersonalInfoDegreePage I got null ? print(getIt<NavigatorService>().currentArguments);

currentArguments are only stored when you use named routing since it goes through a router.
If you're using this view you can just pass the argument into the constructor of the View you're navigating too if you need it in that view.

currentArguments are only stored when you use named routing since it goes through a router.
If you're using this view you can just pass the argument into the constructor of the View you're navigating too if you need it in that view.

Thanks, but I changed your repository and I added arguments to your navigateWithTransition method , I could send argument.
Yes by constructor it is possible.


text:
Add exhaustive tests for compress() and decompress()

This tests against vectors I generated here, using Python's Fraction module.
The good news is, the tests pass!
The bad news is, I don't know golang, so the quality of my code that implements the tests might suck. Let me know what you think heh.
Yours is also the first implementation I've tested these vectors against, aside from my own implementations, so you might want to wait for some additional confirmations.

Sweet, love to get some exhaustive tests.
Do you think you could replicate them with math/big.Rat inline rather than checking in the vectors?

Good idea, I converted the tests to use math/big.Rat.
I had some trouble deciding the best way to get a rounded integer result from the Rat, and I ended up with this:
strconv.ParseInt(precise.FloatString(0), 10, 64)

It's a bit of a hack, do you know if there's a better way?

Thank you too, for the comprehensive review!

@DavidBuchanan314, have you signed the Google Individual CLA (https://cla.developers.google.com/about/google-individual) and do I have your permission to submit this change under the terms of that CLA on your behalf as part of https://go.dev/cl/550215?

Signed just now, sounds good to me :)

Thank you!


text:
3.12.0 release

We've pushed version 3.12.0-0 to QA and it has been published to NPM under the next label.
To install this package from NPM you can run npm i polyfill-service@next.
Click here for the full changelog.
Notable changes:

RUM reporting is now handled by our CDN provider Fastly, this helps ease the load of our servers. This work was done by @triblondon - #851
Added Number.isFinite(...)  polyfill. This work was done by mudcube - #834
Iterator polyfills now target IE mobile and Samsung browser. This work was done by @wheresrhys - #848
Update to latest version of URL polyfill. This work was done by @triblondon - #800
Added the es6 alias to all es6 features we have polyfilled. This work was done by @JakeChampion - #847

No changes to the default set, so we have not introduced a new immutable default set label.
As usual, we'll hold this on QA for a week for testing. Please post any concerns here.

We've pushed a new version that adds more RUM improvements, 3.12.0-1.  We don't expect any impact on the core service.

This is now live on https://polyfill.io

authors: JakeChampion triblondon

repo: Financial-Times/polyfill-service


text:
Add interface for accessing tenant options

The normal way to get options in ASP.NET Core -- IOptions<MyOptionType> etc. will provide the options for the current tenant only. If you look under-the-hood you will see that each tenants options are cached in  way that makes it difficult to retrieve or clear the cached options for a specific tenant (ie other than the current tenant).
There should be a way to access or clear the cached options for a specific tenant without having to dig into the Finbuckle.MultiTenant and ASP.NET Core internals.

Partially, implemented with 3.0. Still cannot access options for a different tenant--but I am not sure that is a good idea anyway. Closing this story for now.


text:
Cookies and Identity Server

Hi Andrew,
Having problems logging into identity server after a tenant identifier is updated by a user. I am hoping to get some guidance/assistance
When a new tenant is created an identifier is automatically created for them. I allow tenants to update their identifier.  Once their identifier is updated the user can initiate a logout, which logs them out and redirects them to the start page with the updated identifier in the url.
e.g
user is logged in with this url
http://appurl/1B8E302B-B931-4CAE-B404-A42B7D1E8895/Dashboard/Settings/Identifier
user then updates their identifier to "ABC" and initiates a logout. The user is then redirected to this url
http://appurl/ABC
At this point the user then tries to log back in, but instead of logging into identity server with the new identifier
http://identityserver/abc
the user is redirected to identity server with the old url
http://identityserver/1B8E302B-B931-4CAE-B404-A42B7D1E8895
resulting in invalid redirect uri error in identity server since  the urls dont match...."ABC" does not match "1B8E302B-B931-4CAE-B404-A42B7D1E8895"
I suspect it has to do with the identity server session created with the first login prior to updating the identifier?
My signout code in the application
public IActionResult OnGet()
{
      var redirectUri = Url.Page("/", null, null, Request.Scheme);
       return SignOut(new AuthenticationProperties()
      {
                RedirectUri = redirectUri
       }, CookieAuthenticationDefaults.AuthenticationScheme,
                OpenIdConnectDefaults.AuthenticationScheme);
}

Any help appreciated.

Hi friend. I haven’t forgotten you. I’m catching up on things and will take a look. Have you made any progress in the mean time?

Hi Andrew,
At this time no, but I currently have a work around.

Hm, it looks like the open id connect option for the tenant are not being refreshed. When they change tenant identifier you'll want to clear the already generated options as described here:
https://www.finbuckle.com/MultiTenant/Docs/Options#options-and-caching
I don't recall off the top of my head if you need to use the IOptionsMonitor approach as described or the other. Then next time it needs those options to drive logic, i.e. redirect, it should regenerate them.
That being said I find that redirecting based on tenant id might be better than identifier since in theory id should never change.
What sort of workaround did you come up with in your situation?

Hi Andrew,
Thx for getting back to me. I will look into your suggestions.
As a work around I created a friendly identifier column that is 4 to 8 characters long. The user can then look up their friendly identifier on a search screen. If their tenant is found, they are redirected to their portal with the "normal" identifier in the URL. If the tenant is  not found, they are directed to a referral screen indicating their organization was not found. Portal admins can set their friendly identifier.

authors: AndrewTriesToCode goforebroke


text:
How to upload video from fine Uploader.

Hello,
To upload video,Can we just use allowedExtension mp4 or there are some other criteria?
Thanks!

You don’t need to do anything to upload videos. But if you want to limit the allowed extensions, you can do so as you’ve described.

Hey @rnicholus,
Uploading videos says uploaded successfully but not stored in Server.Also can you help me with the onDeleteComplete events  here is snippet of my code :
callbacks: {
onComplete: function(id, name, response) {
if (response.success) {
alert("UPLOAD SUCCESS");
}
else {
alert("Problem uploading stuff");
}
},
onSubmitDelete: function(id) {
alert("Are You Sure You Wantto delete the item");
},
onDeleteComplete: function(id, xhr, isError) {
if (success) {
alert("DELETE SUCCESS");
}
else {
alert("Problem deleting stuff");
}
}
}
am i doing it correctly ?

Uploading videos says uploaded successfully but not stored in Server

I can't help you with that - you'll need to look closer at your server code.
As for your onDeleteComplete event, you're referencing a variable that does not exist - success. All events are documented at https://docs.fineuploader.com/branch/master/api/events.html. Have a look for more details and examples.

repo: FineUploader/react-fine-uploader


text:
[firebase_ml_vision] Cloud text recognition does not return coordinates blocks, lines and elements

When using the cloud text recognizer, the coordinates of the recognized text do not come. However, text detection works fine.
The problem does not appear when using text recognition on both platforms on the device.
See attached screenshots.
Steps to reproduce the behavior:

Use FirebaseVision.instance.cloudTextRecognizer()
Progress image File
Look at coordinates

Supporting Code:
final FirebaseVisionImage visionImage =
       FirebaseVisionImage.fromFile(imageFile);
   final TextRecognizer textRecognizer =
       FirebaseVision.instance.cloudTextRecognizer();
   VisionText visionText;
   textRecognizer.processImage(visionImage).then((vText) {
     if (visionText != null && visionText.blocks.isNotEmpty)
       visionText.blocks.forEach((block) {
         block.lines.forEach((line) {
           line.elements.forEach((element) {
             print(element);
           });
         });
       });
   });

Additional context
Original Image:

The result in the debugger if you use FirebaseVision.instance.textRecognizer():

The result in the debugger if you use FirebaseVision.instance.cloudTextRecognizer():

As you can see in the photo, if you use cloudTextRecognizer (), then the text is recognized, but the empty result of the cornerPoints field for both platforms is returned
Logs
λ flutter doctor -v
[√] Flutter (Channel stable, v1.12.13+hotfix.5, on Microsoft Windows [Version 10.0.18362.535], locale en-US)
    • Flutter version 1.12.13+hotfix.5 at D:\Android\flutter_sdk\flutter
    • Framework revision 27321ebbad (12 days ago), 2019-12-10 18:15:01 -0800
    • Engine revision 2994f7e1e6
    • Dart version 2.7.0

[√] Android toolchain - develop for Android devices (Android SDK version 29.0.2)
    • Android SDK at D:\Android\Sdk
    • Android NDK location not configured (optional; useful for native profiling support)
    • Platform android-29, build-tools 29.0.2
    • Java binary at: C:\Program Files\Android\Android Studio\jre\bin\java
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)
    • All Android licenses accepted.

[√] Android Studio (version 3.5)
    • Android Studio at C:\Program Files\Android\Android Studio
    • Flutter plugin version 42.1.1
    • Dart plugin version 191.8593
    • Java version OpenJDK Runtime Environment (build 1.8.0_202-release-1483-b03)

[√] VS Code (version 1.41.1)
    • VS Code at C:\Users\Arro\AppData\Local\Programs\Microsoft VS Code
    • Flutter extension version 3.7.1

[√] Connected device (1 available)
    • Redmi Note 4 • 192.168.100.15:5555 • android-arm64 • Android 7.0 (API 24)

• No issues found!

pubspec.yaml
firebase_ml_vision: ^0.9.3+5

Given the age of this issue and it's inactivity I'm going to go ahead and close it in favour of trying the latest versions of ML Vision which ships with newer on device models. Thanks

Hi Salakar,
I've stumbled across the exact same issue (I'm using the newest plugin version: firebase_ml_vision 0.12.0+1).
I was wondering, did you manage to find a solution to this issue?

authors: ArtRog Salakar Smux1demo

repo: FirebaseExtended/flutterfire


text:
App receives different push notification structure (in onMessage) on Android and iOS, document ways o handle this in the app

I am sending push notification to iOS. When run-in gin emulator I receive push notification with notification object notification":{"body":"Test","title":"Test" }, however when app is built and deployed I receive same title in "app": {"alert": {"title": "test"} }
It is deployed on Apple 6 but iOS 13.
This behaviour looks similar to message["data"] ?? message however not mentioned anywhere in docs.
How should I behave? Should I add same check or it is a bug?
Also body property is missing

@vytautas-pranskunas-
Please provide flutter doctor -v and a minimal complete reproducible code sample.
Thanks.

class PushNotificationsService {
  final FirebaseMessaging _firebaseMessaging = new FirebaseMessaging();
  final _bgService = GetIt.instance<BackgroundNotificationsService>();
  final _securityService = GetIt.instance<SecurityService>();
  final _authService = GetIt.instance<AuthService>();
  final _fgService = GetIt.instance<ForegroundNotificationsService>();

  init() async {
    if (Platform.isIOS) {
      _firebaseMessaging
          .requestNotificationPermissions(IosNotificationSettings());
    }

    _firebaseMessaging.configure(
      onMessage: (Map<String, dynamic> message) async {
        _fgService.handle(message['data'] ?? message); // If you look at message here you will see that structure when running on iPhone 6 with iOS 12
      },
      onBackgroundMessage: Platform.isIOS ? null : myBackgroundMessageHandler,
      onLaunch: (Map<String, dynamic> message) async {
        _bgService.handle(message['data'] ?? message, true);
      },
      onResume: (Map<String, dynamic> message) async {
        _bgService.handle(message['data'] ?? message, false);
      },
    );
  }

}

Hi @vytautas-pranskunas-
I think it is working as intended since both platforms have different notifications requirements but labelling the issue for documentation

I see your screenshots and i see that body is there but for it did not worked. I had this code:
_fgService.handle(message['data'] ?? message,
            message['notification'] ?? message["aps"]["alert"]);

and inside handle function i was calling
notification['body']

my push notification structure sent from rst client was:
{
     "notification": {
       "title": "Test User",
       "text": "Test message test message"
     },
     "data": {
     	"click_action": "FLUTTER_NOTIFICATION_CLICK",
     },
     "priority": "high",
     "to": ..."
   }

Hi @vytautas-pranskunas-
Using the official example with the following has no issue son latest packages with body

complete code sample
// Copyright 2019 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'dart:async';

import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart';

Future<dynamic> myBackgroundMessageHandler(Map<String, dynamic> message) {
  if (message.containsKey('data')) {
    // Handle data message
    final dynamic data = message['data'];
  }

  if (message.containsKey('notification')) {
    // Handle notification message
    final dynamic notification = message['notification'];
  }

  // Or do other work.
}

final Map<String, Item> _items = <String, Item>{};
Item _itemForMessage(Map<String, dynamic> message) {
  final dynamic data = message['data'] ?? message;
  final String itemId = data['id'];
  final Item item = _items.putIfAbsent(itemId, () => Item(itemId: itemId))
    ..status = data['status'];
  return item;
}

class Item {
  Item({this.itemId});
  final String itemId;

  StreamController<Item> _controller = StreamController<Item>.broadcast();
  Stream<Item> get onChanged => _controller.stream;

  String _status;
  String get status => _status;
  set status(String value) {
    _status = value;
    _controller.add(this);
  }

  static final Map<String, Route<void>> routes = <String, Route<void>>{};
  Route<void> get route {
    final String routeName = '/detail/$itemId';
    return routes.putIfAbsent(
      routeName,
      () => MaterialPageRoute<void>(
        settings: RouteSettings(name: routeName),
        builder: (BuildContext context) => DetailPage(itemId),
      ),
    );
  }
}

class DetailPage extends StatefulWidget {
  DetailPage(this.itemId);
  final String itemId;
  @override
  _DetailPageState createState() => _DetailPageState();
}

class _DetailPageState extends State<DetailPage> {
  Item _item;
  StreamSubscription<Item> _subscription;

  @override
  void initState() {
    super.initState();
    _item = _items[widget.itemId];
    _subscription = _item.onChanged.listen((Item item) {
      if (!mounted) {
        _subscription.cancel();
      } else {
        setState(() {
          _item = item;
        });
      }
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text("Item ${_item.itemId}"),
      ),
      body: Material(
        child: Center(child: Text("Item status: ${_item.status}")),
      ),
    );
  }
}

class PushMessagingExample extends StatefulWidget {
  @override
  _PushMessagingExampleState createState() => _PushMessagingExampleState();
}

class _PushMessagingExampleState extends State<PushMessagingExample> {
  String _homeScreenText = "Waiting for token...";
  bool _topicButtonsDisabled = false;

  final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
  final TextEditingController _topicController =
      TextEditingController(text: 'topic');

  Widget _buildDialog(BuildContext context, Item item) {
    return AlertDialog(
      content: Text("Item ${item.itemId} has been updated"),
      actions: <Widget>[
        FlatButton(
          child: const Text('CLOSE'),
          onPressed: () {
            Navigator.pop(context, false);
          },
        ),
        FlatButton(
          child: const Text('SHOW'),
          onPressed: () {
            Navigator.pop(context, true);
          },
        ),
      ],
    );
  }

  void _showItemDialog(Map<String, dynamic> message) {
    showDialog<bool>(
      context: context,
      builder: (_) => _buildDialog(context, _itemForMessage(message)),
    ).then((bool shouldNavigate) {
      if (shouldNavigate == true) {
        _navigateToItemDetail(message);
      }
    });
  }

  void _navigateToItemDetail(Map<String, dynamic> message) {
    final Item item = _itemForMessage(message);
    // Clear away dialogs
    Navigator.popUntil(context, (Route<dynamic> route) => route is PageRoute);
    if (!item.route.isCurrent) {
      Navigator.push(context, item.route);
    }
  }

  @override
  void initState() {
    super.initState();
    _firebaseMessaging.configure(
      onMessage: (Map<String, dynamic> message) async {
        print("onMessage: $message");
        _showItemDialog(message);
      },
      onBackgroundMessage: myBackgroundMessageHandler,
      onLaunch: (Map<String, dynamic> message) async {
        print("onLaunch: $message");
        _navigateToItemDetail(message);
      },
      onResume: (Map<String, dynamic> message) async {
        print("onResume: $message");
        _navigateToItemDetail(message);
      },
    );
    _firebaseMessaging.requestNotificationPermissions(
        const IosNotificationSettings(
            sound: true, badge: true, alert: true, provisional: true));
    _firebaseMessaging.onIosSettingsRegistered
        .listen((IosNotificationSettings settings) {
      print("Settings registered: $settings");
    });
    _firebaseMessaging.getToken().then((String token) {
      assert(token != null);
      setState(() {
        _homeScreenText = "Push Messaging token: $token";
      });
      print(_homeScreenText);
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
        appBar: AppBar(
          title: const Text('Push Messaging Demo'),
        ),
        // For testing -- simulate a message being received
        floatingActionButton: FloatingActionButton(
          onPressed: () => _showItemDialog(<String, dynamic>{
            "data": <String, String>{
              "id": "2",
              "status": "out of stock",
            },
          }),
          tooltip: 'Simulate Message',
          child: const Icon(Icons.message),
        ),
        body: Material(
          child: Column(
            children: <Widget>[
              Center(
                child: Text(_homeScreenText),
              ),
              Row(children: <Widget>[
                Expanded(
                  child: TextField(
                      controller: _topicController,
                      onChanged: (String v) {
                        setState(() {
                          _topicButtonsDisabled = v.isEmpty;
                        });
                      }),
                ),
                FlatButton(
                  child: const Text("subscribe"),
                  onPressed: _topicButtonsDisabled
                      ? null
                      : () {
                          _firebaseMessaging
                              .subscribeToTopic(_topicController.text);
                          _clearTopicText();
                        },
                ),
                FlatButton(
                  child: const Text("unsubscribe"),
                  onPressed: _topicButtonsDisabled
                      ? null
                      : () {
                          _firebaseMessaging
                              .unsubscribeFromTopic(_topicController.text);
                          _clearTopicText();
                        },
                ),
              ])
            ],
          ),
        ));
  }

  void _clearTopicText() {
    setState(() {
      _topicController.text = "";
      _topicButtonsDisabled = true;
    });
  }
}

void main() async {
  WidgetsFlutterBinding.ensureInitialized();
  FirebaseApp app = await Firebase.initializeApp();
  assert(app != null);
  runApp(
    MaterialApp(
      home: PushMessagingExample(),
    ),
  );
}

const functions = require('firebase-functions');

// // Create and Deploy Your First Cloud Functions
// // https://firebase.google.com/docs/functions/write-firebase-functions
//
// exports.helloWorld = functions.https.onRequest((request, response) => {
//  response.send("Hello from Firebase!");
// });

const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);

const payload = {
    'notification': {
        'title': 'this is a title',
        'body': 'this is a body',

    },
    'data': {
        'click_action': 'FLUTTER_NOTIFICATION_CLICK',
        'id': '1',
        'status': 'done'
    }
};

exports.sendnotification = functions.https.onRequest((request, response) => {

    const tokens = request.query.fcm || "Unknown"
    response.send("Notification is sent to".concat(tokens));

    return admin.messaging().sendToDevice(tokens, payload);
});

Closing in favour of using the latest packages, as mentioned above.

authors: Salakar TahaTesser darshankawar vytautas-pranskunas-


text:
🐛 [firebase_storage 4.0.1] Can't upload image to firebase in flutter web version, is this possible today? Everything is fine on Android

Bug report
Describe the bug
Overflow on channel: plugins.flutter.io/firebase_storage.  Messages on this channel are being discarded in FIFO fashion.  The engine may not be running or you need to adjust the buffer size if of the channel.
Error: MissingPluginException(No implementation found for method StorageReference#putData on channel plugins.flutter.io/firebase_storage)
    at Object.throw_ [as throw] (http://localhost:55439/dart_sdk.js:4328:11)
    at MethodChannel._invokeMethod (http://localhost:55439/packages/flutter/src/services/system_channels.dart.lib.js:942:21)
    at _invokeMethod.next (<anonymous>)
    at http://localhost:55439/dart_sdk.js:37593:33
    at _RootZone.runUnary (http://localhost:55439/dart_sdk.js:37447:58)
    at _FutureListener.thenAwait.handleValue (http://localhost:55439/dart_sdk.js:32424:29)
    at handleValueCallback (http://localhost:55439/dart_sdk.js:32971:49)
    at Function._propagateToListeners (http://localhost:55439/dart_sdk.js:33009:17)
    at _Future.new.[_completeWithValue] (http://localhost:55439/dart_sdk.js:32852:23)
    at async._AsyncCallbackEntry.new.callback (http://localhost:55439/dart_sdk.js:32874:35)
    at Object._microtaskLoop (http://localhost:55439/dart_sdk.js:37708:13)
    at _startMicrotaskLoop (http://localhost:55439/dart_sdk.js:37714:13)
    at http://localhost:55439/dart_sdk.js:33226:9

Steps to reproduce
mydependencies:
dependencies:
  flutter:
    sdk: flutter
  cloud_firestore: ^0.14.1+2
  firebase_core: ^0.5.0+1
  cloud_functions: 0.7.0-dev.2
  firebase_storage: ^4.0.1
  firebase_auth: ^0.18.1+1

index.html:
<script src="https://www.gstatic.com/firebasejs/7.14.4/firebase-app.js"></script>
  <script src="https://www.gstatic.com/firebasejs/7.14.4/firebase-firestore.js"></script>
  <script src="https://www.gstatic.com/firebasejs/7.14.4/firebase-auth.js"></script>
  <script src="https://www.gstatic.com/firebasejs/7.14.4/firebase-functions.js"></script>
  <script src="https://www.gstatic.com/firebasejs/7.14.4/firebase-storage.js"></script>

my code:
class WebImagePicker implements ImagePickerUniversal {
  Future<Map<String, dynamic>> pickImage() async {
    Map<String, dynamic> data = {};
    final html.FileUploadInputElement input = html.FileUploadInputElement();
    input..accept = 'image/*';
    input.click();
    await input.onChange.first;
    if (input.files.isEmpty) return null;
    final reader = html.FileReader();
    reader.readAsArrayBuffer(input.files[0]);
    await reader.onLoad.first;
    final encoded = reader.result as Uint8List;
    final imageName = input.files?.first?.name;

    data.addAll({'name': imageName, 'file': encoded, 'museumDir': 'Иванов'});
    StorageRefere

Firebase Storage currently doesn't support Web functionality. I'd advise you to use Firebase Dart plugin for web. It has all the functionality you need.

Hi @Fitz1991
As stated above, there is no web yet in firebase_storage package
https://github.com/FirebaseExtended/flutterfire/issues/1972
Closing as duplicate
Thank you

authors: Fitz1991 TahaTesser Tihan-Nico


text:
🐛 [firebase_analytics] Firebase analytics web dependency problem

Firebase analytics WEB dependency problem. Need to update WEB dependency from firebase to latest version

Firebase analytics WEB depends on firebase ^7.3.0 (latest is 9.0.0)
firebase ^7.3.0 depends on http >=0.11.3 <0.13.0
And I am using http 0.13.0
If someone can, please update version of firebase in analytics_web to latest (null safe) version. Thanks.

I don't use web version, if there is any way to exclude web version, please, let me know.

Same issue here.

@dukaric1991 please just add a 👍 instead of adding "same issue here" comments. This just sends unnecessary notifications to everyone subscribed to an issue. Thanks :)

Because every version of firebase_analytics_web depends on firebase ^7.3.0 which depends on http >=0.11.3 <0.13.0, every version of firebase_analytics_web requires http >=0.11.3 <0.13.0.
And because firebase_analytics >=7.1.0 depends on firebase_analytics_web ^0.2.0, firebase_analytics >=7.1.0 requires http >=0.11.3 <0.13.0.

Important issue.

any temporary solution for this?

Hi @Zeynal7
I see there's an open issue addressing the case you described https://github.com/FirebaseExtended/flutterfire/issues/5202.
Please follow up on that issue, I'm closing the current one as a duplicate.
If you disagree, please write in the comments and I will reopen it.
Thank you

authors: NebiSarigul Zeynal7 bhagirath cbenhagen dsgriffin dukaric1991 markusaksli-nc


text:
🛑 Liga Ardyti is down

In 45fe7db, Liga Ardyti (https://ligaardyti.com.ar) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Liga Ardyti is back up in a8091f0.

repo: FirenzeDigital/upptime


text:
🛑 Schools project is down

In d768c1a, Schools project (http://schools.fitzmuseum.cam.ac.uk) was down:

HTTP code: 0
Response time: 0 ms

Resolved: Schools project is back up in 7349957.

repo: FitzwilliamMuseum/uptime


text:
Fact results inaccurate (distro module issue)?

Describe the bug
This could be a me issue (I am a neophyte to pyinfra). I have several "older Linux distributions" under my care.  When running pyinfra inventory.py fact server.LinuxDistribution, the facts returned for these servers match the host I'm running pyinfra from, not the target.  Although the files appear to be returned successfully, the distro module is unable to interpret correctly  (see the following output):
$ pyinfra -vvv inventory.py fact server.LinuxDistribution

--> Loading config...

--> Loading inventory...

--> Connecting to hosts...
    [server1] Connected
    [server2] Connected

--> Gathering facts...
[server2] >>> sh -c 'cd /etc/ && for file in $(ls -pdL *-release | grep -v /); do echo "/etc/${file}"; cat "/etc/${file}"; echo ---; done'
[server1] >>> sh -c 'cd /etc/ && for file in $(ls -pdL *-release | grep -v /); do echo "/etc/${file}"; cat "/etc/${file}"; echo ---; done'
[server1] /etc/lsb-release
[server1] DISTRIB_ID=Ubuntu
[server1] DISTRIB_RELEASE=9.10
[server1] DISTRIB_CODENAME=karmic
[server1] DISTRIB_DESCRIPTION="Ubuntu 9.10"
[server1] ---
    [server1] Loaded fact server.LinuxDistribution
[server2] /etc/centos-release
[server2] CentOS release 6.10 (Final)
[server2] ---
[server2] /etc/redhat-release
[server2] CentOS release 6.10 (Final)
[server2] ---
[server2] /etc/system-release
[server2] CentOS release 6.10 (Final)
[server2] ---
    [server2] Loaded fact server.LinuxDistribution

--> Fact data for: server.LinuxDistribution
{
    "server1": {
        "name": "Debian",
        "major": 11,
        "minor": null,
        "release_meta": {
            "PRETTY_NAME": "Debian GNU/Linux 11 (bullseye)",
            "NAME": "Debian GNU/Linux",
            "VERSION_ID": "11",
            "VERSION": "11 (bullseye)",
            "VERSION_CODENAME": "bullseye",
            "ID": "debian",
            "HOME_URL": "https://www.debian.org/",
            "SUPPORT_URL": "https://www.debian.org/support",
            "BUG_REPORT_URL": "https://bugs.debian.org/",
            "CODENAME": "bullseye"
        }
    },
    "server2": {
        "name": "Debian",
        "major": 11,
        "minor": null,
        "release_meta": {
            "PRETTY_NAME": "Debian GNU/Linux 11 (bullseye)",
            "NAME": "Debian GNU/Linux",
            "VERSION_ID": "11",
            "VERSION": "11 (bullseye)",
            "VERSION_CODENAME": "bullseye",
            "ID": "debian",
            "HOME_URL": "https://www.debian.org/",
            "SUPPORT_URL": "https://www.debian.org/support",
            "BUG_REPORT_URL": "https://bugs.debian.org/",
            "CODENAME": "bullseye"
        }
    }
}

The result should definitely not be Debian 11 for a Centos 6 and Ubuntu 9.04 (I did say they were old) servers.  While I'm not expecting facts to necessarily identify these older servers, defaulting to the underlying host's OS is unexpected behaviour.
To Reproduce
$ pyinfra inventory.py fact server.LinuxDistribution
(where inventory.py points to a couple of archaic distributions).
Host is an up to date Debian 11 laptop.
Expected behavior
Either undefined (if distro module was unable to find an appropriate match), or the appropriate response.
Meta

Include output of pyinfra --support.

--> Support information:

    If you are having issues with pyinfra or wish to make feature requests, please
    check out the GitHub issues at https://github.com/Fizzadar/pyinfra/issues .
    When adding an issue, be sure to include the following:

    System: Linux
      Platform: Linux-5.10.0-20-amd64-x86_64-with-glibc2.31
      Release: 5.10.0-20-amd64
      Machine: x86_64
    pyinfra: v2.6
    Executable: /home/dt/Work/pyinfra/venv/bin/pyinfra
    Python: 3.9.2 (CPython, GCC 10.2.1 20210110)

How was pyinfra installed (source/pip)?
Via pip in venv.

Consider including output with -vv and --debug.
As noted above

Additional info
Version of distro is v1.8.0.  Output captured while debugging from distro's return result (note: showing  os_release_file pointing inappropriately to the localhost's /usr/lib/os-release):

LinuxDistribution(os_release_file='/usr/lib/os-release', distro_release_file='/tmp/tmpis7_en3u/etc/centos-release', include_lsb=False, include_uname=False, include_oslevel=True, root_dir=None, _os_release_info={'pretty_name': 'Debian GNU/Linux 11 (bullseye)', 'name': 'Debian GNU/Linux', 'version_id': '11', 'version': '11 (bullseye)', 'version_codename': 'bullseye', 'id': 'debian', 'home_url': 'https://www.debian.org/', 'support_url': 'https://www.debian.org/support', 'bug_report_url': 'https://bugs.debian.org/', 'codename': 'bullseye', 'release_codename': 'bullseye'}, _lsb_release_info={}, _distro_release_info={'name': 'CentOS', 'version_id': '6.10', 'codename': 'Final', 'id': 'centos'}, _uname_info={}, _oslevel_info='')

Additional additional info
I am enjoying pyinfra much more than Ansible (irrespective of this issue :) )

So, poking at this further (as such is my wont), it appears that patching distro._UNIXCONFDIR as pyinfra currently does breaks the result of distro.LinuxDistribution() since at least distro v1.6.0 when the root_dir named parameter was introduced.  With the attached test script, you can see the difference in the return result (using the files returned by Centos 6 fact retrieval) when using the patched distro._UNIXCONFDIR variable versus using the named root_dir parameter.  The fix is relatively simple, but I'm not sure what (if anything) this would break.  At a bare minimum, distro would need to be pinned >= 1.6.0 for the root_dir named parameter to work, but given that the distro package was moved subordinate to distro in v1.7.0 (i.e. from distro import distro) this would need to be done anyway.
new_rootdir_distro:
{'id': 'centos',
 'major': 6,
 'minor': 10,
 'name': 'CentOS',
 'release_meta': {}}

old_rootdir_distro:
{'id': 'debian',
 'major': 11,
 'minor': None,
 'name': 'Debian '
         'GNU/Linux',
 'release_meta': {'BUG_REPORT_URL': 'https://bugs.debian.org/',
                  'CODENAME': 'bullseye',
                  'HOME_URL': 'https://www.debian.org/',
                  'ID': 'debian',
                  'NAME': 'Debian '
                          'GNU/Linux',
                  'PRETTY_NAME': 'Debian '
                                 'GNU/Linux '
                                 '11 '
                                 '(bullseye)',
                  'SUPPORT_URL': 'https://www.debian.org/support',
                  'VERSION': '11 '
                             '(bullseye)',
                  'VERSION_CODENAME': 'bullseye',
                  'VERSION_ID': '11'}}

distro_test.py.txt

Thank you for digging into this @handcraftedcomputers - indeed it looks like there's another variable that needs patching to cover this, but I think it's a good time to bump the minimum version up to 1.6 and remove the patching hack entirely.

Made this change: https://github.com/Fizzadar/pyinfra/commit/06d61c9e9fb6980228afe02cec44a3f8cd815a1a.

Fix was released in 2.6.2!

authors: Fizzadar handcraftedcomputers

repo: Fizzadar/pyinfra


text:
.NET 5.0 platform

Added conditional SDK selection
(As .NET 5 uses 'Microsoft.NET.Sdk' instead
of 'Microsoft.NET.Sdk.WindowsDesktop')
Added .NET 5.0 Package includes

currently validating everything
but yet to see any problems

Awesome thank you. I will also do some checks soon so we can merge this change and do a new release.

i updated the versioning and cleaned the packagereferences to the newer format that you already used for the rest. will run functional tests today in a personal project completely built on .net 5.0

Do you think we can soon use FlaUI with .NET5?

Do you think we can soon use FlaUI with .NET5?

I am actually using it on .net 5.0 currently. The project isn't finalized yet, but everything seems to work just fine @sharpordie

I am actually using it on .net 5.0 currently. The project isn't finalized yet, but everything seems to work just fine @sharpordie

I made a new commit on your behalf which should work fine: https://github.com/FlaUI/FlaUI/commit/8d736cbd36bb6b6e1957ee7765f3ab852c520326
So this PR should be obsolete. Thanks for your help!

authors: BeatSkip Roemer sharpordie

repo: FlaUI/FlaUI


text:
Add Polyriddim by phonon

Song Name
Polyriddim
Artist Name
phonon
Source
Youtube
Youtube Link
zsnLglY48YrlZIK2
Direct File Link
No response
Song ID
467339
Start Offset [ms]
54
Extra
Created from Auto Nong.
Created for level: 108370062

reject
invalid YouTube link

authors: SpuckwasserDE Zephyrlawg

repo: FlafyDev/auto-nong-indexes


text:
Add Going for the kill (Toji) by Rustage

Song Name
Going for the kill (Toji)
Artist Name
Rustage
Source
Youtube
Youtube Link
oR4i3akwWY0
Direct File Link
No response
Song ID
467339
Start Offset [ms]
0
Extra
Created from Auto Nong.
Created for level: 109256508
Downloaded: Yes

reject
popular songs like "At the Speed of light" are too inconvenient to be replaced by smth unrelated and are therefore usually rejected.
Note that you can still use the song yourself, but it won't be public


text:
Add That music by Crucified

Song Name
That music
Artist Name
Crucified
Source
Youtube
Youtube Link
DM4AZJqW5nE
Direct File Link
No response
Song ID
467339
Start Offset [ms]
5000
Extra
Created from Auto Nong.
Created for level: 107412538

reject
popular songs like "At the speed of light" are not good songs to be replaced by smth unrelated and therefore usually rejected

authors: GDFainter SpuckwasserDE


text:
Movie list cli doesn't have forget option

Add forget option to fire forget event

Not actually relevant, should only fire forget events for exact titles, and movie list has none of those (just movie titles)

repo: Flexget/Flexget


text:
Any kind of intellij activity causes people to follow in web editor

I think something isn't working right.

Can't reproduce now. Maybe I was in follow mode in some way.

repo: Floobits/floobits-intellij


text:
Restart each time Obsidian restarts???

Hello there! I love this plugin - especially for jts functionality in adding custom icon sets. My problem, however, is that every single time I restart Obsidian (multiple times per day) I return to find zero icons in my file explorer. Despite having chosen and allocated icons to each folder, and despite being able to choose new icons upon restart, the ones I've already chosen are missing.
Holding down a folder (bringing up the menu) it offers the options Change and Remove Icon. Any reason for this? Im at my wit's end and will ultimately decide not to use the plugin at all if i can't make it work.
Screenshots
First instance: Icons chosen and displayed:

After reload:

Menu options after reload:

Hey, sorry to hear that. Do you use any sort of syncing provider? If so, what kind?

Does the issue only exist on mobile?

Closing because of inactivity.

authors: FlorianWoelki MsHazelArabia

repo: FlorianWoelki/obsidian-iconize


text:
Conflicts with Simple Voice Chat

Hello, this mod prevents the client initialization of Simple Voice Chat.
Minecraft: 1.18.2
Fabric: 0.14.6
API: 0.53.4+1.18.2
Rebark: rebark-fabric-1.18.2-1.3.4
Simple Voice Chat: 1.18.2-2.2.44

Logs please.

Serverlog: https://bytebin.lucko.me/JZClT9p2R1
Clientlog: https://bytebin.lucko.me/yTyFd92a7W

I don't see any errors issues related to rebark.

Like I said, there is nothing in the log. It took 2 hours for me to identify the causing mod, your one is the causing.

What do you want me to do about it then? If I don't have any logs to show why a crash occurs, I can't reasonably debug it. Do you want me to pray to the minecraft modding gods in order to be enlightened on the patch for this bug?

Like I said, there is nothing in the log.

You have also never mentioned nothing existing in the logs.
Besides, I don't even see any crashes in the logs at all, just normal server/client shutdown, but I could be missing something.

I don't know what you did to YOUR code. But if you don't want to fix it I just remove your mod from my modpack. No need to bother with you here.

I don't know what you did to YOUR code. If praying to modding god help, does it. But if you don't want to fix it I just remove your mod from my modpack. No need to bother with you here.
I never talked about a crash, have you at least looked at the code of SVC to see if you could cause this?


text:
[BUG] RTL (right to left) content support in chatbot UI

Not sure whether this is a bug / missing feature etc...- but is it possibe to support right to left langauges (Hebrew, Arabic etc..) in the chat UI - basically adding <html dir="rtl"... in the UI container body - is it possible to have some "JS/html hook" for this ? not supporting this makes the UI looks bad mainly with response text that has some bullets numbers etc...
Describe the bug
A clear and concise description of what the bug is.
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Flow
If applicable, add exported flow in order to help replicating the problem.
Setup

Installation [e.g. docker, npx flowise start, pnpm start]
Flowise Version [e.g. 1.2.11]
OS: [e.g. macOS, Windows, Linux]
Browser [e.g. chrome, safari]

Additional context
Add any other context about the problem here.

we're using react-markdown library, you can modify to add RTL support - https://stackoverflow.com/questions/2258028/rtl-in-markdown

ok - thanks for the reference - you mean - doing it in a custom private branch ?

yeah, you can try on your forked branch

ok...thanks - but if you plan to fix/enhance it at some point then it would be nice to have a default behaviour of auto direction based on the content language and then the ability to override the default behaviour with some toggle button (RTL/LTR).

repo: FlowiseAI/Flowise


text:
[BUG] assistant always error?

While using Flowise via Docker, I created an assistant successfully. However, after chatting for some time, an error occurs when attempting to send a message. The error message displayed is:
Error: predictionsServices.buildChatflow - Unauthorized.
Steps to Reproduce

Set up Flowise using Docker as described in the documentation.
Create an assistant/chatbot with a valid configuration.
Begin interacting with the assistant.
After some time, attempt to send another message.
Observe the error.

Expected Behavior
The chat should proceed without interruptions, and responses should be generated successfully.
Actual Behavior
An error occurs during the interaction, preventing further communication with the assistant. The following error message appears:
Error: predictionsServices.buildChatflow - Unauthorized.

can you check if you have any API key on the chatflow? if yes, try selecting No Authorization:

authors: HenryHengZJ isikepalaku


text:
New Term Request: LHAV4

For new term requests, please provide the following information:
Preferred term label
adult lateral horn AV4 neuron (paper needs a general term for LHAV4 neurons)
Synonyms
LHAV4
Textual definition
FBrf0255018 - parent class for all LHAV4 neurons (the line in the paper probably labels some subset)
Suggested parent term
adult lateral horn neuron
Attribution
If you would like a nanoattribution, please indicate your ORCID id

I haven't done this in the past - all LH neuron terms are specific ones rather than having grouping terms for each tract. I can see the advantages of having the grouping terms, but always a balance for useful terms v bloat.
If we make this, we probably want to make all of the other grouping terms by tract too.


text:
refactor: Resume Game Meun Complexity

The empty message can be turned into an attribute:
https://github.com/FlysonBot/Mastermind/blob/3eb4cd2002709815a6e4ffd6bec99494c2e7b9d5/src/mastermind/ui/menu/concrete_menus.py#L104-L108
Unnecessary else statement after guard condition:
https://github.com/FlysonBot/Mastermind/blob/3eb4cd2002709815a6e4ffd6bec99494c2e7b9d5/src/mastermind/ui/menu/concrete_menus.py#L121-L124
Try-Except for integer conversion can be replaced with is-digit condition:
https://github.com/FlysonBot/Mastermind/blob/3eb4cd2002709815a6e4ffd6bec99494c2e7b9d5/src/mastermind/ui/menu/concrete_menus.py#L125-L131

Refactored: 0d411a94497e110e2d378dabfeea3a8776626fc7

repo: FlysonBot/Mastermind


text:
Entity Content Links don't work

Using a quest entity content link @Quest[ID] results in a broken link, which, when hovered over, reads, Unknown Tag "Quest"
Using Foundry VTT Version 9, build 245
DnD 5e - Fifth Edition System ver. 1.5.7

HI @GregariousImpala. The maintained FQL repo is here. This is a known issue with v9 as there was a last minute breaking change ~10 days before v9 stable dropped that prevented the solution for "entity content links" w/ @Quest[ID]. A fix is to change @Quest[ID] to @JournalEntry[ID], but unfortunately that is a manual step through various areas where the link is referenced.
You can see this issue for a discussion
There is a continuation module for the quest log in the works for late Q1 release w/ an upgrade path and things will be fixed there.

authors: GregariousImpala typhonrt

repo: Forien/foundryvtt-forien-quest-log


text:
opt-in lodash features

cc/ @ryan-roemer or @exogen
I audited victory for usages of lodash, and based on what I found it seems like these opt-ins should be required for LodashModuleReplacementPlugin.These weren't enabled, and nothing seemed to break in development, which gives me pretty low confidence that I understand what is being included with these feature sets. Any insights you have would be greatly appreciated.

@exogen -- Can you shepherd this?
@boygirl -- Which parts would you like input on? For example, with paths you just need to check if any of our usage of get() or similar things is using a deep (foo.bar.baz) path or just shallow (foo) paths...

I started looking into this while hunting down this bug https://github.com/FormidableLabs/victory-chart/issues/241
I am using methods like flatten and partialRight which I would expect to fail without the feature sets included in this PR, and they don't fail which tells me I'm missing something big about how this plugin is working.

@boygirl -- Interesting. Might be nice to post a gist of the diff in the unminified bundle for victory.js itself in this PR so we can look at that here when hashing this out...

I'm not entirely sure how the webpack lodash plugin works but this bit in the code https://github.com/lodash/lodash-webpack-plugin/blob/master/src/index.js#L36 seems to suggest that if you import some module directly the features it needs will be turned on
eg. if i understood it correctly
import {flatten} from 'lodash/flatten'
flatten([])

will work because the flatten module is imported directly. might explain why flatten is working even though you didn't whitelist flattening in the options

After a little more digging, the bug I was seeing was due to iteratee is not a function which would be caused by missing the shorthands feature set.

authors: boygirl nfcampos ryan-roemer


text:
create classes for shipper, receiver, order, and position

Wie wäre es wenn shipper, receiver und order seine eigene Klassen haben. 2 Vorteile sehe ich:

Bei der Erstellung ihre Instances kann man in einer IDE wie PyCharm die Attributes sehen. Als ich deine Repo über DHL Forum gefunden habe, wusste ich nicht wie die shipper, receiver und order aussehen sollen, bis ich Beispiele in den Testen gefunden habe und irgendwann danach hast du ein Beispiel in README reingepackt.
Indirekte Dokumentation, welche Felder + wie die Struktur zu erwarten sind.

ok wenn man dieses Design macht, dann braucht man auch die Klasse Position als input für Order
Was hälst du davon?
VG
Vinh
https://github.com/FourZeroOne/python_dhl_germany/blob/master/README.md#usage

ich hab schon schemas für die Dicts jetzt angelegt. Kommt dann mit der neuen Version. Damit sollte das ganze etwas übersichtlicher werden.
Klassen an sich finde ich sehr gut. Allerdings: die Idee für diese Lib war eher als Layer für andere Systeme gedacht. Und da wollte ich so flexibel bleiben, wie ich nur kann. So kann man seine eigene Klasse implementieren und ein einfaches Mapping zu Dict erstellen. Weiß nicht, ob ein Class -> Class Mapping einfacher/schneller ist. Dazu hab ich noch zu wenig Input.
In welcher Form liegen denn deine Rohdaten vor?
Da ich mit Microservices und MongoDB arbeite, muss ich mit sehr viel dicts arbeiten. Und das jedes mal in eine Klasse zu konvertieren, nur dass der Code dann schöner ist, finde ich etwas Ressourcen fressend. Ich hab zB meinen ganzen Code von MongoEngine auf pymongo umgstellt, da die Konvertierung zur Klasse und dann wieder zu dict einfach zu lange gedauert hat. Für eine API zahlt da leider jede MS. Ich weiß nicht, ob es hier mittlerweile einen einfachen, schöneren und schnelleren Weg gibt. In JS ist es zB viel angenehmen mit dicts zu arbeiten. Wenn du dazu mehr Infos hast, wäre ich froh über deinen Input!
OrderShipmentResponse (DHL) ist auch ein dict. Bin mir noch nicht sicher, ob man hier dann eine Klasse zurückgeben sollte. Das könnte man dann aber auch via variable steuern

Ja das macht Sinn wie du beschreibst. Je mehr und detaliert man macht, desto weniger flexibel ist das ganze. Ich hatte auch den Gedanke, die Klassen auf meiner Seite zu implementieren. Nach deiner Antwort muss ich nachdenken, ob es vllt auch over engineered wäre, Klassen zu erstellen.
Meine Rohdaten sind in einem Pandas Dataframe. Ich bereite Labels in Batch vor. Früher war es noch half-manuell, dass ich CSV mit ganz viele Daten von Labels erstellt, im Geschäftskundenportal in Batch hochgeladen und drucken lassen habe.

authors: anvinh joeimer


text:
Implementation of Zenodo release integration

Added json file with zenodo metadata
Updated citing, changelog and index pages
Added an automatic zenodo badge to README.md
Updated date in CHANGELOG

Looks good to me, nice to have this integration in place 😀

repo: FraCSPy/FraCSPy


text:
Docs: add an awesome logo!

We need a cool logo, use your imagination! 😎

Added it in a PR to the readme + did some linting :)
https://github.com/FranAmorim/teatime/pull/17

authors: AndreVarandas hghazni xcyberpunkx0

repo: FranAmorim/teatime


text:
Save Favorite Broadcaster/Save to Broadcaster folder

Hello
Wonderful piece of software here!
Could you add an option to save a list of favorite broadcasters and also when saving it auto generates a folder specific to the broadcaster

Cool idea. I like 😄

A "Save favorite broadcaster seems to be what I want too, so I'm posting here.
OP mentions a "list", which is more than 1. 10 should be perfectly fine (enough), but the very simple way I imagined it first does not permit for a user-chosen amount - so maybe 5?
The way I thought of it first was basically like this: https://vgy.me/7NgXRn.png - Doing it this way there's no fuss about adding more buttons to the top/resizing them so an addition fits neatly etc, and the Search tab is displayed by default on opening so the buttons are there anyway vs having to go to a different pane between search and favorites etc. Clicking one of the buttons would simply launch a channel search for the fav.
Maybe there's a better, cleaner way to do this (the UI of this is gorgeous). I had just imagined it like this because it seems really simple/easy to add. Cheers!

Nice attempt... don't like it :D
Here's mine:
In the preferences you will be able to click some +/- buttons next to the "channel name" textbox. This way you can add unlimited favourite streamers to a list. The Textbox will be changed to a dropdownbox. This way you are able to type in the control like it was and in addition you can choose one of your favourite streamers.
The same applies to the textbox on the search panel. Just click the dropdown, choose a favourite streamer and it "search".
Pros:

Not many additional controls
Unlimited favourites
Current behaviour isn't changed
Ability to choose a favourite streamer as the "search on application startup" thingy.

Cons:

3
2
None

authors: Franiac joelang1699 obs-x

repo: Franiac/TwitchLeecher


text:
Corrupted output file on long VOD's

I was wondering if there's a maximum time or size length for a VOD to be downloaded?  The reason I ask is that the streamer I mod for, Danarachel,  just completed her 1st 48 hour 1 year anniversary sub-athon stream.  I tried downloading the vod 3 different times with the latest version of Twitch Leacher.  It took close to 8 hours to complete and didn't give any error messages, but the output mp4 file won't play and seems to be corrupted.  It is 83.1 GB long but won't even show a time length when clicking on it like others do.  I finally worked around the issue by using the built in crop feature and split it into 2 different 24 hour videos.  Is 48 hours or 83.1 GB too large to process, or should have it worked?

In a 48hr stream it is very likely that there are some dropouts and chokes. FFMPEG cannot handle those kind of hickups very well and gives up pretty fast.
As you relized, cropping is the 1st workaround. Also you could disable mp4 conversion in the preferences and go with the original .ts file.
To my knowledge there is no hard size limit to anything in TL.


text:
Error Downloading Video

Hello! I'm very new to Twitch Leecher and I'm currently using 1.8.2. I have downloaded 2 vods from Twitch before this problem occurred. They came out fine until I downloaded my third vod and it kept giving me an error. I'm so sorry if this has already been talked about, I am not good with knowing how this works so I would appreciate if anyone could help me. I've tried multiple times to try to redownload the video but it keeps saying the same thing, Error. Down below is the log that I copied from the download:

Download task has been started!
TWITCH LEECHER INFO
Version: 1.8.2
VOD INFO
VOD ID: 884218550
Selected Quality: 1920x1080@60fps (Source)
Download Url: https://www.twitch.tv/videos/884218550
Crop Start: No
Crop End: No
OUTPUT INFO
Disable Conversion: No
Output File: C:\Users\Karen\Downloads\20210122_884218550_Dead By Daylight.mp4
FFMPEG Path: C:\Program Files\Twitch Leecher\ffmpeg.exe
Temporary Download Folder: C:\Users\Karen\AppData\Local\Temp\TL_1393a6bc-0596-49b1-b3ba-218f01e5e5ba
ACCESS INFO
Token: %7B%22authorization%22%3A%7B%22forbidden%22%3Afalse%2C%22reason%22%3A%22%22%7D%2C%22chansub%22%3A%7B%22restricted_bitrates%22%3A%5B%5D%7D%2C%22device_id%22%3Anull%2C%22expires%22%3A1613098528%2C%22https_required%22%3Atrue%2C%22privileged%22%3Afalse%2C%22user_id%22%3Anull%2C%22version%22%3A2%2C%22vod_id%22%3A884218550%7D
Signature: f1f2b517e3ad5990aa4bedff7c39fa0fad043029
Sub-Only: No
Privileged: No
Creating temporary download directory 'C:\Users\Karen\AppData\Local\Temp\TL_1393a6bc-0596-49b1-b3ba-218f01e5e5ba'... done!
Retrieving m3u8 playlist urls for all VOD qualities... done!
https://dqrpb9wgowsf5.cloudfront.net/fa76f50fe93dc75ce401_pensivexd_41417833774_1611361729/chunked/index-dvr.m3u8
https://dqrpb9wgowsf5.cloudfront.net/fa76f50fe93dc75ce401_pensivexd_41417833774_1611361729/audio_only/index-dvr.m3u8
Playlist url for selected quality 1920x1080@60fps (Source) is https://dqrpb9wgowsf5.cloudfront.net/fa76f50fe93dc75ce401_pensivexd_41417833774_1611361729/chunked/index-dvr.m3u8
Retrieving playlist... done!
Parsing playlist... done!
Number of video chunks: 1672
Starting parallel video chunk download
Number of video chunks to download: 1672
Maximum connection count: 10
Parallel video chunk download is running...
Starting temporary download folder cleanup!
Deleting directory 'C:\Users\Karen\AppData\Local\Temp\TL_1393a6bc-0596-49b1-b3ba-218f01e5e5ba'... done!
Download task ended with an error!
System.AggregateException: One or more errors occurred. ---> System.AggregateException: One or more errors occurred. ---> System.IO.IOException: There is not enough space on the disk.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.File.InternalWriteAllBytes(String path, Byte[] bytes, Boolean checkHost)
at TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass57_0.b__0(VodPlaylistPart part, ParallelLoopState loopState)
at System.Threading.Tasks.Parallel.<>c__DisplayClass17_01.<ForWorker>b__1()    at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)    at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object <p0>)    --- End of inner exception stack trace ---    at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)    at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)    at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action1 body, Action2 bodyWithState, Func4 bodyWithLocal, Func1 localInit, Action1 localFinally)
at System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable1 source, ParallelOptions parallelOptions, Action1 body, Action2 bodyWithState, Action3 bodyWithStateAndIndex, Func4 bodyWithStateAndLocal, Func5 bodyWithEverything, Func1 localInit, Action1 localFinally)
at System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable1 source, ParallelOptions parallelOptions, Action2 body)
at TwitchLeecher.Services.Services.TwitchService.DownloadParts(Action1 log, Action1 setStatus, Action`1 setProgress, VodPlaylist vodPlaylist, CancellationToken cancellationToken)
at TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass51_0.b__2()
at System.Threading.Tasks.Task.Execute()
--- End of inner exception stack trace ---
---> (Inner Exception #0) System.AggregateException: One or more errors occurred. ---> System.IO.IOException: There is not enough space on the disk.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.File.InternalWriteAllBytes(String path, Byte[] bytes, Boolean checkHost)
at TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass57_0.b__0(VodPlaylistPart part, ParallelLoopState loopState)
at System.Threading.Tasks.Parallel.<>c__DisplayClass17_01.<ForWorker>b__1()    at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)    at System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object <p0>)    --- End of inner exception stack trace ---    at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)    at System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)    at System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action1 body, Action2 bodyWithState, Func4 bodyWithLocal, Func1 localInit, Action1 localFinally)
at System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable1 source, ParallelOptions parallelOptions, Action1 body, Action2 bodyWithState, Action3 bodyWithStateAndIndex, Func4 bodyWithStateAndLocal, Func5 bodyWithEverything, Func1 localInit, Action1 localFinally)
at System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable1 source, ParallelOptions parallelOptions, Action2 body)
at TwitchLeecher.Services.Services.TwitchService.DownloadParts(Action1 log, Action1 setStatus, Action`1 setProgress, VodPlaylist vodPlaylist, CancellationToken cancellationToken)
at TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass51_0.b__2()
at System.Threading.Tasks.Task.Execute()
---> (Inner Exception #0) System.IO.IOException: There is not enough space on the disk.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.File.InternalWriteAllBytes(String path, Byte[] bytes, Boolean checkHost)
at TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass57_0.b__0(VodPlaylistPart part, ParallelLoopState loopState)
at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.b__1()
at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )<---
---> (Inner Exception #1) System.IO.IOException: There is not enough space on the disk.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.File.InternalWriteAllBytes(String path, Byte[] bytes, Boolean checkHost)
at TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass57_0.b__0(VodPlaylistPart part, ParallelLoopState loopState)
at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.b__1()
at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )<---
---> (Inner Exception #2) System.IO.IOException: There is not enough space on the disk.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.File.InternalWriteAllBytes(String path, Byte[] bytes, Boolean checkHost)
at TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass57_0.b__0(VodPlaylistPart part, ParallelLoopState loopState)
at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.b__1()
at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )<---
---> (Inner Exception #3) System.IO.IOException: There is not enough space on the disk.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.File.InternalWriteAllBytes(String path, Byte[] bytes, Boolean checkHost)
at TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass57_0.b__0(VodPlaylistPart part, ParallelLoopState loopState)
at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.b__1()
at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )<---
---> (Inner Exception #4) System.IO.IOException: There is not enough space on the disk.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.File.InternalWriteAllBytes(String path, Byte[] bytes, Boolean checkHost)
at TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass57_0.b__0(VodPlaylistPart part, ParallelLoopState loopState)
at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.b__1()
at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )<---
---> (Inner Exception #5) System.IO.IOException: There is not enough space on the disk.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.File.InternalWriteAllBytes(String path, Byte[] bytes, Boolean checkHost)
at TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass57_0.b__0(VodPlaylistPart part, ParallelLoopState loopState)
at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.b__1()
at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )<---
---> (Inner Exception #6) System.IO.IOException: There is not enough space on the disk.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.File.InternalWriteAllBytes(String path, Byte[] bytes, Boolean checkHost)
at TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass57_0.b__0(VodPlaylistPart part, ParallelLoopState loopState)
at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.b__1()
at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )<---
---> (Inner Exception #7) System.IO.IOException: There is not enough space on the disk.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.File.InternalWriteAllBytes(String path, Byte[] bytes, Boolean checkHost)
at TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass57_0.b__0(VodPlaylistPart part, ParallelLoopState loopState)
at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.b__1()
at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )<---
---> (Inner Exception #8) System.IO.IOException: There is not enough space on the disk.
at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
at System.IO.FileStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.File.InternalWriteAllBytes(String path, Byte[] bytes, Boolean checkHost)
at TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass57_0.b__0(VodPlaylistPart part, ParallelLoopState loopState)
at System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.b__1()
at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
at System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )<---
<---

There is not enough space on the disk
Pretty clear message 😄
You have to check the paths in the preferences. Check the temporary download folder and the output download folder. Per default the temporary folder is on C:, so this could be your issue?

I have the same issue, but even if I reset the Preferences or set the temporary folder to another, the issue is still there.

@JoniFresh We need valuable information. "It doesn't work" does not help. What folders? What drives? What TL version? What video? My magical mind reading device is currently offline 😄

I am on Version 1.8.2. In the beginning, i wanted to download it to a folder on my desktop which is on my D: drive. I tried to use my Download folder(also on D:) and I tried to use a folder on my C: drive. It worked on one 15 sec VOD (with the folder on my desktop) but after that I always got an error when the download was on 100% even though I didnt change anything in the beginning(the whole thing with the other folders was to search for the problem after I got the error). VOD:https://www.twitch.tv/videos/906097114. Sorry for my confusing writing :)
LOGS:
Download task has been started!
TWITCH LEECHER INFO
Version: 1.8.2
VOD INFO
VOD ID: 907338248
Selected Quality: 1920x1080@60fps (Source)
Download Url: https://www.twitch.tv/videos/907338248
Crop Start: Yes (02:30:00)
Crop End: Yes (02:50:00)
OUTPUT INFO
Disable Conversion: No
Output File: D:\Desktop,Downloads, etc\Kaan\20210209_907338248_Rocket League.mp4
FFMPEG Path: C:\Program Files\Twitch Leecher\ffmpeg.exe
Temporary Download Folder: D:\Desktop,Downloads, etc\Kaan\Temporary\TL_d974cede-bcdb-403c-a250-1092b4eb66ad
ACCESS INFO
Token: %7B%22authorization%22%3A%7B%22forbidden%22%3Afalse%2C%22reason%22%3A%22%22%7D%2C%22chansub%22%3A%7B%22restricted_bitrates%22%3A%5B%5D%7D%2C%22device_id%22%3Anull%2C%22expires%22%3A1613215682%2C%22https_required%22%3Atrue%2C%22privileged%22%3Afalse%2C%22user_id%22%3Anull%2C%22version%22%3A2%2C%22vod_id%22%3A907338248%7D
Signature: 85c4f6cba32541ec21b2e2cee7d76a17f2b50395
Sub-Only: No
Privileged: No
Creating temporary download directory 'D:\Desktop,Downloads, etc\Kaan\Temporary\TL_d974cede-bcdb-403c-a250-1092b4eb66ad'... done!
Retrieving m3u8 playlist urls for all VOD qualities... done!
https://dqrpb9wgowsf5.cloudfront.net/857551764b9c26f3779e_kaaanez_41051379276_1612889909/chunked/index-muted-TR732WG3UM.m3u8
https://dqrpb9wgowsf5.cloudfront.net/857551764b9c26f3779e_kaaanez_41051379276_1612889909/audio_only/index-muted-TR732WG3UM.m3u8
Playlist url for selected quality 1920x1080@60fps (Source) is https://dqrpb9wgowsf5.cloudfront.net/857551764b9c26f3779e_kaaanez_41051379276_1612889909/chunked/index-muted-TR732WG3UM.m3u8
Retrieving playlist... done!
Parsing playlist... done!
Number of video chunks: 1547
Starting parallel video chunk download
Number of video chunks to download: 97
Maximum connection count: 10
Parallel video chunk download is running...
Starting temporary download folder cleanup!
Deleting directory 'D:\Desktop,Downloads, etc\Kaan\Temporary\TL_d974cede-bcdb-403c-a250-1092b4eb66ad'... done!
Download task ended with an error!
System.AggregateException: Mindestens ein Fehler ist aufgetreten. ---> System.AggregateException: Mindestens ein Fehler ist aufgetreten. ---> System.IO.IOException: Es steht nicht genug Speicherplatz auf dem Datenträger zur Verfügung.
bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
bei System.IO.FileStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count)
bei System.IO.File.InternalWriteAllBytes(String path, Byte[] bytes, Boolean checkHost)
bei TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass57_0.b__0(VodPlaylistPart part, ParallelLoopState loopState)
bei System.Threading.Tasks.Parallel.<>c__DisplayClass17_01.<ForWorker>b__1()    bei System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)    bei System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object <p0>)    --- Ende der internen Ausnahmestapelüberwachung ---    bei System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)    bei System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)    bei System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action1 body, Action2 bodyWithState, Func4 bodyWithLocal, Func1 localInit, Action1 localFinally)
bei System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable1 source, ParallelOptions parallelOptions, Action1 body, Action2 bodyWithState, Action3 bodyWithStateAndIndex, Func4 bodyWithStateAndLocal, Func5 bodyWithEverything, Func1 localInit, Action1 localFinally)
bei System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable1 source, ParallelOptions parallelOptions, Action2 body)
bei TwitchLeecher.Services.Services.TwitchService.DownloadParts(Action1 log, Action1 setStatus, Action`1 setProgress, VodPlaylist vodPlaylist, CancellationToken cancellationToken)
bei TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass51_0.b__2()
bei System.Threading.Tasks.Task.Execute()
--- Ende der internen Ausnahmestapelüberwachung ---
---> (Interne Ausnahme #0) System.AggregateException: Mindestens ein Fehler ist aufgetreten. ---> System.IO.IOException: Es steht nicht genug Speicherplatz auf dem Datenträger zur Verfügung.
bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
bei System.IO.FileStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count)
bei System.IO.File.InternalWriteAllBytes(String path, Byte[] bytes, Boolean checkHost)
bei TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass57_0.b__0(VodPlaylistPart part, ParallelLoopState loopState)
bei System.Threading.Tasks.Parallel.<>c__DisplayClass17_01.<ForWorker>b__1()    bei System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)    bei System.Threading.Tasks.Task.<>c__DisplayClass176_0.<ExecuteSelfReplicating>b__0(Object <p0>)    --- Ende der internen Ausnahmestapelüberwachung ---    bei System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions)    bei System.Threading.Tasks.Task.Wait(Int32 millisecondsTimeout, CancellationToken cancellationToken)    bei System.Threading.Tasks.Parallel.ForWorker[TLocal](Int32 fromInclusive, Int32 toExclusive, ParallelOptions parallelOptions, Action1 body, Action2 bodyWithState, Func4 bodyWithLocal, Func1 localInit, Action1 localFinally)
bei System.Threading.Tasks.Parallel.ForEachWorker[TSource,TLocal](IEnumerable1 source, ParallelOptions parallelOptions, Action1 body, Action2 bodyWithState, Action3 bodyWithStateAndIndex, Func4 bodyWithStateAndLocal, Func5 bodyWithEverything, Func1 localInit, Action1 localFinally)
bei System.Threading.Tasks.Parallel.ForEach[TSource](IEnumerable1 source, ParallelOptions parallelOptions, Action2 body)
bei TwitchLeecher.Services.Services.TwitchService.DownloadParts(Action1 log, Action1 setStatus, Action`1 setProgress, VodPlaylist vodPlaylist, CancellationToken cancellationToken)
bei TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass51_0.b__2()
bei System.Threading.Tasks.Task.Execute()
---> (Interne Ausnahme #0) System.IO.IOException: Es steht nicht genug Speicherplatz auf dem Datenträger zur Verfügung.
bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
bei System.IO.FileStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count)
bei System.IO.File.InternalWriteAllBytes(String path, Byte[] bytes, Boolean checkHost)
bei TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass57_0.b__0(VodPlaylistPart part, ParallelLoopState loopState)
bei System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.b__1()
bei System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
bei System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )<---
---> (Interne Ausnahme #1) System.IO.IOException: Es steht nicht genug Speicherplatz auf dem Datenträger zur Verfügung.
bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
bei System.IO.FileStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count)
bei System.IO.File.InternalWriteAllBytes(String path, Byte[] bytes, Boolean checkHost)
bei TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass57_0.b__0(VodPlaylistPart part, ParallelLoopState loopState)
bei System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.b__1()
bei System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
bei System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )<---
---> (Interne Ausnahme #2) System.IO.IOException: Es steht nicht genug Speicherplatz auf dem Datenträger zur Verfügung.
bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
bei System.IO.FileStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count)
bei System.IO.File.InternalWriteAllBytes(String path, Byte[] bytes, Boolean checkHost)
bei TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass57_0.b__0(VodPlaylistPart part, ParallelLoopState loopState)
bei System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.b__1()
bei System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
bei System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )<---
---> (Interne Ausnahme #3) System.IO.IOException: Es steht nicht genug Speicherplatz auf dem Datenträger zur Verfügung.
bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
bei System.IO.FileStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count)
bei System.IO.File.InternalWriteAllBytes(String path, Byte[] bytes, Boolean checkHost)
bei TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass57_0.b__0(VodPlaylistPart part, ParallelLoopState loopState)
bei System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.b__1()
bei System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
bei System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )<---
---> (Interne Ausnahme #4) System.IO.IOException: Es steht nicht genug Speicherplatz auf dem Datenträger zur Verfügung.
bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
bei System.IO.FileStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count)
bei System.IO.File.InternalWriteAllBytes(String path, Byte[] bytes, Boolean checkHost)
bei TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass57_0.b__0(VodPlaylistPart part, ParallelLoopState loopState)
bei System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.b__1()
bei System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
bei System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )<---
---> (Interne Ausnahme #5) System.IO.IOException: Es steht nicht genug Speicherplatz auf dem Datenträger zur Verfügung.
bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
bei System.IO.FileStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count)
bei System.IO.File.InternalWriteAllBytes(String path, Byte[] bytes, Boolean checkHost)
bei TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass57_0.b__0(VodPlaylistPart part, ParallelLoopState loopState)
bei System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.b__1()
bei System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
bei System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )<---
---> (Interne Ausnahme #6) System.IO.IOException: Es steht nicht genug Speicherplatz auf dem Datenträger zur Verfügung.
bei System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
bei System.IO.FileStream.WriteCore(Byte[] buffer, Int32 offset, Int32 count)
bei System.IO.File.InternalWriteAllBytes(String path, Byte[] bytes, Boolean checkHost)
bei TwitchLeecher.Services.Services.TwitchService.<>c__DisplayClass57_0.b__0(VodPlaylistPart part, ParallelLoopState loopState)
bei System.Threading.Tasks.Parallel.<>c__DisplayClass17_0`1.b__1()
bei System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask)
bei System.Threading.Tasks.Task.<>c__DisplayClass176_0.b__0(Object )<---
<---

@JoniFresh And how much space is left on D:\ if you check in Explorer for example?
Es steht nicht genug Speicherplatz auf dem Datenträger zur Verfügung
This message is not from TL, it is from the Windows system telling TL there is not enough space. I have never seen this message when there was enough space, so I assume you don't actually have enough...
Just a quick sanity check: D:\Desktop,Downloads, etc\ is an odd folder name. Just to be sure, could you try a folder without the colons? I know it's nothing wrong with colons, just want to be sure it has nothing to do with the error...

Thanks for the suggestion with the space on the drive. It works now (could´ve thought about this for myself XD). The weird named folders is just because my PC is 5 Years old and my 11 year old me thought it was a good idea to relocate my folders at 2 a.m. in a rush. I dont even know what I did there but I have to work with it :) Thanks for the nice and fast support. Other companys should cut a slice of of you as we say in germany.
Good Night

Other companys should cut a slice of of you

@JoniFresh Das kann man aber auch falsch verstehen... man schneidet sich schließlich die Scheibe "davon" ab und nicht von der Person selbst 😄

authors: Franiac JoniFresh idkbruhlol


text:
A better arrangement of auxiliary project files

Currently, the auxiliary files in this project is disordered.
Several auxiliary project files need to be changed.

The change log is proposed to use the release-please github action.
The pyproject set a limit on the size of project files, therefore some crucial test files have been deleted.
The installation procedure needs to be optimized with setup.py, etc. The optimal scenario is to install with a single commandline.
The doc file could be decorated with Sphinx.

I believe these code optimization could promote AutoSteper to a broader userbase.

The pyproject.toml controls the building process. After a suitable setup of pyproject.toml, now this project could be install in a single commandline.
However, the FullereneDataParser package could only be installed from source code.
And the usenauty module requires a high version of gcc.
Both of them should be prepared with instruction in readme.

Unfortunately, the building process of pyproject will compile all the test files.
They needs to be squeezed with no better solution.

I was wrong about last comment. The Source Distribution could be controled by MANIFEST.in.
Now all the test files are restored.

As to the latest commit, the release please bot has been sucessfully implemented.
New commits should stay in line with Conventional Commit messages.

In the latest version of autosteper, documentation could be found in https://autosteper.readthedocs.io/

repo: Franklalalala/AutoSteper