peremen / noah3k Goto Github PK
View Code? Open in Web Editor NEWKAIST School of CS BBS system
KAIST School of CS BBS system
== 필요한 파이썬 모듈 == === easy_install로 설치 가능 === * web.py (웹 프레임워크) * mako (템플릿 엔진) * PIL (썸네일 생성) * python-magic (첨부 파일의 MIME 형식 인식) * postmarkup (BBCode 프로세서) ** postmarkup은 자체 패치를 여러 번 했으므로, 차후 소스 코드에 포함시킬 예정. * Babel (번역 메시지 추출을 위함) === 배포판 패키지로 설치해야 함 === * python-mysqldb (데비안 계열 기준) == 번역 메시지 컴파일 == gettext의 결과물 mo 파일은 기본적으로 포함하지 않는다. i18n/(로캘)/LC_MESSAGES/messages.mo 파일에 메시지를 저장한다. * pot 파일 업데이트 방법: 소스 루트에서 pygettext -a -v -d messages -o i18n/messages.pot *.py * 이후 할 일: msgmerge *.po messages.pot > *.po.new && mv *.po.new *.po * 메시지 파일 컴파일: msgfmt *.po -o i18n/*/LC_MESSAGES/message.mo * 메시지 파일이 없으면 오류 메시지는 전부 영어로 표시됨 === non-UNIX 계열에서의 구동 === * python-magic 모듈은 리눅스에 있는 mime.magic 데이터를 필요로 한다. (사용 불가능한 경우 썸네일 생성이 안 됨) * crypt 모듈은 유닉스 계열에서만 작동한다. (사용 불가능한 경우 noah1k 로그인이 불가능) == 코딩 레이아웃 == get - write - edit - delete - 기타 == DB 컬럼 설명 == === Articles === * aSerial: 글 UID * bSerial: 글이 있는 보드 * aIndex: 게시판에 보이는 가상 글 번호 * aTitle: 제목 * aId: 글쓴이 ID * aNick: 글쓴이의 당시 닉네임 * uSerial: 글쓴이의 UID (여기서 aId/aNick 유도 가능) * aContent: 본문 * aLastGuest: 모름. DEPRECATED * aHit: 조회 수 * aEmphasis: 강조 여부 * aDatetime: 최초 작성 시간 * aEditedDatetime: 수정 시간, 없으면 NULL * aLevel: 글 깊이 aParent: aLevel > 0의 경우 바로 윗 부모 글. assert(aLevel == 0 && aParent == NULL) * aRoot: 깊이가 계속 깊어져 갔을 때 최종적인 부모. aParent == NULL인 경우 자기 자신. === Boards === * bName: 보드 전체 경로 * uSerial: 보대 * bParent: 부모 보드 ID * bDescription: 보드 짧은 설명 * bDatetime: 생성 시간. NOW() * bInformation: 긴 설명, cover에 들어가는 내용 * bType: 0 - 폴더, 1 - 게시판 * bReply: 0 - 답글이 평면으로, 1 - 답글이 스레드로. DEPRECATED. 항상 1. * bWrite: 쓰기 가능/불가능 * bComment: 0 - 불가능, 1 - 가능 * bSerial: 자동 증가 * current_uid: 보드를 생성하려고 한 사용자 ID === Comments === * cSerial: 커멘트 ID (삭제할 때 사용) * bSerial: 게시판 ID * aSerial: 글 ID * uSerial: 커멘트 남긴 사람 ID (NULL이면 게스트 모드) * cId: 커멘트 남긴 사람 ID (이름으로 저장됨) * cContent: 커멘트 내용 * cDatetime: 날짜 및 시간 * cPasswd: 게스트로 남길 때 암호. DEPRECATED. * cHomepage: 게스트로 남길 때 홈페이지. DEPRECATED. ** 더 이상 게스트로 커멘트 남기기는 지원하지 않으나, 과거 DB 파싱은 필요함 ** NULL인 레코드 총 58개 === Favorites, Subscriptions === * uSerial: 사용자 ID * bSerial: 게시판 ID === Labels === 블로그와 관련이 있는 것으로 추정. DEPRECATED. === Mails === * mSerial: 메시지 ID * mReceiverSerial: 받는 사람 ID * mSenderSerial: 보낸 사람 ID * mSenderID: 보낸 사람 ID (문자열) * mSenderNick: 보낸 사람 닉네임 * mDatetime: 보낸 시간 * mMark: 읽음 여부 * mTitle: 메시지 제목 * mContent: 메시지 내용 === Marks === 새 글 읽기와 관련이 있는 것으로 추정. DEPRECATED. === Positions === 블로그와 관련이 있는 것으로 추정. DEPRECATED. === Supplement === DEPRECATED. noah3k의 첨부 파일 핸들링은 아래를 참조. * sSerial: 첨부 파일 ID * aSerial: 첨부 파일이 연결된 글 ID * sFilename: 첨부 파일 이름 === Users === * uSerial: 사용자 ID * uId: 사용자 로그인 ID * uPasswd: 사용자 로그인 암호. 3종류의 해시 방식을 사용한다. * uNick: 게시글에 따라오는 별명 * uDatetime: 가입한 시간 * uLastLogin: 마지막 로그인 * uNumLogin: 로그인 횟수 * uNumPost: 쓴 글 갯수. DEPRECATED. * uLastHost: 마지막으로 접속한 호스트. * uEmail: 전자 우편 주소 * uHomepage: 홈페이지 * uSig: 시그 * uPlan: 자기 소개 == 첨부 파일 처리 == static/uploads/(article_id)/filename - 원본 파일. /thumbs_desktop/(article_id)/filename - 데스크톱을 위한 썸네일. 기본 640px. /thumbs_mobile/(article_id)/filename - 모바일을 위한 썸네일. 기본 240px. * 이미지인 경우에는 업로드와 동시에 썸네일을 생성한다.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.