r4sas / pbincli Goto Github PK
View Code? Open in Web Editor NEWPrivateBin CLI on python 3
License: MIT License
PrivateBin CLI on python 3
License: MIT License
alias pastei2p="echo 'paste the text to stdin' && pbincli send -"
Hello, I'm noticing possibly a very similar issue to #14 where I'm unable to properly get some pastes that I'm not the author of. The only difference I notice is kdf_keysize being 128. The vim.cx is version 1.3, and I compared against paste.biocrafting.net of the same version and the js files all matched up (except vim.cx doesn't have base64-1.7.js).
Example: https://vim.cx/?23854101733f88cd#C9nHwV1PgScHGR3Ypo6CiUgmk5tZPjBusuH3yqF1Epy
gives me the error:
File "/usr/local/lib/python3.7/site-packages/pbincli/format.py", line 186, in _decryptV2
cipher_message = json_decode(self.__decompress(cipher.decrypt_and_verify(cipher_text, cipher_tag)).decode())
File "/usr/local/lib/python3.7/site-packages/Crypto/Cipher/_mode_gcm.py", line 567, in decrypt_and_verify
self.verify(received_mac_tag)
File "/usr/local/lib/python3.7/site-packages/Crypto/Cipher/_mode_gcm.py", line 508, in verify
raise ValueError("MAC check failed")
ValueError: MAC check failed
However, if I clone it, the new link has a kdf_keysize of 256, and decompresses just fine.
I tried playing with the various values of the constants, mac_len value, and values that __deriveKey() uses, as well as the cipher_text_tag truncation, etc but can't seem to find the right combination to make it all work. Any thoughts?
Nice project, but is it working with PrivateBin 1.1?
Also, have you seen https://github.com/PrivateBin/PrivateBin-Cli?
I have installed letsencrypt certificate and tested again. It produced the following response:
ERROR: Unable parse response as json. Received (size = 0):
Originally posted by @muralikodali in #15 (comment)
Hi,
whilst I can shorten PrivateBin URLs via a Shlink API string set in the PrivateBin config just fine when pasting text on my PrivateBin instance, the same sort of string does not seem to be supported in PBinCLI.
pbincli send: error: argument --short-api: invalid choice: 'shlink' (choose from 'tinyurl', 'clckru', 'isgd', 'vgd', 'cuttly', 'yourls')
It would be nice if either support for Shlink was added, or if there was an option to just use universal strings, the same way they are supported in PrivateBin itself.
Cheers!
Hi,
it would be nice if one could pre-define a URL shortening service in the config, in order not having to specify the shortening options manually each time.
Cheers and Thanks for the otherwise awesome tool!
I usually leave EOL at EOF. ValueError
is raised if there's an empty line in config file.
~ pbincli send --text "Hello world"
Traceback (most recent call last):
File "/Users/bkhanale/Library/Python/3.7/bin/pbincli", line 8, in <module>
sys.exit(main())
File "/Users/bkhanale/Library/Python/3.7/lib/python/site-packages/pbincli/cli.py", line 110, in main
CONFIG.update(read_config(p))
File "/Users/bkhanale/Library/Python/3.7/lib/python/site-packages/pbincli/cli.py", line 16, in read_config
key, value = l.strip().split("=")
ValueError: not enough values to unpack (expected 2, got 1)
Send a file, example from README :
pbincli send -c "FILE LOG" -f FILE.log
pbincli send: error: argument -c/--compression: invalid choice: 'FILE LOG' (choose from 'zlib', 'none')
pbincli send -c "none" -f FILE.log
pbincli send -c 'none' -f FILE.log
pbincli send -c none -f FILE.log
Waiiitiiing .... and ..... nothing ......
pbincli send -f FILE.log
pbincli send -f /home/folder/FILE.log
Waiiitiiing .... and ..... nothing ......
Solved :
cat FILE.log | pbincli send
Currently this just allows for you to send something to a public system however having functionality to send this to a system that requires some type of authorization header would be nice.
With the CLI it would be something like:
server=https://someprivate.bin/
pbincli send -H '"Custom": "header"' -t "This is a test paste"
Hi!
Unfurtunaly the Windows Binary of Release #0.3.4 is not working if called without parameters
This happens if I execute it without any parameters:
.\pbincli-0.3.4.exe
Traceback (most recent call last):
File "D:\devel\project\PrivateBin\PBinCLI\pbincli\cli.py", line 167, in <module>
File "D:\devel\project\PrivateBin\PBinCLI\pbincli\cli.py", line 154, in main
AttributeError: 'Namespace' object has no attribute 'debug'
[17928] Failed to execute script 'cli' due to unhandled exception!
If I add all parameters needed for a send it works:
.\pbincli-0.3.4.exe send --burn -t "Test"
Preparing paste…
Uploading paste…
Paste uploaded!
PasteID: cb65a960790821bc
Password: GqDwv2FSR9eQS1dCTDvkmS6rdnGxMtGzSQj3eHMdAW3T
Delete token: dfbb2a19b42c8620498a0c358f8b372550f337bab55ea97790cfe738d70ded25
Link: https://paste.i2pd.xyz/?cb65a960790821bc#GqDwv2FSR9eQS1dCTDvkmS6rdnGxMtGzSQj3eHMdAW3T
Delete Link: https://paste.i2pd.xyz/?pasteid=cb65a960790821bc&deletetoken=dfbb2a19b42c8620498a0c358f8b372550f337bab55ea97790cfe738d70ded25
While packaging pbincli for Arch Linux (https://aur.archlinux.org/packages/pbincli/), I noticed that the tarball misses the files LICENSE and requirements.txt.
Privatebin provides urlshortener buttion. When configured with self hosted server like yourls , it will be very convenient to send urls ( as privatebin urls are very lengthy ). I request you to provide a commandline option for url shortening.
Hello.
If send over EOF :
pbincli send - <<EOF
Hello! This is test paste!
EOF
This broken (decrypt) on paste.i2pd.xyz . And work on privatebin.net .
From the ReadME:
# python pbincli.py send -f tmp/file.txt -c "test" -d
It produces the following:
eJwrSS0uAQAEXQHB
Passphrase: riHS4TPUheZiJP/OMCO5T7/SL1zkcSRPVInCvDz1+X8=
Password: riHS4TPUheZiJP/OMCO5T7/SL1zkcSRPVInCvDz1+X8=
Filename: file.txt
MIME-type: text/plain
Request: {'attachmentname': '{"ks":256,"cipher":"aes","mode":"gcm","v":1,"adata":"","ct":"yPkdlUVnxvw5X3f5WHL4bmks6GqrpLJZwumXWkoTDaj95uN+zOt0Rg==","salt":"PT9FcVWM6Qg=","ts":128,"iter":10000,"iv":"sdgZHAy0O1UHG1hgAGs3TA=="}', 'burnafterreading': 0, 'expire': '1day', 'attachment': '{"ks":256,"cipher":"aes","mode":"gcm","v":1,"adata":"","ct":"5Zk9AG+1mO2KHCqIkSyuxlaTZyU+i7TA32OyKXyFwlyDjQ1odcCosaN1hAdhJS5/8yfOGKsZHUCJCkDP7BkOv98gliGEiQ869VnArseChNqzx/5zP4lky/qq2m/RPp2l","salt":"PT9FcVWM6Qg=","ts":128,"iter":10000,"iv":"Yc0MvHMzgJJ8kqUE7EM3lw=="}', 'opendiscussion': 0, 'formatter': 'plaintext', 'data': '{"ks":256,"cipher":"aes","mode":"gcm","v":1,"adata":"","ct":"5VMJxVfYVTwIY0Sg75wytXbDcnHn+OidZ1dCIGJKTiA=","salt":"PT9FcVWM6Qg=","ts":128,"iter":10000,"iv":"j6+QiL0BrSoXqULyf/4i/g=="}'}
Response: {"status":1,"message":"Invalid attachment."}
Something went wrong...
Error: Invalid attachment.
It seems that the issue is caused, on due to server checks with the following code: https://github.com/PrivateBin/PrivateBin/blob/master/lib/Model/Paste.php#L183-L211
So I am not sure if this issue should be filed with https://github.com/PrivateBin/PrivateBin/issues or not ?
I have installed v0.3.2 and my pbincli.conf
reads
server=https://paste.i2pd.xyz/
expire=1day
burn=True
Yet, pbincli send -t test
does not use the burn after reading option, whereas pbincli send --burn -t test
works as expected.
This is a feature request. When used in scripting, it would be useful to have pbincli
output information in a easily parse-able format (e.g. JSON
as it seams some verbose and/or debug output already uses it?).
That way it could be easy to e.g. catch the url of the paste, and do something with it, e.g. copying it to the clipboard.
$ pbincli send -x socks5://127.0.0.1:9050 -q -f pub.asc -E 1day -B -s http://thetorsiteishere.onion
$ torsocks -i pbincli send -x -q -f pub.asc -E 1day -B -s http://thetorsiteishere.onion
cd'd in correct folder that had .asc file :
$ pbincli send -x socks5://127.0.0.1:9050 -t "test" -f pub.asc -E 1day -B -s http://thetorsiteishere.onion
$ torsocks -i pbincli send -t "test" -f pub.asc -E 1day -B -s http://thetorsiteishere.onion
~/.config/pbincli/pbincli.conf
and put:proxy=socks5://127.0.0.1:9050
expire=1day
burn=true
format=plaintext
It still wouldn't work with and without torsocks -i
command or -x socks5://127.0.0.1:9050
flag.
Also noted I have onioncircuits
package installed and showed "succeeded" so it did connect to the onion site and also did verify it was not down in Tor browser and via torsocks curl -I
.
Preparing paste…
Traceback (most recent call last):
File "/home/user/.local/lib/python3.9/site-packages/requests/models.py", line 971, in json
return complexjson.loads(self.text, **kwargs)
File "/usr/lib/python3.9/json/__init__.py", line 346, in loads
return _default_decoder.decode(s)
File "/usr/lib/python3.9/json/decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "/usr/lib/python3.9/json/decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/user/.local/bin/pbincli", line 8, in <module>
sys.exit(main())
File "/home/user/.local/lib/python3.9/site-packages/pbincli/cli.py", line 161, in main
args.func(args, api_client, settings=CONFIG)
File "/home/user/.local/lib/python3.9/site-packages/pbincli/actions.py", line 38, in send
version = api_client.getVersion()
File "/home/user/.local/lib/python3.9/site-packages/pbincli/api.py", line 72, in getVersion
jsonldSchema = self.session.get(
File "/home/user/.local/lib/python3.9/site-packages/requests/models.py", line 975, in json
raise RequestsJSONDecodeError(e.msg, e.doc, e.pos)
requests.exceptions.JSONDecodeError: Expecting value: line 1 column 1 (char 0)
In the cli.py
script one of the imports is for strtobool
from the distutils package. That package has been deprecated since python 3.10 and now, since 3.12, is no longer supported. I think the fix should be easy by adding a method that returns a bool, seeing as you already check if the string is either "true" or "false".
Let me know if you want me to make a PR.
so that pbincli -v
would print "uploading paste..." immediately after stdin eof received for better user-friendliness.
example:
root@desktop1:~# alias pastei2p="echo 'paste the text to stdin' && pbincli -v send -s http://paste.r4sas.i2p/ -x http://127.0.0.1:4444/"
root@desktop1:~# pastei2p
paste the text to stdin
usage: pbincli [-h] {send,get,delete} ...
pbincli: error: unrecognized arguments: -v
so
How to install, with debian ?
virtualenv --python=python3 venv
. venv/bin/activate
virtualenv --python=python3 venv
bash: virtualenv : commande introuvable
. venv/bin/activate
bash: venv/bin/activate: Aucun fichier ou dossier de ce type
Dependabot couldn't authenticate with https://pypi.python.org/simple/.
You can provide authentication details in your Dependabot dashboard by clicking into the account menu (in the top right) and selecting 'Config variables'.
I tried to download paste (I'm not author) https://priv.atebin.com/?fb0daaba7acd7f6c#HrgT6DPj4BH7O1FrGS3jPrpeWMRAeIe0MQw4TSm9tvE=
but it failed to decompress received content with
$ pbincli get fb0daaba7acd7f6c#HrgT6DPj4BH7O1FrGS3jPrpeWMRAeIe0MQw4TSm9tvE=
Paste received!
Traceback (most recent call last):
File "G:\Development\python\a\venv\Scripts\pbincli-script.py", line 11, in <module>
load_entry_point('PBinCLI==0.2b1', 'console_scripts', 'pbincli')()
File "G:\Development\python\a\venv\lib\site-packages\pbincli-0.2b1-py3.6.egg\pbincli\cli.py", line 77, in main
File "G:\Development\python\a\venv\lib\site-packages\pbincli-0.2b1-py3.6.egg\pbincli\actions.py", line 111, in get
File "G:\Development\python\a\venv\lib\site-packages\pbincli-0.2b1-py3.6.egg\pbincli\format.py", line 200, in decrypt
File "G:\Development\python\a\venv\lib\site-packages\pbincli-0.2b1-py3.6.egg\pbincli\format.py", line 144, in __decompress
ValueError: byte must be in range(0, 256)
You can check link above that paste exist, isn't password protected and web site itself has no problems to process it.
I added some logging to see what's input for decompressing (output of decryption):
Paste received!
Decrypted text: b'77+M776977+J776WI++/p+++mTbvvrbvv6/vvqvvvojvvpLvvo/vv7/vvrTvv5vvvqhs776OYu++kS3vvqlOcU7vvpnvvqTvv5TvvqpS776X77+177+Lfe+/ugTvvoAPQDADEVAMCe++ggsdLe++vO+/t0YLb3Tvvrzvv7PvvrJ777+h776N776v776HN2Bf776C77+f77+nHe++vikCQO++ku+/jV/vvq1W776T776s77+KBCLvvr7vv6Ed776fd++/uu+/me++unoo77+2ZXfvvr9u776P77+N77+Pf++/su+/pk/vvopVXe+/tu+/ve+/j39SNe++h3F4776677+t77+a77+xUAzvv67vvpvvv6Hvv6nvv5djP1TvvptT776xcu+/je+/oO++uu++p++/i+++ul3vv50X776r7762fu++ul8/77+9776p77+9776h77+dbHo3PH3vv7sn776/77+477+Z7765Bx9dXe+/k+++r+++l++/ozDvvrRNMe++nA7vv67vv6c/776R776/77+4776PLO++h+++pu++oH/vvp4e7766776K776e776Q776+77+yJ++/he++uhzvv4rvvqdD776777+d77+W77+0TXpvXR56Zz8u7767776tG37vv77vvpPvv79uaFc/77+577+FK++/vlDvvrHvv5rvvpUH77+6flFX77+977+w776zf+++kHfvv43vvqzvvq9a77+/77+8J++/uO++mu++re+/gj/vv7oXf++/t++/t++/he+/j++/imLvv5fvvrkNPe+/ue+/s27vv7vvv6rvvqcf77+/77+677+rdz7vv7zvv7zvvr1f776977+5ae+/t++/me+/i+++t+++v++/vnV3cO++r+++v++/vO+/jQt377+n77+e77+477+y776f776O77+v7768eu++uX9/eO+/uO+/pO+/p++/v0Vf77+977+077+Z776z7763f+++ontdV++/ve++qu+/re+/lu+/v3oo77+777+BPX3vv7fvvq3vvrfvvp/vvr3vv7/vv6Y7b+++ve+/u++/rO+/me+/u++/rzx777+n77+ZG2/vv77vv6tq776177+9V++/uu+/vO+/k2bvv4RBfe++pO++i+++p+++n3xQ776877+a7765Yu+/m+++tu+/q+++ou++re+/l++/he+/kO++le+/q2rvvqjvv5rvvqbvvr/vvr3vvr0t77+K776Gfu++snNNURbvv73vv5jvv5Hvv4nvv7Xvvq4o776H776hXO+/ne+/v++/rB/vv4ofZQfvv6/vv4zvv68A776rfu+/s+++p2/vvr3vv7/vv74b77+v776977+177+m776777+v776/77+377+O77677766776DdyY7eO+/p+++g++/ou++i3J9Kn7vv5Xvv5DvvqrvvrHvv6hjRUvvv67vv5zvv7rvv4da77+i7767776277+ETe+/m+++je+/u+++p++/r+++vO+/se+/jhs/77+V77+V7768O1nvv43vvrty776e776177+bDO++hTvvvrnvvqLvv53vv6AAC+++ou+/su+/le+/ve++vmx+776sNe+/vXTvv77vv5jvv55/77+j77+Z776b77+v776+77+377+s776nb+++v++/v++/tu++s+++t++/nn3vv6vvv5kb776677+O776f77+SV++/nu++i+++l++/ue+/kw/vvorvv4/vv5wwVO+/je++lu++ru+/tlBWHRZK77+r77+t77+l77+K7767776y77+pae++t3vvv7rvv73vvpMfa++/ie+/r++/vQfvvpfvv7zvv54H77+F77+L77+d7764K+++m++/re++ojjvvrUjOG
........... (only part)
It's Base64 but it looks extremely fishy.
I cloned this paste (https://priv.atebin.com/?66dfee161d6babc7#F+0Fxa4qBzAAf20PgrbuDAI9xnO71JKcUuh/E+JRhTU=) and I'm able to download it just fine. Log output looks quite different too:
Paste received!
Decrypted text: b'w4xcw4nCkhxHcsK9w7MrwoLCkMOZw4BswqzCusOZG8KAbg4IGEASRHMIwpJiwrcEwo0WG8KLw4rCjMKqCnRuw4zCpcKKw4XDkxx0w5dlwq7Dug99D39Awr/CoMO3w5wjMsKzwpZuYMOIwpZMNgRRw4wlw4LDg8ODw73DuXPDt8OIecKaw7rCpcOJbX3Ck8KWwqvDosKzB8OHD0zCksOZwqbDucOswoEvwqrCrj3CmMOXZVfCmcOWw73DlB7CvMOrwprDlsOPw5YmcUXDq8OqwoNpViY3JinCs8KDPD14HH/ClMKzWcOjw5rCg8OTB8OPwp7DnjbDsMOKZRluT8K7wrYtC8OTwq4rw7fDmQPDvcKPw77CkWlbGMO8OcKoasKPETbCp3xgUsObw5rCg8K2wpzDjzPCvMKJeTNbNS5ewrbDtcOcwrXCnz3DuMK7wrZMHjzCu8KWwodMwrLCsBXDnjfCmW/DmsKnwp/DqFx7w6TDs8OpZw/DuFrClMKiH8O6w5lHwr83T8KtWcOUbsKGwpFfw5fDs8Orw4dffMO/w67DrMOlw6snw58dwr/CqsK/wro6fcO3fV3CucK3b354w6Euw53DkcKbwr9fwp1dX8OlF8Otw7LDi8OPfhfCpj44Pz99EMOWwprDuiYpw6vDtMOPwpVtWnfDsMOow6TDtMO8w6LDuMOsw6TDkcO5w7nDhcOZw7nDmcO5w5HDscKfwpNkw75nPH9QdFTDlMOnQXhcw7nDlFwvwpzCmcKXZWrDiiw1bW1Tw5/DusKyaA4PD8KNLXBlw6EKY03Dk8OVw5Bcw6PCjG1bwpvDnDzDvcOEw57DiwrDjsO2wq/CgFIfPz7CucK4OHpycsO8w6jDosOJw5nCo8KwwoLCs8KdFcKcfWrCvsKxw6nDmnxXQGoKwr3DshDCuXbDqX3CicO4KMKKOCvDqy4/ODs6O3ocwqR5wrQjw40jw5Vnw6Zmwq1xa2fDihkVaGDDpcOJTW7Ci8O7wpLDqcOxfsK1XRzCnR8/enLDvsO4w7TDosO0w7zDpMORw4nDuVHCkMOzMV55MhbDs8OxwqfDpivDl8K2wr7CmGNrK8OrawoKeRvDncOyw5oWDVbCm8Ojw77Dh8O3JcOywpPDnyjDssKTT8ONw5XColvDmGI+McOrwrLCo8Onw40XLcOlXsO6wrrDrcKcacK7wrpwwqnDsUVbYlFzX2fDtyXDusO5wpYFHMKfwp1GMcOPdyzDoMO8U8OzwqprYMKLEzPCk8K/w69NwoMXwrtiRMOHwr7DmBHDowJiWMOoQsK2GHvCusKyN8O8w5lVw5FFw5Quwrs8w4fDo0vCm1g6wr3CmTp5PsKrHV3CqlzCusO6wr7CpMK/OMOawpLDvsOkw7gsKMOxw6JoW8O6wovCo8ORZl/CmhXCoMOaNMKLwrLCqijCnQjCj8K1AcODwr8owovDuQwPwpkrw7/Ck8Ksclp2NArCvMKYTsOtwrwxwpjDixzCm8OcZxlXw7fDg8KbwpfDt8K2wpzDo8Otw6U8OQ4YdXHCvMKzwpxjbAYiVMK5Ml/DmBIBAxhRw7vDhMKZH1xywpPCucKmwpn
........... (only part)
This looks much more like proper Base64 string. And because it's clone then these outputs should be same (only guessing). Because clone is working fine then this issue is probably neither content or server (1.2.1) related.
Tried to download some another pastes from same source/author (even from different server) and results are again bad (same exception). Tried to create and download my own pastes and it works fine.
From that I'm guessing that pastes produced by this source/author are somehow incompatible with your decryption method.
pbincli giving following error.
Traceback (most recent call last):
File "/home/murali/.pyenv/versions/3.7.3/bin/pbincli", line 8, in
sys.exit(main())
File "/home/murali/.pyenv/versions/3.7.3/lib/python3.7/site-packages/pbincli/cli.py", line 116, in main
args.func(args, api_client, settings=CONFIG)
File "/home/murali/.pyenv/versions/3.7.3/lib/python3.7/site-packages/pbincli/actions.py", line 44, in send
expiration = args.expire)
File "/home/murali/.pyenv/versions/3.7.3/lib/python3.7/site-packages/pbincli/format.py", line 229, in encrypt
if self._version == 2: self._encryptV2()
File "/home/murali/.pyenv/versions/3.7.3/lib/python3.7/site-packages/pbincli/format.py", line 261, in _encryptV2
cipher = self.__initializeCipher(key, iv, adata)
File "/home/murali/.pyenv/versions/3.7.3/lib/python3.7/site-packages/pbincli/format.py", line 121, in __initializeCipher
cipher = AES.new(key, AES.MODE_GCM, nonce=iv, mac_len=CIPHER_TAG_BYTES)
AttributeError: module 'Crypto.Cipher.AES' has no attribute 'MODE_GCM'
pbincli throwing below error with self signed certificate
ssl.SSLError: [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:749)
As far as I can tell, PBinCLI doesn't support these features and only goes with the default week timer with no bells and whistles. Allowing the timer to be changed, burn-on-read to be enabled, discussions and syntax changes, etc, would massively improve the usefulness of the program.
Strange error, but in browser works well.
may be it helps https://gist.github.com/perrygeo/ee7c65bb1541ff6ac770
Paste received! Decoding…
Traceback (most recent call last):
File "/home/[email protected]/.local/bin/pbincli", line 8, in <module>
sys.exit(main())
^^^^^^
File "/home/[email protected]/.local/lib/python3.11/site-packages/pbincli/cli.py", line 161, in main
args.func(args, api_client, settings=CONFIG)
File "/home/[email protected]/.local/lib/python3.11/site-packages/pbincli/actions.py", line 159, in get
paste.setHash(passphrase)
File "/home/[email protected]/.local/lib/python3.11/site-packages/pbincli/format.py", line 119, in setHash
self._key = b64decode(passphrase)
^^^^^^^^^^^^^^^^^^^^^
File "/usr/local/lib/python3.11/base64.py", line 88, in b64decode
return binascii.a2b_base64(s, strict_mode=validate)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
binascii.Error: Incorrect padding
Tested against both paste.i2pd.xyz aswell as a private instance.
Works fine on paste.i2pd.xyz.
Both instances currently run version 1.1.1.
Examples (reproducible on the private instance):
echo "Test bla" | python -m pbincli.cli send
Results reliably in the following:
Test fst fst fst fst fst fst fst fst fst fst fst fst fst fst fst fst fst
"This is a slightly longer test"
results in VVVVVVVV
Do you have any recommendations for debugging this?
Add onion addresses support and for convenience convert onion to clearnet address in the command output (so people can open the link without tor). Config for example:
server=https://bin.snopyta.org
onion_server=http://5cs6g2gtee7lqkbvliotggauvwi7vtc6tmgw2li7jzmoyoeuvqwsldqd.onion
proxy=socks5://127.0.0.1:9050
$ pbincli send -t text
Paste uploaded!
PasteID: xyz
Password: xyz
Delete token: xyz
Link: https://bin.snopyta.org/xyz
Onion link: http://5cs6g2gtee7lqkbvliotggauvwi7vtc6tmgw2li7jzmoyoeuvqwsldqd.onion/xyz
I can just copy the part I want to paste, the cli can have a --clipboard
option to create a new paste.
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.