R හි ටෙලිග්‍රාම් බොට් එකක් ලිවීම (1 කොටස): බොට් එකක් සාදා එය ටෙලිග්‍රාම් වලින් පණිවිඩ යැවීමට භාවිතා කිරීම

ටෙලිග්‍රාම් ප්‍රේක්ෂකයින් සෑම දිනකම ඝාතීය ලෙස වර්ධනය වෙමින් පවතී, මෙය පණිවිඩකරුගේ පහසුව, නාලිකා තිබීම, කතාබස් සහ ඇත්ත වශයෙන්ම බොට්ස් නිර්මාණය කිරීමේ හැකියාව මගින් පහසුකම් සපයයි.

ඔබේ ගනුදෙනුකරුවන් සමඟ සන්නිවේදනය ස්වයංක්‍රීය කිරීමේ සිට ඔබේම කාර්යයන් කළමනාකරණය කිරීම දක්වා සම්පූර්ණයෙන්ම වෙනස් අරමුණු සඳහා බොට්ස් භාවිතා කළ හැකිය.

අත්‍යවශ්‍යයෙන්ම, ඔබට බොට් හරහා ඕනෑම මෙහෙයුමක් කිරීමට ටෙලිග්‍රාම් භාවිතා කළ හැකිය: දත්ත යැවීම හෝ ඉල්ලීම, සේවාදායකයේ කාර්යයන් ක්‍රියාත්මක කිරීම, දත්ත සමුදායකට තොරතුරු රැස් කිරීම, ඊමේල් යැවීම යනාදිය.

සමඟ වැඩ කරන්නේ කෙසේද යන්න පිළිබඳ ලිපි මාලාවක් ලිවීමට මම අදහස් කරමි telegram bot API, සහ ඔබේ අවශ්‍යතාවයට ගැලපෙන පරිදි bots ලියන්න.

R හි ටෙලිග්‍රාම් බොට් එකක් ලිවීම (1 කොටස): බොට් එකක් සාදා එය ටෙලිග්‍රාම් වලින් පණිවිඩ යැවීමට භාවිතා කිරීම

මෙම පළමු ලිපියෙන් අපි ටෙලිග්‍රාම් බොට් එකක් සාදා එය විදුලි පණිවුඩයේ දැනුම්දීම් යැවීමට භාවිතා කරන්නේ කෙසේදැයි සොයා බලමු.

එහි ප්‍රතිඵලයක් වශයෙන්, Windows Task Scheduler හි සියලුම කාර්යයන් අවසන් වරට ක්‍රියාත්මක කිරීමේ තත්ත්වය පරීක්ෂා කර, ඒවායින් කිසිවක් අසාර්ථක වුවහොත් ඔබට දැනුම්දීම් යවන බොට් එකක් අප සතුව ඇත.

නමුත් මෙම ලිපි මාලාවේ අරමුණ විශේෂිත, පටු කාර්යයක් සඳහා බොට් එකක් ලියන ආකාරය ඔබට ඉගැන්වීම නොව, සාමාන්‍යයෙන් ඔබට පැකේජයේ වාක්‍ය ඛණ්ඩය හඳුන්වා දීමයි. telegram.bot, සහ ඔබේම ගැටළු විසඳීම සඳහා ඔබට බොට්ස් ලිවිය හැකි කේත උදාහරණ.

අන්තර්ගතය

ඔබ දත්ත විශ්ලේෂණයට කැමති නම්, ඔබ මගේ ගැන උනන්දු විය හැකිය ටෙලිග්රාෆ් и ප්රථම අදියර නාලිකා. බොහෝ අන්තර්ගතයන් R භාෂාව සඳහා කැප කර ඇත.

  1. ටෙලිග්‍රාම් බොට් එකක් නිර්මාණය කිරීම
  2. R හි විදුලි පණිවුඩ බොට් සමඟ වැඩ කිරීම සඳහා පැකේජයක් ස්ථාපනය කිරීම
  3. R සිට Telegram වෙත පණිවිඩ යැවීම
  4. කාර්ය ස්කෑන් ක්රියාත්මක කිරීම සඳහා කාලසටහනක් සැකසීම
  5. නිගමනය

ටෙලිග්‍රාම් බොට් එකක් නිර්මාණය කිරීම

