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` 就是版本號