Coder Social home page Coder Social logo

kz26 / dottorrent-gui Goto Github PK

View Code? Open in Web Editor NEW
324.0 18.0 31.0 237 KB

An advanced GUI torrent file creator with batch functionality, powered by PyQt and dottorrent

Home Page: https://pypi.org/project/dottorrent-gui/

License: GNU General Public License v3.0

Python 100.00%
pyqt5 python python3 bittorrent gui gui-application torrent torrent-files p2p

dottorrent-gui's Introduction

dottorrent-gui

An advanced GUI torrent file creator with batch functionality, powered by PyQt and dottorrent

img/screenshot1.png

Features

  • Fast (capable of several hundred MB/s)
  • Cross-platform
  • Full Unicode support
  • Automatic and manual piece size selection, up to 64MB
  • Batch torrent creation mode
  • Filename exclusion patterns
  • HTTP/web seeds support (BEP 19)
  • Private flag support (BEP 27)
  • User-definable source string
  • Optional MD5 file hash inclusion
  • Import/export of profiles (trackers, web seeds, source string, filename exclusion patterns)

Installation

Windows

Binary releases of stable versions for 64-bit Windows can be found at https://github.com/kz26/dottorrent-gui/releases. Extract to a folder and run dottorrent_gui.exe. You may need to download and install the Microsoft Visual C++ Redistributable for Visual Studio 2015.

Linux and Mac OS X

Requirements

  • Python 3.3+
  • PyQt5 5.7+

Latest stable release: pip install dottorrent-gui

Development: git clone this repository, then pip install .

To run: dottorrent-gui

Portable Mode

dottorrent-gui can be configured to run in portable mode, good for running from USB drives and network shares. To enable this, simply create an empty file named dottorrent-gui.ini in the same directory as the main excecutable.

License

© 2017 Kevin Zhang. Made available under the terms of the GNU General Public License v3.

dottorrent-gui's People

Contributors

kz26 avatar raphaeldore avatar savagecore avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

dottorrent-gui's Issues

Ability to make "piece size" larger than 4 MiB

qBittorrent allows for the creation of torrents with piece sizes as large as 16 MiB, as well as other torrent clients.

I know that larger piece sizes may not be efficient, as there is the potential for greater error on a per-piece basis. However, allowing piece sizes for larger torrent filesets (50GB+) would be greatly appreciated, as it reduces the total size of the torrent file in question.

Not urgent, but it would be helpful.

Thanks!

[feature request] Change Tracker URLs and Source of .torrent in batch mode

This software is excellent for creating .torrent of batch files. But, if the files are in the seedbox? Would it be possible to implement the option to change the Tracker URLs and the Source of .torrent files in batch mode? You can ask youself: what the purpose of this implementation? When we want to cross seeding files that are in the seedbox, we download the .torrent files from seedbox to the computer and after we need to change the Tracker URLs and the Source of .torrent files. There is a software that do this just one file at time, but it would be nice do this in batch mode.

Change piece size defaults to auto in batch mode

Hi kz26, I am back with this issue... reading this topic: #24, I saw you decided not to implement a manual piece size for batch mode due to the points made in favor of using unique source strings to enable cross-seeding. So my question is, thinking in cross seedind, If I have 100 files to create the .torrent in Batch Mode, how can I change the Source String in batch mode too for cross seeding these files in different trackers? Change one by one is crazy. Is there any way for to do this (change the unique source string of all .torrent for each tracker that I want to cross seeding) in batch mode? In my head, implementing different Piece Size in Batch Mode would be the solution. Thanks in advance.

[bug] selecting a individual file with batch checked = crash

issue: if you try and make a torrent with using "file mode" after enabling "directory>batch mode", the app will crash

to replicate:
optional) click the reset button.

  1. change to "directory mode" and check batch mode.
  2. switch to "file mode" and input any file
  3. other settings dont matter.
  4. click create, i saved the torrent file to the desktop

