casey / intermodal

A command-line utility for BitTorrent torrent file creation, verification, and more
https://imdl.io
Creative Commons Zero v1.0 Universal
487 stars 25 forks source link

Announce #466

Closed atomgardner closed 1 year ago

atomgardner commented 4 years ago

Here's some alpha quality work towards #255

Please take note of the "popular repository" indelibly front and centre on my Microsoft Github profile page.

casey commented 4 years ago

Currently every top-level item is in its own file, and I'd like to keep doing that. It use fzf-vim to navigate around the project, and it makes it very easy to jump between structs by filename, and not have to search within a file.

What do you think about creating a tracker submodule in tracker.rs, and then renaming UdpTrackerConn to Client and putting it into src/tracker/client.rs? There might be an HTTP tracker in the future, or there might not be, so it seems unnecessary to plan in advance for it.

It makes sense to put request/response pairs in the the same file, so, for example, AnnounceRequest and AnnounceResponse can both go in src/tracker/announce.rs.

State can go in src/tracker/state.rs.

More comments in a second, but I wanted to start with that high level thought.

casey commented 4 years ago

I also updated this branch with new commits from master, which I shouldn't have done, since it creates nasty merge commits. Feel free to rebase and force push.

atomgardner commented 4 years ago

The only problem I see with your high level thought: all of the big Linux distros use https trackers.

casey commented 4 years ago

The only problem I see with your high level thought: all of the big Linux distros use https trackers.

Sorry, I don't follow. If we add an HTTPS tracker later, can't the code be reorganized then?

atomgardner commented 4 years ago

Sorry, I don't follow. If we add an HTTPS tracker later, can't the code be reorganized then?

It totally can. I was stating the obvious fact that if imdl is to become super serious software, loved by users everywhere, an http tracker client must be included.

casey commented 4 years ago

It totally can. I was stating the obvious fact that if imdl is to become super serious software, loved by users everywhere, an http tracker client must be included.

100%!

atomgardner commented 4 years ago

This build pipeline is fastidious. Let's see if I can fix the book building.

casey commented 4 years ago

There's a lot of generated documentation, and a lot of checks that make sure that all the documentation is consistent and/or up-to-date.

I think in this case it's complaining that imdl torrent announce doesn't have an entry in bin/gen/config.yaml:

https://github.com/casey/intermodal/blob/master/bin/gen/config.yaml#L5

atomgardner commented 4 years ago

Interesting failure on the Windows machine. You totally saw it coming

casey commented 4 years ago

That's interesting! I'm surpised it would work on macos/linux, but fail on Windows.

atomgardner commented 4 years ago

I think Window is right to send back the error. Binding to 0.0.0.0:0 was definitely the wrong address.

casey commented 4 years ago

Ahh, yeah, I guess the tests should bind to 127.0.0.1?

atomgardner commented 3 years ago

Yo!! I've had a bunch of changes queued up for a while now, and I think this is getting closer to usable. Let me know how it's looking.

I'm also planning to push the Peer Protocol stuff up in the next few days.

casey commented 3 years ago

Awesome! It might take me a little bit, but I'll definitely get to this within the next few days.

atomgardner commented 3 years ago

Heya heya---when 10 days is a few days plus holidays, you don't count the holidays.

I've pushed up your copy changes, but, I think, the "integration test" needs a look. And you should also try the command and confirm that it works.

casey commented 1 year ago

I think this has gone stale 😅