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
Add an option to convert .magnet in .torrent.
Move version from init to version and display version with command line.
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'
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.
Is there a "while" with large file and my implementation of Paramiko.
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)
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/
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 exclude expression from sync.
Currently SeedBoxSync isn't tested on Python3. With the release of OpenMediaVault 3 (my NAS solution), port the application in pure Python 3 !
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.
Prevent to sync indefinitely a bad torrent by changing the torrent extension.
Fix error "Download fail: cannot concatenate 'str' and 'int' objects"
Using Sphinx to build documentation of SeedBoxsync and code documentation.
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)
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
Add units tests and code coverage based on Cement.
After #25
Add PeeWee.
Currently, the sFTP transport is hard-coded. Use an interface which will allow to use another transport method in the futur.
Rebuild seedbox sync based on the Cement framework:
The advantages :
With percentage and time prediction
Remove stack and over message with Ctrl + C
Migrate from Sphinx and Rst to GitHub documentation and Markdown.
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...
More info on how to fix Insecure Use of Dangerous Function.
With the sFTP and the local size stored in database, check if the 2 sizes are equals after a download.
Use a setup.py to install seedboxsync.
Allow a command line to build statistics.
Catch and mute this exception.
Update Cement framework to 3.0.4 to 3.0.6: https://github.com/datafolklabs/cement/releases/tag/3.0.6
Allow shorts arguments:
Use and catch exception instead to use exit.
Update new command line argument.
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!
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.