이번 포스팅에선 매일 내가 원하는 시간에 슬랙 봇이 메시지를 보내도록 해보겠습니다.
그러기 위해선 아래와 같은 순서가 필요합니다.
1. 자동부팅
2. 자동로그인
3. 작업스케줄러 등록
- 슬랙 알림
- 컴퓨터 자동종료
** 이전 포스팅에서 사용한 코드를 일부 수정하였습니다.
- 공휴일엔 알림을 보내지 않고 평일에만 알림을 보내도록 말이죠.
- 맨 아래에 있으니 참조하시면 되겠습니다.
1. 자동부팅
데스크탑만 가능하며, 컴퓨터의 전원이 공급되고 있는 상태여야 합니다. 멀티탭의 전원을 꺼버렸다면 작동하지 않겠죠?
컴퓨터 처음 부팅시 바이오스 세팅 화면을 들어가야 합니다. 컴퓨터 처음 부팅할 때 특정 키를 연타해줍니다.
제 컴퓨터는 F2 입니다.
들어가 보면 'Wake System from S5' 가 있습니다. (없더라도 비슷한 문구가 있을겁니다.) Enabled 로 체크해 주시고, 원하는 시간대를 설정해 줍니다. 전 16시로 하겠습니다.
상태를 세이브하고 재부팅 하면 됩니다. 되는지 궁금하신 분들은 시간을 한 10분 정도 뒤로 맞춰두고 확인해 보세요.
2. 자동로그인
2가지 방법이 있습니다. 직접 세팅하는 방법, 타 프로그램의 힘을 빌리는 법 입니다. 전 프로그램 써서하는게 더 간편하여 추천합니다. 그래도 직접 세팅하는 것도 알고 있으시면 좋을 것 같네요.
(1) 직접 세팅 ( 사전세팅 (a) → 자동로그온 세팅 (b) )
(a). 시작 → 설정 (제어판) → 로그인 옵션 → Microsoft 계정에 대한 Windows Hello 로그인 필요 '끔'
(b). 시작 → netplwiz 입력 → 체크 해제 : 사용자 이름과 암호를 입력해야 이 컴퓨터를 사용할 수 있음 → 확인.
(이 때 아이디 / PW : 컴퓨터 아이디 / PW 로 해도 되는 경우가 있고, 마이크로소프트 아이디 / PW 로 해야 하는 경우가 있습니다. 어떤게 맞는지는 일일이 로그인을 해서 확인하셔야 합니다.)
(2) 타 프로그램의 힘을 빌리는 법 - 추천!
아래의 사이트에 접속하여 파일을 다운받습니다.
https://docs.microsoft.com/en-us/sysinternals/downloads/autologon
Autologon - Windows Sysinternals
Bypass password screen during logon.
docs.microsoft.com
파일의 압축을 푼 뒤, Autologon64.exe 를 실행시킵니다.
실행시키면 아래와 같은 화면이 뜰 텐데, 여기에 컴퓨터 혹은 마이크로소프트 ID / PW 를 입력해줍니다.
Domain 은 건드릴 필요 없습니다.
맞다면 왼쪽, 틀리다면 오른 쪽과 같은 화면이 뜹니다.
이제 자동로그인이 되는걸 확인하실 수 있습니다.
3. 작업스케줄러 등록
시작 → 작업 스케줄러를 검색하여 들어갑니다. 작업 스케줄러 라이브러리 → 빈 곳 우클릭 → 새 작업 만들기 순서로 들어갑니다.
일반 탭에서 작업 이름, 설명 적어주시고 아래에 '가장 높은 수준의 권한으로 실행' 에 체크해 줍니다.
트리거 탭에선 새로 만들기를 누르셔서 언제 이 작업이 실행되게 할지 세팅해 줍니다. 전 매일 오후 6시로 하겠습니다.
동작도 새로만들기 누르신 다음,
프로그램/스크립트 : 파이썬 실행파일 경로
인수 추가 : 실행시키고자 하는 파일
시작 위치 : 실행시키고자 하는 파일의 경로를 지정해 줍니다.
* 보통 파이썬 실행파일 경로 : C:\Users\사용자이름\AppData\Local\Programs\Python\Python버전\python.exe
여기서 '사용자이름'과 'Python버전' 만 다를 것입니다.
전 C:\Projects\Slack_notice 폴더의 Slacker_notices.py 를 실행시키는 것으로 하였습니다.
여기까지 하고 확인 버튼을 눌러줍니다. 그럼 만든 새 작업이 등록되고, 준비 상태에 있는걸 알려줍니다.
이제 만든 작업 우클릭 → 실행을 눌러줍니다. 실행을 누르면 즉시 실행을 한번 시켜주는데, 원하는대로 실행되셨는지 확인합니다.
이제 컴퓨터 자동종료 작업스케줄러 등록을 합니다. 전 파이썬으로 파일 하나를 만들어서 등록하겠습니다.
코드는 아래와 같습니다. 강제종료하는 코드입니다.
import os
os.system('shutdown -s -f')
이제 위에서 했던 것과 동일하게 작업스케줄러를 등록합니다.
전 오후 7시에 등록하겠습니다.
마지막으로, 이전 포스팅에서 사용한 코드를 일부 수정해 보겠습니다.
주말 빼고 평일에만 사용할 수 있게끔요.
전 포스팅은 아래 참조하세요.
[Python] 슬랙(Slack) 알림봇 설정하여 매일 증시 알림 받기 (3) - 2
지난번에 이어, 이번엔 앞선 포스팅에서 만든 함수((3) - 1)를 slack 알림봇에 적용하는 걸 해보겠습니다. 완성된 함수 KospiRead() 를 뒤로 하고, 슬랙봇에게 메시지를 보내는 파일로 돌아옵니다. 잘
dragon1-honey1-wayfarer.tistory.com
# requests 와 json 을 활용하여 slack bot 조작하기
from Slacker_notice_functions import *
import requests
import json
from datetime import datetime
def notice_message(token, channel, text, attachments):
attachments = json.dumps(attachments)
response = requests.post("https://slack.com/api/chat.postMessage",
headers={"Authorization": "Bearer "+token},
data={"channel": channel, "text": text ,"attachments": attachments})
Token = 'xoxb-' # 자신의 Token 입력
image, trend, today_value = KospiRead()
weekdays_dict = {
0 : '월',
1 : '화',
2 : '수',
3 : '목',
4 : '금',
5 : '토',
6 : '일'
}
weekdays = datetime.weekday(datetime.today())
if weekdays == 5 or weekdays == 6: # 토요일 일요일은 알림을 주지 않는다.
pass
else: # 평일엔 알림을 준다.
today_date = datetime.today().strftime('%Y-%m-%d')
str1_title = 'KOSPI, ' + today_date + ' (' + weekdays_dict[weekdays] + ')'
buySell = '개인 : ' + trend[0] + ', 외국인 : ' + trend[1] + ', 기관 : ' + trend[2] + '\n'
programBuySell = '차익 : ' + trend[3] + ', 비차익 : ' + trend[4] + ', 총합 : ' + trend[5] + '\n'
kospi_value = today_value[0] + today_value[1] + '\n'
total_text = kospi_value + buySell + programBuySell
if today_value[1].find('+') != -1: # + 인 경우,
today_color = '#ff0000' # 빨강색
else:
today_color = '#0000ff' # 파랑색
attach_dict = {
'color' : today_color,
'author_name' : '오늘의 증시 알림',
'title' : str1_title,
'title_link' : 'http://finance.naver.com/sise/sise_index.nhn?code=KOSPI',
'text' : total_text,
'image_url' : image
}
attach_list=[attach_dict]
notice_message(Token, "#stock_notice", str1_title, attach_list)
이것으로,
컴퓨터가 오후 4시에 스스로 켜져서 슬랙봇이 평일에만 매일 오후 6시에 KOSPI 정보를 가져와 알려주고, 컴퓨터가 7시에 자동으로 꺼지는 알림봇 시스템을 완성시켰습니다.
추가적으로 공공데이터 시스템의 특일데이터 API 를 읽어온다면 구체적인 주식개장날에만 알림봇을 활성화 시키는 시스템을 만들 수 있을 것입니다. 기회가 된다면 포스팅 해보도록 하겠습니다.
'프로젝트 > [ed]_슬랙봇_증시알림' 카테고리의 다른 글
[Python] 슬랙(Slack) 알림봇 설정하여 매일 증시 알림 받기 - fin (0) | 2021.10.13 |
---|---|
[Python] 슬랙(Slack) 알림봇 설정하여 매일 증시 알림 받기 (5) (0) | 2021.10.12 |
[Python] 슬랙(Slack) 알림봇 설정하여 매일 증시 알림 받기 (3) - 2 (3) | 2021.09.25 |
[Python] 슬랙(Slack) 알림봇 설정하여 매일 증시 알림 받기 (3) - 1 (1) | 2021.09.24 |
[Python] 슬랙(Slack) 알림봇 설정하여 매일 증시 알림 받기 (2) (0) | 2021.09.22 |