my setup:

  1. im using windows 10 pro 64-bit
  2. i am using 1.3.6 i had initially installed a old version to program files, using nirsoft's zip installer. and i simply over write my installed version with each update.
  3. i also tried the above with a new extraction to desktop as well as D drive
  4. i also put a random video in the c drive to try.

because this is my first bug report i dont know what bug reports you need or how to get them.

Suggestion: More than one source

Hello, is it possible to have the feature to add more than one source when creating a torrent? This would be very helpful when sharing across more than one private tracker. Thanks.

[feature request] multiple tracker and randomized source

I was thinking this would be an interesting addition for those who seed on multiple trackers.

If the private torrent flag is ticked, then a random source string is generated, and if the seeding tracker list has multiple urls, then each individual line will generate a new torrent.

i.e. torrent linux.iso with 5 different tracker urls - each url will generate an additional torrent and the source string will be randomized, some kind of 15 digital string maybe - this would also be nice to work on both batch creation and regular.

Missing dependency "humanfriendly"

I got an error the first time I tried to run dottorrent-gui because I was missing the humanfriendly module. I manually installed it and all is well! However, it should be listed as a dependency so that pip automatically deals with this in the future.

Remember last used folder for torrent creation

I don't see any settings menu at all, so I may be missing something, but whenever I create a torrent it defaults to whatever folder the file I'm using is nested in. But I keep all my .torrent files in a different folder, so I have to select it with each and every torrent creation. Is there a way to make it remember the last used folder? Thanks!

Installation on Synology DSM

Hello, I've install the Python3, pip, and PyQt5 on my Synology DS918+. dottorrent was installed with no issue, but when I run it, and error shows:

root@DS918Plus:~# dottorrent-gui
Traceback (most recent call last):
  File "/volume1/@appstore/py3k/usr/local/bin/dottorrent-gui", line 5, in <module>
    from dottorrentGUI.gui import main
  File "/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/dottorrentGUI/__init__.py", line 1, in <module>
    from .ui_mainwindow import Ui_MainWindow
  File "/volume1/@appstore/py3k/usr/local/lib/python3.5/site-packages/dottorrentGUI/ui_mainwindow.py", line 9, in <module>
    from PyQt5 import QtCore, QtGui, QtWidgets
ImportError: libGL.so.1: cannot open shared object file: No such file or directory

I don't know where to find ligGL.so.1 and how to install it on DSM, which may solve this issue.

[Feature Request] Add multiple files from a directory

