R இல் டெலிகிராம் போட் எழுதுதல் (பகுதி 2): போட்டில் கட்டளை ஆதரவு மற்றும் செய்தி வடிப்பான்களைச் சேர்த்தல்

В முந்தைய வெளியீடு ஒரு போட்டை எவ்வாறு உருவாக்குவது என்பதைக் கண்டுபிடித்தோம், வகுப்பின் ஒரு நிகழ்வை துவக்கினோம் Bot மற்றும் அதை பயன்படுத்தி செய்திகளை அனுப்பும் முறைகள் தெரிந்தது.

இந்த கட்டுரையில் நான் இந்த தலைப்பை தொடர்கிறேன், எனவே இந்த கட்டுரையைப் படித்த பிறகு மட்டுமே படிக்கத் தொடங்க பரிந்துரைக்கிறேன் முதல் பகுதி.

இந்த நேரத்தில், எங்கள் போட்டை எவ்வாறு புதுப்பிப்பது மற்றும் அதற்கு கட்டளை ஆதரவைச் சேர்ப்பது எப்படி என்பதைக் கண்டுபிடிப்போம், மேலும் வகுப்பைப் பற்றி அறிந்து கொள்வோம். Updater.

கட்டுரையின் போது, ​​நாங்கள் பல எளிய போட்களை எழுதுவோம், பிந்தையது, கொடுக்கப்பட்ட தேதி மற்றும் நாட்டின் குறியீட்டின் அடிப்படையில், கொடுக்கப்பட்ட நாட்டில் ஒரு நாள் வார இறுதியா அல்லது உற்பத்தி நாட்காட்டியின் படி வேலை நாளா என்பதை தீர்மானிக்கும். ஆனால், முன்பு போலவே, கட்டுரையின் நோக்கம் தொகுப்பு இடைமுகத்தை உங்களுக்கு அறிமுகப்படுத்துவதாகும் telegram.bot உங்கள் சொந்த பிரச்சினைகளை தீர்க்க.

R இல் டெலிகிராம் போட் எழுதுதல் (பகுதி 2): போட்டில் கட்டளை ஆதரவு மற்றும் செய்தி வடிப்பான்களைச் சேர்த்தல்

"R இல் டெலிகிராம் போட் எழுதுதல்" தொடரின் அனைத்து கட்டுரைகளும்

  1. நாங்கள் ஒரு போட் ஒன்றை உருவாக்கி அதை டெலிகிராமில் செய்திகளை அனுப்ப பயன்படுத்துகிறோம்
  2. கட்டளை ஆதரவையும் செய்தி வடிப்பான்களையும் போட்டில் சேர்க்கவும்

உள்ளடக்கம்

நீங்கள் தரவு பகுப்பாய்வில் ஆர்வமாக இருந்தால், நீங்கள் என் மீது ஆர்வமாக இருக்கலாம் தந்தி и YouTube சேனல்கள். பெரும்பாலான உள்ளடக்கம் R மொழிக்கு அர்ப்பணிக்கப்பட்டுள்ளது.

  1. புதுப்பிப்பு வகுப்பு
  2. கையாளுபவர்கள் - கையாளுபவர்கள்
  3. முதல் கட்டளையை bot, command handler இல் சேர்க்கவும்
  4. உரை செய்தி செயலி மற்றும் வடிகட்டிகள்
  5. அளவுருக்களுடன் கட்டளைகளைச் சேர்த்தல்
  6. பின்னணியில் போட்டை இயக்கவும்
  7. முடிவுக்கு

புதுப்பிப்பு வகுப்பு

Updater டெலிகிராம் போட்டை உருவாக்குவதை எளிதாக்கும் ஒரு வகுப்பாகும், மேலும் ஹூட்டின் கீழ் உள்ள வகுப்பைப் பயன்படுத்துகிறது Dispetcher. வகுப்பு ஒதுக்கீடு Updater bot இலிருந்து புதுப்பிப்புகளைப் பெறுவது (முந்தைய கட்டுரையில் இந்த நோக்கத்திற்காக நாங்கள் முறையைப் பயன்படுத்தினோம் getUpdates()), மேலும் அவற்றை மேலும் மாற்றவும் Dispetcher.

