Duolingo Error

It is reliant on Duolingo data. It just gets the feed from Duolingo and displays it. That means that if there is a timezone issue it likely comes from Duolingo itself. You might want to check the timezone setting there.

Interesting. Duolingo itself is working as expected for me. I’m not experiencing any early day-ends in Duolingo itself.

To be more specific, what I’m seeing on Tidbyt is that the “one week” display shifts ahead by one day at an earlier time than expected. Based on the time it happens, I suspect the end of the day is occurring at midnight UTC rather than my local time zone (which would be the same for my Tidbyt and Duolingo). I haven’t tested to see if the “today” display is likewise affected yet.

I’ve found the tidbyt/community repo and I see the code that handles requesting data from Duolingo based on the local time zone, so I’m curious about what could be causing the problem.

When I have time I will try and have a look, but I can’t promise when that will be. I built this thing for myself several years ago, asa way to learn coding, and can barely remember how it works! I am also very busy these days and this is not exactly a high priority for me. Sorry I can’t be more helpful.

I know the feeling! If I have time I may look into it further myself.

I did some digging into the timezone issues and think I have the fix here: [duolingo] Use device $tz and convert epoch to UTC by dtseiler · Pull Request #2766 · tidbyt/community · GitHub

There were two different issues:

Firstly it should now read the device’s timezone setting via $tz, before it was looking for a “timezone” config option that wasn’t settable in the app, so it would always default to Europe/London.

Second, Duolingo was returning the date as midnight of each day via an epoch timestamp. The app, however, was then converting this time value to the local timezone. If you are behind UTC (as I am in USA), then it makes it appear as the the most recent data is for yesterday, causing the app to insert dummy data (ie no XP) for “today”. By forcing it to keep this value in UTC, it seems to make things line up (at least it did in my limited testing).

1 Like