Skip to content

Commit

Permalink
Merge pull request #174 from alexpdev/v0.8.11
Browse files Browse the repository at this point in the history
v0.8.11
  • Loading branch information
alexpdev committed Mar 26, 2023
2 parents 19011c3 + 2421b0e commit 38d2d3c
Show file tree
Hide file tree
Showing 70 changed files with 3,751 additions and 3,327 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,8 @@ run.py
venv/
/tests/dest/
/tests/dest2/
*.zip
*.spec
# Byte-compiled / optimized / DLL files
*.bin
*.pyc
Expand Down
10 changes: 10 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,15 @@
# TorrentFile

## Version 0.8.11

- added new command line option for magnet subcommand
- fixed some coverage gaps caused by 0.8.10
- fixed bugs introduced by 0.8.10 with magnet URI creation
- added support for hybrid magnet links
- added tests for when a magnet link is generated with no trackers at all

---

## Version 0.8.10

- added support for bittorrent v2 magnet links
Expand Down
36 changes: 16 additions & 20 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -22,25 +22,16 @@ endef
export UPDATE_PACKAGE_VERSION

define RENAME_FILE
import shutil
import sys
import subprocess
import time
from torrentfile.version import __version__
import os
import sys
if sys.platform == "win32":
time.sleep(2)
subprocess.Popen(["7z", "a", "./dist/temp.zip", "./dist/torrentfile.exe"])
time.sleep(2)
shutil.copy(
"./dist/temp.zip",
"./dist/torrentfile-v" + __version__ + "-win.zip")
else:
time.sleep(2)
subprocess.Popen(["zip", "./dist/temp.zip", "./dist/torrentfile"])
time.sleep(2)
shutil.copy(
"./dist/temp.zip",
"./dist/torrentfile-v" + __version__ + "-linux.zip")
inexe = "./torrentfile-windows-exec.zip"
exe = f"./dist/torrentfile-v{__version__}-win-exe.zip"
indir = "./torrentfile-windows-dir.zip"
dir = f"./dist/torrentfile-v{__version__}-win-dir.zip"
os.rename(inexe, exe)
os.rename(indir, dir)
endef
export RENAME_FILE

Expand Down Expand Up @@ -73,6 +64,8 @@ clean-build: ## remove build artifacts
rm -fvr -- *'/__pycache__'
rm -frv runner/build
rm -frv runner/dist
rm -rfv *.zip
rm -fv *.spec

