qBittorrent icon indicating copy to clipboard operation
qBittorrent copied to clipboard

Global preference for "download first and last pieces first"

Open nonopolarity opened this issue 7 years ago • 12 comments
trafficstars

either in the Download tab or the Advanced tab

nonopolarity avatar Oct 23 '18 00:10 nonopolarity

I'm putting this here for clarity.

snippet from issue #12410 by @a-raccoon for reference/reasoning in requesting this feature.

Please add the option Download first and last pieces first in the Settings under the Downloads section. This will enable the option by default for all newly added torrents, leaving old torrents untouched.

Why? Because it's very inconvenient to toggle this setting on by hand. It is generally considered PEER SAFE behavior for a client to always download the first and last pieces of each file in a torrent, and this serves the practical purpose of downloading all small README files first, as well as all metadata (file headers, ID3 tags, etc) of larger files. Please see this other post for greater detail. [ref]

(I do not ask that the option Download in sequential order be added as an preference under Settings as that behavior is considered to be PEER RUINOUS and should only be used sparring; by few people.) [ref] [ref]

xavier2k6 avatar Apr 04 '20 20:04 xavier2k6

This feature would be much appreciated

Geblaat avatar Mar 03 '22 10:03 Geblaat

I'm sorry. I'm relatively new to Github. I understand the issue I submitted has been closed because it's a duplicate of this one. But this one was opened more than 4 years ago. The status is still "Open", but there are some things here showing "Closed". So, is the option already there and I'm missing something? Or not yet?

mostafamossaad avatar Jun 01 '23 21:06 mostafamossaad

So, is the option already there and I'm missing something? Or not yet?

It's not there.

but there are some things here showing "Closed".

This issue was referenced in those other issues / Pull Requests (PRs).

thalieht avatar Jun 01 '23 22:06 thalieht

hi, can you PLEASE add this? I have been waiting YEARs now sigh

fx2017 avatar Aug 20 '24 03:08 fx2017

i think it would have been quicker to make the small code change than keep on closing issues. it has been over 6 years now!! come on, do you want me to code it for you?

fx2017 avatar Aug 20 '24 04:08 fx2017

can we increase the priority on this simple (?) feature PLEASE ?

fx2017 avatar Aug 20 '24 04:08 fx2017

It has been over 6 years now!! come on, do you want me to code it for you?

@fx2017 this is how free libre opensource evolves. So if you can, make a proposal, get it greenlit by the devs, then submit a PR for review, pass review and we will have this feature.

luzpaz avatar Aug 20 '24 11:08 luzpaz

It has been over 6 years now!! come on, do you want me to code it for you?

@fx2017 this is how free libre opensource evolves. So if you can, make a proposal, get it greenlit by the devs, then submit a PR for review, pass review and we will have this feature.

Adding this option is not a problem. But isn't the problem that this feature is "deliberately" rejected?

glassez avatar Aug 20 '24 12:08 glassez

But isn't the problem that this feature is "deliberately" rejected?

Sorry, i missed this part of the conversation. What is the reason for rejection and by whom ?

luzpaz avatar Aug 20 '24 12:08 luzpaz

i think it would have been quicker to make the small code change than keep on closing issues. it has been over 6 years now!! come on, do you want me to code it for you?

@fx2017 it's open source. Simply patch and build the client yourself.

All it takes is literally editing a single line:

--- a/src/base/bittorrent/addtorrentparams.h
+++ b/src/base/bittorrent/addtorrentparams.h
@@ -56,7 +56,7 @@ namespace BitTorrent
         std::optional<bool> useDownloadPath;
         Path downloadPath;
         bool sequential = false;
-        bool firstLastPiecePriority = false;
+        bool firstLastPiecePriority = true;
         bool addForced = false;
         std::optional<bool> addToQueueTop;
         std::optional<bool> addStopped;

And if you use Web UI:

--- a/src/webui/www/private/scripts/download.js
+++ b/src/webui/www/private/scripts/download.js
@@ -65,6 +65,7 @@ window.qBittorrent.Download ??= (() => {
         $("savepath").value = defaultSavePath;
         $("startTorrent").checked = !pref.add_stopped_enabled;
         $("addToTopOfQueue").checked = pref.add_to_top_of_queue;
+        $("firstLastPiecePrio").checked = true;
 
         if (pref.auto_tmm_enabled) {
             $("autoTMM").selectedIndex = 1;

HanabishiRecca avatar Aug 20 '24 14:08 HanabishiRecca

https://github.com/qbittorrent/qBittorrent/discussions/20280

stalkerok avatar Dec 22 '24 07:12 stalkerok

ANNOUNCEMENT!

For anybody coming across this "Feature Request" & would like/love to see a potential implementation in the future! Here are some options available to you:

  1. Please select/click the 👍 &/orreactions in the original/opening post of this ticket.

  2. Please feel free (If you have the "skillset") to create a "Pull Request" implementing what's being requested in this ticket. (new/existing contributors/developers are always welcome)


DO:

  • Provide constructive feedback.
  • Display how other projects implemented same/similar etc.

DO NOT:

  • Add a "Bump", "me too", "2nd/3rd" etc. or "criticizing" comment(s). (These will be disregarded/hidden as "spam/abuse/off-topic" etc. as they don't provide anything constructive.)

xavier2k6 avatar May 23 '25 22:05 xavier2k6