From df2337a766f3866cca5b280858c14223b3eae8f6 Mon Sep 17 00:00:00 2001 From: Samuel Pua Date: Tue, 6 Mar 2018 11:11:23 +0800 Subject: [PATCH] Initial commit -- including urlencode.py and urldecode.py --- README.md | 13 ++++++++++++ install.sh | 5 +++++ urldecode/urldecode.py | 40 +++++++++++++++++++++++++++++++++++ urlencode/urlencode.py | 47 ++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 105 insertions(+) create mode 100755 install.sh create mode 100755 urldecode/urldecode.py create mode 100755 urlencode/urlencode.py diff --git a/README.md b/README.md index b454689..ff3ef63 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,15 @@ # easyscripts Bunch of scripts that make life easier on command line + +Author: Samuel Pua (kahkin@gmail.com) + +##Current Scripts Available +- urlencode.py +> Encodes strings into urlencoding + +- urldecode.py +> Decodes url encoding back to ascii + +##Todos +- Tab completion +> Seriously out of my league for now. Easy to way to it seems to be using external library argcomplete. But I prefer not to use external libraries diff --git a/install.sh b/install.sh new file mode 100755 index 0000000..597af1f --- /dev/null +++ b/install.sh @@ -0,0 +1,5 @@ +echo "Copying urlencode.py..." +sudo cp ./urlencode/urlencode.py /usr/bin/ + +echo "Copying urldecode.py..." +sudo cp ./urldecode/urldecode.py /usr/bin/ diff --git a/urldecode/urldecode.py b/urldecode/urldecode.py new file mode 100755 index 0000000..6bf8695 --- /dev/null +++ b/urldecode/urldecode.py @@ -0,0 +1,40 @@ +#!/usr/bin/env python3 +# +# Script to URL encode on CLI +# Author: Samuel Pua (samuel.pua@mwrinfosecurity.com) + +import urllib.parse +import sys + +if ("--help" in sys.argv) or ("-h" in sys.argv) or ("-?" in sys.argv): + print("URL Decoder") + print("Author: Samuel Pua\n") + print("Usage:") + print("[1] Pipe input into file") + print() + print("Flags:") + print("--help : Prints this help page") + print("--persistent: Persistent url encoding") +elif ("--persistent" in sys.argv): + print("You're in persistent mode. Press Control-C to exit once you're done.\n") + while True: + try: + before=input() + except KeyboardInterrupt: + print("Program exiting...") + sys.exit(0) + after=before + after=after.replace("+"," ") + after=urllib.parse.unquote(after) + print(after) + print() +else: + before=sys.stdin.read() + + beforeList=before.split("\n") + for before in beforeList: + after=before + after=after.replace("+"," ") + after=urllib.parse.unquote(after) + print(after) + diff --git a/urlencode/urlencode.py b/urlencode/urlencode.py new file mode 100755 index 0000000..9b30d40 --- /dev/null +++ b/urlencode/urlencode.py @@ -0,0 +1,47 @@ +#!/usr/bin/env python3 +# +# Script to URL encode on CLI +# Author: Samuel Pua (samuel.pua@mwrinfosecurity.com) + +import urllib.parse +import sys + +if ("--help" in sys.argv) or ("-h" in sys.argv) or ("-?" in sys.argv): + print("URL Encoder") + print("Author: Samuel Pua\n") + print("Usage:") + print("[1] Pipe input into file") + print() + print("Flags:") + print("--help : Prints this help page") + print("--ignore-newline: Ignores newline while processing as a single request") + print("--enforce-newline: Generates url code for newline instead of treating as seperate requests") + print("--persistent: Persistent url encoding") +elif ("--persistent" in sys.argv): + print("You're in persistent mode. Press Control-C to exit once you're done.\n") + while True: + try: + before=input() + except KeyboardInterrupt: + print("Program exiting...") + sys.exit(0) + after=urllib.parse.urlencode({'str':before}) + after=after[4:] + print(after) + print() +else: + before=sys.stdin.read() + if ("--ignore-newline" in sys.argv): + before=before.replace("\r\n", "") + before=before.replace("\n", "") + beforeList=[before] + elif ("--enforce-newline" in sys.argv): + beforeList=[before] + else: + beforeList=before.split("\n") + + for before in beforeList: + after=urllib.parse.urlencode({'str':before}) + after=after[4:] + print(after) +