இதையொட்டி Dispetcher நீங்கள் உருவாக்கிய கையாளுபவர்களைக் கொண்டுள்ளது, அதாவது. வர்க்க பொருள்கள் Handler.

கையாளுபவர்கள் - கையாளுபவர்கள்

கையாளுபவர்களுடன் நீங்கள் சேர்க்கலாம் Dispetcher பல்வேறு நிகழ்வுகளுக்கு போட் எதிர்வினைகள். இந்த கட்டுரையை எழுதும் நேரத்தில் telegram.bot பின்வரும் வகையான கையாளுதல்கள் சேர்க்கப்பட்டுள்ளன:

  • MessageHandler — செய்தி கையாளுபவர்
  • CommandHandler — கட்டளை கையாளுபவர்
  • CallbackQueryHandler — இன்லைனில் இருந்து அனுப்பப்படும் விசைப்பலகைகளுக்கான தரவு கையாளுதல்
  • ErrorHandler — bot இலிருந்து புதுப்பிப்புகளைக் கோரும்போது பிழை கையாளுதல்

முதல் கட்டளையை bot, command handler இல் சேர்க்கவும்

நீங்கள் இதற்கு முன் போட்களைப் பயன்படுத்தவில்லை என்றால் மற்றும் கட்டளை என்றால் என்ன என்று தெரியவில்லை என்றால், போட்க்கு கட்டளைகளை முன்னோக்கி சாய்வு பயன்படுத்தி அனுப்பப்பட வேண்டும். / முன்னொட்டாக.

எளிய கட்டளைகளுடன் தொடங்குவோம், அதாவது. கட்டளையின் மீது ஹலோ சொல்ல எங்கள் போட்க்கு கற்பிப்போம் /hi.

குறியீடு 1: போட்க்கு ஹலோ சொல்ல கற்றுக்கொடுக்கிறது

library(telegram.bot)

# создаём экземпляр класса Updater
updater <- Updater('ТОКЕН ВАШЕГО БОТА')

# Пишем метод для приветсвия
say_hello <- function(bot, update) {

  # Имя пользователя с которым надо поздароваться
  user_name <- update$message$from$first_name

  # Отправка приветственного сообщения
  bot$sendMessage(update$message$chat_id, 
                  text = paste0("Моё почтение, ", user_name, "!"), 
                  parse_mode = "Markdown")

}

# создаём обработчик 
hi_hendler <- CommandHandler('hi', say_hello)

# добаляем обработчик в диспетчер
updater <- updater + hi_hendler

# запускаем бота
updater$start_polling()

மேலே உள்ள குறியீட்டு உதாரணத்தை இயக்கவும், 'உங்கள் பாட் டோக்கனை' மாற்றிய பின், நீங்கள் போட்டை உருவாக்கும் போது நீங்கள் பெற்ற உண்மையான டோக்கனுடன் போட்ஃபெதர் (நான் ஒரு போட் உருவாக்குவது பற்றி பேசினேன் முதல் கட்டுரை).

முறை start_polling() வர்க்கம் Updater, குறியீட்டின் முடிவில் பயன்படுத்தப்படும் இது, போட்டிலிருந்து புதுப்பிப்புகளைக் கோருதல் மற்றும் செயலாக்குதல் ஆகியவற்றின் முடிவில்லாத சுழற்சியைத் தொடங்குகிறது.

இப்போது டெலிகிராமைத் திறந்து, முதல் கட்டளையை எங்கள் போட்டிற்கு எழுதுவோம் /hi.

R இல் டெலிகிராம் போட் எழுதுதல் (பகுதி 2): போட்டில் கட்டளை ஆதரவு மற்றும் செய்தி வடிப்பான்களைச் சேர்த்தல்

இப்போது எங்கள் பாட் கட்டளையைப் புரிந்துகொள்கிறது /hi, மற்றும் நம்மை எப்படி வாழ்த்துவது என்று தெரியும்.

திட்டவட்டமாக, அத்தகைய எளிய போட்டை உருவாக்கும் செயல்முறையை பின்வருமாறு சித்தரிக்கலாம்.