පළමුව, අපි බොට් එකක් සෑදිය යුතුයි. මෙය සිදු කරනු ලබන්නේ විශේෂ bot එකක් භාවිතා කරමිනි බොට්ෆදර්, යන්න ලින්ක් සහ බොට් වෙත ලියන්න /start.

ඉන්පසු ඔබට විධාන ලැයිස්තුවක් සහිත පණිවිඩයක් ලැබෙනු ඇත:

BotFather වෙතින් පණිවිඩය

I can help you create and manage Telegram bots. If you're new to the Bot API, please see the manual (https://core.telegram.org/bots).

You can control me by sending these commands:

/newbot - create a new bot
/mybots - edit your bots [beta]

Edit Bots
/setname - change a bot's name
/setdescription - change bot description
/setabouttext - change bot about info
/setuserpic - change bot profile photo
/setcommands - change the list of commands
/deletebot - delete a bot

Bot Settings
/token - generate authorization token
/revoke - revoke bot access token
/setinline - toggle inline mode (https://core.telegram.org/bots/inline)
/setinlinegeo - toggle inline location requests (https://core.telegram.org/bots/inline#location-based-results)
/setinlinefeedback - change inline feedback (https://core.telegram.org/bots/inline#collecting-feedback) settings
/setjoingroups - can your bot be added to groups?
/setprivacy - toggle privacy mode (https://core.telegram.org/bots#privacy-mode) in groups

Games
/mygames - edit your games (https://core.telegram.org/bots/games) [beta]
/newgame - create a new game (https://core.telegram.org/bots/games)
/listgames - get a list of your games
/editgame - edit a game
/deletegame - delete an existing game

නව බොට් එකක් සෑදීමට, විධානය යවන්න /newbot.

බොට් ෆාදර් ඔබෙන් බොට්ගේ නම ඇතුළත් කර ලොග් වීමට අසයි.

BotFather, [25.07.20 09:39]
Alright, a new bot. How are we going to call it? Please choose a name for your bot.

Alexey Seleznev, [25.07.20 09:40]
My Test Bot

BotFather, [25.07.20 09:40]
Good. Now let's choose a username for your bot. It must end in `bot`. Like this, for example: TetrisBot or tetris_bot.

Alexey Seleznev, [25.07.20 09:40]
@my_test_bot

ඔබට ඕනෑම නමක් ඇතුළත් කළ හැකිය, නමුත් පිවිසුම අවසන් විය යුතුය bot.

ඔබ සියල්ල නිවැරදිව කළේ නම්, ඔබට පහත පණිවිඩය ලැබෙනු ඇත:

Done! Congratulations on your new bot. You will find it at t.me/my_test_bot. You can now add a description, about section and profile picture for your bot, see /help for a list of commands. By the way, when you've finished creating your cool bot, ping our Bot Support if you want a better username for it. Just make sure the bot is fully operational before you do this.

Use this token to access the HTTP API:
123456789:abcdefghijklmnopqrstuvwxyz

For a description of the Bot API, see this page: https://core.telegram.org/bots/api

ඊළඟට ඔබට ලැබුණු API ටෝකනය අවශ්ය වනු ඇත, මගේ උදාහරණයේ එය වේ 123456789:abcdefghijklmnopqrstuvwxyz.

මෙම පියවරේදී, බොට් නිර්මාණය සඳහා සූදානම් වීමේ කටයුතු අවසන් වේ.

R හි විදුලි පණිවුඩ බොට් සමඟ වැඩ කිරීම සඳහා පැකේජයක් ස්ථාපනය කිරීම

ඔබ දැනටමත් R භාෂාව සහ RStudio සංවර්ධන පරිසරය ස්ථාපනය කර ඇති බව මම උපකල්පනය කරමි. මෙය එසේ නොවේ නම්, ඔබට මෙය බැලිය හැකිය වීඩියෝ නිබන්ධනය ඒවා ස්ථාපනය කරන්නේ කෙසේද යන්න පිළිබඳව.

Telegram Bot API සමඟ වැඩ කිරීමට අපි R පැකේජය භාවිතා කරමු telegram.bot.

R හි පැකේජ ස්ථාපනය කිරීම ශ්‍රිතය භාවිතයෙන් සිදු කෙරේ install.packages(), එබැවින් අපට අවශ්ය පැකේජය ස්ථාපනය කිරීමට, විධානය භාවිතා කරන්න install.packages("telegram.bot").

විවිධ පැකේජ ස්ථාපනය කිරීම ගැන ඔබට වැඩිදුර ඉගෙන ගත හැකිය මෙම වීඩියෝව.

පැකේජය ස්ථාපනය කිරීමෙන් පසු, ඔබ එය සම්බන්ධ කළ යුතුය:

library(telegram.bot)

R සිට Telegram වෙත පණිවිඩ යැවීම

ඔබ නිර්මාණය කරන ලද බොට් එක නිර්මාණය කිරීමේදී සඳහන් කර ඇති පිවිසුම භාවිතයෙන් ටෙලිග්‍රාම් හි සොයාගත හැකිය, මගේ නඩුවේදී එය @my_test_bot.

"Hey bot" වැනි ඕනෑම පණිවිඩයක් bot හට යවන්න. මේ මොහොතේ, බොට් සමඟ ඔබේ කතාබහේ හැඳුනුම්පත ලබා ගැනීමට අපට මෙය අවශ්‍ය වේ.

දැන් අපි පහත කේතය R වලින් ලියන්නෙමු.

library(telegram.bot)

# создаём экземпляр бота
bot <- Bot(token = "123456789:abcdefghijklmnopqrstuvwxyz")

# Запрашиваем информацию о боте
print(bot$getMe())

# Получаем обновления бота, т.е. список отправленных ему сообщений
updates <- bot$getUpdates()

# Запрашиваем идентификатор чата
# Примечание: перед запросом обновлений вы должны отправить боту сообщение
chat_id <- updates[[1L]]$from_chat_id()

මුලදී, අපි ශ්‍රිතය සමඟ අපගේ බොට් හි අවස්ථාවක් නිර්මාණය කරමු Bot(), කලින් ලැබුණු ටෝකනය තර්කයක් ලෙස එයට සම්මත කළ යුතුය.

ටෝකනය කේතය තුළ ගබඩා කිරීම හොඳම භාවිතය ලෙස නොසැලකේ, එබැවින් ඔබට එය පරිසර විචල්‍යයක ගබඩා කර එයින් එය කියවිය හැකිය. පැකේජයේ පෙරනිමියෙන් telegram.bot පහත නම්වල පාරිසරික විචල්‍යයන් සඳහා සහය ක්‍රියාත්මක කර ඇත: R_TELEGRAM_BOT_ИМЯ_ВАШЕГО_БОТА... වෙනුවට ИМЯ_ВАШЕГО_БОТА නිර්මාණය කිරීමේදී ඔබ සඳහන් කළ නම ආදේශ කරන්න, මගේ නඩුවේදී එය විචල්‍යයක් වනු ඇත R_TELEGRAM_BOT_My Test Bot.

පරිසර විචල්‍යයක් නිර්මාණය කිරීමට ක්‍රම කිහිපයක් තිබේ; වඩාත්ම විශ්වීය සහ හරස් වේදිකා එක ගැන මම ඔබට කියමි. ඔබගේ මුල් නාමාවලියෙහි සාදන්න (ඔබට එය විධානය භාවිතයෙන් සොයා ගත හැක path.expand("~")) නම සහිත පෙළ ගොනුව .රෙන්විරෝන්. ඔබට මෙය විධානය භාවිතයෙන්ද කළ හැකිය file.edit(path.expand(file.path("~", ".Renviron"))).

සහ එයට පහත පේළිය එක් කරන්න.

R_TELEGRAM_BOT_ИМЯ_ВАШЕГО_БОТА=123456789:abcdefghijklmnopqrstuvwxyz

මීලඟට, ඔබට ශ්‍රිතය භාවිතයෙන් පරිසර විචල්‍යයේ සුරකින ලද ටෝකනය භාවිතා කළ හැකිය bot_token(), i.e. මෙවැනි:

bot <- Bot(token = bot_token("My Test Bot"))

ක්රමය getUpdates()බොට් යාවත්කාලීන ලබා ගැනීමට අපට ඉඩ සලසයි, i.e. ඔහුට යවන ලද පණිවිඩ. ක්රමය from_chat_id(), පණිවිඩය යවන ලද කතාබස් හැඳුනුම්පත ලබා ගැනීමට ඔබට ඉඩ සලසයි. බොට් එකෙන් පණිවිඩ යැවීමට අපට මෙම හැඳුනුම්පත අවශ්‍ය වේ.

Method එකෙන් ලබාගත් object එකෙන් chat id එකට අමතරව getUpdates() ඔබට වෙනත් ප්‍රයෝජනවත් තොරතුරු ද ලැබේ. උදාහරණයක් ලෙස, පණිවිඩය යැවූ පරිශීලකයා පිළිබඳ තොරතුරු.

updates[[1L]]$message$from

$id
[1] 000000000

$is_bot
[1] FALSE

$first_name
[1] "Alexey"

$last_name
[1] "Seleznev"

$username
[1] "AlexeySeleznev"

$language_code
[1] "ru"

ඉතින්, මෙම අදියරේදී අපට දැනටමත් බොට් එකකින් ටෙලිග්‍රාම් වෙත පණිවිඩයක් යැවීමට අවශ්‍ය සියල්ල තිබේ. අපි ක්‍රමය භාවිතා කරමු sendMessage(), ඔබට කතාබස් හැඳුනුම්පත, පණිවිඩ පෙළ සහ පණිවිඩ පෙළ සලකුණු වර්ගය යැවීමට අවශ්‍ය වේ. සලකුණු වර්ගය Markdown හෝ ​​HTML විය හැකි අතර තර්කය මගින් සකසා ඇත parse_mode.

# Отправка сообщения
bot$sendMessage(chat_id,
                text = "Привет, *жирный текст* _курсив_",
                parse_mode = "Markdown"
)

මාර්ක්ඩවුන් හැඩතල ගැන්වීමේ මූලික කරුණු:

  • තද අකුරු උද්දීපනය කර ඇත්තේ *:
    • උදාහරණය: *жирный шритф*
    • ප්‍රති result ලය: තද අකුරු
  • ඇල අකුරු යටින් ඉරි වලින් දැක්වේ:
    • උදාහරණය: _курсив_
    • ප්‍රති result ලය: ඇල අකුරු
  • සාමාන්‍යයෙන් ක්‍රමලේඛ කේතය උද්දීපනය කිරීමට භාවිතා කරන මොනොස්පේස් ෆොන්ටය, අපෝස්ට්‍රොෆි භාවිතයෙන් නියම කර ඇත - `:
    • උදාහරණයක්: `monospace font`
    • ප්‍රති result ලය: моноширинный шрифт

HTML සලකුණු හැඩතල ගැන්වීමේ මූලික කරුණු:
HTML හි, ඔබ ටැග් වලින් උද්දීපනය කළ යුතු පෙළ කොටස ඔතා, උදාහරණයක් ලෙස <тег>текст</тег>.

  • <tag> - විවෘත කිරීමේ ටැගය
  • - වසා දැමීමේ ටැගය

HTML සලකුණු ටැග්

  • <b> - තද අකුරු
    • උදාහරණය: <b>жирный шрифт</b>
    • බලපෑමක් ඇත තද අකුරු
  • <i> - ඇල අකුරු
    • උදාහරණය: <i>курсив</i>
    • ප්‍රති result ලය: ඇල අකුරු
  • — моноширинный шрифт
    • උදාහරණයක්: моноширинный шрифт
    • ප්‍රති result ලය: моноширинный шрифт

පෙළට අමතරව, ඔබට විශේෂ ක්‍රම භාවිතයෙන් වෙනත් අන්තර්ගතයන් යැවිය හැක:

# Отправить изображение
bot$sendPhoto(chat_id,
  photo = "https://telegram.org/img/t_logo.png"
)

# Отправка голосового сообщения
bot$sendAudio(chat_id,
  audio = "http://www.largesound.com/ashborytour/sound/brobob.mp3"
)

# Отправить документ
bot$sendDocument(chat_id,
  document = "https://github.com/ebeneditos/telegram.bot/raw/gh-pages/docs/telegram.bot.pdf"
)

# Отправить стикер
bot$sendSticker(chat_id,
  sticker = "https://www.gstatic.com/webp/gallery/1.webp"
)

# Отправить видео
bot$sendVideo(chat_id,
  video = "http://techslides.com/demos/sample-videos/small.mp4"
)

# Отправить gif анимацию
bot$sendAnimation(chat_id,
  animation = "https://media.giphy.com/media/sIIhZliB2McAo/giphy.gif"
)

# Отправить локацию
bot$sendLocation(chat_id,
  latitude = 51.521727,
  longitude = -0.117255
)

# Имитация действия в чате
bot$sendChatAction(chat_id,
  action = "typing"
)

එම. උදාහරණයක් ලෙස ක්රමය භාවිතා කිරීම sendPhoto() ඔබට පැකේජය භාවිතයෙන් නිර්මාණය කළ රූපයක් ලෙස සුරකින ලද ප්‍රස්තාරයක් යැවිය හැක ggplot2.

Windows Task Scheduler පරීක්ෂා කිරීම සහ අසාමාන්‍ය ලෙස අවසන් වූ කාර්යයන් පිළිබඳ දැනුම්දීම් යැවීම

Windows Task Scheduler සමඟ වැඩ කිරීමට ඔබ පැකේජය ස්ථාපනය කළ යුතුය taskscheduleR, සහ දත්ත සමඟ වැඩ කිරීමේ පහසුව සඳහා, පැකේජය ස්ථාපනය කරන්න dplyr.

# Установка пакетов
install.packages(c('taskscheduleR', 'dplyr'))
# Подключение пакетов
library(taskscheduleR)
library(dplyr)

ඊළඟට, කාර්යය භාවිතා කිරීම taskscheduler_ls() අපි අපගේ කාලසටහන්කරුගෙන් කාර්යයන් පිළිබඳ තොරතුරු ඉල්ලා සිටිමු. කාර්යය භාවිතා කිරීම filter() පැකේජයෙන් dplyr අපි කාර්ය ලැයිස්තුවෙන් සාර්ථකව නිම කරන ලද සහ අවසාන ප්‍රතිඵල තත්ත්වය 0 ඇති, සහ කිසිදා දියත් නොකළ සහ 267011 තත්ත්වය ඇති, ආබාධිත කාර්යයන් සහ දැනට ක්‍රියාත්මක වන කාර්යයන් ඉවත් කරමු.

# запрашиваем список задач
task <- task <- taskscheduler_ls() %>%
        filter(! `Last Result`  %in% c("0", "267011") & 
               `Scheduled Task State` == "Enabled" & 
               Status != "Running") %>%
        select(TaskName) %>%
        unique() %>%
        unlist() %>%
        paste0(., collapse = "n")

පහසුකම තුළ task අපට දැන් අසාර්ථක වූ කාර්යයන් ලැයිස්තුවක් තිබේ, අපට මෙම ලැයිස්තුව ටෙලිග්‍රාම් වෙත යැවිය යුතුය.

අපි එක් එක් විධානය වඩාත් විස්තරාත්මකව බැලුවහොත්:

  • filter() - ඉහත විස්තර කර ඇති කොන්දේසි අනුව කාර්ය ලැයිස්තුව පෙරහන් කරයි
  • select() - කාර්යයේ නම සහිත වගුවේ එක් ක්ෂේත්රයක් පමණක් ඉතිරි වේ
  • unique() - අනුපිටපත් නම් ඉවත් කරයි
  • unlist() - තෝරාගත් වගු තීරුව දෛශිකයක් බවට පරිවර්තනය කරයි
  • paste0() - කාර්යයේ නම් එක් පේළියකට සම්බන්ධ කරයි, සහ බෙදුම්කරුවෙකු ලෙස රේඛා සංග්‍රහයක් තබයි, i.e. n.

අපට ඉතිරිව ඇත්තේ මෙම ප්‍රතිඵලය විදුලි පණිවුඩ හරහා යැවීම පමණි.

bot$sendMessage(chat_id,
                text = task,
                parse_mode = "Markdown"
)

ඉතින්, මේ මොහොතේ බොට් කේතය මේ වගේ ය:

කාර්ය සමාලෝචන බොට් කේතය

# Подключение пакета
library(telegram.bot)
library(taskscheduleR)
library(dplyr)

# инициализируем бота
bot <- Bot(token = "123456789:abcdefghijklmnopqrstuvwxyz")

# идентификатор чата
chat_id <- 123456789

# запрашиваем список задач
task <- taskscheduler_ls() %>%
        filter(! `Last Result`  %in% c("0", "267011")  &
               `Scheduled Task State` == "Enabled" & 
               Status != "Running") %>%
        select(TaskName) %>%
        unique() %>%
        unlist() %>%
        paste0(., collapse = "n")

# если есть проблемные задачи отправляем сообщение
if ( task != "" ) {

  bot$sendMessage(chat_id,
                  text = task,
                  parse_mode = "Markdown"
  )

}

ඉහත උදාහරණය භාවිතා කරන විට, ඔබේ බොට් ටෝකනය සහ ඔබේ චැට් හැඳුනුම්පත කේතයට ආදේශ කරන්න.

ඔබට පෙරහන් කාර්යයන් සඳහා කොන්දේසි එකතු කළ හැකිය, උදාහරණයක් ලෙස, පද්ධති ඒවා හැර ඔබ විසින් නිර්මාණය කරන ලද කාර්යයන් පමණක් පරීක්ෂා කරන්න.

ඔබට විවිධ සැකසුම් වෙනම වින්‍යාස ගොනුවකට දමා, චැට් හැඳුනුම්පත සහ ටෝකනය එහි ගබඩා කළ හැකිය. ඔබට වින්‍යාසය කියවිය හැකිය, උදාහරණයක් ලෙස, පැකේජය භාවිතා කර configr.

උදාහරණයක් ini config

[telegram_bot]
;настройки телеграм бота и чата, в который будут приходить уведомления
chat_id=12345678
bot_token=123456789:abcdefghijklmnopqrstuvwxyz"

R හි වින්‍යාසයකින් විචල්‍ය කියවීමේ උදාහරණයක්

library(configr)

# чтение конфина
config <- read.config('C:/путь_к_конфигу/config.cfg', rcmd.parse = TRUE)

bot_token <- config$telegram_bot$bot_token
chat_id     <- config$telegram_bot$chat_id

කාර්ය ස්කෑන් ධාවනය සඳහා කාලසටහනක් සැකසීම

කාලසටහනකට අනුව ස්ක්‍රිප්ට් දියත් කිරීමේ ක්‍රියාවලිය මෙහි වඩාත් විස්තරාත්මකව විස්තර කෙරේ ලිපියයි. මේ සඳහා අනුගමනය කළ යුතු පියවර පමණක් මෙහි විස්තර කරමි. යම් පියවරක් ඔබට පැහැදිලි නැතිනම්, මම සබැඳියක් ලබා දුන් ලිපිය බලන්න.

අපි හිතමු අපි අපේ bot code එක file එකකට save කළා කියලා check_bot.R. මෙම ගොනුව නිතිපතා ධාවනය කිරීමට උපලේඛනගත කිරීමට, මෙම පියවර අනුගමනය කරන්න:

  1. Path පද්ධති විචල්‍යයේ R ස්ථාපනය කර ඇති ෆෝල්ඩරයට මාර්ගය ලියන්න; වින්ඩෝස් හි, මාර්ගය මේ වගේ දෙයක් වනු ඇත: C:Program FilesRR-4.0.2bin.
  2. එක් පේළියකින් පමණක් ක්‍රියාත්මක කළ හැකි bat ගොනුවක් සාදන්න R CMD BATCH C:rscriptscheck_botcheck_bot.R. ආදේශ කරන්න C:rscriptscheck_botcheck_bot.R ඔබගේ R ගොනුව වෙත සම්පූර්ණ මාර්ගය වෙත.
  3. ඊළඟට, දියත් කිරීමේ කාලසටහනක් සැකසීමට Windows Task Scheduler භාවිතා කරන්න, උදාහරණයක් ලෙස, සෑම පැය භාගයක්ම.

නිගමනය

මෙම ලිපියෙන් අපි බොට් එකක් සාදා එය ටෙලිග්‍රාම් හි විවිධ දැනුම්දීම් යැවීමට භාවිතා කරන්නේ කෙසේදැයි සොයා බැලුවෙමු.

මම Windows Task Scheduler නිරීක්ෂණය කිරීමේ කාර්යය විස්තර කළ නමුත්, කාලගුණ අනාවැකියේ සිට කොටස් හුවමාරුවේ කොටස් මිල ගණන් දක්වා ඕනෑම දැනුම්දීමක් යැවීමට ඔබට මෙම ලිපියේ ඇති තොරතුරු භාවිතා කළ හැකිය. R මඟින් ඔබට දත්ත මූලාශ්‍ර විශාල සංඛ්‍යාවකට සම්බන්ධ වීමට ඉඩ සලසයි.

ඊළඟ ලිපියෙන්, දැනුම්දීම් යැවීමට පමණක් නොව, වඩාත් සංකීර්ණ ක්‍රියා කිරීමටද හැකි වන පරිදි බොට් වෙත විධාන සහ යතුරුපුවරුව එකතු කරන්නේ කෙසේදැයි අපි සොයා බලමු.

මූලාශ්රය: www.habr.com

අදහස් එක් කරන්න