kkuzil.own@gmail.com

Posted
Filed under 주절주절
2019년 목표

  1. 취하지 않기
  2. 할많하않
  3. 몸무게 80kg 미만
  4. 프로그램 개발/패키징 3개 이상
  5. 웹개발, 응용
2019/01/02 09:10 2019/01/02 09:10
Posted
Filed under 분류없음
다운로드 : kkuTeleBotSetup_v0.9.181218.7z

- 업데이트 내역
  1. 고해상도 환경에서 글자 흐려지는 문제, 기타 UI 보완
  2. 봇 이름 설정 제거
  3. 봇 설정에서 봇 생성, 토큰 가져오기 설명 링크 추가
  4. 기타 코드 정리


2018/12/19 00:05 2018/12/19 00:05
Posted
Filed under Development/Telegram
먼저 현재 PC에 텔레그램이 설치되어 있지 않다면 텔레그램을 설치해 주세요.
모바일 기기에서 사용중인 앱으로도 할수 있지만, 불편할 수 있습니다.

텔레그램 설치 방법 바로가기

예전에 쓴 텔레그램 봇 생성 글이 있습니다.
하지만 업데이트된 텔레그램으로 더 편하게 만들수 있어서 다시 작성하게 되었습니다.

예전 텔레그램 봇 생성, 토큰 가져오기글 바로가기





텔레그램 봇을 만들기 위해 텔레그램 봇파더(BotFather)라는 봇을 친구 추가합니다.
봇파더 친구 추가 방법은 두가지 입니다.

1.  https://telegram.me/BotFather 링크를 통해 접근

위 링크를 클릭해서 접속하면 아래처럼 화면이 나타납니다.
이때 텔레그램 프로그램이 설치 되어 있으면 "Telegram Desktop을(를) 여시겠습니까?" 라고 묻게 되는데 "Telegram Desktop 열기" 버튼을 누르면 프로그램에 봇파더가 연결 됩니다.
사용자 삽입 이미지

아래 처럼 봇파더가 연결됩니다.
사용자 삽입 이미지


2. 텔레그램 내에서 검색을 통해 접근

텔레그램 좌측 상단 텍스트 상자에 "Search"를 클릭 후 @BotFather 라고 입력합니다.
아래처럼 검색 결과가 나오는데, 파란박스의 유사 봇파더에 주의해서 추가해 주세요.
사용자 삽입 이미지

봇파더를 선택후 "START"를 클릭합니다.
사용자 삽입 이미지

봇파더 시작과 함께 사용할수 있는 여러 명령어들이 나오는데...
볼것 없이 "/" 버튼을 클릭, 또는 입력해 주세요.
사용자 삽입 이미지


"/"를 입력하면 여러 명령어들을 선택할 수 있습니다. 그중에서 "/newbot"을 선택해 주세요.
사용자 삽입 이미지


그러면 바로 "봇 이름"을 입력하는 화면이 나옵니다.
사용자 삽입 이미지

이때, 주의 해야할점이 있습니다.

봇 이름 생성 규칙이 있는데 끝에 반드시 ....bot 이라는 글자를 이름 끝에 포함해 주어야 합니다.
아래 빨간 박스처럼 입력하면 봇 이름 규칙을 명시하며 다시 입력하라고 합니다.

그리고 파란 박스처럼 이미 사용중인 봇 이름을 입력하면 이미 있다며 다른걸 입력하라고 합니다.
좋은 봇 이름을 선점하는게 중요한 이유가... 아까 봇파더 친구를 등록하는 두번째 방법에서 봇, 친구 검색을 하게 되는데 이때 봇 이름이 유사 검색 결과에 나열되어 노출되게 됩니다.

자신의 봇이 널리 이용되지 않길 바란다면 상관없이 중복되지 않는 괴랄한 이름으로 지어 주면됩니다.
사용자 삽입 이미지


아래처럼 봇 이름을 괴랄하게 지어주면 단번에 봇 이름 등록을 성공할 수 있습니다.
봇 생성이 성공했다는 안내와 함께 아래 봇 토큰도 얻게 됩니다.

검은 박스에 있는 봇 토큰은 잘 저장해 주세요.
앞으로 자신만의 텔레그램 봇을 통해 여러 기능을 활용할때 반드시 필요한 정보입니다.
사용자 삽입 이미지


만약 봇 토큰을 잃어버렸다면 찾는 방법이 있습니다.
입력창에 "/"입력 또는 버튼을 클릭 후 "/mybots"를 선택해 주세요.
사용자 삽입 이미지