R இல் டெலிகிராம் போட் எழுதுதல் (பகுதி 2): போட்டில் கட்டளை ஆதரவு மற்றும் செய்தி வடிப்பான்களைச் சேர்த்தல்

  1. வகுப்பின் உதாரணத்தை உருவாக்கவும் Updater;
  2. நாங்கள் முறைகளை உருவாக்குகிறோம், அதாவது. எங்கள் போட் செய்யும் செயல்பாடுகள். குறியீட்டு எடுத்துக்காட்டில் இது ஒரு செயல்பாடு say_hello(). போட் முறைகளாக நீங்கள் பயன்படுத்தும் செயல்பாடுகள் இரண்டு தேவையான வாதங்களைக் கொண்டிருக்க வேண்டும் - பொட் и மேம்படுத்தல், மற்றும் ஒரு விருப்பத்தேர்வு - மதிப்புரு. வாதம் பொட், இது உங்கள் போட், இதன் உதவியுடன் நீங்கள் செய்திகளுக்குப் பதிலளிக்கலாம், செய்திகளை அனுப்பலாம் அல்லது போட்க்கு கிடைக்கும் வேறு எந்த முறைகளையும் பயன்படுத்தலாம். வாதம் மேம்படுத்தல் பயனரிடமிருந்து போட் பெற்றது இதுதான், உண்மையில், முறையைப் பயன்படுத்தி முதல் கட்டுரையில் நாம் பெற்றோம் getUpdates(). வாதம் மதிப்புரு கட்டளையுடன் பயனர் அனுப்பிய கூடுதல் தரவை செயலாக்க உங்களை அனுமதிக்கிறது, சிறிது நேரம் கழித்து இந்த தலைப்புக்கு திரும்புவோம்;
  3. நாங்கள் கையாளுபவர்களை உருவாக்குகிறோம், அதாவது. முந்தைய கட்டத்தில் உருவாக்கப்பட்ட முறைகளுடன் சில பயனர் செயல்களை நாங்கள் தொடர்புபடுத்துகிறோம். அடிப்படையில், ஒரு ஹேண்ட்லர் என்பது ஒரு தூண்டுதல், சில போட் செயல்பாட்டை அழைக்கும் நிகழ்வு. எங்கள் எடுத்துக்காட்டில், அத்தகைய தூண்டுதல் ஒரு கட்டளையை அனுப்புகிறது /hi, மற்றும் குழுவால் செயல்படுத்தப்படுகிறது hi_hendler <- CommandHandler('hi', say_hello). முதல் செயல்பாடு வாதம் CommandHandler() எங்கள் விஷயத்தில், ஒரு கட்டளையை குறிப்பிட உங்களை அனுமதிக்கிறது hi, அதற்கு போட் பதிலளிக்கும். இரண்டாவது வாதம் போட் முறையைக் குறிப்பிட உங்களை அனுமதிக்கிறது, நாங்கள் முறையை அழைப்போம் say_hello, பயனர் முதல் வாதத்தில் குறிப்பிடப்பட்ட கட்டளையை அழைத்தால் இது செயல்படுத்தப்படும்;
  4. அடுத்து, உருவாக்கப்பட்ட ஹேண்ட்லரை எங்கள் வகுப்பு நிகழ்வின் அனுப்பியவருடன் சேர்ப்போம் Updater. நீங்கள் பல வழிகளில் கையாளுபவர்களைச் சேர்க்கலாம்; மேலே உள்ள எடுத்துக்காட்டில், அடையாளத்தைப் பயன்படுத்தி எளிமையான ஒன்றைப் பயன்படுத்தினேன் +, IE updater <- updater + hi_hendler. அதே முறையைப் பயன்படுத்தியும் செய்யலாம் add_handler(), வகுப்பைச் சேர்ந்தது Dispatcher, இந்த முறையை நீங்கள் இப்படிக் காணலாம்: updater$dispatcher$add_handler();
  5. கட்டளையைப் பயன்படுத்தி bot ஐ இயக்கவும் start_polling().

