비트코인 픽 사이트와 연동해서 텔레그램 알림을 주는 프로그램을 개발했습니다

프로그래밍/Python 2021. 10. 11. 02:16

비트코인 종목 추천 사이트와 연동하여 종목 추천이 이루어지는 오전 12:20, 오전 9시 정해진 시간에 따라 사이트에서 데이터를 가져와서 텔레그램으로 알림을 주는 프로그램입니다. 원래는 시간당 n만원씩 받고 외주 받는 형태로 진행하는데 같이 투자 진행하시는 분이 수익 내는데 도움도 많이 주시고 하셔서 특별히 공짜로 만들어드렸습니다 ㅎㅎ 원리는 간단하게 사이트에 자동으로 로그인한뒤 일정시간마다 requests를 보내고 나오는 response를 정리해서 Telegram 봇에 채팅을 보내도록 시키는 형태입니다. 일정시간마다 실행하는건 집에 24시간 돌아가는 저전력 NAS서버 시놀로지 작업 스케줄러를 이용해서 실행합니다. 아무래도 시놀로지가 리눅스 기반이라 크롬 드라이버는 사용이 안되서 Python의 reque..

Article Thumbnail
[Python] smi 자막 특정 위치부터 싱크 조절하기

프로그래밍/Python 2021. 9. 22. 02:00

from easysmi import * #단일 파일 처리 folder = 'C:/자막/' filename = '[SubsPlease] Tokyo Revengers - 02 (1080p) [B66CEAA7].smi' p = parse_smi(folder + filename) search_line = find_line_by_text(p, "sub by") if search_line != -1: s = sync_shift(p, search_line, -10000) s = sync_shift(s, 0, 1300) make_dirs(folder + 'output') #make output folder new_path = folder + "output/" + filename file_save(new_path, s)..

Article Thumbnail
[Python] 인코딩 오류 없이 텍스트 파일 읽기

프로그래밍/Python 2021. 9. 17. 20:57

def read_file(path): f = open(path, "r") line = f.readline() data = "" while line: data += line line = f.readline() f.close() return data smi 자막 파일을 열어서 싱크 조절을 위해 다음과 같이 코딩하고 즐거운 마음으로 실행을 하였습니다. UnicodeDecodeError: 'cp949' codec can't decode byte 0x01 in position 1: illegal multibyte sequence 어김없이 등장하는 오류.. 인터넷에 검색해보니 수많은 예제가 뜨네요. 인코딩이 안 맞아서 안 열리나 봅니다. 파이썬은 기본적으로 파일이 ANSI로 작성되었다고 가정하고 cp949라는 코덱..

Article Thumbnail
동영상 자막 이름 맞추기, 일괄변경하기 (E.Z Subtitles V3)

프로그래밍/C# 2021. 9. 9. 00:39

애니메이션, TV쇼에서 자막과 파일이 따로 있으면 이름을 맞춰 줘야하는데 DarkNamer 같은 유틸리티로 할 수 있으나 조금 번거로워지는 경우가 있습니다. 그래서 동영상과 자막을 등록해두면 원클릭으로 매칭시켜주는 프로그램을 개발했습니다. 인터넷에 이와 같은 기능의 여러 프로그램이 배포되있긴 합니다만 바이러스가 있다던지.. GUI가 좀 마음에 안든다던지... 특히 정렬이 원하는 대로 안되는 경우(중요)가 있어서 직접 제작하게 됬습니다. 프로그램 장점 naturalSort 알고리즘이 적용되어 있어 윈도우 탐색기에선 제대로 정렬이 된걸로 보이는데 프로그램으로 옮기면 저렇게 정렬이 원하는 대로 안되는걸 최소화 합니다. (쉽게 말해서 윈도우 탐색기처럼 정렬을 시킨다 보면 됩니다.) 또한 이래도 정렬이 되지 않는..

Article Thumbnail
[TriggerReactor] 마인크래프트 트리거 리액터 오른쪽 클릭 시 아이템 사용 예제

프로그래밍/기타 2021. 9. 2. 01:09

IF event.getAction().name() == "RIGHT_CLICK_AIR" //#MESSAGE "허공에 오른쪽 클릭입니다. (사용)" IF event.getItem().getType().name() == "PLAYER_HEAD" //player.getInventory().remove(player.getItemInHand()); player.getInventory().getItemInHand().setAmount(player.getInventory().getItemInHand().getAmount()-1); #MESSAGE "&6플레이어 머리를 사용하여 버프를 얻었습니다." #SOUND player.getLocation(), "ENTITY_PLAYER_BURP", 1.0, 1.0 #ACTION..

