Skip to content

peremen/noah3k

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

== 필요한 파이썬 모듈 ==
=== 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.

* 이미지인 경우에는 업로드와 동시에 썸네일을 생성한다.

About

KAIST School of CS BBS system

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published