Aghju cuminciatu à immerse in u mondu IT solu trè settimane fà. Seriu, trè settimane fà ùn aghju mancu capitu a sintassi HTML, è a cunniscenza di i linguaggi di prugrammazione finisci cù un prugramma di Pascal di 10 anni. In ogni casu, aghju decisu di andà in un campu di IT, per i so figlioli chì saria bellu di fà un bot. Aghju pensatu chì ùn era micca cusì difficiule.
Questu hà iniziatu un longu viaghju, in quale aghju:
- hà implementatu un servitore cloud cù Ubuntu,
- registratu in GitHub,
- hà amparatu a sintassi basica di JavaScript,
- leghje una tonna di articuli in inglese è russu,
- infine hà fattu un bot
- infine hà scrittu stu post.
U risultatu finale pareva cusì:
Diceraghju subitu chì questu hè un articulu per i principianti - solu per capisce cumu fà e cose elementari da u principiu.
È ancu - per i programatori avanzati - solu per fà riri un pocu.
1. Cumu scrive u codice in JS?
Aghju capitu chì valeva almenu per capiscenu prima a sintassi di a lingua. A scelta hè cascata nantu à JavaScript, solu perchè u prossimu passu per mè era di creà una applicazione in ReactNative. Aghju cuminciatu cù
2. Cumu registrà un bot?
M'hà aiutatu assai in u principiu
3. Chì hè u codice di u bot?
Dopu un longu studiu di l'articuli, aghju capitu chì vale a pena aduprà qualchì tipu di libreria (codice di terzu in u formatu di modulu) per ùn soffre micca di studià l'API di telegramma è di creà grandi pezzi di codice da zero. Aghju trovu un quadru
3. Cumu creà u vostru servitore nuvola per 100 rubles
Dopu assai ricerca, aghju capitu chì u cumandamentu "npm" da a stampa sopra si riferisce à a linea di cummanda. A linea di cumanda hè in ogni locu, ma per esse capace di eseguisce, avete bisognu di installà u NodePackageManager. U prublema era chì aghju programatu in un PixelBook cù ChromeOS. Saltaraghju un grande bloccu quì nantu à cumu aghju cunnisciutu Linux - per a maiò parte, questu hè viotu è innecessariu. Sì avete Windows o un MacBook, avete digià una cunsola.
In poche parole, aghju installatu Linux attraversu Crostini.
In ogni casu, in u prucessu, aghju realizatu chì per u bot per travaglià tuttu u tempu (è micca solu quandu u mo computer hè attivatu), aghju bisognu di un servitore nuvola. Aghju sceltu
4. Cumu preparà u servitore per eseguisce u bot
Dopu à quessa, aghju realizatu chì avia bisognu di fà qualchì cartulare nantu à u servitore, in quale aghju messu u schedariu cù u testu di u codice. Per fà questu, in a cunsola (eseguite direttamente nantu à u situ attraversu u buttone "Open Console"), aghju guidatu
mkdir bot
bot - questu hè diventatu u nome di u mo cartulare. Dopu quì, aghju installatu npm è Node.js, chì mi permetterà dopu à eseguisce codice da i schedari *.js.
sudo apt update
sudo apt install nodejs
sudo apt install npm
Vi ricumandemu assai in questa fase per stabilisce una cunnessione à u servitore attraversu a vostra cunsola. Quì
5. Cumu codificà u primu bot.
Avà questu hè solu una rivelazione per mè. Ogni prugramma hè solu linee di testu. Pudete guidà in ogni locu, salvà cù l'estensione desiderata è basta. Sì bellu. Aghju utilizatu
Aghju fattu un novu schedariu, in quale aghju inseritu u codice da l'esempiu nantu à a pagina di telegraf è salvatu à u schedariu index.js (ùn hè micca necessariu di nome u schedariu cusì, ma hè accettatu). Impurtante - invece di BOT_TOKEN, inserite a vostra chjave API da u sicondu paràgrafu.
const Telegraf = require('telegraf')
const bot = new Telegraf(process.env.BOT_TOKEN)
bot.start((ctx) => ctx.reply('Welcome!'))
bot.help((ctx) => ctx.reply('Send me a sticker'))
bot.on('sticker', (ctx) => ctx.reply(''))
bot.hears('hi', (ctx) => ctx.reply('Hey there'))
bot.launch()
6. How to push the code to the server via github
Avà aghju avutu à carica stu codice à u servitore è eseguisce. Per mè hè diventatu una sfida. In fine, dopu assai prove, aghju realizatu chì saria più faciule per creà un schedariu in github chì permette di aghjurnà u codice cù un cumandamentu in a cunsola. Aghju registratu un contu cun
7. How to upload files to the server via github part 2
Aviu bisognu di mette un prugramma in u servitore chì scaricava i fugliali da git. Aghju installatu git nantu à u servitore scrivendu
apt-get install git
Dopu à quessa, avia bisognu di stallà i file uploads. Per fà questu, aghju guidatu in a linea di cummanda
git clone git://github.com/b0tank/bot.git bot
In u risultatu, tuttu da u prughjettu hè stata caricata à u servitore. L'errore in questa tappa era chì aghju essenzialmente fattu un secondu cartulare in u cartulare di bot già esistente. L'indirizzu à u schedariu pareva */bot/bot/index.js
Aghju decisu di ignurà stu prublema.
È per carricà a biblioteca di telegraf, chì dumandemu in a prima linea di codice, scrive u cumandimu in a cunsola.
npm install telegraf
8. Cumu principià u bot
Per fà questu, mentre in u cartulare cù u schedariu (per passà da u cartulare à u cartulare attraversu a cunsola, eseguite u cumandamentu di furmatu cd bot
Per assicurà chì site induve avete bisognu, pudete guidà in un cumandamentu chì mostrarà in a cunsola tutti i fugliali è i cartulare chì ci sò. ls -a
Per cumincià, aghju intrutu in a cunsola
node index.js
Se ùn ci hè micca errore, tuttu hè bè, u bot hè travagliatu. Cercatelu nantu à u telegramma. Se ci hè un errore, applicà a vostra cunniscenza da u puntu 1.
9. How to run the bot in the background
Vi capirete rapidamente chì u bot funziona solu quandu site sè stessu in a cunsola. Per risolve stu prublema aghju utilizatu u cumandamentu
screen
Dopu quì, apparirà una schermu cù qualchì testu. Questu significa chì tuttu hè bè. Sò in un servitore virtuale in un servitore nuvola. Per capisce megliu cumu funziona tuttu -
node index.js
10. Cumu funziona u bot è cumu espansione a so funziunalità
Chì pò fà u nostru bot da l'esempiu? Ellu pò
bot.start((ctx) => ctx.reply('Welcome!'))
dì "Benvenutu!" à u mumentu di u principiu (pruvà di cambià u testu)
bot.help((ctx) => ctx.reply('Send me a sticker'))
in risposta à u cumandimu standard / help, mandate u missaghju "Mandami un sticker"
bot.on('sticker', (ctx) => ctx.reply(''))
mandà appruvazioni in risposta à un sticker
bot.hears('hi', (ctx) => ctx.reply('Hey there'))
rispondimi "Ehi" s'elli scrivenu "ciao"
bot.launch()
Se guardate u codice à ctx.replyWithPhoto
Permette di mandà una foto o gif in risposta à un certu testu.
Una parte significativa di u codice hè stata scritta da i zitelli di 11-13 anni, à quale aghju datu accessu à u bot. Sò intruti in i so casi d'utilizatori. Pensu chì hè faciule per dì quale parte hè stata fatta da elli.
Per esempiu, un GIF cù un caratteru famosu da u cartoon Adventure Time vene à u missaghju "jake".
Per sviluppà u bot in più, avete bisognu di cunnette u teclatu, vede esempi, per esempiu,
11. Cumu aghjurnà u codice è ripigliate u bot
Ùn vi scurdate chì avete bisognu di aghjurnà u codice micca solu in github, ma ancu in u servitore. Hè faciule fà questu - ferma u bot (press ctrl + c),
- entre in a cunsola, essendu in u cartulare di destinazione, git pull
- riavvia u bot cù u cumandimu node index.js
END
Parechje di e cose descritte in stu schedariu seranu super evidenti per i programatori avanzati. In ogni casu, quandu aghju pruvatu à saltà nantu à l'abissu à u mondu di i bots in un colpu, aghju veramente missu una guida cusì. Una guida chì ùn manca micca cose evidenti è simplici per ogni specialista in IT.
In u futuru, aghju pensatu un postu nantu à cumu fà a mo prima applicazione in ReactNative in u listessu stile, abbonate!
Source: www.habr.com