Article Thumbnail
[Python] 가상화폐 트레이딩 봇 제작중

프로그래밍/Python 2021. 8. 31. 02:47

요즘 아는 분들과 파이썬을 이용해 가상화폐 트레이딩 봇 프로젝트를 진행중입니다. 차트좀 볼줄 아시는분 + 컴퓨터 공학과 학부생분과 같이 수익률을 위해 프로젝트를 진행하고 있습니다. 우선 전략은 변동성 돌파 + ma N일선 돌파를 기반으로 하여 공포/탐욕 수치, 시가총액, 온체인 지표 등 다양한 보조지표로 정확도를 올려볼 생각입니다. 사실 이걸 만들게 된게 API 지수로 가상화폐 픽을 제공하는 사이트가 있던데 사용하신 분에 따르면 이게 적중률이 높은 편이라고 해서 어떤식으로 작동하는지 궁금해서 제작을 시작하게 되었습니다~ 끝까지 잘 마칠 수 있을진 모르겠지만 변동성 돌파가 과연 유의미한 결과를 가져다줄지도 궁금하네요 ^^

Article Thumbnail
[Python] 구글 코랩(Google Colaboratory)에서 Selenium 사용하기

프로그래밍/Python 2021. 8. 31. 01:27

안녕하세요 파일입니다. 오늘은 Google Colab에서 Selenium을 사용하는 방법에 대해 포스팅 하겠습니다. 구글 코랩은 Jupyter NoteBook과 비슷한 방식으로 실행되는데 저도 정확하게 아는 것은 아니지만, 서버가 실행되서 그 웹페이지에서 코딩을 하고 거기서 코딩을 하면 서버가 커널을 실행해 코드를 연산합니다. 참고 : https://tobefreein2040.tistory.com/10 3. Jupyter Notebook 안녕하세요. 자꿈두입니다. 오늘 공부할 내용은 Jupyter Notebook입니다. Jupyter Notebook? Anaconda를 설치하게 되면 자동으로 설치되는 응용 프로그램중 하나입니다. Jupyter Notebook을 사용하게 되면요 1. 코 tobefreein..

Article Thumbnail
Excel을 통한 PC SMS 전송 프로그램을 개발했습니다

프로그래밍/C# 2021. 8. 23. 19:35

안녕하세요 파일입니다. 오늘은 제가 개발한 PC SMS 자동 전송 프로그램에 대해 소개해보려고 합니다. 업무 자동화를 위해 C#으로 개발되었으며 Excel 파일을 통해 특정 다수에게 SMS를 대량으로 간편하게 전송할 수 있습니다. What was used? 본 프로그램은 PushBullet 어플과 연동하여 제작되었습니다. PC에서 PushBullet ApI 서버에 API Key와 메세지를 전송할 전화번호, 내용을 전송(POST)하면 PushBullet 서버에서 API Key에 연결된, 해당되는 스마트폰에 설치된 PushBullet App에 신호를 보내고 PushBullet App이 스마트폰을 제어해 메세지를 보내는 구조로 구성되어 있습니다. 메세지를 보내는 과정에서 PushBullet이 단대단 암호화를 ..

