You've already forked SharedScripts
mirror of
https://github.com/jaapbrasser/SharedScripts.git
synced 2026-06-14 00:14:16 +02:00
Added ConvertTo-EncodedUrl
This commit is contained in:
@@ -0,0 +1,94 @@
|
||||
function ConvertTo-EncodedUrl {
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Converts a Url to percent encoded Url
|
||||
|
||||
.DESCRIPTION
|
||||
This function can be used to convert a Url to a Percent-Encoded Url of a specific provider. Currently the function supports encoding Urls to Google.com and Search.com
|
||||
|
||||
.PARAMETER Uri
|
||||
The Uri that should be encoded
|
||||
|
||||
.NOTES
|
||||
Name: ConvertTo-EncodedUrl
|
||||
Author: Jaap Brasser
|
||||
DateCreated: 2017-09-10
|
||||
DateUpdated: 2017-09-10
|
||||
Version: 1.0.0
|
||||
Blog: http://www.jaapbrasser.com
|
||||
|
||||
.LINK
|
||||
http://www.jaapbrasser.com
|
||||
|
||||
.EXAMPLE
|
||||
ConvertTo-EncodedUrl -Uri https://www.jaapbrasser.com -Provider Search
|
||||
|
||||
Output
|
||||
------
|
||||
|
||||
Encoded Uri
|
||||
------- ---
|
||||
https://www.search.com/wr_clk?surl=%68%74%74%70%73%3A%2F%2F%77%77%77%2E%6A%61%61%70%62%72%61%73%73%65%72%2E%63%6F%6D https://www.jaapbrasser.com
|
||||
|
||||
|
||||
Description
|
||||
-----------
|
||||
Converts the url into percent encoded url and returns the output in a PowerShell custom object with two properties: Encoded and Uri
|
||||
|
||||
.EXAMPLE
|
||||
'https://www.jaapbrasser.com','www.bing.com' | ConvertTo-EncodedUrl -Provider Google
|
||||
|
||||
Output
|
||||
------
|
||||
|
||||
Encoded Uri
|
||||
------- ---
|
||||
https://www.google.com/url?q=https%3A%2F%2F%77%77%77%2E%6A%61%61%70%62%72%61%73%73%65%72%2E%63%6F%6D https://www.jaapbrasser.com
|
||||
https://www.google.com/url?q=http%3A%2F%2F%77%77%77%2E%62%69%6E%67%2E%63%6F%6D www.bing.com
|
||||
|
||||
|
||||
Description
|
||||
-----------
|
||||
Takes input from the pipeline and converts the urls into percent encoded urls with Google as a provider. Returns the output in PowerShell custom objects with two properties: Decoded and Uri
|
||||
#>
|
||||
|
||||
|
||||
param(
|
||||
[Parameter(Mandatory = $true,
|
||||
ValueFromPipeline = $true
|
||||
)]
|
||||
[string[]] $Uri,
|
||||
|
||||
[Parameter(Mandatory = $true
|
||||
)]
|
||||
[validateset('Google','Search')]
|
||||
[string] $Provider
|
||||
)
|
||||
|
||||
process {
|
||||
foreach ($CurrentUri in $Uri) {
|
||||
New-Object -TypeName PSCustomObject -Property @{
|
||||
Uri = $CurrentUri
|
||||
Encoded = switch ($Provider) {
|
||||
'Google' {
|
||||
$(if ($CurrentUri -match 'https') {
|
||||
'https://www.google.com/url?q=https' +
|
||||
(-join ([int[]](($CurrentUri -replace 'https').ToCharArray()) | ForEach-Object {'%{0:X}' -f $_}))
|
||||
|
||||
} elseif ($CurrentUri -match 'http') {
|
||||
'https://www.google.com/url?q=http' +
|
||||
(-join ([int[]](($CurrentUri -replace 'http').ToCharArray()) | ForEach-Object {'%{0:X}' -f $_}))
|
||||
} else {
|
||||
'https://www.google.com/url?q=http%3A%2F%2F' +
|
||||
(-join ([int[]]($CurrentUri.ToCharArray()) | ForEach-Object {'%{0:X}' -f $_}))
|
||||
})
|
||||
}
|
||||
'Search' {
|
||||
'https://www.search.com/wr_clk?surl=' +
|
||||
(-join ([int[]]($CurrentUri.ToCharArray()) | ForEach-Object {'%{0:X}' -f $_}))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user