hachyderm.io is one of the many independent Mastodon servers you can use to participate in the fediverse.
Hachyderm is a safe space, LGBTQIA+ and BLM, primarily comprised of tech industry professionals world wide. Note that many non-user account types have restrictions - please see our About page.

Administered by:

Server stats:

9.4K
active users

Eh, screw it, I'll open the source right now. What's the worst that could happen?

gitlab.com/b4ux1t3/Podcastmana

Come and get it folks. There are no instructions and no artifacts, but at least you can see my terribad code.

Edit: okay I fixed it. Enjoy!

GitLabChris P. / FeedzApp · GitLabName subject to change. ;)
b4ux1t3 :trek_ds9_sisko:#1️⃣

I'll push up some build instructions tonight or tomorrow. The gist is "dotnet publish". ;)

@b4ux1t3 can confirm it compiled in Linux Mint once I installed .net 9 sdk.

Tried to add a feed and see the "Fetching Feed..." but then nothing.

I'll have to take a look at Avalonia it looks interesting 🙂

@mort8088 I would hope it builds on mint with dotnet 9...sonce that'd what I used primarily to build it!

If it's freezing, we have to see if there's something about how I'm doing the downloads. Go ahead and open an issue on the gitlab if you keep seeing that problem.

I will say, sometimes it takes a while to finish loading, and I haven't dug into why yet.

@b4ux1t3 I've added the issues I'm seeing.

@mort8088 hey that's why it's there!

Luckily it doesn't _seem_ like you've stumbled on anything I wasn't already tracking (except the debugger thing).

It looks like you were able to get it running, though, at least in the debugger. Do you happen to know what podcast and episode you were trying when the xdg-open bug happened?

I ran into the same bug, but I already fixed it (very... Ham-fistedly, but I fixed it), so I'd love to look at the specific data that cause it on your end.

@mort8088 oh! I see the path, it's in your own filesystem!

Hmmm.

I may be able to hack around that by escaping the string manually.

I bet you don't have a "Music" directory in $HOME, do you?

@b4ux1t3 So I've been fiddling about and I rewrote RssManager using System.ServiceModel.Syndication because I couldn't get The Infinite Monkey Cage RSS to load and it seems to work now.

DB read/write is a bit slow, but maybe there's a way to batch things up. I found out that DB ops are synchronous which is a bit of a bugger.

Just tell me to stop if you're happier to work alone 🙂

@mort8088 the thing is, the syndication models don't directly support Podcasts. I couldn't get it to give me the "enclosure" element that stores the audio url.

I did start with SyndicationFeed, and I may yet go back to it. I was planning on looking at that sometime this upcoming week.

But, hey, if you got that working, open an MR, I'll take a look! I wouldn't be sad getting rid of those blocks of XML lookups.

The sync ops on the DB were a side effect of me not having figured out Avalonia's async story (it's kind of a mess, hence the "async void" download manager nonsense). I was originally envisioning just running the DB and RSS managers in their own threads if I couldn't get Avalonia to play ball, hence never actually cleaning up the DB code. Since I _have_ now figured that out, I'll asyncify the DB ops this week.

I'm also planning on putting things behind a repository layer, so that we can lazily load in episodes that we don't know about yet.

__

To be fair, I had planned to fix a lot of this before opening the source, but I figured it couldn't hurt to have fresh eyes on some things.

@mort8088 Also, FYI, I just merged a fix that SHOULD get you unstuck re: the play in other app.

@b4ux1t3 I don't know how to make do a MR I've never contributed to a project on GitLab b4 😟

@mort8088 no worries! You can, if you're adventurous, open one directly through the gitlab interface . But, if you've ck tribute on github before, the method is roughly the same as submitting a PR.

Worst case is just drop the code you came up with in the issue and I can check it out myself.

@b4ux1t3 I think I figured it out. 🙌

I use GitLab for work but there I just clone, push and then merge is done by the senior devs 😃

I forgot I'd need to fork the project first 😕

Anywho thanks for todays adventure 🐧 😄

@mort8088 awesome! I'll take a look tonight. Super exciting!

@mort8088 Merged!

Long story short, you dug further into links than I did. I saw what the first one was when I was testing, saw it wasn't what I wanted, and broke out the familiar XmlReader.

Nicely done!