Article Thumbnail
[C#] DataGridView Foucs 초기화 & 데이터 크기에 맞춰서 Column 자동 설정

프로그래밍/C# 2021. 7. 23. 19:21

데이터 크기에 맞춰서 Column 자동으로 확장시키기 /// /// 데이터 크기에 맞춰서 Column을 자동 정렬합니다. /// /// private void DataGridView_AutoResize(DataGridView dt) { for (int i = 0; i < dt.Columns.Count - 1; i++) { dt.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells; } dt.Columns[dt.Columns.Count - 1].AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill; for (int i = 0; i < dt.Columns.Count; i++) { int colw = dt.C..

Article Thumbnail
[Baekjoon] 5430번: AC

프로그래밍/BaekJoon 2021. 7. 20. 00:43

https://www.acmicpc.net/problem/5430 5430번: AC 각 테스트 케이스에 대해서, 입력으로 주어진 정수 배열에 함수를 수행한 결과를 출력한다. 만약, 에러가 발생한 경우에는 error를 출력한다. www.acmicpc.net 문제 설명 새로운 언어 AC를 만들었다고 합니다. R은 배열에 있는 숫자의 순서를 뒤집는 명령어고 D는 첫 번째 숫자를 버리는 함수라고 합니다. 명령어, 배열크기, 배열이 각각 주어졌을 때 명령어가 실행된 후 배열의 상태를 출력하는 문제입니다. 예를 들어 RDD라고 명령어가 주어졌으면 주어진 배열에 뒤집기, 첫 번째 숫자 삭제, 첫 번째 숫자 삭제를 수행한 후 배열에 남아있는 요소를 출력하면 됩니다. 첫 번째 숫자를 뽑을 수 없으면 error를 출력합니..

Article Thumbnail
[Baekjoon] 10989번: 수 정렬하기 3

프로그래밍/BaekJoon 2021. 6. 9. 02:30

https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 숫자가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제 설명 들어온 수를 다음과 같이 정렬해서 출력하는 문제입니다. 처음엔 파이썬으로 풀었고 리스트에 입력받고 리스트.sort() 로 정렬한뒤에 for문으로 출력하면 될 간단한 문제인줄 알았으나... 자세히 보면 메모리 제한이 8 MB 입니다. 수 정렬하기 2가 메모리 제한이 256MB로 기억하는데 메모리 제한이 32배나 차이가 납니다. 일단 확실한건 입력 데이터 N의 갯수 범위가 (1 ≤ N ≤ 10,000,000..

Article Thumbnail
[Baekjoon 파이썬] 1929번: 소수 구하기

프로그래밍/BaekJoon 2021. 6. 3. 17:14

https://www.acmicpc.net/problem/1929 1929번: 소수 구하기 첫째 줄에 자연수 M과 N이 빈 칸을 사이에 두고 주어진다. (1 ≤ M ≤ N ≤ 1,000,000) M이상 N이하의 소수가 하나 이상 있는 입력만 주어진다. www.acmicpc.net 문제 설명 숫자 2개를 입력받고 그 숫자의 범위내에 해당하는 소수를 모두 출력하는 문제입니다 ex) 3 10 으로 입력 => 3이상 10이하 내에 있는 소수 모두 출력 => 3,5,7 solved.ac에서 티어 실버2 에 분류되어 있는 문제이며 시간 제한은 2초 인것으로 보아 에라토스테네스의 체 알고리즘을 적용시켜야 하는것으로 유추해볼 수 있습니다. Python에서 간단한 소수판별 방법 def check_prime(n): if(..

Article Thumbnail
[Baekjoon C언어] 10250번: ACM 호텔

프로그래밍/BaekJoon 2021. 5. 29. 00:25

https://www.acmicpc.net/problem/10250 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net 문제 설명 이번 문제는 설명이 상당히 길었습니다. 문제를 푸는 것보다 문제를 이해하는 게 더 걸렸네요.. 간단히 문제에 대해 설명하자면 손님이 정문에서 나와서 엘리베이터를 타서 방을 들어가려고 한다고 합니다. 손님은 정문에서 나와서 엘리베이터 걸어가는데 걸리는시간, 엘리베이터 이동하는 거리는 전부 신경 쓰지 않고 엘리베이터를 타고 나올때 오로지 가까운 방에 들어가는 걸 선호합니다. 예..

Article Thumbnail
C언어 변수 여러개 선언, 초기화 할때 주의점

프로그래밍/C 2021. 5. 19. 03:49

C언어에서 자료형이 같은 변수를 여러개 선언할땐 콤마(,)로 구분지어 선언합니다. int a,b; 이것을 0으로 한꺼번에 초기화 할땐 어떻게 해야할까요? 저는 처음에 이런식으로 진행했습니다. #include int main(){ int a, b = 0; printf("%d %d", a,b); return 0; } 이렇게 쓰고 혹시 두개가 초기화가 제대로 안됬을까 a,b도 출력해봤더니 0 0으로 정상 출력되어서 아무런 의심도 하지 않았죠. 이런 생각으로 백준을 푸는데 너무 쉬운문제가 통과를 안하는겁니다.. https://www.acmicpc.net/problem/5596 5596번: 시험 점수 대한고등학교에 재학 중인 민국이와 만세는 4과목(정보, 수학, 과학, 영어)에 대한 시험을 봤습니다. 민국이와 만..

Article Thumbnail
[Baekjoon 파이썬] 14652번: 나는 행복합니다~

프로그래밍/BaekJoon 2021. 5. 17. 22:51

https://www.acmicpc.net/problem/14652 14652번: 나는 행복합니다~ 첫째 줄에 관중석의 크기를 나타내는 N, M과 잃어버린 관중석 번호를 나타내는 K가 주어진다. (1

Article Thumbnail
[Python] 문제 풀이 코드 저장용

프로그래밍/Python 2021. 5. 8. 19:25

#------------------------------------ 2일차 # 연습문제 01 x = int(input("x: ")) y = int(input("y: ")) print("두수의 합:", x+y) print("두수의 차:", x-y) print("두수의 곱:", x*y) print("두수의 평균:", (x+y)/2) print("큰수: ", max(x,y)) print("작은수: ", min(x,y)) # 연습문제 02 r = int(input("r: ")) h = int(input("h: ")) print("원기둥의 부피:", 3.141592 * r**2 * h) # 연습문제 04 import math x1 = int(input("x1: ")) y1 = int(input("y1: ")) x..

[Python] 디시인사이드 갤러리 최신글 이미지 실시간 크롤링

프로그래밍/Python 2021. 5. 8. 18:57

import requests from bs4 import BeautifulSoup import time from os.path import getsize def image_download(BASE_URL): # 헤더 설정 (필요한 대부분의 정보 제공 -> Bot Block 회피) headers = { "Connection" : "keep-alive", "Cache-Control" : "max-age=0", "sec-ch-ua-mobile" : "?0", "DNT" : "1", "Upgrade-Insecure-Requests" : "1", "User-Agent" : "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Geck..

Article Thumbnail
[C#] 대량의 엑셀 파일 빠르게 읽어오기

프로그래밍/C# 2021. 2. 24. 03:33

인터넷에 C#으로 엑셀 파일을 읽어와 DataGridView에 뿌리는 소스는 많으나 대부분 Com 오브젝트나 OpenXML을 이용한 방법들이고 방법도 이중 for문을 이용하는게 많아서 datagridview에 하나하나 뿌리면 속도가 끔찍합니다. 시간복잡도가 ${O(N^2)}$... 거기다가 DataGridView 자체도 엄청나게 느린데 만약 몇만라인이 되는 엑셀파일을 읽는다? 설명은 생략하기로 하고... 아주 쉽게 대량(큰)의 엑셀파일을 읽는 방법을 알아보겠습니다. Pre-Install Nuget Package에서 ExcelDataReader와 ExcelDataReader.DataSet을 설치합니다. Source Code string fname = ""; OpenFileDialog fdlg = new O..

Article Thumbnail
[Python] LSTM 미래 주가 분석 참고글

프로그래밍/Python 2021. 2. 4. 23:36

www.youtube.com/watch?v=H6du_pfuznE LSTM을 이용해 주식 그래프의 경향성을 학습하고 다음 30일을 예측하는 코드입니다. (일단위 데이터 기준) 보통 인터넷에 LSTM을 이용해 비트코인이나 주식 그래프를 학습하는 코드들은 이전 데이터를 기준으로 하는 predict에 가까웠지만 이건 다음 50개의 경향성을 forecasting 하는 코드입니다. 아래의 영상은 간단하게 LSTM을 이해할 수 있는 참고 영상입니다. www.youtube.com/watch?v=sG_WeGbZ9A4&t=222s

Article Thumbnail
JupyterLab에서 사용자 지정 단축키 Keyboard ShortCuts 설정하기

프로그래밍/Python 2020. 12. 13. 01:58

Jupyter Notebook보다 진보한 Jupyter lab을 쓰면서 조금 불편한 점을 느꼈습니다. 원하는 키보드 단축키가 잘 작동하지 않았다는 점인데요. F2를 눌러서 파일이름을 바꾼다던가.. 현재 파일이름을 바꾼다던가 하는게 잘 안되더라구요. 인터넷에 있는 글들은 죄다 기본 단축키에 대한 정리지 설정하는 방법은 나와있지 않았습니다. 확인해보니 Jupyterlab 에서 따로 설정을 해줘야 하는것이였습니다. Jupyterlab에서 Settings -> Advanced Settings Editor로 이동해 오른쪽 Users Preferences 부분에 뭔가 적혀있으면 공란으로 만들고 아래처럼 Json 형식으로 작성해주시면 됩니다. { "shortcuts": [ { "command": "filebrowse..

Article Thumbnail