test: ## Get coverage report
tox
Expand All @@ -98,8 +91,11 @@ setup: clean test ## setup and build repo
pip install -e .
twine upload dist/*

release: clean test ## create executables for release
compile: clean test ## compile application for distribution
pip install pyinstaller
pip install -e .
pyinstaller ./runner/execf.spec
@python -c "$$RENAME_FILE"
pyinstaller -F --name torrentfile --icon ./assets/torrentfile-icon.ico ./bin/torrentfile
pyinstaller --name torrentfile --icon ./assets/torrentfile-icon.ico ./bin/torrentfile
7z a ./torrentfile-windows-exec.zip ./dist/torrentfile.exe
7z a ./torrentfile-windows-dir.zip ./dist/torrentfile
python -c "$$RENAME_FILE"
8 changes: 8 additions & 0 deletions bin/torrentfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#! python
# -*- coding: utf-8 -*-

import sys
import torrentfile

if __name__ == "__main__":
torrentfile.execute(sys.argv)
96 changes: 70 additions & 26 deletions docs/Source/cli/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -861,7 +861,7 @@ <h4 id="torrentfile.cli.Config.activate_quiet" class="doc doc-heading">


<h3 id="torrentfile.cli.TorrentFileHelpFormatter" class="doc doc-heading">
<code class="highlight language-python"><span class="n">TorrentFileHelpFormatter</span><span class="p">(</span><span class="n">prog</span><span class="p">,</span> <span class="n">width</span> <span class="o">=</span> <span class="mi">45</span><span class="p">,</span> <span class="n">max_help_positions</span> <span class="o">=</span> <span class="mi">45</span><span class="p">)</span></code>
<code class="highlight language-python"><span class="n">TorrentFileHelpFormatter</span><span class="p">(</span><span class="n">prog</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">width</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">45</span><span class="p">,</span> <span class="n">max_help_positions</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">45</span><span class="p">)</span></code>

<a href="#torrentfile.cli.TorrentFileHelpFormatter" class="headerlink" title="Permanent link">#</a></h3>

Expand Down Expand Up @@ -949,7 +949,11 @@ <h3 id="torrentfile.cli.TorrentFileHelpFormatter" class="doc doc-heading">
<span class="normal">111</span>
<span class="normal">112</span>
<span class="normal">113</span>
<span class="normal">114</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">prog</span><span class="p">,</span> <span class="n">width</span><span class="o">=</span><span class="mi">45</span><span class="p">,</span> <span class="n">max_help_positions</span><span class="o">=</span><span class="mi">45</span><span class="p">):</span>
<span class="normal">114</span>
<span class="normal">115</span>
<span class="normal">116</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="fm">__init__</span><span class="p">(</span>
<span class="bp">self</span><span class="p">,</span> <span class="n">prog</span><span class="p">:</span> <span class="nb">str</span><span class="p">,</span> <span class="n">width</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">45</span><span class="p">,</span> <span class="n">max_help_positions</span><span class="p">:</span> <span class="nb">int</span> <span class="o">=</span> <span class="mi">45</span>
<span class="p">):</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Construct HelpFormat class for usage output.</span>

Expand Down Expand Up @@ -1056,9 +1060,7 @@ <h3 id="torrentfile.cli.execute" class="doc doc-heading">

<details class="quote">
<summary>Source code in <code>torrentfile\cli.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">195</span>
<span class="normal">196</span>
<span class="normal">197</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">197</span>
<span class="normal">198</span>
<span class="normal">199</span>
<span class="normal">200</span>
Expand Down Expand Up @@ -1506,7 +1508,29 @@ <h3 id="torrentfile.cli.execute" class="doc doc-heading">
<span class="normal">642</span>
<span class="normal">643</span>
<span class="normal">644</span>
<span class="normal">645</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">execute</span><span class="p">(</span><span class="n">args</span><span class="p">:</span> <span class="nb">list</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">list</span><span class="p">:</span>
<span class="normal">645</span>
<span class="normal">646</span>
<span class="normal">647</span>
<span class="normal">648</span>
<span class="normal">649</span>
<span class="normal">650</span>
<span class="normal">651</span>
<span class="normal">652</span>
<span class="normal">653</span>
<span class="normal">654</span>
<span class="normal">655</span>
<span class="normal">656</span>
<span class="normal">657</span>
<span class="normal">658</span>
<span class="normal">659</span>
<span class="normal">660</span>
<span class="normal">661</span>
<span class="normal">662</span>
<span class="normal">663</span>
<span class="normal">664</span>
<span class="normal">665</span>
<span class="normal">666</span>
<span class="normal">667</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">execute</span><span class="p">(</span><span class="n">args</span><span class="p">:</span> <span class="nb">list</span> <span class="o">=</span> <span class="kc">None</span><span class="p">)</span> <span class="o">-&gt;</span> <span class="nb">list</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Execute program with provided list of arguments.</span>

Expand Down Expand Up @@ -1536,7 +1560,7 @@ <h3 id="torrentfile.cli.execute" class="doc doc-heading">
<span class="n">usage</span><span class="o">=</span><span class="s2">&quot;torrentfile &lt;options&gt;&quot;</span><span class="p">,</span>
<span class="n">description</span><span class="o">=</span><span class="p">(</span>
<span class="s2">&quot;Command line tools for creating, editing, checking, building &quot;</span>
<span class="s2">&quot;and interacting with Bittorrent metainfo files&quot;</span>
<span class="s2">&quot;and interacting with Bittorrent meta files&quot;</span>
<span class="p">),</span>
<span class="n">prefix_chars</span><span class="o">=</span><span class="s2">&quot;-&quot;</span><span class="p">,</span>
<span class="n">formatter_class</span><span class="o">=</span><span class="n">TorrentFileHelpFormatter</span><span class="p">,</span>
Expand Down Expand Up @@ -1669,6 +1693,7 @@ <h3 id="torrentfile.cli.execute" class="doc doc-heading">
<span class="n">default</span><span class="o">=</span><span class="s2">&quot;1&quot;</span><span class="p">,</span>
<span class="n">action</span><span class="o">=</span><span class="s2">&quot;store&quot;</span><span class="p">,</span>
<span class="n">dest</span><span class="o">=</span><span class="s2">&quot;progress&quot;</span><span class="p">,</span>
<span class="n">metavar</span><span class="o">=</span><span class="s2">&quot;&lt;int&gt;&quot;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="s2">&quot;&quot;&quot;</span>
<span class="s2"> Set the progress bar level.</span>
<span class="s2"> Options = 0, 1</span>
Expand Down Expand Up @@ -1838,7 +1863,24 @@ <h3 id="torrentfile.cli.execute" class="doc doc-heading">
<span class="n">metavar</span><span class="o">=</span><span class="s2">&quot;&lt;*.torrent&gt;&quot;</span><span class="p">,</span>
<span class="p">)</span>

<span class="n">magnet_parser</span><span class="o">.</span><span class="n">set_defaults</span><span class="p">(</span><span class="n">func</span><span class="o">=</span><span class="n">magnet</span><span class="p">)</span>
<span class="n">magnet_parser</span><span class="o">.</span><span class="n">add_argument</span><span class="p">(</span>
<span class="s2">&quot;--meta-version&quot;</span><span class="p">,</span>
<span class="n">action</span><span class="o">=</span><span class="s2">&quot;store&quot;</span><span class="p">,</span>
<span class="n">choices</span><span class="o">=</span><span class="p">[</span><span class="s2">&quot;0&quot;</span><span class="p">,</span> <span class="s2">&quot;1&quot;</span><span class="p">,</span> <span class="s2">&quot;2&quot;</span><span class="p">,</span> <span class="s2">&quot;3&quot;</span><span class="p">],</span>
<span class="n">default</span><span class="o">=</span><span class="s2">&quot;0&quot;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="s2">&quot;&quot;&quot;</span>
<span class="s2"> This option is only relevant for hybrid torrent files.</span>
<span class="s2"> Options = 0, 1, 2, 3</span>
<span class="s2"> (0) = [default] version is determined automatically</span>
<span class="s2"> (1) = create V1 magnet link only</span>
<span class="s2"> (2) = create V2 magnet link only</span>
<span class="s2"> (3) = create a hybrid magnet link</span>
<span class="s2"> &quot;&quot;&quot;</span><span class="p">,</span>
<span class="n">dest</span><span class="o">=</span><span class="s2">&quot;meta_version&quot;</span><span class="p">,</span>
<span class="n">metavar</span><span class="o">=</span><span class="s2">&quot;&lt;int&gt;&quot;</span><span class="p">,</span>
<span class="p">)</span>

<span class="n">magnet_parser</span><span class="o">.</span><span class="n">set_defaults</span><span class="p">(</span><span class="n">func</span><span class="o">=</span><span class="n">get_magnet</span><span class="p">)</span>

<span class="n">check_parser</span> <span class="o">=</span> <span class="n">subparsers</span><span class="o">.</span><span class="n">add_parser</span><span class="p">(</span>
<span class="s2">&quot;recheck&quot;</span><span class="p">,</span>
Expand Down Expand Up @@ -1866,9 +1908,11 @@ <h3 id="torrentfile.cli.execute" class="doc doc-heading">

<span class="n">rebuild_parser</span> <span class="o">=</span> <span class="n">subparsers</span><span class="o">.</span><span class="n">add_parser</span><span class="p">(</span>
<span class="s2">&quot;rebuild&quot;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="s2">&quot;&quot;&quot;Re-assemble files obtained from a bittorrent file into the</span>
<span class="s2"> appropriate file structure for re-seeding. Read documentation</span>
<span class="s2"> for more information, or use cases.&quot;&quot;&quot;</span><span class="p">,</span>
<span class="n">help</span><span class="o">=</span><span class="s2">&quot;&quot;&quot;</span>
<span class="s2"> Re-assemble files obtained from a bittorrent file into the</span>
<span class="s2"> appropriate file structure for re-seeding. Read documentation</span>
<span class="s2"> for more information, or use cases.</span>
<span class="s2"> &quot;&quot;&quot;</span><span class="p">,</span>
<span class="n">formatter_class</span><span class="o">=</span><span class="n">TorrentFileHelpFormatter</span><span class="p">,</span>
<span class="p">)</span>

Expand Down Expand Up @@ -1922,23 +1966,23 @@ <h3 id="torrentfile.cli.execute" class="doc doc-heading">
<span class="n">rename_parser</span><span class="o">.</span><span class="n">set_defaults</span><span class="p">(</span><span class="n">func</span><span class="o">=</span><span class="n">rename</span><span class="p">)</span>

<span class="n">all_commands</span> <span class="o">=</span> <span class="p">[</span>
<span class="s2">&quot;create&quot;</span><span class="p">,</span>
<span class="s2">&quot;new&quot;</span><span class="p">,</span>
<span class="s2">&quot;c&quot;</span><span class="p">,</span>
<span class="s2">&quot;edit&quot;</span><span class="p">,</span>
<span class="s2">&quot;e&quot;</span><span class="p">,</span>
<span class="s2">&quot;info&quot;</span><span class="p">,</span>
<span class="s2">&quot;i&quot;</span><span class="p">,</span>
<span class="s2">&quot;magnet&quot;</span><span class="p">,</span>
<span class="s2">&quot;m&quot;</span><span class="p">,</span>
<span class="s2">&quot;recheck&quot;</span><span class="p">,</span>
<span class="s2">&quot;check&quot;</span><span class="p">,</span>
<span class="s2">&quot;r&quot;</span><span class="p">,</span>
<span class="s2">&quot;rename&quot;</span><span class="p">,</span>
<span class="s2">&quot;rebuild&quot;</span><span class="p">,</span>
<span class="s2">&quot;-i&quot;</span><span class="p">,</span>
<span class="s2">&quot;-h&quot;</span><span class="p">,</span>
<span class="s2">&quot;-V&quot;</span><span class="p">,</span>
<span class="s2">&quot;new&quot;</span><span class="p">,</span>
<span class="s2">&quot;edit&quot;</span><span class="p">,</span>
<span class="s2">&quot;info&quot;</span><span class="p">,</span>
<span class="s2">&quot;check&quot;</span><span class="p">,</span>
<span class="s2">&quot;create&quot;</span><span class="p">,</span>
<span class="s2">&quot;magnet&quot;</span><span class="p">,</span>
<span class="s2">&quot;rename&quot;</span><span class="p">,</span>
<span class="s2">&quot;rebuild&quot;</span><span class="p">,</span>
<span class="s2">&quot;recheck&quot;</span><span class="p">,</span>
<span class="p">]</span>
<span class="k">if</span> <span class="ow">not</span> <span class="nb">any</span><span class="p">(</span><span class="n">i</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">all_commands</span> <span class="k">if</span> <span class="n">i</span> <span class="ow">in</span> <span class="n">args</span><span class="p">):</span>
<span class="n">start</span> <span class="o">=</span> <span class="mi">0</span>
Expand Down Expand Up @@ -1968,7 +2012,7 @@ <h3 id="torrentfile.cli.execute" class="doc doc-heading">


<h3 id="torrentfile.cli.main" class="doc doc-heading">
<code class="highlight language-python"><span class="n">main</span><span class="p">()</span></code>
<code class="highlight language-python"><span class="n">main</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kc">None</span></code>

<a href="#torrentfile.cli.main" class="headerlink" title="Permanent link">#</a></h3>

Expand All @@ -1979,11 +2023,11 @@ <h3 id="torrentfile.cli.main" class="doc doc-heading">

<details class="quote">
<summary>Source code in <code>torrentfile\cli.py</code></summary>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">651</span>
<span class="normal">652</span>
<span class="normal">653</span>
<span class="normal">654</span>
<span class="normal">655</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">main</span><span class="p">():</span>
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">673</span>
<span class="normal">674</span>
<span class="normal">675</span>
<span class="normal">676</span>
<span class="normal">677</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">def</span> <span class="nf">main</span><span class="p">()</span> <span class="o">-&gt;</span> <span class="kc">None</span><span class="p">:</span>
<span class="w"> </span><span class="sd">&quot;&quot;&quot;</span>
<span class="sd"> Initiate main function for CLI script.</span>
<span class="sd"> &quot;&quot;&quot;</span>
Expand Down

0 comments on commit 38d2d3c

Please sign in to comment.