프로그래밍
-
교내 SW 아이디어 대회 [4] 빌보드 차트 제공프로그래밍/개발 2018. 6. 20. 21:37
background-image를 넣고 글씨 크기도 조금 조정했다. 사용자들이 검색할 때 차트를 참고하면 좋을 것 같아서 실시간 차트를 하나 넣고 싶어졌는데, 유튜브 차트를 알아보다가 API가 없는 것 같아서 billboard-charts를 사용해서 빌보드 껄로 넣었다. pip3 install billboard.py https://github.com/guoguo12/billboard-charts pip로 쉽게 설치할 수 있다. import billboard def get_billboard_chart(top): # top decides list size(int type, max 100), for example top==10 returns top 10 songs in chart chart = [ [str(so..
-
교내 SW 아이디어 대회 [3] 버그 패치 및 저장 구현프로그래밍/개발 2018. 6. 20. 00:47
버그 패치 'DPR LIVE'의 'Playlist'로 검색하면 검색 결과가 아예 나오지 않는 것을 확인했다. API에 보내고 받는 응답을 체크해봤지만 계속 KeyError가 났는데, 디버깅 결과 검색 결과에 유튜브 플레이리스트 항목이 포함되어 있어서 나는 에러였다는 것을 알아냈다. 일반 동영상은 videoId에 키가 있는 반면 플레이리스트는 playlistId로 나오기 때문이였다. video_data_list = [] for idx in range(results): try: video_data = [] # 비디오 id, 제목, 채널, 썸네일 순 리스트 video = data['items'][idx] video_data.append(str(video['id']['videoId'])) # (생략) video..
-
교내 SW 아이디어 대회 [2] 노래 검색 기능 구현하기프로그래밍/개발 2018. 6. 19. 21:53
아까 제작한 모듈을 사용해서 Python Flask로 웹앱을 만들었다. 메인페이지에서 검색어를 입력하고 Search 버튼을 클릭하면 유튜브 검색결과가 표시된다.파일 날라가버렸다 아오 빡쳐,,, keyword = request.args.get('keyword') result_list = search_youtube(keyword) 위 코드 스니펫처럼 검색어(keyword)는 GET 방식으로 전달되고, request.args.get()으로 받아서 사용된다. 지금은 프론트엔드도 부트스크랩으로 대충 만들었지만(그래도 백엔드는 검색결과가 없거나 잘못된 접근에 대한 에러 처리도 있고 나름 괜찮다), 일단 기본적인 기능부터 구현하고 점차 수정해 나가야겠다. 현재는 표시되는 리스트의 노래를 눌러 해당 뮤직비디오의 유튜브..
-
교내 SW 아이디어 대회 [1] 유튜브 API로 검색결과 구하기프로그래밍/개발 2018. 6. 19. 17:40
셤이 2주인가 남았는데 학교에서 뜬금 SW 아이디어 대회를 한다! 와아아 수업시간에 뭐 만들거나 할 때 반 애들한테 신청곡 받아서 쌤들이 음악 틀어주시는데 그럴 때 하나씩 의견 받아서 검색해서 플레이리스트를 만들어야 하니까 매우 번거로워 하시는 경우가 많다. 이번 주 월요일 미술 시간에도 이런 일이 있어서 아예 선생님께서 반별로 플레이리스트를 만드셨다. 다음 시간부터는 따로 신청곡을 받아오라고 하셨는데 이렇게 하면 선생님께서 직접 음악을 추가하셔야 하고, 아이들도 의견을 모아서 리스트를 만들어야 하므로 좀 비효율적이다. 물론 나도 노래를 엄청 좋아하므로 이럴 때 선생님과 반 친구들을 돕기 위해서 사용할 수 있는 웹앱을 만들어보려고 한다. 활용도나 아이디어도 나름 ㄱㅊ고 잘만 하면 될 것 같다. impor..
-
블록체인 구조 만들기프로그래밍/개발 2018. 6. 15. 00:35
https://medium.com/crypto-currently/lets-build-the-tiniest-blockchain-e70965a248b 위 글을 참고해서 파이썬으로 블록체인 구조를 구현해 보았다. 블록 아래 코드의 블록체인 구조의 한 블럭은 인덱스(index), 생성 시간(timestamp), hex encoding된 형태의 데이터(data), 이전 블럭의 해시값(prev), 스스로의 해시값(hash)을 가진다. 코드 import hashlib import datetime import binascii class Block: def __init__(self, index, timestamp, data, prev): self.index = index self.timestamp = timestamp ..