그럼 아래처럼 자신에게 등록된 봇 목록을 확인할수 있습니다.
여기서 토큰을 확인할 봇을 클릭합니다.
사용자 삽입 이미지

그럼 아래처럼 봇 관련 기능이 나열되는데, "API Token"을 클릭하면 잃어버렸던 토큰을 다시 확인 할 수 있습니다.
기타 봇 이름 설정, 이미지 설정을 할 수 있는 기능이 있으니 연구 해보는것도 좋을것 같습니다.
사용자 삽입 이미지

이상 봇 생성과 토큰 가져오는 방법을 알아봤습니다.

2018/12/18 23:35 2018/12/18 23:35
Posted
Filed under Development/Telegram

텔레그램은 다운로드 받아서 설치하지 않고도 웹에서도 사용할 수 있습니다.
https://web.telegram.org/#/im

위 경로로 들어가서 핸드폰 인증만 하면 웹에서 바로 사용이 가능 합니다.
하지만 특별한 이유가 있지 않은 이상 추천하지 않습니다. 매우... 불편합니다.
앞으로 봇을 만들어서 사용할때 테스트 하기도 힘들고 웹브라우저 환경에 따라 동작이 원활하지 않을수 있습니다.

현재 PC에 텔레그램이 설치되어 있지 않다면 정신건강을 위해 아래처럼 다운로드 받아서 설치하도록 하겠습니다.

텔레그램 다운로드 URL
https://desktop.telegram.org/

위 다운로드 경로로 들어간 후 "Get Telegram for Windows"를 클릭해서 다운로드 받습니다.
(다른 운영체제 버전도 있습니다.)

사용자 삽입 이미지
다운로드 받은 파일을 실행합니다.
사용자 삽입 이미지


"OK"를 클릭합니다. 아쉽게도 한국어는 없습니다.
사용자 삽입 이미지


"Next" 버튼을 몇번 누르면 설치가 완료됩니다.
사용자 삽입 이미지
사용자 삽입 이미지
사용자 삽입 이미지


실행화면 입니다. "START MESSAGING"를 클릭합니다.
사용자 삽입 이미지


아래처럼 텔레그램 인증에 필요한 핸드폰 번호를 입력합니다.
만약 텔레그램 계정이 없다면 가입 후 진행하시면 됩니다.

아래 핸드폰 번호를 입력하면 인증 메시지가 기존에 사용중인 텔레그램앱으로 메시지가 옵니다.
인증 번호를 입력하면 바로 메인 화면이 떠버려서 캡쳐를 못했네요;;;ㄷㄷ
사용자 삽입 이미지


텔레그램 설치가 완료되었습니다.
사용자 삽입 이미지












2018/12/18 22:35 2018/12/18 22:35
Posted
Filed under Development/Python
로또의 모든 회차 결과를 가져와서 파일로 저장한다.

매번 모든 회차를 가져오면 번거로우므로,
최초 한번 이후에는 최신 회차만 가져오도록 기능한다.

데이터는 사이트에서 가져온 json 포맷 그대로 라인 단위로 저장한다.

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
32
33
34
35
36
37
38
39
import requests
 
URL_GetLottoNumber = "https://www.dhlottery.co.kr/common.do?method=getLottoNumber&drwNo="
 
def LottoDataAllToFile(sPath, bClear = False):        
    if (bClear == False) and os.path.exists(sPath):
        fData = open(sPath, mode="r+t", encoding="utf-8")
        LdList = fData.readlines()
        i = len(LdList)
        print("로또 데이터 이어서 저장 (최근 %d회차)" % i)
        i += 1
    else:
        fData = open(sPath, mode="wt", encoding="utf-8")
        i = 1
        print("로또 데이터 초기화")
    try:
        nAddCnt = 0
        while True:
            try:
                resp = requests.get(URL_GetLottoNumber + str(i))
                jsResult = resp.json()
                if jsResult["returnValue"!= "success":
                    break
                fData.write(str(jsResult) + "\n")
                nAddCnt += 1
            except Exception as E:
                print(str(E))
                break
            print("%d회차 추가완료.." % (i))
            i += 1
        if nAddCnt > 0:
            print("로또 데이터 가져오기 끝 (새로 가져온 회차 수 : %d, 마지막 회차 : %d)" % (nAddCnt, i - 1))
        else:
            print("새로운 회차 데이터 없음")
    finally:
        fData.close
 
# 함수 실행
LottoDataAllToFile("LottoData.dat")
cs
2018/12/17 23:28 2018/12/17 23:28