Git Product home page Git Product logo

syncthing-pyselective's Introduction

Syncthing-PySelective

Third-party app to realize selective sync in Syncthing. It gives minimalist GUI to select which folders, subfolders and files you want to sync with a local machine and which one you would like to add for syncing.

It reads the global and local folder trees and fill tree view with checkboxes. Your choice is transformed to new list of ignores and submitted into Syncthing. Please be careful especially with the firsts versions as it could damage your predefined .stignore.

How to use

  1. Syncthing app should be started and listen default port.

  2. Apply the next template to the folder that you would like to be synced partially:

    //* Do not edit comments like this! *//

    //* Global ignores *//

    !/.stignoreglobal

    // Uncomment the next file if only the file exists locally

    //#include .stignoreglobal

    //* User defined *//

    // optional local ignores

    //* Selective sync (generated by pyselective) *//

    !/folder

    //* ignore all except selected *//

    **

    So, only the section Selective sync will be modified by the program

  3. Insert API Key into corresponding field. It will be saved for future.

  4. Press "Get folder tree" button and select which folders you would like to sync

  5. Press "Submit changes" to apply new ignore template

Requirements

Python 3 and PyQt5 must be installed to run the program.

About

I've started this project for my personal use case but I believe it could be helpful both to other people right now and to the Syncthing project to introduce Next Gen Ignores feature in future. Please be free to contact me about your wishes and bug reports and do not judge strictly my code.

Roadmap

  • Manual parsing stignore file to check global ignore patterns instead of making assumptions
  • Add options dialog into the UI to move API key, URL, etc into.
  • Human readable size column, assumtions about the size of folders by its context
  • Applying templates to the .stignore in one click (quick first start)
  • Hide all included (or hidden?) files in the tree
  • Syncronization state of the folder
  • Update item colors after changes submitted
  • Folders can be partially checked directly
  • Availabilily column
  • ...

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.