உரை செய்தி செயலி மற்றும் வடிகட்டிகள்

போட்க்கு கட்டளைகளை எவ்வாறு அனுப்புவது என்பதை நாங்கள் கண்டுபிடித்தோம், ஆனால் சில சமயங்களில் கட்டளைகளுக்கு மட்டுமல்ல, சில வழக்கமான குறுஞ்செய்திகளுக்கும் பதிலளிக்க போட் தேவை. இதைச் செய்ய, நீங்கள் செய்தி கையாளுபவர்களைப் பயன்படுத்த வேண்டும் - செய்தி கையாளுபவர்.

சாதாரண செய்தி கையாளுபவர் அனைத்து உள்வரும் செய்திகளுக்கும் பதிலளிக்கும். எனவே, செய்தி கையாளுபவர்கள் பெரும்பாலும் வடிப்பான்களுடன் இணைந்து பயன்படுத்தப்படுகின்றன. கட்டளையில் மட்டும் அல்ல வணக்கம் சொல்ல போட் கற்பிப்போம் /hi, ஆனால் போட்க்கு அனுப்பப்பட்ட செய்தியில் பின்வரும் வார்த்தைகளில் ஒன்று தோன்றும் போதெல்லாம்: hello, hello, salute, hai, bonjour.

இப்போதைக்கு புதிய முறைகள் எதையும் எழுத மாட்டோம், ஏனென்றால்... போட் நம்மை வாழ்த்துவதற்கு ஏற்கனவே ஒரு முறை உள்ளது. தேவையான வடிகட்டி மற்றும் செய்தி கையாளுபவரை உருவாக்கினால் போதும்.

குறியீடு 2: உரைச் செய்தி கையாளியைச் சேர்த்து வடிகட்டவும்

library(telegram.bot)

# создаём экземпляр класса Updater
updater <- Updater('ТОКЕН ВАШЕГО БОТА')

# Пишем метод для приветсвия
## команда приветвия
say_hello <- function(bot, update) {

  # Имя пользователя с которым надо поздароваться
  user_name <- update$message$from$first_name

  # Отправляем приветсвенное сообщение
  bot$sendMessage(update$message$chat_id, 
                  text = paste0("Моё почтение, ", user_name, "!"),
                  parse_mode = "Markdown",
                  reply_to_message_id = update$message$message_id)

}

# создаём фильтры
MessageFilters$hi <- BaseFilter(function(message) {

  # проверяем, встречается ли в тексте сообщения слова: привет, здравствуй, салют, хай, бонжур
  grepl(x           = message$text, 
        pattern     = 'привет|здравствуй|салют|хай|бонжур',
        ignore.case = TRUE)
  }
)

# создаём обработчик 
hi_hendler <- CommandHandler('hi', say_hello) # обработчик команды hi
hi_txt_hnd <- MessageHandler(say_hello, filters = MessageFilters$hi)

# добаляем обработчики в диспетчер
updater <- updater + 
             hi_hendler +
             hi_txt_hnd

# запускаем бота
updater$start_polling()

மேலே உள்ள குறியீட்டு உதாரணத்தை இயக்கவும், 'உங்கள் பாட் டோக்கனை' மாற்றிய பின், நீங்கள் போட்டை உருவாக்கும் போது நீங்கள் பெற்ற உண்மையான டோக்கனுடன் போட்ஃபெதர் (நான் ஒரு போட் உருவாக்குவது பற்றி பேசினேன் முதல் கட்டுரை).

இப்போது பட்டியலிடப்பட்ட வாழ்த்து வார்த்தைகளைக் கொண்ட பல செய்திகளை போட்க்கு அனுப்ப முயற்சிப்போம்:
R இல் டெலிகிராம் போட் எழுதுதல் (பகுதி 2): போட்டில் கட்டளை ஆதரவு மற்றும் செய்தி வடிப்பான்களைச் சேர்த்தல்

