public/Publish-XSocialMediaContent.ps1
function Publish-XSocialMediaContent { <# .EXAMPLE Publish-XSocialMediaContent -ConsumerKey $ConsumerKey -ConsumerSecret $ConsumerSecret -Token $Token -TokenSecret $TokenSecret -Filter $Filter -Path $Path #> [CmdletBinding()] param( [Parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [string]$ConsumerKey, [Parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [string]$ConsumerSecret, [Parameter(Mandatory=$true)] [ValidateSet('lineups','predictions','rumours','transfers')] [string]$Content, [Parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [string]$Filter, [Parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [string]$Path, [Parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [string]$Token, [Parameter(Mandatory=$true)] [ValidateNotNullOrEmpty()] [string]$TokenSecret ) process{ $ErrorActionPreference = 'Stop' try { # Create the directory New-Directory -Path "$Path\temp\$Content" # Test if path exists $PathExists = Test-Path -Path $Path -ErrorAction Stop if ($PathExists) { # Get files to process $FilesToProcess = Get-ChildItem -Path "$Path\temp\$Content" -Recurse -File -Filter '*.txt' -ErrorAction Stop | Where-Object {$_.FullName -like "*$Filter*"} $Hash =@{ Path = $Path FilesToProcess = $($FilesToProcess.Count) Filter = $Filter } $Hash | Format-Table foreach ($FileToProcess in $FilesToProcess) { Write-Warning -Message "$($MyInvocation.MyCommand.Name): Porcessing $($FileToProcess.Name)" $Text = Get-Content -Path $($FileToProcess.FullName) -Raw -ErrorAction Stop Invoke-XPost -ConsumerKey $ConsumerKey -ConsumerSecret $ConsumerSecret -Token $Token -TokenSecret $TokenSecret -Text $Text } # foreach } # if } catch { throw "$($MyInvocation.MyCommand.Name): $_.Exception.Message" } # try catch } # process } # function |