From 018dd69177b0d79dcb74ea4a5b5b08de625b7e6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=B8nstantine=20Kovalensky?= <45331093+kovalensky@users.noreply.github.com> Date: Sat, 4 Nov 2023 19:16:23 +0400 Subject: [PATCH] Magnet link tweaks (#1035) --- library/includes/functions.php | 11 +++++++---- library/language/source/main.php | 1 + src/Legacy/Torrent.php | 3 ++- src/Legacy/TorrentFileList.php | 4 ++-- styles/images/magnet_v2.png | Bin 0 -> 2175 bytes styles/templates/default/tpl_config.php | 1 + 6 files changed, 13 insertions(+), 7 deletions(-) create mode 100644 styles/images/magnet_v2.png diff --git a/library/includes/functions.php b/library/includes/functions.php index 27d17ab62..4ba569caa 100644 --- a/library/includes/functions.php +++ b/library/includes/functions.php @@ -1861,20 +1861,23 @@ function create_magnet(string $infohash, string $infohash_v2, string $auth_key, return false; } + $v1_support = !empty($infohash); + $v2_support = !empty($infohash_v2); + $magnet = 'magnet:?'; - if (!empty($infohash)) { + if ($v1_support) { $magnet .= 'xt=urn:btih:' . bin2hex($infohash); } - if (!empty($infohash_v2)) { - if (!empty($infohash)) { + if ($v2_support) { + if ($v1_support) { $magnet .= '&'; } $magnet .= 'xt=urn:btmh:1220' . bin2hex($infohash_v2); } - return ''; + return ''; } function set_die_append_msg($forum_id = null, $topic_id = null, $group_id = null) diff --git a/library/language/source/main.php b/library/language/source/main.php index 302c7b735..ad06eb6c8 100644 --- a/library/language/source/main.php +++ b/library/language/source/main.php @@ -1084,6 +1084,7 @@ $lang['SEEDING'] = 'Seed'; $lang['LEECHING'] = 'Leech'; $lang['IS_REGISTERED'] = 'Registered'; $lang['MAGNET'] = 'Magnet-link'; +$lang['MAGNET_v2'] = 'Magnet-link (BitTorrent v2 supported)'; //torrent status mod $lang['TOR_STATUS'] = 'Status'; diff --git a/src/Legacy/Torrent.php b/src/Legacy/Torrent.php index f750727f6..971b78406 100644 --- a/src/Legacy/Torrent.php +++ b/src/Legacy/Torrent.php @@ -389,7 +389,8 @@ class Torrent if (isset($info['length'])) { $totallen = (float)$info['length']; - } elseif (isset($bt_v1, $info['files']) && \is_array($info['files'])) { + } + elseif (isset($bt_v1, $info['files']) && \is_array($info['files'])) { foreach ($info['files'] as $fn => $f) { // Exclude padding files if (($f['attr'] ?? null) !== 'p') { diff --git a/src/Legacy/TorrentFileList.php b/src/Legacy/TorrentFileList.php index 682b449df..648022cfe 100644 --- a/src/Legacy/TorrentFileList.php +++ b/src/Legacy/TorrentFileList.php @@ -42,7 +42,7 @@ class TorrentFileList public function get_filelist() { global $html; - if (($this->tor_decoded['info']['meta version'] ?? null) == 2) { + if (($this->tor_decoded['info']['meta version'] ?? 1) === 2) { if (is_array($this->tor_decoded['info']['file tree'] ?? null)) { return $this->fileTreeList($this->tor_decoded['info']['file tree']); //v2 } @@ -87,7 +87,7 @@ class TorrentFileList continue; } // Exclude padding files - if (($f['attr'] ?? null) === 'p') { + if (isset($f['attr']) && $f['attr'] === 'p') { continue; } array_deep($f['path'], 'clean_tor_dirname'); diff --git a/styles/images/magnet_v2.png b/styles/images/magnet_v2.png new file mode 100644 index 0000000000000000000000000000000000000000..f587bf795266b646cec33971de99620ff3a5fae0 GIT binary patch literal 2175 zcmV-_2!QvAP)(_`g8%^e{{R4h=l}px2mk>USO5SzmjD14Z`WEM zkN^M(1xZ9fRCwB?S8I%2RTci$+WWljy)*aTnR{nir?d>y3QVC$r7egAEz%YODwL!M zD2XBQ0a1y@poumnMEoHS5m2MS=pQ9f`~wLI5`!@`EftVjD5dY`Oy_y;oqOJUFMr&b z>9oA#I$1f%$vOMmYpwl#YaM!Sa5>KPiu2y0>|KEmB~hiU^pnd1|9U3!L})H@fB+VN08*p^SIcT& z+Ub zmS!U(Fwq%{zheWm5L^(D>g{**pN~(E{kW5o_o%UhPGm*!{S{ZACx#%@Io(Pr!1rL2 z6q03N073+44RSPKEl2>d7BB{4EGz)6T&F&;bnDp0^&ijHuD!c2IoWszumW%-3NKz9 zIA2vlFmtq03{@zAD`n)Z8Bi3#FhJS?1qG1rAvXrda^zVGWEmvQfZV`_A%d}SE}t6T z9I-9#7&BW}vwi){8Vletea$1s6U*}{RLoF;5B5ChayN9X2Cv=+r``uuEkhLw&{{!= zK+Mp-4_)knb{sf?53E~_)~aFOEtl3`v1;X`|7(i^UW9UO#AH329zb6X3VV>jJ#EKe} z3pb$h$xG2bHiBle0qwaU?IJ2wFHR?p|L`2s{(j#@=Z|P+DzIgc5C}4Rav6}0Qn3{n zCXnatFRxwmSpR+BI|v{HUCs$CV#l-tOY2vHb8 zQ3hg$srFyBY`MLU((oJ10P{Q-sdI@1gTO`rYrw2POgm*}<^X^;fCNB3r=shQ?*Bnn zul*!hxw7pQ3UG6S?n)Vp`ukBV7CUqk0f=(AP8Us$M$A@D2?4}sDUr#6B!Oh6vp#W@ z?>k@@w4XD~%fg3v?C{UVj~#A?aRQ|@y1UD$*X!^+AGygb@^lBq;dekh%}n%mMm8aZ zd7&W?C`}>L(?AqKxgNlDwOcCrb3kux+<@)Bdl;`>x(@&S*m;0<5;b!0q415JkBp9- zXvC!8I0{N@fCwD6cB|1N_knm90I(t)O5=PFEs#D2K-Pki1Z;9B*MsYN%g6TZ|LN%% zJAudFycObmpxgl34fV*upNFq+duaUF;i-0J(T-xY$43u)6DPJpsh8#jgqe)V@u!?D zm;p6UWdd0X&T>$i!eK?er@sEu;01r#zGPXA(ya3q5u$H@1*WG0q$!}B79ZXBVC%JQ zPmG*6fv7Rna3)VaAVkjs^TG&qPfra@*lTj!={u^}A@N+=JGxCw5Nn{r7zG;*Px#*F zcdfkS&HA#wgRlblF0iNVF!w}qP!t~WKzGXA)rt496Rq3Lo ziyyA{RG#|%TO&(4or<7}C6Lw-5rBCdL=zu42snyv&*J=fOC2F$B5wxD(ORe%9hs|jKa_ytgVTKan`Qtw}M;ZxgpnP*;qd*Ax= zml`n!mKDS=0@mUkseYHuv;(d0g2*o^4AZn)!StpLa5inkKwlrat$~Pu@(jWX(mS9e z&FTZ)L4Psuu1vGcgB7q+;MtUmNJqKmNNCNO5ihWenRmF&rcA9GUORo~mvwz;2)$Z^ zltLUQNV5!VE#UeH}Xq!frdqtyG&)sqDI zg_H`8DR|$?jPb3ts8*{mRxmm`iX=@zc?xMa#cF5gjaOg3*UU4bGe2pO(=3tM$)mUL zJtOYOT#|(8qT25Exr?2g_yWf-1g@(Q6bi7`U?z%@M>81PzvtgCA3nM9qN+c`S%QU5 zc?!yAJ)iX~dH+8N01)k-w5_Qh#d}^EpUBL2Y3X3E?`l|LaGs)Z?9k-V6gS^dgTd&L z|L;%YENGD9g*I$F9`1hGpU~=FztY<^IX-Tuj~<}5