எனவே, முதலில், போட்க்கு வணக்கம் சொல்ல மட்டும் கற்றுக் கொடுத்தோம், ஆனால் ஒரு வாழ்த்துக்கு பதிலளிக்கவும். வாதத்தைப் பயன்படுத்தி இதைச் செய்தோம் ஐடிக்கு_மெசேஜ்_க்குப் பதில், இது முறையில் கிடைக்கிறது sendMessage(), இதில் நீங்கள் பதிலளிக்க விரும்பும் செய்தியின் ஐடியை மாற்ற வேண்டும். மெசேஜ் ஐடியை நீங்கள் இப்படிப் பெறலாம்: update$message$message_id.

ஆனால் நாங்கள் செய்த முக்கிய விஷயம், செயல்பாட்டைப் பயன்படுத்தி போட்டில் ஒரு வடிப்பானைச் சேர்ப்பதாகும் BaseFilter():

# создаём фильтры
MessageFilters$hi <- BaseFilter( 

  # анонимная фильтрующая функция
  function(message) {

    # проверяем, встречается ли в тексте сообщения слова приветствия
    grepl(x           = message$text, 
          pattern     = 'привет|здравствуй|салют|хай|бонжур',
          ignore.case = TRUE)
  }

)

நீங்கள் கவனித்தபடி, பொருளில் வடிப்பான்கள் சேர்க்கப்பட வேண்டும் செய்தி வடிகட்டிகள், இது ஆரம்பத்தில் ஏற்கனவே ஒரு சிறிய ஆயத்த வடிப்பான்களைக் கொண்டுள்ளது. எங்கள் எடுத்துக்காட்டில், பொருளுக்கு செய்தி வடிகட்டிகள் நாங்கள் ஒரு உறுப்பைச் சேர்த்துள்ளோம் hi, இது ஒரு புதிய வடிப்பான்.

செயல்பட BaseFilter() நீங்கள் வடிகட்டி செயல்பாட்டை அனுப்ப வேண்டும். அடிப்படையில், ஒரு வடிகட்டி என்பது ஒரு செய்தி நிகழ்வைப் பெற்று திரும்பும் ஒரு செயல்பாடாகும் உண்மை அல்லது பொய்யா. எங்கள் எடுத்துக்காட்டில், அடிப்படை செயல்பாட்டைப் பயன்படுத்தி ஒரு எளிய செயல்பாட்டை எழுதினோம் grepl() செய்தி உரையை சரிபார்த்து அது வழக்கமான வெளிப்பாட்டுடன் பொருந்துகிறதா என சரிபார்க்கிறது привет|здравствуй|салют|хай|бонжур திரும்புகிறது உண்மை.

அடுத்து நாம் ஒரு செய்தி கையாளியை உருவாக்குகிறோம் hi_txt_hnd <- MessageHandler(say_hello, filters = MessageFilters$hi). முதல் செயல்பாடு வாதம் MessageHandler() கையாளுபவரை அழைக்கும் முறை, மற்றும் இரண்டாவது வாதம் அது அழைக்கப்படும் வடிகட்டி ஆகும். எங்கள் விஷயத்தில், இது நாங்கள் உருவாக்கிய வடிகட்டி MessageFilters$hi.

சரி, இறுதியில், உருவாக்கிய ஹேண்ட்லரை அனுப்புபவருக்குச் சேர்க்கிறோம் hi_txt_hnd.

updater <- updater + 
             hi_hendler +
             hi_txt_hnd

நான் மேலே எழுதியது போல், தொகுப்பில் telegram.bot மற்றும் பொருள் செய்தி வடிகட்டிகள் நீங்கள் பயன்படுத்தக்கூடிய உள்ளமைக்கப்பட்ட வடிப்பான்களின் தொகுப்பு ஏற்கனவே உள்ளது:

  • அனைத்து - அனைத்து செய்திகளும்
  • உரை - உரை செய்திகள்
  • கட்டளை - கட்டளைகள், அதாவது. என்று தொடங்கும் செய்திகள் /
  • பதில் - மற்றொரு செய்திக்கு பதில் அனுப்பும் செய்திகள்
  • ஆடியோ - ஆடியோ கோப்பு கொண்ட செய்திகள்
  • ஆவணம் - அனுப்பப்பட்ட ஆவணத்துடன் கூடிய செய்திகள்
  • புகைப்படம் - அனுப்பப்பட்ட படங்களுடன் செய்திகள்
  • ஸ்டிக்கர் - அனுப்பப்பட்ட ஸ்டிக்கர் கொண்ட செய்திகள்
  • வீடியோ - வீடியோவுடன் செய்திகள்
  • குரல் - குரல் செய்திகள்
  • தொடர்பு - பயனரின் தந்தி உள்ளடக்கம் கொண்ட செய்திகள்
  • இடம் - புவிஇருப்பிடம் கொண்ட செய்திகள்
  • இடம் - அனுப்பப்பட்ட செய்திகள்
  • விளையாட்டு - விளையாட்டு

