ProHoster > Блог > ozi ịntanetị > Ụdị maka bot telegram dị mfe maka ụmụ akwụkwọ nọ na klaasị 7-9 na-eji Powershell
Ụdị maka bot telegram dị mfe maka ụmụ akwụkwọ nọ na klaasị 7-9 na-eji Powershell
Mgbe mụ na otu enyi m na-akparịta ụka, amụtara m na mberede na ụmụaka nọ na klaasị 8-10 n'ụlọ akwụkwọ ha anaghị akụzi mmemme ma ọlị. Okwu, Excel na ihe niile. Enweghị akara ngosi, ọbụnadị Pascal, ọbụnadị VBA maka Excel.
O juru m anya, meghere ịntanetị wee malite ịgụ akwụkwọ - Otu n'ime ọrụ nke ụlọ akwụkwọ pụrụ iche bụ ịkwalite mmụta nke ọgbọ ọhụrụ nke na-ezute ọnọdụ nke ọha mmadụ ozi na ọkwa mmepe ya na ụzọ ndụ ya.
Usoro nkuzi a ga-enye ụmụ akwụkwọ ohere ịgbakọ n'omume ha maara ihe ndị bụ isi nke asụsụ mmemme Pascal. (site na mmemme nke ụfọdụ mgbatị ahụ maka 2017)
N'ikpeazụ, ekpebiri m itinye awa ole na ole wee depụta ihe atụ nke "otu esi emepụta bot dị mfe maka ụmụ akwụkwọ."
N'okpuru ịkpụ bụ otu esi ede bot ọzọ dị mfe na Powershell ma mee ka ọ rụọ ọrụ na-enweghị webhook, ọcha IP, sava raara onwe ya nye, igwe mebere igwe na igwe ojii, na ihe ndị ọzọ - na PC ụlọ mgbe niile na Windows.
TLDR: Edemede ọzọ na-agwụ ike nwere mmejọ ụtọ asụsụ na nke eziokwu, ọ nweghị ihe ị ga-agụ, enweghị ọchị, enweghị foto.
Ọ dịghị ihe ọhụrụ n'ime akụkọ ahụ, ihe fọrọ nke nta ka ọ bụrụ ihe niile e dere na mbụ dị na Habré, dịka ọmụmaatụ na isiokwu Ntuziaka: Otu esi emepụta bots na Telegram и Telegram bot maka onye nchịkwa sistemụ.
Ọzọkwa, a na-ama ụma kọọ akụkọ ahụ ka ọ ghara izo aka na akwụkwọ agụmakwụkwọ oge ọ bụla. Enweghị nrụtụ aka na Gang 4, PowerShell Deep Dives ma ọ bụ, sịnụ, Ogidi 5 nke AWS nke ọma na-arụ ọrụ nke ọma na ederede.
Kama okwu mmalite, ị nwere ike ịwụ
Enwere onwe gị ịmafeNa 2006, Microsoft wepụtara PowerShell 1.0 maka Windows XP, Vista, na Server 2003 mgbe ahụ. N'ụzọ ụfọdụ, ọ nọchiri ihe ndị dị ka cmdbat scripts, vb scripts, Windows Script Host na JScript.
Ọbụna ugbu a, PowerShell nwere ike na-atụle dị ka nzọụkwụ ọzọ mgbe Logo nhọrọ, kama eleghị anya ka na-eji Delphi (ma ọ bụ ihe tọrọ), n'agbanyeghị ọnụnọ nke loops, klaasị, ọrụ, na-akpọ MS GUI, Njikọ Git na na.
A na-eji Powershell obere oge; ị nwere ike izute ya naanị n'ụdị PowerShell Core, VMware vSphere PowerCLI, Azure PowerShell, MS Exchange, nhazi steeti achọrọ, Nweta Weebụ PowerShell na iri na abuo ma ọ bụ karịa adịkarịghị eji mmemme na ọrụ. Ikekwe ọ ga-enweta ifufe nke abụọ na ntọhapụ WSL2, ma ọ bụghị kpọmkwem.
Powershell nwekwara nnukwu uru atọ:
Ọ dịtụ mfe, e nwere ọtụtụ akwụkwọ na ihe atụ banyere ya, na ọbụna na Russian, dị ka ihe atụ, otu isiokwu banyere Foreach - site n'akwụkwọ. PowerShell na omimi - gbasara ọdịiche () na {}
Ya na onye nchịkọta akụkọ na-aga ise, gụnyere na Windows. Enwere ọbụna ụdị nbibi ebe ahụ.
Ebe ọ bụ na onye ọ bụla maara nke a, ma emeworị, ị nwekwara ike ịwụpụ yaDị ka ekwuru n'isiokwu dị n'elu - Nke mbụ, bot maka Telegram - ọ ka bụ ngwa na-agba n'akụkụ gị ma na-arịọ arịrịọ na Telegram Bot API. Ọzọkwa, API doro anya - bot ahụ na-enweta URL dị iche iche nwere parampat, na Telegram na-eji ihe JSON zaghachi.
Nsogbu ndị metụtara: ọ bụrụ n'ụzọ amaghị ama ị nara koodu ụfọdụ n'ime ihe JSON wee ziga ya maka igbu ya (ọ bụghị n'ebumnobi), a ga-emere gị koodu ahụ.
A kọwara usoro okike n'isiokwu abụọ dị n'elu, mana m na-ekwughachi: na telegram anyị na-emeghe kọntaktị, chọọ @botfather, gwa ya / newbot, mepụta bot Botfortest12344321, kpọọ ya Mynext1234bot, wee nweta ozi nwere igodo pụrụ iche nke fọm 1234544311:AbcDefNNNNNNNNNNNNNN
Lekọta igodo ahụ ma enyela ya!
Mgbe ahụ, ị nwere ike ịhazi bot, dịka ọmụmaatụ, machibido ịgbakwunye ya na otu, ma na nzọụkwụ mbụ nke a adịghị mkpa.
Ka anyị jụọ BotFather maka “/mybot” wee mezie ntọala ma ọ bụrụ na ihe anaghị amasị anyị.
Ka anyị mepee kọntaktị ọzọ, chọta @Botfortest12344321 ebe ahụ (ọ bụ iwu na iji @ malite ọchụchọ), pịa "malite" wee degara bot "/ Ebube na robots." Achọrọ / akara, ọ dịghị mkpa nhota.
Bot ahụ, n'ezie, agaghị aza ihe ọ bụla.
Ka anyị lelee na emepụtara bot ma mepee ya.
api.telegram.org/bot1234544311:AbcDefNNNNNNNNNNNNNNNN/getMe
ebe 1234544311:AbcDefNNNNNNNNNNNN bụ igodo anataburu,
ma nweta ahịrị dị ka
{"ok":true,"result":{""}}
Anyị nwere akpaokwu nzuzo (token). Ugbu a, anyị kwesịrị ịchọpụta nọmba nzuzo nke abụọ - ID nke nkata na bot. Mkparịta ụka ọ bụla, otu, wdg bụ nke ọ bụla ma nwee nọmba nke ya (mgbe ụfọdụ yana mwepu - maka otu mepere emepe). Iji chọpụta nọmba a, anyị kwesịrị ịrịọ na ihe nchọgharị (n'ezie, ọ dịghị mkpa na ihe nchọgharị ahụ, ma maka nghọta ka mma ị nwere ike ịmalite na ya) adreesị (ebe 1234544311: NNNNNNNNNN bụ akara gị).
Ka anyị lelee na anyị nwere ike iji aka dee nkata ahụ: kpọọ adreesị site na ihe nchọgharị
https://api.telegram.org/botваштокен/sendMessage?chat_id=123456789&text="Life is directed motion"
Ọ bụrụ na ịnata ozi sitere na bot na nkata gị, ọ dị mma, ịga n'ihu na ọkwa ọzọ.
N'ụzọ dị otú a (site na ihe nchọgharị) ị nwere ike ịlele mgbe niile ma enwere nsogbu na njikọ njikọ, ma ọ bụ ọ bụrụ na ihe zoro ezo ebe ọ naghị arụ ọrụ.
Ihe ị kwesịrị ịma tupu ịga n'ihu ịgụ akwụkwọ
Telegram nwere ọtụtụ ụdị nkata otu (meghere, mechiri emechi). Maka nkata ndị a, ụfọdụ ọrụ (dịka ọmụmaatụ, id) dị iche, nke na-ebute ụfọdụ nsogbu mgbe ụfọdụ.
Ka anyị chee na ọ bụ njedebe nke 2019, na ọbụna dike nke oge anyị, onye a ma ama Man-Orchestra (onye nchịkwa, ọkàiwu, ọkachamara nchekwa ozi, mmemme na ihe fọrọ nke nta ka ọ bụrụ MVP) Evgeniy V. na-amata ọdịiche nke $ i site n'usoro, maara loops, anya na-esote di na nwunye nke afọ ga-amụta Chocolatey, na mgbe ahụ Nhazi ya na PowerShell и Ndekota Maka Ihe Ọ bụla ọ ga-abịa.
1. Anyị na-eche banyere ihe bot anyị ga-eme
Enweghị m echiche ọ bụla, ekwesịrị m iche. Edela m akwụkwọ bot- notebook. Achọghị m ime bot "na-eziga ihe ebe." Iji jikọọ na Azure, ịchọrọ kaadị kredit, mana kedu ebe nwata akwụkwọ ahụ si enweta ya? Ekwesiri ighota na ihe nile adighi nma: isi igwe ojii na-enye udiri oge ule n'efu (ma ị ka choro nọmba kaadị kredit - ma o di ka dollar ga-esi na ya rie ya. Echeghị m ma ọ bụrụ e mechara weghachi ya.)
Na-enweghị AI ML, ọ bụghị ihe na-adọrọ mmasị ime onye na-akpa ákwà bot-ogbenye-poet.
Ekpebiri m ime bot nke ga-echetara m (ma ọ bụ na ọ bụghị m) okwu Bekee sitere na akwụkwọ ọkọwa okwu.
Iji zere ịbanye na nchekwa data, a ga-echekwa ọkọwa okwu na faịlụ ederede ma jiri aka meelite ya.
N'okwu a, ọrụ ahụ bụ igosi ihe ndị bụ isi nke ọrụ ahụ, ọ bụghịkwa ime ka ọ dịkarịa ala ngwaahịa agwụla.
2. Na-agbalị ihe na otú maka oge mbụ
Ka anyị mepụta folda C:poshtranslate
Mbụ, ka anyị hụ ụdị ike anyị nwere, ka anyị malite ISE site na mmalite-agba ọsọ
powershell ise
ma ọ bụ chọta Powershell ISE na mmemme arụnyere.
Mgbe ebidochara, “ụdị nchịkọta akụkọ” a maara nke ọma ga-emeghe; ọ bụrụ na enweghị mpaghara ederede, ị nwere ike pịa “Faịlụ - mepụta ọhụrụ”.
Ka anyị lelee ụdị nke powershell - dee na mpaghara ederede:
get-host
wee pịa F5.
Powershell ga-enye ịchekwaa - "A ga-echekwa edemede ị na-achọ ịgba ọsọ.", anyị kwenyere, ma chekwaa faịlụ ahụ site na powershell nwere aha na C: poshtranslate. myfirstbotBT100.
Mgbe mmalite, na ala ederede window anyị na-enweta a data table:
Name : Windows PowerShell ISE Host
Version : 5.1.(и так далее)
Enwere m ihe 5.1, nke ahụ ezuola. Ọ bụrụ na ị nwere Windows 7/8 ochie, ọ nweghị nnukwu ihe - ọ bụ ezie na PowerShell ga-adị mkpa ka emelite ya na ụdị 5 - dịka ọmụmaatụ. ntụziaka.
Pịnye Get-Date na ahịrị iwu dị n'okpuru, pịa Tinye, lelee oge, gaa na nchekwa mgbọrọgwụ na iwu ahụ
cd
wee kpochapụ ihuenyo site na iji iwu cls (Mba, ịchọghị iji rm)
Ugbu a, ka anyị lelee ihe na-arụ ọrụ na otú - ka dee ọ bụghị ọbụna koodu, ma abụọ ahịrị, na-agbalị ịghọta ihe ha na-eme. Ka anyị jiri akara # nweta onye ọbịa kwuo ahịrị wee tinye ntakịrị.
# Пример шаблона бота
# get-host
<# это пример многострочного комментария #>
$TimeNow = Get-Date
$TimeNow
(Ihe na-adọrọ mmasị bụ na n'ime ndepụta ndetu nhazi koodu na Habré enwere nhọrọ iri na abụọ - mana Powershell adịghị ebe ahụ. Dos dị ebe ahụ. Perl nọ ebe ahụ.)
Ka anyị mee koodu ahụ site na ịpị F5 ma ọ bụ ">" site na GUI.
Anyị na-enweta nsonaazụ a:
Saturday, December 8, 2019 21:00:50 PM (или что-то типа)
Ugbu a, ka anyị leba anya n'ahịrị abụọ a na ihe ụfọdụ na-adọrọ mmasị ka anyị ghara ịlaghachi na nke a n'ọdịnihu.
N'adịghị ka Pascal (ọ bụghị naanị), PowerShell n'onwe ya na-anwa ikpebi ụdị ị ga-ekenye na mgbanwe; nkọwa ndị ọzọ gbasara nke a ka edere n'isiokwu ahụ. Mmemme mmụta maka pịnye n'asụsụ mmemme
Ya mere, site n'ịmepụta mgbanwe $TimeNow ma nye ya uru nke ụbọchị na oge dị ugbu a (Get-Date), anyị agaghị echegbu onwe anyị nke ukwuu maka ụdị data ga-adị.
N'ezie, amaghị ihe a nwere ike imerụ ahụ ma emechaa, ma nke ahụ bụ maka mgbe e mesịrị. N'okpuru na ederede a ga-enwe ihe atụ.
Ka anyị hụ ihe anyị nwetara. Ka anyị gbuo (na ahịrị iwu)
$TimeNow | Get-member
wee nweta ibe ederede enweghị nghọta
Ọmụmaatụ nke nọmba ederede enweghị nghọta 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")...
Dị ka ị pụrụ ịhụ, a mgbanwe nke ụdị TypeName: System.DateTime e kere na ụyọkọ ụzọ (n'echiche nke ihe anyị nwere ike ime na nke a agbanwe ihe) na Njirimara.
Ka anyị kpọọ $TimeNow.DayOfYear - anyị na-enweta ọnụ ọgụgụ nke ụbọchị nke afọ.
Ka anyị kpọọ $TimeNow.DayOfYear | Get-Member - anyị nwetara TypeName: System.Int32 na otu ụzọ.
Ka anyị kpọọ $TimeNow.ToUniversalTime() - ma nweta oge na UTC
Onye nbibi
Mgbe ụfọdụ, ọ na-eme na ọ dị mkpa ime mmemme ruo otu ahịrị wee hụ ọnọdụ mmemme ahụ n'oge ahụ. Maka ebumnuche a, ISE nwere ọrụ Debug - ebe nkwụsịtụ gbanwee
Debe ebe nkwụsịtụ ebe n'etiti, mee ahịrị abụọ a wee hụ ka nkwụsịtụ ahụ dị.
3. Ịghọta mmekọrịta na Telegram bot
N'ezie, edeela akwụkwọ ndị ọzọ gbasara mmekọrịta ya na bot, na getpush niile na ihe ndị ọzọ, mana enwere ike ịtụle okwu nke tiori dị ka nhọrọ.
na na Russian Federation n'oge a anyị na-enweta njehie Enweghị ike ijikọ na ihe nkesa dịpụrụ adịpụ.
Ma ọ bụ anyị anaghị enweta ya - dabere na onye na-ahụ maka telecom yana ma ahaziri proxy ma na-arụ ọrụ
Ọfọn, naanị ihe fọdụrụ bụ ịgbakwunye proxy. Biko mara na iji proxy ezoro ezo na n'ozuzu nke aghụghọ dị oke egwu maka ahụike gị.
Ọrụ nke ịchọta proxy na-arụ ọrụ adịghị esiri ike - ọtụtụ n'ime proxies http bipụtara na-arụ ọrụ. Echere m na nke ise rụrụ m ọrụ.
Syntax site na iji proxy:
Invoke-WebRequest -Uri $URL4SEND -Proxy $MyProxy
Ọ bụrụ na ị nweta ozi na nkata gị na bot, mgbe ahụ ihe niile dị mma, ị nwere ike ịga n'ihu. Ọ bụrụ na ọ bụghị, gaa n'ihu na-ehichapụ.
Ị nwere ike ịhụ ihe eriri $URL4SEND gị na-atụgharị wee gbalịa ịrịọ ya na ihe nchọgharị, dị ka nke a:
Write-Host "ParsedHtml"
$MyMessageGet.ParsedHtml # тут интересное
Write-Host "RawContent"
$MyMessageGet.RawContent # и тут интересное, но еще к тому же и читаемое.
Write-Host "Content"
$MyMessageGet.Content
Ọ bụrụ na ihe niile na-arụ ọrụ maka gị, ị ga-enweta ogologo ahịrị dị ka:
Ọ dabara nke ọma, na edemede ebipụtara na mbụ Telegram bot maka onye na-ahụ maka sistemụ ahịrị a (ee, dị ka $MyMessageGet.RawContent | nweta-otu bụ System.string), agbasasịlarị.
4. Hazie ihe ị na-enweta (anyị amaralarị otu esi ezipụ ihe)
Dị ka e deburu ebe a, ihe kachasị mkpa na-adabere na ọdịnaya. Ka anyị lebakwuo anya na ya.
Nke mbụ, anyị ga-edepụta nkebi ahịrịokwu abụọ na bot site na ntanetị weebụ ma ọ bụ site na ekwentị
/message1
/message2
/message3
wee lelee ihe nchọgharị ahụ n'adreesị etolite na mgbanwe $URLGET.
Kedu ihe ọ bụ? Ụfọdụ ihe mgbagwoju anya sitere n'usoro ihe nwere njirimara ozi ngwụcha ruo ọgwụgwụ, ihe nchọpụta nkata, izipu ihe nchọpụta na ọtụtụ ozi ndị ọzọ.
Otú ọ dị, ọ dịghị anyị mkpa ịchọpụta "ụdị ihe nke a bụ" - akụkụ nke ọrụ ahụ emelarị anyị. Ka anyị hụ ihe dị n'ime:
Ọgụgụ natara ozi ma ọ bụ akụkụ 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. Gịnị ka anyị kwesịrị ime ugbu a?
Ka anyị chekwaa faịlụ a ga-esi na ya pụta n'okpuru aha myfirstbotBT105 ma ọ bụ ihe ọ bụla masịrị gị, gbanwee aha wee zaa ajụjụ niile ederelarị koodu site na.
<#start comment 105 end comment 105#>
Ugbu a, anyị kwesịrị ikpebi ebe ị ga-esi nweta akwụkwọ ọkọwa okwu (nke ọma, ebe - na diski na faịlụ) na ihe ọ ga-adị.
N'ezie, ị nwere ike dee nnukwu akwụkwọ ọkọwa okwu ziri ezi na ederede nke edemede ahụ, mana nke a bụ kpamkpam n'akụkụ isi okwu.
Ya mere, ka anyị hụ ihe powershell nwere ike ịrụ ọrụ na-ejikarị.
N'ozuzu, ọ chọghị ịma faịlụ ọ ga-arụ ọrụ, ọ dịghị mkpa anyị.
Anyị nwere nhọrọ: txt (ị nwere ike, mana gịnị kpatara), csv, xml.
Anyị nwere ike na-ekiri onye ọ bụla? Ka anyị hụ onye ọ bụla.
Ka anyị mepụta klas MyVocabClassExample1 na mgbanwe $MyVocabExample1
Achọpụtara m na edere klas ahụ na-enweghị $
ụfọdụ koodu #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
Ka anyị nwaa iji dee nke a n'ime faịlụ ezi ihe nṅomi.
Dị ka ị nwere ike ịhụ n'ụzọ dị mfe, MS anaghị ekewa ya karịsịa site na mgbagha ya; maka usoro yiri nke ahụ, n'otu oge -FilePath na-eji, na ọzọ -Path.
Tụkwasị na nke ahụ, na faịlụ nke atọ, asụsụ Russian kwụsịrị, na faịlụ nke anọ ọ tụgharịrị ... nke ọma, ihe mere. #Ụdị Sistemu.Ihe[] 00
# "Ọgụgụ"," Ogologo "," Ogologo Ogologo "," ọkwa "," SyncRoot ","IsReadOnly", "IfixedSize", "Emekọrịtara" #
Ka anyị degharịa ya ntakịrị:
Ọ dị ka ọ nyere aka, mana usoro ahụ anaghị amasị m.
Ọ naghị amasị m na enweghị m ike itinye ahịrị sitere na ihe n'ime faịlụ ozugbo.
Site n'ụzọ, ebe anyị malitere ide na faịlụ, anyị nwere ike ịmalite idobe ndekọ mmalite? Anyị nwere oge dị ka mgbanwe, anyị nwere ike ịtọ aha faịlụ.
N'ezie, ọ dịghị ihe ị ga-ede, ma ị nwere ike iche echiche banyere otú kacha mma na-atụgharị na ndekọ.
Ka anyị nwaa xml ugbu a.
$MyFilenameExample06 = $ScriptDir + "Example06.xml"
$MyVocabExample4AsArray = Import-Clixml -Path $MyFilenameExample06
# $MyVocabExample4AsArray
# $MyVocabExample4AsArray[0]
# и немного о совершенно неочевидных нюансах. Powershell время от времени ведет себя не так, как вроде бы как бы стоило бы ожидать бы.
# например у меня эти два вывода отличаются
# Write-Output $MyVocabExample4AsArray
# write-host $MyVocabExample4AsArray
Ka anyị laghachi n'ọrụ ahụ. Anyị na-ede faịlụ ule, gụọ ya, usoro nchekwa ahụ doro anya, ọ bụrụ na ọ dị mkpa, ị nwere ike ide ihe nchịkọta faịlụ dị iche iche maka ịgbakwunye na ihichapụ ahịrị.
Ka m chetara gị na ọrụ ahụ bụ ime obere bot ọzụzụ.
Usoro ọrụ: M na-eziga iwu "ihe atụ" na bot, bot na-ezigara m okwu na ederede na-akpaghị aka, na mgbe 10 sekọnd na-eziga m nsụgharị na ikwu okwu. Anyị maara ka esi agụ iwu, anyị ga-achọkwa ịmụta ka esi ahọrọ na elele proxies na-akpaghị aka, wee tọgharịa ọnụọgụ ozi ka echefuru echefu.
Ka anyị kwupụta ihe niile ekwuru na mbụ dị ka ihe na-adịghị mkpa, jiri txt na csv kwuo ihe atụ ndị na-adịghị mkpa ugbu a, wee chekwaa faịlụ ahụ dị ka ụdị B106.
Ee, ee. Ka anyị ziga ihe na bot ọzọ.
6. Zipụ site na ọrụ na ndị ọzọ
Tupu ịhazi nnabata, ịkwesịrị ịmepụta ọrụ maka izipu "opekata mpe ihe" na-abụghị ozi nnwale.
N'ezie, na ihe atụ anyị ga-enwe nanị otu izipu na naanị otu nhazi, ma gịnị ma ọ bụrụ na anyị kwesịrị ime otu ihe ahụ ọtụtụ ugboro?
Ọ dị mfe ide ọrụ. Yabụ, anyị nwere ụdị ihe na-agbanwe agbanwe $MyVocabExample4AsArray, gụọ site na faịlụ ahụ, n'ụdị nhazi nke ihe ruru ihe abụọ. Ka anyị gaa gụọ.
N'otu oge ahụ, anyị ga-emeso elekere; anyị ga-achọ ya ma emechaa (n'eziokwu, na ihe atụ a, anyị agaghị achọ ya :)
Ụfọdụ koodu #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
}
Dị ka ị nwere ike ịhụ n'ụzọ dị mfe, ọrụ ahụ na-akpọ $MyToken na $MyChatID, bụ ndị nwere koodu siri ike na mbụ.
Ọ dịghị mkpa ime nke a, ma ọ bụrụ na $MyToken bụ otu maka bot ọ bụla, mgbe ahụ $MyChatID ga-agbanwe dabere na nkata ahụ.
Otú ọ dị, ebe ọ bụ na nke a bụ ihe atụ, anyị ga-eleghara ya anya ugbu a.
Ebe ọ bụ na $MyVocabExample4AsArray abụghị n'usoro, ọ bụ ezie na ọ dị ka otu, mgbe ahụ. ị nweghị ike were ya naanị rịọ ogologo ya.
Ọzọkwa anyị ga-eme ihe na-enweghị ike ime - parachute bụghị dị ka koodu - were ya gbakọọ
Ụfọdụ koodu #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)
# Угадайте сами, какой пример легче читается посторонними людьми.
random na-adọrọ mmasị atụmatụ. Ka anyị kwuo na anyị chọrọ ịnata 0 ma ọ bụ 1 (anyị nwere naanị ihe abụọ n'usoro). Mgbe ị na-etinye oke 0..1, anyị ga-enweta "1"?
mba - anyị agaghị enweta ya, anyị nwere ihe atụ pụrụ iche Ihe atụ 2: Nweta ọnụọgụ ọnụọgụ n'etiti 0 na 99 Get-Random - Kacha 100
Ya mere, maka 0..1 anyị kwesịrị ịtọ nha 0..2, na ọnụ ọgụgụ kachasị elu = 1.
7. Ịhazi ozi na-abata na ogologo kwụ n'ahịrị
Ebee ka anyị kwụsịrị na mbụ? anyị nwere mgbanwe enwetara $MyMessageGet
na $Content4Pars01 nwetara site na ya, nke anyị nwere mmasị na ihe nke Content4Pars01.result array.
Ka anyị gafee ihe niile natara wee zipụ nzaghachi ma ọ bụrụ na ozi ahụ bụ / okwu
ikpe nke ịrụ, ihe ụfọdụ na-akọwa dị ka ọ bụrụ-elseif, na-akpọ na powershell site na mgba ọkụ. N'otu oge ahụ, koodu dị n'okpuru na-eji igodo -wildcard, nke na-enweghị isi na ọbụna na-emerụ ahụ.
Ụfọdụ koodu #7.1
Write-Output "This is part 7"
Foreach ($Result in $Content4Pars01.result) # Да, можно сделать быстрее
{
switch -wildcard ($Result.message.text)
{
"/word" {MyFirstFunction($TextForExample1)}
}
}
Ka anyị mee edemede ahụ ugboro abụọ. Anyị ga-enweta otu okwu ahụ ugboro abụọ maka mgbalị igbu mmadụ ọ bụla, karịsịa ma ọ bụrụ na anyị mehiere na mmejuputa iwu nke random.
Ma kwụsị. Anyị ezipụghị/okwu ọzọ, yabụ gịnị kpatara a na-ahazi ozi ahụ ọzọ?
Ahịrị maka izipu ozi na bot nwere ogologo ogologo (ozi 100 ma ọ bụ 200, echere m) na a ga-ehichapụ ya na aka ya.
A na-akọwa nke a n'ezie na akwụkwọ, ma ị ga-agụ ya!
N'okwu a, anyị chọrọ paramita ?chat_id, na &oge, &limit, &parse_mode=HTML na &disable_web_page_preview=ezi adịghị mkpa ma.
Akwụkwọ maka api telegram dị ebe a Ọ na-ekwu na ọcha na bekee: Ihe nchọpụta nke mmelite mbụ aga-eweghachi. Ga-abụrịrị otu karịa nke kachasị elu n'etiti ndị na-achọpụta mmelite enwetaburu. Site na ndabara, mmelite na-amalite na mbụ ekwenyeghi eweghachite mmelite. A na-atụle mmelite ozugbo enwere ike ịkpọ getUpdates iwe elu karịa update_id ya. Enwere ike ịkọwa nkwụghachi adịghị mma iji weghachite mmelite malite na -offset update site na njedebe nke kwụ n'ahịrị mmelite. A ga-echefu mmelite niile gara aga.
Ee, anyị ga-emegharị ya ma degharịa ọrụ ahụ ntakịrị. Anyị nwere nhọrọ abụọ - nyefee ozi niile na ọrụ ma hazie ya kpamkpam na ọrụ ahụ, ma ọ bụ nye naanị ID ozi wee tọgharịa ya. Dịka ọmụmaatụ, nke abụọ na-ele anya dị mfe.
Ọ dịghị onye na-amachibido gị ibu ụzọ nata ozi niile, hazie ya, yana naanị mgbe emechara arịrịọ nhazi nke ọma -> enwetara ya.
Kedu ihe kpatara o ji bụrụ ihe ezi uche dị na ịkpọ nkwenye ka emechara nhazi niile? Ọdịda ga-ekwe omume n'etiti ogbugbu, ma ọ bụrụ na maka ihe atụ nke chatbot n'efu, ịhapụ otu ozi abụghị ihe pụrụ iche, mgbe ahụ ọ bụrụ na ị na-ahazi ụgwọ ọrụ mmadụ ma ọ bụ azụmahịa kaadị, nsonaazụ ya nwere ike ịka njọ.
Ahịrị koodu abụọ ọzọ
$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. Kama nkwubi okwu
Ọrụ ndị bụ isi - ịgụ ozi, nhazigharị kwụ n'ahịrị, ịgụ site na faịlụ na ide na faịlụ na-eme ma gosipụta ya.
Ọ dị naanị ihe anọ ka a ga-eme:
izipu azịza ziri ezi maka arịrịọ na nkata
na-eziga nzaghachi na nkata ọ bụla nke agbakwunyere bot
na-eme koodu na akaghị
ịmalite bot site na windo nhazi oge.
Ọrụ ndị a niile dị mfe ma enwere ike ịrụ ya ngwa ngwa site n'ịgụ akwụkwọ gbasara paramita dị ka
Set-ExecutionAtumatu anaghị egbochi ya yana -nfefe iwu mmezu
okirikiri nke ụdị
$TimeToSleep = 3 # опрос каждые 3 секунды
$TimeToWork = 10 # минут
$HowManyTimes = $TimeToWork*60/$TimeToSleep # счетчик для цикла
$MainCounter = 0
for ($MainCounter=0; $MainCounter -le $HowManyTimes) {
sleep $TimeToSleep
$MainCounter ++