Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 쿠버네티스
- AWS
- 보안기사
- artifacts
- Autopsy
- kubernetes
- CFReDS
- The Sleuth Kit
- 포렌식
- AWS EKS
- AWS Opensearch
- 보안
- AWS 쿠버네티스
- 해킹
- AWS EKS Udemy
- 정보보안
- isms-p
- 실습
- ISMS-P 인증심사원
- AWS Elasticsearch
- k8s
- iam
- TSK
- SMS-P 인증 기준 안내서 요약
- 정보보안기사
- hacking case
- 정보보안기사 실기
- 모의해킹
- forensic
- ISMS
Archives
- Today
- Total
Always-Try(정보보안 및 일상)
[Python] 카카오톡 오픈채팅방에 D-Day 알림봇 만들기 본문
import gspread
import datetime
from oauth2client.service_account import ServiceAccountCredentials
import time, win32con, win32api, win32gui
import requests
from bs4 import BeautifulSoup
from apscheduler.schedulers.blocking import BlockingScheduler
import time, win32con, win32api, win32gui
from apscheduler.schedulers.background import BackgroundScheduler
import re
# # 카톡창 이름, (활성화 상태의 열려있는 창)
kakao_opentalk_name = '오픈채팅방이름'
# # 디데이 계산
def calculate_dday():
today = datetime.date.today()
test_day = datetime.date(2022,4,23)
d_day = test_day - today
message = "*D-day 알리미*\n정보보안기사 실기시험까지 {}일 남았습니다.".format(d_day.days)
return message
# # 채팅방에 메시지 전송
def kakao_sendtext(chatroom_name, text):
# # 핸들 _ 채팅방
hwndMain = win32gui.FindWindow( None, chatroom_name)
hwndEdit = win32gui.FindWindowEx( hwndMain, None, "RICHEDIT50W", None)
win32api.SendMessage(hwndEdit, win32con.WM_SETTEXT, 0, text)
SendReturn(hwndEdit)
# # 엔터
def SendReturn(hwnd):
win32api.PostMessage(hwnd, win32con.WM_KEYDOWN, win32con.VK_RETURN, 0)
time.sleep(0.01)
win32api.PostMessage(hwnd, win32con.WM_KEYUP, win32con.VK_RETURN, 0)
# # 채팅방 열기
# # # 채팅방 목록 검색하는 Edit (채팅방이 열려있지 않아도 전송 가능하기 위하여)
def open_chatroom(chatroom_name):
hwndkakao = win32gui.FindWindow(None, "카카오톡")
hwndkakao_edit1 = win32gui.FindWindowEx( hwndkakao, None, "EVA_ChildWindow", None)
hwndkakao_edit2_1 = win32gui.FindWindowEx( hwndkakao_edit1, None, "EVA_Window", None)
hwndkakao_edit2_2 = win32gui.FindWindowEx( hwndkakao_edit1, hwndkakao_edit2_1, "EVA_Window", None)
hwndkakao_edit3 = win32gui.FindWindowEx( hwndkakao_edit2_2, None, "Edit", None)
# # Edit에 검색 _ 입력되어있는 텍스트가 있어도 덮어쓰기됨
win32api.SendMessage(hwndkakao_edit3, win32con.WM_SETTEXT, 0, chatroom_name)
time.sleep(1) # 안정성 위해 필요
SendReturn(hwndkakao_edit3)
time.sleep(1)
def job_1():
global old_links, count
open_chatroom(kakao_opentalk_name) # 채팅방 열기
message = calculate_dday()
kakao_sendtext(kakao_opentalk_name, message)
def main():
global count
sched = BackgroundScheduler()
sched.start()
#sched.add_job(job_1, 'cron', second='*/30', id="test_1")
sched.add_job(job_1, 'cron', hour=9, id="test_1")
while True:
time.sleep(30)
#print("Running wait")
if __name__ == '__main__':
main()
기존 2021.10.16 - [Python] - 구글 스프레드 시트 데이터 카카오톡 오픈채팅으로 전송하기를 급하게 수정하다보니 모듈에 일부 필요없는 것들이 섞여 있긴하다. 적당히 걸러서 사용하기를..
'Python' 카테고리의 다른 글
구글 스프레드 시트 데이터 카카오톡 오픈채팅으로 전송하기 (9) | 2021.10.16 |
---|---|
파이썬 자료형 (0) | 2021.07.15 |
Request 모듈 사용법 (0) | 2021.01.26 |
Comments