ஒரு ஹேண்ட்லரில் சில வடிப்பான்களை இணைக்க விரும்பினால், அடையாளத்தைப் பயன்படுத்தவும் | - ஒரு தர்க்கரீதியாக அல்லது, மற்றும் கையெழுத்து & தர்க்கரீதியாக И. எடுத்துக்காட்டாக, வீடியோ, படம் அல்லது ஆவணத்தைப் பெறும்போது, ​​போட் அதே முறையை அழைக்க விரும்பினால், செய்தி கையாளுதலை உருவாக்க பின்வரும் உதாரணத்தைப் பயன்படுத்தவும்:

handler <- MessageHandler(callback, 
  MessageFilters$video | MessageFilters$photo | MessageFilters$document
)

அளவுருக்களுடன் கட்டளைகளைச் சேர்த்தல்

கட்டளைகள் என்றால் என்ன, அவற்றை எவ்வாறு உருவாக்குவது மற்றும் விரும்பிய கட்டளையை இயக்க bot ஐ எவ்வாறு கட்டாயப்படுத்துவது என்பது எங்களுக்கு ஏற்கனவே தெரியும். ஆனால் சில சந்தர்ப்பங்களில், கட்டளை பெயருடன் கூடுதலாக, அதை இயக்க சில தரவுகளை அனுப்ப வேண்டும்.

கொடுக்கப்பட்ட தேதி மற்றும் நாட்டைக் கொடுத்தால், உற்பத்தி நாட்காட்டியில் இருந்து நாள் வகையை உங்களுக்கு வழங்கும் போட்க்கான எடுத்துக்காட்டு கீழே உள்ளது.

கீழே உள்ள போட் தயாரிப்பு காலண்டர் API ஐப் பயன்படுத்துகிறது isdayoff.ru.

குறியீடு 3: தேதி மற்றும் நாட்டின் அடிப்படையில் அறிக்கையிடும் பாட்

library(telegram.bot)

# создаём экземпляр класса Updater
updater <- Updater('1165649194:AAFkDqIzQ6Wq5GV0YU7PmEZcv1gmWIFIB_8')

# Пишем метод для приветсвия
## команда приветвия
check_date <- function(bot, update, args) {

  # входящие данные
  day     <- args[1]  # дата
  country <- args[2]  # страна

  # проверка введённых параметров
  if ( !grepl('\d{4}-\d{2}-\d{2}', day) ) {

    # Send Custom Keyboard
    bot$sendMessage(update$message$chat_id, 
                    text = paste0(day, " - некорреткная дата, введите дату в формате ГГГГ-ММ-ДД"),
                    parse_mode = "Markdown")

  } else {
    day <- as.Date(day)
    # переводим в формат POSIXtl
    y <- format(day, "%Y")
    m <- format(day, "%m")
    d <- format(day, "%d")

  }

  # страна для проверки
  ## проверяем задана ли страна
  ## если не задана устанавливаем ru
  if ( ! country %in% c('ru', 'ua', 'by', 'kz', 'us') ) {

    # Send Custom Keyboard
    bot$sendMessage(update$message$chat_id, 
                    text = paste0(country, " - некорретктный код страны, возможнные значения: ru, by, kz, ua, us. Запрошены данные по России."),
                    parse_mode = "Markdown")

    country <- 'ru'

  }

  # запрос данных из API
  # компоновка HTTP запроса
  url <- paste0("https://isdayoff.ru/api/getdata?",
                "year=",  y, "&",
                "month=", m, "&",
                "day=",   d, "&",
                "cc=",    country, "&",
                "pre=1&",
                "covid=1")

  # получаем ответ
  res <- readLines(url)

  # интрепретация ответа
  out <- switch(res, 
                "0"   = "Рабочий день",
                "1"   = "Нерабочий день",
                "2"   = "Сокращённый рабочий день",
                "4"   = "covid-19",
                "100" = "Ошибка в дате",
                "101" = "Данные не найдены",
                "199" = "Ошибка сервиса")

  # отправляем сообщение
  bot$sendMessage(update$message$chat_id, 
                  text = paste0(day, " - ", out),
                  parse_mode = "Markdown")

}

