github.com/Ptt-official-app/go-bbs@v0.12.0/pttbbs/README.md (about) 1 2 # 簡介 3 4 這邊是 pttbbs 的 driver 5 6 ## 參考文件 7 8 系統檔案列表 9 ``` 10 1 歡迎畫面 etc/Welcome 11 2 出站畫面 etc/Logout 12 3 錯誤登入訊息 etc/goodbye 13 4 站長名單 etc/sysop 14 5 帳號站長信箱收信列表 etc/mail_account_sysop 15 6 帳號站長信箱收信說明 etc/mail_account_sysop_desc 16 7 拒絕連線IP列表 (BANIP) etc/banip.conf 17 8 進站畫面0 etc/Welcome_login.0 18 9 進站畫面1 etc/Welcome_login.1 19 10 進站畫面2 etc/Welcome_login.2 20 11 進站畫面3 etc/Welcome_login.3 21 12 進站畫面4 etc/Welcome_login.4 22 13 過度轉錄開的罰單通知信 etc/crosspost.txt 23 14 我的最愛預設列表 etc/myfav_defaults 24 15 發文注意事項 etc/post.note 25 16 看板期限 etc/expire2.conf 26 17 節日 etc/feast 27 18 故鄉 etc/domain_name_query.cidr 28 19 註冊 email 白名單 etc/whitemail 29 20 註冊 email 未在白名單的通知訊息 etc/whitemail.notice 30 21 註冊 email 黑名單 etc/banemail 31 22 註冊範例 etc/register 32 23 註冊通過通知 etc/registered 33 24 新使用者需知 etc/newuser 34 25 退註通知附加說明 etc/reg_reject.notes 35 26 註冊單填寫說明 etc/regnotes/front 36 27 註冊細項說明[是否現住台灣] etc/regnotes/foreign 37 28 註冊細項說明[姓名] etc/regnotes/name 38 29 註冊細項說明[職業] etc/regnotes/career 39 30 註冊細項說明[住址] etc/regnotes/address 40 31 註冊細項說明[電話] etc/regnotes/phone 41 32 註冊細項說明[手機] etc/regnotes/mobile 42 33 註冊細項說明[生日] etc/regnotes/birthday 43 34 註冊細項說明[性別] etc/regnotes/sex 44 35 看板列表說明 etc/boardlist.help 45 36 文章列表說明 etc/board.help 46 37 小天使認證通知 etc/angel_notify 47 38 小天使功能說明 etc/angel_usage 48 39 小天使功能說明(有留言) etc/angel_usage2 49 40 小天使離線訊息(有留言) etc/angel_offline2 50 41 外籍使用者認證通知 etc/foreign_welcome 51 42 外籍使用者過期警告通知 etc/foreign_expired_warn 52 ``` 53 54 建立新看板的設定值 55 ``` 56 【 建立新板 】 57 58 59 60 A. (無作用) X Q. 不可噓 X 61 B. 不列入統計 X R. (無作用) X 62 C. (無作用) X S. 限看板會員發文 X 63 D. 群組板 X T. Guest可以發表 X 64 E. 隱藏板 X U. 冷靜 X 65 F. 限制(不需設定) X V. 自動留轉錄記錄 ˇ 66 G. 匿名板 X W. 禁止快速推文 X 67 H. 預設匿名板 X X. 推文記錄 IP X 68 I. 發文無獎勵 X Y. 十八禁 X 69 J. 連署專用看板 X Z. 對齊式推文 X 70 K. 已警告要廢除 X 0. 不可自刪 X 71 L. 熱門看板群組 X 1. 板主可刪特定文字 X 72 M. 不可推薦 X 2. 沒想到 X 73 N. 小天使可匿名 X 3. 沒想到 X 74 O. 板主設定列入記錄 X 4. 沒想到 X 75 P. 連結看板 X 5. 沒想到 X 76 77 ``` 78 79 發表權限 80 ``` 81 設定 [test] 看板之(發表)權限: 82 83 A. 基本權力 X Q. 不列入排行榜 X 84 B. 進入聊天室 X R. 違法通緝中 X 85 C. 找人聊天 X S. 小天使(本站無效) X 86 D. 發表文章 X T. 不允許認證碼註冊 X 87 E. 註冊程序認證 X U. 視覺站長 X 88 F. 信件無上限 X V. 觀察使用者行蹤 X 89 G. 隱身術 X W. 禠奪公權 X 90 H. 看見忍者 X X. 群組長 X 91 I. 永久保留帳號 X Y. 帳號審核組 X 92 J. 站長隱身術 X Z. 程式組 X 93 K. 板主 X 0. 活動組 X 94 L. 帳號總管 X 1. 美工組 X 95 M. 聊天室總管 X 2. 警察總管 X 96 N. 看板總管 X 3. 小組長 X 97 O. 站長 X 4. 退休站長 X 98 P. BBSADM X 5. 警察 X 99 ``` 100 101 ## PosOf的命名慣例以及解析方式 102 103 104 105 雖然 `binary.Read` 確實是方便好用,但實際上各站的 BBS 維護者可能不小心在該站的檔案結構中因為增加欄位長度沒考慮到 Padding 問題, 106 舉例來說不一定 BBS 站都會有宣告到 `__attribute__((__packed__))` ,因此在不同架構的環境下編譯出的 struct 長度可能會不同。 107 108 因此為了方便其他人維護,專案目前採用PosOf手動算出欄位記憶體相對位置的方式,效率上可能較低,但是有可能被編譯器最佳化因此未來也不確定低多少。 109 未來如果需要加速同時很確定貴站的資料結構時,推薦在testing以及benchmark都確定過之後切換成以 `binary.Read` 實作的版本。 110 111 目前因為為了要支援多套BBS版本的緣故,因此命名結構會是以下形式: 112 113 `PosOfFileHeaderFilename` 114 115 * `PosOf` 開頭 116 * `FileHeader` 哪個結構體名稱 117 * `Filename` 欄位名稱 118 119 預設省略版本號,如果需要新增版本號的範例如下 120 121 122 `PosOfR5939FileHeaderFilename` 123 124 * `R5939` 就是版本號