Code Monkey home page Code Monkey logo

tamperdav's Introduction

TamperDAV

A WebDAV-like server to sync Tampermonkey scripts and edit them with an external editor.

WARNING: this is not a 100% WebDAV-compliant server. Many clients should, but don't necessarily have to work!

Usage

Make sure Node.js greater than v4.9 is installed.

Windows

execute TamperDAV.bat

Linux

$ ./tamperdav.sh

Clients

Tampermonkey (4.7.5823+)

alt text

Notes:

  • in order to allow Tampermonkey to use the full TamperDAV feature set, please make sure TamperDAV is running when Tampermonkey is started.
  • Tampermonkey will sync all scripts into a subfolder of the configured dav-directory i.e. Tampermonkey/sync using it's internally generated UUID for the filename. The actual file to edit can easily be found by running node find_script_in_meta.js --name="My Script Name". Alternatively you can find the the UUID via Tampermonkey's UI by navigating to the script and retrieving it from the address bar.

mount

sudo mount -t davfs http://localhost:7000 /mnt

nautilus

dav://localhost:7000/

Development

# Install dependencies
$ npm install

# run
$ mkdir dav
$ node server.js --path=dav/

Config

All options can be set via config.json and/or command line. username and password can be set via environment as well.

Command Line Example

$ TD_USERNAME=derjanb TD_PASSWORD=secret node server.js --path=dav/ --port=6000

Config File Example

config.json:

{
    "path": "dav",
    "no-auth-warning": false,
    "username": "derjanb",
    "password": "secret",
    "port": "7000",
    "host": "localhost",
    "max-cursors": 512,
    "open-in-editor": "sublime_text",
    "meta-touch": true,
    "debug": true
}

All Options

  • path a relative path from where the files should be served
  • no-auth-warning don't show a warning if no username and password is set
  • username username for authentication (basic auth)
  • password password
  • port TCP port to listen at
  • host network address to bind on
  • max-cursors number of cached changes
  • open-in-editor if "true" then if Windows "notepad" editor is used, else xgd-open; or the executable as string i.e. "gedit", "notepad", ...
  • meta-touch touch a sync entries's meta file automatically to make Tampermonkey start a sync on script changes
  • no-dialog Disables the use of a dialog to show messages to the user
  • headless Implies --no-dialog and disables editor opening
  • debug print debug information

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.