diff --git a/README.md b/README.md index a433aad..8e103f5 100644 --- a/README.md +++ b/README.md @@ -1,45 +1,7 @@ PBinCLI ===== -#### [PrivateBin](https://github.com/PrivateBin/PrivateBin/) CLI (in development) - -This CLI tool currently working only with compression-disabled services (see [that](https://github.com/PrivateBin/PrivateBin/issues/188#issuecomment-281284360) issue). - -```patch ---- a/js/privatebin.js -+++ b/js/privatebin.js -@@ -545,9 +545,9 @@ jQuery.PrivateBin = (function($, sjcl, Base64, RawDeflate) { - }; - - if ((password || '').trim().length === 0) { -- return sjcl.encrypt(key, compress(message), options); -+ return sjcl.encrypt(key, message, options); - } -- return sjcl.encrypt(key + sjcl.codec.hex.fromBits(sjcl.hash.sha256.hash(password)), compress(message), options); -+ return sjcl.encrypt(key + sjcl.codec.hex.fromBits(sjcl.hash.sha256.hash(password)), message, options); - }; - - /** -@@ -564,10 +564,10 @@ jQuery.PrivateBin = (function($, sjcl, Base64, RawDeflate) { - { - if (data !== undefined) { - try { -- return decompress(sjcl.decrypt(key, data)); -+ return sjcl.decrypt(key, data); - } catch(err) { - try { -- return decompress(sjcl.decrypt(key + sjcl.codec.hex.fromBits(sjcl.hash.sha256.hash(password)), data)); -+ return sjcl.decrypt(key + sjcl.codec.hex.fromBits(sjcl.hash.sha256.hash(password)), data); - } catch(e) { - return ''; - } -``` - -Currenty compression disabled on next services: - -* https://paste.i2pd.xyz/ -* http://paste.r4sas.i2p/ -* *here can be your service* +#### [PrivateBin](https://github.com/PrivateBin/PrivateBin/) CLI Installing ----- @@ -55,7 +17,7 @@ Edit variables `server`, `proxies` and `useproxy` in `pbincli/settings.py` to yo Run inside `venv` command: - $ ./cli send -c "Hello!" + $ ./cli send --text "Hello!" Or use stdin input to read text for paste: diff --git a/cli b/cli index e1c3cf3..09a95e0 100755 --- a/cli +++ b/cli @@ -11,7 +11,7 @@ def main(): # a send command send_parser = subparsers.add_parser("send", description="Send data to PrivateBin instance", usage=""" %(prog)s --burn --discus --expire 1day --format plaintext \\ - --comment "My file" --password mypass image.txt""" + --text "My file" --password mypass image.txt""" ) send_parser.add_argument("-B", "--burn", default=False, action="store_true", help="burn sent paste after reading") send_parser.add_argument("-D", "--discus", default=False, action="store_true", help="open discussion of sent paste") @@ -19,7 +19,7 @@ def main(): choices=["5min", "10min", "1hour", "1day", "1week", "1month", "1year", "never"], help="expiration of paste (default: 1day)") send_parser.add_argument("-F", "--format", default="plaintext", action="store", choices=["plaintext", "syntaxhighlighting", "markdown"], help="format of comment (default: plaintext)") - send_parser.add_argument("-c", "--comment", help="comment in quotes. Ignored if used stdin") + send_parser.add_argument("-t", "--text", help="comment in quotes. Ignored if used stdin") send_parser.add_argument("-p", "--password", help="password for encrypting paste") send_parser.add_argument("-d", "--debug", default=False, action="store_true", help="enable debug") send_parser.add_argument("--dry", default=False, action="store_true", help="invoke dry run") diff --git a/pbincli/actions.py b/pbincli/actions.py index 0e85ce3..17334cb 100644 --- a/pbincli/actions.py +++ b/pbincli/actions.py @@ -29,8 +29,8 @@ def compress(s): def send(args): if args.stdin: text = args.stdin.read() - elif args.comment: - text = args.comment + elif args.text: + text = args.text elif args.file: text = "Sending a file to you!" else: @@ -52,7 +52,7 @@ def send(args): if args.debug: print("Password:\t{}".format(password)) - # Encrypting text (comment) + # Encrypting text cipher = SJCL().encrypt(compress(text.encode('utf-8')), password, mode='gcm') # TODO: should be implemented in upstream