• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
질문

기존 파이썬 실행하던 스크립트(polling)를 끄고 실행하려면 어떻게 해야할까요?

th20ry 105

0

0

텔레그램 메시지 보내기를 만지작 만지작 거리다가 

이제는 텔레그램으로 봇을 한번 어떻게 만들어보고자 또 삽질을 하고 있습니다. 

셀레니움 도커에 pip install python-telegram-bot 으로 텔레그램 api를 설치하고 

docker exec -i selenium sudo python3 /selenium/tele_bot_test.py 로 코드를 실행하면 잘 작동합니다만...

문제는 이게 도커가 재부팅하거나 시스템 재부팅을 대비해서(초보라 본의 아니게 서버가 잊을만하면 터집니다 ㅇㅅㅇ;) 

재부팅시에 자동 실행하고자 

crontab  / init.rd / rd.0 등 수정해봤는데, 모두 기존 텔레그램 스크립트가 실행되고 있다고 정상 작동하지 않네요. 

기존 polling 하고 있는 스크립트를 끄고 새 스크립트를 실행해야하는것이 문제인데 

docker exec -i selenium sudo python3 /selenium/tele_bot_test.py 로 하루에 두번 정도 재실행을 시키고 싶은데 그렇게 하려면

1. 스크립트 실행전에 기존 tele_bot_test.py를 다른 crontab으로 꺼준다.

  (방법을 모르겠습니다. py -ef ? | grep 해봐서 리스트 띄우고 지우면 될 것같기도 한데... 에.. 다 실패했습니다 ㅜ.ㅜ;;)

2. polling 되고 있는 스크립트가 자동으로 꺼지게 하거나 stop_polling등을 해본다.(인터넷 찾아본대로 몇가지 해봤는데 안먹힙니다 ㅜ.ㅜ;;)

 

혹시 해결방법 아시는분 계실까요?

혹시 몰라 기존 코드 첨부하자면 tele_bot_test.py는 아래와 같습니다. 

 

import telegram

from telegram.ext import Updater

from telegram.ext import MessageHandler, Filters

import re

 

#Environment###########################

chat_id=""

token=""

file_path = "/selenium/tele_bot_url"

naver = "naver"

pattern_naver = "[n][a][v][e][r]"

#####################################

 

# updater

updater = Updater(token=token, use_context=True)

dispatcher = updater.dispatcher

bot = telegram.Bot(token) #bot.sendMessage(chat_id=chat_id, text="")

updater.start_polling()

 

def handler(update, context):

    user_text = update.message.text # 사용자가 보낸 메세지를 user_text 변수에 저장합니다.

    def is_url_valid(url):

        REGEX_URL = '[(http(s)?):\/\/(www\.)?a-zA-Z0-9@:%._\+~#=]{2,256}\.[a-z]{2,6}([-a-zA-Z0-9@:%_\+.~#?&//=]*)'

        output = re.fullmatch(REGEX_URL, url)

        if output != None:

          return True

    def respond(file_path, type):

        bot.send_message(chat_id=chat_id, text=f"{type}의 url을 저장합니다.") # 답장 보내기

        f = open(f"{file_path}/{type}_url.txt", 'a')

        f.write(user_text + "\n")

        f.write("0" + "\n")

        f.write("0" + "\n")

        f.close()    

    if is_url_valid(user_text) == True:

        elif re.search(pattern_naver, user_text) != None:

                respond(file_path, naver)      

        else:

           bot.send_message(chat_id=chat_id, text= "올바른 URL 을 입력하십시오")        

    else:      

      if user_text == "/start":

        bot.send_message(chat_id=chat_id, text= "텔레그램 봇이 시작됐어유")

      elif user_text == "/help":

        bot.send_message(chat_id=chat_id, text= " 추가하고자 하는 URL 을 입력하십시오")

        bot.send_message(chat_id=chat_id, text= "네이버 웹툰 URL만 지원합니다.")

      else:

        bot.send_message(chat_id=chat_id, text= "사용법을 모른다면 /help 를 입력하십시오")

 

echo_handler = MessageHandler(Filters.text, handler)

dispatcher.add_handler(echo_handler)

 

신고공유스크랩
0

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 제목 글쓴이 날짜 조회 추천
서브 미니PC Proxmox로 집합시켰습니다.. 10 EXP 2일 전21:58 328 +1
나만의 구독 관리하기 Wallos 서버 구축하기. 8 달소 4일 전17:19 308 +2
네트워크 구성도와 상세 스펙 공유 3 맘맘 4일 전16:17 298 +1
3740
image
달소 21.08.09.12:01 100 0
3739
image
컴포즈커피 22.06.30.19:57 100 +1
3738
image
마포링 23.01.31.12:59 100 0
3737
normal
리얼리2 22.05.10.09:10 101 +1
3736
normal
콜무 22.08.30.09:28 101 0
3735
normal
DarkAcid 21.11.05.03:08 101 +1
3734
image
달소 21.03.03.22:45 101 +1
3733
normal
jerry80 23.08.08.10:06 101 0
3732
normal
Kep1 23.08.31.23:16 101 0
3731
image
매화 23.12.13.15:57 101 0
3730
image
지나가던행인 24.03.11.23:19 101 0
3729
normal
하늘위의하늘 21.08.09.10:24 102 0
3728
normal
섭린이 22.02.12.17:06 102 +1
3727
normal
SNFAIUWQ 24.05.11.21:40 102 0
3726
image
달소 22.08.19.12:01 103 0
3725
image
달소 21.07.10.17:29 103 0
3724
image
냥냥트래기 23.02.10.23:04 103 0
3723
image
게르노 24.04.25.16:08 103 0
3722
normal
하늘위의하늘 21.07.06.14:26 104 +1
3721
image
달소 21.01.05.17:14 104 0