Would it be possible to add a feature that would batch create torrents for the files selected/drag and dropped instead of batch create all the files in the directory? (Exclusions does not help because I'm trying to create files in a whole drive directory) Thanks!

Remember File v Directory Settings

Is it possible to get it to remember if we had previously selected File or Directory mode and whether Batch Mode was checked on a previous load of the program?

Error Installing on Linux

Hello,
Looking forward to trying our your program but when I run the command pip install dottorrent-gui I receive the following red coloured error message:

Could not find a version that satisfies the requirement PyQt5>=5.7 (from dottorrent-gui) (from versions: )
No matching distribution found for PyQt5>=5.7 (from dottorrent-gui)

Any ideas? I am using the latest Ubuntu Mate 17.04.
Thanks.

"Paste from clipboard" does not work when the path on the clipboard is quoted

In dottorrent-gui 1.3.4, clicking Paste from clipboard does not work if the path on the clipboard is surrounded in double quotes.

For example, in Windows 8.1 and above, clicking Copy path on the below file results in "N:\Downloads\GoldenEye_Source_v5.0_full.exe" being on the clipboard.
copy path

If I then click Paste from clipboard in dottorrent-gui, nothing is populated in the input path field. Removing the double quotes from around the path on the clipboard causes Paste from clipboard to work as expected.

Can you update dottorrent-gui to support pasting double-quoted paths from the clipboard? Thanks!

Long path or long folder name

  1. try create .torrent

image
3.
image
4.
Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: dottorrent-gui.exe
Версия приложения: 0.0.0.0
Отметка времени приложения: 597f4a43
Имя модуля с ошибкой: ucrtbase.DLL
Версия модуля с ошибкой: 10.0.14393.2247
Отметка времени модуля с ошибкой: 5adc1d0b
Код исключения: 40000015
Смещение исключения: 000000000006eacf
Версия ОС: 6.1.7601.2.1.0.256.1
Код языка: 1049
Дополнительные сведения 1: 1867
Дополнительные сведения 2: 1867797b54365ad8b47e5977453ace74
Дополнительные сведения 3: 92b9
Дополнительные сведения 4: 92b912a67e8040b669719a39c0e2ac46

Ознакомьтесь с заявлением о конфиденциальности в Интернете:
http://go.microsoft.com/fwlink/?linkid=104288&clcid=0x0419

Если заявление о конфиденциальности в Интернете недоступно, ознакомьтесь с его локальным вариантом:
C:\Windows\system32\ru-RU\erofflps.txt

Explanation of exclusions?

Sometimes when adding multiple lines it just doesn't seem to work at all.

for example:
Folder>Files>
Grunge Texture 1 trough Grunge Texture v40 (mixed as .rar .zip)
Grunge Texture 41(help).rar
Grunge Texture 42_8000p.zip
Grunge Texture 42_4000p.zip
Grunge Texture 42_1000p.zip
Grunge Texture 43 (help).7z
Grunge Texture 44 (help).rar

Let's say I want to only add these files " Grunge Texture 1 trough Grunge Texture v40 (mixed as .rar .zip) "
I will add these to the exception box like this wouldn't I?
Grunge Texture 41(help).rar
Grunge Texture 42_8000p.zip
Grunge Texture 42_4000p.zip
Grunge Texture 42_1000p.zip
Grunge Texture 43 (help).7z
Grunge Texture 44 (help).rar
or
Grunge Texture 41(help)
Grunge Texture 42_8000p
Grunge Texture 42_4000p
Grunge Texture 42_1000p
Grunge Texture 43 (help)
Grunge Texture 44 (help)

Thing is that for some reason they still get added when creating the torrent.

Same error as #13 - It won't install

I've tried... pip, pip3 python3-pyqt5... I've done it all.. package won't install due to:
pi@raspberrypi:~ $ pip3 install dottorrent-gui
Collecting dottorrent-gui
Using cached https://files.pythonhosted.org/packages/ea/63/3525b4a63316806668b4ac4f0869c8329d99123bda9403e37c291235371a/dottorrent_gui-1.3.10-py3-none-any.whl
Collecting PyQt5>=5.7 (from dottorrent-gui)
Could not find a version that satisfies the requirement PyQt5>=5.7 (from dottorrent-gui) (from versions: )
No matching distribution found for PyQt5>=5.7 (from dottorrent-gui)

Also:
pi@raspberrypi:~ $ pip -V pip 9.0.3 from /home/pi/.local/lib/python3.5/site-packages (python 3.5) pi@raspberrypi:~ $ python -V Python 3.5.3

And..
python3-pyqt5 is already the newest version (5.7+dfsg-5)

I don't know what else to do... Any ideas?

Suggestion: Add ability to include templates for files to skip

utorrent has the ability to create a delimited (|) template of files that will be skipped in the directory when the torrent is created. Could this be implemented?

From help file:
The Skip Files field allows you to skip files using specific filters. This field only gets activated if you use the "Add directory" button. Wildcards can be used to specify multiple files.

In several places in µTorrent, wildcards can be used in place of normal characters in order to specify a pattern of characters that µTorrent should use to match whatever it needs. The following may be used in those situations:

  • (asterisk) to match any text of any length
    ? (question mark) to match any single character
    | (vertical pipe) is an "or" conditional
    Example: File?A|File?B* matches any file that contains File?A anywhere in the filename (where ? is any single character, such as a space or an underscore), or any file that begins with File?B in its filename (again, where ? is any single character).

dottorrent-gui loses its original window position when you press the X (close) button on Windows 10 64bit.

This happens on Windows 10 64bit.

  1. Put dottorrent-gui somewhere on your screen, noting exactly where you placed it.
  2. Close dottorrent-gui with the X (close) button.
  3. Watch it open, except it has moved about 100 pixels further down from where it was before.
  4. Close dottorrent-gui with the X (close) button, again
  5. Watch it open, and notice that again, it has creeped down about 100 pixels from where it was.

It keeps doing this every time you close it with the X button. It keeps creeping down every time it is opened.

config file gets recreated every time

When closing the program the .ini file (whether it's portable or not) gets recreated. This breaks symbolic/hard linking to the file which is very frustrating.

Steps to reproduce:

  1. Download and extract the program.
  2. Launch the program, wait for the main window to show up and then close it.
  3. The 'dottorrent-gui.ini' file gets recreated instead of being updated.

Seems like a Qt thing maybe?

Edit: after a little research I'm 99% certain that QSettings::sync() is causing it. And it looks like there's no way around it :(
Edit2: yep, that's exactly what's going on.

Suggestion: Ability to paste path in box next to "Browse"

Suggestion: Allow users to paste the path in the textbox instead of having to click "Browse" and browsing to it.

Use case: I often have the folder I want to compute and create a .torrent for already on my clipboard and in my workflow it is faster to just paste the path and then create the torrent file than it is to browse and then navigate to the folder in question.

Thank you.

[Feature Request] Ability to choose files and/or folders.

It would be very useful if the program allowed to add different folders, subfolders and/or different files when creating the .torrent. That is, the ability to individually choose each file and/or each folder that will compose the .torrent.

Folder A = Subfolder U, Subfolder V and File W
Folder B = Subfolder X, Subfolder Y and File Z
Folder C = File K, File M and File N
Folder D = Whatever

.torrent = Subfolder U + Subfolder Y + File N + Folder D

Suggestion: Adding ED2K hash in .torrent

Hello Zhang, I really appreciate your work in developing this project, dottorrent truely makes my works easy. I suggest to developing a feature of Adding ED2K hash in the torrent file, like Vuze Bittorrent Client does. Thank you a lot!

Auto Piece Size can cause trouble

Hi kz26

Thank you for dottorrent-gui, me and my friend use it regularly and are very happy with it!

Today the team of the tracker I mostly use reported me a problem that seems to be caused by the dottorrent-gui auto piece size. Some clients can't handle sizes that aren't multiplications of 16 KiB and some can't even handle piece sizes >16 MiB. At first I thought only crappy clients like uTorrent would have that problem, but Transmission and qbittorrent couldn't handle the torrent, too (52 GB Torrent, made with auto piece size). Only Deluge could start the download (that's also the client I use on my server and I guess that's the reason I never noticed the problem).
Sorry, I don't know so much about the topic and I couldn't find a final answer which piece sizes are included in the bittorrent standard (I guess this isn't really regulated). I just thought I'd report this "problem" to you. I have no idea if others run into this. It'd probably solve it if you just use the tiers listed in the GUI up to maximum 16 MiB piece size?

Thanks a lot again - your tool is such a perfect addition to deluge-web (which can't create torrents).

  • Monkey

dottorrent-gui 1.3.4 does not set the "announce" key in the resulting .torrent file

When creating torrents using dottorrent-gui 1.3.4, the "announce-list" key is set correctly, but the "announce" key, which should contain the primary tracker's announce URL, is not. This causes the resulting .torrent file to not be accepted by trackers that validate this parameter.

For example, this is how a torrent generated by dottorrent-gui normally looks (in BEncode Editor):
dottorrent-gui version

And this is how it looks with the "announce" key correctly added:
fixed version

As you can see, the primary tracker is set as the value for the "announce" key, and is also included in the full list of trackers under the "announce-list".

Can you update dottorrent-gui to add this key to the generated torrent file? How you handle this in the GUI is up to you, but I think it would be pretty safe to assume that the first tracker entered by the user is the primary.

Thanks!

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.