81 lines
No EOL
2.5 KiB
PowerShell
81 lines
No EOL
2.5 KiB
PowerShell
function Get-FromTelegram {
|
|
param (
|
|
$Token = "687...:AAF...",
|
|
[switch]$Date,
|
|
[switch]$Last,
|
|
[switch]$ChatID
|
|
)
|
|
$endpoint = "getUpdates"
|
|
$url = "https://api.telegram.org/bot$Token/$endpoint"
|
|
$result = Invoke-RestMethod -Uri $url
|
|
if ($Date) {
|
|
$Collections = New-Object System.Collections.Generic.List[System.Object]
|
|
foreach ($r in $($result.result)) {
|
|
$EpochTime = [DateTime]"1/1/1970"
|
|
$TimeZone = Get-TimeZone
|
|
$UTCTime = $EpochTime.AddSeconds($r.message.date)
|
|
$d = $UTCTime.AddMinutes($TimeZone.BaseUtcOffset.TotalMinutes)
|
|
$Collections.Add([PSCustomObject]@{
|
|
Message = $r.message.text;
|
|
Date = $d
|
|
})
|
|
}
|
|
$Collections
|
|
}
|
|
else {
|
|
if ($Last) {
|
|
$result.result.message.text[-1]
|
|
}
|
|
elseif ($ChatID) {
|
|
$Collections = New-Object System.Collections.Generic.List[System.Object]
|
|
foreach ($r in $($result.result)) {
|
|
$Collections.Add([PSCustomObject]@{
|
|
Message = $r.message.text;
|
|
UserName = $r.message.chat.username;
|
|
ChatID = $r.message.chat.id;
|
|
ChatType = $r.message.chat.type
|
|
})
|
|
}
|
|
$Collections
|
|
}
|
|
else {
|
|
$result.result.message.text
|
|
}
|
|
}
|
|
}
|
|
|
|
function Send-ToTelegram {
|
|
param (
|
|
[Parameter(Mandatory = $True)]$Text,
|
|
$Token = "687...:AAF...",
|
|
$Chat = "125468108",
|
|
$Keyboard
|
|
)
|
|
$endpoint = "sendMessage"
|
|
$url = "https://api.telegram.org/bot$Token/$endpoint"
|
|
$Body = @{
|
|
chat_id = $Chat
|
|
text = $Text
|
|
}
|
|
if ($keyboard -ne $null) {
|
|
$Body += @{reply_markup = $keyboard}
|
|
}
|
|
Invoke-RestMethod -Uri $url -Body $Body
|
|
}
|
|
|
|
$LastDate = (Get-FromTelegram -date)[-1].Date
|
|
while ($true) {
|
|
$LastMessage = (Get-FromTelegram -date)[-1]
|
|
Start-Sleep 1
|
|
$LastDateTest = $LastMessage.Date
|
|
if (($LastMessage.Message -match "/Service") -and ($LastDate -ne $LastDateTest)) {
|
|
$ServiceName = $($LastMessage.Message -split " ")[-1]
|
|
$Result = $(Get-Service $ServiceName -ErrorAction Ignore).Status
|
|
if ($Result) {
|
|
Send-ToTelegram -Text $Result
|
|
} else {
|
|
Send-ToTelegram -Text "Service not found"
|
|
}
|
|
$LastDate = $LastDateTest
|
|
}
|
|
} |