# создаём обработчик 
date_hendler <- CommandHandler('check_date', check_date, pass_args = TRUE)

# добаляем обработчик в диспетчер
updater <- updater + date_hendler

# запускаем бота
updater$start_polling()

மேலே உள்ள குறியீட்டு உதாரணத்தை இயக்கவும், 'உங்கள் பாட் டோக்கனை' மாற்றிய பின், நீங்கள் போட்டை உருவாக்கும் போது நீங்கள் பெற்ற உண்மையான டோக்கனுடன் போட்ஃபெதர் (நான் ஒரு போட் உருவாக்குவது பற்றி பேசினேன் முதல் கட்டுரை).

ஆயுதக் களஞ்சியத்தில் ஒரே ஒரு முறையை மட்டுமே கொண்ட ஒரு போட்டை நாங்கள் உருவாக்கியுள்ளோம் check_date, இந்த முறை அதே பெயரின் கட்டளையால் அழைக்கப்படுகிறது.

ஆனால், கட்டளை பெயருடன் கூடுதலாக, இந்த முறைக்கு நீங்கள் இரண்டு அளவுருக்கள், நாட்டின் குறியீடு மற்றும் தேதி ஆகியவற்றை உள்ளிட வேண்டும். அடுத்து, குறிப்பிட்ட நாட்டில் கொடுக்கப்பட்ட நாள் வார இறுதியா, சுருக்கப்பட்ட நாளா அல்லது உத்தியோகபூர்வ உற்பத்தி நாட்காட்டியின்படி வேலை நாளா என்பதை பாட் சரிபார்க்கிறது.

கட்டளையுடன் கூடுதல் அளவுருக்களை ஏற்க நாம் உருவாக்கும் முறைக்கு, வாதத்தைப் பயன்படுத்தவும் pass_args = TRUE செயல்பாட்டில் CommandHandler(), மற்றும் ஒரு முறையை உருவாக்கும் போது, ​​தேவையான வாதங்களுக்கு கூடுதலாக பொட், மேம்படுத்தல் விருப்பமான ஒன்றை உருவாக்கவும் - மதிப்புரு. இந்த வழியில் உருவாக்கப்பட்ட முறை கட்டளை பெயருக்குப் பிறகு நீங்கள் போட்க்கு அனுப்பும் அளவுருக்களை ஏற்கும். அளவுருக்கள் இடைவெளியால் பிரிக்கப்பட வேண்டும்; அவை உரை திசையனாக முறைக்கு அனுப்பப்படும்.

எங்கள் போட்டை துவக்கி சோதனை செய்வோம்.

R இல் டெலிகிராம் போட் எழுதுதல் (பகுதி 2): போட்டில் கட்டளை ஆதரவு மற்றும் செய்தி வடிப்பான்களைச் சேர்த்தல்

பின்னணியில் போட்டை இயக்கவும்

நாம் முடிக்க வேண்டிய கடைசி படி, பின்னணியில் போட்டை துவக்க வேண்டும்.

