Git Product home page Git Product logo

seedboxsync's Introduction

SeedboxSync

Author Software License Build Status Latest Version Docker Pull Latest Version

Quality Gate Status Coverage Maintainability Rating Reliability Rating Security Rating

Provides synchronization functions between your NAS and your seedbox:

  • Syncs a local black hole (ie: a NAS folder) with the black hole of your seedbox.
  • Downloads files from your seedbox to your NAS. Stores the list of downloaded files in a sqlite database, to prevent to download a second time.
  • Also provides queries to know last torrents, last downloads, etc.

Full documentation

See: https://llaumgui.github.io/seedboxsync/

License

Released under the GPL v2.

seedboxsync's People

Contributors

dependabot[bot] avatar llaumgui avatar

Stargazers

 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

seedboxsync's Issues

Create lock path before lock

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'

FTP support

Currently SeedSync only support sFTP transfer. But with version 1.1.0, SeedBoxSync allow transport method. Write a FTP provider can be nice.

Configuration File

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 shorts arguments

Allow shorts arguments:

  • --lasts-torrents => -t
  • --lasts-downloads => -d
  • --unfinished-downloads => -u

Remove unused table "torrent_file"

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.

Use a transport interface

Currently, the sFTP transport is hard-coded. Use an interface which will allow to use another transport method in the futur.

Check size after download

With the sFTP and the local size stored in database, check if the 2 sizes are equals after a download.

No timeout on connections

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

::set-env is now deprecated

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/

Healthchecks support

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)

Allow to delete entry by id

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.

Fix SonarCloud analysis

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)

Fix UnicodeDecodeError

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)

New version system

Move version from init to version and display version with command line.

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.