Ka laʻana no ka pahu telegram maʻalahi no nā keiki kula ma ka papa 7-9 me ka Powershell
I ke kamaʻilio ʻana me kekahi hoaaloha, ua ʻike koke wau ʻaʻole aʻo ʻia nā keiki ma ka papa 8-10 ma kā lākou kula i ka papahana. Word, Excel a me nā mea a pau. ʻAʻohe logo, ʻaʻole ʻo Pascal, ʻaʻole hoʻi VBA no Excel.
Pīhoihoi loa au, wehe au i ka Pūnaewele a hoʻomaka e heluhelu - ʻO kekahi o nā hana o kahi kula kūikawā ʻo ia ka hoʻolaha ʻana i ka hoʻonaʻauao o kahi hanauna hou e kū ana i nā kūlana o ka ʻike ʻike i kona pae o ka hoʻomohala ʻana a me ke ʻano o ka nohona.
E ʻae kēia papa i nā haumāna e hoʻoikaika i ka hoʻomaʻamaʻa ʻana i ko lākou ʻike i nā kūkulu kumu o ka ʻōlelo papahana Pascal. (mai ka papahana o kekahi gymnasium no 2017)
I ka hopena, ua hoʻoholo wau e hoʻolimalima i ʻelua mau hola a kiʻi i kahi laʻana o "pehea e hana ai i kahi bot maʻalahi no nā keiki kula."
Ma lalo o ka ʻoki ʻana pehea e kākau ai i kahi bot maʻalahi ma Powershell a hana ia me ka ʻole o ka webhook, nā IP keʻokeʻo, nā kikowaena i hoʻolaʻa ʻia, hoʻonoho ʻia nā mīkini virtual i ke ao, a pēlā aku - ma kahi PC home maʻamau me Windows maʻamau.
TLDR: ʻO kekahi ʻatikala ʻē aʻe me nā hewa grammatical a me ka ʻoiaʻiʻo, ʻaʻohe mea heluhelu, ʻaʻohe ʻakaʻaka, ʻaʻohe kiʻi.
ʻAʻohe mea hou i loko o ka ʻatikala, kokoke i nā mea a pau i kākau mua ʻia ma Habré, no ka laʻana ma nā ʻatikala 'Ōlelo Aʻo: Pehea e hana ai i nā bots ma Telegram и Telegram bot no ka luna hoʻoponopono.
Eia kekahi, ʻo ka ʻatikala ua hoʻopau ʻia i ʻole e kuhikuhi i nā palapala hoʻonaʻauao i kēlā me kēia manawa. ʻAʻohe mea e pili ana i ka Gang 4, PowerShell Deep Dives a i ʻole, ʻo ka 5 Pillars o ka AWS Well-Architected Framework i ka kikokikona.
Ma kahi o ka ʻōlelo mua, hiki iā ʻoe ke hoʻopololei
E ʻoluʻolu e leleI ka makahiki 2006, ua hoʻokuʻu ʻo Microsoft i ka PowerShell 1.0 no ka Windows XP, Vista, a me Server 2003. Ma kekahi mau ʻano, ua hoʻololi ʻo ia i nā mea like me cmdbat scripts, vb scripts, Windows Script Host a me JScript.
ʻOiai i kēia manawa, hiki ke noʻonoʻo ʻia ʻo PowerShell ma hope o nā koho Logo, ma kahi o ka Delphi i hoʻohana mau ʻia (a i ʻole kekahi mea kahiko), ʻoiai ke alo o nā puka lou, nā papa, nā hana, nā kelepona MS GUI, Hoʻohui ʻia ʻo Git a no laila, ma luna o.
Hoʻohana pinepine ʻia ka Powershell; hiki iā ʻoe ke hālāwai me ia ma ke ʻano o PowerShell Core, VMware vSphere PowerCLI, Azure PowerShell, MS Exchange, Desired State Configuration, Loaʻa Pūnaewele PowerShell a he ʻumi a ʻoi aʻe paha nā papahana a me nā hana i hoʻohana ʻole ʻia. Loaʻa paha iā ia ka makani lua me ka hoʻokuʻu ʻana WSL2, akā ʻaʻole pololei.
He ʻekolu mau pono nui ʻo Powershell:
He mea maʻalahi, he nui nā palapala a me nā hiʻohiʻona e pili ana iā ia, a ma ka ʻōlelo Lūkini, no ka laʻana, kahi ʻatikala e pili ana iā Foreach - mai ka puke. PowerShell i ka hohonu - e pili ana i ka ʻokoʻa () a me {}
Hele ʻo ia me ka luna hoʻoponopono ʻOI, komo pū me Windows. Aia kekahi ʻano debugger ma laila.
Ma ka liʻiliʻi o kekahi ʻano o ka Internet (ma o NAT no ka laʻana)
No ka poʻe i kaupalena ʻia i ke kelepona - hoʻokomo a hoʻonohonoho i ka freegate i ka polokalamu kele pūnaewele, i kekahi mau hihia paʻakikī, me Symple DNS Crypt
Loaʻa i kahi mea kūʻai telegram e hana nei ma kāu kelepona
ʻO ka hoʻomaopopo ʻana i nā kumu kumu - he aha ka loli, array, loop.
No ka mea ua ʻike mua nā mea a pau i kēia, a ua hana mua ʻia, hiki iā ʻoe ke hoʻokuʻuE like me ka mea i ʻōlelo ʻia ma ka ʻatikala ma luna - ʻO ka mea mua, he bot no Telegram - He noi ia e holo ana ma kou ʻaoʻao a e noi ana i ka Telegram Bot API. Eia kekahi, maopopo ka API - komo ka bot i kahi URL kikoʻī me nā ʻāpana, a pane ʻo Telegram me kahi mea JSON.
Nā pilikia pili: inā ma kekahi ala ʻike ʻole ʻoe e lawe i kekahi code mai kahi mea JSON a hoʻouna ʻia no ka hoʻokō (ʻaʻole ma ke kumu), e hoʻokō ʻia ke code no ʻoe.
Ua wehewehe ʻia ke kaʻina hana hana i ʻelua mau ʻatikala ma luna, akā ke haʻi hou nei au: ma kahi telegrama mākou e wehe ai i nā pilina, e ʻimi iā @botfather, e haʻi iā ia / newbot, e hana i kahi bot Botfortest12344321, e kapa iā ia ʻo Mynext1234bot, a loaʻa i kahi leka me kahi kī kūikawā o ka puka 1234544311:AbcDefNNNNNNNNNNNNNNNN
E mālama i ke kī a mai hāʻawi aku!
A laila hiki iā ʻoe ke hoʻonohonoho i ka bot, no ka laʻana, pāpā i ka hoʻohui ʻana iā ia i nā hui, akā i nā hana mua ʻaʻole pono kēia.
E noi iā BotFather no "/mybot" a hoʻoponopono i nā hoʻonohonoho inā ʻaʻole mākou makemake i kekahi mea.
E wehe hou i nā mea pili, e ʻimi iā @Botfortest12344321 ma laila (pono e hoʻomaka i ka huli ʻana me @), kaomi "hoʻomaka" a kākau i ka bot "/Glory to the robots." Pono ka hōʻailona /, ʻaʻole pono nā huaʻōlelo.
ʻO ka bot, ʻoiaʻiʻo, ʻaʻole e pane i kekahi mea.
E nānā kāua ua hana ʻia ka bot a wehe iā ia.
api.telegram.org/bot1234544311:AbcDefNNNNNNNNNNNNNN/getMe
kahi 1234544311:AbcDefNNNNNNNNNNNNNN ke kī i loaʻa mua,
a loaʻa kahi laina like
{"ok":true,"hopena":{""}}
Loaʻa iā mākou ka huaʻōlelo huna mua (token). I kēia manawa pono mākou e ʻike i ka helu huna lua - ka ID o ke kamaʻilio me ka bot. ʻO kēlā me kēia kamaʻilio, hui, a me nā mea ʻē aʻe he kanaka a loaʻa iā ia kāna helu ponoʻī (i kekahi manawa me ka minus - no nā hui wehe). I mea e ʻike ai i kēia helu, pono mākou e noi i loko o ka polokalamu kele pūnaewele (ʻoiaʻiʻo, ʻaʻole pono i ka polokalamu kele pūnaewele, akā no ka hoʻomaopopo maikaʻi ʻana hiki iā ʻoe ke hoʻomaka me ia) ka helu wahi (kahi 1234544311:NNNNNNNNNN kou hōʻailona.
E nānā i hiki iā mākou ke kākau i ke kamaʻilio me ka lima: e kāhea i ka helu wahi mai ka polokalamu kele pūnaewele
https://api.telegram.org/botваштокен/sendMessage?chat_id=123456789&text="Life is directed motion"
Inā loaʻa iā ʻoe kahi leka mai kahi bot i kāu kamaʻilio, ʻae, neʻe ʻoe i ka pae aʻe.
Ma kēia ala (ma o ka polokalamu kele pūnaewele) hiki iā ʻoe ke nānā mau inā he pilikia me ka hanauna o ka loulou, a i ʻole kahi mea i hūnā ʻia ma kahi a ʻaʻole hana.
He aha kāu e ʻike ai ma mua o ka hoʻomau ʻana i ka heluhelu
Loaʻa i Telegram nā ʻano kamaʻilio pūʻulu (wehe, pani ʻia). No kēia mau kamaʻilio ʻana, ʻokoʻa kekahi o nā hana (e like me ka id), i kekahi manawa ke kumu i kekahi mau pilikia.
E noʻonoʻo kākou ʻo ia ka hopena o 2019, a ʻo ka meʻe o ko mākou manawa, ʻo ka Man-Orchestra kaulana (luna hoʻomalu, loio, loea palekana ʻike, programmer a me MVP maʻamau) Evgeniy V. hoʻokaʻawale i ka $i variable mai kahi array, ua haku i nā puka lou, e nānā i nā makahiki e hiki mai ana e haku iā Chocolatey, a laila Ka hana like me PowerShell и No kēlā me kēia mea-mea like e hiki mai ana.
1. Noʻonoʻo mākou i ka hana a kā mākou bot
ʻAʻohe oʻu manaʻo, pono wau e noʻonoʻo. Ua kākau mua wau i ka bot-notebook. ʻAʻole wau i makemake e hana i kahi bot "e hoʻouna i kahi mea ma kahi." No ka hoʻopili ʻana iā Azure pono ʻoe i kahi kāleka hōʻaiʻē, akā mai hea mai ka haumāna? Pono e hoʻomaopopo ʻia ʻaʻole maikaʻi loa nā mea āpau: hāʻawi nā ao nui i kekahi ʻano o ka manawa hoʻāʻo no ka manuahi (akā, pono ʻoe i kahi helu kāleka hōʻaiʻē - a me he mea lā e hoʻokaʻawale ʻia ke kālā mai ia mea. ʻAʻole wau e hoʻomanaʻo inā ua hoʻihoʻi ʻia ma hope.)
Me ka ʻole o AI ML ʻaʻole hoihoi loa ka hana ʻana i kahi mea ulana bot-poor-poet-weaver.
Ua hoʻoholo wau e hana i kahi bot e hoʻomanaʻo iaʻu (a ʻaʻole wau) i nā huaʻōlelo Pelekane mai ka puke wehewehe.
I mea e pale ʻole ai i ka ʻikepili, e mālama ʻia ka puke wehewehe ʻōlelo i loko o kahi faila kikokikona a hōʻano hou ʻia me ka lima.
I kēia hihia, ʻo ka hana ke hōʻike i nā kumu o ka hana, a ʻaʻole e hana i kahi huahana hapa.
2. E ho'āʻo ana i ka mea a pehea no ka manawa mua
E hana kākou i ka waihona C:poshtranslate
ʻO ka mua, e ʻike kākou i ke ʻano o ka powershell i loaʻa iā mākou, e hoʻomaka kākou i ka ISE ma o ka hoʻomaka ʻana
powershell ise
a i ʻole e ʻimi iā Powershell ISE ma nā polokalamu i hoʻokomo ʻia.
Ma hope o ka hoʻomaka ʻana, e wehe ʻia ka "ʻano hoʻoponopono" maʻamau; inā ʻaʻohe kahua kikokikona, a laila hiki iā ʻoe ke kaomi mau i ka "File - hana hou".
E nānā kākou i ka mana o ka powershell - e kākau ma ke kahua kikokikona:
get-host
a kaomi i ka F5.
Hāʻawi ʻo Powershell e mālama - "E mālama ʻia ka palapala āu e holo ai.", ʻae mākou, a mālama i ka faila mai powershell me ka inoa ma C: poshtranslate myfirstbotBT100.
Ma hope o ka hoʻomaka ʻana, ma ka puka aniani haʻahaʻa e loaʻa iā mākou kahi papa ʻikepili:
Name : Windows PowerShell ISE Host
Version : 5.1.(и так далее)
Loaʻa iaʻu kahi mea 5.1, ua lawa kēlā. Inā he kahiko kāu Windows 7/8 a laila ʻaʻohe mea nui - ʻoiai pono e hoʻonui ʻia ʻo PowerShell i ka mana 5 - e.g. nā kuhikuhi.
Kākau i ka lā kiʻi ma ka laina kauoha ma lalo, e kaomi iā Enter, e nānā i ka manawa, e hele i ka waihona kumu me ke kauoha
cd
a hoʻomaʻemaʻe i ka pale me ke kauoha cls (ʻaʻole, ʻaʻole pono ʻoe e hoʻohana i ka rm)
I kēia manawa e nānā kāua i ka hana a pehea - ʻaʻole mākou e kākau i ke code, akā ʻelua laina, a hoʻāʻo e hoʻomaopopo i kā lākou hana. E ʻōlelo kākou i ka laina me ka loaʻa-host me ka hōʻailona # a hoʻohui iki.
# Пример шаблона бота
# get-host
<# это пример многострочного комментария #>
$TimeNow = Get-Date
$TimeNow
(ʻO ka mea hoihoi, aia ma ka papa inoa hoʻoheheʻe code formatting ma Habré he ʻelua mau koho - akā ʻaʻole ʻo Powershell. Aia ʻo Dos. Aia ʻo Perl.)
A e holo kāua i ke code ma ke kaomi ʻana iā F5 a i ʻole ">" mai ka GUI.
Loaʻa iā mākou ka hopena aʻe:
Saturday, December 8, 2019 21:00:50 PM (или что-то типа)
I kēia manawa, e nānā kākou i kēia mau laina ʻelua a me kekahi mau mea hoihoi i ʻole e hoʻi hou i kēia i ka wā e hiki mai ana.
ʻAʻole like me Pascal (a ʻaʻole wale nō), hoʻāʻo ʻo PowerShell ponoʻī e hoʻoholo i ke ʻano o ka hāʻawi ʻana i kahi loli; kākau ʻia nā kikoʻī hou aku e pili ana i kēia ma ka ʻatikala. Papahana hoʻonaʻauao ma ke kākau ʻana i nā ʻōlelo papahana
No laila, ma ka hana ʻana i kahi ʻano $TimeNow a hāʻawi iā ia i ka waiwai o ka lā a me ka manawa o kēia manawa (Get-Date), ʻaʻole pono mākou e hopohopo nui i ke ʻano o ka ʻikepili e loaʻa ai ma laila.
ʻOiaʻiʻo, e ʻeha paha kēia naʻaupō ma hope, akā no ka hope. Aia ma lalo o ka kikokikona he laʻana.
E ʻike kākou i ka mea i loaʻa. E hoʻokō kākou (ma ka laina kauoha)
$TimeNow | Get-member
a loaʻa kahi ʻaoʻao o nā kikokikona hiki ʻole ke hoʻomaopopo ʻia
Ka laʻana o ka helu kikokikona hiki ʻole ke hoʻomaopopo ʻia 1
PS C:> $TimeNow | Get-member
TypeName: System.DateTime
Name MemberType Definition
---- ---------- ----------
Add <b>Method </b>datetime Add(timespan value)
..
DisplayHint NoteProperty DisplayHintType DisplayHint=DateTime
Date <b>Property </b>datetime Date {get;}
Year Property int Year {get;}
..
DateTime ScriptProperty System.Object DateTime {get=if ((& { Set-StrictMode -Version 1; $this.DisplayHint }) -ieq "Date")...
E like me kāu e ʻike ai, ua hana ʻia kahi ʻano ʻano TypeName: System.DateTime me kahi hui o nā ʻano hana (ma ke ʻano o ka mea hiki iā mākou ke hana me kēia mea hoʻololi) a me nā waiwai.
E kāhea kāua $TimeNow.DayOfYear - loaʻa iā mākou ka helu o ka lā o ka makahiki.
E kāhea kāua $TimeNow.DayOfYear | Get-Member - loaʻa iā mākou TypeName: System.Int32 a me kahi hui o nā ʻano hana.
E kāhea kāua $TimeNow.ToUniversalTime() - a loaʻa ka manawa ma UTC
Debugger
I kekahi manawa he mea pono e hoʻokō i kahi papahana a hiki i kahi laina a ʻike i ke kūlana o ka papahana i kēlā manawa. No kēia kumu, loaʻa iā ISE kahi hana Debug - hoʻololi i ka wahi hoʻomaha
E kau i kahi haʻi ma waena, e holo i kēia mau laina ʻelua a ʻike i ke ʻano o ka haki.
3. Hoʻomaopopo i ka pilina me ka Telegram bot
ʻOiaʻiʻo, ʻoi aku ka nui o nā palapala i kākau ʻia e pili ana i ka launa pū ʻana me ka bot, me nā getpush āpau a pēlā aku, akā hiki ke noʻonoʻo ʻia ka hoʻopuka ʻana o ke kumumanaʻo.
I kā mākou hihia, pono:
E aʻo e hoʻouna i kekahi mea ma ka leka
E aʻo e kiʻi i kekahi mea mai ka leka
3.1 E aʻo e hoʻouna i kekahi mea ma ka leka a loaʻa mai ia mea
a ma ka Russian Federation i kēia manawa loaʻa iā mākou ka hewa ʻAʻole hiki ke hoʻopili i ka kikowaena mamao.
A i ʻole ʻaʻole loaʻa iā mākou - pili i ka mea hoʻokele telecom a inā i hoʻonohonoho ʻia ka mea koho a hana
ʻAe, ʻo ka mea i koe e hoʻohui i kahi proxy. E ʻoluʻolu e hoʻomaopopo i ka hoʻohana ʻana i kahi proxy unencrypted a maʻamau hoʻopunipuni he mea weliweli loa ia no kou olakino.
ʻAʻole paʻakikī loa ka hana o ka ʻimi ʻana i kahi mea koho hana - hana ka hapa nui o nā mea hoʻolaha http i paʻi ʻia. Manaʻo wau ua hana ka lima iaʻu.
Syntax me ka hoʻohana proxy:
Invoke-WebRequest -Uri $URL4SEND -Proxy $MyProxy
Inā loaʻa iā ʻoe kahi leka i kāu kamaʻilio me kahi bot, a laila maikaʻi nā mea āpau, hiki iā ʻoe ke neʻe. Inā ʻaʻole, e hoʻomau i ka debugging.
Hiki iā ʻoe ke ʻike i ke ʻano o kāu string $URL4SEND a hoʻāʻo e noi iā ia ma ka polokalamu kele pūnaewele, e like me kēia:
Write-Host "ParsedHtml"
$MyMessageGet.ParsedHtml # тут интересное
Write-Host "RawContent"
$MyMessageGet.RawContent # и тут интересное, но еще к тому же и читаемое.
Write-Host "Content"
$MyMessageGet.Content
Inā hana nā mea a pau iā ʻoe, e loaʻa iā ʻoe kahi laina lōʻihi e like me:
ʻO ka mea pōmaikaʻi, i ka ʻatikala i hoʻopuka mua ʻia ʻo Telegram bot no ka luna hoʻonohonoho ʻōnaehana i kēia laina (ʻae, e like me $MyMessageGet.RawContent | loaʻa ka lālā ʻo System.String), ua wehe ʻia.
4. E hana i ka mea i loaʻa iā ʻoe (ua ʻike mākou pehea e hoʻouna ai i kekahi mea)
E like me ka mea i kākau mua ʻia maanei, aia nā mea e pono ai ma ka ʻike. E nānā pono kākou.
ʻO ka mea mua, e kākau mākou i ʻelua mau huaʻōlelo hou i ka bot mai ke kikowaena pūnaewele a i ʻole mai ke kelepona
/message1
/message2
/message3
a e nānā ma o ka polokalamu kele pūnaewele i ka helu wahi i hoʻokumu ʻia ma ka helu $URLGET.
He aha ia? ʻO kekahi mea paʻakikī mai nā ʻāpana o nā mea i loaʻa kahi ʻike memo hope-to-end, ʻike kamaʻilio, hoʻouna ʻike a me nā ʻike he nui.
Eia naʻe, ʻaʻole pono mākou e noʻonoʻo "he aha ke ʻano o kēia mea" - ua hana mua ʻia kahi hapa o ka hana no mākou. E ʻike kākou i ka mea i loko:
Heluhelu i nā memo i loaʻa a i ʻole ʻāpana 4
Write-Host "This is part 4" <# конечно эта строка нам не нужна в итоговом тексте, но по ней удобно искать. #>
$Content4Pars01 = ConvertFrom-Json $MyMessageGet.Content
$Content4Pars01 | Get-Member
$Content4Pars01.result
$Content4Pars01.result[0]
$Content4Pars01.result[0] | Get-Member
$Content4Pars01.result[0].update_id
$Content4Pars01.result[0].message
$Content4Pars01.result[0].message.text
$Content4Pars01.result[1].message.text
$Content4Pars01.result[2].message.text
5. He aha kā mākou e hana ai i kēia manawa?
E mālama kāua i ka faila ma lalo o ka inoa myfirstbotBT105 a i ʻole nā mea āu e makemake ai, e hoʻololi i ke poʻo inoa a haʻi i nā code āpau i kākau ʻia ma o
<#start comment 105 end comment 105#>
I kēia manawa pono mākou e hoʻoholo i kahi e loaʻa ai ka puke wehewehe'ōlelo (maikaʻi, ma hea - ma ka disk i kahi faila) a me kona ʻano.
ʻOiaʻiʻo, hiki iā ʻoe ke kākau i kahi puke wehewehe ʻōlelo nui ma ka kikokikona o ka palapala, akā aia kēia ma ka ʻaoʻao.
No laila e ʻike kākou i ka mana e hiki ke hana me ka maʻamau.
Ma keʻano laulā, ʻaʻole ia e mālama i ka faila e hana ai, ʻaʻole ia he mea nui iā mākou.
He koho mākou: txt (hiki iā ʻoe, akā no ke aha), csv, xml.
Hiki iā mākou ke nānā i nā mea a pau? E ʻike kākou i nā mea a pau.
E hana kākou i papa MyVocabClassExample1 a me $MyVocabExample1
ʻIke au ua kākau ʻia ka papa me ka ʻole o $
kekahi code #5
write-host "This is part 5"
class MyVocabClassExample1 {
[string]$Original # слово
[string]$Transcript
[string]$Translate
[string]$Example
[int]$VocWordID # очень интересный момент. Использование int с его ограничениями может порой приводить к диким последствиям, для примера - недавний случай с SSD HPE. Изначально я не стал добавлять этот элемент, потом все же дописал и закомментировал.
}
$MyVocabExample1 = [MyVocabClassExample1]::new()
$MyVocabExample1.Original = "Apple"
$MyVocabExample1.Transcript = "[ ˈapəl ]"
$MyVocabExample1.Translate = "Яблоко"
$MyVocabExample1.Example = "An apple is a sweet, edible fruit produced by an apple tree (Malus domestica)"
# $MyVocabExample1.$VocWordID = 1
$MyVocabExample2 = [MyVocabClassExample1]::new()
$MyVocabExample2.Original = "Pear"
$MyVocabExample2.Transcript = "[ pe(ə)r ]"
$MyVocabExample2.Translate = "Груша"
$MyVocabExample2.Example = "The pear (/ˈpɛər/) tree and shrub are a species of genus Pyrus"
# $MyVocabExample1.$VocWordID = 2
E ho'āʻo kākou e kākau i kēia i loko o nā faila me ka hoʻohana ʻana laʻana.
E ʻike kāua i ka hana. Nānā kikokikona maikaʻi - akā pehea e hoʻihoʻi hou ai? Pono au e hoʻokomo i kekahi ʻano mea hoʻokaʻawale kikokikona, e like me nā koma?
A i ka hopena e loaʻa iā ʻoe kahi "comma-separated values (CSV) file A HOOKOLO KALI.
#
E like me ka maʻalahi o ka ʻike ʻana, ʻaʻole ʻokoʻa ʻia ʻo MS e kona loiloi; no ke kaʻina hana like, i hoʻokahi hihia -FilePath hoʻohana ʻia, ma kekahi -Path.
Eia kekahi, i ke kolu o ka waihona ua nalowale ka ʻōlelo Lūkini, i ka ʻehā o ka faila ua hoʻohuli ʻia ... maikaʻi, ua loaʻa kekahi mea. #TYPE System.Object[] 00
# "Helu", "Loaʻa", "LongLength", "Rank", "SyncRoot", "IsReadOnly", "IsFixedSize", "IsSynchronized" #
E kākau hou kākou:
Me he mea lā ua kōkua, akā ʻaʻole naʻe au makemake i ke ʻano.
ʻAʻole wau makemake nui ʻaʻole hiki iaʻu ke kau pololei i nā laina mai kahi mea i kahi faila.
Ma ke ala, ʻoiai ua hoʻomaka mākou e kākau i nā faila, hiki iā mākou ke hoʻomaka e mālama i kahi log hoʻomaka? Loaʻa iā mākou ka manawa ma ke ʻano he loli, hiki iā mākou ke hoʻonohonoho i ka inoa faila.
ʻOiaʻiʻo, ʻaʻohe mea e kākau ai, akā hiki iā ʻoe ke noʻonoʻo e pili ana i ka maikaʻi o ka hoʻololi ʻana i nā lāʻau.
E ho'āʻo kāua i ka xml i kēia manawa.
$MyFilenameExample06 = $ScriptDir + "Example06.xml"
$MyVocabExample4AsArray = Import-Clixml -Path $MyFilenameExample06
# $MyVocabExample4AsArray
# $MyVocabExample4AsArray[0]
# и немного о совершенно неочевидных нюансах. Powershell время от времени ведет себя не так, как вроде бы как бы стоило бы ожидать бы.
# например у меня эти два вывода отличаются
# Write-Output $MyVocabExample4AsArray
# write-host $MyVocabExample4AsArray
E hoʻi kāua i ka hana. Ua kākau mākou i kahi faila hoʻāʻo, heluhelu iā ia, maopopo ke ʻano o ka waiho ʻana, inā pono, hiki iā ʻoe ke kākau i kahi mea hoʻoponopono faila liʻiliʻi e hoʻohui a holoi i nā laina.
E hoʻomanaʻo wau iā ʻoe ʻo ka hana ʻana i kahi bot aʻo liʻiliʻi.
ʻO ke ʻano hana: Hoʻouna au i ke kauoha "example" i ka bot, hoʻouna ka bot iaʻu i kahi huaʻōlelo a me ka unuhi ʻana, a ma hope o 10 kekona e hoʻouna mai iaʻu i kahi unuhi a me ka manaʻo. ʻIke mākou i ka heluhelu ʻana i nā kauoha, makemake mākou e aʻo i ke koho ʻokoʻa a nānā i nā proxies, a hoʻihoʻi i nā helu helu memo i ka poina.
E hoʻokaʻawale i nā mea a pau i ʻōlelo ʻia ma mua he mea pono ʻole, e haʻi i nā hiʻohiʻona pono ʻole me txt a me csv, a mālama i ka faila ma ke ʻano he B106.
ʻAe. E hoʻouna hou kāua i ka bot.
6. Hoʻouna mai nā hana a me nā mea hou aku
Ma mua o ka hoʻomaʻamaʻa ʻana i ka hoʻokipa, pono ʻoe e hana i kahi hana no ka hoʻouna ʻana i "ma ka liʻiliʻi loa" ma mua o kahi leka hoʻāʻo.
ʻOiaʻiʻo, i ka laʻana e loaʻa iā mākou hoʻokahi hoʻouna a hoʻokahi wale nō kaʻina hana, akā pehea inā pono mākou e hana i ka mea like i nā manawa he nui?
ʻOi aku ka maʻalahi o ke kākau ʻana i kahi hana. No laila, loaʻa iā mākou kahi ʻano ʻano mea $MyVocabExample4AsArray, heluhelu mai ka faila, ma ke ʻano o kahi ʻano o nā mea ʻelua. E hele kāua e heluhelu.
I ka manawa like, e hana mākou i ka uaki; pono mākou ma hope (ʻoiaʻiʻo, ma kēia hiʻohiʻona ʻaʻole mākou e pono :)
Kekahi code #6.1
Write-Output "This is Part 6"
$Timezone = (Get-TimeZone)
IF($Timezone.SupportsDaylightSavingTime -eq $True){
$TimeAdjust = ($Timezone.BaseUtcOffset.TotalSeconds + 3600) } # приведенное время
ELSE{$TimeAdjust = ($Timezone.BaseUtcOffset.TotalSeconds)
}
function MyFirstFunction($SomeExampleForFunction1){
$TimeNow = Get-Date
$TimeNow.ToUniversalTime()
# $MyText02 = $TimeNow + " " + $SomeExampleForFunction1 # и вот тут мы получим ошибку
$MyText02 = $SomeExampleForFunction1 + " " + $TimeNow # а тут не получим, кто догадается почему - тот молодец.
$URL4SendFromFunction = "https://api.telegram.org/bot$MyToken/sendMessage?chat_id=$MyChatID&text=$MyText02"
Invoke-WebRequest -Uri $URL4SendFromFunction -Proxy $MyProxy
}
E like me kāu e ʻike maʻalahi ai, kāhea ka hana i $ MyToken a me $ MyChatID, i hoʻopaʻa ʻia ma mua.
ʻAʻohe pono e hana i kēia, a inā he $ MyToken no kēlā me kēia bot, a laila e loli ka $ MyChatID ma muli o ke kamaʻilio.
Eia naʻe, no ka mea he laʻana kēia, e haʻalele mākou iā ia i kēia manawa.
No ka mea ʻaʻole ʻo $MyVocabExample4AsArray kahi ʻano, ʻoiai ua like loa ia me hoʻokahi, a laila ʻaʻole hiki iā ʻoe ke lawe wale noi i kona loa.
Eia hou, pono mākou e hana i kahi mea hiki ʻole ke hana - parachute ʻaʻole e like me ke code - lawe a helu
Kekahi code #6.2
$MaxRandomExample = 0
foreach ($Obj in $MyVocabExample4AsArray) {
$MaxRandomExample ++
}
Write-Output $MaxRandomExample
$RandomExample = Get-Random -Minimum 0 -Maximum ($MaxRandomExample)
$TextForExample1 = $MyVocabExample4AsArray[$RandomExample].Original
# MyFirstFunction($TextForExample1)
# или в одну строку
# MyFirstFunction($MyVocabExample4AsArray[Get-Random -Minimum 0 -Maximum ($MaxRandomExample -1)].Example)
# Угадайте сами, какой пример легче читается посторонними людьми.
moʻolelo kaulele hiʻona hoihoi. E ʻōlelo mākou makemake mākou e loaʻa ka 0 a i ʻole 1 (ʻelua wale nō mau mea i ka array). Ke kau nei i nā palena 0..1, e loaʻa iā mākou ka "1"?
ʻaʻole - ʻaʻole loaʻa iā mākou, loaʻa iā mākou kahi laʻana kūikawā.
No laila, no ka 0..1 pono mākou e hoʻonohonoho i ka nui 0..2, me ka helu ʻeleu nui loa = 1.
7. Ka hana ʻana i nā memo e hiki mai ana a me ka lōʻihi o ka pila
Ma hea mākou i kū ai ma mua? ua loaʻa iā mākou ka mea hoʻololi $MyMessageGet
a me $Content4Pars01 i loaʻa mai ia mea, a mākou i hoihoi i nā mea o ka Content4Pars01.result array
E hele kāua i nā mea a pau i loaʻa a hoʻouna i kahi pane inā he / huaʻōlelo ka memo
ʻO ka hihia o ke kūkulu ʻana, ka mea a kekahi e wehewehe ai me he mea lā-elseif, i kapa ʻia ma powershell ma o ka hoololi. I ka manawa like, ke hoʻohana nei ke code ma lalo i ke kī -wildcard, ʻaʻole pono a hōʻino.
Kekahi code #7.1
Write-Output "This is part 7"
Foreach ($Result in $Content4Pars01.result) # Да, можно сделать быстрее
{
switch -wildcard ($Result.message.text)
{
"/word" {MyFirstFunction($TextForExample1)}
}
}
E holo kāua i ka palapala i ʻelua mau manawa. E loaʻa iā mākou ka huaʻōlelo like ʻelua no kēlā me kēia ho'āʻo hoʻokō, ʻoi aku ka hewa inā mākou i hana hewa i ka hoʻokō ʻana i ka random.
Aka, oki. ʻAʻole mākou i hoʻouna hou / huaʻōlelo, no ke aha e hana hou ʻia ka leka?
ʻO ka pila no ka hoʻouna ʻana i nā memo i ka bot he lōʻihi ka lōʻihi (100 a 200 paha memo, manaʻo wau) a pono e holoi lima ʻia.
Ua wehewehe ʻia kēia ma ka palapala, akā pono ʻoe e heluhelu!
I kēia hihia, pono mākou i ka ?chat_id parameter, a &timeout, &limit, &parse_mode=HTML a &disable_web_page_preview=true ʻaʻole pono i kēia manawa.
Palapala no telegram api maanei ʻŌlelo keʻokeʻo a me ka ʻōlelo Pelekania: Mea hōʻike o ka mea hou mua e hoʻihoʻi ʻia. Pono e ʻoi aku ma mua o ka mea kiʻekiʻe ma waena o nā mea hōʻike o nā mea hou i loaʻa mua. Ma ka paʻamau, hoʻomaka nā mea hou me ka mua hōʻoia ʻole ʻia hoʻihoʻi ʻia ka mea hou. Manaʻo ʻia kahi hōʻano hou i ka wā i kāhea ʻia ai getUpdates me kahi hoʻopau kiekie ma mua o kona update_id. Hiki ke kuhikuhi ʻia ka offset maikaʻi ʻole e kiʻi i nā mea hou e hoʻomaka ana mai -offset update mai ka pau ʻana o nā mea hou. E poina ʻia nā mea hou a pau i hala.
ʻAe, a e hoʻoponopono hou mākou a kākau hou i ka hana. Loaʻa iā mākou nā koho ʻelua - e hoʻouna i ka memo holoʻokoʻa i ka hana a hoʻoponopono iā ia i loko o ka hana, a i ʻole e hāʻawi wale i ka memo ID a hoʻonohonoho hou. No ka laʻana, ʻoi aku ka maʻalahi o ka lua.
ʻAʻohe mea e pāpā iā ʻoe e loaʻa mua i nā memo āpau, hoʻoponopono iā lākou, a ma hope wale nō o ka hoʻokō ʻana i ka noi ʻana ʻaʻole i hōʻoia ʻia -> hōʻoia.
No ke aha he mea kūpono ke kāhea ʻana i ka hōʻoia ma hope o ka pau ʻana o nā hana āpau? Hiki ke hāʻule i ka waena o ka hoʻokō ʻana, a inā no ka laʻana o kahi chatbot manuahi, ʻaʻole he mea kūikawā ka nalo ʻana i kahi leka hoʻokahi, a laila inā ʻoe e hoʻomaʻamaʻa i ka uku uku a i ʻole kālepa kāleka, ʻoi aku ka maikaʻi o ka hopena.
ʻElua mau laina code
$LastMessageId = ($Content4Pars01.result | select -last 1).update_id #ошибку в этом месте предполагается исправить самостоятельно.
$URLGET1 = "https://api.telegram.org/bot$mytoken/getUpdates?offset=$LastMessageId&limit=100"
Invoke-WebRequest -Uri $URLGET1 -Method Get -Proxy $MyProxy
8. Ma kahi o ka hopena
Nā hana maʻamau - heluhelu i nā memo, hoʻonohonoho hou i ka pila, heluhelu mai ka faila a me ke kākau ʻana i kahi faila i hana ʻia a hōʻike ʻia.
ʻEhā mau mea i koe e hana ai:
ka hoʻouna ʻana i ka pane pololei i kahi noi ma ke kamaʻilio
ka hoʻouna ʻana i kahi pane i ANY kamaʻilio i hoʻohui ʻia ka bot
ka hoʻokō ʻana i ke code ma kahi loop
e hoʻomaka ana i kahi bot mai ka windows scheduler.
He maʻalahi kēia mau hana a hiki ke maʻalahi ma ka heluhelu ʻana i nā palapala e pili ana i nā ʻāpana e like me
Hoʻonohonoho-Hoʻokō ʻAʻole Kāohi ʻia a -ExecutionPolicy Bypass
pōʻaiapuni o ke ʻano
$TimeToSleep = 3 # опрос каждые 3 секунды
$TimeToWork = 10 # минут
$HowManyTimes = $TimeToWork*60/$TimeToSleep # счетчик для цикла
$MainCounter = 0
for ($MainCounter=0; $MainCounter -le $HowManyTimes) {
sleep $TimeToSleep
$MainCounter ++