இதைச் செய்ய, கீழே விவரிக்கப்பட்டுள்ள வழிமுறையைப் பின்பற்றவும்:

  1. R நீட்டிப்பு உள்ள கோப்பில் போட் குறியீட்டைச் சேமிக்கவும். RStudio இல் பணிபுரியும் போது, ​​இது மெனு மூலம் செய்யப்படுகிறது கோப்பு, அணி இவ்வாறு சேமி ....
  2. பின் கோப்புறையில் பாதையைச் சேர்க்கவும், இது நீங்கள் R மொழியை நிறுவிய கோப்புறையில், பாதை மாறி, வழிமுறைகளில் அமைந்துள்ளது இங்கே.
  3. 1 வரியை எழுதும் வழக்கமான உரை கோப்பை உருவாக்கவும்: R CMD BATCH C:UsersAlseyDocumentsmy_bot.R. அதற்கு பதிலாக C:UsersAlseyDocumentsmy_bot.R உங்கள் போட் ஸ்கிரிப்ட்டுக்கான பாதையை எழுதுங்கள். அதே நேரத்தில், வழியில் சிரிலிக் எழுத்துக்கள் அல்லது இடைவெளிகள் இல்லை என்பது முக்கியம் போட் இயங்கும் போது இது சிக்கல்களை ஏற்படுத்தலாம். அதைச் சேமித்து, அதன் நீட்டிப்பை மாற்றவும் txt ஐ மீது பேட்டிங்.
  4. விண்டோஸ் டாஸ்க் ஷெட்யூலரைத் திறக்கவும், இதைச் செய்ய பல வழிகள் உள்ளன, எடுத்துக்காட்டாக, எந்த கோப்புறையையும் திறந்து முகவரியை உள்ளிடவும் %windir%system32taskschd.msc /s. பிற வெளியீட்டு முறைகளைக் காணலாம் இங்கே.
  5. திட்டமிடுபவரின் மேல் வலது மெனுவில், "பணியை உருவாக்கு..." என்பதைக் கிளிக் செய்யவும்.
  6. "பொது" தாவலில், உங்கள் பணிக்கு தனிப்பயன் பெயரைக் கொடுத்து, "அனைத்து பயனர்களுக்கும் இயக்கு" நிலைக்கு மாறவும்.
  7. "செயல்கள்" தாவலுக்குச் சென்று, "உருவாக்கு" என்பதைக் கிளிக் செய்யவும். "நிரல் அல்லது ஸ்கிரிப்ட்" புலத்தில், "உலாவு" என்பதைக் கிளிக் செய்து, இரண்டாவது கட்டத்தில் உருவாக்கப்பட்டதைக் கண்டறியவும் பேட்டிங் கோப்பு மற்றும் சரி என்பதைக் கிளிக் செய்யவும்.
  8. சரி என்பதைக் கிளிக் செய்து, தேவைப்பட்டால், உங்கள் இயக்க முறைமை கணக்கிற்கான கடவுச்சொல்லை உள்ளிடவும்.
  9. அட்டவணையில் உருவாக்கப்பட்ட பணியைக் கண்டுபிடித்து, அதைத் தேர்ந்தெடுத்து, கீழ் வலது மூலையில் உள்ள "ரன்" பொத்தானைக் கிளிக் செய்யவும்.

எங்கள் போட் பின்னணியில் இயங்குகிறது மற்றும் நீங்கள் பணியை நிறுத்தும் வரை அல்லது அது தொடங்கப்பட்ட உங்கள் பிசி அல்லது சர்வரை முடக்கும் வரை வேலை செய்யும்.

முடிவுக்கு

இந்த கட்டுரையில், செய்திகளை அனுப்புவது மட்டுமல்லாமல், உள்வரும் செய்திகள் மற்றும் கட்டளைகளுக்கு பதிலளிக்கக்கூடிய ஒரு முழு அளவிலான போட் எவ்வாறு எழுதுவது என்பதை நாங்கள் கண்டுபிடித்தோம். பெற்ற அறிவு உங்கள் பெரும்பாலான பிரச்சினைகளை தீர்க்க ஏற்கனவே போதுமானது.

அடுத்த கட்டுரையில், மிகவும் வசதியான வேலைக்காக ஒரு விசைப்பலகையை போட்டில் எவ்வாறு சேர்ப்பது என்பது பற்றி பேசும்.

எனக்கு குழுசேரவும் தந்தி и YouTube சேனல்கள்.

ஆதாரம்: www.habr.com

கருத்தைச் சேர்