Ecosyste.ms: OpenCollective
An open API service for software projects hosted on Open Collective.
github.com/alanmcgovern/monotorrent
The official repository for MonoTorrent, a bittorrent library for .NET
https://github.com/alanmcgovern/monotorrent
Directory.Build.targets also adds a reference, so ensure that
doesn't happen!
If we move everything to HttpClient it makes it easier to support proxies in future.
d04058e65e1fc4a4171fa3be25d682d1ea300dc0 authored about 3 years ago by Alan McGovern <[email protected]>
Make it easier to create things via the factories. Try to
remove constructor time dependence bet...
This appears to work fine under UWP, .NET 4.7.2 and .NET Core 3.0+
Improves perf slightly, and ...
b0640e06bf2ec21bd01ade18535e8f5f161a70b8 authored about 3 years ago by Alan McGovern <[email protected]>
Any csproj which directly references ReusableTasks will include
a source file with the build whi...
9155f7157a3b8d22e112c8d39aa28fea929fc9db authored about 3 years ago by Alan McGovern <[email protected]>
896b4d493db9ba4cdabfa1774e3353812bdde67d authored about 3 years ago by Alan McGovern <[email protected]>
The release branch data is showing up correctly now.
ac64eb420647a6eafeba07bf446b4f00d884a5d1 authored about 3 years ago by Alan McGovern <[email protected]>3ce1454f768a78b981a05d50c9b915909341df78 authored about 3 years ago by Alan McGovern <[email protected]>
bc6c409bbc4dfef3f810bca3210073f87bbf8ea4 authored about 3 years ago by Alan McGovern <[email protected]>
bd174de40789e8c24a5c08179b8aafd87f3ae89d authored about 3 years ago by Alan McGovern <[email protected]>
Now we can make IncrementalCacheHash non-static and instantiate
it using the SHA1Creator in the ...
9228e131582451099849cc2f72113faad741d8d2 authored about 3 years ago by Alan McGovern <[email protected]>
Fold this into 'Factories'
e194b19e24d8b071f2aba7ccf4b8c22622be51fe authored about 3 years ago by Alan McGovern <[email protected]>
Require the user of the library to create the 'Factories' object
before initializing the engine,...
If we propagate exceptions when sending dht messages
we can immediately time out requests when w...
If we fail to initialise the engine, change the state to
NotReady again.
This can happen if the...
a80e09c3fb8bf1ad7e7b5275c23cb1c2a558c807 authored about 3 years ago by Alan McGovern <[email protected]>
Use the same codepath to load torrents normally and when
loading them for 'streaming'. This ensu...
4889bf1d6c8891a74a6390c525751261e4f2bda8 authored about 3 years ago by Alan McGovern <[email protected]>
8b3ae7b6f55196ae802c9888983aed74e239c8b3 authored about 3 years ago by Alan McGovern <[email protected]>
bcbfb967473e587f064cd5ef7d4701dc6dec220a authored about 3 years ago by Alan McGovern <[email protected]>
* Create a Connections project too
This will make it a bit easier to create an adapter
which...
[core] Rename IConnection to IPeerConnection
ac8b81c39a80902dde876028d785acb8f3018134 authored about 3 years ago by Alan McGovern <[email protected]>eec400713755a00655c68828c2d29cd244ac9d72 authored about 3 years ago by Alan McGovern <[email protected]>
[core] Better piece picker integration
c0e7d54b011403845b8d05e61fbd7dc3b1e91dee authored about 3 years ago by Alan McGovern <[email protected]>
The integration point for custom piece pickers it to implement
IPieceRequester or IStreamingPiec...
DownloadMetadataAsync was a secret backdoor to accidentally
loading the same torrent twice, but ...
Partial files
e7c22cbe7608f266f0e4b0de7398ab8651367c3f authored over 3 years ago by Alan McGovern <[email protected]>ed24cd45134e60ab380d0812f8508a65b50923f7 authored over 3 years ago by Alan McGovern <[email protected]>
If a file is actively being downloaded it will be given a special
suffix (.!mt) to indicate it's...
e2d5ccfe689829f756030ae4cd35f0f710a05e99 authored over 3 years ago by alan.mcgovern <[email protected]>
Update ITorrentFile.DownloadIncompleteFullPath, and rename the
on-disk file, whenever we enable/...
Oops
fd20e15afc143956ced4cc12d21693858d5f5643 authored over 3 years ago by Alan McGovern <[email protected]>da2d51f5bb1b931f76079e6293f6a5facafcd557 authored over 3 years ago by Alan McGovern <[email protected]>
Use a Directory.Build.props for common things in tests
9d7da32076d1579ae2e1e776f67b2f77503b1459 authored over 3 years ago by Alan McGovern <[email protected]>Split library
999d34b5f102aa4dfb72497b381e8f36b86f5653 authored over 3 years ago by Alan McGovern <[email protected]>6114ebc62884fd48d493dff562473117989f5688 authored over 3 years ago by Alan McGovern <[email protected]>
79696137669aa27a72504deb11bc19e71e00bf58 authored over 3 years ago by Alan McGovern <[email protected]>
12f5a4581b3d55d5695377b3dabbb7324cedd337 authored over 3 years ago by Alan McGovern <[email protected]>
95d65a2a72d44c9e354a0cf65934bd9bef704582 authored over 3 years ago by Alan McGovern <[email protected]>
7d323c74793ffac34f26c8114e5e9d70bdc33ab7 authored over 3 years ago by Alan McGovern <[email protected]>
We can use System.Web now. We require .NETStandard 2.0+ so
we are guaranteed that HttpUtility wi...
973598a40176d7145f0050b91e72706e7cc89f74 authored over 3 years ago by Alan McGovern <[email protected]>
6b11dca716a64aa29f49d9488add827caa8521a2 authored over 3 years ago by Alan McGovern <[email protected]>
The rest of the file creation process could be slow too,
so we either move the entire file creat...
538e11d90fc9d1a269850da3ebd7c8ee825757f7 authored over 3 years ago by Alan McGovern <[email protected]>
36444b1a020d043e462ab130127d735cb5950114 authored over 3 years ago by Alan McGovern <[email protected]>
d6a124f69382e5fac9aa1c183e375192443ecb16 authored over 3 years ago by Alan McGovern <[email protected]>
99e72dfdb9255b4aa4bd2461d738fb79375a8987 authored over 3 years ago by Alan McGovern <[email protected]>
be6f49d1623ad84010df31436f88f8d4bdbfd19e authored over 3 years ago by Alan McGovern <[email protected]>
Certain parts of the core library are supposed to be
externally implementable. The easiest way t...
Rather than doing a 'fair' round robin, prioritise connecting
to torrents which have the fewest ...
Not a huge amount of thought went into this.
But since it's May 4th, why not release 2.0.
Moving a single file now works the same as moving all files.
Destination directory is created (i...
Save all user settable state, and allow reloading it later.
This will save the engine settings, ...
Persist a good-enough copy of the torrent metadata to
disk.
More tests, more fixes.
935858008275c5d80016886f224251d5db51a2a5 authored over 3 years ago by Alan McGovern <[email protected]>3ee519da6193ab96845be0da6ea5d0c4c487ab6a authored over 3 years ago by Alan McGovern <[email protected]>
Use better async to properly test this.
f141bff04472556f232da4e09712d43c14de725b authored over 3 years ago by Alan McGovern <[email protected]>
The list of tracker tiers, the the order of the trackers
within a tier, are now randomised when ...
This can be refactored into a separate class. However the logic
should be nicely forwards/backwa...
This allows the unchoker to be reset implicitly every time
we stop/start a torrent as a new one ...
Cleanup constructors
036ea2438e0adb487e63bbc24a830568b15d0f4c authored over 3 years ago by Alan McGovern <[email protected]>0019782d64116a7fb942fb6150ade972a9098e25 authored over 3 years ago by Alan McGovern <[email protected]>
7ba230dcb3f0644dc17431e12c53cf9fc515f1ab authored over 3 years ago by Alan McGovern <[email protected]>
5d279713a1f81b49282c62fa4a3cfb77bce2b4e4 authored over 3 years ago by Alan McGovern <[email protected]>
f032dea27bd6f272192b430d5db4aa1b4f833cbf authored over 3 years ago by Alan McGovern <[email protected]>
This should be non-nilable. Set it in the ctor.
8bd6f43442743c5f7957055590d5de388d4a2a4f authored over 3 years ago by Alan McGovern <[email protected]>Improve cache handling
4fa89fd9f7e12074b26d4d5dfc81105cc3a3e8cd authored over 3 years ago by Alan McGovern <[email protected]>4e03c2a5edff2675f511d9a417421ec7bfe4f9eb authored over 3 years ago by Alan McGovern <[email protected]>
If a magnet link is used to create a TorrentManager then
the metadata is written to the cached d...
This will allow the engine to copy the .torrent file
directly to it's cache directory.
Validate the cache directory when constructing
the ClientEngine and when changing the settings.
...
This reverts commit 752b97109aab439c7934014a953b389889eebcbc.
i have a better idea
This reverts commit c87b5b2c0ac72586f3f082f7fc979f8f14c97907.
ed48870d5a48f0ededca71f20ffce9dddaadf92d authored over 3 years ago by Alan McGovern <[email protected]>
Validate the cache directory is writeable before loading
a torrent into the engine. This makes i...
Don't default to using the current directory as the
cache directory. Instead throw an error if a...
If 'BestEffort' is enabled, save fast resume data every N seconds.
f9ac1751ce80819661948e4046e9ebde06ee28ef authored over 3 years ago by Alan McGovern <[email protected]>5afb59493666c5c2a53740810694b164829fea09 authored over 3 years ago by alan.mcgovern <[email protected]>
Write fast resume data when we enter 'seeding' mode
c5a92a32f6828c0e4751a4fa76aa27bd3da19cf1 authored over 3 years ago by Alan McGovern <[email protected]>
Just pass in the classname rather than using magic
tricks to try and parse the name automaticall...
A prior change to ensure pieces from within the high, or low
priority range were always prioriti...
Invalid urls would fail to parse in Mode.DownloadLogic throwing an unhandled exception. This add...
61bcc569b648e6cced86e33101a084cf9ba9d077 authored over 3 years ago by Phil Scott <[email protected]>Breaking change. Changes HttpSeeds from a string to a Uri. Internally, HttpSeeds is only used i...
4961054686afaa2445aa8f7c667cbbd5e77aa1e7 authored over 3 years ago by Phil Scott <[email protected]>
We can get the correct file for a given byte offset without
the PieceLength, so don't pass that in!
This code didn't correctly walk back up the list to find
the *first* file which contained the re...
This now gives us a 'guaranteed' immutable BitField,
and also a Mutable version. Most things int...
Also add a way mark a torrent as needing to be hash checked. This
will implicitly be used if the...
The 'BitField' class is supposed to be readonly in every scenario
where it's exposed to users.
...
The parameter was unintentionally ignored.
faab4a6ed3a2c59219af00c048fb87ea31e64133 authored almost 4 years ago by Alan McGovern <[email protected]>My router will be happier with the port forwards.
2b4fce518b965fb9da30a9d9573a4283518d45a4 authored almost 4 years ago by Alan McGovern <[email protected]>4b804701b9e84a0a069ee52d6bd9e8b7f7b00bdb authored almost 4 years ago by Alan McGovern <[email protected]>
Query the node first. It will be added to the table implicitly
if it actually responds.
Properly reset the bool to false after seeking.
Additionally, focus peers on the high priority ...
870d0cc8a9f3286f35784a463f3a394ca49d8ef2 authored almost 4 years ago by Alan McGovern <[email protected]>
Enable it by passing --vlc to sampleclient.
Somewhat hardcoded to windows paths.
Hardcoded to a ...
Also remove some duplicate code at the same time
ff1b240c4fcb7ecae78efec2d670bb3a5658767a authored almost 4 years ago by Alan McGovern <[email protected]>
Don't allow people to set this directly via public API.
It's much more efficient for the librar...
This parameter is unnecessary, and is also confusing. IPieceRequester
can calculate the correct ...
bb65c51edd33c98ee09b8b50b087468aa0271c28 authored almost 4 years ago by Alan McGovern <[email protected]>
Order this in terms of likelihood
0fd75bac15df1542731dcf72510d86c6f5a52350 authored almost 4 years ago by Alan McGovern <[email protected]>