From d91fbb4da935547b8bde890a7c80050697bb404c Mon Sep 17 00:00:00 2001 From: r4sas Date: Tue, 22 May 2018 20:44:18 +0300 Subject: [PATCH] adding server and proxy parameters [2] --- cli | 5 +++-- pbincli/actions.py | 17 +++++++++++------ pbincli/settings.py | 2 +- pbincli/transports.py | 25 +++++++++---------------- 4 files changed, 24 insertions(+), 25 deletions(-) diff --git a/cli b/cli index e89977f..07d8c43 100755 --- a/cli +++ b/cli @@ -19,8 +19,9 @@ 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 text (default: plaintext)") - send_parser.add_argument("-S", "--server", help="Set server to work with") - send_parser.add_argument("-P", "--proxy", help="Proxy address (example: socks5://127.0.0.1:9050)") + send_parser.add_argument("--server", help="Set server to work with") + send_parser.add_argument("--use-proxy", default=False, action="store_true", help="Enable using of proxy") + send_parser.add_argument("--proxy", help="Proxy address (example: socks5://127.0.0.1:9050)") 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") diff --git a/pbincli/actions.py b/pbincli/actions.py index 17334cb..270bf7f 100644 --- a/pbincli/actions.py +++ b/pbincli/actions.py @@ -4,14 +4,13 @@ from sjcl import SJCL from base64 import b64encode, b64decode from mimetypes import guess_type -from pbincli.transports import privatebin +from pbincli.transports import PrivateBin from pbincli.utils import PBinCLIException, check_readable, check_writable, json_load_byteified # Initialise settings pbincli.settings.init() - def path_leaf(path): head, tail = ntpath.split(path) return tail or ntpath.basename(head) @@ -27,6 +26,8 @@ def compress(s): return b64encode(''.join(map(chr, b)).encode('utf-8')) def send(args): + api = PrivateBin(args.server, args.proxy, args.use-proxy) + if args.stdin: text = args.stdin.read() elif args.text: @@ -87,7 +88,7 @@ def send(args): if args.dry: sys.exit(0) server = pbincli.settings.server - result = privatebin().post(request) + result = api.post(request) if args.debug: print("Response:\t{}\n".format(result)) @@ -108,6 +109,8 @@ def send(args): def get(args): + api = PrivateBin(args.server, args.proxy, args.use-proxy) + pasteid, passphrase = args.pasteinfo.split("#") if pasteid and passphrase: @@ -121,7 +124,7 @@ def get(args): if args.debug: print("Password:\t{}".format(password)) - result = privatebin().get(pasteid) + result = api.get(pasteid) else: print("PBinCLI error: Incorrect request") sys.exit(1) @@ -172,7 +175,7 @@ def get(args): if 'burnafterreading' in result['meta'] and result['meta']['burnafterreading']: print("Burn afrer reading flag found. Deleting paste...") - result = privatebin().delete(pasteid, 'burnafterreading') + result = api.delete(pasteid, 'burnafterreading') if args.debug: print("Delete response:\t{}\n".format(result)) @@ -200,12 +203,14 @@ def get(args): def delete(args): + api = PrivateBin(args.server, args.proxy, args.use-proxy) + pasteid = args.paste token = args.token if args.debug: print("PasteID:\t{}\nToken:\t\t{}".format(pasteid, token)) - result = privatebin().delete(pasteid, token) + result = api.delete(pasteid, token) if args.debug: print("Response:\t{}\n".format(result)) diff --git a/pbincli/settings.py b/pbincli/settings.py index b539dd5..eaaa330 100644 --- a/pbincli/settings.py +++ b/pbincli/settings.py @@ -3,7 +3,7 @@ def init(): # Edit that variables server = "https://paste.i2pd.xyz/" - proxies = {'socks5': 'socks5://127.0.0.1:9050'} + proxy = "socks5://127.0.0.1:9050" # True/False useproxy = False diff --git a/pbincli/transports.py b/pbincli/transports.py index ce61dc9..d6b9af9 100644 --- a/pbincli/transports.py +++ b/pbincli/transports.py @@ -1,35 +1,28 @@ import requests import pbincli.settings -class privatebin(object): - def __init__(self): - if args.server: - self.server = args.server - else: - self.server = pbincli.settings.server - +class PrivateBin: + def __init__(self, server = pbincli.settings.server, proxy = pbincli.settings.proxy, useproxy = pbincli.settings.useproxy): + self.server = server self.headers = {'X-Requested-With': 'JSONHttpRequest'} - - if args.proxy: - self.proxies = {args.proxy.split('://')[0]: args.proxy} - elif pbincli.settings.useproxy: - self.proxies = pbincli.settings.proxies + if useproxy: + self.proxy = {proxy.split('://')[0]: proxy} else: - self.proxies = {} + self.proxy = {} def post(self, request): - r = requests.post(url = self.server, headers = self.headers, proxies = self.proxies, data = request) + r = requests.post(url = self.server, headers = self.headers, proxies = self.proxy, data = request) return r.text def get(self, request): url = self.server + "?" + request - r = requests.get(url = url, headers = self.headers, proxies = self.proxies) + r = requests.get(url = url, headers = self.headers, proxies = self.proxy) return r.text def delete(self, pasteid, token): request = {'pasteid':pasteid,'deletetoken':token} - r = requests.post(url = self.server, headers = self.headers, proxies = self.proxies, data = request) + r = requests.post(url = self.server, headers = self.headers, proxies = self.proxy, data = request) return r.text