]> us-delaporte.pagekite.me Git - dotfiles.git/blob - psmodules/house_shopping.psm1
How to
[dotfiles.git] / psmodules / house_shopping.psm1
1
2 function Add-Addresses(){
3 Param(
4 [string]$addressFile = "Addresses.csv"
5 [string]$outFile= "Address_Details.csv"
6 )
7 $addressList = Get-Content $addressFile | ConvertFrom-Csv
8 $details = Get-Content $outFile| ConvertFrom-Csv
9
10 $addressList | ForEach-Object {
11 if($details -NotContains $_.Address)
12 {
13 $details.Address = $_.Address
14 $details.SqFt = $_.SqFt
15 $details.Cost = $_.Cost
16 }
17 }
18 $details | Export-Csv -NoTypeInformation -Path $outFile
19 Write-Host "Updated $outFile"
20 }
21
22
23 function Add-AddressLocations(){
24 Param(
25 [string]$outFile= "Address_Details.csv"
26 )
27 $details = Get-Content $outFile| ConvertFrom-Csv
28
29 $details | ForEach-Object {
30 if($_.Lat -eq '')
31 {
32 $posit = Get-MapCoords -Address $_.Address
33 $_.Lat = $posit.Lat
34 $_.Lon = $posit.Lon
35 }
36 }
37 $details | Export-Csv -NoTypeInformation -Path $outFile
38 Write-Host "Updated $outFile"
39 }
40
41
42 function Add-TravelTimes() {
43 Param(
44 [string]$outFile= "Address_Details.csv"
45 )
46 $details = Get-Content $outFile| ConvertFrom-Csv
47
48 }
49
50 $fuzzyUrl = "https://atlas.microsoft.com/search/fuzzy/json?&api-version=1.0&subscription-key={Your-Azure-Maps-Subscription-key}&language=en-US&query=pizza"
51
52 function Get-MapAddress() {
53 param(
54 [string]$address
55 )
56 $subKey = $env:AzMapsSubKey
57 $addyUrl = "https://atlas.microsoft.com/search/address/json?&subscription-key=$subKey&api-version=1.0&language=en-US&query=$address"
58 $result = Invoke-WebRequest $addyUrl
59 if($result.StatusCode -Eq 200){
60 return $result.Content | ConvertFrom-Json
61 }
62 return $result.StatusDescription
63 }
64
65 function Get-MapCoords() {
66 param(
67 [string]$address
68 )
69 $subKey = $env:AzMapsSubKey
70 $result = Get-MapAddress -Address $address
71 return $result.results.entryPoints[0].position
72 }
73
74 function Get-MapTravelPlan() {
75 param(
76 [string]$from_address,
77 [string]$to_address
78 )
79 $subKey = $env:AzMapsSubKey
80 $pos1 = Get-MapCoords -Address $from_address
81 $lat1 = $pos1.lat
82 $lon1 = $pos1.lon
83
84 $pos2 = Get-MapCoords -Address $to_address
85 $lat2 = $pos2.lat
86 $lon2 = $pos2.lon
87
88 $query = "$lat1,$($lon1):$lat2,$lon2"
89 # Write-Host $query
90 $travelUrl = "https://atlas.microsoft.com/route/directions/json?subscription-key=$subKey&api-version=1.0&query=$query&travelMode=car&traffic=true&departAt=2025-03-29T08:00:20&computeTravelTimeFor=all"
91 $result = Invoke-WebRequest $travelUrl
92 if($result.StatusCode -Eq 200){
93 $content = $result.Content | ConvertFrom-Json
94 if($content.formatVersion -Ne "0.0.12"){
95 Write-Warning "BEWARE Format has updated! BEWARE"
96 }
97 return $content.routes
98 }
99 return $result.StatusDescription
100 }
101
102
103 function Get-MapTravelMinutes() {
104 param(
105 [string]$from_address,
106 [string]$to_address
107 )
108 $routes = Get-MapTravelPlan -from_address $from_address -to_address $to_address
109 $seconds = $routes.summary.travelTimeInSeconds
110 return $seconds/60
111 }