llaumgui / seedboxsync Goto Github PK
View Code? Open in Web Editor NEWScript for sync operations between your NAS and your seedbox.
Home Page: https://llaumgui.github.io/seedboxsync/
License: GNU General Public License v2.0
Script for sync operations between your NAS and your seedbox.
Home Page: https://llaumgui.github.io/seedboxsync/
License: GNU General Public License v2.0
Currently SeedBoxSync isn't tested on Python3. With the release of OpenMediaVault 3 (my NAS solution), port the application in pure Python 3 !
2020-05-25 11:17:08,237 (ERROR) seedboxsync.core.exc : Lock error: [Errno 2] No such file or directory: '/home/llaumgui/.config/seedboxsync/lock/blackhole.pid'
Lock error: [Errno 2] No such file or directory: '/home/llaumgui/.config/seedboxsync/lock/blackhole.pid'
Add an option to convert .magnet in .torrent.
Now with the new search system (#54), it's possible to search an entry. This new feature will allow deleting entry on the downloaded table to redownload it.
Is there a "while" with large file and my implementation of Paramiko.
Currently SeedSync only support sFTP transfer. But with version 1.1.0, SeedBoxSync allow transport method. Write a FTP provider can be nice.
Allow to search in DB with term.
Add PeeWee.
Using Sphinx to build documentation of SeedBoxsync and code documentation.
More info on how to fix Insecure Use of Dangerous Function.
Add units tests and code coverage based on Cement.
Allow a command line to build statistics.
Move version from init to version and display version with command line.
Update Github action:
Run echo ::set-env name=RELEASE_VERSION::${GITHUB_REF:11}
Error: Unable to process command '::set-env name=RELEASE_VERSION::3.0.1' successfully.
Error: The `set-env` command is disabled. Please upgrade to using Environment Files or opt into unsecure command execution by setting the `ACTIONS_ALLOW_UNSECURE_COMMANDS` environment variable to `true`. For more information see: https://github.blog/changelog/2020-10-01-github-actions-deprecating-set-env-and-add-path-commands/
Support for Healthchecks SaaS / On prems service.
Implementation example:
# Using Python 3 standard library:
import socket
import urllib.request
try:
urllib.request.urlopen("https://{domain}/ping/{uuid}", timeout=10)
except socket.error as e:
# Log ping failure here...
print("Ping failed: %s" % e)
Because some nfo or some files have a size of 0Kb whiteout any issue: remove the check on file size == 0.
Use and catch exception instead to use exit.
Fix The last analysis has failed
:
Fail to process issues of component 'llaumgui:seedboxsync:seedboxsync/core/init_defaults.py:BRANCH:develop' (Visit of Component {key=llaumgui:seedboxsync:seedboxsync/core/init_defaults.py:BRANCH:develop,type=FILE} failed)
Prevent to sync indefinitely a bad torrent by changing the torrent extension.
Migrate from Sphinx and Rst to GitHub documentation and Markdown.
With some filename, I have this message:
Traceback (most recent call last):
File "/opt/llaumgui/seedboxsync/seedboxsync.py", line 23, in <module>
cli = seedboxsync.CLI()
File "/opt/llaumgui/seedboxsync/seedboxsync/seedboxsync.py", line 57, in __init__
self.__start()
File "/opt/llaumgui/seedboxsync/seedboxsync/seedboxsync.py", line 81, in __start
sync.do_sync()
File "/opt/llaumgui/seedboxsync/seedboxsync/seedboxsync.py", line 430, in do_sync
self.__get_file(filepath)
File "/opt/llaumgui/seedboxsync/seedboxsync/seedboxsync.py", line 355, in __get_file
local_filepath = os.path.join(self._config.get('Local', 'download_path'), filepath_without_prefix)
File "/usr/lib/python2.7/posixpath.py", line 78, in join
path += b
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 53: ordinal not in range(128)
hi! thanks for your work on this script! i'm looking into using this to sync my seedbox to my nas only (not the blackhole function) and was wondering why it says you must create the remote folder. will it overwrite anything if I use existing folders? Additionally there is a typo (maybe?) in the .ini.dist file in local it's "wath_path". Is this correct? Don't want to mess anything up. Thanks!
Allow to exclude expression from sync.
Hi,
I'm having a problem - occasionally my internet connection might drop (eg the cat resets the router) and if there is a seedboxsync download in progress, the transfer won't recover or fail.
Basically the process stays alive but never resumes.
This means the lock file also doesn't get removed, and when cron runs again a new transfer isn't started.
It appears that in the way paramiko is initialized doesn't allow a timeout to be specified.
I found a StackOverflow post which suggests that instantiating the sftp client from an SSHClient instead of a Transport instance might be the way to go. What do you think?
http://stackoverflow.com/questions/9758432/timeout-in-paramiko-python
After #25
Update new command line argument.
Currently, the sFTP transport is hard-coded. Use an interface which will allow to use another transport method in the futur.
With percentage and time prediction
Remove unused table "torrent_file" and also remove unused torrents files informations storage which cause an index exception.
This informations aren't used for the moments and no usages are planned.
New v3.1.x have a lot of unit tests, bud coverage is to 0%.
Remove stack and over message with Ctrl + C
With the sFTP and the local size stored in database, check if the 2 sizes are equals after a download.
Catch and mute this exception.
Rebuild seedbox sync based on the Cement framework:
The advantages :
Allow shorts arguments:
Use a setup.py to install seedboxsync.
Fix error "Download fail: cannot concatenate 'str' and 'int' objects"
There is an issue with the BenCodePy implementation.
When you sync blackhole and read information on torrent, the implementation crash and remove torrent doesn't work... The torrent is reuploaded on the next try...
Update Cement framework to 3.0.4 to 3.0.6: https://github.com/datafolklabs/cement/releases/tag/3.0.6
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.